Delen via


Aangepaste functies gebruiken met de MedTech-serviceapparaattoewijzing

Notitie

Fast Healthcare Interoperability Resources (FHIR®) is een open gezondheidszorgspecificatie.

Er zijn veel functies beschikbaar wanneer u JMESPath als expressietaal gebruikt. Naast de ingebouwde functies die beschikbaar zijn als onderdeel van de JMESPath-specificatie, kunnen er nog veel meer aangepaste functies worden gebruikt. In dit artikel wordt beschreven hoe u de medtech-servicespecifieke aangepaste functies gebruikt met de MedTech-serviceapparaattoewijzing.

Tip

U kunt het foutopsporingsprogramma van de MedTech-servicetoewijzing gebruiken voor hulp bij het maken, bijwerken en oplossen van problemen met het MedTech-serviceapparaat en de FHIR-doeltoewijzingen. Met het foutopsporingsprogramma voor toewijzingen kunt u eenvoudig in realtime inline-aanpassingen bekijken en aanbrengen, zonder dat u de Azure Portal hoeft te verlaten. Het foutopsporingsprogramma voor toewijzingen kan ook worden gebruikt voor het uploaden van testapparaatberichten om te zien hoe ze eruitzien nadat ze zijn verwerkt in genormaliseerde berichten en zijn omgezet in FHIR-waarnemingen.

Functiehandtekening

Elke functie heeft een handtekening die de JMESPath-specificatie volgt. Deze handtekening kan worden weergegeven als:

return_type function_name(type $argname)

De handtekening geeft de geldige typen voor de argumenten aan. Als een ongeldig type wordt doorgegeven voor een argument, treedt er een fout op.

Belangrijk

Wanneer wiskundige functies zijn voltooid, moet het eindresultaat binnen een lange C# -waarde passen. Als het eindresultaat niet binnen een C#-lange waarde past, treedt er een wiskundige fout op.

Zoals eerder vermeld, kunnen deze functies alleen worden gebruikt bij het opgeven van JmesPath als de expressietaal. De expressietaal is standaard JsonPath. De expressietaal kan worden gewijzigd bij het definiëren van de expressie.

Bijvoorbeeld:

"templateType": "CalculatedContent",
    "template": {
        "typeName": "heartrate",
        "patientIdExpression": {
            "value": "insertString('123', 'patient', `0`) ",
            "language": "JmesPath"
        },
        ...
    }

In dit voorbeeld wordt de insertString-expressie gebruikt om de patiënt-id patient123te genereren.

Letterlijke waarden

Er kunnen constante waarden worden opgegeven aan functies.

  • Numerieke waarden moeten tussen de achterpunten worden geplaatst: '
    • Voorbeeld: add('10', '10')
  • Tekenreekswaarden moeten tussen enkele aanhalingstekens worden geplaatst: '
    • Voorbeeld: insertString('mple', 'sa', '0')

Zie de JMESPath-specificatie voor meer informatie.

Afhandeling van uitzonderingen

Uitzonderingen kunnen zich op verschillende punten binnen de levenscyclus van de gegevensverwerking van het apparaat voordoen. Dit zijn de verschillende punten waar uitzonderingen kunnen optreden:

Actie Wanneer Uitzonderingen die kunnen optreden tijdens het parseren van de apparaattoewijzing Resultaat
Parseren van apparaattoewijzing Telkens wanneer een nieuwe batch apparaatberichten worden ontvangen, wordt de apparaattoewijzing geladen en geparseerd. Kan de apparaattoewijzing niet parseren. Het systeem probeert de meest recente apparaattoewijzing opnieuw te laden en te parseren totdat het parseren is geslaagd. Er worden geen nieuwe apparaatberichten verwerkt totdat het parseren is geslaagd.
Parseren van apparaattoewijzing Telkens wanneer een nieuwe batch apparaatberichten worden ontvangen, wordt de apparaattoewijzing geladen en geparseerd. Kan expressies niet parseren. Het systeem probeert de meest recente apparaattoewijzing opnieuw te laden en te parseren totdat het parseren is geslaagd. Er worden geen nieuwe apparaatberichten verwerkt totdat het parseren is geslaagd.
Functie-uitvoering Telkens wanneer een functie wordt uitgevoerd op basis van apparaatgegevens in een apparaatbericht. De invoer van apparaatgegevens komt niet overeen met die van de functiehandtekening. Het systeem stopt met het verwerken van dat apparaatbericht. Het apparaatbericht wordt niet opnieuw geprobeerd.
Functie-uitvoering Telkens wanneer een functie wordt uitgevoerd op basis van apparaatgegevens in een apparaatbericht. Eventuele andere uitzonderingen die worden vermeld in de beschrijving van de functie. Het systeem stopt met het verwerken van dat apparaatbericht. Het apparaatbericht wordt niet opnieuw geprobeerd.

Wiskundige functies

add

number add(number $left, number $right)

Retourneert het resultaat van het toevoegen van het argument links aan het rechterargument.

Voorbeelden:

Gegeven Expression Resultaat
n.v.t. add('10', '10') 20
{"left": 40, "right": 50} toevoegen(links, rechts) 90
{"left": 0, "right": 50} toevoegen(links, rechts) 50

Verdelen

number divide(number $left, number $right)

Retourneert het resultaat van het delen van het linkerargument door het rechterargument.

Voorbeelden:

Gegeven Expression Resultaat
n.v.t. delen('10', '10') 1
{"left": 40, "right": 50} delen(links, rechts) 0,8
{"left": 0, "right": 50} delen(links, rechts) 0
{"left": 50, "right": 0} delen(links, rechts) wiskundige fout: delen door nul

Vermenigvuldigen

number multiply(number $left, number $right)

Retourneert het resultaat van het vermenigvuldigen van het linkerargument met het argument rechts.

Voorbeelden:

Gegeven Expression Resultaat
n.v.t. multiply('10', '10') 100
{"left": 40, "right": 50} vermenigvuldigen(links, rechts) 2000
{"left": 0, "right": 50} vermenigvuldigen(links, rechts) 0

Pow

number pow(number $left, number $right)

Retourneert het resultaat van het verhogen van het linkerargument tot de macht van het rechterargument.

Voorbeelden:

Gegeven Expression Resultaat
n.v.t. pow('10', '10') 10000000000
{"left": 40, "right": 50} pow(links, rechts) wiskundige fout: overloop
{"left": 0, "right": 50} pow(links, rechts) 0
{"left": 100, "right": 0,5} pow(links, rechts) 10

Aftrekken

number subtract(number $left, number $right)

Retourneert het resultaat van het aftrekken van het rechterargument van het argument links.

Voorbeelden:

Gegeven Expression Resultaat
n.v.t. aftrekken('10', '10') 0
{"left": 40, "right": 50} aftrekken(links, rechts) -10
{"left": 0, "right": 50} aftrekken(links, rechts) -50

Tekenreeksfuncties

insertString

string insertString(string $original, string $toInsert, number pos)

Produceert een nieuwe tekenreeks door de waarde van toInsert in te voegen in de tekenreeks original. De tekenreeks wordt ingevoegd op de positie pos in de tekenreeks original.

Als het positionele argument op nul is gebaseerd, verwijst de positie van nul naar het eerste teken in de tekenreeks.

Als het opgegeven positionele argument buiten het bereik van de lengte van originalvalt, treedt er een fout op.

Voorbeelden:

Gegeven Expression Resultaat
n.v.t. insertString('mple', 'sa', 0) "voorbeeld"
{"original": "mple", "toInsert": "sa", "pos": 0} insertString(original; toInsert, pos) "voorbeeld"
{"original": "suess", "toInsert": "cc", "pos": 2} insertString(original; toInsert, pos) "geslaagd"
{"original": "myString", "toInsert": "!!", "pos": 8} insertString(original; toInsert, pos) "myString!!"

Datumfuncties

fromUnixTimestamp

string fromUnixTimestamp(number $unixTimestampInSeconds)

Produceert een ISO 8061-compatibele tijdstempel van de opgegeven Unix-tijdstempel. De tijdstempel wordt weergegeven als het aantal seconden sinds het Tijdvak (1 januari 1970).

Voorbeelden:

Gegeven Expression Resultaat
{"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)

Produceert een ISO 8061-compatibele tijdstempel van de opgegeven Unix-tijdstempel. De tijdstempel wordt weergegeven als het aantal milliseconden sinds het Tijdvak (1 januari 1970).

Voorbeelden:

Gegeven Expression Resultaat
{"unix": 1626799080000} fromUnixTimestampMs(unix) "2021-07-20T16:38:00+0"
{"unix": 0} fromUnixTimestampMs(unix) "1970-01-01T00:00:00+0"

Tip

Zie het MedTech-serviceartikel Fouten oplossen met behulp van de MedTech-servicelogboeken voor hulp bij het oplossen van fouten met behulp van de MedTech-servicelogboeken.

Volgende stappen

In dit artikel hebt u geleerd hoe u de aangepaste functies van de MedTech-service gebruikt in de apparaattoewijzing.

Zie voor een overzicht van de MedTech-serviceapparaattoewijzing

Zie voor een overzicht van de FHIR-bestemmingstoewijzing van de MedTech-service

Zie voor een overzicht van de medtech-servicevoorbeelden voor toewijzingen op basis van scenario's

FHIR® is een geregistreerd handelsmerk van Health Level Seven International, geregistreerd in het Amerikaanse Trademark Office en wordt gebruikt met hun toestemming.