How to use IotCentralJsonPathContentTemplate mappings
Important
Azure Healthcare APIs is currently in PREVIEW. The Supplemental Terms of Use for Microsoft Azure Previews include additional legal terms that apply to Azure features that are in beta, preview, or otherwise not yet released into general availability.
Tip
Check out the IoMT Connector Data Mapper tool for editing, testing, and troubleshooting IoT connector Device and FHIR destination mappings. Export mappings for uploading to IoT connector in the Azure portal or use with the open-source version of IoT connector.
This article describes how to use IoTCentralJsonPathContentTemplate mappings with IoT connector Device mappings.
IotCentralJsonPathContentTemplate
The IotCentralJsonPathContentTemplate also doesn't require DeviceIdExpression and TimestampExpression. It gets used when the messages being evaluated are sent through the Export Data feature of Azure IoT Central.
If you're using Azure IoT Central's Data Export feature and custom properties in the message body for the device identity or measurement timestamp, you can still use the JsonPathContentTemplate.
Note
When using IotCentralJsonPathContentTemplate, TypeMatchExpression should resolve to the entire message as a JToken. For more information, see the following examples:
Examples
Heart rate
Message
{
"applicationId": "1dffa667-9bee-4f16-b243-25ad4151475e",
"messageSource": "telemetry",
"deviceId": "1vzb5ghlsg1",
"schema": "default@v1",
"templateId": "urn:qugj6vbw5:___qbj_27r",
"enqueuedTime": "2020-08-05T22:26:55.455Z",
"telemetry": {
"Activity": "running",
"BloodPressure": {
"Diastolic": 7,
"Systolic": 71
},
"BodyTemperature": 98.73447010562934,
"HeartRate": 88,
"HeartRateVariability": 17,
"RespiratoryRate": 13
},
"enrichments": {
"userSpecifiedKey": "sampleValue"
},
"messageProperties": {
"messageProp": "value"
}
}
Template
{
"templateType": "IotCentralJsonPathContent",
"template": {
"typeName": "heartrate",
"typeMatchExpression": "$..[?(@telemetry.HeartRate)]",
"values": [
{
"required": "true",
"valueExpression": "$.telemetry.HeartRate",
"valueName": "hr"
}
]
}
}
Blood pressure
Message
{
"applicationId": "1dffa667-9bee-4f16-b243-25ad4151475e",
"messageSource": "telemetry",
"deviceId": "1vzb5ghlsg1",
"schema": "default@v1",
"templateId": "urn:qugj6vbw5:___qbj_27r",
"enqueuedTime": "2020-08-05T22:26:55.455Z",
"telemetry": {
"Activity": "running",
"BloodPressure": {
"Diastolic": 7,
"Systolic": 71
},
"BodyTemperature": 98.73447010562934,
"HeartRate": 88,
"HeartRateVariability": 17,
"RespiratoryRate": 13
},
"enrichments": {
"userSpecifiedKey": "sampleValue"
},
"messageProperties": {
"messageProp": "value"
}
}
Template
{
"templateType": "IotCentralJsonPathContent",
"template": {
"typeName": "bloodPressure",
"typeMatchExpression": "$..[?(@telemetry.BloodPressure.Diastolic && @telemetry.BloodPressure.Systolic)]",
"values": [
{
"required": "true",
"valueExpression": "$.telemetry.BloodPressure.Diastolic",
"valueName": "bp_diastolic"
},
{
"required": "true",
"valueExpression": "$.telemetry.BloodPressure.Systolic",
"valueName": "bp_systolic"
}
]
}
}
Tip
See IoT connector troubleshooting guide for assistance fixing common errors and issues.
Next steps
In this article, you learned how to use Device mappings. To learn how to use FHIR destination mappings, see
(FHIR®) is a registered trademark of HL7 and is used with the permission of HL7.