Voa

TUSS e SP/SADT

A busca TUSS funciona localmente. Consulte o código e filtre por tabela quando precisar restringir os resultados.

from voa_tiss.tuss import lookup, search

procedimentos = lookup("10101012", tabela="22")
busca = search("ressonância magnética de crânio", tabela="22")
[(row["codigo"], row["termo"]) for row in procedimentos], busca[:2]
Saída
([('10101012',
   'Consulta em consultório (no horário normal ou preestabelecido)')],
 [{'codigo': '41101014',
   'descricao': '',
   'tabela': '22',
   'termo': 'RM - Crânio (encéfalo)',
   'vigencia_fim': '',
   'vigencia_inicio': '2009-02-13'},
  {'codigo': '41101030',
   'descricao': '',
   'tabela': '22',
   'termo': 'RM - Base do crânio',
   'vigencia_fim': '',
   'vigencia_inicio': '2009-02-13'}])

A lista de campos e os dados ausentes podem ser consultados sem a dependência opcional de PDF.

from voa_tiss import render_sadt, sadt_catalog, sadt_missing

catalog = sadt_catalog()
faltantes = sadt_missing({})
len(catalog["fields"]), faltantes[:5]
Saída
(34,
 ['atendimento_rn',
  'beneficiario_carteira',
  'beneficiario_nome',
  'carater_atendimento',
  'numero_guia_prestador'])

Com a dependência PDF instalada, renderize uma guia sintética com data fixa. Sem ela, use sadt_missing e sadt_catalog para preparar os dados.

from datetime import date
from importlib.util import find_spec
from pathlib import Path

if find_spec("weasyprint") and find_spec("jinja2"):
    output = Path("guia.pdf")
    try:
        render_sadt({}, output, gen_date=date(2026, 1, 1))
        resultado_pdf = output.is_file()
    finally:
        output.unlink(missing_ok=True)
else:
    resultado_pdf = (len(sadt_missing({})), len(sadt_catalog()["fields"]))

resultado_pdf
Saída
True