O CNES (Cadastro Nacional de Estabelecimentos de Saúde) é o sistema que cadastra todos os estabelecimentos de saúde do Brasil, sejam públicos ou privados, vinculados ou não ao SUS. Gerenciado pelo DATASUS/Ministério da Saúde, o CNES é o cadastro base que identifica e caracteriza a infraestrutura de saúde do país.
Profissionais de saúde — médicos, enfermeiros, dentistas e demais profissionais vinculados a cada estabelecimento
Leitos — quantidade e tipo de leitos hospitalares (cirúrgico, clínico, obstétrico, pediátrico, UTI)
Equipamentos — tomógrafos, ressonâncias magnéticas, raio-X, equipamentos de hemodiálise
Habilitações — serviços especializados habilitados pelo Ministério da Saúde (ex: alta complexidade em oncologia)
O CNES é fundamental porque o código CNES (7 dígitos) é a chave primária utilizada em todos os demais sistemas de informação de saúde (SIH, SIA, SIM, SINASC, SINAN) para identificar o estabelecimento de saúde. É, portanto, o principal campo-ponte entre os sistemas de saúde.
Abrangência: O CNES cadastra mais de 400.000 estabelecimentos de saúde em todo o Brasil, incluindo tanto os que atendem pelo SUS quanto os exclusivamente privados.
from pysus.online_data.CNES import downloadimport pandas as pd# Baixar dados de estabelecimentos de São Paulo, janeiro de 2023dados = download(group="ST", states=["SP"], years=[2023], months=[1])# Converter para DataFramedf = dados.to_dataframe()print(f"Total de estabelecimentos: {len(df):,}")print(f"Colunas disponíveis: {list(df.columns)}")print(df.head())
from pysus.online_data.CNES import downloadimport pandas as pd# Baixar dados de leitos de São Paulodados_leitos = download(group="LT", states=["SP"], years=[2023], months=[1])df_leitos = dados_leitos.to_dataframe()# Converter campos numéricosfor col in ["QT_EXIST", "QT_CONTR", "QT_SUS"]: df_leitos[col] = pd.to_numeric(df_leitos[col], errors="coerce")# Total de leitos por tipoleitos_tipo = ( df_leitos.groupby("TP_LEITO") .agg( leitos_existentes=("QT_EXIST", "sum"), leitos_sus=("QT_SUS", "sum"), ) .sort_values("leitos_existentes", ascending=False))print("Leitos hospitalares por tipo — SP (jan/2023):")print(leitos_tipo)print(f"\nTotal de leitos existentes: {leitos_tipo['leitos_existentes'].sum():,}")print(f"Total de leitos SUS: {leitos_tipo['leitos_sus'].sum():,}")
from pysus.online_data.CNES import downloadimport pandas as pd# Baixar dados de profissionais de Minas Geraisdados_prof = download(group="PF", states=["MG"], years=[2023], months=[1])df_prof = dados_prof.to_dataframe()# CBO (Classificação Brasileira de Ocupações) para médicos: começa com "225"medicos = df_prof[df_prof["CBO"].str.startswith("225", na=False)]print(f"Vínculos de médicos em MG: {len(medicos):,}")# Distribuição por municípiomedicos_mun = ( medicos.groupby("CODUFMUN") .size() .reset_index(name="vinculos_medicos") .sort_values("vinculos_medicos", ascending=False))print("\nTop 10 municípios com mais vínculos de médicos:")print(medicos_mun.head(10))
Embora a base seja mensal, muitos estabelecimentos não atualizam seus dados regularmente, resultando em informações desatualizadas sobre leitos, equipamentos e profissionais.
Formato DBC
Arquivos originais em formato proprietário DBC, exigindo PySUS ou ferramentas específicas para conversão.
Volume de dados
O CNES é composto por múltiplos conjuntos de dados (ST, LT, EP, PF, etc.), cada um com centenas de milhares a milhões de registros por mês. O processamento completo requer significativa capacidade computacional.
Profissionais com múltiplos vínculos
Um profissional de saúde pode ter vínculos em vários estabelecimentos. A contagem simples de registros superestima o número de profissionais.
Leitos vs. realidade
A quantidade de leitos cadastrados pode diferir da quantidade efetivamente operacional, especialmente em períodos de crise ou reforma.
Estabelecimentos inativos
Estabelecimentos desativados podem permanecer no cadastro por um período, inflando contagens.
Falta de geolocalização
Os dados contêm endereço e CEP, mas não coordenadas geográficas. Geocodificação é necessária para análises espaciais.
Instabilidade do servidor FTP
O servidor FTP do DATASUS pode apresentar lentidão ou indisponibilidade.
Protocolo FTP obsoleto em navegadores
Navegadores modernos (Chrome, Firefox) removeram o suporte ao protocolo FTP. Para acessar os arquivos, utilize clientes FTP (FileZilla, wget, curl) ou a biblioteca PySUS. Alternativamente, acesse a página de transferência de arquivos do DATASUS em https://datasus.saude.gov.br/transferencia-de-arquivos/.