Megosztás a következőn keresztül:


A CalculatedContent-sablonok használata a MedTech szolgáltatás eszközleképezésével

Fontos

A MedTech szolgáltatás elavulását 2025. május 3-ával kezdeményezték. Ha a MedTech szolgáltatás használata már nem prioritás, szüntesse meg a példányt, amely itt található. Az aktív példányok támogatása az alábbi régiókban 2028. május 3-án szűnik meg: Nyugat USA 2, Egyesült Királyság Dél, Nyugat-Európa, Kelet USA, Ausztrália Kelet, Kelet USA 2, Közép-India, Észak-Európa. A MedTech szolgáltatás nyílt forráskódú verziója itt található.

Ez a cikk áttekintést nyújt a CalculatedContent-sablonok MedTech-szolgáltatáseszköz-leképezésen belüli használatáról.

A CalculatedContent sablon alapjai

A MedTech szolgáltatás CalculatedContent-sablonjai két JSON-kifejezésnyelvet támogatnak: A JSONPath és a JMESPath. A kifejezések egy adott JSON-eszközüzenethez (például TypeMatchExpression) használandó sablon azonosítására és a normalizált üzenet létrehozásához szükséges konkrét értékek kinyerésére szolgálnak (például: TimestampExpression, DeviceIdExpression stb.).

Megjegyzés:

Ha nem határoz meg kifejezésnyelvet, a MedTech szolgáltatás eszközleképezési sablonjai a sablonhoz konfigurált alapértelmezett kifejezésnyelvet használják. Az alapértelmezett érték a JSONPath, de szükség esetén felülírhatja azt.

A kifejezés a következőképpen van definiálva:

<name of expression> : {
   "value" : <the expression>,
   "language": <the expression language>
}

A következő példában typeMatchExpression a következőképpen van definiálva:

"templateType": "CalculatedContent",
"template": {
   "typeName": "heartrate",
   "typeMatchExpression": {
      "value" : "$..[?(@heartRate)]",
      "language": "JsonPath"
   },
...
}

A CalculatedContent sablonok lehetővé teszik az értékek egyeztetését és kinyerését egy Azure Event Hubs eseményközpontból beolvasott eszközüzenetből az alábbi kifejezések használatával:

Elem Leírás Példa JSONPath-kifejezésre Példa JMESPath-kifejezésre
típusegyezési kifejezés Az a kifejezés, amelyet a MedTech szolgáltatás kiértékel az eszközüzenet hasznos adatai alapján. Ha a szolgáltatás talál egy egyező token értéket, akkor a sablont egyezésnek tekinti. A szolgáltatás az összes későbbi kifejezést az itt kinyert token értéke alapján értékeli. $..[?(@heartRate)] [Body][?contains(keys(@), `heartRate`)] \| @[0]
deviceIdExpression Az eszközazonosító kinyerésére vonatkozó kifejezés. $.matchedToken.deviceId @.matchedToken.deviceId
timestampExpression A mérték értékének időbélyeg-értékét kinyerő OccurrenceTimeUtc kifejezés. $.matchedToken.endDate @.matchedToken.endDate
páciensIdKifejezés A betegazonosító kinyerésére alkalmas kifejezés. Akkor szükséges , ha a MedTech-szolgáltatások Felbontás típusaLétrehozás értékre van állítva, és nem kötelező , ha a MedTech szolgáltatás Felbontás típusaKeresési értékre van állítva. $.matchedToken.patientId @.matchedToken.patientId
encounterIdExpression Nem kötelező: A találkozás azonosítójának kinyeréséhez szükséges kifejezés. $.matchedToken.encounterId @.matchedToken.encounterId
correlationIdExpression Nem kötelező: A korrelációs azonosító kinyeréséhez szükséges kifejezés. Ezzel a kimenettel egyetlen megfigyelésbe csoportosíthatja az értékeket az FHIR® célleképezésében. $.matchedToken.correlationId @.matchedToken.correlationId
értékek[].értékkifejezés A keresett érték kinyerésére vonatkozó kifejezés. $.matchedToken.heartRate @.matchedToken.heartRate

Megjegyzés:

A Felbontás típus azt határozza meg, hogy a MedTech szolgáltatás hogyan társítja az eszközadatokat az eszközerőforrásokhoz és a Patient-erőforrásokhoz. A MedTech szolgáltatás eszköz- és betegerőforrásokat olvas be az FHIR szolgáltatásból eszközazonosítók és betegazonosítók használatával. Ha meg van adva egy találkozási azonosító és az eszköz adatcsomagjából kinyerhető, akkor a megfigyeléshez csatoljuk, ha az FHIR szolgáltatásban létezik ilyen azonosítóval rendelkező találkozás. Ha a találkozás azonosítója sikeresen normalizálva van, de nem létezik FHIR-találkozás ezzel a találkozási azonosítóval, a rendszer kivételt hoz létre a FhirResourceNotFound kivétellel. További információért a MedTech szolgáltatás feloldási típusának konfigurálásáról, lásd a Cél lap konfigurálása részt.

Kifejezésnyelvek

A kifejezéshez használni kívánt nyelv megadásakor a következő értékek érvényesek:

Kifejezés nyelve Érték
JSONPath JsonPath
JMESPath JmesPath

Mivel a JSONPath az alapértelmezett kifejezésnyelv, nem szükséges belefoglalni a kifejezés nyelvét egy CalculatedContent-sablonba.

"templateType": "CalculatedContent",
   "template": {
      "typeName": "heartrate",
      "typeMatchExpression": "$..[?(@heartRate)]",
...
}

A CalculatedContent-sablon alapértelmezett kifejezési nyelvét a paraméterrel defaultExpressionLanguage is beállíthatja:

"templateType": "CalculatedContent",
   "template": {
      "typeName": "heartrate",
      "defaultExpressionLanguage": "JmesPath",
      "typeMatchExpression": "[Body][?contains(keys(@), `heartRate`)] | @[0]",
...
}

Jótanács

További információ a JSONPathról: JSONPath – XPath for JSON. A CalculatedContent-sablonok a JSONPath-kifejezések feloldásához a JSON .NET implementációt használják.

A JMESPath szolgáltatással kapcsolatos további információkért lásd a JMESPath specifikációját. A CalculatedContent-sablonok a JMESPath-kifejezések feloldásához a JMESPath .NET implementációt használják.

Egyéni függvények

A MedTech szolgáltatáshoz testreszabott függvények is elérhetők. A MedTech szolgáltatás egyéni függvényei a JMESPath-specifikáció részeként megadott függvényen kívül vannak. A MedTech szolgáltatás egyéni függvényeivel kapcsolatos további információkért lásd: Egyéni függvények használata a MedTech szolgáltatás eszközleképezésével.

Example

Amikor a MedTech szolgáltatás egy eszközüzenetet dolgoz fel, a CollectionContent sablonjaival értékeli ki az üzenetet. A typeMatchExpression annak meghatározására szolgál, hogy a sablon használható-e normalizált üzenet létrehozásához az eszközüzenetből. Ha a typeMatchExpression kiértékelés igaz, akkor a rendszer az deviceIdExpression, timestampExpressionés valueExpression az értékeket használja a JSON-értékek megkereséséhez és kinyeréséhez az eszközüzenetből, és létrehoz egy normalizált üzenetet. Ebben a példában az összes kifejezés JSONPath nyelven van megírva, de a JMESPath-ban minden kifejezés írása érvényes lenne. A sablon szerzője határozza meg, hogy melyik kifejezés nyelve a legmegfelelőbb.

Jótanács

A MedTech szolgáltatásleképezés hibakeresőjével segítséget kaphat a MedTech szolgáltatáseszköz és az FHIR-célleképezések létrehozásához, frissítéséhez és hibaelhárításához. A leképezési hibakereső lehetővé teszi a beágyazott beállítások valós idejű megtekintését és módosítását anélkül, hogy el kellene hagynia a Azure portált. A leképezési hibakereső a teszteszköz-üzenetek feltöltéséhez is használható, hogy lássa, hogyan fognak kinézni a normalizált üzenetekké való feldolgozás után, és hogyan alakíthatók át FHIR-megfigyelésekké.

Ebben a példában egy eszközüzenetet használunk, amely heartRate adatokat rögzít:

{
    "heartRate": "78",
    "endDate": "2023-03-13T22:46:01.8750000",
    "deviceId": "device01"
}

Az eseményközpont kibővíti az eszközüzenetet, mielőtt a MedTech szolgáltatás felolvassa az eszközüzenetet az eseményközpontból:

{
    "Body": {
        "heartRate": "78",
        "endDate": "2023-03-13T22:46:01.8750000",
        "deviceId": "device01"
    }
}

Ezt az eszközleképezést a normalizálási fázishoz használjuk:

{
    "templateType": "CollectionContent",
    "template": [
        {
            "templateType": "CalculatedContent",
            "template": {
                "typeName": "heartrate",
                "typeMatchExpression": "$..[?(@heartRate)]",
                "deviceIdExpression": "$.matchedToken.deviceId",
                "timestampExpression": "$.matchedToken.endDate",
                "values": [
                    {
                        "required": true,
                        "valueExpression": "$.matchedToken.heartRate",
                        "valueName": "hr"
                    }
                ]
            }
        }
    ]
}

Fontos

A MedTech szolgáltatás kiértékeli a typeMatchExpression tekintetében a bejövő eszközadatok adatcsomagját. Ha a szolgáltatás talál egy egyező token értéket, akkor a sablont egyezésnek tekinti.

A MedTech szolgáltatás minden későbbi kifejezést kiértékel egy új tokenérték alapján. Ez az új token érték tartalmazza az eredeti eszköz adatcsomagját és az itt kinyert token értékét is.

Ily módon az eredeti eszközadatok hasznos adatai és a megfeleltetett objektum minden későbbi kifejezéshez elérhetők. A kinyert token értéke tulajdonságként matchedToken érhető el.

{
    "Body": {
        "heartRate": "78",
        "endDate": "2023-03-13T22:46:01.8750000",
        "deviceId": "device01"
    },
    "matchedToken": {
        "heartRate": "78",
        "endDate": "2023-03-13T22:46:01.8750000",
        "deviceId": "device01"
    }
}

Az eredményként kapott normalizált üzenet így fog kinézni a normalizálási szakasz után:

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

Jótanács

Ha segítségre van szüksége a MedTech szolgáltatás üzembe helyezési hibáinak elhárításához, olvassa el a MedTech szolgáltatás üzembehelyezési hibáinak hibaelhárítását.

Ha segítségre van szüksége a MedTech szolgáltatás hibáinak elhárításához, tekintse meg a MedTech szolgáltatásnaplókkal kapcsolatos hibák elhárítását.

Következő lépések

Egyéni függvények használata a MedTech szolgáltatás eszközleképezésével

Az FHIR célleképezésének áttekintése

A MedTech szolgáltatás forgatókönyvalapú leképezési mintáinak áttekintése

Megjegyzés:

Az FHIR® a HL7 bejegyzett védjegye, amelyet a HL7 engedélyével használnak.