Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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, bontsa ki a példányt, amely itt található. Az aktív példányok támogatása a következő régiókban 2028. május 3-ával fejeződik be: USA 2. nyugati régiója, Egyesült Királyság déli régiója, Nyugat-Európa, USA keleti régiója, USA 2. keleti régiója, 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 az IotJsonPathContent sablonok MedTech szolgáltatáseszköz-leképezésen belüli használatáról.
Az IotJsonPathContent sablon alapjai
Az IotJsonPathContent sablonok akkor használhatók, amikor a MedTech szolgáltatás az Azure IoT Hub -ból irányított eszközüzeneteket fogad be. Ha IotJsonPathContent-sablonokat használ a eszközleképezési, 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.
Az IotJsonPathContent MedTech szolgáltatássablonjai támogatják a JSONPath JSON-kifejezésnyelvet. 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: PatientIdExpression, ValueExpression stb.). Az IotJsonPathContent-sablonok hasonlóak a CalculatedContent sablonokhoz, de a DeviceIdExpression és a TimestampExpression nem támogatott.
Megjegyzés
Az IotJsonPathContent sablonok nem támogatják a JMESPath alkalmazást.
A kifejezés a következőképpen van definiálva:
<name of expression> : <the expression>
Az alábbi példában a typeMatchExpression a következőképpen van definiálva:
"templateType": "IotJsonPathContent",
"template": {
"typeName": "heartrate",
"typeMatchExpression": "$..[?(@heartRate)]",
...
}
Ha a MedTech szolgáltatás az eszközüzenetek IoT Hubról való betöltésére van beállítva, akkor nem kell IotJsonPathContent-sablonokat használnia. A CalculatedContent sablonok akkor használhatók, ha helyesen definiálja a DeviceIdExpression és a TimestampExpression parancsot.
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 |
|---|---|---|
| típusmegfelelé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. | $..[?(@heartRate)] |
| patientIdExpression | A betegazonosító kinyerésére alkalmas kifejezés. Kötelező, amikor a MedTech szolgáltatás Felbontás típusaLétrehozásvan beállítva, és választható, amikor a MedTech szolgáltatás Felbontás típusaKeresésvan beá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ére vonatkozó kifejezés. Ezzel a kimenettel egyetlen megfigyelésbe csoportosíthatja az értékeket az FHIR® célleképezésében. | $.Body.correlationId |
| értékek[].valueExpression | A keresett érték kinyerésére vonatkozó kifejezés. | $.Body.heartRate |
Fontos
A MedTech szolgáltatás az IoT Hubban definiált 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 keresésiidentitásfeloldási típust használjon, az egyező eszközazonosítóval rendelkező eszközerőforrásnak kell lennie az FHIR szolgáltatásban, vagy hiba történik az eszközüzenet feldolgozásakor. Ha a MedTech szolgáltatás identitásfeloldási típusa a létrehozása, akkor a patientIdExpression-nek szerepelnie kell az eszközleképezésben, hogy létrehozhassunk egy új betegerőforrást és eszközerőforrást, ha azok még nem léteznek.
Megjegyzés
A Felbontás típusa 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 az FHIR szolgáltatásból az eszköz- és betegerőforrásokat olvassa be, eszközazonosítók, és betegazonosítóksegítségével. Ha egy találkozási azonosító van megadva és kinyerve az eszközadatok hasznos adataiból, akkor a rendszer összekapcsolja a megfigyeléssel, ha az FHIR szolgáltatásban ilyen azonosítóval találkozik. Ha a találkozási azonosító sikeresen normalizálva van, de nem létezik FHIR-találkozás ezzel a találkozási azonosítóval, FhirResourceNotFound kivétel keletkezik. A MedTech szolgáltatás felbontástípusánakkonfigurálásáról további információt a Céllap konfigurálásacímű témakörben talál.
Kifejezésnyelvek
A JSONPath az alapértelmezett kifejezési nyelv, és egy kifejezés nyelvének az IotJsonPathContent sablonba való felvétele nem támogatott. 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)]",
...
}
Jótanács
További információ a JSONPathról: JSONPath – XPath for JSON. Az IotJsonPathContent-sablonok a JSON .NET implementáció használatával értékelik ki a JSONPath-kifejezéseket.
Példa
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 értéke igaz, akkor a valueExpression érték használatával megkeresheti és kinyerheti a JSON-értékeket az eszközüzenetből, és normalizált üzenetet hozhat létre.
Jótanács
Visual Studio Code és az Azure IoT Hub bővítmény 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ás leképezési hibakereső használható 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 az Azure Portalt. 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:
{
"PatientId": "patient1",
"HeartRate" : "78"
}
Megjegyzés
Az eszközhamisítás elkerülése érdekében az Azure IoT Hub további tulajdonságokkal bővíti az összes eszközüzenetet az eseményközpontba való átirányítás előtt. Például: Tulajdonságok: iothub-creation-time-utc és Rendszertulajdonságok: iothub-connection-device-id. További információ: Hamisítás elleni tulajdonságok.
patientIdExpression csak a MedTech-szolgáltatásokhoz szükséges a Create módban; ha azonban a Keresés módot használják, akkor a cél FHIR szolgáltatásban léteznie kell egy eszközerőforrásnak, amely egyező eszközazonosítóval rendelkezik. Ezek a példák feltételezik, hogy a MedTech szolgáltatás létrehozása módban van. A létrehozása és Kereséscéltulajdonságokcímű témakörben talál további információt A céllap konfigurálásacímű témakörben.
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 felolvassa 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 a normalizálási fázishoz használjuk:
{
"templateType": "CollectionContent",
"template": [
{
"templateType": "IotJsonPathContent",
"template": {
"typeName": "HeartRate",
"typeMatchExpression": "$..[?(@Body.HeartRate)]",
"patientIdExpression": "$.Body.PatientId",
"values": [
{
"required": true,
"valueExpression": "$.Body.HeartRate",
"valueName": "HeartRate"
}
]
}
}
]
}
Az eredményként 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"
}
]
}
Jótanács
A MedTech szolgáltatás gyakori üzembehelyezési hibáinak elhárításához a MedTech szolgáltatás üzembe helyezési hibáinak elhárításacímű témakörben talál segítséget.
Ha segítségre van szüksége a MedTech szolgáltatás hibáinak elhárításához, olvassa el A MedTech szolgáltatásnaplókhasználatával kapcsolatos hibák elhárítása.
Következő lépések
Eszközüzenetek fogadása az Azure IoT Hubon keresztül
A FHIR célleképezés á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.