Del via


Tilknytning af værktøjspakker til dataintegration: Eksempler og use cases

Værktøjspakken til dataintegration leverer en omfattende samling af standardkort, der er designet til at være i overensstemmelse med HL7 FHIR-specifikation.

Standardobjektknytninger og attributtilknytninger installeres som Dataverse poster og kan i høj grad konfigureres for at imødekomme løsningskravene. Denne artikel indeholder nogle eksempler, der er knyttet til brugen af disse tilknytninger.

Du kan finde oplysninger om, hvordan du konfigurerer disse tilknytninger, ved at gennemgå Konfiguration af objekt tilknytninger og Konfiguration af attributkort. Dataverse healthcare API'er, tilbageskrivningsprocessen og de virtuelle sundhedsdatatabeller bruger de samme konfigurerede tilknytninger.

Eksempler på objekttilknytning

I dette afsnit vises nogle eksempler på brug af objekttilknytninger.

Eksempel 1: Patientkonsultation

Når du føjer en patientkonsultation til en patients EHR (elektroniske tilstandsposter), indeholder objekttilknytningen de transformeringsregler, som Dataverse healthcare API'er skal bruge for at transformere FHIR til Dataverse poster.

  1. Objekttilknytningen msemr_encounter ↔ Konsultation opretter forbindelse mellem Azure FHIR-ressourcen Konsultation og Dataverse-objektet msemr_encounter.

    Et skærmbillede, der viser eksempel på objekttilknytning for patientkonsultation.

  2. Dataændringer i ressourcen Konsultation i kundens sundhedspostsystem udløser en ny meddelelse til Dataverse Healthcare API'er. Hvis f.eks. Dataverse healthcare API Azure Logic-appen installeres ved hjælp af Healthcare data pipeline-skabelonen, sendes et nyt FHIR-bundt til blob storage. Logikappen behandler derefter dette bundt og sender det til Dataverse via Dataverse Healthcare API'er.

  3. Dataverse Healthcare API'er bruger msemr_encounter ↔ Encounter objekttilknytningen. De relaterede attributtilknytninger transformerer de indgående FHIR-ressourcer til deres repræsentative poster i Dataverse.

Eksempel 2: Patientopdatering i Dataverse og tilbageskrivning

Dette eksempel antager et scenarie, hvor du opdaterer en patientpost i Dataverse, og ønsker at ændringen skal skrives tilbage til dit EMR-system (electronic medical records) via Azure Health-dataservices.

  1. Objekttilknytningen med dataintegrationsværktøjssæt kontakt ↔ Patient i værktøjspakken til dataintegration relaterer Azure FHIR-ressourcen Patient til Dataverse-objektet Kontakt.

    Et skærmbillede, der viser eksempel på objekttilknytning for patientopdatering i Dataverse.

  2. En dataændring i en patientpost i Dataverse udløser Dataverse-tilbageførsels-plug-in'en.

  3. Denne Dataverse-plug-in sender en meddelelse om den ændrede post til det udgående FHIR-slutpunkt, der er konfigureret i tilbageførselssektionen i integrationsindstillingerne.

  4. I dette eksempel er FHIR-slutpunktet konfigureret til at sende direkte til Azure Health Data Services.

  5. Du kan også konfigurere et relay-program, f.eks. en Azure Logic App eller en Azure-funktion, der både kan sende meddelelsen til din EMR-tjeneste og Azure Health Data Services.

    Bemærk

    Vi anbefaler, at du holder dine patientdata, lægedata, administrerede kliniske data og refererede kliniske data synkroniseret med Microsoft Cloud for Healthcare.

Du kan finde flere oplysninger om konfiguration af tilbageskrivning, ved at gå til Oversigt over tilbageskrivning for Dataverse Healthcare API'er.

Eksempler på attributtilknytning

Dette afsnit indeholder eksempler på konfiguration af forskellige typer attributkort, du kan støde på.

Eksempel 1: Eksisterende felt i simpel streng

I følgende eksempel hentes en patients efternavn fra FHIR for at sende det til Dataverse eller for at opdatere attributværdien lastname fra Dataverse til family-elementet i FHIR.

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

Denne tilknytning antager, at name værdien altid eksisterer og kan findes via den JSONPath, der er defineret for FHIR-ressourcen.

Eksempel 2: Eksisterende eller ikke-eksisterende felt

I følgende eksempel hentes/opdateres city feltet for address[0], hvis det findes. Hvis det var en opdatering fra Dataverse, og address[0] ikke fandtes i FHIR, ville den oprette en address[0] overordnet og angive city-værdien fra Dataverse. Den opretter også en pladsholder eller standardværdier for andre attributter fra Dataverse, der måske mangler i FHIR.

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

Bemærk

I forbindelse med strengværdier er den bogstavelige værdi defineret i attributmatrixen, medmindre det er en af sekvenserne med specialtegn. Disse specialtegn med specialtegn erstattes med værdier på følgende måde:

  • % – Kopiér værdien for Dataverse-attributten.
  • %% - Kopiér typen af FHIR-referenceressource (f.eks. Patient).
  • %%% – Kopiér typen af og ressource-id'et for FHIR-referenceressourcen (f.eks. Patient/1234).

Eksempel 3: Patientnavn

Anvend reglerne i forrige afsnit, og brug følgende eksempel til at opdatere patientens navn.

{"s": "$.name[?(@use=='official')].given[0]", "c": {"p": "name[0]", "a": [{"use": "official"}, {"family": "x"}, {"given": ["%"]}]} }
  • "s" = Udtræk en FHIR-patients given name, som skal indlæses i Dataverse
  • "c" = Opret en patients given name, når det ikke findes i FHIR
  • "p" = Overordnet objekt for den post, der skal oprettes
  • "a" = Matrix med parametre, der skal bruges, når du opretter "c"

Bemærk

De kantede parenteser {} indeholder udtrykket, mens kommaerne "," adskiller udtrykssegmenterne. De kantede parenteser [] angiver dog, at udtrykket indeholder to eller flere komplette segmenter.

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

Eksempel 4: Koncept, der kan kodes

Matchende FHIR codeable concepts fra FHIR til Dataverse er de samme elementer som de tilsvarende JSON-strengelementer. Den eneste forskel er, at der skal bruges et ekstra niveau for at komme til detaljerne.

  1. URL-adressen til udvidelsen er http://hl7.org/fhir/StructureDefinition/patient-religion
  2. Vi ønsker at få adgang til elementet valueCodeableConcept i denne udvidelsespost.
  3. Den første post skal findes i kodningsmatrixen.
  4. Visningen skal tilknyttes, så der vises oplysninger i FHIR, som er knyttet til et kodningssystem.

FHIR-ressource

Et skærmbillede, der viser FHIR codeable concepts.

JSONPath

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

Eksempel 5: Tilknyt tekstoplysninger

  1. URL-adressen til udvidelsen er http://hl7.org/fhir/StructureDefinition/patient-religion
  2. Vi ønsker at få adgang til elementet valueCodeableConcept i denne udvidelsespost.
  3. Vi vil gerne tilknytte teksten, så den viser de oplysninger, der er givet til FHIR af Epic.

FHIR-ressource

Et skærmbillede, der viser FHIR codeable concepts for teksteksemplet.

JSONPath

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

Eksempel 6: Tilknyttet værdi

Du kan for eksempel oprette en attributtilknytning for køn. Attributnavnet i Dataverse er gendercode.

  1. Vælg + Ny attributtilknytning af opdateringsservice i objekttilknytningen for Kontakt.

  2. Da Køn er en valgliste, er Handlingstype Tilknyttet værdi.

    Køn i Dataverse er en valgliste. Da det også er en valgliste i FHIR, skal du knytte FHIR-valglisteværdierne til Dataverse-valglisteværdierne.

  3. Vælg FHIR-elementtilknytning for at tilføje FHIR-elementtilknytningen for Køn. I dette eksempel er det en JSON-søgestreng, der giver dig mulighed for at få adgang til FHIR-elementet Køn.

  4. Vælg Gem.

    I baggrunden bestemmer systemet, om kønnet er en grupperet indstilling. Du skal tilknytte flere værdier til denne grupperede indstilling.

  5. Under Værditilknytninger skal du angive den Azure FHIR-værdi, der skal tilknyttes for den grupperede indstilling. Du kan for eksempel skrive mand for indstillingen Mand (Dataverse-værdi = 1) og skrive kvinde for indstillingen Kvinde (Dataverse-værdi = 2).

    Vælg Gem.

    Et skærmbillede, hvor værditilknytninger vises.

eksempel 7: Angiv standardværdi

I dette eksempel skal du angive en standardværdi for værditilknytninger.

  1. Vælg + Ny attributtilknytning af opdateringsservice i objekttilknytningen for Kontakt.

  2. Vælg Kontakttype (msemr_contacttype) for Attributnavn.

    Kontakttype i Dataverse er en grupperet indstilling. Da du indfører patienter, skal kontakttypen altid være standard.

  3. Vælg Angiv standardværdi for Handlingstype.

    En FHIR-elementtilknytning er ikke nødvendig, da du kun angiver standardværdien. I dette tilfælde har FHIR ikke begrebet Kontakttype, men Dataverse kræver Kontakttype.

  4. Vælg Gem.

  5. Markér den første række under Værditilknytninger, og vælg Rediger.

  6. Vælg Patient for feltet OptionSet-navn i Attributværditilknytning.

    Feltet Værdi viser standardværdien for kontakttype. Dataverse Healthcare API udfylder automatisk Dataverse-værdien.

    Et skærmbillede, hvor der vises et eksempel på, hvordan du angiver standardværdien for en attributtilknytning.

  7. Vælg Gem og luk.

    Under Værditilknytninger angives Dataverse-standardværdien. Hver gang Dataverse Healthcare API kommer ind og opretter en patient, angives feltet Kontakttype til Patient.

Eksempel 8: Opslag

I følgende trin kan du se et eksempel på tilknytning af en Dataverse-attribut af typen Opslag.

  1. Vælg + Ny attributtilknytning af opdateringsservice i objekttilknytningen for Kontakt.

  2. Vælg Primær behandler (msemr_generalpractitioner) for Attributnavn.

    Attributtypen for attributten Primær behandler er Opslag (et opslagsfelt for objektet Kontakt).

  3. I forbindelse med Handlingstype er den eneste handlingstype Fremmednøglereference (fremmednøglereference). Du skal fortælle Dataverse Healthcare API, hvordan dette opslag skal angives.

  4. Tilføj værdien FHIR-elementtilknytning for den primære behandler.

    Et skærmbillede, der viser værdien af FHIR-objekttilknytningen.

  5. Vælg Behandler for FHIR-ressourcepræference.

    I Dataverse er Kontakt objektreferencen for Primær behandler. FHIR-ressourcereferencen er Behandler.

  6. Vælg Gem.

Hvis en Dataverse-attribut er et opslag, kan du kun oprette en tilknytning, der er en fremmednøglereference. Hvis du vil konfigurere fremmednøglereferencen, skal du angive den FHIR-ressource, du knytter destinationsobjektet til.

Eksempel 9: Tilknyt koncept, der kan kodes

I følgende procedure kan du se et eksempel på tilknytning af en Dataverse-attribut, der er et koncept, der kan kodes.

  1. Vælg Objekttilknytninger under Opsætning af tilknytning.

  2. Vælg msemr_observation under EntityName.

  3. I relaterede attributtilknytninger skal du vælge + Ny attributtilknytning af opdateringsservice.

  4. Vælg Nævnerkode for forhold (msemr_valueratiodenominatorcode) for Attributnavn.

    Attributtypen for denne attribut er Opslag. Det er et opslag for objektet msemr_codeableconcept, som er en særlig objekttype i datamodellen. Denne objekttype håndteres anderledes end andre objekter.

  5. I forbindelse med Handlingstype er den eneste handlingstype Codeable Concept.

  6. Tilføj værdien FHIR-elementtilknytning for attributten.

  7. Vælg Kode til mængdeenhed for Codeable Concept-type.

    En codeable concept-type svarer til en stor grupperet indstilling, og alle værdier i den grupperede indstilling har en type. Den tillader, at du grupperer og filtrerer indstillinger. Bemærk, at feltet Værdi af Codeable Concept-type automatisk blev angivet, da du valgte Kode til mængdeenhed som koncepttype, der kan kodes. Det var ikke nødvendigt at kende værdien i den grupperede indstilling for Kode til mængdeenhed.

    Et skærmbillede, der viser et eksempel på codeable concept-type.

  8. Vælg Gem.

Når der Dataverse opretter et kodekoncept, skal det kodes. Dataverse finder den koncept, der skal kodes, ved at søge i tabeller efter alle koncepter, der kan kodes, med typen Kode til mængdeenhed, der svarer til kodeværdien. Et koncept, der kan kodes, består af en tekst, en kode og typen. FHIR kender koden og teksten, men ved ikke, fra hvilken type af koncept, der kan kodes, det skal hentes fra.

Gældende begrænsninger

  • Dynamisk indsættelse eller oprettelse af matrix kan ikke absolut. Valget er dynamisk ved hjælp af JSONPath.
  • Værdidata skal være korrekt formateret i JSON for felter, for eksempel destinationsattribut UTF-8 strenge, JSON UTC-datoer og booleske oplysninger.

Funktioner

Du kan bruge flere værktøjer til at teste JSONPath-strenge, herunder følgende applikationer:

Du kan finde flere oplysninger om brug af disse værktøjer i JSONPath-vejledning.