Visão geral do mapeamento de destino FHIR do serviço de tecnologia médica
Este artigo fornece uma visão geral do mapeamento de destino FHIR® do serviço de tecnologia médica.
O serviço de tecnologia médica requer dois tipos de mapeamentos JSON que são adicionados ao seu serviço de tecnologia médica por meio do portal do Azure ou da API do Azure Resource Manager. O mapeamento do dispositivo é o primeiro tipo e controla os valores de mapeamento nos dados do dispositivo enviados ao serviço de tecnologia médica para um objeto de dados interno normalizado. O mapeamento de dispositivo contém expressões que o serviço de tecnologia médica usa para extrair tipos, identificadores de dispositivo, data e hora da medição e valores de medição. O mapeamento de destino FHIR é o segundo tipo e controla como os dados normalizados são mapeados para Observações FHIR.
Observação
Os mapeamentos de destino do dispositivo e do FHIR são reavaliados sempre que uma mensagem de dispositivo é processada. Todas as atualizações de 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.
- Uma observação deve ser criada para um período pontual ou durante um período de uma hora?
- Quais códigos devem ser adicionados à observação?
- O valor deve ser representado como SampledData ou um Quantity?
Esses tipos de dados são todas as opções dos 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, o tipo de medição e o período de tempo (o período de tempo pode ser de 1 hora ou 24 horas). A saída desse agrupamento é enviada para conversão em um único Observação FHIR que representa o período de tempo para esse tipo de dados. Para outros tipos de Observação (Quantity, os dados CodeableConcept e String) não são agrupados, mas cada medida é transformada em uma única Observação representando um ponto no tempo.
Dica
Para obter mais informações sobre como o serviço de tecnologia médica 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 de tecnologia médica.
Este diagrama fornece uma ilustração do que acontece durante o estágio de transformação dentro do serviço de tecnologia médica.
Observação
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 de tecnologia médica. 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 dentro do CollectionFhir, com cada mensagem normalizada avaliada em relação a todos os modelos.
CodeValueFhir
CodeValueFhir é atualmente o único modelo com suporte no mapeamento de destino FHIR. Ele permite que você defina códigos, o período efetivo e o valor da observação. Há suporte para vários tipos de valor: SampledData, CodeableConcept, Quantity e String. Junto com esses valores configuráveis, o identificador do recurso de observação e o vínculo com os recursos apropriados do dispositivo e do paciente são tratados automaticamente.
Importante
O tipo Resolução especifica como o serviço de tecnologia médica associa os dados do dispositivo aos recursos do dispositivo e aos recursos do paciente. O serviço de tecnologia médica lê os recursos de dispositivo e 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 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 nenhum encontro FHIR existir com esse identificador de encontro, uma exceção FhirResourceNotFound será lançada. Para obter mais informações sobre como configurar o serviço de tecnologia médica Tipo de resolução, consulte Configurar a guia destino.
Element | Descrição | Necessário |
---|---|---|
typeName | O tipo de medida ao qual este modelo deve se associar. Nota: deve haver pelo menos um modelo de mapeamento de dispositivo que tenha esse mesmo typeName . O elemento typeName é 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 typeName geram dados normalizados que são avaliados com um modelo de mapeamento de destino FHIR que tem o mesmo typeName . |
Verdadeiro |
periodInterval | O período de tempo que a observação criada deve representar. Os valores com suporte são 0 (uma instância), 60 (uma hora), 1440 (um dia). | True quando o tipo de observação é SampledData; Ignored para outros tipos de Observação. |
category | Qualquer número de CodeableConcepts para classificar o tipo de observação criado. | Falso |
codes | Um ou mais Codings a serem aplicados à observação criada. | Verdadeiro |
codes[].code | O código de uma Codificação no elemento codes . |
Verdadeiro |
codes[].system | O sistema para um Codificação no elemento codes . |
Falso |
codes[].display | A exibição de um Codificação no elemento codes . |
Falso |
value | O valor a ser extraído e representado na observação. Para obter mais informações sobre os elementos que o elemento value contém, consulte Tipos de valor. |
True quando o elemento components não é usado (a menos que o tipo Observation seja CodebleConcept, caso em que esse elemento não é apenas "não obrigatório", mas também ignorado). |
components | Um ou mais componentes a serem criados na observação. | True quando o elemento value não é usado. |
components[].codes | Um ou mais Codings a serem aplicados ao componente. | Falso |
components[].value | O valor a ser extraído e representado no componente. Para obter mais informações sobre os elementos que o elemento components[].value contém, consulte Tipos de valor. |
True quando o elemento components é usado (a menos que o tipo Observation seja CodebleConcept, caso em que esse elemento não é apenas 'não obrigatório', mas também ignorado). |
Tipos de valor
Todos os value
elementos dos modelos CodeValueFhir contêm estes elementos:
Element | Descrição | Necessário |
---|---|---|
valueType | Tipo do valor. Esse valor seria "SampledData", "Quantity", "CodeableConcept" ou "String", dependendo do tipo de valor. | Verdadeiro |
valueName | Nome do valor. | True a menos que valueType seja CodeableConcept. |
Esses tipos de valor são suportados no mapeamento de destino FHIR do serviço de tecnologia médica:
SampledData
Representa o tipo de dados do FHIR do SampledData. As medidas de observação são gravadas em um fluxo de valor, começando em um período pontual e incrementando para frente usando o período definido. Se nenhum valor estiver presente, um E
será gravado no fluxo de dados. Se o ponto 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 value
do modelo contém os seguintes elementos:
Element | Descrição | Necessário |
---|---|---|
defaultPeriod | O período padrão em milissegundos a ser usado. | Verdadeiro |
unidade | A unidade a ser definida na origem do SampledData. | Verdadeiro |
Quantidade
Representa o tipo de dados do FHIR do Quantity. Esse tipo cria uma única observação, point-in-time. 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 Quantidade, o elemento value
do modelo contém os seguintes elementos:
Element | Descrição | Necessário |
---|---|---|
unidade | Representação da unidade. | Falso |
code | Forma codificada da unidade. | Falso |
system | Sistema que define a forma de unidade codificada. | Falso |
CodeableConcept
Representa o tipo de dados do FHIR do 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 representando 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 value
do modelo contém os seguintes elementos:
Element | Descrição | Obrigatório |
---|---|---|
text | Representação de texto sem formatação. | Falso |
codes | Um ou mais Codings a serem aplicados à observação criada. | Verdadeiro |
codes[].code | O código de uma Codificação no elemento codes . |
Verdadeiro |
codes[].system | O sistema para um Codificação no elemento codes . |
Falso |
codes[].display | A exibição de um Codificação no elemento codes . |
Falso |
String
Representa a cadeia de caracteres do tipo de dados FHIR. Esse tipo cria uma única observação, point-in-time. 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
Dica
Você pode usar o serviço Depurador de mapeamento do MedTech para obter assistência na criação, atualização e solução de problemas do dispositivo de serviço de tecnologia médica e mapeamentos de destino FHIR. O depurador de mapeamento permite que você exiba 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.
Observação
Este exemplo e a mensagem normalizada são uma continuação de Visão geral do mapeamento de dispositivo de serviço de tecnologia médica.
Neste exemplo, estamos usando uma mensagem normalizada que captura dados heartRate
:
[
{
"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 o estágio 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"
}
}
}
]
Dica
Para obter assistência para corrigir erros comuns de implantação do serviço de tecnologia médica, consulte Solucionar problemas de erros de implantação do serviço de tecnologia médica.
Para obter assistência na correção de erros de serviço de tecnologia médica, consulte Solucionar problemas de erros usando os logs de serviço de tecnologia médica.
Próximas etapas
Visão geral do mapeamento de dispositivos de serviço de tecnologia médica
Como usar modelos CalculatedContent com o mapeamento de dispositivo de serviço de tecnologia médica
Como usar modelos IotJsonPathContent com o mapeamento de dispositivo de serviço de tecnologia médica
Como usar funções personalizadas com o mapeamento de dispositivo de serviço de tecnologia médica
Visão geral dos exemplos de mapeamentos baseados em cenários do serviço de tecnologia médica
Observação
FHIR® é uma marca registrada da HL7 e é usado com a permissão da HL7.