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 originalvaló beszúrásával. A sztring a sztringen originalbelü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 originalkí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.