MedTech hizmeti cihaz eşlemesi ile IotJsonPathContent şablonlarını kullanma
Not
Fast Healthcare Interoperability Resources (FHIR®), açık bir sağlık hizmeti belirtimidir.
Bu makalede, MedTech hizmeti cihaz eşlemesi içinde IotJsonPathContent şablonlarının nasıl kullanılacağına genel bir bakış sağlanır.
IotJsonPathContent şablonunun temelleri
MedTech hizmeti bir Azure IoT Hubyönlendirilen cihaz iletilerini alırken IotJsonPathContent şablonları kullanılabilir. Cihaz eşlemesinde IotJsonPathContent şablonları kullanıldığında, MedTech hizmeti ioT hub'ı tarafından sağlanan meta verilerden cihaz kimliğini ve ölçüm zaman damgasını ayıklar. DeviceIdExpression ve TimestampExpression, IotJsonPathContent şablonlarına eklenmemelidir.
MedTech hizmeti IotJsonPathContent şablonları JSON ifade dili JSONPath'i destekler. İfadeler, belirli bir JSON cihaz iletisiyle hangi şablonun kullanılacağını belirlemek (örneğin: TypeMatchExpression) ve normalleştirilmiş ileti oluşturmak için gereken belirli değerleri ayıklamak için kullanılır (örneğin: PatientIdExpression, ValueExpression vb.). IotJsonPathContent şablonları, DeviceIdExpression ve TimestampExpression desteklenmemesi dışında CalculatedContent şablonlarına benzer.
Not
JMESPath, IotJsonPathContent şablonları tarafından desteklenmez.
İfade şöyle tanımlanır:
<name of expression> : <the expression>
Aşağıdaki örnekte şu typeMatchExpression
şekilde tanımlanmıştır:
"templateType": "IotJsonPathContent",
"template": {
"typeName": "heartrate",
"typeMatchExpression": "$..[?(@heartRate)]",
...
}
MedTech hizmetiniz bir IoT hub'ından cihaz iletilerini almak için ayarlandıysa, IotJsonPathContent şablonlarını kullanmanız gerekmez. DeviceIdExpression ve TimestampExpression'ı doğru tanımladığınız varsayılarak CalculatedContent şablonları kullanılabilir.
IotJsonPathContent şablonları, aşağıdaki ifadeler aracılığıyla bir Azure Event Hubs olay hub'ından okunan bir cihaz iletisinde eşleştirmeye ve bu iletiden değerleri ayıklamaya olanak sağlar:
Öğe | Açıklama | JSONPath ifade örneği |
---|---|---|
typeMatchExpression | MedTech hizmetinin cihaz iletisi yüküne göre değerlendirdiğini ifade eder. Hizmet eşleşen bir belirteç değeri bulursa, şablonu bir eşleşme olarak kabul eder. | $..[?(@heartRate)] |
patientIdExpression | Hasta tanımlayıcısını ayıklamak için ifade. MedTech hizmetlerinin Çözümleme türüOluştur olarak ayarlandığında ve MedTech hizmetinin Çözümleme türüArama olarak ayarlandığında isteğe bağlı olarak gereklidir. | $.SystemProperties.iothub-connection-device-id |
encounterIdExpression | İsteğe bağlı: Karşılaşma tanımlayıcısını ayıklamak için ifade. | $.Body.encounterId |
correlationIdExpression | İsteğe bağlı: Bağıntı tanımlayıcısını ayıklamak için ifade. FHIR hedef eşlemesinde değerleri tek bir gözlemde gruplandırmak için bu çıkışı kullanabilirsiniz. | $.Body.correlationId |
values[].valueExpression | İstediğiniz değeri ayıklamak için ifade. | $.Body.heartRate |
Önemli
MedTech hizmeti, IoT hub'ında tanımlanan cihaz kimliğini FHIR kaynak cihaz tanımlayıcısı olarak kullanır. MedTech hizmeti , Arama'nın kimlik çözümleme türünü kullanacak şekilde ayarlandıysa, FHIR hizmetinde eşleşen cihaz tanımlayıcısına sahip bir Cihaz kaynağı bulunmalıdır , aksi takdirde cihaz iletisi işlendiğinde bir hata oluşur. MedTech hizmetinin kimlik çözümleme türü Oluştur olarak ayarlandıysa, yeni bir patientIdExpression
Hasta kaynağı ve Cihaz kaynağı yoksa oluşturulabilmesi için cihaz eşlemesine eklenmelidir.
Not
Çözüm türü, MedTech hizmetinin cihaz verilerini Cihaz kaynakları ve Hasta kaynaklarıyla nasıl ilişkilendirir belirtir. MedTech hizmeti, cihaz tanımlayıcılarını ve hasta tanımlayıcılarını kullanarak FHIR hizmetinden Cihaz ve Hasta kaynaklarını okur. Bir karşılaşma tanımlayıcısı belirtilir ve cihaz veri yükünden ayıklanırsa, bu tanımlayıcıya sahip FHIR hizmetinde bir karşılaşma olup olmadığını gözleme bağlanır. Karşılaşma tanımlayıcısı başarıyla normalleştirilirse ancak bu tanımlayıcıyla FHIR Karşılaşması yoksa, FhirResourceNotFound özel durumu oluşturulur. MedTech hizmeti Çözümleme türünü yapılandırma hakkında daha fazla bilgi için bkz. Hedef sekmesini yapılandırma.
İfade dilleri
JSONPath varsayılan ifade dilidir ve IotJsonPathContent şablonuna bir ifade dilinin eklenmesi desteklenmez. İfade nesnesinde ifade dilini belirtmeye çalışırsanız, ifade nesnesini içeren IotJsonPathContent şablonu başarısız olur.
"templateType": "IotJsonPathContent",
"template": {
"typeName": "heartrate",
"typeMatchExpression": "$..[?(@heartRate)]",
...
}
İpucu
JSONPath hakkında daha fazla bilgi için bkz. JSONPath - JSON için XPath. IotJsonPathContent şablonları , JSONPath ifadelerini çözümlemek için JSON .NET uygulamasını kullanır.
Örnek
MedTech hizmeti bir cihaz iletisini işlerken, CollectionContent içindeki şablonlar iletiyi değerlendirmek için kullanılır.
typeMatchExpression
, şablonun cihaz iletisinden normalleştirilmiş bir ileti oluşturmak için kullanılıp kullanılmayacağını belirlemek için kullanılır.
typeMatchExpression
değeri true olarak değerlendirilirse, cihaz iletisinden valueExpression
JSON değerlerini bulup ayıklamak ve normalleştirilmiş bir ileti oluşturmak için değeri kullanılır.
İpucu
Azure IoT Hub uzantısıyla Visual Studio Code, test ve sorun giderme amacıyla IoT hub'ınıza IoT cihaz iletileri göndermek için önerilen bir yöntemdir.
MedTech hizmet cihazı ve FHIR hedef eşlemelerini oluşturma, güncelleştirme ve sorunlarını giderme konusunda yardım için MedTech hizmet Eşlemesi hata ayıklayıcısını kullanabilirsiniz. Eşleme hata ayıklayıcısı, Azure portal bırakmak zorunda kalmadan satır içi ayarlamaları gerçek zamanlı olarak kolayca görüntülemenizi ve yapmanızı sağlar. Eşleme hata ayıklayıcısı, normalleştirilmiş iletilere işlendikten ve FHIR Gözlemlerine dönüştürüldükten sonra nasıl görüneceğini görmek için test cihazı iletilerini karşıya yüklemek için de kullanılabilir.
Bu örnekte, verileri yakalayan heartRate
bir cihaz iletisi kullanıyoruz:
{
"PatientId": "patient1",
"HeartRate" : "78"
}
Not
Cihazdan buluta (D2C) iletilerde cihaz yanıltmasını önlemek için, Azure IoT Hub tüm cihaz iletilerini olay hub'ına yönlendirmeden önce ek özelliklerle zenginleştirir. Örneğin: Özellikler: iothub-creation-time-utc
ve SystemProperties: iothub-connection-device-id
. Daha fazla bilgi için bkz. Kimlik sahtekarlığına karşı koruma özellikleri.
patientIdExpression
yalnızca Oluşturma modundaki MedTech hizmetleri için gereklidir; ancak Arama kullanılıyorsa, hedef FHIR hizmetinde eşleşen cihaz tanımlayıcısı olan bir Cihaz kaynağı bulunmalıdır. Bu örneklerde MedTech hizmetinizin Oluşturma modunda olduğu varsayılır.
Oluşturma ve AramaHedefi özellikleri hakkında daha fazla bilgi için bkz. Hedef sekmesini yapılandırma.
IoT hub'ı, MedTech hizmeti cihaz iletisini olay hub'ından okumadan önce cihaz iletisini zenginleştirir ve olay hub'ına yönlendirir:
{
"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"
}
}
Normalleştirme aşaması için bu cihaz eşlemesini kullanıyoruz:
{
"templateType": "CollectionContent",
"template": [
{
"templateType": "IotJsonPathContent",
"template": {
"typeName": "HeartRate",
"typeMatchExpression": "$..[?(@Body.HeartRate)]",
"patientIdExpression": "$.Body.PatientId",
"values": [
{
"required": true,
"valueExpression": "$.Body.HeartRate",
"valueName": "HeartRate"
}
]
}
}
]
}
Sonuçta elde edilen normalleştirilmiş ileti, normalleştirme aşamasından sonra şöyle görünür:
{
"type": "HeartRate",
"occurrenceTimeUtc": "2023-07-25T20:41:26.046Z",
"deviceId": "sampleDeviceId",
"patientId": "patient1",
"properties": [
{
"name": "HeartRate",
"value": "78"
}
]
}
İpucu
Yaygın MedTech hizmeti dağıtım hatalarını düzeltme konusunda yardım için bkz. MedTech hizmeti dağıtım hatalarını giderme.
MedTech hizmet hatalarını düzeltme konusunda yardım için bkz. MedTech hizmet günlüklerini kullanarak hataları giderme.
Sonraki adımlar
Bu makalede, MedTech hizmeti cihaz eşlemesi ile IotJsonPathContent şablonlarını kullanmayı öğrendiniz.
MedTech hizmetini bir Azure IoT Hub aracılığıyla cihaz ileti yönlendirmesi etkinleştirilmiş olarak dağıtmak için bkz.
MedTech hizmeti FHIR hedef eşlemesine genel bakış için bkz.
MedTech hizmeti senaryo tabanlı eşleme örneklerine genel bakış için bkz.
FHIR®, Health Level Seven International'ın KAYıTLı ticari markasıdır, ABD Ticari Marka Ofisi'nde kayıtlıdır ve izinleri ile birlikte kullanılır.