Exemple 2 : Lier les données FHIR à votre application canevas à l’aide du connecteur FHIRlink
Cet exemple suit Exemple 1 : Configurer et se connecter à FHIRlink et utilise le même Exemple FHIRlink avec la méthode ListResources FHIRlink. Dans cet exemple, nous vous montrons comment lier les résultats de l’appel à la méthode et les entrées du groupe à un contrôle de l’application canevas.
Vous pouvez également télécharger et importer la solution finale comme exemple de mise en œuvre. Pour plus d’informations, consultez Télécharger l’exemple. Avant de commencer l’exemple ou de l’utiliser, consultez Hypothèses pour l’utilisation des exemples.
Note
FHIR® (propriété de Health Level Seven International), Google™ (propriété de Google LLC) et EPIC® (propriété d’Epic Systems Corporation) sont des marques déposées. L’utilisation de ces marques sur cette page ne constitue pas une approbation de Health Level Seven International, Google ou Epic Systems.
Lier à un contrôle de la galerie
Dans l’exemple précédent, vous avez visualisé la valeur de la variable _patientList
et remarqué qu’elle contenait un objet Bundle
et une liste enfant de ressources nommées entry
. Ce groupe contenait les résultats de l’appel suivant à la méthode ListResources via la méthode OnSelect :
Set(_patientList, FHIRlink.ListResources("Patient", {_elements:"id,name,birthDate,telecom"}));
L’élément clé de la ressource du groupe qui contient les ressources des patients individuels est le nœud entrée. L’appel au connecteur FHIRlink.ListResources renvoie un groupe FHIR comme type de données d’objet sans type. Cependant, vous pouvez accéder à cet élément dans la variable de la liste des patients en utilisant l’instruction _patientList.entry
. Cet élément est un tableau contenant les enregistrements de la ressource FHIR à afficher.
Astuce
Pour plus d’informations sur le type de ressource Groupe de FHIR, consultez HL7 FHIR - Groupe.
Chaque ressource entry
représente un enregistrement correspondant renvoyé à partir de l’appel ListResources, qui est une ressource FHIR Patient. Le schéma généré inclut une représentation de cette ressource FHIR Patient qui peut être utilisée pour lier les détails dans le contrôle de la galerie. Pour plus d’informations sur les contrôles de la galerie, consultez Contrôle de la galerie dans Power Apps.
Avant de lier ce tableau aux contrôles de l’application canevas, convertissons d’abord le tableau en un type de données Table que vous pouvez facilement lier à la galerie. Dans la méthode OnSelect du bouton Répertorier les ressources, ajoutez la ligne de code suivante :
ClearCollect(_patientListTable, Table(_patientList.entry));
Ce code convertit le tableau _patientList.entry
en un type de données Table et efface la collection précédente. La table fournit une liste de lignes individuelles dont la propriété Value
inclut la ressource FHIR Patient.
Pour plus d’informations sur les fonctions Table et ClearCollect de Power Fx, consultez :
Astuce
Une autre option pour capturer les résultats dans une table consiste à utiliser le code suivant :
ClearCollect(_patientListTable, Table(FHIRlink.ListResources("Patient", {_elements:"id,name,birthDate,telecom"}).entry));
Ce code élimine la nécessité de la variable _patientList
. Cependant, nous continuerons à utiliser cette variable dans cet exemple pour afficher le résultat complet de l’appel à la méthode ListResources.
Après avoir converti le tableau entry
en table, liez les détails du modèle d’élément de la galerie en procédant comme suit :
Ajoutez une galerie verticale à l’écran principal de l’application Exemple FHIRlink et étiquetez-la PatientList.
Définissez la propriété Layout sur Titre et sous-titre.
Dans la propriété Items de la galerie, modifiez la valeur de
CustomGallerySample
en_patientList
.
Mettre à jour les éléments de la galerie
Lors de la définition de la propriété Items pour la galerie PatientList, vous devez également définir les détails dans le modèle d’élément de la galerie. Par défaut, la galerie est automatiquement liée à la première propriété disponible sur la ligne de la table, à savoir Value
.
Note
IntelliSense n’est pas inclus dans l’objet Table.Value
. Vous devez faire référence à la spécification FHIR pour les propriétés d’un Patient. Pour plus d’informations sur le type de ressource Patient de FHIR, consultez HL7 FHIR - Patient.
Chaque élément de la liste représente un élément de liste entry
avec un nœud resource
qui contient les détails de la ressource FHIR Patient. Procédez comme suit pour mettre à jour le modèle d’élément à lier à ce nœud resource
:
Sélectionnez le contrôle d’étiquette Title1 dans la galerie PatientList.
Affichez la propriété Text dans le contrôle d’étiquette Title1. Vous pouvez voir que la propriété est automatiquement définie sur la valeur
ThisItem.fullUrl
Modifiez la propriété Text en
ThisItem.Value.resource
La propriété resource
contient des détails spécifiques à la ressource FHIR où le premier paramètre de la méthode ListResources détermine le type de ressource FHIR. Dans cet exemple, nous visualisons les ressources Patient et les valeurs id
, name
, birthDate
et telecom
demandées via le paramètre _elements
.
Astuce
Le groupe FHIR renvoyé est basé sur les champs demandés dans le paramètre _elements
. Si vous ne spécifiez pas de champs dans le paramètre _elements
, toutes les valeurs sont renvoyées et le schéma représentera tous les champs disponibles dans la ressource FHIR renvoyée. Mais si les valeurs des champs ne sont pas présentes dans les enregistrements individuels du résultat, le résultat n’inclura pas ces nœuds.
Par exemple, le paramètre ListResources_elements
inclut birthDate
. Toutefois, si un enregistrement Patient n’a pas de valeur pour birthDate
, les services FHIR ne renvoient pas cet attribut.
Lorsque vous développez vos applications, nous vous suggérons de créer des enregistrements qui créent des exemples de données représentant les données requises par votre application. Cette étape aide à garantir que vos tests couvrent les scénarios attendus en production.
Chaque résultat resource
diffère en fonction du type de ressource demandé dans l’appel à la méthode ListResources. L’objet ThisItem.Value.resource
mis à jour est toujours un objet et vous en avez besoin pour le lier aux valeurs des champs. Vous pouvez lier les étiquettes aux types de données simples disponibles dans resource
et voir les valeurs dans la galerie.
Sélectionnez le contrôle d’étiquette Title1 dans la galerie PatientList.
Modifiez la propriété Text en
ThisItem.Value.resource.resourceType
Sélectionnez le contrôle d’étiquette Subtitle1 dans la galerie PatientList.
Modifiez la propriété Text en
ThisItem.Value.resource.birthDate
Exécutez l’application en mode aperçu et sélectionnez le bouton Répertorier les ressources.
Vous pouvez maintenant afficher le contenu de la liste entry
dans l’objet racine du groupe, en affichant les propriétés de la propriété resource
pour chaque entrée renvoyée par la demande ListResources.
Afficher les propriétés complexes
Les ressources FHIR se composent généralement de plusieurs niveaux de propriétés et ne se limitent pas à des types de données simples. Comme pour la ressource FHIR Patient, les éléments peuvent être des objets complexes ou des tableaux d’objets.
Dans cet exemple, les propriétés name
et telecom
sont toutes deux des tableaux à plusieurs niveaux. Chaque élément telecom
est un type de données ContactPoint complexe. Vous pouvez combiner les exemples suivants pour l’affichage de la galerie :
Exemple 1 : Sélectionner par position
Vous pouvez sélectionner le premier élément de la liste pour un tableau enfant. Cette approche peut être utilisée pour les propriétés qui contiennent souvent un seul élément. Illustrons un exemple avec la propriété name
.
Utilisez la fonction First pour sélectionner la première valeur
name
de la liste. Cette fonction renvoie le premier élément d’une liste ou d’un tableau. Une fois la première valeurname
renvoyée, vous pouvez combiner les propriétésfamily
etuse
pour l’affichage.Sélectionnez le contrôle d’étiquette Title1 dans la galerie PatientList.
Modifiez la propriété Text en
First(ThisItem.Value.resource.name).family & ", (" & First(ThisItem.Value.resource.name).use & ")"
Note
Pour plus d’informations sur la fonction utilisée dans cet exemple, consultez Fonctions First, FirstN, Index, Last et LastN dans Power Apps.
Exemple 2 : Sélectionner par critère
Vous pouvez utiliser cette option pour afficher la recherche d’un élément de tableau unique en fonction des propriétés de l’élément de liste.
Pour afficher le numéro de téléphone personnel, utilisez la fonction Filter pour filtrer les valeurs du champ
telecom
en fonction des valeurssystem
etuse
.La propriété
telecom
est un tableau comme le nœudentry
du groupe. Vous pouvez la traiter de la même manière en le convertissant en Table en ligne. Après la conversion, vous devez également appliquer la valeur aux critères de filtre.Sélectionnez le contrôle d’étiquette Subtitle1 dans la galerie PatientList.
Modifiez la propriété Text en
First(Filter(Table(ThisItem.Value.resource.telecom), Value.use="home", Value.system="phone")).Value.value
Note
Pour plus d’informations sur la fonction utilisée dans cet exemple, consultez Fonctions Filter, Search et LookUp dans Power Apps.
Exemple 3 : Concaténer les valeurs
Une autre option pour un tableau enfant consiste à concaténer les éléments de la liste en une chaîne délimitée. Vous pouvez réduire toutes les valeurs de la propriété family
en une seule chaîne à l’aide de la fonction Concat. L’ajout du caractère de retour chariot affiche chaque nom sur une nouvelle ligne. Cette nouvelle formule inclut également des vérifications nulles de l’exhaustivité.
Comme la propriété telecom
, la propriété name
est également un tableau que nous devons convertir en Table en ligne.
Ajoutez un nouveau contrôle d’étiquette au modèle d’élément de la galerie PatientList. Étiquetez-le FamilyNames.
Agrandissez la taille pour autoriser deux ou trois lignes.
Sélectionnez le nouveau contrôle d’étiquette FamilyNames dans la galerie PatientList.
Modifiez la propriété Text en
Concat(Filter(Table(ThisItem.Value.resource.name), !IsBlank(Value.family)), Value.family & " (" & Value.use & ")", Char(13))
Exécutez l’application en mode aperçu et sélectionnez le bouton Répertorier les ressources.
Chaque ressource FHIR du patient comprend un champ nom, qui est un tableau de valeurs. Ce champ permet à un dossier patient de capturer plusieurs noms, par exemple son nom actuel et un nom de jeune fille.
Voici un exemple d’un champ de nom de patient :
"name": [{
"use": "official",
"family": "Grimes165",
"given": [
"Alysia661"
],
"prefix": [
"Mrs."
]
},
{
"use": "maiden",
"family": "Bins636",
"given": [
"Alysia661"
],
"prefix": [
"Mrs."
]
}]
La formule utilise la fonction Filter pour exclure les valeurs name
sans propriété family
. Pour chaque élément, les propriétés family
et use
sont combinées et la fonction Concat ajoute le nouveau délimiteur de ligne.
Note
Pour plus d’informations sur la fonction Concat et les fonctions associées, consultez Fonctions Concat et Concatate dans Power Apps.
Télécharger l’exemple
Vous pouvez télécharger et importer la solution complète de l’application canevas à partir de cet exemple en guise d’exemple de mise en œuvre. L’exemple est disponible au téléchargement dans les trois formats suivants :
- Package zip : FHIRlink Sample2.zip
- Archive MSAPP : FHIRlink Sample2.msapp
- La solution Power Platform (contient tous les exemples) : FHIRlinkSamples.zip
Pour obtenir des instructions sur l’importation et l’exportation d’applications canevas, consultez Exporter et importer des packages d’applications canevas.
Étapes suivantes
Dans l’Exemple 3 : Combiner les méthodes d’affichage des données FHIR, découvrez comment utiliser d’autres méthodes FHIRlink et les combiner dans l’application.
En savoir plus
Pour en savoir plus sur les applications canevas liées à cet exemple, consultez :