Partager via


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.

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 :

  1. Ajoutez une galerie verticale à l’écran principal de l’application Exemple FHIRlink et étiquetez-la PatientList.

  2. Définissez la propriété Layout sur Titre et sous-titre.

  3. Dans la propriété Items de la galerie, modifiez la valeur de CustomGallerySample en _patientList.

    Une capture d’écran montrant l’élément 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 :

  1. Sélectionnez le contrôle d’étiquette Title1 dans la galerie PatientList.

  2. 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

  3. 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.

  1. Sélectionnez le contrôle d’étiquette Title1 dans la galerie PatientList.

  2. Modifiez la propriété Text en ThisItem.Value.resource.resourceType

  3. Sélectionnez le contrôle d’étiquette Subtitle1 dans la galerie PatientList.

  4. Modifiez la propriété Text en ThisItem.Value.resource.birthDate

  5. Exécutez l’application en mode aperçu et sélectionnez le bouton Répertorier les ressources.

    Une capture d’écran affichant la 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.

  1. 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 valeur name renvoyée, vous pouvez combiner les propriétés family et use pour l’affichage.

  2. Sélectionnez le contrôle d’étiquette Title1 dans la galerie PatientList.

  3. 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.

  1. Pour afficher le numéro de téléphone personnel, utilisez la fonction Filter pour filtrer les valeurs du champ telecom en fonction des valeurs system et use.

  2. La propriété telecom est un tableau comme le nœud entry 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.

  3. Sélectionnez le contrôle d’étiquette Subtitle1 dans la galerie PatientList.

  4. 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.

  1. Ajoutez un nouveau contrôle d’étiquette au modèle d’élément de la galerie PatientList. Étiquetez-le FamilyNames.

  2. Agrandissez la taille pour autoriser deux ou trois lignes.

  3. Sélectionnez le nouveau contrôle d’étiquette FamilyNames dans la galerie PatientList.

  4. Modifiez la propriété Text en Concat(Filter(Table(ThisItem.Value.resource.name), !IsBlank(Value.family)), Value.family & " (" & Value.use & ")", Char(13))

  5. 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.

Une capture d’écran affichant les valeurs de propriété renvoyées.

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 :

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 :