Partager via


Exemple 3 : Combiner les méthodes d’affichage des données FHIR

Cet exemple suit Exemple 2 : Lier les données FHIR dans votre application canevas à l’aide du connecteur FHIRlink. Il utilise la même application Exemple FHIRlink avec la méthode ListResources, que nous avons utilisée précédemment pour lier les valeurs résultantes à un contrôle de la galerie de l’application canevas.

Dans cet exemple, nous vous montrons comment utiliser les résultats Patient liés pour récupérer une seule ressource FHIR et les enregistrements liés à la ressource sélectionnée. 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.

Sélectionner des valeurs

Lorsque vous appelez la méthode ListResources de FHIRlink, elle renvoie une liste de ressources FHIR Patient. Mais le paramètre _elements limite les détails de chaque ressource. Ce comportement est un choix de conception par défaut, visant à optimiser la vitesse des appels bidirectionnels aux services FHIR tout en réduisant les données inutiles sur le client.

Dans cet exemple, vous pouvez découvrir comment récupérer de manière sélective les détails complets d’un dossier lorsque cela est nécessaire. Par exemple, vous pouvez récupérer et afficher les détails complets du dossier Patient lorsque vous sélectionnez un élément dans la galerie.

Tout d’abord, vous devez capturer la sélection dans la galerie et l’id du Patient sélectionné. Nous savons que le contexte du modèle d’élément fournit un accès à un élément de la liste entry. Utilisons ce contexte pour capturer les détails sur le Patient sélectionné dans la galerie.

  1. Sélectionnez la galerie PatientList.

  2. Dans le menu déroulant de la barre de formule, sélectionnez OnSelect. Sinon, vous pouvez également sélectionner l’onglet Avancé dans le volet des propriétés et rechercher OnSelect.

  3. Dans l’éditeur de formule, modifiez la valeur de false en UpdateContext({_selectedPatientId: ThisItem.Value.resource.id});

  4. Ajoutez la valeur suivante à une nouvelle ligne dans l’éditeur : Reset(TextPatientID);

  5. La formule devrait maintenant ressembler à l’expression suivante :

    UpdateContext({_selectedPatientId: ThisItem.Value.resource.id});
    Reset(TextPatientID);
    
  6. Après avoir capturé l’identificateur Patient sélectionné dans une variable, vous pouvez l’afficher sur l’écran principal. Pour afficher l’identificateur, ajoutez les contrôles suivants au formulaire :

    • Ajoutez une nouvelle Étiquette de texte au formulaire :

      • Nommez-la LabelPatientID.
      • Définissez la valeur Texte sur ID patient.
    • Ajoutez une nouvelle Entrée de texte au formulaire :

      • Nommez-la TextPatientID.
      • Définissez la valeur par défaut sur _selectedPatientId
      • Définissez la valeur Texte d’information sur ID patient.
  7. Comme étape supplémentaire, ajoutons la fonction Clear pour effacer la liste actuelle de patients. Cette étape aide à garantir que la galerie est effacée à chaque demande.

    1. Sélectionnez le bouton ListResources. Dans le menu déroulant de la barre de formule, sélectionnez OnSelect.

    2. Insérez les lignes de code suivantes au début de la formule :

      Set(_patientList, Blank());
      Clear(_patientListTable);
      

    Maintenant, vous pouvez tester les mises à jour de la formule.

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

  9. Sélectionnez les éléments dans la liste de patients. Vous pouvez voir que TextePatientID affiche la valeur id du patient.

    Une capture d’écran affichant l’ID de patient d’un exemple de patient.

Le code pour la méthode OnSelect capture la valeur id du dossier Patient sélectionné dans la variable _selectedPatientId. Les méthodes UpdateContext et Reset attribuent la variable (locale au contexte de l’écran), puis mettent à jour la valeur TextePatientID.

Note

Une autre option pour capturer la variable consiste à utiliser la méthode Set. Vous pouvez utiliser cette méthode si vous souhaitez que _selectedPatientId soit disponible comme variable globale. Actuellement, la valeur est limitée à l’écran principal de l’application canevas uniquement.

Utiliser la méthode GetResource

Après avoir sélectionné l’id du Patient, vous pouvez maintenant utiliser la méthode GetResource de FHIRlink pour récupérer la ressource complète. Cette méthode du connecteur récupère une seule ressource FHIR pour une valeur id donnée. Mettez à jour la méthode OnSelect pour effectuer cette action.

  1. Sélectionnez la galerie PatientList.

  2. Dans le menu déroulant de la barre de formule, sélectionnez OnSelect.

  3. Mettez à jour la formule pour inclure le code suivant sur une nouvelle ligne :

    UpdateContext({_selectedPatient: FHIRlink.GetResource("Patient", _selectedPatientId)});

  4. Avec le nouvel appel UpdateContext, vous pouvez effectuer une demande au connecteur FHIR pour récupérer toute la ressource patient pour la valeur _selectedPatientId. La formule mise à jour devrait maintenant ressembler à l’expression suivante :

    UpdateContext({_selectedPatientId: ThisItem.Value.resource.id});
    Reset(TextPatientID);
    UpdateContext({_selectedPatient: FHIRlink.GetResource("Patient", _selectedPatientId)});
    

Lier les détails du patient

Dans l’Exemple 2, nous avons lié un dossier Patient à des contrôles dans un modèle d’élément de la galerie. Maintenant, nous disposons d’un dossier Patient complet et nous pouvons lier ces informations de différentes manières.

Les types de données simples tels que les chaînes ou les dates peuvent être liés à des contrôles standard, tandis que les tableaux enfants tels que name, identifiers ou telecom peuvent être affichés dans leurs propres galeries individuelles. Vous pouvez également accéder aux éléments enfants en fonction de la position à l’aide de fonctions telles que First.

Pour cet exemple, lions-les directement à une Entrée de texte comme nous l’avons fait pour l’identificateur Patient. Étant donné que la réponse de la méthode GetResource est un objet sans type au format d’une seule ressource FHIR, vous pouvez accéder directement à de nombreuses propriétés. Avec les éléments du tableau enfant liés aux galeries, vous devez convertir ces éléments en tables, comme nous l’avons fait avec la valeur entry du groupe FHIR.

  1. Ajoutez des Étiquettes de texte à l’écran avec les noms et valeurs de texte suivants :

    Nom  Texte
    LabelMaritalStatus Marital Status:
    LabelBirthdate Birth Date:
    LabelGender Gender:
    TextMaritalStatus First(_selectedPatient.maritalStatus.coding).display
    TextBirthdate _selectedPatient.birthDate
    TextGender _selectedPatient.gender
  2. Ajoutez une galerie verticale au formulaire et nommez-la GalleryIdentifiers.

    • Modifiez la Disposition en Titre, sous-titre et corps.
    • Modifiez la propriété Items en Table(_selectedPatient.identifier)
  3. Dans le modèle d’élément de la galerie, remplacez les contrôles Étiquettes de texte existants par les paires d’étiquettes et de valeurs suivantes. Vous pouvez également vous assurer que les contrôles s’affichent correctement dans le modèle d’élément en ajustant leur taille, position et alignement.

    Nom  Texte
    LabelCode Code:
    LabelValue Value:
    LabelType Type:
    LabelSystem System:
    TextCode ThisItem.Value.code
    TextValue First(ThisItem.Value.type.coding).code
    TextType ThisItem.Value.type.text
    TextSystem ThisItem.Value.system
  4. Maintenant, vous pouvez tester les mises à jour. Récupérez l’enregistrement Patient complet à l’aide de la méthode GetResource et liez les contrôles aux Étiquettes de texte et une propriété de tableau enfant vers un nouveau contrôle de galerie.

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

  6. Sélectionnez les éléments dans la liste de patients. À mesure que vous modifiez la sélection, vous pouvez voir tous les champs liés et la mise à jour de la galerie.

    Une capture d’écran affichant les détails du patient.

Le dossier Patient complet est maintenant conservé dans la variable de contexte _selectedPatient et certains des détails du patient sont affichés. En utilisant le même connecteur, vous pouvez également récupérer les dossiers de la ressource FHIR liés au Patient sélectionné, par exemple les Consultations.

Astuce

Pour plus d’informations sur le type de ressource Consultation de FHIR, consultez HL7 FHIR - Consultation.

Utilisons la méthode familière ListResources, mais modifions le type de ressource demandée en Consultation et mettons à jour la liste des paramètres _elements demandés. Vous devez ajouter des paramètres supplémentaires pour filtrer en fonction de la variable _selectedPatientId actuelle. Pour les Consultations, vous devez filtrer en fonction de la propriété subject en utilisant l’ID du patient.

  1. Sélectionnez la galerie PatientList.

  2. Dans le menu déroulant de la barre de formule, sélectionnez OnSelect.

  3. Pour mettre à jour la formule, ajoutez le code suivant à une nouvelle ligne dans l’éditeur de formule. La formule convertit directement le tableau entry en une table et la méthode ClearCollect efface la valeur actuelle de _encounterList et charge les résultats de la conversion de la table :

    ClearCollect(_encounterList, Table(FHIRlink.ListResources("Encounter", {_elements:"id,identifier,status,class,period,type", additionalParameters:"subject=" & _selectedPatientId}).entry));

  4. La formule mise à jour devrait maintenant ressembler à l’expression suivante :

    UpdateContext({_selectedPatientId: ThisItem.resource.id});
    Reset(TextPatientID);
    UpdateContext({_selectedPatient: FHIRlink.GetResource("Patient", _selectedPatientId)});
    ClearCollect(_encounterList, Table(FHIRlink.ListResources("Encounter", {_elements:"id,identifier,status,class,period,type", additionalParameters:"subject=" & _selectedPatientId}).entry));
    
  5. Ajoutez une Galerie verticale au formulaire et nommez-la GalleryIdentifiers :

    • Modifiez la Disposition en Titre, sous-titre et corps.
    • Définissez la propriété Items sur _encounterList.entry
  6. Dans le modèle d’élément de la galerie, remplacez les contrôles Étiquettes de texte existants par les paires d’étiquettes et de valeurs suivantes. Vous pouvez également vous assurer que les contrôles s’affichent correctement dans le modèle d’élément en ajustant leur taille, position et alignement.

    Nom  Text
    LabelEncId Id:
    LabelEncClass Class:
    LabelEncStatus Status:
    LabelEncType Type:
    LabelEncStartDate Start Date:
    LabelEncEndDate End Date:
    TextEncId ThisItem.resource.id
    TextEncClass ThisItem.Value.resource.class.code
    TextEncStatus ThisItem.Value.resource.status
    TextEncType Concat(Filter(Table(ThisItem.Value.resource.type), Value.text), Value.text, ", ")
    TextEncStartDate Text(DateTimeValue(Text(ThisItem.Value.resource.period.start)), DateTimeFormat.ShortDateTime)
    TextEncEndDate Text(DateTimeValue(Text(ThisItem.Value.resource.period.end)), DateTimeFormat.ShortDateTime)
  7. Exécutez l’application en mode aperçu et sélectionnez le bouton Répertorier les ressources.

  8. Sélectionnez les éléments dans la liste de patients. Pour les patients avec des Consultations liées, vous pouvez voir que les valeurs GalleryEncounters sont également mises à jour.

    Une capture d’écran affichant les détails des consultations du patient.

Maintenant, nous avons ajouté un autre appel pour récupérer tous les dossiers Consultation liés pour un patient sélectionné. Ces dossiers sont affichés de la même manière que les valeurs Patient et name liées, avec un formatage des valeurs de date et d’heure et un formatage visuel pour mettre en évidence les étiquettes des champs. Si nécessaire, vous pouvez ajouter d’autres champs à cette liste. Avec les nouveaux champs Consultation, vous pouvez également envisager d’ajouter d’autres options de navigation et des données plus détaillées à l’application.

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.

En savoir plus

Pour en savoir plus sur les applications canevas liées à cet exemple, consultez :