Översikt över FHIR-målmappningen för MedTech-tjänsten

Anteckning

FHIR® (Fast Healthcare Interoperability Resources) är en öppen hälsospecifikation.

Den här artikeln innehåller en översikt över FHIR-målmappningen för MedTech-tjänsten.

MedTech-tjänsten kräver två typer av JSON-mappningar som läggs till i Din MedTech-tjänst via api:et Azure Portal eller Azure Resource Manager. Enhetsmappningen är den första typen och styr mappningsvärden i enhetsdata som skickas till MedTech-tjänsten till ett internt, normaliserat dataobjekt. Enhetsmappningen innehåller uttryck som MedTech-tjänsten använder för att extrahera typer, enhetsidentifierare, mätningsdatumtid och måttvärden. FHIR-målmappningen är den andra typen och styr hur normaliserade data mappas till FHIR-observationer.

Anteckning

Enhets- och FHIR-målmappningarna utvärderas på nytt varje gång ett enhetsmeddelande bearbetas. Alla uppdateringar av någon av mappningarna börjar gälla omedelbart.

Grunderna för FHIR-målmappning

FHIR-målmappningen styr hur normaliserade data som extraheras från ett enhetsmeddelande mappas till en FHIR-observation.

  • Ska en observation skapas för en tidpunkt eller under en tidsperiod på en timme?
  • Vilka koder ska läggas till i observationen?
  • Ska värdet representeras som SampledData eller quantity?

De här datatyperna är alla alternativ för konfigurationskontrollerna för FHIR-målmappning.

När enhetsdata omvandlas till en normaliserad datamodell samlas normaliserade data in för omvandling till en FHIR-observation. Om observationstypen är SampledData grupperas data efter enhetsidentifierare, måtttyp och tidsperiod (tidsperioden kan vara antingen 1 timme eller 24 timmar). Utdata från den här grupperingen skickas för konvertering till en enda FHIR-observation som representerar tidsperioden för den datatypen. För andra observationstyper (Quantity, CodeableConcept och String) grupperas inte data, utan i stället omvandlas varje mätning till en enda observation som representerar en tidpunkt.

Tips

Mer information om hur MedTech-tjänsten bearbetar enhetsmeddelandedata till FHIR-observationer för beständighet i FHIR-tjänsten finns i Översikt över medTech-tjänstens enhetsmeddelandebearbetningssteg.

Det här diagrammet ger en bild av vad som händer under omvandlingsfasen i MedTech-tjänsten.

Diagramexempel på medtech-tjänstens enhetstransformeringssteg.

Anteckning

FHIR-observationen i det här diagrammet är inte den fullständiga resursen. Se Exempel i den här översikten för hela FHIR-observationen.

CollectionFhir

CollectionFhir är den rotmallstyp som används av MedTech-tjänstens FHIR-målmappning. CollectionFhir är en lista över alla mallar som används under omvandlingsfasen. Du kan definiera en eller flera mallar i CollectionFhir, där varje normaliserat meddelande utvärderas mot alla mallar.

Diagram som visar Mall för FHIR-målmappning i MedTech-tjänsten och kodarkitektur.

CodeValueFhir

CodeValueFhir är för närvarande den enda mall som stöds i FHIR-målmappningen. Det gör att du kan definiera koder, den effektiva perioden och värdet för observationen. Flera värdetyper stöds: SampledData, CodeableConcept, Quantity och String. Tillsammans med dessa konfigurerbara värden hanteras identifieraren för observationsresursen och länkningen till rätt enhets- och patientresurser automatiskt.

Viktigt

Lösningstypen anger hur MedTech-tjänsten associerar enhetsdata med enhetsresurser och patientresurser. MedTech-tjänsten läser enhets- och patientresurser från FHIR-tjänsten med hjälp av enhetsidentifierare och patientidentifierare. Om en påträffad identifierare anges och extraheras från nyttolasten för enhetsdata länkas den till observationen om det finns ett påträff på FHIR-tjänsten med den identifieraren. Om påträffade identifierare har normaliserats, men det inte finns något FHIR-möte med den påträffade identifieraren, genereras ett FhirResourceNotFound-undantag . Mer information om hur du konfigurerar lösningstypen för MedTech-tjänsten finns i Konfigurera fliken Mål.

Element Beskrivning Krävs
Typename Den typ av mått som den här mallen ska bindas till. Obs! Det bör finnas minst en mall för enhetsmappning som har samma typeName. Elementet typeName används för att länka en FHIR-målmappningsmall till en eller flera mallar för enhetsmappning. Enhetsmappningsmallar med samma typeName element genererar normaliserade data som utvärderas med en FHIR-målmappningsmall som har samma typeName. Sant
periodInterval Den tidsperiod som observationen skapade bör representera. Värden som stöds är 0 (en instans), 60 (en timme), 1 440 (en dag). Sant när observationstypen är SampledData; Ignoreras för andra observationstyper.
Kategori Valfritt antal CodeableConcepts för att klassificera typen av observation som skapats. Falskt
Koder En eller flera kodningar som ska tillämpas på den observation som skapats. Sant
codes[].code Koden för en kodning i elementet codes . Sant
codes[].system Systemet för en kodning i -elementet codes . Falskt
codes[].display Visningen för en kodning i -elementet codes . Falskt
värde Värdet som ska extraheras och representeras i observationen. Mer information om de element som elementet value innehåller finns i Värdetyper. Sant när elementet components inte används (såvida inte observationstypen är CodebleConcept, i vilket fall det här elementet inte bara är "inte obligatoriskt" utan också ignoreras).
Komponenter En eller flera komponenter som ska skapas vid observationen. Sant när elementet value inte används i stället.
components[].codes En eller flera kodningar som ska tillämpas på komponenten. Falskt
components[].value Värdet som ska extraheras och representeras i komponenten. Mer information om de element som elementet components[].value innehåller finns i Värdetyper. Sant när elementet components används (såvida inte observationstypen är CodebleConcept, i vilket fall det här elementet inte bara är "inte obligatoriskt" utan också ignoreras).

Värdetyper

Alla CodeValueFhir-mallars value element innehåller följande element:

Element Beskrivning Krävs
Valuetype Typ av värde. Det här värdet är "SampledData", "Quantity", "CodeableConcept" eller "String" beroende på värdetypen. Sant
valueName Namnet på värdet. Sant om inte valueType är CodeableConcept.

Dessa värdetyper stöds i MedTech-tjänstens FHIR-målmappning:

SampledData

Representerar datatypen SampledData FHIR. Observationsmätningar skrivs till en värdeström som börjar vid en tidpunkt och ökar framåt med hjälp av den definierade perioden. Om inget värde finns skrivs ett E till dataströmmen. Om perioden är sådan att två eller flera värden upptar samma position i dataströmmen används det senaste värdet. Samma logik tillämpas när en observation med SampledData uppdateras. För en CodeValueFhir-mall med värdetypen SampledData innehåller mallelementet value följande element:

Element Beskrivning Krävs
defaultPeriod Standardperioden i millisekunder som ska användas. Sant
Enhet Den enhet som ska anges för sampledDatas ursprung. Sant

Kvantitet

Representerar datatypen Quantity FHIR. Den här typen skapar en enda punkt i tiden, Observation. Om ett nytt värde kommer som innehåller samma enhetsidentifierare, måtttyp och tidsstämpel, uppdateras den tidigare observationen till det nya värdet. För en CodeValueFhir-mall med värdetypen Quantity innehåller mallelementet value följande element:

Element Beskrivning Krävs
Enhet Enhetsrepresentation. Falskt
kod Enhetens kodade form. Falskt
system System som definierar det kodade enhetsformuläret. Falskt

CodeableConcept

Representerar datatypen CodeableConcept FHIR. Värdet i den normaliserade datamodellen används inte, och i stället när den här typen av data tas emot skapas en observation med en specifik kod som representerar att en observation registrerades vid en viss tidpunkt. För en CodeValueFhir-mall med värdetypen CodeableConcept innehåller mallelementet value följande element:

Element Beskrivning Krävs
Text Oformaterad textrepresentation. Falskt
Koder En eller flera kodningar som ska tillämpas på den observation som skapats. Sant
codes[].code Koden för en kodning i elementet codes . Sant
codes[].system Systemet för en kodning i -elementet codes . Falskt
codes[].display Visningen för en kodning i -elementet codes . Falskt

Sträng

Representerar datatypen String FHIR. Den här typen skapar en enda punkt i tiden, Observation. Om ett nytt värde kommer som innehåller samma enhetsidentifierare, måtttyp och tidsstämpel, uppdateras den tidigare observationen till det nya värdet. Inga andra element har definierats.

Exempel

Tips

Du kan använda felsökningsprogrammet för MedTech-tjänstens mappning för att få hjälp med att skapa, uppdatera och felsöka MedTech-tjänstenheten och FHIR-målmappningarna. Med felsökningsprogrammet mappning kan du enkelt visa och göra infogade justeringar i realtid, utan att behöva lämna Azure Portal. Felsökningsprogrammet mappning kan också användas för att ladda upp testenhetsmeddelanden för att se hur de kommer att se ut efter att ha bearbetats till normaliserade meddelanden och omvandlats till FHIR-observationer.

Anteckning

Det här exemplet och det normaliserade meddelandet är en fortsättning från Översikt över enhetsmappningen för MedTech-tjänsten.

I det här exemplet använder vi ett normaliserat meddelande som heartRate samlar in data:

[
  {
    "type": "heartrate",
    "occurrenceTimeUtc": "2023-03-13T22:46:01.875Z",
    "deviceId": "device01",
    "properties": [
      {
        "name": "hr",
        "value": "78"
      }
    ]
  }
]

Vi använder den här FHIR-målmappningen för omvandlingsfasen:

{
  "templateType": "CollectionFhir",
  "template": [
    {
      "templateType": "CodeValueFhir",
      "template": {
        "codes": [
          {
            "code": "8867-4",
            "system": "http://loinc.org",
            "display": "Heart rate"
          }
        ],
        "typeName": "heartrate",
        "value": {
          "system": "http://unitsofmeasure.org",
          "code": "count/min",
          "unit": "count/min",
          "valueName": "hr",
          "valueType": "Quantity"
        }
      }
    }
  ]
}

Den resulterande FHIR-observationen ser ut så här efter omvandlingsfasen:

[
  {
    "code": {
      "coding": [
        {
          "system": {
            "value": "http://loinc.org"
          },
          "code": {
            "value": "8867-4"
          },
          "display": {
            "value": "Heart rate"
          }
        }
      ],
      "text": {
        "value": "heartrate"
      }
    },
    "effective": {
      "start": {
        "value": "2023-03-13T22:46:01.8750000Z"
      },
      "end": {
        "value": "2023-03-13T22:46:01.8750000Z"
      }
    },
    "issued": {
      "value": "2023-04-05T21:02:59.1650841+00:00"
    },
    "value": {
      "value": {
        "value": 78
      },
      "unit": {
        "value": "count/min"
      },
      "system": {
        "value": "http://unitsofmeasure.org"
      },
      "code": {
        "value": "count/min"
      }
    }
  }
]

Tips

Information om hur du åtgärdar vanliga distributionsfel för MedTech-tjänsten finns i Felsöka distributionsfel för MedTech-tjänsten.

Mer information om hur du åtgärdar MedTech-tjänstfel finns i Felsöka fel med hjälp av MedTech-tjänstloggarna.

Nästa steg

I den här artikeln har du fått en översikt över FHIR-målmappningen för MedTech-tjänsten.

En översikt över enhetsmappningen för MedTech-tjänsten finns i

Information om hur du använder CalculatedContent med enhetsmappningen för MedTech-tjänsten finns i

Information om hur du använder IotJsonPathContent med enhetsmappningen för MedTech-tjänsten finns i

Information om hur du använder anpassade funktioner med enhetsmappning för MedTech-tjänsten finns i

En översikt över exempel på scenariobaserade mappningar för MedTech-tjänsten finns i

FHIR® är ett registrerat varumärke som tillhör Health Level Seven International, registrerat i U.S. Trademark Office och används med deras tillstånd.