-
-
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