CID-10
A Classificação Internacional de Doenças, 10ª revisão (CID-10), com os códigos publicados pelo DATASUS.
Validar
- JavaScript, biblioteca
- Python, biblioteca
- Go, biblioteca
- Ruby, biblioteca
- Rust, biblioteca
- .NET, biblioteca
- Erlang, biblioteca
Verifica se uma categoria ou subcategoria da CID-10 existe nas tabelas brasileiras publicadas pelo DATASUS.
- Aceita uma categoria (3 caracteres,
A00) ou uma subcategoria (4 caracteres), com ponto (A00.0) ou sem ponto (A000). Caixa e espaços nas pontas são ignorados. - Outros separadores (
A00-0), um 5º caractere, um sufixo de adaga ou asterisco e um valor que não é string são rejeitados. - Uma subcategoria só é válida quando a tabela a lista na sua categoria.
I10.0é inválido porque I10 não tem subcategorias;I10é válido como categoria. - Dados: CID-10 V2008 do DATASUS, 2045 categorias e 12188 subcategorias, mais U07, U07.0, U07.1 e U07.2 da tabela do SIM do DATASUS (entre eles os códigos da COVID-19). Códigos que a OMS acrescentou depois, como U09.9 e U10.9, são inválidos.
- O leiaute
codCIDdo evento S-2230 do eSocial não foi verificado com esta função.
| Parâmetro | Tipo | Obrigatório |
|---|---|---|
value | string | sim |
| retorna | boolean |
Valida um código CID-10 contra as tabelas que o DATASUS publica, a edição brasileira da CID-10 (Classificação Estatística Internacional de Doenças e Problemas Relacionados à Saúde, 10ª revisão), o código que atestados médicos e sistemas de saúde carregam.
- Os dois níveis da classificação são válidos: as categorias de 3 caracteres (
A00) e as subcategorias de 4 caracteres, escritas com o ponto (A00.0) ou sem ele (A000). - Maiúsculas, minúsculas e espaços em volta são ignorados. Qualquer outra coisa (outro separador, um quinto caractere, um sufixo de cruz ou asterisco, um valor que não é string) é rejeitada.
- As tabelas são as V2008 do DATASUS, mais a categoria
U07da tabela da CID-10 que o DATASUS mantém para o SIM (U07,U07.0,U07.1COVID-19 com vírus identificado eU07.2vírus não identificado), que as V2008 não têm. Um código que não está em nenhuma delas não é encontrado, comoU09.9(condição pós-COVID-19) eU10.9(síndrome inflamatória multissistêmica associada à COVID-19). Até a 2.4.0 os códigosU07também não eram encontrados. - Só uma tabela de códigos é lida (cerca de 7 KB minificada), não as descrições que
getCid10carrega.
import { isValidCid10 } from '@brazilian-utils/brazilian-utils';
isValidCid10('A00.0'); // true
isValidCid10('a000'); // true
isValidCid10('A00'); // true (uma categoria)
isValidCid10('I10'); // true (uma categoria que não é subdividida)
isValidCid10('A00.5'); // false (A00 não tem a subcategoria 5)
isValidCid10('I10.0'); // false (I10 não tem subcategorias)
isValidCid10('A00-0'); // false (não é uma forma documentada)Teste com JavaScript isValidCid10
Casos de teste compartilhados (27) e o resultado em cada biblioteca cid10.isValid
Formatar
- JavaScript, biblioteca
- Python, biblioteca
- Go, biblioteca
- Ruby, biblioteca
- Rust, biblioteca
- .NET, biblioteca
- Erlang, biblioteca
Formata um código CID-10 do jeito que ele é impresso: em maiúsculas, com um ponto entre a categoria de 3 caracteres e o quarto caractere (A00.0). Só a estrutura muda (use cid10.isValid para verificar o código).
- A máscara é aplicada até onde o valor vai. Uma categoria fica sem ponto (
A00). O ponto aparece com o quarto caractere. - Só as letras A a Z (em qualquer caixa) e os dígitos 0 a 9 são lidos; todos os outros caracteres são descartados, inclusive as letras acentuadas. O resultado é limitado a 4 caracteres mais o ponto. A máscara não confere quais posições são letras e quais são dígitos (
"1234"dá123.4). - Um valor que não é string retorna uma string vazia.
| Parâmetro | Tipo | Obrigatório |
|---|---|---|
value | string | sim |
| retorna | string |
Formata um código CID-10 do jeito que ele é impresso: em maiúsculas, com um ponto entre a categoria de 3 caracteres e o quarto caractere da subcategoria. Só a estrutura muda; use isValidCid10 para conferir um código com as tabelas.
- A máscara é aplicada até onde o valor vai, então uma categoria fica como está e o ponto só aparece com o quarto caractere.
- Caracteres fora da máscara são descartados e o valor é limitado a 4 caracteres.
import { formatCid10 } from '@brazilian-utils/brazilian-utils';
formatCid10('A000'); // A00.0
formatCid10('f322'); // F32.2
formatCid10('A00'); // A00 (uma categoria não tem ponto)
formatCid10('A00.0'); // A00.0Teste com JavaScript formatCid10
Casos de teste compartilhados (16) e o resultado em cada biblioteca cid10.format
Interpretar
- JavaScript, biblioteca
- Python, biblioteca
- Go, biblioteca
- Ruby, biblioteca
- Rust, biblioteca
- .NET, biblioteca
- Erlang, biblioteca
Remove a formatação de um código CID-10 e o retorna em maiúsculas e sem ponto, a forma que as tabelas do DATASUS guardam.
- Mantém só letras e dígitos, limitados a 4 caracteres. Um valor mais curto (uma categoria, ou um código sendo digitado) passa até onde vai.
- Não confere o código na tabela (use
cid10.isValid). - Um valor que não é string retorna uma string vazia.
| Parâmetro | Tipo | Obrigatório |
|---|---|---|
value | string | sim |
| retorna | string |
Remove a formatação de um código CID-10, mantém apenas letras e dígitos, em maiúsculas, e limita o resultado aos 4 caracteres de uma subcategoria, a forma que as tabelas do DATASUS guardam.
- Um valor mais curto passa até onde ele vai.
import { parseCid10 } from '@brazilian-utils/brazilian-utils';
parseCid10('A00.0'); // 'A000'
parseCid10('f32.2'); // 'F322'
parseCid10('A00'); // 'A00'Teste com JavaScript parseCid10
Casos de teste compartilhados (13) e o resultado em cada biblioteca cid10.parse
Consultar
- JavaScript, biblioteca
- Python, biblioteca
- Go, biblioteca
- Ruby, biblioteca
- Rust, biblioteca
- .NET, biblioteca
- Erlang, biblioteca
Consulta uma categoria ou subcategoria da CID-10 nas tabelas do DATASUS e retorna o código e a descrição oficial em português.
- Mesmas regras de entrada de
cid10.isValid. Retornanullexatamente quando essa função retornafalse. - O código retornado está em maiúsculas e sem ponto (
A000). - Mesma tabela de
cid10.isValid: as tabelas V2008 do DATASUS mais os códigos U07 da tabela do SIM (U07.1é{ code: "U071", description: "Infecção pelo novo Coronavírus (COVID-19)" }). U09.9 e U10.9 não são encontrados.
| Parâmetro | Tipo | Obrigatório |
|---|---|---|
value | string | sim |
| retorna | Cid10 | null |
Busca um código CID-10 e retorna a sua descrição oficial em português. O resultado é um registro Cid10: { code, description }.
- Mesmas regras de entrada de
isValidCid10. Ocodevem em maiúsculas e sem o ponto. Retornanullquando o código é desconhecido ou o valor não está em uma forma documentada. - Mesma tabela de
isValidCid10: a V2008 do DATASUS mais os códigosU07da tabela do SIM (getCid10('U07.1')é{ code: 'U071', description: 'Infecção pelo novo Coronavírus (COVID-19)' });U09.9eU10.9não são encontrados. - Este é o utilitário mais pesado do pacote: ele embute as 2046 categorias e 12191 subcategorias com suas descrições, cerca de 722 KB minificado (113 KB com gzip). Carregue-o sob demanda pelo seu subpath, como mostrado em Tamanho do bundle, e use
isValidCid10quando a descrição não for necessária.
import { getCid10 } from '@brazilian-utils/brazilian-utils';
getCid10('A00.0'); // { code: 'A000', description: 'Cólera devida a Vibrio cholerae 01, biótipo cholerae' }
getCid10('a000'); // { code: 'A000', description: 'Cólera devida a Vibrio cholerae 01, biótipo cholerae' }
getCid10('A00'); // { code: 'A00', description: 'Cólera' }
getCid10('A00.5'); // null
getCid10('A00-0'); // null (não é uma forma documentada)Fonte: tabelas da CID-10 V2008 que o DATASUS publica em CSV e a tabela da CID-10 do SIM para os códigos U07.
Teste com JavaScript getCid10
Casos de teste compartilhados (26) e o resultado em cada biblioteca cid10.get
Fontes oficiais
- www2.datasus.gov.br/cid10/V2008/…/descrcsv.htm
- www2.datasus.gov.br/cid10/V2008/…/CID10CSV.zip
- ftp.datasus.gov.br/dissemin/publicos/…/CID10.DBF
Veja também CNS (Cartão SUS)
Atualizado em
