CID-10

A Classificação Internacional de Doenças, 10ª revisão (CID-10), com os códigos publicados pelo DATASUS.

  • Matriz de paridade

Validar

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 codCID do evento S-2230 do eSocial não foi verificado com esta função.
ParâmetroTipoObrigatório
valuestringsim
retornaboolean

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 U07 da tabela da CID-10 que o DATASUS mantém para o SIM (U07, U07.0, U07.1 COVID-19 com vírus identificado e U07.2 vírus não identificado), que as V2008 não têm. Um código que não está em nenhuma delas não é encontrado, como U09.9 (condição pós-COVID-19) e U10.9 (síndrome inflamatória multissistêmica associada à COVID-19). Até a 2.4.0 os códigos U07 também não eram encontrados.
  • Só uma tabela de códigos é lida (cerca de 7 KB minificada), não as descrições que getCid10 carrega.
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)
Código: brazilian-utils/javascript
Teste com JavaScript isValidCid10
As entradas começam com o primeiro caso compartilhado. Mude uma para ver o novo resultado.

Roda @brazilian-utils/brazilian-utils 2.5.0 no seu navegador.

Casos de teste compartilhados (27) e o resultado em cada biblioteca cid10.isValid

Formatar

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âmetroTipoObrigatório
valuestringsim
retornastring

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.0
Código: brazilian-utils/javascript
Teste com JavaScript formatCid10
As entradas começam com o primeiro caso compartilhado. Mude uma para ver o novo resultado.

Roda @brazilian-utils/brazilian-utils 2.5.0 no seu navegador.

Casos de teste compartilhados (16) e o resultado em cada biblioteca cid10.format

Interpretar

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âmetroTipoObrigatório
valuestringsim
retornastring

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'
Código: brazilian-utils/javascript
Teste com JavaScript parseCid10
As entradas começam com o primeiro caso compartilhado. Mude uma para ver o novo resultado.

Roda @brazilian-utils/brazilian-utils 2.5.0 no seu navegador.

Casos de teste compartilhados (13) e o resultado em cada biblioteca cid10.parse

Consultar

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. Retorna null exatamente quando essa função retorna false.
  • 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âmetroTipoObrigatório
valuestringsim
retornaCid10 | 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. O code vem em maiúsculas e sem o ponto. Retorna null quando 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ódigos U07 da tabela do SIM (getCid10('U07.1') é { code: 'U071', description: 'Infecção pelo novo Coronavírus (COVID-19)' }); U09.9 e U10.9 nã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 isValidCid10 quando 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.

Código: brazilian-utils/javascript
Teste com JavaScript getCid10
As entradas começam com o primeiro caso compartilhado. Mude uma para ver o novo resultado.

Roda @brazilian-utils/brazilian-utils 2.5.0 no seu navegador.

Casos de teste compartilhados (26) e o resultado em cada biblioteca cid10.get

Fontes oficiais

Veja também CNS (Cartão SUS)

Atualizado em

Nesta página