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 deviceIdExpression
JSON değerlerini bulup ayıklamak ve normalleştirilmiş bir ileti oluşturmak için , timestampExpression
ve 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 matchedToken
olarak 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.