IotJsonPathContent sablonok használata a MedTech szolgáltatás eszközleképezésével

Megjegyzés

A Fast Healthcare Interoperability Resources (FHIR®) egy nyílt egészségügyi specifikáció.

Ez a cikk áttekintést nyújt az IotJsonPathContent sablonok MedTech szolgáltatásbeli eszközleképezésen belüli használatáról.

Az IotJsonPathContent sablon alapjai

Az IotJsonPathContent sablonok akkor használhatók, ha a MedTech szolgáltatás betölti az eszközüzeneteketegy Azure IoT Hub. Ha IotJsonPathContent sablonokat használ az eszközleképezésen belül, a MedTech szolgáltatás kinyeri az eszközazonosítót és a mérési időbélyeget az IoT Hub által biztosított metaadatokból. A DeviceIdExpression és a TimestampExpression nem szerepelhet az IotJsonPathContent sablonokban.

A MedTech szolgáltatás IotJsonPathContent sablonjai támogatják a JSONPath JSON-kifejezésnyelvet. A kifejezések egy adott JSON-eszközüzenethez használandó sablon azonosítására szolgálnak (például: TypeMatchExpression), valamint a normalizált üzenet létrehozásához szükséges konkrét értékek kinyerésére (például: PatientIdExpression, ValueExpression stb.). Az IotJsonPathContent sablonok hasonlóak a CalculatedContent sablonokhoz , kivéve a DeviceIdExpression és a TimestampExpression sablonokat.

Megjegyzés

Az IotJsonPathContent sablonok nem támogatják a JMESPath-t.

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

<name of expression> : <the expression>

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

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

Ha a MedTech szolgáltatás úgy van beállítva, hogy eszközüzeneteket fogadjon egy IoT Hubról, nem kell IotJsonPathContent sablonokat használnia. A CalculatedContent sablonok akkor használhatók, ha helyesen definiálja a DeviceIdExpression és a TimestampExpression paramétert.

Az IotJsonPathContent 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ésekkel:

Elem Leírás Példa JSONPath-kifejezésre
typeMatchExpression A MedTech szolgáltatás által kiértékelt kifejezés az eszközüzenet hasznos adatai alapján. Ha a szolgáltatás talál egyező tokenértéket, a sablont egyezésnek tekinti. $..[?(@heartRate)]
patientIdExpression A betegazonosító kinyerésére vonatkozó 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. $.SystemProperties.iothub-connection-device-id
encounterIdExpression Nem kötelező: A találkozás azonosítójának kinyerésére alkalmas kifejezés. $.Body.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ésben. $.Body.correlationId
values[].valueExpression A kívánt érték kinyerésére vonatkozó kifejezés. $.Body.heartRate

Fontos

A MedTech szolgáltatás az IoT Hubban meghatározott eszközazonosítót használja FHIR-erőforrás-azonosítóként. Ha a MedTech szolgáltatás úgy van beállítva, hogy a Keresés identitásfeloldási típust használjon, az FHIR szolgáltatásban léteznie kell egy egyező eszközazonosítóval rendelkező eszközerőforrásnak, vagy hiba történik az eszközüzenet feldolgozásakor. Ha a MedTech szolgáltatás identitásfeloldási típusa Létrehozás értékre van állítva, az eszközleképezésnek tartalmaznia kell egy patientIdExpression értéket, hogy létre lehessen hozni egy új betegerőforrást és eszközerőforrást, ha még nem léteznek.

Megjegyzés

A Megoldás típusa azt határozza meg, hogy a MedTech szolgáltatás hogyan társítsa 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 és kinyer egy találkozási azonosítót az eszközadatok hasznos adataiból, akkor a rendszer társítja a megfigyeléshez, ha az FHIR szolgáltatásban ilyen azonosítóval találkozik. 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 ad a FhirResourceNotFound kivételnek. A MedTech szolgáltatásfeloldási típus konfigurálásáról további információt a Cél lap konfigurálása című témakörben talál.

Kifejezésnyelvek

A JSONPath az alapértelmezett kifejezésnyelv, és az IotJsonPathContent sablonba nem lehet belefoglalni egy kifejezésnyelvet. Ha egy kifejezésobjektumban megkísérli megadni a kifejezés nyelvét, a kifejezésobjektumot tartalmazó IotJsonPathContent sablon meghiúsul.

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

Tipp

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

Példa

Amikor a MedTech szolgáltatás egy eszközüzenetet dolgoz fel, a CollectionContent sablonjaival értékeli ki az üzenetet. A typeMatchExpression segítségével állapítható meg, hogy a sablon használható-e normalizált üzenet létrehozására az eszközüzenetből. Ha a typeMatchExpression kiértékelése igaz, akkor a rendszer az valueExpression érték használatával megkeresi és kinyeri a JSON-értékeket az eszközüzenetből, és létrehoz egy normalizált üzenetet.

Tipp

A Azure IoT Hub bővítménnyel rendelkező Visual Studio Code ajánlott módszer az IoT-eszközüzenetek IoT Hubra való küldéséhez teszteléshez és hibaelhárításhoz.

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ővel egyszerűen megtekintheti és valós időben elvégezheti a beágyazott módosításokat anélkül, hogy el kellene hagynia a Azure Portal. A leképezési hibakereső teszteszköz-üzenetek feltöltésére is használható, hogy lássa, hogyan fognak kinézni, miután normalizált üzenetekké dolgozták fel őket, és FHIR-megfigyelésekké alakítják át őket.

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

{
    "PatientId": "patient1",
    "HeartRate" : "78"
}

Megjegyzés

Ha el szeretné kerülni az eszközhamisítást az eszközről a felhőbe irányuló (D2C) üzenetekben, Azure IoT Hub további tulajdonságokkal bővíti az összes eszközüzenetet, mielőtt azokat az eseményközpontba irányítná. Például: Tulajdonságok: iothub-creation-time-utc és SystemProperties: iothub-connection-device-id. További információ: Hamisítás elleni tulajdonságok.

patientIdExpression csak a MedTech szolgáltatásokhoz szükséges létrehozási módban; A Keresés használata esetén azonban a cél FHIR szolgáltatásban léteznie kell egy egyező eszközazonosítóval rendelkező eszközerőforrásnak. Ezek a példák feltételezik, hogy a MedTech szolgáltatás létrehozási módban van. A Cél létrehozása és keresésetulajdonságokról további információt a Cél lap konfigurálása című témakörben talál.

Az IoT Hub kibővíti és átirányítja az eszközüzenetet az eseményközpontba, mielőtt a MedTech szolgáltatás beolvassa az eszközüzenetet az eseményközpontból:

{
    "Body": {
        "PatientId": "patient1",
        "HeartRate": "78"
    },
    "SystemProperties": {
        "iothub-enqueuedtime": "2023-07-25T20:41:26.046Z",
        "iothub-connection-device-id": "sampleDeviceId"
    },
    "Properties": {
        "iothub-creation-time-utc": "2023-07-25T20:41:26.046Z"
    }
}   

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

{
    "templateType": "CollectionContent",
    "template": [
        {
            "templateType": "IotJsonPathContent",
            "template": {
                "typeName": "HeartRate",
                "typeMatchExpression": "$..[?(@Body.HeartRate)]",
                "patientIdExpression": "$.Body.PatientId",
                "values": [
                    {
                        "required": true,
                        "valueExpression": "$.Body.HeartRate",
                        "valueName": "HeartRate"
                    }
                ]
            }
        }
    ]    
}

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

{
    "type": "HeartRate",
    "occurrenceTimeUtc": "2023-07-25T20:41:26.046Z",
    "deviceId": "sampleDeviceId",
    "patientId": "patient1",
    "properties": [
        {
            "name": "HeartRate",
            "value": "78"
        }
    ]
}

Tipp

Ha segítségre van szüksége a MedTech szolgáltatás gyakori üzembehelyezési hibáinak elhárításához, tekintse meg a MedTech szolgáltatás üzembehelyezési hibáinak elhárítását ismertető cikket.

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ók használatával kapcsolatos hibák elhárítását ismertető cikket.

Következő lépések

Ebben a cikkben megtanulta, hogyan használhatja az IotJsonPathContent sablonokat a MedTech szolgáltatás eszközleképezésével.

A MedTech szolgáltatás Azure IoT Hub keresztül engedélyezett eszközüzenet-útválasztással történő üzembe helyezéséhez lásd:

A MedTech szolgáltatás FHIR célleképezésének áttekintését lásd:

A MedTech szolgáltatás forgatókönyvalapú leképezési mintáinak áttekintéséért lásd:

Az FHIR® a Health Level Seven International bejegyzett védjegye, amelyet az Egyesült Államok Védjegyhivatalában regisztráltak, és engedélyükkel használják.