Realizando download de dados públicos do DATASUS com PySUS no Windows

Danielly Xavier
5 min readAug 7, 2022

--

Photo by Tadas Sar on Unsplash

Se você trabalha com dados públicos de saúde, é muito provável que você conheça a transferência de arquivos do DATASUS. Quando eu era uma jovem padawan, em meu último ano de faculdade, eu tive que realizar o download de todos os dados disponíveis do Sistema de Informação Hospitalar entre os anos de 2010 e 2015 para meu trabalho de conclusão de curso.

Fiz isso manualmente (o que foi burro para uma pessoa que já tinha acesso à internet rsrsrs). Há um limite de download que podemos fazer pelo site do DATASUS, por isso eu tinha que selecionar os dados de estados, meses e anos cada vez que solicitava um download. Resultado: eu demorei alguns dias para terminar o download de todos os dados que precisava. Eu me consolo lembrando que na época eu não sabia programar, por isso a minha vida como pesquisadora era muito mais difícil. Na época usei o TabWin, uma ferramenta simples e poderosa, para tabular meus dados.

Eu melhorei um pouco quando descobri que poderia realizar todos os downloads de uma única vez diretamente pelo FTP do DATASUS, mas ainda enfrentei o problema com o volume dos dados, que era muito grande, além de ser necessário baixar tudo de uma vez para depois selecionar as variáveis necessárias para meu trabalho.

Nesse sentido, a “ultimate evolution” dessa saga dos dados públicos do SUS foi a descoberta de serviços que disponibilizam os microdados para download por meio de pacotes para linguagens de programação. Existe um pacote para o R com essa função, o “microdatasus”, disponível aqui e a biblioteca para Python 3, “PySUS”, que é o foco do nosso tutorial de hoje.

O PySUS é uma biblioteca do Python que permite o download de diversas bases de dados públicas do DATASUS, incluindo dados do Sistema de Informações sobre Nascidos Vivos (SINASC), Sistema de Informação de Agravos de Notificação (SINAN), Sistema de Informações Hospitalares (SIH), Sistema de Informações Ambulatoriais (SIA), Programa Nacional de Imunizações (PNI) e dados de Covid-19 do e-SUS Notifica.

Você pode acessar a documentação do PySUS aqui, disponível em inglês (por não sei qual motivo, já que o público é majoritariamente nacional…). O pacote foi desenvolvido para Linux, portanto usuários do Windows reportam problemas ao instalar o pacote diretamente no Windows. Para resolver esse problema, podemos usar uma versão do Linux para Windows. Isso mesmo, a Microsoft abraçou o Linux e agora disponibiliza uma versão em sua própria loja do Windows.

Para usar o PySUS, primeiramente você precisará instalar uma distribuição Linux com o Subsistema do Windows para Linux (WSL — Windows Subsystem for Linux). Você pode consultar os detalhes da instalação na página “Instalar o WSL”, mas, basicamente, você deverá abrir o PowerShell do seu computador e rodar o seguinte comando:

wsl — install

Você pode ainda mudar a distribuição que irá usar. Na página da Microsoft indicada acima há alguns comandos de instalação de outra distribuição Linux, mas também podemos fazer isso pela Microsoft Store. Nos aplicativos de seu computador, selecione a Microsoft Store.

Microsoft Store no menu Iniciar do Windows

Eu instalei o Ubuntu, usando apenas a busca e depois o botão “Adquirir”.

Distribuição Linux Ubuntu na Microsoft Store

Após a instalação, você poderá usar o Ubuntu pelo Terminal do Windows. Antes disso você deverá configurar seu usuário. Esses passos são bem simples e estão no tutorial da Microsoft para a instalação do wsl.

Após a configuração, abra o terminal do Windows e digite “wsl” ou “ubuntu”. O Windows irá direcionar para o terminal do Linux, em que você poderá usar aplicativos e o próprio Python.

wsl no Terminal do Windows

Nós vamos usar o Visual Studio Code e o Python3 no Ubuntu para poder instalar e usar o PySUS. Você poderá instalar o VS Code usando os comandos nesse tutorial do Linuxize, disponível aqui. A distribuição já vem com o Python instalado, mas podemos fazer o update com os comandos disponíveis no tutorial aqui.

Após as instalações, você poderá usar o Ubuntu diretamente pelo VS Code. Nós vamos usar as linhas de comando nesse tutorial. Para isso, vamos abrir o nosso terminal do Windows. Nós vamos usar o comando “wsl” para acessar o Linux e depois vamos usar o comando “code .” para abrir o VSCode.

Acessando o wsl e o VSCode no Terminal do Wildows

Após isso, o VS Code será aberto. No canto inferior esquerdo você poderá notar que ele está aberto no Linux porque ele apresentará a mensagem “WSL:Ubuntu”.

VS Code aberto no WSL:Ubuntu

Nós vamos criar um script em Python para importar os dados do SIH. Nós vamos abrir o terminal diretamente no VS Code para facilitar nossa análise. No menu superior, clique na aba “Terminal” e selecione “Novo Terminal”.

Abrindo o terminal no VS Code

Nós vamos usar o terminal para realizar o upgrade do pip e para instalar os pacotes ftplib e PySUS. Você deverá colar os seguintes comandos diretamente no terminal.

$ python -m pip install --upgrade pip
$ pip install PySUS
$ pip install pyftpdlib

Uma das vantagens de usar o Python é que podemos selecionar somente os dados que precisamos no momento da importação. Nesse sentido, vamos criar um script que vai selecionar os dados de pneumonia do SIH, considerando apenas as CID “J 13” e “J 14”, para os anos de 2020 e 2021 e para as UF do Centro-oeste. Vamos criar um arquivo em “.csv” que vai conter apenas as variáveis de morte, CID causa da morte e CID do diagnóstico principal de internação, que será usado para selecionar apenas os CID de pneumonia considerados.

  1. Inicialmente vamos importar as bibliotecas que precisaremos: Pandas, PySUS e FTPLib;
  2. Vamos criar algumas listas com as variáveis usadas, as UF, os anos, os meses e as CID que serão usadas para a importação dos dados;
  3. Vamos criar uma estrutura de repetição, usando o comando for que vai realizar algumas etapas de ações:
  • Realizar o download dos arquivos “.dbc” em um dataframe do Pandas;
  • Filtrar as variáveis selecionadas;
  • Filtrar as CID selecionadas;
  • Gravar os dados filtrados em um arquivo “.csv” chamado “sih_pneumonia_20_21.csv”;
  • Printar o mês, o ano e a UF dos arquivos que foram filtrados.

O script abaixo apresenta o código usado para isso:

script de download de dados do SIH

Pronto! Nós importamos nossos dados, salvamos em um arquivo e podemos usá-los em nossas análises.

Atualizado em 20 de junho de 2024.

--

--