-
-
Save philippeoz/def8a48ffff8b293a6d6a10ac4494a24 to your computer and use it in GitHub Desktop.
| def cns_is_valid(cns): | |
| """ | |
| Função para validar número do CNS - Cartão Nacional de Saúde ou Cartão do SUS | |
| :param cns: Número de CNS que será validado | |
| :type cns: String (Caso não seja, será transformado) | |
| :rtype: Boolean | |
| """ | |
| cns = ''.join(filter(str.isdigit, str(cns))) | |
| if len(cns) != 15: | |
| return False | |
| return sum( | |
| [int(cns[i]) * (15 - i) for i in range(15)] | |
| ) % 11 == 0 |
Parabéns pelo código e muito obrigado por compartilha-lo!
Caramba, parabéns!
Função simples, direta e objetiva. Vai ajudar demais no meu projeto.
Infelizmente eu encontrei uma função antiga que possui algumas variações. Poderia confirmar se este algoritmo atende a todos os registros de CNS (mesmo os antigos)? Obrigado.
Link de referência https://integracao.esusab.ufsc.br/v211/docs/algoritmo_CNS.html
Infelizmente eu encontrei uma função antiga que possui algumas variações. Poderia confirmar se este algoritmo atende a todos os registros de CNS (mesmo os antigos)? Obrigado.
Link de referência https://integracao.esusab.ufsc.br/v211/docs/algoritmo_CNS.html
Até hoje, pelo uso que fiz dessa função, atendeu sim a todas as variações do CNS (1, 2, 6, 7, 8 e 9).
nice codigo! parabéns ao envolvidos