Egyéni függvények 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ó.
A JMESPath kifejezésnyelvként való használatakor számos függvény érhető el. A JMESPath-specifikáció részeként elérhető beépített függvények mellett további egyéni függvények is használhatók. Ez a cikk bemutatja, hogyan használhatja a MedTech szolgáltatásspecifikus egyéni függvényeket a MedTech szolgáltatás eszközleképezésével.
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és hibakeresővel egyszerűen megtekintheti és elvégezheti a beágyazott módosításokat valós időben 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.
Függvény aláírása
Minden függvény rendelkezik egy JMESPath-specifikációt követő aláírással. Ez az aláírás a következőképpen jelenhet meg:
return_type function_name(type $argname)
Az aláírás az argumentumok érvényes típusait jelzi. Ha egy argumentum érvénytelen típust ad át, hiba történik.
Fontos
Matematikai függvények végrehajtásakor a végeredménynek el kell férnie egy C# hosszú értéken belül. Ha a végeredmény nem fér el egy C# hosszú értéken belül, akkor matematikai hiba történik.
Ahogy korábban említettük, ezek a függvények csak a JmesPath kifejezésnyelvként való megadásakor használhatók. Alapértelmezés szerint a kifejezés nyelve JsonPath. A kifejezés nyelve módosítható a kifejezés definiálásakor.
Például:
"templateType": "CalculatedContent",
"template": {
"typeName": "heartrate",
"patientIdExpression": {
"value": "insertString('123', 'patient', `0`) ",
"language": "JmesPath"
},
...
}
Ez a példa az insertString kifejezéssel hozza létre a betegazonosítót patient123
.
Literálértékek
A függvények állandó értékeket adhatnak meg.
- A numerikus értékeket a háttérrendszeren belül kell megadni: '
- Példa: add('10', '10')
- A sztringértékeket egy idézőjelek közé kell tenni: '
- Példa: insertString('mple', 'sa', '0')
További információt a JMESPath specifikációjában talál.
Kivételkezelés
A kivételek az eszköz adatfeldolgozási életciklusának különböző pontjain fordulhatnak elő. Íme a különböző pontok, ahol kivételek fordulhatnak elő:
Művelet | Mikor | Az eszközleképezés elemzése során esetlegesen előforduló kivételek | Eredmény |
---|---|---|---|
Eszközleképezés elemzése | Minden alkalommal, amikor új eszközüzenet-köteg érkezik, a rendszer betölti és elemzi az eszközleképezést. | Nem sikerült elemezni az eszközleképezést. | A rendszer megpróbálja újra betölteni és elemezni a legújabb eszközleképezést, amíg az elemzés sikeres nem lesz. A rendszer nem dolgoz fel új eszközüzeneteket, amíg az elemzés sikeres nem lesz. |
Eszközleképezés elemzése | Minden alkalommal, amikor új eszközüzenet-köteg érkezik, a rendszer betölti és elemzi az eszközleképezést. | Nem sikerült elemezni a kifejezéseket. | A rendszer megpróbálja újra betölteni és elemezni a legújabb eszközleképezést, amíg az elemzés sikeres nem lesz. A rendszer nem dolgoz fel új eszközüzeneteket, amíg az elemzés sikeres nem lesz. |
Függvény végrehajtása | Minden alkalommal, amikor egy függvényt hajtanak végre az eszközadatokon belül egy eszközüzenetben. | A bemeneti eszköz adatai nem egyeznek meg a függvény aláírásával. | A rendszer leállítja az eszköz üzenetének feldolgozását. Az eszközüzenet nem lesz újrapróbálkozott. |
Függvény végrehajtása | Minden alkalommal, amikor egy függvényt hajtanak végre az eszközadatokon belül egy eszközüzenetben. | A függvény leírásában felsorolt egyéb kivételek. | A rendszer leállítja az eszköz üzenetének feldolgozását. Az eszközüzenet nem lesz újrapróbálkozott. |
Matematikai függvények
add
number add(number $left, number $right)
A bal oldali argumentum jobb argumentumhoz való hozzáadásának eredményét adja vissza.
Példák:
Adott | Expression | Eredmény |
---|---|---|
n.a. | add('10'; '10') | 20 |
{"left": 40, "jobbra": 50} | add(balra, jobbra) | 90 |
{"left": 0, "jobbra": 50} | add(balra, jobbra) | 50 |
Osztani
number divide(number $left, number $right)
A bal oldali argumentum és a jobb argumentum osztásának eredményét adja eredményül.
Példák:
Adott | Expression | Eredmény |
---|---|---|
n.a. | divide('10'; '10') | 1 |
{"left": 40, "jobbra": 50} | divide(balra, jobbra) | 0,8 |
{"left": 0, "jobbra": 50} | divide(balra, jobbra) | 0 |
{"left": 50, "jobbra": 0} | divide(balra, jobbra) | matematikai hiba: osztás nullával |
Szaporodnak
number multiply(number $left, number $right)
A bal oldali argumentum és a jobb argumentum szorzásának eredményét adja eredményül.
Példák:
Adott | Expression | Eredmény |
---|---|---|
n.a. | szorzás('10'; '10') | 100 |
{"left": 40, "right": 50} | szorzás(balra, jobbra) | 2000 |
{"left": 0, "right": 50} | szorzás(balra, jobbra) | 0 |
Pow
number pow(number $left, number $right)
A bal oldali argumentum jobb oldali argumentum hatványára emelésének eredményét adja vissza.
Példák:
Adott | Expression | Eredmény |
---|---|---|
n.a. | pow('10', '10') | 10000000000 |
{"left": 40, "right": 50} | pow(balra, jobbra) | matematikai hiba: túlcsordulás |
{"left": 0, "right": 50} | pow(balra, jobbra) | 0 |
{"left": 100, "right": 0,5} | pow(balra, jobbra) | 10 |
Kivonása
number subtract(number $left, number $right)
A jobb oldali argumentum bal oldali argumentumból való kivonásának eredményét adja vissza.
Példák:
Adott | Expression | Eredmény |
---|---|---|
n.a. | kivonás('10'; '10') | 0 |
{"left": 40, "right": 50} | kivonás(bal, jobb) | -10 |
{"left": 0, "right": 50} | kivonás(bal, jobb) | -50 |
Sztringfüggvények
insertString
string insertString(string $original, string $toInsert, number pos)
Új sztringet hoz létre az értékének toInsert
a sztringbe original
való beszúrásával. A sztring a sztringen original
belüli pozícióba pos
lesz beszúrva.
Ha a pozícióargumentum nulla alapú, a nulla pozíciója a sztring első karakterére hivatkozik.
Ha a megadott pozícióargumentum a hosszán original
kívül esik, hiba történik.
Példák:
Adott | Expression | Eredmény |
---|---|---|
n.a. | insertString('mple'; 'sa'; 0 ) |
"minta" |
{"original": "mple", "toInsert": "sa", "pos": 0} | insertString(eredeti, toInsert, pos) | "minta" |
{"original": "suess", "toInsert": "cc", "pos": 2} | insertString(eredeti, toInsert, pos) | "siker" |
{"original": "myString", "toInsert": "!!", "pos": 8} | insertString(eredeti, toInsert, pos) | "myString!!" |
Dátumfüggvények
fromUnixTimestamp
string fromUnixTimestamp(number $unixTimestampInSeconds)
Iso 8061-kompatibilis időbélyeget állít elő a megadott Unix-időbélyegzőből. Az időbélyeg az alapidőszak óta eltelt másodpercek számaként jelenik meg (1970. január 1.).
Példák:
Adott | Expression | Eredmény |
---|---|---|
{"unix": 1625677200} | fromUnixTimestamp(unix) | "2021-07-07T17:00:00+0" |
{"unix": 0} | fromUnixTimestamp(unix) | "1970-01-01T00:00:00+0" |
fromUnixTimestampMs
string fromUnixTimestampMs(number $unixTimestampInMs)
Iso 8061-kompatibilis időbélyeget állít elő a megadott Unix-időbélyegzőből. Az időbélyeg a korszak óta eltelt ezredmásodpercek számaként jelenik meg (1970. január 1.).
Példák:
Adott | Expression | Eredmény |
---|---|---|
{"unix": 1626799080000} | fromUnixTimestampMs(unix) | "2021-07-20T16:38:00+0" |
{"unix": 0} | fromUnixTimestampMs(unix) | "1970-01-01T00:00:00+0" |
Tipp
A MedTech szolgáltatásnaplókkal kapcsolatos hibák kijavításához a MedTech szolgáltatásnaplók használatával kapcsolatos hibák elhárítása című cikk nyújt segítséget.
Következő lépések
Ebben a cikkben megtanulta, hogyan használhatja a MedTech szolgáltatás egyéni függvényeket az eszközleképezésen belül.
A MedTech szolgáltatás eszközleképezésének áttekintését lásd:
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, amelyet az Egyesült Államok Védjegyhivatalában regisztráltak, és engedélyükkel használják.