Exportar 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 $export
o , verifique se o serviço FHIR está configurado para se conectar a uma conta do Azure Data Lake Storage Gen2. Para configurar as definições de exportação e criar uma conta do Data Lake Storage Gen2, consulte Configurar definiçõ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ê pode chamar o $export
ponto de extremidade e o 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}}
). Observação: Você deve criar o contêiner na conta do 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 $export
, consulte a documentação do fluxo de solicitação de exportação HL7 FHIR.
O serviço FHIR oferece suporte $export
nos 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 de 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 é. O número máximo de recursos é baseado no desempenho do sistema. Atualmente, está definido como 5.000, mas pode mudar.
O resultado é que você pode obter vários arquivos para um tipo de recurso. Os nomes dos arquivos seguem o formato <resourceName>-<number>-<number>.ndjson
. Não há garantia de que a ordem dos arquivos corresponda a qualquer ordenação 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 da Solicitação de Status de Dados em Massa do HL7.
Exportar seus dados FHIR para o Data Lake Storage Gen2
Atualmente, o serviço FHIR dá 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 em 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 é concluída e todos os dados são gravados em uma pasta, o serviço FHIR não exporta nada para essa pasta novamente. 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 protegida por 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 HL7 $export.
- Aceitar:
application/fhir+json
- Preferir:
respond-async
Parâmetros de consulta
O serviço FHIR dá 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 se alinhar à especificação FHIR: application/fhir+ndjson , application/ndjson , ou apenas ndjson . Todos os trabalhos de exportação retornam .ndjson arquivos e o valor passado não tem 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 devem ser incluídos. Por exemplo, _type=Patient retornaria 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 no nível do sistema. Nesse caso, se as versões históricas não tiverem sido desabilitadas ou limpas, export garante uma exibição de instantâneo verdadeira. |
includeAssociatedData |
Não | Permite exportar o histórico e os recursos excluídos de forma reversível. Este filtro não funciona com o parâmetro de consulta '_typeFilter'. Inclua o valor como '_history' para exportar o histórico/recursos com versão não mais recentes. Inclua o valor como '_deleted' para exportar recursos excluídos de forma reversível. |
Observação
Somente contas de armazenamento na mesma assinatura que o serviço FHIR podem ser registradas como o 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 um estado ruim
Em algumas situações, há um potencial para que um trabalho fique preso em um estado ruim enquanto o serviço FHIR está tentando exportar dados. Isso pode ocorrer especialmente se as permissões da conta do Data Lake Storage Gen2 não tiverem sido configuradas corretamente.
Uma maneira de verificar o status da operação $export
é acessar o navegador de armazenamento da conta de armazenamento e ver se algum .ndjson
arquivo está presente 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 enviando uma solicitação DELETE para a URL fornecida no cabeçalho Content-Location para cancelar a solicitação
Observação
No serviço FHIR, o tempo padrão para uma $export
operação ficar ociosa em um estado ruim é de 10 minutos antes que o serviço interrompa a operação e mude para um novo trabalho.
Próximas etapas
Neste artigo, você aprendeu a exportar recursos FHIR usando a $export
operação. Para obter informações sobre como configurar e usar outras opções de exportação, consulte:
Observação
FHIR® é uma marca registrada da HL7 e é usado com a permissão da HL7.