Dela via


Verktygsmappningar för dataintegrering: Exempel och använda ärenden

Kommentar

Synkroniseringsadministrationen for FHIR har nu döpts om till Verktygslåda för dataintegrering.

Verktygslåda för dataintegrering ger en omfattande samling standardmappningar för att överensstämma med HL7 FHIR-specifikationen.

Standard entitetsmappningar och attributmappningar distribueras som Dataverse-poster och är mycket konfigurerbara så att de uppfyller de olika lösningskraven. Den här artikeln innehåller några specifika exempel som associeras med att använda dessa mappningar.

Information om hur du konfigurerar dessa mappningar finns i Konfigurera entitetsmappningar och Konfigurera attributmappningar. Efter konfigurationen används samma mappningar av Dataverse Healthcare APIs, tillbakaskrivningsprocessen och tabeller för virtuella hälsodata.

Exempel på entitetsmappning

Det här avsnittet innehåller några exempel på hur du använder entitetsmappningar.

Exempel 1: Patientkontakt

När du lägger till ett patientmöte i en patients EHR tillhandahåller entitetsmappningen de omvandlingsregler som Dataverse Healthcare APIs behöver för att omvandla FHIR till Dataverse-poster.

  1. Entitetsmappningen msemr_encounter ↔ Kontakttillfälle ansluter Azure FHIR-resurskontakttillfället till Dataverse-entiteten msemr_encounter.

    En skärmbild som visar entitetsmappningen, till exempel för patientmöten.

  2. Dataändringar i resursen Möte i kundens journalsystem utlöser ett nytt meddelande till Dataverse Healthcare APIs. Om exempelvis Azure Logic App (för Dataverse Healthcare APIs) har distribuerats med hjälp av pipelinemall för vårddata i lösningscenter för Microsoft Cloud, läggs ett nytt FHIR-paket upp till blobblagringen. Logikappen kommer sedan att bearbeta detta paket och publicera det i Dataverse via Dataverse Healthcare APIs.

    För mer information om konfigurationen för pipelinemall för Healthcare-data och logikappar, gå till Dataverse Healthcare APIs: Använda pipeline för vårddata för att distribuera Azure Logic Apps.

  3. Dataverse Healthcare APIs använder entitetsmappningen msemr_encounter ↔ Encounter. Med relaterade attributmappningar omvandlas de inkommande FHIR-resurserna till deras representativa poster i Dataverse.

Exempel 2: Patientuppdatering i Dataverse och tillbakaskrivning

Detta exempel föreställer sig att du uppdaterar en patientjournal i Dataverse och vill att ändringen ska skrivas tillbaka till ditt EMR-system via Azure Health Data Services.

  1. Entitetsmappningen kontakt ↔ Patient för verktygslådan för dataintegrering relaterar Azure FHIR-resursen Patient till Dataverse-entiteten Kontaskt.

    En skärmbild som visar entitetsmappningen, till exempel för uppdatering av patient i Dataverse.

  2. En dataändring i en patientpost i utlöser Dataverse ett Dataverse-plugin-program för tillbakaskrivning.

  3. Det här Dataverse plugin-programmet skickar ett meddelande om den ändrade posten till det slutpunkt som konfigurerats i tillbakaskrivningsavsnittet av integrationsinställningarna.

  4. I det här exemplet är FHIR-slutpunkt konfigurerad att publicera direkt till Azures tjänster för hälsodata.

  5. Du kan också konfigurera ett vidarebefordransprogram som en Azure Logic-appeller en Azure-funktion som kan publicera meddelandet till både din EMR-tjänst och Azure Health Data Services.

    Kommentar

    Vi rekommenderar att du behåller dina patientdata, samt hanterade kliniska data samt refererade kliniska data synkroniserade med Microsoft Cloud for Healthcare.

Mer information om hur du konfigurerar tillbakaskrivning finns i Översikt över tillbakaskrivningar för Dataverse Healthcare APIs.

Exempel på attributmappning

Det här avsnittet innehåller flera exempel på hur du konfigurerar olika typer av attributmappningar.

Enkel sträng befintligt fält

Följande exempel skulle få en patients efternamn från FHIR att skicka till Dataverse eller uppdatera lastname attributvärdet från Dataverse till family element i FHIR.

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

Den här mappningen förutsätter att name det alltid finns och kan lokaliseras via JSONPath som definieras på FHIR-resursen.

Befintligt eller icke-befintligt fält

Följande exempel skulle uppdatera city fältet för address[0] om det finns. Om denna uppdatering kom från Dataverse och address[0] inte fanns i FHIR skapas en address[0] överordnad, och värdet city anges från Dataverse. Det skapar också en platshållare eller standardvärden för andra attribut från Dataverse som saknas i FHIR.

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

Kommentar

För strängvärden är värdeuppsättningen den literala sträng som definieras i attributmatrisen, såvida det inte är en av specialteckensekvenserna. Specialteckensekvenserna ersätts med följande värden:

  • % – Kopiera värdet för Dataverse attribut.
  • %% – Kopiera typen av FHIR-referensresurs (till exempel Patient).
  • %%% – Kopiera typen och resurs-ID for FHIR-referensresursen (exempel,Patient/1234).

Patientnamn

Genom att tillämpa reglerna i föregående avsnitt kan vi använda följande exempel för att uppdatera patientnamn.

{"s": "$.name[?(@use=='official')].given[0]", "c": {"p": "name[0]", "a": [{"use": "official"}, {"family": "x"}, {"given": ["%"]}]} }
  • "s" = extrahera en FHIR-patients givenname som ska läsas in i Dataverse.
  • "c" = skapa en patients givenname när den inte finns i FHIR.
  • "p" = överordnat objekt för posten som ska skapas
  • "a" = matris med parametrar som ska användas när "c" skapas

Kommentar

Parenteserna {} innehåller uttrycket, medan kommatecken "," separerar uttryckssegmenten. Men matrisparenteserna [] betyder att uttrycket innehåller två eller flera kompletta segment.

"s": "$.name[?(@use=='official')].given[0]"

och

"c": {"p": "name[0]", "a": [{"use": "official"}, {"family": "x"}, {"given": ["%"]}]

Codeable Concept

Att matcha FHIR-codeable concepts från FHIR till Dataverse är detsamma som att matcha JSON-strängelement. Den enda skillnaden är att det finns en extra nivå som behövs för att komma till detaljerna.

  1. URL:en för tillägget är http://hl7.org/fhir/StructureDefinition/patient-religion
  2. Vi vill komma åt valueCodeableConcept elementet i den här förlängningsposten.
  3. Vi vill ha den första posten i kodmatrisen.
  4. Vi vill mappa skärmen så att den information i FHIR som är kopplad till ett kodsystem visas.

FHIR-resursEn skärmbild som visar FHIR codeable concepts.

JSONPathEn skärmbild med JSONPath.

Textexempel (språk)

  1. URL:en för tillägget är http://hl7.org/fhir/StructureDefinition/patient-religion
  2. Vi vill komma åt valueCodeableConcept elementet i den här förlängningsposten.
  3. Vi vill mappa texten för att visa informationen som ges till FHIR av Epic.

FHIR-resursEn skärmbild som visar FHIR codeable concepts för textexempel.

JSONPathEn skärmbild som visar JSONPath för textexempel.

Mappat värde

I ett annat exempel kan du skapa en attributmappning för kön. I Dataverse är attributnamnet könskod.

  1. I entitetsmappningen för kontakt, välj + Ny attributmappning för uppdateringstjänst.

  2. Eftersom kön är en plocklista är Åtgärdstyp lika med Mappat värde.

    Kön i Dataverse är en plocklista. Eftersom det också är en plocklista i FHIR mappar du FHIR-plocklistevärden till Dataverse-plocklistvärden.

  3. Välj FHIR-elementmappning för att lägga till FHIR-elementmappningen för kön. I detta exempel är det en JSON-söksträng som gör att du kommer till FHIR-elementet som är "kön".

  4. Välj Spara.

    Bakom kulisserna har systemet kommit fram till att kön är en alternativuppsättning. Du måste mappa flera värden för den här alternativuppsättning.

  5. Under Värdemappningar anger du Azure FHIR-värdet som ska mappas för alternativuppsättningen. Ange till exempel man för alternativet Man (Dataverse värdet är 1) och ange kvinna för alternativet Kvinna (Dataverse värdet är 2).

    Välj Spara.

    En skärmbild där värdemappningen visas.

Ange standardvärde

I det här exemplet anger du ett standardvärde för värdemappningar.

  1. I entitetsmappningen för kontakt, välj + Ny attributmappning för uppdateringstjänst.

  2. För Attributnamn, välj Kontaktyp (msemr_contacttype).

    Kontakttyp i Dataverse är en alternativuppsättning. Eftersom det är viktigt att du alltid använder kontakttypen som standard.

  3. För Åtgärdstyp, välj Ställ in standardvärde.

    En FHIR-elementmappning behövs inte eftersom du endast anger standardvärdet. I det här fallet har FHIR inget koncept för Kontakttyp, men Dataverse kräver Kontakttyp.

  4. Välj Spara.

  5. Under Värdemappningar, välj den första raden och välj Redigera.

  6. I Attributvärdesmappning, välj Patient för fältet Etiketten OptionSet.

    Fältet Värde visar standardvärdet för Kontakttyp. Dataverse Healthcare API fyller automatiskt i Dataverse värdet.

    En skärmbild där standardvärdet för en attributmappning visas.

  7. Välj Spara och stäng.

    Observera att i Värdemappningar, Dataverse standardvärdet anges. Varje gång Dataverse Healthcare API kommer in och skapar en patient anger det fältet Kontakttyp som Patient.

Sökning

I följande steg visas ett exempel på hur du mappar ett Dataverse-attribut som är en Sökning.

  1. I entitetsmappningen för kontakt, välj + Ny attributmappning för uppdateringstjänst.

  2. För Attributnamn, välj Primär vårdutövare (msemr_generalpractitioner).

    Attributtyp för attributet Primär vårdutövare är sökning (en sökning till entiteten Kontakt).

  3. För Åtgärdstyp är den enda åtgärdstypen FK-referens (referens för externa nycklar). Du måste ange för Dataverse Healthcare API hur du ställer in det här uppslaget.

  4. Lägg till värdet FHIR-elementmappning för primär vårdutövare.

    En skärmbild som visar mappningsvärde for FHIR element.

  5. För FHIR-resursreferens, välj vårdutövare.

    I Dataverse är entitetsreferensen för Primär vårdutövare är kontakt. För FHIR-resursreferens är vårdutövare.

  6. Välj Spara.

Om ett Dataverse attribut är en uppslagning, kan du bara skapa en mappning som är en sekundärnyckel (FK) referens. Konfigurera FK-referensen genom att ange den FHIR-resurs som du mappar målentiteten till.

Mappa Codeable Concept

I följande förfarande visas ett exempel på hur du mappar ett Dataverse attribut som är ett Codeable Concept.

  1. Under Mappningsinställningar, välj Entitetsmappningar.

  2. Under Entitetsnamn, välj msemr_observation.

  3. I relaterade attributmappningar, välj Ny attributmappning för uppdateringstjänst.

  4. För Attributnamn, välj Kvot, nämnarkod (msemr_valueratiodenominatorcode).

    Attributets Attributtyp är sökning. Det är en sökning relaterad till entiteten msemr_codeableconcept, som är en särskild entitetstyp i datamodellen som har hanterats på ett annat sätt än andra entiteter.

  5. För Åtgärdstyp är den enda åtgärdstypen Kodbart koncept.

  6. Lägg till värdet FHIR-elementmappning för attributet.

  7. För Typ av Codeable Concept, välj Kod för kvantitetsenhet.

    En codeable concept-typ liknar en stor alternativuppsättning, och varje värde i alternativuppsättningen har en typ. Det är ett sätt att gruppera och filtrera alternativuppsättningar. Notera att fältet Värde för Codeable Concept-typ fylldes i automatiskt när du valde Enhetskod för kvantitet som Codeable Concept-typ. Du behövde inte känna till alternativuppsättningsvärdet för kod för kvantitetsenhet.

    En skärmdump som visar ett exempel på codeable concept-typ.

  8. Välj Spara.

När nu Dataverse skapar en observation och behöver ställa in codeable concept upptäcker det detta codeable concept genom att titta på tabellerna för alla codeable concept där typen Kod för kvantitetsenhet matchar kodvärdet som finns i codeable concept. Ett kodbart koncept består av text, kod och typ. FHIR känner till koden och texten, men vet inte från vilken kodbar koncepttyp det ska hämta dessa.

Aktuella begränsningar

  • Inga dynamiska infognings- eller skapandelägen måste vara absoluta. Markeringen är dynamisk med hjälp av JSONPath.
  • Värdedata måste vara giltiga i JSON för fält som destinationsattribut UTF-8-strängar, JSON UTC-datum och boolesk.

Verktyg

Du kan använda flera verktyg för att testa JSONPath-strängar, inklusive följande verktyg:

Mer information om hur du använder dessa verktyg finns i JSONPath.

Se även

Vad är Microsoft Cloud for Healthcare?
Översikt över verktyg för dataintegrering
Hantera FHIR-data med hjälp av verktyg för dataintegrering
Konfigurera attributmappningar
Konfigurera expansionsmappningar