Geração de uma Base Pública para Avaliação de Mecanismos de Persistência de Sistemas de Registros Eletrônicos de Saúde Baseados nas Especificações da Fundação openEHR

Início: 2013

Resumo: Este projeto tem como objetivo montar e disponibilizar publicamente uma base de dados gerada de acordo com as especificações da fundação openEHR para ser utilizada em estudos de avaliação de mecanismos de persistência de sistemas baseados no openEHR.  Um conjunto de Registros Eletrônicos de Saúde (RES), baseado no modelo de referência do openEHR, pode ser gerado com base em dados disponíveis publicamente de modo a simular um sistema de RES em produção. Os dados consistem nas APACs e AIHs disponibilizadas publicamente pelo DATASUS, sem identificação dos pacientes, de 2008 a 2012. Arquétipos e templates foram criados para converter os dados dos arquivos .dbf do datasus em pseudos RES, gerados segundo as especificações da fundação openEHR.

Equipe: Sergio Miranda Freire, Douglas Teodoro, Mario João Junior

Aprovado pelo comitê de ética do Hospital Universitário Pedro Ernesto, processo número CAAE 39418314.9.0000.5259

Arquivos:

Instruções para Instalar o Banco de Dados

1) Instalar o Postgresql versão 8.4.13 ou superior

2) Executar o script de criação do banco de dados. O exemplo abaixo mostra o comando para executar o script como usuário postgres. Modifique as variáveis LC_COLLATE e LC_CTYPE do script de acordo com a sua localização.
psql -U postgres -f orbdaCreateDB.sql

3) Executar o script de criação das tabelas do banco ORBDA:
psql -U postgres -d orbda -f orbdaCreateTables.sql

4) Carregar os dados no banco de dados. Adapte o script para o conjunto de dados que foram baixados:
psql -U postgres -d orbda -f importingFiles.sql

Instruções para Rodar o Programa de Conversão para o openEHR

Os dados de entrada devem estar armazenados num banco de dados relacional. Além disso, um arquivo com os ids dos pacientes também é utilizado como entrada.

Os ids dos pacientes para o banco de dados completo estão em dois arquivos:

Para subconjuntos do banco de dados, dois arquivos com ids de pacientes devem ser gerados extraindo os respectivos subconjuntos dos arquivos de ids fornecidos.

Os parâmetros para a conexão com o banco de dados devem ser configurados no arquivo builder.properties.

Extrair o arquivo terminology.tar.gz em “project-dir/repository/terminologies”.

Sintaxe:

A sintaxe do conversor é a seguinte:

java -Xmx8g -Dfile.encoding=UTF-8 -cp projectdir/bin/uber-sus-openehr-builder-1.0.1-SNAPSHOT.jar br.uerj.lampada.openehr.susbuilder.EHRGenerator --patients patientids --ehr-dir outputdir --type < ehr|version|composition > --format < json|xml > [--aih]

O programa converte os dados de um banco de dados relacional para o formato openEHR e necessita de no mínimo 8 Gbytes de memória RAM para executar.

Opções:

  • –patients patientids

O arquivo de ids de pacientes a ser utilizado na conversão.

  • –ehr-dir outputdir

Os arquivos de saída são gerados nos diretórios “ehr”, “ehrAccess”, “ehrStatus”, “contribution” and “composition” abaixo do outputdir.

  • –format < json|xml >

Especifica o formato de saída. Pode ser json ou xml.

  • –type < ehr|version|composition >

Especifica o tipo de saída. Pode ser ehr, version ou composition.

  • –aih

O argumento –aih é utilizado quando se está convertendo dados de pacientes internados. Esse argumento deve ser omitido no caso da conversão de dados de pacientes ambulatoriais.

Exemplos:

No diretório do projeto, utilizar um dos comandos a seguir:

Para conversão de dados de pacientes ambulatoriais:
java -Xmx8g -Dfile.encoding=UTF-8 -cp bin/uber-sus-openehr-builder-1.0.1-SNAPSHOT.jar br.uerj.lampada.openehr.susbuilder.EHRGenerator –type ehr –format xml –patients ./patientIds/apac_cnspcn.txt –ehr-dir ./ehr

Para conversão de dados de pacientes internados:
java -Xmx8g -Dfile.encoding=UTF-8 -cp bin/uber-sus-openehr-builder-1.0.1-SNAPSHOT.jar br.uerj.lampada.openehr.susbuilder.EHRGenerator –aih –type ehr –format xml –patients ./patientIds/aih_n_aih.txt –ehr-dir ./ehr

Outra forma de realizar a conversão é utilizar o script run_jobs.sh que gera um job em paralelo para cada arquivo de identificadores dentro do diretório patient_dir.

Sintaxe:

run_jobs.sh -< composition|version|ehr > -< json|xml > -< aih|apac > patient_dir output_dir

Exemplo:

./run_jobs.sh -composition -json -aih aih_dir aih_comp_output_dir