Visão geral do mapeamento de destino FHIR do serviço MedTech
Este artigo fornece uma visão geral do mapeamento de destino FHIR® do 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. 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 como os dados normalizados são mapeados para as 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 destino FHIR
O mapeamento de destino FHIR controla como os dados normalizados extraídos de uma mensagem de dispositivo são mapeados em uma Observação FHIR.
- Deve ser criada uma observação para um ponto no tempo ou durante um período de uma hora?
- Que códigos devem ser acrescentados à observação?
- O valor deve ser representado como SampledData ou Quantity?
Esses tipos de dados são todas as opções que os controles de configuração de mapeamento de destino FHIR.
Uma vez que os dados do dispositivo são transformados em um modelo de dados normalizado, os dados normalizados são coletados para transformação em uma Observação FHIR. Se o tipo de observação for SampledData, os dados serão agrupados de acordo com o identificador do dispositivo, tipo de medição e período de tempo (período de tempo pode ser de 1 hora ou 24 horas). A saída desse agrupamento é enviada para conversão em uma única Observação FHIR que representa o período de tempo para esse tipo de dados. Para outros tipos de Observação (Quantity, CodeableConcept e String), os dados não são agrupados, mas cada medida é transformada em uma única Observação representando um ponto no tempo.
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 mensagens de dispositivo de serviço MedTech.
Este diagrama fornece uma ilustração do que acontece durante o estágio de transformação dentro do serviço MedTech.
Nota
A Observação FHIR neste diagrama não é o recurso completo. Veja Exemplo nesta visão geral para toda a Observação FHIR.
CollectionFhir
CollectionFhir é o tipo de modelo raiz usado pelo mapeamento de destino FHIR do serviço MedTech. CollectionFhir é uma lista de todos os modelos que são usados durante o estágio de transformação. Você pode definir um ou mais modelos no CollectionFhir, com cada mensagem normalizada avaliada em relação a todos os modelos.
CodeValueFhir
CodeValueFhir é atualmente o único modelo suportado no mapeamento de destino FHIR. Ele permite que você defina códigos, o período efetivo e o valor da observação. Vários tipos de valor são suportados: SampledData, CodeableConcept, Quantity e String. Juntamente com esses valores configuráveis, o identificador do recurso de Observação e o link para os recursos adequados do Dispositivo e do Paciente são manipulados automaticamente.
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.
Elemento | Description | Necessário |
---|---|---|
typeName | O tipo de medida a que este modelo deve ligar-se. Nota: Deve haver pelo menos um modelo de mapeamento de dispositivo que tenha este mesmo typeName . O typeName elemento é usado para vincular um modelo de mapeamento de destino FHIR a um ou mais modelos de mapeamento de dispositivo. Os modelos de mapeamento de dispositivo com o mesmo elemento geram dados normalizados que são avaliados com um modelo de mapeamento de destino FHIR que tem o mesmo typeName typeName . |
True |
períodoIntervalo | O período de tempo que a observação criada deve representar. Os valores suportados são 0 (uma instância), 60 (uma hora), 1440 (um dia). | True quando o tipo de Observação é SampledData; Ignorado para outros tipos de Observação. |
categoria | Qualquer número de CodeableConcepts para classificar o tipo de observação criada. | False |
códigos | Uma ou mais Codificações para aplicar à observação criada. | True |
códigos[].code | O código para uma codificação no codes elemento . |
True |
códigos[].system | O sistema para uma codificação no codes elemento . |
False |
códigos[].display | A exibição de codes uma codificação no elemento . |
False |
valor | O valor a extrair e representar na observação. Para obter mais informações sobre os elementos que o elemento contém, consulte Tipos de value valor. |
True quando o elemento não é usado (a menos que o components tipo Observation seja CodebleConcept, caso em que esse elemento não é apenas 'não necessário', mas também ignorado). |
Componentes | Um ou mais componentes para criar na observação. | True quando o value elemento não é usado. |
componentes[].codes | Uma ou mais Codificações para aplicar ao componente. | False |
componentes[].value | O valor a ser extraído e representado no componente. Para obter mais informações sobre os elementos que o elemento contém, consulte Tipos de components[].value valor. |
True quando o elemento é usado (a menos que o components tipo Observation seja CodebleConcept, caso em que esse elemento não é apenas 'não necessário', mas também ignorado). |
Tipos de valor
Todos os elementos dos value
modelos CodeValueFhir contêm estes elementos:
Elemento | Description | Necessário |
---|---|---|
valueType | Tipo do valor. Esse valor seria "SampledData", "Quantity", "CodeableConcept" ou "String", dependendo do tipo de valor. | True |
nome_valor | Nome do valor. | True a menos que valueType seja CodeableConcept. |
Estes tipos de valor são suportados no mapeamento de destino FHIR do serviço MedTech:
SampledData
Representa o tipo de dados FHIR SampledData . As medições de observação são gravadas em um fluxo de valor começando em um ponto no tempo e avançando usando o período definido. Se nenhum valor estiver presente, um E
será gravado no fluxo de dados. Se o período for tal que dois ou mais valores ocupem a mesma posição no fluxo de dados, o valor mais recente será usado. A mesma lógica é aplicada quando uma observação usando o SampledData é atualizada. Para um modelo CodeValueFhir com o tipo de valor SampledData, o elemento do value
modelo contém os seguintes elementos:
Elemento | Description | Necessário |
---|---|---|
defaultPeriod | O período padrão em milissegundos a ser usado. | True |
unidade | A unidade a ser definida na origem do SampledData. | True |
Quantidade
Representa o tipo de dados Quantity FHIR. Este tipo cria uma única observação pontual. Se chegar um novo valor que contenha o mesmo identificador de dispositivo, tipo de medida e carimbo de data/hora, a Observação anterior será atualizada para o novo valor. Para um modelo CodeValueFhir com o tipo de valor Quantity, o elemento do value
modelo contém os seguintes elementos:
Elemento | Description | Necessário |
---|---|---|
unidade | Representação da unidade. | False |
code | Forma codificada da unidade. | False |
sistema | Sistema que define o formulário de unidade codificada. | False |
CodeableConcept
Representa o tipo de dados FHIR CodeableConcept . O valor no modelo de dados normalizado não é usado e, em vez disso, quando esse tipo de dados é recebido, uma Observação é criada com um código específico que representa que uma observação foi registrada em um ponto específico no tempo. Para um modelo CodeValueFhir com o tipo de valor CodeableConcept, o elemento do value
modelo contém os seguintes elementos:
Elemento | Description | Necessário |
---|---|---|
text | Representação de texto simples. | False |
códigos | Uma ou mais Codificações para aplicar à observação criada. | True |
códigos[].code | O código para uma codificação no codes elemento . |
True |
códigos[].system | O sistema para uma codificação no codes elemento . |
False |
códigos[].display | A exibição de codes uma codificação no elemento . |
False |
String
Representa o tipo de dados String FHIR. Este tipo cria uma única observação pontual. Se chegar um novo valor que contenha o mesmo identificador de dispositivo, tipo de medida e carimbo de data/hora, a Observação anterior será atualizada para o novo valor. Nenhum outro elemento é definido.
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.
Nota
Este exemplo e mensagem normalizada é uma continuação de Visão geral do mapeamento de dispositivo de serviço MedTech.
Neste exemplo, estamos usando uma mensagem normalizada capturando heartRate
dados:
[
{
"type": "heartrate",
"occurrenceTimeUtc": "2023-03-13T22:46:01.875Z",
"deviceId": "device01",
"properties": [
{
"name": "hr",
"value": "78"
}
]
}
]
Estamos usando este mapeamento de destino FHIR para o estágio de transformação:
{
"templateType": "CollectionFhir",
"template": [
{
"templateType": "CodeValueFhir",
"template": {
"codes": [
{
"code": "8867-4",
"system": "http://loinc.org",
"display": "Heart rate"
}
],
"typeName": "heartrate",
"value": {
"system": "http://unitsofmeasure.org",
"code": "count/min",
"unit": "count/min",
"valueName": "hr",
"valueType": "Quantity"
}
}
}
]
}
A Observação FHIR resultante ficará assim após a etapa de transformação:
[
{
"code": {
"coding": [
{
"system": {
"value": "http://loinc.org"
},
"code": {
"value": "8867-4"
},
"display": {
"value": "Heart rate"
}
}
],
"text": {
"value": "heartrate"
}
},
"effective": {
"start": {
"value": "2023-03-13T22:46:01.8750000Z"
},
"end": {
"value": "2023-03-13T22:46:01.8750000Z"
}
},
"issued": {
"value": "2023-04-05T21:02:59.1650841+00:00"
},
"value": {
"value": {
"value": 78
},
"unit": {
"value": "count/min"
},
"system": {
"value": "http://unitsofmeasure.org"
},
"code": {
"value": "count/min"
}
}
}
]
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
Visão geral do mapeamento de dispositivos de serviço MedTech
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 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 .