SIA FTP Database

Sistema de Informações Ambulatoriais

[1]:
from pysus.ftp.databases.sia import SIA
sia = SIA().load() # Loads the files from DATASUS
[2]:
sia
[2]:
SIA - Sistema de Informações Ambulatoriais
[3]:
sia.metadata
[3]:
{'long_name': 'Sistema de Informações Ambulatoriais',
 'source': 'http://sia.datasus.gov.br/principal/index.php',
 'description': 'O Sistema de Informação Ambulatorial (SIA) foi instituído pela Portaria GM/MS n.º 896 de 29 de junho de 1990. Originalmente, o SIA foi concebido a partir do projeto SICAPS (Sistema de Informação e Controle Ambulatorial da Previdência Social), em que os conceitos, os objetivos e as diretrizes criados para o desenvolvimento do SICAPS foram extremamente importantes e amplamente utilizados para o desenvolvimento do SIA, tais como: (i) o acompanhamento das programações físicas e orçamentárias; (ii) o acompanhamento das ações de saúde produzidas; (iii) a agilização do pagamento e controle orçamentário e financeiro; e (iv) a formação de banco de dados para contribuir com a construção do SUS.'}
[4]:
sia.groups
[4]:
{'AB': 'APAC de Cirurgia Bariátrica',
 'ABO': 'APAC de Acompanhamento Pós Cirurgia Bariátrica',
 'ACF': 'APAC de Confecção de Fístula',
 'AD': 'APAC de Laudos Diversos',
 'AM': 'APAC de Medicamentos',
 'AMP': 'APAC de Acompanhamento Multiprofissional',
 'AN': 'APAC de Nefrologia',
 'AQ': 'APAC de Quimioterapia',
 'AR': 'APAC de Radioterapia',
 'ATD': 'APAC de Tratamento Dialítico',
 'BI': 'Boletim de Produção Ambulatorial individualizado',
 'IMPBO': '',
 'PA': 'Produção Ambulatorial',
 'PAM': '',
 'PAR': '',
 'PAS': '',
 'PS': 'RAAS Psicossocial',
 'SAD': 'RAAS de Atenção Domiciliar'}

Getting specific files

[5]:
print(str(len(sia.get_files(["PA", "BI"]))) + " files")
14300 files
[6]:
sia.get_files("PA", uf="SP", year=2000)
[6]:
[PASP0001.dbc,
 PASP0002.dbc,
 PASP0004.dbc,
 PASP0005.dbc,
 Pasp0006.dbc,
 pasp0003.dbc,
 pasp0007.dbc,
 pasp0008.dbc,
 pasp0009.dbc,
 pasp0010.dbc,
 pasp0011.dbc,
 pasp0012.dbc]
[7]:
files = sia.get_files("PA", uf="SP", year=2000, month=[1,2])
files
[7]:
[PASP0001.dbc, PASP0002.dbc]

Describing files inside DATASUS server

[8]:
sia.describe(files[0])
[8]:
{'name': 'PASP0001.dbc',
 'group': 'Produção Ambulatorial',
 'uf': 'São Paulo',
 'month': 'Janeiro',
 'year': 2000,
 'size': '7.2 MB',
 'last_update': '2013-10-24 04:18PM'}

Downloading files

You can rather download multiple files or download them individually:

[9]:
sia.download(files) # or specify a directory with `local_dir=`
PASP0002.parquet: 100%|████████████| 447k/447k [00:20<00:00, 21.6kB/s]
[9]:
[/home/bida/pysus/PASP0001.parquet, /home/bida/pysus/PASP0002.parquet]

@Note: If the file has been downloaded already, it’s required to delete it in order to download the lastest updated file from DATASUS.

Reading files

PySUS uses Parquets as output, use the method to_dataframe() to read the file as pandas DataFrame

[10]:
parquet = sia.download(files)[0]
100%|████████████████████████████| 7.73M/7.73M [00:00<00:00, 4.84GB/s]
[11]:
parquet.to_dataframe()
[11]:
PA_CONDIC PA_GESTAO PA_CODUNI PA_DATREF PA_CODPRO PA_DOCORIG PA_CODESP PA_TIPPRO PA_TIPATE PA_FXETAR ... PA_DATPR PA_VALPRO PA_VALAPR PA_UFMUN PA_MUNAT PA_NUMAPA PA_CODOCO PA_CIDPRI PA_CIDSEC PA_MORFOL
0 EC 359999 000867 200001 0701223 B 27 02 99 ... 200001 58.65 58.65 355030 355030 00000000000 S01
1 EC 359999 000867 200001 0701223 B 27 02 99 ... 200001 15.30 15.30 355030 355030 00000000000 S01
2 EC 359999 000867 200001 0701223 B 27 02 99 ... 200001 12.75 12.75 355030 355030 00000000000 S01
3 EC 359999 000867 200001 0701223 B 27 02 99 ... 200001 12.75 12.75 355030 355030 00000000000 S01
4 EC 359999 000867 200001 0701223 B 27 02 99 ... 200001 5.10 5.10 355030 355030 00000000000 S01
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
725999 EA 359999 016127 200001 0102302 B 77 00 00 ... 200001 3972.00 3972.00 355030 355030 00000000000 S01
726000 EA 359999 016127 200001 0302206 B 30 00 00 ... 200001 2.48 2.48 355030 355030 00000000000 S01
726001 EA 359999 016127 200001 0302207 B 30 00 00 ... 200001 6.39 6.39 355030 355030 00000000000 S01
726002 EA 359999 016127 200001 0304103 B 30 00 00 ... 200001 7.92 7.92 355030 355030 00000000000 S01
726003 EA 359999 016127 200001 0401103 B 01 00 27 ... 200001 2.00 2.00 355030 355030 00000000000 S01

726004 rows × 24 columns