Partilhar via


Overview of the MedTech service device mapping

Important

A partir de 26/02/2025, o serviço MedTech não estará mais disponível nas seguintes regiões: Oeste do Reino Unido, Norte dos Emirados Árabes Unidos, Norte da África do Sul, Qatar Central.

This article provides an overview of the MedTech service device mapping.

The MedTech service requires two types of JSON mappings that are added to your MedTech service through the Azure portal or Azure Resource Manager (ARM) API. The device mapping is the first type and controls mapping values in the device data sent to the MedTech service to an internal, normalized data object. O mapeamento de dispositivos contém expressões que o serviço MedTech usa para extrair tipos, identificadores de dispositivos, data de medição, hora e valor(es) de medição. The FHIR® destination mapping is the second type and controls the mapping for FHIR Observations.

Observação

Os mapeamentos de destino do dispositivo e FHIR são reavaliados cada vez que uma mensagem de dispositivo é processada. Quaisquer atualizações para qualquer mapeamento entrarão em vigor imediatamente.

Device mapping basics

The device mapping contains collections of expression templates used to extract device message data into an internal, normalized format for further evaluation. Each received device message is evaluated against all expression templates in the collection. This evaluation means that a single device message can be separated into multiple outbound messages that can be mapped to multiple FHIR Observations in the FHIR service.

Tip

For more information about how the MedTech service processes device message data into FHIR Observations for persistence in the FHIR service, see Overview of the MedTech service device data processing stages.

This diagram provides an illustration of what happens during the normalization stage within the MedTech service.

Diagram example of the MedTech service device message normalization stage.

Device mapping validations

The normalization process validates the device mapping before allowing it to be saved for use. These elements are required in the device mapping templates.

Device mapping

Elemento Required in CalculatedContent Required in IotJsonPathContent
typeName Verdade Verdade
typeMatchExpression Verdade Verdade
deviceIdExpression Verdade False and ignored completely.
timestampExpression Verdade False and ignored completely.
patientIdExpression True when the MedTech services's Resolution type is set to Create; False when the MedTech service's Resolution type is set to Lookup. True when the MedTech service's Resolution type is set to Create; False when the MedTech service's Resolution type is set to Lookup.
encounterIdExpression Falso Falso
correlationIdExpression Falso Falso
values[].valueName Verdade Verdade
values[].valueExpression Verdade Verdade
values[].required Verdade Verdade

Important

O tipo de resolução especifica como o serviço MedTech associa os dados do dispositivo aos recursos do Dispositivo e aos recursos do Paciente. O serviço MedTech lê os recursos do dispositivo e do paciente do serviço FHIR usando identificadores de dispositivo e identificadores de paciente. Se um identificador de encontro for especificado e extraído da carga útil de dados do dispositivo, ele será vinculado à observação se existir um encontro no serviço FHIR com esse identificador. Se o identificador de encontro for normalizado com êxito, mas não existir nenhum Encontro FHIR com esse identificador de encontro, uma exceção FhirResourceNotFound será lançada. Para obter mais informações sobre como configurar o tipo de resolução de serviço MedTech, consulte Configurar a guia Destino.

Observação

The values[].valueName, values[].valueExpression, and values[].required elements are only required if you have a value entry in the array. It's valid to have no values mapped. These elements are used when the telemetry being sent is an event.

For example, some scenarios may require creating a FHIR Observation in the FHIR service that does not contain a value.

CollectionContent

CollectionContent is the root template type used by the MedTech service device mapping. CollectionContent is a list of all templates that are used during the normalization stage. You can define one or more templates within CollectionContent, with each device message received by the MedTech service being evaluated against all templates.

You can use these template types within CollectionContent depending on your use case:

and/or

Diagram showing MedTech service device mapping templates architecture.

Exemplo

Tip

Você pode usar o depurador de mapeamento do serviço MedTech para obter assistência na criação, atualização e resolução de problemas dos mapeamentos de dispositivos do serviço MedTech e de destino FHIR. O depurador de mapeamento permite que você visualize e faça ajustes embutidos facilmente em tempo real, sem precisar sair do portal do Azure. O Depurador de Mapeamento também pode ser usado para carregar mensagens de dispositivos de teste e ver como elas ficarão após serem processadas em mensagens normalizadas e transformadas em Observações FHIR.

Neste exemplo, estamos usando uma mensagem de dispositivo que está capturando heartRate dados:

{
  "heartRate": "78",
  "endDate": "2023-03-13T22:46:01.8750000",
  "deviceId": "device01"
}

Estamos usando este mapeamento de dispositivo para o estágio de normalização:

{
  "templateType": "CollectionContent",
  "template": [
    {
      "templateType": "CalculatedContent",
      "template": {
        "typeName": "heartrate",
        "typeMatchExpression": "$..[?(@heartRate)]",
        "deviceIdExpression": "$.matchedToken.deviceId",
        "timestampExpression": "$.matchedToken.endDate",
        "values": [
          {
            "required": true,
            "valueExpression": "$.matchedToken.heartRate",
            "valueName": "hr"
          }
        ]
      }
    }
  ]
}

A mensagem normalizada resultante terá esta aparência após o estágio de normalização:

[
  {
    "type": "heartrate",
    "occurrenceTimeUtc": "2023-03-13T22:46:01.875Z",
    "deviceId": "device01",
    "properties": [
      {
        "name": "hr",
        "value": "78"
      }
    ]
  }
]

When the MedTech service is processing the device message, the templates in the CollectionContent are used to evaluate the message. O typeMatchExpression é usado para determinar se o modelo deve ou não ser usado para criar uma mensagem normalizada a partir da mensagem do dispositivo. If the typeMatchExpression evaluates to true, then the deviceIdExpression, timestampExpression, and valueExpression values are used to locate and extract the JSON values from the device message and create a normalized message. In this example, all expressions are written in JSONPath, however, it would be valid to write all the expressions in JMESPath. It's up to the template author to determine which expression language is most appropriate.

Tip

Para obter assistência na correção de erros comuns de implantação do serviço MedTech, consulte Solucionar problemas de erros de implantação do serviço MedTech.

Para obter assistência na correção de erros de serviço MedTech, consulte Solucionar erros usando os logs de serviço MedTech.

Próximos passos

Como usar modelos CalculatedContent com o mapeamento de dispositivo de serviço MedTech

Como usar modelos IotJsonPathContent com o mapeamento de dispositivo de serviço MedTech

Como usar funções personalizadas com o mapeamento de dispositivos de serviço MedTech

Visão geral do mapeamento de destino FHIR do serviço MedTech

Visão geral dos exemplos de mapeamentos baseados em cenários do serviço MedTech

Observação

FHIR® é uma marca registada da HL7 e é utilizada com a permissão da HL7.