A CalculatedContent sablonok használata a MedTech szolgáltatás eszközleképezésével
Megjegyzés
A Fast Healthcare Interoperability Resources (FHIR®) egy nyílt egészségügyi specifikáció.
Ez a cikk áttekintést nyújt a CalculatedContent sablonok MedTech szolgáltatásbeli eszközleképezésen belüli használatáról.
A CalculatedContent sablon alapjai
A MedTech szolgáltatás CalculatedContent sablonjai két JSON-kifejezésnyelvet támogatnak: JSONPath és JMESPath. A kifejezések segítségével azonosítható, hogy melyik sablont használja egy adott JSON-eszközüzenettel (például: TypeMatchExpression), valamint a normalizált üzenet létrehozásához szükséges konkrét értékek kinyerésére (például: TimestampExpression, DeviceIdExpression stb.).
Megjegyzés
Ha nem határoz meg kifejezésnyelvet, a MedTech szolgáltatás eszközleképezési sablonjai a sablonhoz konfigurált alapértelmezett kifejezésnyelvet használják. Az alapértelmezett érték a JSONPath, de szükség esetén felülírhatja.
A kifejezés a következőképpen van definiálva:
<name of expression> : {
"value" : <the expression>,
"language": <the expression language>
}
A következő példában typeMatchExpression
a következőként van definiálva:
"templateType": "CalculatedContent",
"template": {
"typeName": "heartrate",
"typeMatchExpression": {
"value" : "$..[?(@heartRate)]",
"language": "JsonPath"
},
...
}
A CalculatedContent sablonok lehetővé teszik az értékek egyeztetését és kinyerését egy eszközüzenetből egy Azure Event Hubs eseményközpontból az alábbi kifejezések használatával:
Elem | Leírás | Példa JSONPath-kifejezésre | Példa JMESPath-kifejezésre |
---|---|---|---|
typeMatchExpression | A MedTech szolgáltatás által kiértékelt kifejezés az eszközüzenet hasznos adatai alapján. Ha a szolgáltatás talál egyező tokenértéket, a sablont egyezésnek tekinti. A szolgáltatás kiértékeli az összes későbbi kifejezést az itt megadott kinyert tokenérték alapján. | $..[?(@heartRate)] |
[Body][?contains(keys(@), `heartRate`)] \| @[0] |
deviceIdExpression | Az eszközazonosító kinyerésére vonatkozó kifejezés. | $.matchedToken.deviceId |
@.matchedToken.deviceId |
timestampExpression | A mérték OccurrenceTimeUtc értékének időbélyeg-értékét kinyerő kifejezés. |
$.matchedToken.endDate |
@.matchedToken.endDate |
patientIdExpression | A betegazonosító kinyerésére vonatkozó kifejezés. Akkor szükséges , ha a MedTech-szolgáltatások Felbontás típusaLétrehozás értékre van állítva, és nem kötelező , ha a MedTech szolgáltatás Felbontás típusaKeresési értékre van állítva. | $.matchedToken.patientId |
@.matchedToken.patientId |
encounterIdExpression | Nem kötelező: A találkozás azonosítójának kinyerésére alkalmas kifejezés. | $.matchedToken.encounterId |
@.matchedToken.encounterId |
correlationIdExpression | Nem kötelező: A korrelációs azonosító kinyeréséhez szükséges kifejezés. Ezzel a kimenettel egyetlen megfigyelésbe csoportosíthatja az értékeket az FHIR-célleképezésben. | $.matchedToken.correlationId |
@.matchedToken.correlationId |
values[].valueExpression | A kívánt érték kinyerésére vonatkozó kifejezés. | $.matchedToken.heartRate |
@.matchedToken.heartRate |
Megjegyzés
A Megoldás típusa azt határozza meg, hogy a MedTech szolgáltatás hogyan társítsa az eszközadatokat az eszközerőforrásokhoz és a patient erőforrásokhoz. A MedTech szolgáltatás eszköz- és betegerőforrásokat olvas be az FHIR szolgáltatásból eszközazonosítók és betegazonosítók használatával. Ha meg van adva és kinyer egy találkozási azonosítót az eszközadatok hasznos adataiból, akkor a rendszer társítja a megfigyeléshez, ha az FHIR szolgáltatásban ilyen azonosítóval találkozik. Ha a találkozás azonosítója sikeresen normalizálva van, de nem létezik FHIR-találkozás ezzel a találkozási azonosítóval, a rendszer kivételt ad a FhirResourceNotFound kivételnek. A MedTech szolgáltatásfeloldási típus konfigurálásáról további információt a Cél lap konfigurálása című témakörben talál.
Kifejezésnyelvek
A kifejezéshez használni kívánt nyelv megadásakor a következő értékek érvényesek:
Kifejezés nyelve | Érték |
---|---|
JSONPath | JsonPath |
JMESPath | JmesPath |
Mivel a JSONPath az alapértelmezett kifejezésnyelv, nem szükséges belefoglalni a kifejezés nyelvét egy CalculatedContent sablonba.
"templateType": "CalculatedContent",
"template": {
"typeName": "heartrate",
"typeMatchExpression": "$..[?(@heartRate)]",
...
}
A CalculatedContent sablon alapértelmezett kifejezésnyelvét a paraméterrel defaultExpressionLanguage
is beállíthatja:
"templateType": "CalculatedContent",
"template": {
"typeName": "heartrate",
"defaultExpressionLanguage": "JmesPath",
"typeMatchExpression": "[Body][?contains(keys(@), `heartRate`)] | @[0]",
...
}
Tipp
További információ a JSONPath-ról: JSONPath – XPath for JSON. A CalculatedContent sablonok a JSON .NET-implementációt használják A JSONPath-kifejezések feloldásához.
További információ a JMESPath-ról: JMESPath-specifikáció. A CalculatedContent sablonok a JMESPath .NET-implementációt használják a JMESPath-kifejezések feloldásához.
Egyéni függvények
A MedTech szolgáltatáshoz egyéni függvények is elérhetők. A MedTech szolgáltatás egyéni függvényei a JMESPath-specifikáció részeként biztosított függvényen kívül esnek. A MedTech szolgáltatás egyéni függvényeivel kapcsolatos további információkért lásd: Egyéni függvények használata a MedTech szolgáltatás eszközleképezésével.
Példa
Amikor a MedTech szolgáltatás egy eszközüzenetet dolgoz fel, a CollectionContent sablonjaival értékeli ki az üzenetet. A typeMatchExpression
segítségével állapítható meg, hogy a sablon használható-e normalizált üzenet létrehozására az eszközüzenetből. Ha a typeMatchExpression
kiértékelése igaz, akkor a deviceIdExpression
, timestampExpression
a és valueExpression
az értékekkel megkeresheti és kinyerheti a JSON-értékeket az eszközüzenetből, és létrehoz egy normalizált üzenetet. Ebben a példában az összes kifejezés JSONPath nyelven van megírva, de a JMESPath-ban minden kifejezés írható. A sablon szerzője határozza meg, hogy melyik kifejezésnyelv a legmegfelelőbb.
Tipp
A MedTech szolgáltatásleképezés hibakeresőjével segítséget kaphat 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ővel egyszerűen megtekintheti és valós időben elvégezheti a beágyazott módosításokat anélkül, hogy el kellene hagynia a Azure Portal. A leképezési hibakereső teszteszköz-üzenetek feltöltésére is használható, hogy lássa, hogyan fognak kinézni, miután normalizált üzenetekké dolgozták fel őket, és FHIR-megfigyelésekké alakítják át őket.
Ebben a példában egy eszközüzenetet használunk, amely adatokat rögzít heartRate
:
{
"heartRate": "78",
"endDate": "2023-03-13T22:46:01.8750000",
"deviceId": "device01"
}
Az eseményközpont kibővíti az eszközüzenetet, mielőtt a MedTech szolgáltatás beolvassa az eszközüzenetet az eseményközpontból:
{
"Body": {
"heartRate": "78",
"endDate": "2023-03-13T22:46:01.8750000",
"deviceId": "device01"
}
}
Ezt az eszközleképezést használjuk a normalizálási fázishoz:
{
"templateType": "CollectionContent",
"template": [
{
"templateType": "CalculatedContent",
"template": {
"typeName": "heartrate",
"typeMatchExpression": "$..[?(@heartRate)]",
"deviceIdExpression": "$.matchedToken.deviceId",
"timestampExpression": "$.matchedToken.endDate",
"values": [
{
"required": true,
"valueExpression": "$.matchedToken.heartRate",
"valueName": "hr"
}
]
}
}
]
}
Fontos
A MedTech szolgáltatás kiértékeli typeMatchExpression
a bejövő eszközadatok hasznos adatait. Ha a szolgáltatás talál egyező tokenértéket, a sablont egyezésnek tekinti.
A MedTech szolgáltatás minden későbbi kifejezést kiértékel egy új tokenérték alapján. Ez az új tokenérték az eredeti eszközadatok hasznos adatait és a kinyert jogkivonat értékét is tartalmazza.
Ily módon az eredeti eszközadatok hasznos adatai és a megfelelt objektum minden későbbi kifejezéshez elérhetők. A kinyert jogkivonat értéke tulajdonságként matchedToken
érhető el.
{
"Body": {
"heartRate": "78",
"endDate": "2023-03-13T22:46:01.8750000",
"deviceId": "device01"
},
"matchedToken": {
"heartRate": "78",
"endDate": "2023-03-13T22:46:01.8750000",
"deviceId": "device01"
}
}
Az eredményül kapott normalizált üzenet így fog kinézni a normalizálási szakasz után:
[
{
"type": "heartrate",
"occurrenceTimeUtc": "2023-03-13T22:46:01.875Z",
"deviceId": "device01",
"properties": [
{
"name": "hr",
"value": "78"
}
]
}
]
Tipp
Ha segítségre van szüksége a MedTech szolgáltatás üzembehelyezési hibáinak elhárításához, tekintse meg a MedTech szolgáltatás üzembehelyezési hibáinak elhárítását ismertető cikket.
Ha segítségre van szüksége a MedTech szolgáltatás hibáinak elhárításához, tekintse meg a MedTech szolgáltatásnaplók használatával kapcsolatos hibák elhárítását ismertető cikket.
Következő lépések
Ebből a cikkből megtudhatta, hogyan használhatók a CalculatedContent sablonok a MedTech szolgáltatás eszközleképezésével.
A MedTech szolgáltatás egyéni függvényeinek használatáról további információt a
A MedTech szolgáltatás FHIR célleképezésének áttekintését lásd:
A MedTech szolgáltatás forgatókönyvalapú leképezési mintáinak áttekintéséért lásd:
Az FHIR® a Health Level Seven International bejegyzett védjegye, amely az Egyesült Államok védjegyhivatalában van regisztrálva, és engedélyekkel használja.