Freigeben über


Zuordnungen des Datenintegrations-Toolkits: Beispiele und Anwendungsfälle

Das Datenintegrations-Toolkit liefert eine umfassende Sammlung an Standardzuordnungen, die der HL7 FHIR-Spezifikation entsprechen.

Die standardmäßigen Entitätszuordnungen und Attributzuordnungen werden als Dataverse-Datensätze bereitgestellt und sind umfassend konfigurierbar, um Ihren Lösungsanforderungen gerecht zu werden. Dieser Artikel enthält einige Beispiele zur Verwendung dieser Zuordnungen.

Informationen zum Konfigurieren dieser Zuordnungen finden Sie unter Entitätszuordnungen konfigurieren und Attributzuordnungen konfigurieren. Die Dataverse Healthcare APIs, der Rückschreibeprozess und die virtuellen Gesundheitsdatentabellen verwenden dieselben konfigurierten Zuordnungen.

Beispiele für Entitätszuordnungen

In diesem Abschnitt werden einige Beispiele für die Verwendung von Entitätszuordnungen aufgeführt.

Beispiel 1: Patientenbehandlung

Wenn Sie der EKA (elektronischen Krankenakte) eines Patienten eine Patientenbegegnung hinzufügen, stellt die Entitätszuordnung die Transformationsregeln bereit, welche die Dataverse Healthcare APIs benötigen, um FHIR in Dataverse-Datensätze umzuwandeln.

  1. Die Entitätszuordnung msemr_encounter ↔ Behandlung verbindet die Azure FHIR-Ressource Behandlung mit der Dataverse-Entität msemr_encounter.

    Ein Screenshot, der das Entitätskartenbeispiel für die Patientenbegegnung zeigt.

  2. Datenänderungen in der Behandlung Ressource im Gesundheitsdatensystem des Kunden löst eine neue Nachricht an die Dataverse Healthcare APIs aus. Wenn beispielsweise die Dataverse Healthcare API Azure-Logik-App mithilfe der Healthcare-Datenpipeline-Vorlage bereitgestellt wird, wird ein neues FHIR-Paket im Blob Storage veröffentlicht. Die Logic App verarbeitet dann dieses Bündel und sendet es über die Dataverse Healthcare APIs an Dataverse.

  3. Die Dataverse Healthcare APIs verwenden die Entitätszuordnung msemr_encounter ↔ Behandlung. Die zugehörigen Attributkarten wandeln die eingehenden FHIR-Ressourcen in ihre repräsentativen Datensätze in Dataverse um.

Beispiel 2: Patientenaktualisierung in Dataverse und Zurückschreiben

Dieses Beispiel arbeitet mit einem Szenario, bei dem Sie einen Patientendatensatz in Dataverse aktualisieren und möchten, dass diese Änderung über die Azure Health Data Services in Ihr ePA-System (Ihre elektronische Patientenakte) zurückgeschrieben wird:

  1. Die Entitätszuordnung des Datenintegrations-Toolkits Kontakt ↔ Patient verbindet die Azure-FHIR-Ressource Patient mit der Dataverse-Entität Kontakt.

    Ein Screenshot, der das Entitätskartenbeispiel für die Patientenaktualisierung in Dataverse zeigt.

  2. Eine Datenänderung in einer Patientenakte in Dataverse löst das Dataverse-Rückschreiben-Plug-In aus.

  3. Dieses Dataverse Plug-In sendet eine Nachricht über den geänderten Datensatz an den ausgehenden FHIR Endpunkt, der im Rückschreibabschnitt der Integrationseinstellungen konfiguriert ist.

  4. In diesem Beispiel ist der FHIR Endpunkt so konfiguriert, dass er direkt an Azure Health Data Services übermittelt wird.

  5. Sie können auch eine Relay-Anwendung wie eine Azure Logic App oder eine Azure Function konfigurieren, die die Nachricht sowohl an Ihren EMR-Dienst als auch an Azure Health Data Services senden kann.

    Anmerkung

    Wir empfehlen, dass Sie Ihre Patienten-, Arzt-, verwalteten klinischen und referenzierten klinischen Daten mit Microsoft Cloud for Healthcare synchronisieren.

Weitere Informationen zum Konfigurieren des Rückschreibens finden Sie unter Übersicht über das Rückschreiben für Dataverse Healthcare APIs.

Attributzuordnungsbeispiele

Dieser Abschnitt enthält Beispiele zum Konfigurieren verschiedener Typen von Attributzuordnungen, auf die Sie möglicherweise stoßen.

Beispiel 1: vorhandenes Feld mit einfacher Zeichenfolge

Das folgende Beispiel würde dem Nachnamenwert eines Patienten aus FHIR abrufen, um ihn an Dataverse zu senden oder den Wert des Attributs lastname von Dataverse auf das Element family in FHIR zu aktualisieren.

`{"s": "$.name[?(@.use=='usual')].family"}`

Bei dieser Zuordnung wird davon ausgegangen, dass der name-Wert immer existiert und über JSONPath, der auf der FHIR-Ressource festgelegt ist, gefunden werden kann.

Beispiel 2: vorhandenes oder nicht vorhandenes Feld

Das folgende Beispiel wird das Feld city von address[0] abgerufen bzw. aktualisiert, falls es existiert. Wenn es sich eine Aktualisierung von Dataverse war und address[0] in FHIR nicht existiert hat, wird ein übergeordnetes address[0] erstellt und der Wert city von Dataverse festgelegt. Es erstellt auch einen Platzhalter oder Standardwerte für andere Attribute von Dataverse, die in FHIR fehlen könnten.

{
    "s": "$.address[0].city",
    "c": {
           "p": "address[0]",
           "a": [
                  {
                    "line": ["x"]
                  },
                  {
                    "city": "%"
                  },
                  {
                    "state": "x"
                  },
                  {
                    "postalCode": "x"
                  },
                  {
                    "country": "x"
                  }
                ]
         }
}

Notiz

Bei Zeichenfolgenwerten ist der festgelegte Wert die im Attribut-Array festgelegte literalen Zeichenfolgen, es sei denn, es handelt sich um eine der Sonderzeichensequenzen. Diese Sonderzeichensequenzen werden durch folgende Werte ersetzt:

  • % - Kopieren Sie den Wert des Attributs Dataverse.
  • %% - Kopieren Sie den Typ der FHIR-Referenzressource (Beispiel, Patient).
  • %%% - Kopieren Sie den Typ und die Ressourcen-ID der FHIR-Referenzressource (Beispiel: Patient/1234).

Beispiel 3: Patientenname

Wenn Sie die Regeln aus dem vorigen Abschnitt anwenden, können Sie das folgende Beispiel verwenden, um den Patientennamen zu aktualisieren.

{"s": "$.name[?(@use=='official')].given[0]", "c": {"p": "name[0]", "a": [{"use": "official"}, {"family": "x"}, {"given": ["%"]}]} }
  • „s“ = Extrahieren des given name eines FHIR-Patienten zum Laden in Dataverse
  • „c“ = Erstellen des given name eines Patienten, wenn dieser in FHIR nicht existiert
  • „p“ = Übergeordnetes Objekt des zu erstellenden Eintrags
  • „a“ = Array von Parametern, die beim Erstellen von „c“ verwendet werden

Anmerkung

Die Klammern {} enthalten den Ausdruck, während die Kommas "," die Ausdruckssegmente trennen. Die Array-Klammern [] bedeuten jedoch, dass der Ausdruck zwei oder mehr vollständige Segmente enthält.

"s": "$.name[?(@use=='official')].given[0]"
"c": {"p": "name[0]", "a": [{"use": "official"}, {"family": "x"}, {"given": ["%"]}]

Beispiel 4: codeable concept

Der Abgleich von FHIR kodierbaren Konzepten aus FHIR mit Dataverse ist derselbe wie der Abgleich von JSON Zeichenfolgen. Der einzige Unterschied besteht darin, dass eine zusätzliche Ebene erforderlich ist, um an die Details zu gelangen.

  1. Die URL der Erweiterung lautet http://hl7.org/fhir/StructureDefinition/patient-religion
  2. Wir möchten auf das Element valueCodeableConcept innerhalb dieses Erweiterungseintrags zugreifen.
  3. Wir wollen den ersten Eintrag im Kodierungsarray.
  4. Wir möchten die Anzeige so zuordnen, dass die Informationen in FHIR angezeigt werden, die mit einem Kodierungssystem verknüpft sind.

FHIR-Ressource

Ein Screenshot , der das Formular FJOR Codeable Concept anzeigt.

JSONPath

{"s": "$.extension[?(@.url=='http://hl7.org/fhir/StructureDefinition/patient-religion')].valueCodeableConcept.coding[0].display"}

Beispiel 5: Zuordnungstextinformationen

  1. Die URL der Erweiterung lautet http://hl7.org/fhir/StructureDefinition/patient-religion
  2. Wir möchten auf das Element valueCodeableConcept innerhalb dieses Erweiterungseintrags zugreifen.
  3. Wir möchten den Text so zuordnen, dass die von Epic an FHIR übermittelten Informationen angezeigt werden.

FHIR-Ressource

Ein Screenshot der das FHIR codeable concept für das Textbeispiel zeigt.

JSONPath

{"s": "$.extension[?(@.url=='http://hl7.org/fhir/StructureDefinition/patient-religion')].valueCodeableConcept.coding[0].text"}

Beispiel 6: zugeordneter Wert

In einem anderen Beispiel können Sie eine Attributzuordnung für das Geschlecht erstellen. In Dataverse ist der Attributname gendercode.

  1. Wählen Sie in der Entitätszuordnung für Kontakt die Option + Neue Entitätszuordnung des Update-Service.

  2. Da das Geschlecht eine Auswahlliste ist, ist der Aktionstyp Zugeordneter Wert.

    Geschlecht in Dataverse ist eine Auswahlliste. Da es sich in FHIR auch um eine Auswahlliste handelt, ordnen Sie die FHIR-Auswahllistenwerte den Dataverse-Auswahllistenwerten zu.

  3. Wählen Sie FHIR-Elementzuordnung aus, um die FHIR-Elementzuordnung für „Geschlecht“ hinzuzufügen. In diesem Beispiel ist dies eine JSON-Suchzeichenfolge, mit der Sie zum FHIR-Element „Geschlecht“ gelangen.

  4. Wählen Sie Speichern.

    Im Hintergrund ermittelt das System, dass das Geschlecht ein Optionssatz ist. Sie müssen für diesen Optionssatz mehrere Werte zuordnen.

  5. Imter Wertzuordnungen geben Sie den Azure-FHIR-Wert ein, der dem Optionssatz zugeordnet werden soll. Geben Sie beispielsweise männlich für die Option Männlich ein (Dataverse-Wert = 1) und geben Sie weiblich für die Option Weiblich ein (Dataverse-Wert = 2).

    Wählen Sie Speichern.

    Ein Screenshot mit den Wertezuordnungen

Beispiel 7: einen Suchstandardwert festlegen

Legen Sie in diesem Beispiel einen Standardwert für Wertezuordnungen fest.

  1. Wählen Sie in der Entitätszuordnung für Kontakt die Option + Neue Entitätszuordnung des Update-Service.

  2. Für Attributname wählen Sie Kontakttyp (msemr_contacttype) aus.

    Kontakttyp in Dataverse ist ein Optionssatz. Da Sie Patienten einbeziehen, möchten Sie immer, dass der Kontakttyp der Standardwert ist.

  3. Für Aktionstyp wählen Sie Standardwert festlegen.

    Eine FHIR-Elementzuordnung wird nicht benötigt, da Sie nur die Standardeinstellung festlegen. In diesem Fall hat FHIR kein Konzept für den Kontakttyp, Dataverse braucht es aber.

  4. Wählen Sie Speichern.

  5. Unter Wertzuordnungen wählen Sie die erste Zeile und Bearbeiten aus.

  6. In Attributwertzuordnung wählen Sie für Patient das Feld OptionSet-Beschriftung aus.

    Das Feld Wert zeigt den Standardwert für den Kontakttyp an. Die Dataverse Healthcare API füllt automatisch den Dataverse-Wert automatisch aus.

    Ein Screenshot, der ein Beispiel für das Festlegen des Standardwerts für eine Attributzuordnung zeigt

  7. Klicken Sie auf Speichern und schließen.

    In Wertzuordnungen ist der Dataverse-Standardwert festgelegt. Jedes Mal, wenn die Dataverse Healthcare API hereinkommt und einen Patienten erstellt, wird das Feld Kontakttyp auf Patient festgelegt.

Beispiel 8: Suche

Die folgenden Schritte zeigen ein Beispiel für die Zuordnung eines Dataverse-Attributs des Typs Lokup ist.

  1. Wählen Sie in der Entitätszuordnung für Kontakt die Option + Neue Entitätszuordnung des Update-Service.

  2. Für Attributname wählen Sie Primär praktizierender Arzt (msemr_generalpractitioner) aus.

    Der Attributtyp des Attributs Primär praktizierender Arzt ist Suche (ein Suchvorgang für die Kontaktentität).

  3. Für Aktionstyp ist der einzige Aktionstyp FK-Verweis (Fremdschlüsselverweis). Sie müssen der Dataverse Healthcare API mitteilen, wie diese Suche eingerichtet werden soll.

  4. Fügen Sie den FHIR Elemente Zuordnung Wert für den primär praktizierenden Arzt hinzu.

    Ein Screenshot, der den Zuordnungswert für das FHIR-Element anzeigt.

  5. Für Bevorzugte FHIR-Ressource wählen Sie Praktizierender Arzt.

    In Dataverse ist die Entitätsreferenz für „primär praktizierender Arzt“ Kontakt. Die bevorzugte FHIR-Ressource ist praktizierender Arzt.

  6. Wählen Sie Speichern.

Wenn ein Dataverse-Attribut den Typ Suche hat, können Sie nur eine Zuordnung erstellen, die ein Fremdschlüsselverweis (FK) ist. Um die FK-Referenz zu konfigurieren, geben Sie die FHIR-Ressource an, der Sie die Ziel-Entität zuordnen wollen.

Beispiel 9: codeable concept zuordnen

Die folgenden Verfahren bieten ein Beispiel für die Zuordnung eines Dataverse-Attributs, das den Typ „codeable concept“ hat.

  1. Unter Zuordnung einrichten wählen Sie Entitätszuordnungen aus.

  2. Wählen Sie für Entitätsname msemr_observation aus.

  3. Wählen Sie in zugehörigen Attributzuordnungen + Neue Entitätszuordnung Update-Service aus.

  4. Für Attributname wählen Sie Code für den Nenner des Verhältnisses (msemr_valueratiodenominatorcode).

    Der Attributtyp dieses Attributs ist Lookup. Es ist ein Suchvorgang nach der msemr_codeableconcept-Entität, bei der es sich um einen speziellen Entitätstyp im Datenmodell handelt. Dieser Entitätstyp wird anders behandelt als andere Entitäten.

  5. Für Aktionstyp ist der einzige Aktionstyp codeable concept.

  6. Fügen Sie den Wert FHIR-Elementzuordnung für das Attribut hinzu.

  7. Für „Codeable Concept“-Typ wählen Sie Code für die Mengeneinheit aus.

    Ein codeable concept Typ ähnelt einem großen Optionssatz, und jeder Wert im Optionssatz hat einen Typ. Dies erlaubt Ihnen, Optionssätze zu gruppieren und zu filtern. Beachten Sie, dass das Feld „Codeable Concept“-Typwert automatisch ausgefüllt wird, wenn Sie Mengeneinheitscode als „codedable concept“-Typ auswählen. Sie mussten den Optionssatzwert für den Mengeneinheitscode nicht kennen.

    Ein Screenshot der ein Beispielfür den codeable concept-Typ zeigt.

  8. Wählen Sie Speichern.

Wenn Dataverse eine Beobachtung erstellt wird, muss das codeable concept festgelegt werden. Dataverse findet dieses codeable concept, indem es in den Tabellen nach allen codeable concepts mit dem Typ Mengeneinheitscode sucht, der dem Codewert entspricht. Ein codeable concept besteht aus einem Text, einem Code und dem Typ. FHIR kennt den Code und den Text, weiß aber nicht, aus welchem codeable concept-Typ er ihn entnehmen soll.

Aktuelle Einschränkungen

  • Dynamische Array-Einfügungs- oder Erstellungspositionen dürfen nicht absolut sein. Die Auswahl erfolgt dynamisch über JSONPath.
  • Die Wertedaten müssen in JSON für Felder wie UTF-8-Zeichenfolgen für das Zielattribut, JSON UTC-Daten und boolesche Werte richtig formatiert sein.

Werkzeuge

Sie können mehrere Tools verwenden, um JSONPath-Zeichenfolgen zu testen, darunter die folgenden Anwendungen:

Weitere Informationen zur Verwendung dieser Tools finden Sie in der JSONPath-Anleitung.