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.