Eksempel 3: Kombiner metoder til visning af FHIR-data
Dette eksempel følger Eksempel 2: Binde FHIR-data i din lærredapp ved hjælp af FHIRlink-connector. Den bruger den samme FHIRlink Sample app med ListResources metoden, som vi tidligere brugte til at binde de resulterende værdier til en lærredsapps gallerikontrol.
I dette eksempel viser vi dig, hvordan du bruger de bundne Patient resultater til at hente en enkelt FHIR-ressource og poster relateret til den valgte ressource. Du kan også downloade og importere den endelige løsning som et implementeringseksempel. Du kan finde flere oplysninger i Download eksempel. Før du starter eksemplet eller bruger eksemplet, se Antagelser for prøvebrug.
Bemærk
FHIR® (ejes af Health Level Seven International), Google™ (ejes af Google LLC) og EPIC® (ejes af Epic Systems Corporation) er registrerede varemærker. Brugen af disse varemærker på denne side udgør ikke en anbefaling af Health Level Seven International, Google eller Epic Systems.
Vælg værdier
Når du aktiverer metoden FHIRlink ListResources, returnerer den en liste over Patient FHIR-ressourcer. Men _elements
parameteren begrænser detaljerne for hver ressource. Denne adfærd er et standarddesignvalg, der sigter mod at optimere hastigheden af rundrejseopkald til FHIR-tjenester og samtidig minimere unødvendige data på klienten.
I dette eksempel kan du lære, hvordan du selektivt henter komplette oplysninger om en post, når det kræves. For eksempel kan du hente og vise fuldstændige detaljer om Patient-posten, når du vælger et element i galleriet.
Først skal du fange udvalget i galleriet og id
af den valgte Patient. Vi ved, at vareskabelonkonteksten giver adgang til et element på entry
-listen. Så lad os bruge denne kontekst til at fange detaljer om den valgte Patient i galleriet.
Vælg galleriet PatientList.
Vælg OnSelect i rullemenuen på formellinjen. Alternativt kan du også vælge fanen Avanceret i egenskabsruden og søge efter OnSelect.
Skift værdien fra
false
tilUpdateContext({_selectedPatientId: ThisItem.Value.resource.id});
i formeleditorTilføj følgende værdi til en ny linje i editoren:
Reset(TextPatientID);
Formlen bør nu se ud som i det følgende udtryk:
UpdateContext({_selectedPatientId: ThisItem.Value.resource.id}); Reset(TextPatientID);
Efter at have fanget den valgte Patient identifikator i en variabel, kan du vise den på hovedskærmen. Du kan få vist id'et ved at føje følgende kontrolelementer til formularen:
Føj en ny Tekstetiket til formularen:
- Navngiv det LabelPatientID.
- Vælg Tekst-værdi til Patient Id.
Føj et nyt Tekstinput til formularen:
- Navngiv det TextPatientID.
- Angiv standardværdien til
_selectedPatientId
- Vælg Tiptekst-værdi til Patient Id.
Som et ekstra trin, lad os tilføje Klar-funktionen til at rydde den aktuelle liste over patienter. Dette trin hjælper med at sikre, at galleriet rydder ud med hver anmodning.
Vælg knappen ListResources. Vælg OnSelect i rullemenuen på formellinjen.
Indsæt følgende kodelinjer i begyndelsen af formlen:
Set(_patientList, Blank()); Clear(_patientListTable);
Nu kan du teste formelopdateringer.
Udfør appen i forhåndsversionstilstand, og vælg knappen Vis ressourcer.
Vælg emnerne på listen over patienter. Du kan se, at TekstPatientID viser
id
patientens værdi.
Koden til OnSelect-metoden fanger den valgte Patient-posts id
værdi ind i variablen _selectedPatientId
. Det UpdateContext og Nulstil metoder tildeler variablen (lokalt til skærmens kontekst) og opdaterer derefter TekstPatientID-værdi.
Bemærk
En anden mulighed for at fange variablen er at bruge Sæt-metode. Du kan bruge denne metode, hvis du vil have _selectedPatientId
tilgængelig som en global variabel. I øjeblikket er værdien kun beregnet til lærredsappens hovedskærm.
Brug GetResource-metoden
Efter at have valgt Patientid
, kan du nu bruge FHIRlinket GetResource-metode til at hente hele ressourcen. Denne forbindelsesmetode henter en enkelt FHIR-ressource for en given id
-værdi. Opdater OnSelect-metoden til at udføre denne handling.
Vælg galleriet PatientList.
Vælg OnSelect i rullemenuen på formellinjen.
Opdater formlen til at inkludere følgende kode på en ny linje:
UpdateContext({_selectedPatient: FHIRlink.GetResource("Patient", _selectedPatientId)});
Med det nye
UpdateContext
opkald kan du sende en anmodning til FHIR-forbindelsen om at hente hele patientressourcen for_selectedPatientId
værdien. Den opdaterede formel bør nu se ud som i det følgende udtryk:UpdateContext({_selectedPatientId: ThisItem.Value.resource.id}); Reset(TextPatientID); UpdateContext({_selectedPatient: FHIRlink.GetResource("Patient", _selectedPatientId)});
Bind patientoplysninger
I Sample 2 har vi bundet en Patient post til kontroller i en gallerielementskabelon. Nu har vi en fuld Patient post, og vi kan binde disse oplysninger på forskellige måder.
Simple datatyper såsom strenge eller datoer kan bindes til standardkontroller, mens underordnede arrays såsom name
, identifiers
eller telecom
kan vises i deres egne individuelle gallerier. Eller du kan også få adgang til underordnede elementer efter position ved hjælp af funktioner såsom First.
For dette eksempel, lad os binde dem direkte til en Tekstinput som vi gjorde for Patient identifikatoren. Da GetResource metodesvaret er et objekt uden type i formatet af en enkelt FHIR-ressource, kan du få direkte adgang til mange egenskaber. Med de underordnede array-elementer bundet til gallerier, skal du konvertere disse elementer til tabeller, som vi gjorde med entry
værdien af FHIR-pakken.
Tilføj Tekstetiketter til skærmen med følgende navne og tekstværdier:
Name SMS-besked LabelMaritalStatus Marital Status:
LabelBirthdate Birth Date:
LabelGender Gender:
TextMaritalStatus First(_selectedPatient.maritalStatus.coding).display
TextBirthdate _selectedPatient.birthDate
TextGender _selectedPatient.gender
Tilføj et lodret galleri til formularen, og navngiv det GalleryIdentifiers.
- Skift Layout til Titel, undertitel og brødtekst.
- Skift egenskaben Elementer til
Table(_selectedPatient.identifier)
I gallerielementskabelonen skal du erstatte de eksisterende Tekstetiketter kontroller med følgende etiket- og værdipar. Du kan også sørge for, at kontrollerne bliver rene i elementskabelonen ved at justere deres størrelse, placering og justering.
Name SMS-besked 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
Nu kan du teste opdateringer. Hent hele patientposten ved hjælp af metoden GetResource, og bind kontrolelementerne til tekstetiketter og en underordnet matrixegenskab til et nyt gallerikontrolelement.
Udfør appen i forhåndsversionstilstand, og vælg knappen Vis ressourcer.
Vælg emnerne på listen over patienter. Når du ændrer valget, kan du se alle de relaterede felter og galleriopdateringen.
Hent relaterede poster
Du har nu den fulde Patient-registrering i kontekstvariablen _selectedPatient
, og nogle af patientoplysningerne bliver vist. Ved at bruge samme connector kan du også hente FHIR-ressourceposter relateret til den valgte Patient, såsom Konsultationer.
Tip
For mere information om FHIR Konsultation-ressourcetypen, se HL7 FHIR - Konsultation.
Lad os bruge den velkendte ListResources metode, men ændre den ønskede ressourcetype til Konsultation og opdatere listen over anmodede _elements
. Du skal tilføje nogle ekstra parametre for at filtrere efter den nuværende _selectedPatientId
. For Konsultationer skal du filtrere på subject
egenskaben ved hjælp af patient-id'et.
Vælg galleriet PatientList.
Vælg OnSelect i rullemenuen på formellinjen.
For at opdatere formlen skal du tilføje følgende kode til en ny linje i formeleditoren. Formlen konverterer
entry
matrix direkte til en tabel, og ClearCollect metoden fjerner den aktuelle værdi af_encounterList
og indlæser resultaterne fra tabelkonverteringen:ClearCollect(_encounterList, Table(FHIRlink.ListResources("Encounter", {_elements:"id,identifier,status,class,period,type", additionalParameters:"subject=" & _selectedPatientId}).entry));
Den opdaterede formel bør nu se ud som i det følgende udtryk:
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));
Tilføj et lodret galleri til formularen, og navngiv det GalleryEncounters:
- Skift Layout til Titel, undertitel og brødtekst.
- Angiv Elementer-egenskaben til
_encounterList.entry
I gallerielementskabelonen skal du erstatte de eksisterende Tekstetiketter kontroller med følgende etiket- og værdipar. Du kan også sørge for, at kontrollerne bliver rene i elementskabelonen ved at justere deres størrelse, placering og justering.
Name SMS-besked 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)
Udfør appen i forhåndsversionstilstand, og vælg knappen Vis ressourcer.
Vælg emnerne på listen over patienter. For patienter med relaterede Konsultationer kan du se, at GalleryEncounters værdierne også er opdateret.
Nu har vi tilføjet endnu et opkald for at hente alle relaterede Konsultation-poster for en udvalgt patient. Disse poster vises på samme måde som Patient og relaterede name
værdier, med formatering af dato- og tidsværdier og visuel formatering for at fremhæve feltetiketterne. Hvis det er nødvendigt, kan du tilføje flere felter til denne liste. Med de nye Konsultation felter kan du også udforske tilføjelse af yderligere navigationsmuligheder og mere detaljerede data til applikationen.
Download eksempel-
Du kan downloade og importere den færdige canvas-app-løsning fra dette eksempel som et implementeringseksempel. Eksemplet er tilgængeligt til download i følgende tre formater:
- Zip-pakke: FHIRlink Sample3.zip
- MSAPP-arkiv: FHIRlink Sample3.msapp
- Power Platform løsning (indeholder alle prøver): FHIRlinkSamples.zip
For instruktioner om, hvordan du importerer og eksporterer lærredsapps, se Eksporter og importer lærredsapppakker.
Flere oplysninger
For at dykke ned i flere canvas-appdetaljer relateret til denne prøve, se: