rnds-mcp
by Voa-Health
README.md
# 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
```sh
pip install rnds
rnds cpf 987.654.321-00
rnds cns 712345678901236
rnds cnes 1234567
rnds codigos
```
Use a biblioteca para validar identificadores:
```python
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:
```python
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:
```python
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.
## Validar um Bundle
Valide um Bundle FHIR localmente, sem conexão ou envio à RNDS:
```python
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:
```sh
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.
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues