Partilhar via


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.

Diagram example of the MedTech service device message transformation stage.

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.

Diagram showing MedTech service FHIR destination mapping template and code architecture.

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 .