Jak používat šablony IotJsonPathContent s mapováním zařízení služby MedTech

Poznámka

Fast Healthcare Interoperability Resources (FHIR®) je otevřená specifikace zdravotní péče.

Tento článek obsahuje přehled použití šablon IotJsonPathContent v rámci mapování zařízení služby MedTech.

Základy šablony IotJsonPathContent

Šablony IotJsonPathContent se dají použít, když služba MedTech ingestuje zprávy zařízení směrované z Azure IoT Hub. Když se v mapování zařízení použijí šablony IotJsonPathContent, služba MedTech extrahuje ID zařízení a časové razítko měření z metadat poskytovaných centrem IoT. DeviceIdExpression a TimestampExpression by neměly být součástí šablon IotJsonPathContent.

Šablony služby MedTech IotJsonPathContent podporují jazyk výrazů JSONPath. Výrazy slouží k identifikaci šablony, která se má použít s danou zprávou zařízení JSON (například TypeMatchExpression) a k extrahování konkrétních hodnot, které jsou potřeba k vytvoření normalizované zprávy (například: PatientIdExpression, ValueExpression atd.). Šablony IotJsonPathContent jsou podobné šabloně CalculatedContent s tím rozdílem, že deviceIdExpression a TimestampExpression nejsou podporované.

Poznámka

Šablony IotJsonPathContent nepodporují JMESPath.

Výraz je definován jako:

<name of expression> : <the expression>

V následujícím příkladu typeMatchExpression je definován jako:

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

Pokud je vaše služba MedTech nastavená na ingestování zpráv zařízení ze služby IoT Hub, nemusíte používat šablony IotJsonPathContent. Lze použít šablony CalculatedContent za předpokladu, že správně definujete DeviceIdExpression a TimestampExpression.

Šablony IotJsonPathContent umožňují porovnávání a extrahování hodnot ze zprávy zařízení přečtené z Azure Event Hubs centra událostí pomocí následujících výrazů:

Element Popis Příklad výrazu JSONPath
typeMatchExpression Výraz, který služba MedTech vyhodnocuje vůči datové části zprávy zařízení. Pokud služba najde odpovídající hodnotu tokenu, považuje šablonu za odpovídající. $..[?(@heartRate)]
patientIdExpression Výraz pro extrahování identifikátoru pacienta. Vyžaduje se , pokud je typ řešení služby MedTech nastavený na Vytvořit, a volitelné , pokud je typ řešení služby MedTech nastavený na Lookup. $.SystemProperties.iothub-connection-device-id
encounterIdExpression Volitelné: Výraz pro extrahování identifikátoru setkání. $.Body.encounterId
correlationIdExpression Volitelné: Výraz pro extrakci identifikátoru korelace. Tento výstup můžete použít k seskupení hodnot do jednoho pozorování v mapování cíle FHIR. $.Body.correlationId
values[].valueExpression Výraz pro extrahování požadované hodnoty $.Body.heartRate

Důležité

Služba MedTech použije ID zařízení definované ve službě IoT Hub jako identifikátor zařízení prostředku FHIR. Pokud je služba MedTech nastavená tak, aby používala typ řešení identity Lookup, musí ve službě FHIR existovat prostředek zařízení s odpovídajícím identifikátorem zařízení, jinak při zpracování zprávy zařízení dojde k chybě. Pokud je typ řešení identity služby MedTech nastavený na Vytvořit, patientIdExpression musí být do mapování zařízení zahrnuta hodnota, aby bylo možné vytvořit nový prostředek Pacient a prostředek zařízení, pokud ještě neexistují.

Poznámka

Typ Řešení určuje, jak služba MedTech přidružuje data zařízení k prostředkům zařízení a prostředkům pacientů. Služba MedTech čte prostředky zařízení a pacientů ze služby FHIR pomocí identifikátorů zařízení a identifikátorů pacientů. Pokud je identifikátor setkání zadaný a extrahovaný z datové části zařízení, je propojený s pozorováním, pokud ve službě FHIR existuje setkání s tímto identifikátorem. Pokud je identifikátor setkání úspěšně normalizován, ale neexistuje žádné FHIR Encounter s tímto identifikátorem setkání, vyvolá se výjimka FhirResourceNotFound . Další informace o konfiguraci typu řešení služby MedTech najdete v tématu Konfigurace karty Cíl.

Jazyky výrazů

JSONPath je výchozí jazyk výrazů a zahrnutí jazyka výrazů do šablony IotJsonPathContent se nepodporuje. Pokud se pokusíte zadat jazyk výrazu v objektu výrazu, šablona IotJsonPathContent obsahující objekt výrazu selže.

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

Tip

Další informace o JSONPath najdete v tématu JSONPath – XPath pro JSON. Šablony IotJsonPathContent používají k překladu výrazů JSONPath implementaci JSON .NET .

Příklad

Když služba MedTech zpracovává zprávu zařízení, šablony v KolekciContent se používají k vyhodnocení zprávy. Používá typeMatchExpression se k určení, jestli se má šablona použít k vytvoření normalizované zprávy ze zprávy zařízení. Pokud se typeMatchExpression hodnota vyhodnotí jako true, valueExpression použije se k vyhledání a extrakci hodnot JSON ze zprávy zařízení a k vytvoření normalizované zprávy.

Tip

Visual Studio Code s rozšířením Azure IoT Hub je doporučená metoda odesílání zpráv zařízení IoT do centra IoT pro účely testování a řešení potíží.

Ladicí program Mapování služby MedTech vám může pomoct s vytvářením, aktualizací a odstraňováním potíží se zařízením služby MedTech a mapováním cílů FHIR. Ladicí program Mapování umožňuje snadno zobrazit a provádět vložené úpravy v reálném čase, aniž byste museli opustit Azure Portal. Ladicí program mapování lze také použít k nahrávání zpráv testovacího zařízení, abyste viděli, jak budou vypadat po jejich zpracování na normalizované zprávy a transformaci na FHIR Observations.

V tomto příkladu používáme zprávu zařízení, která zachytává heartRate data:

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

Poznámka

Aby se zabránilo falšování identity zařízení ve zprávách typu zařízení-cloud (D2C), Azure IoT Hub před jejich směrováním do centra událostí rozšiřuje všechny zprávy zařízení o další vlastnosti. Příklad: Vlastnosti: iothub-creation-time-utc a Vlastnosti systému: iothub-connection-device-id. Další informace najdete v tématu Vlastnosti ochrany proti falšování identity.

patientIdExpression je vyžadován pouze pro služby MedTech v režimu vytváření ; Pokud se ale používá vyhledávání , musí v cílové službě FHIR existovat prostředek zařízení s odpovídajícím identifikátorem zařízení. Tyto příklady předpokládají, že vaše služba MedTech je v režimu vytváření . Další informace o vlastnostechVytvořit a Vyhledat cíl najdete v tématu Konfigurace cíle karta.

IoT Hub rozšiřuje a směruje zprávu zařízení do centra událostí předtím, než služba MedTech přečte zprávu zařízení z centra událostí:

{
    "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"
    }
}   

Pro fázi normalizace používáme toto mapování zařízení:

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

Výsledná normalizovaná zpráva bude po fázi normalizace vypadat takto:

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

Tip

Pomoc s řešením běžných chyb nasazení služby MedTech najdete v tématu Řešení chyb nasazení služby MedTech.

Pomoc s opravou chyb služby MedTech najdete v tématu Řešení chyb pomocí protokolů služby MedTech.

Další kroky

V tomto článku jste zjistili, jak používat šablony IotJsonPathContent s mapováním zařízení služby MedTech.

Pokud chcete nasadit službu MedTech s povoleným směrováním zpráv zařízení prostřednictvím Azure IoT Hub, přečtěte si téma

Přehled mapování cíle FHIR služby MedTech najdete v tématu

Přehled ukázek mapování na základě scénářů služby MedTech najdete v tématu

FHIR® je registrovaná ochranná známka společnosti Health Level Seven International, registrovaná v U.S. Trademark Office a je používána s jejich svolením.