MedTech サービスのデバイス マッピングの概要
この記事では、MedTech サービスのデバイス マッピングの概要について説明します。
MedTech サービスは、Azure portal または Azure Resource Manager (ARM) API を通じて MedTech サービスに追加される 2 種類の JSON マッピングが必要です。 デバイス マッピングは最初の種類で、MedTech サービスに送信されるデバイス データの値を内部の正規化されたデータ オブジェクトにマッピングするのを制御します。 デバイス マッピングには、MedTech サービスが種類、デバイス識別子、測定日時、測定値を抽出するために使用する式が含まれます。 FHIR® 宛先マッピングは 2 番目の種類で、FHIR 観測のマッピングを制御します。
Note
デバイスと FHIR 変換先マッピングは、デバイス メッセージが処理されるたびに再評価されます。 いずれかのマッピングの更新は即座に反映されます。
デバイス マッピングの基本
デバイス マッピングには、デバイス メッセージ データを内部で正規化された形式に抽出し、詳細を評価するために使用される式テンプレートのコレクションが含まれています。 受信した各デバイス メッセージは、コレクション内のすべての式テンプレートに対して評価されます。 この評価は、1 つのデバイス メッセージを複数の送信メッセージに分離し、FHIR サービスの複数の FHIR 観測にマッピングできることを意味します。
ヒント
MedTech サービスがデバイス メッセージ データを FHIR サービスに永続化するための FHIR 観測に処理する方法の詳細については、「MedTech サービスでのデバイス データの処理ステージの概要」を参照してください。
この図は、MedTech サービス内の正規化段階で発生する内容を示しています。
デバイス マッピングの検証
正規化プロセスでは、デバイス マッピングを保存して使用できるようにする前に、デバイス マッピングを検証します。 これらの要素はデバイス マッピング テンプレートに必要です。
デバイス マッピング
要素 | CalculatedContent で必須 | IotJsonPathContent で必須 |
---|---|---|
typeName | 正しい | 正しい |
typeMatchExpression | 正しい | 正しい |
deviceIdExpression | 正しい | False で完全に無視されます。 |
timestampExpression | 正しい | False で完全に無視されます。 |
patientIdExpression | MedTech サービスの [解決の種類] が [Create] (作成) に設定されている場合は True、MedTech サービスの [解決の種類] が [Lookup] (検索) に設定されている場合は False。 | MedTech サービスの [解決の種類] が [Create] (作成) に設定されている場合は True、MedTech サービスの [解決の種類] が [Lookup] (検索) に設定されている場合は False。 |
encounterIdExpression | いいえ | いいえ |
correlationIdExpression | いいえ | いいえ |
values[].valueName | 正しい | 正しい |
values[].valueExpression | 正しい | 正しい |
values[].required | 正しい | 正しい |
重要
[解決の種類] は、MedTech サービスがどのようにデバイス データをデバイス リソースと患者リソースに関連付けるかを指定します。 MedTech サービスは、デバイス識別子と患者識別子を使用して、FHIR サービスからデバイスと患者リソースを読み込みます。 エンカウンター識別子が指定され、デバイス データ ペイロードから抽出された場合、その識別子を持つエンカウンターが FHIR サービスに存在する場合、それは観測にリンクされます。 エンカウンター識別子が正常に正規化されましたが、そのエンカウンター識別子を持つ FHIR エンカウンターが存在しない場合、FhirResourceNotFound 例外がスローされます。 MedTech サービスの [解決の種類] の詳細については、「[宛先] タブを構成する」を参照してください。
Note
values[].valueName, values[].valueExpression
および values[].required
要素は、配列に値エントリがある場合にのみ必要です。 値がマップされない場合は有効です。 これらの要素は、送信されるテレメトリがイベントである場合に使用されます。
たとえば、シナリオによっては、FHIR サービスに値を含まない FHIR 観測を作成する必要があります。
CollectionContent
CollectionContent は、MedTech サービスのデバイス マッピングで使用されるルート テンプレートの種類です。 CollectionContent は、正規化段階で使用されるすべてのテンプレートの一覧です。 CollectionContent 内で 1 つ以上のテンプレートを定義でき、MedTech サービスで受信する各デバイス メッセージは、すべてのテンプレートに対して評価されます。
次のようなユース ケースに応じて、CollectionContent 内でこれらのテンプレートの種類を使用できます。
- MedTech サービス イベント ハブに直接送信されるデバイス メッセージの CalculatedContent。 CalculatedContent は、JSONPath、JMESPath、JMESPath 関数、および MedTech サービスのカスタム関数をサポートしています。
および/または
- Azure IoT Hub から MedTech サービスイベント ハブへルーティングされるデバイス メッセージの IotJsonPathContent。 IotJsonPathContent は JSONPath をサポートしています。
例
ヒント
MedTech サービス デバイスと FHIR 変換先マッピングの作成、更新、トラブルシューティングを支援するために、MedTech サービスマッピング デバッガーを使用できます。 マッピング デバッガーにより、Azure portal から離れることなく、インライン調整の確認と実行をリアルタイムで簡単に行えるようになります。 マッピング デバッガーは、テスト デバイス メッセージをアップロードして、正規化メッセージに処理され、FHIR 観測に変換された後の外観を確認するためにも使用できます。
次の例では、heartRate
データをキャプチャしているデバイス メッセージを使用しています。
{
"heartRate": "78",
"endDate": "2023-03-13T22:46:01.8750000",
"deviceId": "device01"
}
次のデバイス マッピングは、正規化段階で使用しています。
{
"templateType": "CollectionContent",
"template": [
{
"templateType": "CalculatedContent",
"template": {
"typeName": "heartrate",
"typeMatchExpression": "$..[?(@heartRate)]",
"deviceIdExpression": "$.matchedToken.deviceId",
"timestampExpression": "$.matchedToken.endDate",
"values": [
{
"required": true,
"valueExpression": "$.matchedToken.heartRate",
"valueName": "hr"
}
]
}
}
]
}
正規化段階後、正規化されたメッセージは次のようになります。
[
{
"type": "heartrate",
"occurrenceTimeUtc": "2023-03-13T22:46:01.875Z",
"deviceId": "device01",
"properties": [
{
"name": "hr",
"value": "78"
}
]
}
]
MedTech サービスがデバイス メッセージを処理する場合、CollectionContent 内のテンプレートはメッセージの評価に使用されます。 typeMatchExpression
は、デバイス メッセージから正規化されたメッセージを作成するためにテンプレートを使用するかどうかを決定するために使用されます。 typeMatchExpression
が true と評価された場合、deviceIdExpression
、timestampExpression
、valueExpression
の値を使用してデバイス メッセージから JSON 値を検出して抽出し、正規化されたメッセージを作成します。 この例では、すべての式を JSONPath で記述していますが、すべての式を JMESPath で記述することも有効です。 どの式言語が最適であるかは、テンプレートの作者によって異なります。
ヒント
一般的な MedTech サービス デプロイ エラーの修正を支援する場合は、MedTech サービスのデプロイ エラーのトラブルシューティングに関するページを参照してください。
MedTech サービスのエラーの修正を支援する場合は、MedTech サービスのログを使用したエラーのトラブルシューティングに関するページを参照してください。
次のステップ
CalculatedContent テンプレートを MedTech サービス デバイス マッピングで使用する方法
IotJsonPathContent テンプレートを MedTech サービス デバイス マッピングで使用する方法
カスタム関数を MedTech サービス デバイス マッピングで使用する方法
MedTech サービスの FHIR 変換先マッピングの概要
MedTech サービス シナリオベースのマッピング サンプルの概要
Note
FHIR® は HL7 の登録商標であり、HL7 の許可を得て使用しています。