MedTech hizmeti cihaz eşlemesi ile CalculatedContent ş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 CalculatedContent şablonlarının nasıl kullanılacağına genel bir bakış sağlanır.

CalculatedContent şablonunun temelleri

MedTech hizmeti CalculatedContent şablonları iki JSON ifade dilini destekler: JSONPath ve JMESPath. İ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: TimestampExpression, DeviceIdExpression vb.).

Not

İfade dili tanımlamazsanız, MedTech hizmeti cihaz eşleme şablonları şablon için yapılandırılan varsayılan ifade dilini kullanır. Varsayılan değer JSONPath'tir, ancak gerekirse üzerine yazabilirsiniz.

İfade şöyle tanımlanır:

<name of expression> : {
   "value" : <the expression>,
   "language": <the expression language>
}

Aşağıdaki örnekte şu typeMatchExpression şekilde tanımlanmıştır:

"templateType": "CalculatedContent",
"template": {
   "typeName": "heartrate",
   "typeMatchExpression": {
      "value" : "$..[?(@heartRate)]",
      "language": "JsonPath"
   },
...
}

CalculatedContent ş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 JMESPath 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. Hizmet, daha sonraki tüm ifadeleri burada eşleşen ayıklanan belirteç değerine göre değerlendirir. $..[?(@heartRate)] [Body][?contains(keys(@), `heartRate`)] \| @[0]
deviceIdExpression Cihaz tanımlayıcısını ayıklamak için ifade. $.matchedToken.deviceId @.matchedToken.deviceId
timestampExpression Ölçümün OccurrenceTimeUtc değerinin zaman damgası değerini ayıklamak için ifade. $.matchedToken.endDate @.matchedToken.endDate
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. $.matchedToken.patientId @.matchedToken.patientId
encounterIdExpression İsteğe bağlı: Karşılaşma tanımlayıcısını ayıklamak için ifade. $.matchedToken.encounterId @.matchedToken.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. $.matchedToken.correlationId @.matchedToken.correlationId
values[].valueExpression İstediğiniz değeri ayıklamak için ifade. $.matchedToken.heartRate @.matchedToken.heartRate

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

İfade için kullanılacak dili belirtirken aşağıdaki değerler geçerlidir:

İfade dili Değer
JSONPath JsonPath
JMESPath JmesPath

JSONPath varsayılan ifade dili olduğundan, ifade dilinin bir CalculatedContent şablonuna eklenmesi gerekmez.

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

Ayrıca, parametresini kullanarak defaultExpressionLanguage bir CalculatedContent şablonu için varsayılan ifade dilini açıkça ayarlayabilirsiniz:

"templateType": "CalculatedContent",
   "template": {
      "typeName": "heartrate",
      "defaultExpressionLanguage": "JmesPath",
      "typeMatchExpression": "[Body][?contains(keys(@), `heartRate`)] | @[0]",
...
}

İpucu

JSONPath hakkında daha fazla bilgi için bkz. JSONPath - JSON için XPath. CalculatedContent şablonları , JSONPath ifadelerini çözümlemek için JSON .NET uygulamasını kullanır.

JMESPath hakkında daha fazla bilgi için bkz. JMESPath Belirtimi. CalculatedContent şablonları , JMESPath ifadelerini çözümlemek için JMESPath .NET uygulamasını kullanır.

Özel işlevler

MedTech hizmeti için bir dizi özel işlev de mevcuttur. MedTech hizmeti özel işlevleri, JMESPath belirtiminin bir parçası olarak sağlanan işlevlerin dışındadır. MedTech hizmeti özel işlevleri hakkında daha fazla bilgi için bkz. MedTech hizmeti cihaz eşlemesiyle özel işlevleri kullanma.

Ö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 deviceIdExpressionJSON değerlerini bulup ayıklamak ve normalleştirilmiş bir ileti oluşturmak için , timestampExpressionve valueExpression değerleri kullanılır. Bu örnekte, tüm ifadeler JSONPath'te yazılmıştır, ancak JMESPath'teki tüm ifadeleri yazmak geçerli olacaktır. Hangi ifade dilinin en uygun olduğunu belirlemek şablon yazarına bağlıdır.

İpucu

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:

{
    "heartRate": "78",
    "endDate": "2023-03-13T22:46:01.8750000",
    "deviceId": "device01"
}

Olay hub'ı, MedTech hizmeti cihaz iletisini olay hub'ından okumadan önce cihaz iletisini zenginleştirir:

{
    "Body": {
        "heartRate": "78",
        "endDate": "2023-03-13T22:46:01.8750000",
        "deviceId": "device01"
    }
}

Normalleştirme aşaması için bu cihaz eşlemesini kullanıyoruz:

{
    "templateType": "CollectionContent",
    "template": [
        {
            "templateType": "CalculatedContent",
            "template": {
                "typeName": "heartrate",
                "typeMatchExpression": "$..[?(@heartRate)]",
                "deviceIdExpression": "$.matchedToken.deviceId",
                "timestampExpression": "$.matchedToken.endDate",
                "values": [
                    {
                        "required": true,
                        "valueExpression": "$.matchedToken.heartRate",
                        "valueName": "hr"
                    }
                ]
            }
        }
    ]
}

Önemli

MedTech hizmeti, gelen cihaz veri yükünü değerlendirir typeMatchExpression . Hizmet eşleşen bir belirteç değeri bulursa, şablonu bir eşleşme olarak kabul eder.

MedTech hizmeti sonraki tüm ifadeleri yeni bir belirteç değeriyle değerlendirir. Bu yeni belirteç değeri hem özgün cihaz veri yükünü hem de burada eşleşen ayıklanan belirteç değerini içerir.

Bu şekilde, özgün cihaz veri yükü ve eşleşen nesne sonraki ifadelerin her birinde kullanılabilir. Ayıklanan belirteç değeri özelliği matchedTokenolarak kullanılabilir.

{
    "Body": {
        "heartRate": "78",
        "endDate": "2023-03-13T22:46:01.8750000",
        "deviceId": "device01"
    },
    "matchedToken": {
        "heartRate": "78",
        "endDate": "2023-03-13T22:46:01.8750000",
        "deviceId": "device01"
    }
}

Sonuçta elde edilen normalleştirilmiş ileti, normalleştirme aşamasından sonra şöyle görünür:

[
    {
        "type": "heartrate",
        "occurrenceTimeUtc": "2023-03-13T22:46:01.875Z",
        "deviceId": "device01",
        "properties": [
            {
                "name": "hr",
                "value": "78"
            }
        ]
    }
]

İpucu

MedTech hizmeti dağıtım hatalarını giderme konusunda yardım için bkz. MedTech hizmeti dağıtım hatalarını giderme.

MedTech hizmet hatalarını giderme 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 CalculatedContent şablonlarını kullanmayı öğrendiniz.

MedTech hizmeti özel işlevlerini kullanmayı öğrenmek 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 izinle kullanılır.