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