Visão geral do mapeamento de dispositivos de serviço MedTech
Este artigo fornece uma visão geral do mapeamento de dispositivos de serviço MedTech.
O serviço MedTech requer dois tipos de mapeamentos JSON que são adicionados ao seu serviço MedTech por meio do portal do Azure ou da API do Azure Resource Manager (ARM). O mapeamento de dispositivo é o primeiro tipo e controla os valores de mapeamento nos dados do dispositivo enviados ao serviço MedTech para um objeto de dados interno normalizado. 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. O mapeamento de destino FHIR® é o segundo tipo e controla o mapeamento para observações FHIR.
Nota
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.
Noções básicas de mapeamento de dispositivos
O mapeamento de dispositivos contém coleções de modelos de expressão usados para extrair dados de mensagens de dispositivos em um formato interno normalizado para avaliação posterior. Cada mensagem de dispositivo recebida é avaliada em relação a todos os modelos de expressão na coleção. Esta avaliação significa que uma única mensagem de dispositivo pode ser separada em várias mensagens de saída que podem ser mapeadas para várias Observações FHIR no serviço FHIR.
Gorjeta
Para obter mais informações sobre como o serviço MedTech processa dados de mensagens de dispositivo em observações FHIR para persistência no serviço FHIR, consulte Visão geral dos estágios de processamento de dados de dispositivo de serviço MedTech.
Este diagrama fornece uma ilustração do que acontece durante o estágio de normalização dentro do serviço MedTech.
Validações de mapeamento de dispositivos
O processo de normalização valida o mapeamento do dispositivo antes de permitir que ele seja salvo para uso. Esses elementos são necessários nos modelos de mapeamento de dispositivos.
Mapeamento de dispositivos
Elemento | Obrigatório em CalculatedContent | Obrigatório em IotJsonPathContent |
---|---|---|
typeName | True | True |
typeMatchExpression | True | True |
deviceIdExpression | True | Falso e ignorado completamente. |
timestampExpression | True | Falso e ignorado completamente. |
patientIdExpression | True quando o tipo de Resolução dos serviços MedTech está definido como Criar; False quando o tipo de resolução do serviço MedTech está definido como Pesquisa. | True quando o tipo de Resolução do serviço MedTech está definido como Criar; False quando o tipo de resolução do serviço MedTech está definido como Pesquisa. |
encounterIdExpression | False | False |
correlationIdExpression | False | False |
valores[].valueName | True | True |
valores[].valueExpression | True | True |
valores[].required | True | True |
Importante
O tipo 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.
Nota
Os values[].valueName, values[].valueExpression
elementos , e values[].required
só são necessários se você tiver uma entrada de valor na matriz. É válido não ter valores mapeados. Esses elementos são usados quando a telemetria que está sendo enviada é um evento.
Por exemplo, alguns cenários podem exigir a criação de uma Observação FHIR no serviço FHIR que não contenha um valor.
CollectionContent
CollectionContent é o tipo de modelo raiz usado pelo mapeamento de dispositivo de serviço MedTech. CollectionContent é uma lista de todos os modelos que são usados durante o estágio de normalização. Você pode definir um ou mais modelos dentro do CollectionContent, com cada mensagem de dispositivo recebida pelo serviço MedTech sendo avaliada em relação a todos os modelos.
Você pode usar estes tipos de modelo em CollectionContent dependendo do seu caso de uso:
- Conteúdo calculado para mensagens de dispositivo enviadas diretamente para o hub de eventos do serviço MedTech. CalculatedContent suporta as funções JSONPath, JMESPath, JMESPath e as funções personalizadas do serviço MedTech.
e/ou
- IotJsonPathContent para mensagens de dispositivo que estão sendo roteadas por meio de um Hub IoT do Azure para seu hub de eventos de serviço MedTech. IotJsonPathContent suporta JSONPath.
Exemplo
Gorjeta
Você pode usar o depurador de mapeamento de serviço MedTech para assistência na criação, atualização e solução de problemas do dispositivo de serviço MedTech e mapeamentos 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 dispositivo de teste para ver como elas ficarão depois de 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"
}
]
}
]
Quando o serviço MedTech está processando a mensagem do dispositivo, os modelos no CollectionContent são usados para avaliar a mensagem. 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. Se o typeMatchExpression
avalia como true, os deviceIdExpression
valores , timestampExpression
e são usados para localizar e extrair os valores JSON da mensagem do dispositivo e valueExpression
criar uma mensagem normalizada. Neste exemplo, todas as expressões são escritas em JSONPath, no entanto, seria válido escrever todas as expressões em JMESPath. Cabe ao autor do modelo determinar qual linguagem de expressão é mais apropriada.
Gorjeta
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
Nota
FHIR® é uma marca registada da HL7 e é utilizada com a permissão da HL7 .