Compartir a través de


Muestra 2: Vincular datos FHIR en su aplicación de lienzo utilizando el conector FHIRlink.

Este ejemplo sigue la Muestra 1: configurar y conectarse a FHIRlink y utiliza la misma aplicación de muestra de FHIRlink con el método de FHIRlink ListResources. En este ejemplo, le mostramos cómo vincular los resultados de la llamada al método y las entradas del paquete a un control de aplicación de lienzo.

También puede descargar e importar la solución final como ejemplo de implementación. Para obtener más información, vaya a Descargar ejemplo. Antes de comenzar con el ejemplo o utilizarlo, consulte Supuestos para el uso del ejemplo.

Nota

FHIR® (propiedad de Health Level Seven International), Google™ (propiedad de Google LLC) y EPIC® (propiedad de Epic Systems Corporation) son marcas comerciales registradas. El uso de estas marcas comerciales en esta página no constituye respaldo por parte de Health Level Seven International, Google o Epic Systems.

En el ejemplo anterior, ha podido observar el valor de la variable _patientList y cómo contenía un objeto Bundle y una lista secundaria de recursos denominados entry. Este paquete contenía los resultados de la siguiente llamada al método ListResources a través del método OnSelect:

Set(_patientList, FHIRlink.ListResources("Patient", {_elements:"id,name,birthDate,telecom"}));

El elemento clave del recurso de paquete que contiene los recursos individuales de los pacientes es el nodo de entrada. La llamada al conector FHIRlink.ListResources devuelve un paquete FHIR como un tipo de datos de objeto Untyped. Sin embargo, puede acceder a este elemento en la variable de lista de pacientes mediante la instrucción _patientList.entry. Este elemento es una matriz que contiene los registros de recursos de FHIR que se van a mostrar.

Propina

Para obtener más información sobre el tipo de recurso de Paquete de FHIR, consulte HL7 FHIR - Paquete.

Cada recurso entry representa un registro coincidente devuelto por la llamada ListResources, que es un recurso de FHIR del Paciente. El esquema generado incluye una representación de este recurso de FHIR del Paciente que se puede utilizar para vincular los detalles en el control de galería. Para obtener más información sobre los controles de galería, consulte Control de galería en Power Apps.

Antes de vincular esta matriz a los controles de la aplicación de lienzo, vamos a convertir la matriz en un tipo de datos de Tabla que se pueda vincular fácilmente a la galería. En el método OnSelect del botón Enumerar recursos, agregue la siguiente línea de código:

ClearCollect(_patientListTable, Table(_patientList.entry));

Este código convierte la matriz _patientList.entry en un tipo de datos de Tabla y borra la colección anterior. La tabla proporciona una lista de filas individuales cuya propiedad Value incluye el recurso de FHIR del Paciente.

Para obtener más información sobre las funciones Table y ClearCollect de Power Fx, consulte:

Propina

Otra opción para capturar los resultados en una tabla es utilizar el siguiente código:

ClearCollect(_patientListTable, Table(FHIRlink.ListResources("Patient", {_elements:"id,name,birthDate,telecom"}).entry));

Este código elimina la necesidad de la variable _patientList. Sin embargo, continuaremos usando esta variable en este ejemplo para mostrar el resultado completo de la llamada al método ListResources.

Después de convertir la matriz entry en una tabla, vincule los detalles de la plantilla de elementos de la galería siguiendo estos pasos:

  1. Agregue una galería vertical a la pantalla principal de la aplicación de Ejemplo de FHIRlink y etiquétela como PatientList.

  2. Cambie la opción Diseño por Título y subtítulo.

  3. En la propiedad Items de la galería, cambie el valor de CustomGallerySample a _patientList.

    Captura de pantalla de elementos de la galería

Al configurar la propiedad Items de la galería PatientList, también debe configurar los detalles de la plantilla de elementos de la galería. De manera predeterminada, la galería se vincula automáticamente a la primera propiedad disponible en la fila de la tabla, que es Value.

Nota

Intellisense no se incluye en el objeto Table.Value. Debe consultar la especificación FHIR para conocer las propiedades de un Paciente. Para obtener más información sobre el tipo de recurso de FHIR del Paciente, consulte HL7 FHIR - Paciente.

Cada elemento de lista representa un elemento de lista entry con un nodo resource que contiene los detalles del recurso de FHIR del Paciente . Siga estos pasos para actualizar la plantilla de elemento y vincularla a este nodo resource:

  1. Seleccione el control de etiqueta Title1 en la galería PatientList.

  2. Visualice la propiedad Text en el control de etiqueta Title1. Puede ver que la propiedad se establece automáticamente en el valor ThisItem.fullUrl

  3. Cambiar la propiedad Text a ThisItem.Value.resource

La propiedad resource contiene detalles específicos del recurso de FHIR donde el primer parámetro del método ListResources determina el tipo de recurso de FHIR. En este ejemplo, estamos viendo los recursos del Paciente y los valores id, name, birthDate y telecom solicitados a través del parámetro _elements.

Propina

El paquete FHIR devuelto se basa en los campos solicitados en el parámetro _elements. Si no se especifican campos en el parámetro _elements, se devolverán todos los valores y el esquema representará todos los campos disponibles en el recurso de FHIR devuelto. No obstante, el resultado no incluirá estos nodos si los valores de campo no están presentes en los registros individuales del mismo.

Por ejemplo, el parámetro ListResources_elements incluye birthDate. No obstante, si un registro de Paciente no tiene un valor para birthDate, los servicios de FHIR no devolverán ese atributo.

Cuando desarrolle sus aplicaciones, le sugerimos crear registros que, a su vez, creen datos de ejemplo que representen los datos que requiere su aplicación. Este paso ayuda a garantizar que sus pruebas cubran los escenarios previstos en la producción.

Cada resultado resource difiere según el tipo de recurso solicitado en la llamada al método ListResources. El ThisItem.Value.resource actualizado sigue siendo un objeto y lo necesita para vincularlo a los valores de campo. Puede vincular las etiquetas a los tipos de datos simples disponibles en resource y observar los valores en la galería.

  1. Seleccione el control de etiqueta Title1 en la galería PatientList.

  2. Cambiar la propiedad Text a ThisItem.Value.resource.resourceType

  3. Seleccione el control de etiqueta Subtitle1 en la galería PatientList.

  4. Cambiar la propiedad Text a ThisItem.Value.resource.birthDate

  5. Ejecute la aplicación en modo de vista previa y seleccione el botón Enumerar recursos.

    Captura de pantalla del botón Enumerar recursos

Ahora puede ver el contenido de la lista entry en el objeto raíz del paquete, que muestra las propiedades de la propiedad resource de cada entrada devuelta por la solicitud ListResources.

Mostrar propiedades complejas

Los recursos de FHIR suelen constar de varios niveles de propiedades y no se limitan a tipos de datos simples. Al igual que el recurso de FHIR del Paciente, los elementos pueden ser objetos complejos o matrices de objetos.

En este ejemplo, las propiedades name y telecom son matrices multinivel. Cada elemento telecom es un tipo de datos ContactPoint complejo. Puede combinar los siguientes ejemplos para la visualización de la galería:

Ejemplo 1: Seleccionar por posición

Puede seleccionar el primer elemento de la lista de una matriz secundaria. Este enfoque se puede utilizar en propiedades que a menudo contienen un solo elemento. Vamos a ilustrar un ejemplo con la propiedad name.

  1. Utilice la función Primero para seleccionar el primer valor name de la lista. Esta función devuelve el primer elemento de una lista o matriz. Una vez devuelto el primer valor name, puede combinar las propiedades family y use para su visualización.

  2. Seleccione el control de etiqueta Title1 en la galería PatientList.

  3. Cambiar la propiedad Text a First(ThisItem.Value.resource.name).family & ", (" & First(ThisItem.Value.resource.name).use & ")"

Nota

Para obtener más información sobre la función utilizada en este ejemplo, consulte las funciones First, FirstN, Index, Last y LastN en Power Apps.

Ejemplo 2: Seleccionar por criterios

Puede utilizar esta opción para mostrar una búsqueda de elementos de matriz única en comparación con las propiedades de los elementos de la lista.

  1. Para mostrar el número de teléfono particular, utilice la función Filter para filtrar los valores de campo telecom en los valores system y use.

  2. La propiedad telecom es una matriz como el nodo entry del paquete. Puedes tratarla de la misma manera convirtiéndola en una Tabla en línea. Después de la conversión, también debe aplicar el valor a los criterios de filtrado.

  3. Seleccione el control de etiqueta Subtitle1 en la galería PatientList.

  4. Cambiar la propiedad Text a First(Filter(Table(ThisItem.Value.resource.telecom), Value.use="home", Value.system="phone")).Value.value

Nota

Para obtener más información sobre la función utilizada en este ejemplo, consulte las funciones Filter, Search y LookUp en Power Apps.

Ejemplo 3: Concatenar valores

Otra opción para una matriz secundaria es concatenar los elementos de la lista en una cadena delimitada. Puede contraer todos los valores de propiedad family en una sola cadena mediante la función Concat. Al agregar el carácter de retorno de carro, cada nombre aparece en una nueva línea. Esta nueva fórmula también incluye algunas comprobaciones nulas de integridad.

De manera similar a la propiedad telecom, la propiedad name también es una matriz que necesitamos convertir en una Tabla en línea.

  1. Agregue un nuevo control de etiqueta a la plantilla de elementos de la galería PatientList. Etiquételo como FamilyNames.

  2. Amplíe el tamaño para permitir dos o tres líneas.

  3. Seleccione el nuevo control de etiqueta FamilyNames en la galería PatientList.

  4. Cambiar la propiedad Text a Concat(Filter(Table(ThisItem.Value.resource.name), !IsBlank(Value.family)), Value.family & " (" & Value.use & ")", Char(13))

  5. Ejecute la aplicación en modo de vista previa y seleccione el botón Enumerar recursos.

Cada recurso de FHIR del paciente incluye un campo de nombre, que es una matriz de valores. Este campo permite que el registro de un paciente capture varios nombres, como su nombre actual y un apellido de soltero.

Este es un ejemplo de un campo de nombre de paciente:

"name": [{
   "use": "official",
   "family": "Grimes165",
   "given": [
      "Alysia661"
    ],
   "prefix": [
      "Mrs."
    ]
  },
  {
   "use": "maiden",
   "family": "Bins636",
   "given": [
     "Alysia661"
   ],
   "prefix": [
     "Mrs."
   ]
}]

La fórmula utiliza la función Filter para excluir los valores name sin una propiedad family. Para cada elemento, se combinan las propiedades family y use, y la función Concat agrega el nuevo delimitador de línea.

Captura de pantalla de los valores de propiedad devueltos

Nota

Para obtener más información sobre la función Concat y otras funciones relacionadas, consulte Funciones Concat y Concatenate en Power Apps.

Descargue de ejemplo

Puede descargar e importar la solución completa de la aplicación de lienzo de este ejemplo a modo de ejemplo de implementación. El ejemplo puede descargarse en los tres formatos siguientes:

Para obtener instrucciones sobre cómo importar y exportar aplicaciones de lienzo, consulte Exportar e importar paquetes de aplicaciones de lienzo.

Pasos siguientes

En el Ejemplo 3: Combinar métodos para mostrar datos de FHIR, aprenda a utilizar otros métodos de FHIRlink y a combinarlos en la aplicación.

Más información

Para profundizar en más detalles de la aplicación de lienzo relacionados con este ejemplo, consulte: