Linkage de bases de dados oficiais de saúde
Você já se deparou com situações como essas:
- Durante uma investigação de óbito, precisou acessar vários sistemas para consultar dados sobre o paciente?
- Para avaliar fatores de risco em um surto, precisou acessar sistemas e planilhas de Excel para diversos pacientes diferentes?
- Precisou verificar durante a pandemia de covid-19 quais óbitos ocorreram em pessoas vacinadas ou não vacinadas pesquisando sistemas locais e no SI-PNI?
Essas situações não são raras, não é mesmo? Em sua grande maioria trata-se de uma atividade muito desgastante, trabalhosa e exige uma carga horária enorme. Atualmente, na área da saúde, existem diversos sistemas para registro de eventos que acometem as pessoas. Alguns com objetivos mais epidemiológicos, como o SINAN (Sistema de Informação de Agravos de Notificação) que registra dados sobre doenças e agravos de notificação compulsória, e o SIM (Sistema de Informação de Mortalidade) e o SINASC (Sistema de Informação de Nascidos Vivos) que registram óbitos e nascimentos, respectivamente. Já outros, como o SIH (Sistema de Informação sobre Internação Hospitalar), focam no registro administrativo para fins de pagamento de internações hospitalares realizadas no âmbito do SUS.
Embora uma mesma pessoa possa ter seus dados coletados e registrados em diversos sistemas, como ser internada em um momento da vida e ser acometida por uma doença de notificação compulsória em outro, o SUS ainda não possui um registro único do paciente. Pelo contrário, os diversos sistemas são fragmentados e independentes, apesar de existirem iniciativas de interoperabilidade entre eles. A interoperabilidade, neste caso, é a capacidade de comunicação entre diferentes sistemas ou banco de dados.
É neste cenário que o record linkage, ou apenas
linkage como é conhecido na área da saúde, possibilita a
superação de barreiras e retrabalho vinculando dados entre sistemas.
Neste curso, você aprenderá uma rotina de procedimentos com o apoio da
linguagem de programação R
para vincular base de dados
muitas utilizadas na vigilância.
Ao final deste curso, você será capaz de:
- conceituar record linkage;
- conhecer os tipos de linkages mais utilizados na saúde;
- organizar etapas para realizar um linkage de interesse para a vigilância em saúde;
- anonimizar dados sensíveis para analisá-los.

Atenção
Para seguir com este curso você deve conhecer as ferramentas básicas
para uso da linguagem R
e do RStudio
, além de
possuir conhecimentos básicos de rotinas de análises de dados utilizando
a linguagem de programação R
. Lembre-se que você pode
acessar a qualquer momento o curso “Análise de dados para a
vigilância em saúde – curso básico” obtendo os códigos
desejados para a confecção do seu linkage. Caso não tenha feito
os cursos, sugerimos fortemente que se inscreva neles. Maiores
informações em https://www.abrasco.org.br/site/análise-de-dados-para-a-vigilancia-em-saude/
1 Conceitos básicos
Chamamos de linkage ou record linkage o relacionamento de bases de dados. Trata-se do método utilizado para combinar, ou cruzar, informações de um mesmo indivíduo que está presente em diferentes bases de dados. O linkage também é amplamente utilizado quando precisamos identificar, em uma mesma base, registros que se referem ao mesmo indivíduo.
Quase sempre na rotina de vigilância em saúde necessitamos relacionar dados para construir informações e elementos relevantes de um agravo, doença ou de casos. Seja para as investigações na vigilância quanto para estudos na área da saúde é comum criarmos um conjunto de dados novo e mais completo sobre o tema que iremos avaliar.
Utilizando o linkage é possível relacionar, por exemplo, dados do Sistema de Informações de Nascidos Vivos (SINASC) com os dados do Sistema de Informação de Mortalidade (SIM), de modo a estabelecer correspondências entre indivíduos registrados nestes dois bancos. Outras possibilidades incluem o confronto de informações presentes no Sistema de Informação da Vigilância Epidemiológica da Gripe (SIVEP-Gripe) com informações do Sistema de Informações do Programa Nacional de Imunizações (SI-PNI) e, assim, estabelecer o risco relativo de hospitalização e óbitos de acordo com o status de vacinação de um indivíduo, exercício que o profissional de vigilância realizou de forma exaustiva durante a pandemia da covid-19, não é mesmo?
Em um cenário ideal, seria possível estabelecer a correspondência exata de registros entre dois bancos de dados, identificando com precisão um indivíduo registrado em diferentes sistemas. Porém, sabemos que no nosso mundo real, muitas vezes existem imprecisões ou conflitos nos registros, ou ainda ausência de informações suficientes e os erros de digitação no momento da coleta de dados, transformando um grande desafio a identificação exata de indivíduos ou casos.
Embora comparações “manuais” possam ser realizadas quando os bancos
de dados possuem poucos registros, esta tarefa é inviável para bancos de
dados com dezenas, centenas, ou até mesmo milhares de registros. Se você
quer dominar as etapas de pareamento de dados, mesmo na ausência de um
campo identificador unívoco entre bancos e construir os
linkages adequados para sua análise, este curso é para você!
Aqui você aprenderá a fazer linkage de base de dados de saúde,
aplicando diferentes métodos, com apoio da linguagem de programação
R
.

Caso seu computador possua memória RAM inferior a 16 GB, ou seja, possui memória de armazenamento para a execução de aplicativos em uso e para o funcionamento do próprio sistema operacional menor que 16 gigabytes, durante este curso você poderá ter dificuldades para a execução dos scripts.
Isso poderá acontecer porque o R
trabalha com os bancos
em memória, ou seja, para rodar seus scripts o R
não somente consome sua memória, como também o seu sistema operacional e
os softwares que você está utilizando. Por exemplo, o
navegador de internet Google Chrome é conhecido por consumir
muita memória e inclusive quanto mais abas abertas maior o consumo.
Assim, recomendamos para este curso que você planeje com antecedência
o processamento de dados de modo que, quando realizar o seu
linkage, tenha o mínimo necessário de programas rodando na
máquina. Remova do R
todos os objetos que não são
necessários. Além disso, quando realizar um linkage considere
selecionar somente as variáveis relevantes e mantenha a chave, isso
porque caso necessário você poderá a qualquer momento retornar ao
sistema de origem e apagar os registros duplicados ou incorretos,
diminuindo as inconsistências diretamente no sistema de informação.
Caso você não tenha a memória RAM recomendada pode ser possível
executar em um computador com 8GB lembrando de ir removendo os objetos
intermediários a função rm()
e a função gc()
(Garbage Collection) para otimizar a memória. Observe o
script abaixo como se pode escrever estas funções e guarde-os
em seu RStdio
. Caso seja necessário, aplique-os.
# Removendo o objeto
rm( )
# Otimizando o uso de memória na sessão de R
gc( )
#> used (Mb) gc trigger (Mb) max used (Mb)
#> Ncells 535322 28.6 1199062 64.1 660857 35.3
#> Vcells 998739 7.7 8388608 64.0 1800234 13.8
1.1 Sensibilidade e especificidade
No momento de planejarmos realizar um linkage é preciso conhecer os vieses do banco de dados e os tipos de dados que serão escolhidos. Isto será determinante para escolhermos o melhor método para executar o pareamento de dados. Saiba que não existe um “melhor” método de linkage universal, é importante que você conheça diversas métodos para que se adequem de acordo com a proposta de análise a ser realizada ou a característica do banco de dados em que se está trabalhando. Desde que os primeiros estudos de record linkage foram propostos na década de 1960, diversos métodos e softwares foram desenvolvidos para se estabelecer o pareamento de registro entre bancos de dados distintos.
Aqui destacamos que a baixa qualidade e confiabilidade dos dados, a presença de dados faltantes e erros de digitação podem contribuir para erros de pareamento das variáveis. Assim, será necessário atentar-se ao número de registros completos e incompletos, à estrutura do banco de dados, ao número de registros em cada banco, e até mesmo à capacidade computacional disponível para executar a tarefa de linkar bancos.
O desempenho de um método de linkage pode ser avaliado de acordo com os conceitos presentes na Tabela 1 a seguir. Nela, uma correspondência se refere a um caso em que um registro a respeito de um indivíduo em um banco de dados de fato corresponde ao mesmo indivíduo registrado no outro banco. Uma não-correspondência se refere a um caso que um indivíduo registrado em um banco não se refere a um registro presente no outro banco. Observe:
Tabela 1: Interpretação de correspondência nolinkage de bases de dados.

Quando pareamos ou relacionamos registros utilizamos quase sempre uma
comparação aproximada, ou seja, damos pesos diferentes a cada campo
(variável) com base no seu poder de discriminação e vulnerabilidade ao
erro, por exemplo: nome
, data de nascimento
,
nome da mãe
, etc. Para melhorar o resultado do
linkage criaremos neste curso rotinas computacionais
especificamente desenvolvidas para cada problema que estudaremos. Nesta
etapa será importante que avaliemos a acurácia das técnicas utilizadas
para o relacionamento de bases de dados, e para isso avaliamos a
sensibilidade e a especificidade do linkage escolhido.
A sensibilidade de um método se refere à capacidade deste em encontrar um verdadeiro positivo, isto é, identificar corretamente a correspondência de dois registros. Por sua vez, a especificidade de um método se refere à capacidade dele de discriminar corretamente duas não-correspondências (verdadeiro negativo).
Embora em situações ideais desejaríamos que nossos testes ou métodos possíssem 100% de sensibilidade e especificidade, inevitavelmente toda análise de correspondência possui o risco de encontrar falsos positivos e falsos negativos. Mas fique tranquilo! A seguir, iremos aprender de forma detalhada as principais classes de métodos de linkage, além de algumas possibilidades de otimização do seu desempenho.
Siga em frente!