Skip to main content
Glama

RNDS para Python

Identificadores brasileiros e códigos da RNDS em uma biblioteca Python, CLI e servidor MCP. Tudo funciona localmente, sem chamadas de rede.

Projeto de código aberto da Voa Health, não afiliado ao Ministério da Saúde nem ao DATASUS. Este pacote não se conecta à RNDS, não autentica e não envia recursos.

Início rápido

pip install rnds
rnds cpf 987.654.321-00
rnds cns 712345678901236
rnds cnes 1234567
rnds codigos

Use a biblioteca para validar identificadores:

from rnds import cns, cpf, cnes

cpf.valido("987.654.321-00")
cns.valido("712345678901236")
cnes.valido("1234567")

Liste CodeSystems e ValueSets ou consulte conceitos offline:

from rnds.codigos import busca, conceitos, sistemas, valido

for sistema in sistemas():
    print(sistema.nome, sistema.total)

url = "https://rnds-fhir.saude.gov.br/CodeSystem/BRNacionalidade"
print(conceitos(url))
print(valido(url, "B"))

url = "https://rnds-fhir.saude.gov.br/ValueSet/BRResultadoQualitativoExame-2.0"
origem = "https://rnds-fhir.saude.gov.br/CodeSystem/BRTipoResultadoAVIDEZ"
print(busca(url, "1"))
print(valido(url, "1", origem=origem))

Converta um identificador local para o sistema oficial sem alterar seu valor:

from rnds.sistemas import LOCAL_CPF, para_oficial

identificador = para_oficial({"system": LOCAL_CPF, "value": "98765432100"})
print(identificador)

Instale pip install "rnds[mcp]" para iniciar rnds mcp ou rnds-mcp. O servidor usa transporte stdio e consulta os mesmos dados locais da biblioteca, incluindo rnds_validate para validar Bundles.

Os valores nos exemplos são sintéticos. A biblioteca não acessa serviços hospedados.

Related MCP server: mcp-icd10

Validar um Bundle

Valide um Bundle FHIR localmente, sem conexão ou envio à RNDS:

from rnds import validar

bundle = {"resourceType": "Bundle", "type": "collection", "entry": []}
achados = validar(bundle)

Também é possível validar um arquivo pela linha de comando ou ler da entrada padrão:

rnds validate bundle.json
cat bundle.json | rnds validate -

A validação verifica que a entrada seja um Bundle, que fullUrl não se repita, que referências relativas (Tipo/id e Tipo/id/_history/v) ou URN (urn:uuid: e urn:oid:) sejam resolvidas, que CPF, CNS e CNES sejam válidos para seus sistemas, que sistemas urn:voa:br: mapeados indiquem o sistema oficial, que códigos pertençam aos CodeSystems empacotados e que o display corresponda ao conceito. Erros retornam código de saída 1; somente avisos ou nenhum achado retornam 0. Problemas de leitura, JSON ou limites retornam 2. O arquivo pode ter até 10 MB e 64 níveis de aninhamento.

A validação de referências não verifica referências absolutas http(s), referências contidas iniciadas por # nem formatos fora de Tipo/id, Tipo/id/_history/v, urn:uuid: e urn:oid:.

Este recurso não verifica perfis completos de StructureDefinition, binding de ValueSet por elemento, nem envia dados ou se conecta à RNDS.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    A privacy-first MCP server providing 14 offline Brazilian utilities including document validation, boleto parsing, PIX BR Code generation/parsing, and calendar tools.
    22
    20 PyPI
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Offline MCP server for ICD medical code lookup, search, and crosswalk translation with 124K codes and 102K mappings, all local with zero network calls.
    5
    3
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    MCP server for loading and querying public data from the Brazilian National Registry of Health Establishments (CNES). It enables natural language searches for health facilities by municipality, CNES code, or state, along with statistics and data loading.
    6
    MIT