Freigeben über


Beispiel 3: Methoden zur Anzeige von FHIR-Daten kombinieren

Dieses Beispiel folgt Beispiel 2: FHIR-Daten mit dem FHIRlink-Konnektor in Ihre Canvas-App einbinden. Es verwendet dieselbe FHIRlink-Beispiel-App mit der ListResources-Methode, die wir zuvor zum Binden der resultierenden Werte an ein Canvas-App-Katalog-Steuerelement verwendet haben.

In diesem Beispiel zeigen wir Ihnen, wie Sie die gebundenen Patientenergebnisse verwenden, um eine einzelne FHIR-Ressource und Datensätze abzurufen, die sich auf die ausgewählte Ressource beziehen. Sie können die endgültige Lösung auch als Implementierungsbeispiel herunterladen und importieren. Weitere Informationen finden Sie unter Beispiel herunterladen. Bevor Sie mit dem Beispiel beginnen oder die Beispieldaten verwenden, lesen Sie die Annahmen über die Beispielverwendung.

Anmerkung

FHIR® (im Eigentum von Health Level Seven International), Google™ (im Eigentum von Google LLC) und EPIC® (im Eigentum von Epic Systems Corporation) sind eingetragene Marken. Die Verwendung dieser Marken auf dieser Seite stellt keine Billigung durch Health Level Seven International, Google oder Epic Systems dar.

Werte auswählen

Wenn Sie die FHIRlink-ListResources-Methode aufrufen, wird eine Liste von Patienten-FHIR-Ressourcen zurückgegeben. Der _elements-Parameter schränkt jedoch die Details jeder Ressource ein. Dieses Verhalten ist eine standardmäßige Designauswahl, die darauf abzielt, die Geschwindigkeit von Roundtrip-Aufrufen zu FHIR-Diensten zu optimieren und gleichzeitig unnötige Daten auf dem Client zu minimieren.

In diesem Beispiel erfahren Sie, wie Sie bei Bedarf selektiv vollständige Details eines Datensatzes abrufen können. Beispielsweise können Sie vollständige Details des Patientendatensatzes abrufen und anzeigen, wenn Sie ein Element im Katalog auswählen.

Zuerst müssen Sie die Auswahl in des Katalogs und die id des ausgewählten Patienten erfassen. Wir wissen, dass der Elementvorlagenkontext Zugriff auf ein Element in der entry-Liste bietet. Nutzen wir also diesen Kontext, um Details zum ausgewählten Patienten im Katalog zu erfassen.

  1. Wählen Sie den PatientList-Katalog aus.

  2. Wählen Sie in der Dropdownliste OnSelect aus. Alternativ können Sie auch die Registerkarte Erweitert im Eigenschaftenbereich auswählen und nach OnSelect suchen.

  3. Ändern Sie im Formeleditor den Wert von false zu UpdateContext({_selectedPatientId: ThisItem.Value.resource.id});.

  4. Fügen Sie den folgenden Wert zu einer neuen Zeile im Editor hinzu: Reset(TextPatientID);

  5. Die Formel sollte jetzt wie der folgenden Ausdruck aussehen:

    UpdateContext({_selectedPatientId: ThisItem.Value.resource.id});
    Reset(TextPatientID);
    
  6. Nachdem Sie die ausgewählte Patienten-ID in einer Variablen erfasst haben, können Sie sie auf dem Hauptbildschirm anzeigen. Um die Kennung anzuzeigen, fügen Sie dem Formular die folgenden Steuerelemente hinzu:

    • Fügen Sie dem Formular eine neue Textbeschriftung hinzu:

      • Nennen Sie es LabelPatientID.
      • Legen Sie den Wert Text auf Patienten-ID fest.
    • Fügen Sie dem Formular eine neue Texteingabe hinzu:

      • Nennen Sie es TextPatientID.
      • Legen Sie den Standardwert auf _selectedPatientId fest
      • Legen Sie den Wert Hinweistext auf Patienten-ID fest.
  7. Fügen wir als zusätzlichen Schritt die Löschen-Funktion zum Löschen der aktuellen Patientenliste. Dieser Schritt trägt dazu bei, dass der Katalog bei jeder Anfrage gelöscht wird.

    1. Wählen Sie die Schaltfläche ListResources aus. Wählen Sie in der Dropdownliste OnSelect aus.

    2. Fügen Sie am Anfang der Formel die folgenden Codezeilen ein:

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

    Jetzt können Sie die aktualisierten Formeln testen.

  8. Führen Sie die App im Vorschaumodus aus und wählen Sie die Schaltfläche Ressourcen auflisten aus.

  9. Wählen Sie die Elemente aus der Liste der Patienten aus. Sie sehen, dass die TextPatientID den id-Wert des Patienten anzeigt.

    Ein Screenshot, der die Patienten-ID eines Beispielpatienten zeigt.

Der Code für die OnSelect-Methode erfasst für den ausgewählten Patienten-Datensatz den id-Wert in die Variable _selectedPatientId ein. Die UpdateContext- und Zurücksetzen-Methoden weisen die Variable (lokal im Kontext des Bildschirms) zu und aktualisieren dann den TextPatientID-Wert.

Anmerkung

Eine weitere Möglichkeit zum Erfassen der Variablen ist die Verwendung der Festlegen-Methode. Sie können diese Methode verwenden, wenn _selectedPatientId als globale Variable verfügbar sein soll. Derzeit ist der Wert nur auf den Hauptbildschirm der Canvas-App beschränkt.

Die GetResource-Methode verwenden

Nach Auswahl der Patienten-id, können Sie jetzt die FHIRlink-GetResource-Methode zum Abrufen der vollständigen Ressource verwenden. Diese Konnektormethode ruft eine einzelne FHIR-Ressource für einen bestimmten id-Wert ab. Aktualisieren Sie die OnSelect-Methode zum Ausführen dieser Aktion.

  1. Wählen Sie den PatientList-Katalog aus.

  2. Wählen Sie in der Dropdownliste OnSelect aus.

  3. Aktualisieren Sie die Formel, um den folgenden Code in eine neue Zeile aufzunehmen:

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

  4. Mit dem neuen UpdateContext-Aufruf können Sie eine Anfrage an den FHIR-Konnektor stellen, um die gesamte Patientenressource für den _selectedPatientId-Wert abzurufen. Die aktualisierte Formel sollte jetzt wie der folgenden Ausdruck aussehen:

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

Patientendetails binden

In Beispiel 2 haben wir einen Patientendatensatz an Steuerelemente innerhalb einer Katalogelementvorlage gebunden. Jetzt haben wir einen vollständigen Patientendatensatz und können diese Informationen auf unterschiedliche Weise binden.

Einfache Datentypen wie Zeichenfolgen oder Datumsangaben können an Standardsteuerelemente gebunden werden, während untergeordnete Arrays wie name, identifiers oder telecom in ihren eigenen Katalogen angezeigt werden können. Alternativ können Sie mit Funktionen wie First auch nach Position auf untergeordnete Elemente zugreifen.

Für dieses Beispiel binden wir sie, wie schon bei der Patienten-ID, direkt an eine Texteingabe. Da die Antwort der GetResource-Methode ein untypisiertes Objekt im Format einer einzelnen FHIR-Ressource ist, können Sie direkt auf viele Eigenschaften zugreifen. Da die untergeordneten Array-Elemente an Kataloge gebunden sind, müssen Sie diese Elemente in Tabellen konvertieren, genau wie bei dem entry-Wert des FHIR-Pakets.

  1. Fügen Sie dem Bildschirm Textbeschriftungen mit den folgenden Namen und Textwerten hinzu:

    Name des Dataflows Text
    LabelMaritalStatus Marital Status:
    LabelBirthdate Birth Date:
    LabelGender Gender:
    TextMaritalStatus First(_selectedPatient.maritalStatus.coding).display
    TextBirthdate _selectedPatient.birthDate
    TextGender _selectedPatient.gender
  2. Fügen Sie dem Formular einen vertikalen Katalog hinzu und nennen Sie ihn GalleryIdentifiers.

    • Ändern Sie das Layout auf Titel, Untertitel und Text.
    • Ändern Sie die Eigenschaft Elemente auf Table(_selectedPatient.identifier)
  3. Ersetzen Sie in der Katalogelementvorlage die vorhandenen Textbeschriftungen-Steuerelemente durch die folgenden Beschriftungs- und Wertepaare. Sie können auch sicherstellen, dass die Steuerelemente in der Elementvorlage sauber gerendert werden, indem Sie ihre Größe, Position und Ausrichtung anpassen.

    Name des Dataflows Text
    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. Jetzt können Sie die Aktualisierungen testen. Rufen Sie den vollständigen Patientendatensatz mit der Methode GetResource ab und binden Sie die Steuerelemente an die Textbeschriftungen und eine untergeordnete Array-Eigenschaft an ein neues Galerie-Steuerelement.

  5. Führen Sie die App im Vorschaumodus aus und wählen Sie die Schaltfläche Ressourcen auflisten aus.

  6. Wählen Sie die Elemente aus der Liste der Patienten aus. Wenn Sie die Auswahl ändern, können Sie alle zugehörigen Felder und die Katalogaktualisierung sehen.

    Ein Screenshot mit den Patientendetails.

Sie haben jetzt den vollständigen Patientendatensatz in der _selectedPatient-Kontextvariablen beibehalten und einige der Patientendetails werden angezeigt. Mit demselben Konnektor können Sie auch FHIR-Ressourcendatensätze abrufen, die sich auf den ausgewählten Patienten beziehen, z. B. Behandlungen.

Tipp

Weitere Informationen zum FHIR-Behandlung-Ressourcentyp finden Sie unter HL7-FHIR – Behandlung.

Wir verwenden die bekannte ListResources-Methode, ändern aber den angeforderten Ressourcentyp in Behandlung und aktualisieren die Liste der angeforderten _elements. Sie müssen einige zusätzliche Parameter hinzufügen, um nach dem aktuellen _selectedPatientId zu filtern. Für Behandlungen müssen Sie mithilfe der Patienten-ID nach der subject-Eigenschaft filtern.

  1. Wählen Sie den PatientList-Katalog aus.

  2. Wählen Sie in der Dropdownliste OnSelect aus.

  3. Um die Formel zu aktualisieren, fügen Sie den folgenden Code in eine neue Zeile im Formeleditor ein. Die Formel wandelt das entry-Array direkt in eine Tabelle um, während die ClearCollect-Methode den aktuellen Wert von _encounterList löscht und die Ergebnisse der Tabellenkonvertierung lädt:

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

  4. Die aktualisierte Formel sollte jetzt wie der folgenden Ausdruck aussehen:

    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. Fügen Sie dem Formular einen Vertikalen Katalog hinzu und nennen Sie ihn GalleryEncounters:

    • Ändern Sie das Layout auf Titel, Untertitel und Text.
    • Legen Sie die Elemente-Eigenschaft auf _encounterList.entry fest
  6. Ersetzen Sie in der Katalogelementvorlage die vorhandenen Textbeschriftungen-Steuerelemente durch die folgenden Beschriftungs- und Wertepaare. Sie können auch sicherstellen, dass die Steuerelemente in der Elementvorlage sauber gerendert werden, indem Sie ihre Größe, Position und Ausrichtung anpassen.

    Name des Dataflows 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. Führen Sie die App im Vorschaumodus aus und wählen Sie die Schaltfläche Ressourcen auflisten aus.

  8. Wählen Sie die Elemente aus der Liste der Patienten aus. Für Patienten mit dazugehörigen Behandlungen können Sie sehen, dass auch die GalleryEncounters-Werte aktualisiert werden.

    Ein Screenshot mit den Patientenbehandlungsdetails.

Jetzt haben wir einen weiteren Aufruf hinzugefügt, um alle zugehörigen Begegnungsdatensätze für einen ausgewählten Patienten abzurufen. Diese Datensätze werden ähnlich wie die Patienten- und zugehörigen name-Werte angezeigt, mit Datums- und Uhrzeitwertformatierung und einigen visuellen Formatierungen zur Hervorhebung der Feldbeschriftungen. Bei Bedarf können Sie dieser Liste weitere Felder hinzufügen. Mit den neuen Feldern Behandlung können Sie der Anwendung auch weitere Navigationsoptionen und detailliertere Daten hinzufügen.

Beispiel- herunterladen

Sie können die fertige Canvas-App-Lösung aus diesem Beispiel als Implementierungsbeispiel herunterladen und importieren. Das Beispiel steht in den folgenden drei Formaten zum Download zur Verfügung:

Anweisungen zum Importieren und Exportieren von Canvas-Apps finden Sie unter Canvas-App-Pakete exportieren und importieren.

Erfahren Sie mehr

Weitere Details zur Canvas-App zu diesem Beispiel finden Sie unter: