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 patient123
te 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 original
valt, 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.