Compartilhar via


Mapas do Kit de Ferramentas de Integração de Dados: exemplos e casos de uso

Observação

A Administração de Sincronização FHIR agora é denominada Kit de Ferramentas de Integração de Dados.

O Kit de Ferramentas de Integração de Dados fornece uma extensa coleção de mapas padrão criados para estar em conformidade com a especificação HL7 FHIR.

Os mapas de entidades e os mapas de atributos são implantados como registros do Dataverse e são altamente configuráveis para acomodar seus vários requisitos de solução. Este artigo inclui alguns exemplos específicos associados ao uso desses mapas.

Para obter informações sobre como configurar esses mapas, acesse Configurar mapas de entidades e Configurar mapas de atributos. Após a configuração, os mesmos mapas são usados pelas Dataverse Healthcare APIs pelo processo de write-back e pelas tabelas de dados de saúde virtuais.

Exemplos de mapas de entidades

Esta seção lista alguns exemplos de uso de mapas de entidades.

Exemplo 1: encontro com o paciente

Quando você adiciona um encontro com o paciente ao EHR de um paciente, o mapa de entidade fornece as regras de transformação que o Dataverse Healthcare APIs precisa para transformar o FHIR em registros do Dataverse.

  1. O mapa da entidade msemr_encounter ↔ Consulta conecta o recurso FHIR do Azure Consulta à entidade msemr_encounter do Dataverse.

    Uma captura de tela mostrando o exemplo de mapa de entidade para encontro com o paciente.

  2. Alterações de dados no recurso Consulta no sistema de registro de saúde do cliente acionam uma nova mensagem para as Dataverse Healthcare APIs. Por exemplo, se o aplicativo lógico do Azure (para as Dataverse Healthcare APIs) for implantado usando o Modelo de pipeline de dados dos serviços de saúde no Centro de Soluções do Microsoft Cloud, um novo pacote FHIR será postado no armazenamento de blobs. Esse aplicativo lógico processa esta pacote e posta-o no Dataverse por meio do Dataverse Healthcare APIs.

    Para obter mais informações sobre o modelo de pipeline de dados de saúde e a configuração do aplicativo lógico, acesse Dataverse Healthcare APIs: usar modelo de pipeline de dados de saúde para implantar Aplicativos Lógicos do Azure.

  3. As Dataverse Healthcare APIs usam o mapa de entidades msemr_encounter ↔ Consulta. Os mapas de atributos relacionados transformam os recursos FHIR recebidos em seus registros representativos no Dataverse.

Exemplo 2: atualização do paciente no Dataverse e write-back

Este exemplo considera um cenário em que você atualiza um registro de paciente no Dataverse e deseja que essa alteração seja gravada de volta em seu sistema EMR por meio dos Serviços de Dados de Saúde do Azure.

  1. O mapa de entidades contact ↔ Paciente do Kit de Ferramentas de Integração de Dados relaciona o Recurso FHIR Paciente do Azure à entidade Contato do Dataverse.

    Uma captura de tela mostrando o exemplo de mapa de entidade para atualização de paciente no Dataverse.

  2. Uma alteração de dados em um registro de paciente no Dataverse desencadeia o plug-in de write-back do Dataverse.

  3. Esse plug-in do Dataverse envia uma mensagem sobre o registro alterado para o ponto de extremidade FHIR de saída configurado na seção write-back das configurações de integração.

  4. Neste exemplo, o ponto de extremidade FHIR é configurado para postar diretamente nos Serviços de Dados de Saúde do Azure.

  5. Você também pode configurar uma aplicação de retransmissão, como um Aplicativo Lógico do Azure ou uma Função do Azure, que pode postar a mensagem no serviço EMR e no Serviços de Dados de Saúde do Azure.

    Observação

    Recomendamos que você mantenha seus dados de pacientes, médicos, clínicos gerenciados e clínicos referenciados sincronizados com o Microsoft Cloud for Healthcare.

Para obter mais informações sobre como configurar o write-back, acesse Visão geral do write-back para Dataverse Healthcare APIs.

Exemplos de mapas de atributos

Esta seção inclui vários exemplos para configurar vários tipos de mapas de atributos que você pode encontrar.

Campo existente de cadeia de caracteres simples

O exemplo a seguir obteria o sobrenome de um paciente do FHIR para enviar para o Dataverse ou atualizar o valor do atributo lastname do Dataverse para o elemento family no FHIR.

`{"s": "$.name[?(@.use=='usual')].family"}`

Esse mapeamento assume que name sempre existe e pode ser localizado por meio do JSONPath definido no recurso FHIR.

Campo existente ou inexistente

O exemplo a seguir obteria ou atualizaria o campo city de address[0], se ele existir. Se isso fosse uma atualização do Dataverse e address[0] não existisse no FHIR, criaria um address[0] pai e definiria o valor city do Dataverse. Também cria valores padrão ou de espaço reservado para outros atributos do Dataverse que poderiam estar faltando no FHIR.

{
    "s": "$.address[0].city",
    "c": {
           "p": "address[0]",
           "a": [
                  {
                    "line": ["x"]
                  },
                  {
                    "city": "%"
                  },
                  {
                    "state": "x"
                  },
                  {
                    "postalCode": "x"
                  },
                  {
                    "country": "x"
                  }
                ]
         }
}

Nota

Para valores de cadeia de caracteres, o valor definido é a cadeia de caracteres literal definida na matriz de atributos, a menos que seja uma das sequências de caracteres especiais. Essas sequências de caracteres especiais serão substituídas por valores da seguinte forma:

  • % - copia o valor do atributo do Dataverse.
  • %% - copia o tipo do recurso de referência FHIR (por exemplo, Paciente).
  • %%% - copia o tipo e a ID do recurso de referência FHIR (exemplo, Paciente/1234).

Nome do paciente

Aplica as regras da seção anterior e usa o seguinte exemplo para atualizar o nome do paciente.

{"s": "$.name[?(@use=='official')].given[0]", "c": {"p": "name[0]", "a": [{"use": "official"}, {"family": "x"}, {"given": ["%"]}]} }
  • "s" = Extrair um givenname do paciente do FHIR para carregar no Dataverse.
  • "c" = Criar um givenname de um paciente quando ele não existe no FHIR.
  • "p" = objeto pai da entrada a ser criada
  • "a" = matriz de parâmetros para usar ao criar "c"

Observação

Os colchetes {} contêm a expressão, enquanto as vírgulas "," separam os segmentos da expressão. No entanto, os colchetes de matriz [] significam que a expressão contém dois ou mais segmentos completos.

"s": "$.name[?(@use=='official')].given[0]"

e

"c": {"p": "name[0]", "a": [{"use": "official"}, {"family": "x"}, {"given": ["%"]}]

Conceito codificável

Combinar codeable concepts do FHIR para o Dataverse é o mesmo que combinar elementos de cadeia de caracteres JSON. A única diferença é que há um nível extra necessário para chegar ao detalhe.

  1. A URL da extensão é http://hl7.org/fhir/StructureDefinition/patient-religion
  2. Queremos acessar o elemento valueCodeableConcept dentro dessa entrada de extensão.
  3. Queremos a primeira entrada na matriz de codificação.
  4. Queremos mapear o display para mostrar as informações no FHIR que estão anexadas a um sistema de codificação.

Recurso FHIRUma captura de tela mostrando os codeable concepts FHIR.

JSONPathUma captura de tela mostrando o JSONPath.

Exemplo de texto (religião)

  1. A URL da extensão é http://hl7.org/fhir/StructureDefinition/patient-religion
  2. Queremos acessar o elemento valueCodeableConcept dentro dessa entrada de extensão.
  3. Queremos mapear o texto para mostrar as informações fornecidas ao FHIR pelo Epic.

Recurso FHIRUma captura de tela mostrando os codeable concepts FHIR para o exemplo de texto.

JSONPathUma captura de tela mostrando o JSONPath para o exemplo de texto.

Valor mapeado

Para obter outro exemplo, você pode criar um mapa de atributos para gênero. No Dataverse, o nome do atributo é gendercode.

  1. No mapa da entidade para Contato, selecione + Novo Mapa de Atributos do Serviço de Atualização.

  2. Como gênero é uma lista de seleção, o Tipo de Ação é Valor Mapeado.

    O gênero no Dataverse é uma lista de seleção. Como também é uma lista de seleção no FHIR, você mapeia os valores da lista de seleção do FHIR para os valores da lista de seleção do Dataverse.

  3. Selecione Mapa de Elementos FHIR para adicionar o mapa de elementos FHIR para gênero. Neste exemplo, é uma cadeia de caracteres de pesquisa JSON que permite chegar ao elemento FHIR, que é gênero.

  4. Selecione Salvar.

    Nos bastidores, o sistema determinou que "gênero" é um conjunto de opções. Existem vários valores que você precisa mapear para este conjunto de opções.

  5. Em Mapas de Valores, insira o Valor FHIR do Azure para mapear para o conjunto de opções. Por exemplo, insira masculino para a opção Masculino (o valor do Dataverse é 1) e insira feminino para a opção Feminino (o valor do Dataverse é 2).

    Selecione Salvar.

    Uma captura de tela exibindo os mapas de valor.

Definir valor padrão

Neste exemplo, defina um valor padrão para mapas de valores.

  1. No mapa da entidade para Contato, selecione + Novo Mapa de Atributos do Serviço de Atualização.

  2. Para Nome do Atributo, selecione Tipo de Contato (msemr_contacttype).

    O Tipo de Contato no Dataverse é um conjunto de opções. Por apresentar pacientes, você sempre deseja que o tipo de contato seja o padrão.

  3. Para Tipo de Ação, selecione Definir Valor Padrão.

    Um mapa de elementos FHIR não é necessário porque você está apenas configurando o valor padrão. Neste caso, FHIR não tem conceito de Tipo de Contato, mas o Dataverse exige Tipo de Contato.

  4. Selecione Salvar.

  5. Em Mapas de Valores, selecione a primeira linha e selecione Editar.

  6. Em Mapa de Valores de Atributos, selecione Paciente para o campo Rótulo de OptionSet.

    O campo Valor mostra o valor padrão para o Tipo de Contato. A Dataverse Healthcare API preenche automaticamente o valor do Dataverse.

    Uma captura de tela exibindo um exemplo para definir o valor padrão para um mapa de atributos.

  7. Selecione Salvar e fechar.

    Observe que, em Mapas de Valor, o valor padrão do Dataverse é definido. Cada vez que o Dataverse Healthcare API entra e cria um paciente, ele define o campo Tipo de Contato como Paciente.

Pesquisar

As etapas a seguir fornecem um exemplo de mapeamento de um atributo do Dataverse do tipo Pesquisa.

  1. No mapa da entidade para Contato, selecione + Novo Mapa de Atributos do Serviço de Atualização.

  2. Para Nome do Atributo, selecione Profissional principal (msemr_generalpractitioner).

    O Tipo de Atributo do atributo Profissional principal é Pesquisa (uma pesquisa para a entidade Contato).

  3. Para Tipo de Ação, o único tipo de ação é Referência FK (referência de chave estrangeira). Você precisa indicar à Dataverse Healthcare API como definir essa pesquisa.

  4. Adicione o valor Mapa do Elemento FHIR ao Profissional principal.

    Uma captura de tela mostrando o valor do mapa do elemento FHIR.

  5. Para Referência de Recurso FHIR, selecione Profissional.

    No Dataverse, a referência da entidade para o profissional principal é o contato. A referência de recurso FHIR é Profissional.

  6. Selecione Salvar.

Se um atributo do Dataverse for uma pesquisa, você só poderá criar um mapa que seja uma referência de chave estrangeira (FK). Para configurar a referência FK, especifique o recurso FHIR para o qual você está mapeando a entidade de destino.

Codeable concept do mapa

O procedimento a seguir é um exemplo de mapeamento de um atributo do Dataverse que é um codeable concept.

  1. Em Configuração do Mapa, selecione Mapas de Entidades.

  2. Em Nome da entidade, selecione msemr_observation.

  3. Em Mapas de atributos relacionados, selecione + Novo Mapa de Atributos do Serviço de Atualização.

  4. Para Nome do Atributo, selecione Código de Denominador de Proporção (msemr_valueratiodenominatorcode).

    O Tipo de Atributo deste atributo é Pesquisa. É uma consulta à entidade msemr_codeableconcept, um tipo de entidade especial no modelo de dados que é tratada de forma diferente de outras entidades.

  5. Para Tipo de Ação, o único tipo de ação é Codeable Concept.

  6. Adicione o valor Mapa do Elemento FHIR para o atributo.

  7. Para Tipo de Codeable Concept, selecione Código de Unidade de Quantidade.

    Um tipo de codeable concept é semelhante a um grande conjunto de opções e cada valor no conjunto de opções tem um tipo. Ele oferece uma maneira de agrupar e filtrar conjuntos de opções. Observe que o campo Valor do Tipo de Codeable Concept foi preenchido automaticamente quando você selecionou Código de Unidade de Quantidade como o tipo de codeable concept. Você não precisou saber o valor do conjunto de opções para Código da Unidade de Quantidade.

    Uma captura de tela mostrando um exemplo de tipo de codeable concept.

  8. Selecione Salvar.

Quando o Dataverse cria uma observação e precisa definir o codeable concept, ele encontra esse codeable concept examinando as tabelas de codeable concept para todos os codeable concepts que têm o tipo Código de Unidade de Quantidade que corresponde ao valor do código que está no codeable concept. Um codeable concept é composto de um texto, um código e o tipo. O FHIR conhece o código e o texto, mas não sabe de qual tipo de codeable concept extrair.

Limitações atuais

  • Nenhuma posição de criação ou inserção de matriz dinâmica deve ser absoluta. A seleção é dinâmica usando o JSONPath.
  • Os dados do valor devem ser válidos no JSON para campos como as cadeias de caracteres UTF-8 do atributo de destino, as datas UTC JSON e os booleanos.

Ferramentas

Você pode usar várias ferramentas para testar as cadeias de caracteres do JSONPath, incluindo as seguintes ferramentas:

Para obter mais informações sobre como usar essas ferramentas, acesse JSONPath.

Confira também

O que é o Microsoft Cloud for Healthcare?
Visão geral do Kit de Ferramentas de Integração de Dados
Gerenciar dados FHIR usando o Kit de Ferramentas de Integração de Dados
Configurar mapas de atributos
Configurar mapas de expansão