Compartilhar via


Exporte seus dados FHIR

Usando a operação em massa $export no serviço FHIR, você pode exportar dados conforme descrito na especificação HL7 FHIR Bulk Data Access.

Antes de tentar usar $exporto , verifique se o serviço FHIR está configurado para se conectar a uma conta do Azure Data Lake Storage Gen2. Para definir as configurações de exportação e criar uma conta do Data Lake Storage Gen2, consulte Definir configurações para exportação.

Chamar o $export ponto de extremidade

Depois de configurar o serviço FHIR para se conectar a uma conta do Data Lake Storage Gen2, você poderá chamar o ponto de extremidade e o $export serviço FHIR exportará dados para um contêiner de Armazenamento de Blobs do Azure dentro da conta de armazenamento. A solicitação de exemplo a seguir exporta todos os recursos para um contêiner, que é especificado pelo nome ({{containerName}}). Observe que você deve criar o contêiner na conta Data Lake Storage Gen2 com antecedência se quiser especificar o {{containerName}} na solicitação.

GET {{fhirurl}}/$export?_container={{containerName}}

Se você não especificar um nome de contêiner na solicitação (por exemplo, chamando GET {{fhirurl}}/$export), um novo contêiner com um nome gerado automaticamente será criado para os dados exportados.

Para obter informações gerais sobre a especificação da API FHIR, consulte a documentação do Fluxo de Solicitação de Exportação FHIR $export HL7.

O serviço FHIR suporta $export os seguintes níveis:

  • Sistema: GET {{fhirurl}}/$export
  • Paciente: GET {{fhirurl}}/Patient/$export
  • Grupo de pacientes*: GET {{fhirurl}}/Group/[ID]/$export
    *O serviço FHIR exporta todos os recursos referenciados, mas não exporta as características do recurso do grupo em si.

Os dados são exportados em vários arquivos. Cada arquivo contém recursos de apenas um tipo. O número de recursos em um arquivo individual será limitado. O número máximo de recursos é baseado no desempenho do sistema. Atualmente, está definido para 5.000, mas pode mudar. O resultado é que você pode obter vários arquivos para um tipo de recurso. Os nomes dos arquivos seguirão o formato <resourceName>-<number>-<number>.ndjson. A ordem dos arquivos não é garantida para corresponder a qualquer ordem dos recursos no banco de dados.

Observação

Patient/$export e Group/[ID]/$export pode exportar recursos duplicados se um recurso estiver em vários grupos ou em um compartimento de mais de um recurso.

Além de verificar a presença de arquivos exportados em sua conta de armazenamento, você pode verificar $export o status da operação por meio da URL no Content-Location cabeçalho retornado na resposta do serviço FHIR. Para obter mais informações, consulte a documentação de solicitação de status de dados em massa do HL7.

Exporte seus dados FHIR para o Data Lake Storage Gen2

Atualmente, o serviço FHIR oferece suporte $export a contas do Data Lake Storage Gen2, com as seguintes limitações:

  • O Data Lake Storage Gen2 fornece namespaces hierárquicos, mas não há uma maneira de direcionar $export operações para um subdiretório específico dentro de um contêiner. O serviço FHIR pode especificar apenas o contêiner de destino para a exportação, onde uma nova pasta para cada $export operação é criada.
  • Depois que uma $export operação for concluída e todos os dados tiverem sido gravados dentro de uma pasta, o serviço FHIR não exportará nada para essa pasta novamente, porque as exportações subsequentes para o mesmo contêiner estarão dentro de uma pasta recém-criada.

Para exportar dados para uma conta de armazenamento atrás de um firewall, consulte Definir configurações para exportação.

Configurações e parâmetros

Cabeçalhos

Dois parâmetros de cabeçalho necessários devem ser definidos para $export trabalhos. Os valores são definidos de acordo com a especificação atual do $export HL7.

  • Aceitar: application/fhir+json
  • Prefira: respond-async

Parâmetros de consulta

O serviço FHIR oferece suporte aos seguintes parâmetros de consulta para filtrar dados exportados. Todos esses parâmetros são opcionais.

Parâmetro de consulta Definido pela especificação FHIR? Descrição
_outputFormat Sim Atualmente, oferece suporte a três valores para alinhar à especificação FHIR: application/fhir+ndjson, application/ndjson, ou apenas ndjson. Todos os trabalhos de exportação retornarão .ndjson arquivos e o valor passado não terá efeito sobre o comportamento do código.
_since Sim Permite exportar apenas recursos que foram modificados desde o tempo especificado.
_type Sim Permite especificar quais tipos de recursos serão incluídos. Por exemplo, _type=Patient devolveria apenas recursos do paciente.
_typeFilter Sim Para solicitar uma filtragem mais refinada, você pode usar _typeFilter junto com o _type parâmetro. O valor do parâmetro é uma lista separada por vírgulas _typeFilter de consultas FHIR que limitam ainda mais os resultados.
_container Não Especifica o nome do contêiner na conta de armazenamento configurada para onde os dados devem ser exportados. Se um contêiner for especificado, os dados serão exportados para uma pasta nesse contêiner. Se o contêiner não for especificado, os dados serão exportados para um novo contêiner com um nome gerado automaticamente.
_till Não Permite exportar recursos que foram modificados até o tempo especificado. Esse parâmetro é aplicável somente com a exportação em nível de sistema. Nesse caso, se as versões históricas não tiverem sido desativadas ou removidas, a exportação garante a visualização verdadeira do instantâneo ou, em outras palavras, permite a viagem no tempo.
includeAssociatedData Não Permite exportar histórico e recursos excluídos suaves. Esse filtro não funciona com o parâmetro de consulta '_typeFilter'. Inclua o valor como '_history' para exportar recursos com a versão não mais recente. Inclua o valor como '_deleted' para exportar recursos excluídos flexíveis.

Observação

Somente contas de armazenamento na mesma assinatura do serviço FHIR podem ser registradas como destino das $export operações.

Solucionar problemas

As informações a seguir podem ajudá-lo a resolver problemas com a exportação de dados FHIR.

Empregos presos em mau estado

Em algumas situações, há um potencial para um trabalho ficar preso em um estado ruim enquanto o serviço FHIR está tentando exportar dados. Isso pode ocorrer especialmente se as permissões da conta Data Lake Storage Gen2 não tiverem sido configuradas corretamente.

Uma maneira de verificar o status da sua operação é ir para o navegador de armazenamento da sua $export conta de armazenamento e ver se há arquivos .ndjson presentes no contêiner de exportação. Se os arquivos não estiverem presentes e nenhum outro $export trabalho estiver em execução, é possível que o trabalho atual esteja preso em um estado incorreto. Nesse caso, você pode cancelar o $export trabalho chamando a API de serviço FHIR com uma DELETE solicitação. Mais tarde, você pode enfileirar novamente o trabalho e tentar novamente $export .

Para obter mais informações sobre como cancelar uma $export operação, consulte a documentação Solicitação de exclusão de dados em massa do HL7.

Observação

No serviço FHIR, o tempo padrão para uma $export operação ficar ociosa em um estado incorreto é de 10 minutos antes que o serviço pare a operação e passe para um novo trabalho.

Próximas etapas

Neste artigo, você aprendeu sobre como exportar recursos FHIR usando a $export operação. Para obter informações sobre como configurar e usar opções adicionais para exportação, consulte:

FHIR® é uma marca registrada da HL7 e é usado com a permissão da HL7.