Översikt över MedTech-tjänstens FHIR-målmappning

Den här artikeln innehåller en översikt över MedTech-tjänstens FHIR-målmappning®.

MedTech-tjänsten kräver två typer av JSON-mappningar som läggs till i Din MedTech-tjänst via Azure-portalen eller Azure Resource Manager-API:et. 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.

Kommentar

Enhets- och FHIR-målmappningarna utvärderas varje gång ett enhetsmeddelande bearbetas. Alla uppdateringar av mappningen 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 över en tidsperiod på en timme?
  • Vilka koder ska läggas till i observationen?
  • Ska värdet representeras som SampledData eller en Kvantitet?

Dessa datatyper ä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 enligt enhetsidentifierare, mättyp 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 (Kvantitet, CodeableConcept och Sträng) grupperas inte data, utan i stället omvandlas varje mätning till en enda observation som representerar en tidpunkt.

Dricks

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.

Diagram example of the MedTech service device message transformation stage.

Kommentar

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 showing MedTech service FHIR destination mapping template and code architecture.

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 ett mötesidentifierare har angetts och extraherats från nyttolasten för enhetsdata länkas den till observationen om det finns ett möte i FHIR-tjänsten med den identifieraren. Om mötesidentifieraren har normaliserats, men det inte finns något FHIR-möte med den påträffade identifieraren, utlöses ett FhirResourceNotFound-undantag. Mer information om hur du konfigurerar Lösningstypen för MedTech-tjänsten finns i Konfigurera fliken Mål.

Element Description Obligatoriskt
Typename Den typ av mätning som mallen ska binda 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 skapades 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 . Falsk
Koder En eller flera kodningar som ska tillämpas på den skapade observationen. Sant
codes[].code Koden för en kodning i -elementet codes . Sant
codes[].system Systemet för en kodning i elementet codes . Falsk
codes[].display Visningen för en kodning i elementet codes . Falsk
värde Värdet som ska extraheras och representeras i observationen. Mer information om elementen 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 "inte krävs" 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. Falsk
components[].value Värdet som ska extraheras och representeras i komponenten. Mer information om elementen 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 nödvändigt" utan också ignoreras).

Värdetyper

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

Element Description Obligatoriskt
Valuetype Typ av värde. Det här värdet skulle vara "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 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 Description Obligatoriskt
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ättyp och tidsstämpel, uppdateras föregående Observation till det nya värdet. För en CodeValueFhir-mall med värdetypen Quantity innehåller mallelementet value följande element:

Element Description Obligatoriskt
Enhet Enhetsrepresentation. Falsk
kod Kodad form av enheten. Falsk
System System som definierar det kodade enhetsformuläret. Falsk

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 Description Obligatoriskt
text Oformaterad textrepresentation. Falsk
Koder En eller flera kodningar som ska tillämpas på den skapade observationen. Sant
codes[].code Koden för en kodning i -elementet codes . Sant
codes[].system Systemet för en kodning i elementet codes . Falsk
codes[].display Visningen för en kodning i elementet codes . Falsk

String

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ättyp och tidsstämpel, uppdateras föregående Observation till det nya värdet. Inga andra element har definierats.

Exempel

Dricks

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-portalen. 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.

Kommentar

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

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 omvandlingssteget:

[
  {
    "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"
      }
    }
  }
]

Dricks

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

Översikt över enhetsmappning för MedTech-tjänsten

Så här använder du CalculatedContent-mallar med MedTech-tjänstens enhetsmappning

Så här använder du IotJsonPathContent-mallar med enhetsmappning för MedTech-tjänsten

Så här använder du anpassade funktioner med enhetsmappning för MedTech-tjänsten

Översikt över scenariobaserade mappningsexempel för MedTech-tjänsten

Kommentar

FHIR® är ett registrerat varumärke som tillhör HL7 och används med tillstånd av HL7.