이 MCP로 할 수 있는 일
Queries and analyzes Brazilian SUS hospital admission data, including diagnoses, regional comparisons, hospitalization rates, trends, and primary-care-sensitive conditions.
도구
입력 스키마
{'type': 'object', 'required': ['cid_codes'], 'properties': {'cid_codes': {'type': 'array', 'items': {'type': 'string'}, 'description': "Códigos CID-10 para classificar (ex: ['J18', 'A09', 'K35'])"}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'anyOf': [{'required': ['classifications', 'summary']}], 'required': ['provenance', 'attribution'], 'properties': {'error': {'type': 'string', 'description': 'Só quando houver código não classificado: quantos foram e para onde olhar'}, 'summary': {'type': 'object', 'required': ['total', 'csap', 'non_csap'], 'properties': {'csap': {'type': 'number', 'description': 'Quantos são sensÃ\xadveis'}, 'total': {'type': 'number', 'description': 'Códigos informados'}, 'non_csap': {'type': 'number', 'description': 'Quantos são CID-10 e não são sensÃ\xadveis (não inclui os não classificados)'}, 'not_classified': {'type': 'number', 'description': 'Só quando houver: quantos não são CID-10'}}, 'additionalProperties': False}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado (id SPDX quando há)'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'oneOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'description': 'Diagnóstico de origem da chamada: como o dado foi obtido. Medição real do servidor; unstable=true pede ao agente que trate o dado como obtido com dificuldade', 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta ou localiza a fonte'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Competência ou safra do dado segundo a fonte; null quando a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante REAL da extração na origem (ISO-8601) â\x80\x94 para os cubos SIH, a safra do sidecar (extração no FTP do DATASUS), nunca o instante do download'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, competência, extração, diagnóstico de origem, citação e licença', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}, 'classifications': {'type': 'array', 'items': {'type': 'object', 'required': ['cid', 'is_csap', 'csap_group', 'csap_name'], 'properties': {'cid': {'type': 'string', 'description': 'Código como foi informado'}, 'error': {'type': 'string', 'description': 'Só nas entradas não classificadas: por que o código não é CID-10'}, 'is_csap': {'type': ['boolean', 'null'], 'description': 'true quando o código cai em algum grupo CSAP; false quando é CID-10 e não cai; null quando não é um código CID-10 (não classificado â\x80\x94 veja `error` da entrada)'}, 'csap_name': {'type': ['string', 'null'], 'description': 'Nome do grupo; null quando não é sensÃ\xadvel ou não foi classificado'}, 'csap_group': {'type': ['string', 'null'], 'description': 'Grupo CSAP g01â\x80\x93g19; null quando não é sensÃ\xadvel ou não foi classificado'}}, 'additionalProperties': False}, 'description': 'Uma entrada por código, na ordem informada'}}, 'description': 'Cada código CID-10 informado classificado como sensÃ\xadvel (com o grupo) ou não; `is_csap` é null no código que não é CID-10, que não recebe classificação', 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['start_year', 'end_year'], 'properties': {'end_year': {'type': 'integer', 'description': 'Ano final'}, 'universe': {'enum': ['csapaih', 'all'], 'type': 'string', 'description': "Universo do % ICSAP: 'csapaih' (padrão) tira do numerador e do denominador as internações por procedimento obstétrico, com diagnóstico de parto (O80-O84) e as AIH de longa permanência, como o pacote R csapAIH (Nedel); 'all' conta todas as internações."}, 'indicator': {'enum': ['percentage', 'count', 'rate_per_10k'], 'type': 'string', 'description': 'Indicador: percentage (% ICSAP), count (número), rate_per_10k (taxa)'}, 'compare_by': {'enum': ['uf', 'csap_group'], 'type': 'string', 'description': 'Comparar por UF ou grupo CSAP'}, 'start_year': {'type': 'integer', 'description': 'Ano inicial'}, 'compare_values': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Valores especÃ\xadficos para comparar (UFs ou grupos CSAP)'}, 'include_trend_line': {'type': 'boolean', 'description': 'Incluir análise de tendência linear (default: true)'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'anyOf': [{'required': ['indicator', 'period', 'compare_by', 'series', 'notes', 'summary']}, {'required': ['error']}], 'required': ['provenance', 'attribution'], 'properties': {'data': {'type': 'array', 'items': {}, 'description': 'Sempre vazio: só aparece no caminho de erro-mole do funil'}, 'note': {'type': 'string', 'description': 'Como obter o dado (por exemplo, consultar get_available_years)'}, 'error': {'type': 'string', 'description': 'Motivo pelo qual não há dados nesta resposta (ano sem dado, cobertura populacional, falha na consulta)'}, 'notes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Avisos que qualificam os números: era CID-9, raça/cor ausente, universo do % ICSAP, denominador populacional, truncamento'}, 'period': {'type': 'object', 'required': ['start', 'end'], 'properties': {'end': {'type': 'number', 'description': 'Ano final pedido'}, 'start': {'type': 'number', 'description': 'Ano inicial pedido'}}, 'additionalProperties': False}, 'series': {'type': 'array', 'items': {'type': 'object', 'required': ['year'], 'properties': {'year': {'type': 'number', 'description': 'Ano'}}, 'description': 'Um ponto por ano: `year` mais uma chave por valor comparado (UF, grupo ou `total`) com o indicador', 'additionalProperties': {'type': 'number', 'description': 'Valor do indicador para esta UF, grupo ou `total`'}}, 'description': 'Pontos em ordem cronológica'}, 'trends': {'type': 'object', 'description': 'Tendência por valor comparado; só com `include_trend_line` e ao menos dois anos â\x80\x94 ausente quando desligada', 'additionalProperties': {'type': 'object', 'required': ['slope', 'direction', 'avg_annual_change', 'start_value', 'end_value', 'change_pct'], 'properties': {'slope': {'type': 'number', 'description': 'Inclinação da regressão linear (indicador por ano)'}, 'direction': {'enum': ['increasing', 'decreasing', 'stable'], 'description': 'Sentido da tendência'}, 'end_value': {'type': 'number', 'description': 'Valor no último ano'}, 'change_pct': {'type': 'number', 'description': 'Variação relativa entre as pontas, %'}, 'start_value': {'type': 'number', 'description': 'Valor no primeiro ano'}, 'avg_annual_change': {'type': 'number', 'description': 'Variação média anual'}}, 'additionalProperties': False}}, 'summary': {'type': 'object', 'required': [], 'properties': {'note': {'type': 'string', 'description': 'Como ler o indicador; só para `percentage`'}, 'best_performer': {'type': 'string', 'description': 'Valor comparado com a melhor evolução; só com mais de uma tendência'}, 'worst_performer': {'type': 'string', 'description': 'Valor comparado com a pior evolução; só com mais de uma tendência'}}, 'additionalProperties': False}, 'indicator': {'enum': ['percentage', 'count', 'rate_per_10k'], 'description': 'Indicador das séries'}, 'compare_by': {'type': 'string', 'description': 'Eixo comparado: uf, csap_group ou total (sem eixo)'}, 'provenance': {'type': 'array', 'items': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado (id SPDX quando há)'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'oneOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'description': 'Diagnóstico de origem da chamada: como o dado foi obtido. Medição real do servidor; unstable=true pede ao agente que trate o dado como obtido com dificuldade', 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta ou localiza a fonte'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Competência ou safra do dado segundo a fonte; null quando a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante REAL da extração na origem (ISO-8601) â\x80\x94 para os cubos SIH, a safra do sidecar (extração no FTP do DATASUS), nunca o instante do download'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, competência, extração, diagnóstico de origem, citação e licença', 'additionalProperties': False}, 'description': 'Um bloco por procedência que contribuiu com esta resposta (SIH, lista CSAP, csapAIH, populaçãoâ\x80¦); licenças nunca se fundem'}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}, 'published_years': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Anos que o canal de cubos publica â\x80\x94 a verdade do canal, distinta do que esta instância tem em disco; só com o cache de cubos ligado'}, 'population_years': {'type': 'object', 'required': ['first_year', 'last_year'], 'properties': {'last_year': {'type': 'number', 'description': 'Ã\x9altimo ano com população'}, 'first_year': {'type': 'number', 'description': 'Primeiro ano com população'}}, 'description': 'Cobertura populacional; só no erro-mole de `rate_per_10k` fora do intervalo', 'additionalProperties': False}, 'available_sih_years': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Anos com dados SIH atendÃ\xadveis por este servidor'}, 'years_not_available': {'type': 'object', 'required': ['years', 'note'], 'properties': {'note': {'type': 'string', 'description': 'Quais anos ficaram fora e quais os números cobrem'}, 'years': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Anos pedidos que não têm dados SIH e ficaram fora do resultado'}}, 'description': 'Presente só quando parte dos anos pedidos não tem dado: os números cobrem apenas os anos atendidos', 'additionalProperties': False}}, 'description': 'Séries anuais do indicador ICSAP por UF ou grupo CSAP, com tendência linear e melhor/pior desempenho; `error` quando o intervalo está fora da cobertura', 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'year': {'type': 'array', 'items': {'type': 'integer'}, 'description': 'Anos para consultar'}, 'limit': {'type': 'integer', 'description': 'Número de resultados (default: 10)'}, 'metric': {'enum': ['n', 'deaths'], 'type': 'string', 'description': 'Métrica para ranking (default: n)'}, 'is_csap': {'type': 'boolean', 'description': 'Filtrar apenas CSAP'}, 'compare_by': {'enum': ['uf', 'region'], 'type': 'string', 'description': 'Comparar por UF ou região (default: uf)'}, 'cid_chapter': {'type': 'integer', 'description': 'CapÃ\xadtulo CID-10 especÃ\xadfico'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'anyOf': [{'required': ['compare_by', 'metric', 'ranking', 'total_locations']}, {'required': ['error']}], 'required': ['provenance', 'attribution'], 'properties': {'data': {'type': 'array', 'items': {}, 'description': 'Sempre vazio: só aparece no caminho de erro-mole do funil'}, 'note': {'type': 'string', 'description': 'Como obter o dado (por exemplo, consultar get_available_years)'}, 'error': {'type': 'string', 'description': 'Motivo pelo qual não há dados nesta resposta (ano sem dado, cobertura populacional, falha na consulta)'}, 'notes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Avisos que qualificam os números: era CID-9, raça/cor ausente, universo do % ICSAP, denominador populacional, truncamento'}, 'metric': {'enum': ['n', 'deaths'], 'description': 'Métrica que ordena o ranking'}, 'ranking': {'type': 'array', 'items': {'type': 'object', 'required': ['rank', 'uf', 'n_hospitalizations', 'deaths', 'mortality_rate'], 'properties': {'uf': {'type': 'string', 'description': 'UF'}, 'rank': {'type': 'number', 'description': 'Posição, 1 = maior'}, 'deaths': {'type': 'number', 'description': 'Ã\x93bitos'}, 'mortality_rate': {'type': 'number', 'description': 'Ã\x93bitos / internações Ã\x97 100, duas casas'}, 'n_hospitalizations': {'type': 'number', 'description': 'Internações'}}, 'additionalProperties': False}, 'description': 'Ranking em ordem decrescente da métrica'}, 'compare_by': {'enum': ['uf', 'region'], 'description': 'Eixo da comparação (hoje ambos agrupam por UF)'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado (id SPDX quando há)'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'oneOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'description': 'Diagnóstico de origem da chamada: como o dado foi obtido. Medição real do servidor; unstable=true pede ao agente que trate o dado como obtido com dificuldade', 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta ou localiza a fonte'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Competência ou safra do dado segundo a fonte; null quando a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante REAL da extração na origem (ISO-8601) â\x80\x94 para os cubos SIH, a safra do sidecar (extração no FTP do DATASUS), nunca o instante do download'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, competência, extração, diagnóstico de origem, citação e licença', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}, 'published_years': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Anos que o canal de cubos publica â\x80\x94 a verdade do canal, distinta do que esta instância tem em disco; só com o cache de cubos ligado'}, 'total_locations': {'type': 'number', 'description': 'Quantas localidades no ranking'}, 'available_sih_years': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Anos com dados SIH atendÃ\xadveis por este servidor'}, 'years_not_available': {'type': 'object', 'required': ['years', 'note'], 'properties': {'note': {'type': 'string', 'description': 'Quais anos ficaram fora e quais os números cobrem'}, 'years': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Anos pedidos que não têm dados SIH e ficaram fora do resultado'}}, 'description': 'Presente só quando parte dos anos pedidos não tem dado: os números cobrem apenas os anos atendidos', 'additionalProperties': False}}, 'description': 'Ranking de UFs por internações ou óbitos; `error` quando nenhum ano pedido tem dado', 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'anyOf': [{'required': ['years', 'data_range', 'note', 'race_available', 'years_without_race', 'cid_revision', 'years_cid9', 'icsap_available', 'icsap_list_revision', 'uf_basis', 'years_uf_arquivo', 'municipality_available', 'currency', 'records_date_imputed', 'csap_universe', 'population_years', 'cubes_channel', 'freshness']}, {'required': ['error', 'years']}], 'required': ['provenance', 'attribution'], 'properties': {'note': {'type': 'string', 'description': 'Aviso sobre o que `years` significa'}, 'error': {'type': 'string', 'description': 'Falha ao listar os anos'}, 'years': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Anos com cubos Parquet presentes localmente'}, 'currency': {'type': 'object', 'description': 'Moeda de `value` â\x80\x94 chave é o ano (string)', 'additionalProperties': {'type': ['array', 'null'], 'items': {'type': 'object', 'required': ['from', 'to', 'code', 'symbol', 'name'], 'properties': {'to': {'type': 'string', 'description': 'Ã\x9altima competência (AAAA-MM)'}, 'code': {'type': 'string', 'description': 'Código ISO 4217 (BRE, BRR, BRL)'}, 'from': {'type': 'string', 'description': 'Primeira competência (AAAA-MM)'}, 'name': {'type': 'string', 'description': 'Nome da moeda'}, 'symbol': {'type': 'string', 'description': 'SÃ\xadmbolo (Cr$, CR$, R$)'}}, 'additionalProperties': False}, 'description': 'Moeda de `value` por competência; null quando o sidecar não informa'}}, 'uf_basis': {'type': 'object', 'description': 'Base do eixo `uf` â\x80\x94 chave é o ano (string)', 'additionalProperties': {'enum': ['residencia', 'arquivo'], 'description': 'Base do eixo `uf`'}}, 'freshness': {'type': 'object', 'required': ['status', 'checked_at', 'method', 'manifest_url', 'manifest_last_updated_local', 'manifest_last_updated_remote', 'cubes', 'error'], 'properties': {'cubes': {'type': 'array', 'items': {'type': 'object', 'required': ['cube_year', 'reedited', 'reprocessed', 'removed', 'new_in_window', 'behind'], 'properties': {'behind': {'type': 'boolean', 'description': 'true quando alguma lista acima tem item'}, 'removed': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Partições que saÃ\xadram do manifesto'}, 'reedited': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Partições cujo .dbc de origem mudou (reedição do MS)'}, 'cube_year': {'type': 'number', 'description': 'Ano do cubo'}, 'reprocessed': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Partições regeneradas pelo espelho'}, 'new_in_window': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Competências publicadas depois do build'}}, 'additionalProperties': False}, 'description': 'Cubos atrasados frente ao espelho'}, 'error': {'type': ['string', 'null'], 'description': 'Erro da checagem; null quando não houve'}, 'method': {'enum': ['range', 'full', None], 'description': 'Como checou: sonda parcial ou manifesto inteiro'}, 'status': {'enum': ['disabled', 'pending', 'current', 'stale', 'unknown'], 'description': 'Frescor dos cubos frente ao espelho'}, 'checked_at': {'type': ['string', 'null'], 'description': 'Instante (UTC) da última checagem; null se nunca terminou'}, 'manifest_url': {'type': ['string', 'null'], 'description': 'URL do manifesto do espelho'}, 'manifest_last_updated_local': {'type': ['string', 'null'], 'description': 'Manifesto com que os cubos foram gerados'}, 'manifest_last_updated_remote': {'type': ['string', 'null'], 'description': 'Manifesto público lido agora'}}, 'description': 'Frescor dos cubos locais frente ao espelho healthbr-data', 'additionalProperties': False}, 'data_range': {'type': 'object', 'required': ['total_years'], 'properties': {'last_year': {'type': 'number', 'description': 'Ã\x9altimo ano local; ausente quando não há cubo'}, 'first_year': {'type': 'number', 'description': 'Primeiro ano local; ausente quando não há cubo'}, 'total_years': {'type': 'number', 'description': 'Quantos anos'}}, 'description': 'Intervalo dos anos locais', 'additionalProperties': False}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado (id SPDX quando há)'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'oneOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'description': 'Diagnóstico de origem da chamada: como o dado foi obtido. Medição real do servidor; unstable=true pede ao agente que trate o dado como obtido com dificuldade', 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta ou localiza a fonte'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Competência ou safra do dado segundo a fonte; null quando a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante REAL da extração na origem (ISO-8601) â\x80\x94 para os cubos SIH, a safra do sidecar (extração no FTP do DATASUS), nunca o instante do download'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, competência, extração, diagnóstico de origem, citação e licença', 'additionalProperties': False}, 'years_cid9': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Anos em que o cubo usa CID-9 (1992â\x80\x931997)'}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}, 'cid_revision': {'type': 'object', 'description': 'Internações por revisão da CID â\x80\x94 chave é o ano (string)', 'additionalProperties': {'type': 'object', 'description': 'Revisão da CID ("9" ou "10") â\x86\x92 internações', 'additionalProperties': {'type': ['number', 'null'], 'description': 'Internações naquela revisão; null quando o sidecar não traz o total'}}}, 'csap_universe': {'type': 'object', 'description': 'Universo do % ICSAP â\x80\x94 chave é o ano (string)', 'additionalProperties': {'type': ['object', 'null'], 'required': ['method', 'records_in_universe', 'excluded'], 'properties': {'method': {'type': 'string', 'description': 'Método (csapAIH)'}, 'excluded': {'type': 'object', 'description': 'Motivo de exclusão â\x86\x92 internações', 'additionalProperties': {'type': 'number', 'description': 'Internações fora do universo por este motivo'}}, 'records_in_universe': {'type': ['number', 'null'], 'description': 'Internações dentro do universo'}}, 'description': 'Universo do % ICSAP como o csapAIH; null em cubo anterior ao builder 2.6.0', 'additionalProperties': False}}, 'cubes_channel': {'type': 'object', 'required': ['enabled', 'base_url', 'published_years', 'cache_dir', 'manifest_source'], 'properties': {'note': {'type': 'string', 'description': 'Como o cache baixa os anos pedidos'}, 'enabled': {'type': 'boolean', 'description': 'false quando o cache de cubos está desligado'}, 'base_url': {'type': 'string', 'description': 'URL do canal público de cubos'}, 'cache_dir': {'type': ['string', 'null'], 'description': 'Pasta do cache local; null quando desligado'}, 'manifest_source': {'enum': ['remote', 'disk', 'none', 'disabled'], 'description': 'De onde veio o manifesto'}, 'published_years': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Anos publicados no manifesto do canal'}, 'manifest_generated_at': {'type': ['string', 'null'], 'description': 'Quando o manifesto foi gerado; null sem manifesto'}}, 'description': 'Canal público dos cubos e cache local', 'additionalProperties': False}, 'race_available': {'type': 'object', 'description': 'Raça/cor disponÃ\xadvel â\x80\x94 chave é o ano (string)', 'additionalProperties': {'type': 'boolean', 'description': 'true quando o cubo tem raça/cor'}}, 'icsap_available': {'type': 'object', 'description': 'ICSAP disponÃ\xadvel â\x80\x94 chave é o ano (string)', 'additionalProperties': {'type': 'boolean', 'description': 'true quando o cubo tem a marcação ICSAP'}}, 'population_years': {'type': ['object', 'null'], 'required': ['first_year', 'last_year', 'detailed', 'aggregated'], 'properties': {'detailed': {'type': ['object', 'null'], 'required': ['first_year', 'last_year', 'source', 'age'], 'properties': {'age': {'type': 'string', 'description': 'Grão etário do arquivo'}, 'source': {'type': 'string', 'description': 'Arquivo parquet que serve o intervalo'}, 'last_year': {'type': 'number', 'description': 'Ã\x9altimo ano coberto'}, 'age_groups': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Faixas etárias quinquenais (só no arquivo agregado)'}, 'first_year': {'type': 'number', 'description': 'Primeiro ano coberto'}}, 'description': 'pop_uf.parquet â\x80\x94 idade simples por UF e sexo (projeções IBGE, 2000+)', 'additionalProperties': False}, 'last_year': {'type': 'number', 'description': 'Ã\x9altimo ano com população por UF'}, 'aggregated': {'type': ['object', 'null'], 'required': ['first_year', 'last_year', 'source', 'age'], 'properties': {'age': {'type': 'string', 'description': 'Grão etário do arquivo'}, 'source': {'type': 'string', 'description': 'Arquivo parquet que serve o intervalo'}, 'last_year': {'type': 'number', 'description': 'Ã\x9altimo ano coberto'}, 'age_groups': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Faixas etárias quinquenais (só no arquivo agregado)'}, 'first_year': {'type': 'number', 'description': 'Primeiro ano coberto'}}, 'description': 'pop_uf_agregado.parquet â\x80\x94 faixa etária quinquenal por UF e sexo (1991â\x80\x931999)', 'additionalProperties': False}, 'first_year': {'type': 'number', 'description': 'Primeiro ano com população por UF (união dos dois arquivos)'}}, 'description': 'Cobertura dos arquivos de população por UF: o que as ferramentas de taxa aceitam', 'additionalProperties': False}, 'years_uf_arquivo': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Anos em que `uf` é a do estabelecimento (1992â\x80\x931997)'}, 'years_without_race': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Anos sem raça/cor (1998â\x80\x932007)'}, 'icsap_list_revision': {'type': 'object', 'description': 'Lista ICSAP por revisão da CID â\x80\x94 chave é o ano (string)', 'additionalProperties': {'type': 'object', 'description': 'Revisão â\x86\x92 lista', 'additionalProperties': {'type': 'string', 'description': 'Lista usada (portaria-221-2008 ou cid9-derivada)'}}}, 'records_date_imputed': {'type': 'object', 'description': 'Datas imputadas â\x80\x94 chave é o ano (string)', 'additionalProperties': {'type': 'number', 'description': 'Internações que entraram com data imputada'}}, 'municipality_available': {'type': 'object', 'description': 'MunicÃ\xadpio disponÃ\xadvel â\x80\x94 chave é o ano (string)', 'additionalProperties': {'type': 'boolean', 'description': 'false quando `municipality_code` é nulo em todas as linhas'}}}, 'description': 'Anos com cubo local, o que cada ano carrega (revisão da CID, raça/cor, municÃ\xadpio, moeda, universo ICSAP), cobertura da população, canal de cubos e frescor', 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'uf': {'type': 'array', 'items': {'type': 'string'}, 'description': 'UFs para filtrar'}, 'sex': {'enum': ['M', 'F'], 'type': 'string', 'description': 'Filtrar por sexo'}, 'year': {'type': 'array', 'items': {'type': 'integer'}, 'description': 'Anos para calcular'}, 'age_max': {'type': 'integer', 'description': 'Idade máxima'}, 'age_min': {'type': 'integer', 'description': 'Idade mÃ\xadnima'}, 'is_csap': {'type': 'boolean', 'description': 'Filtrar apenas CSAP'}, 'group_by': {'type': 'array', 'items': {'enum': ['year', 'uf', 'sex'], 'type': 'string'}, 'description': 'Dimensões para agrupamento'}, 'rate_per': {'enum': [1000, 10000, 100000], 'type': 'integer', 'description': 'Taxa por X habitantes (default: 100000)'}, 'rate_type': {'enum': ['crude', 'specific'], 'type': 'string', 'description': 'Tipo de taxa: crude (bruta) ou specific (especÃ\xadfica por filtro)'}, 'cid_chapter': {'type': 'array', 'items': {'type': 'integer'}, 'description': 'CapÃ\xadtulos CID-10 (1-22)'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'anyOf': [{'required': ['data', 'summary', 'metadata']}, {'required': ['error']}], 'required': ['provenance', 'attribution'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'required': ['n_hospitalizations', 'deaths', 'population', 'rate', 'rate_per', 'rate_per_100k', 'population_source', 'mortality_rate'], 'properties': {'uf': {'type': 'string', 'description': 'UF (quando agrupado por UF ou mais de uma UF)'}, 'rate': {'type': 'number', 'description': 'Internações por `rate_per` habitantes, duas casas'}, 'year': {'type': 'number', 'description': 'Ano (quando agrupado por ano ou mais de um ano)'}, 'deaths': {'type': 'number', 'description': 'Ã\x93bitos'}, 'rate_per': {'type': 'number', 'description': 'Base da taxa (1000, 10000 ou 100000)'}, 'population': {'type': 'number', 'description': 'População do estrato (denominador)'}, 'rate_per_100k': {'type': 'number', 'deprecated': True, 'description': 'DEPRECADO â\x80\x94 use `rate` com `rate_per`. Internações por 100 mil habitantes, qualquer que seja `rate_per`; sai numa versão futura'}, 'mortality_rate': {'type': 'number', 'description': 'Ã\x93bitos / internações Ã\x97 100, duas casas'}, 'population_source': {'enum': ['detailed', 'aggregated', None], 'description': 'Arquivo de população que serviu o ano'}, 'n_hospitalizations': {'type': 'number', 'description': 'Internações'}}, 'additionalProperties': False}, 'description': 'Um estrato por linha (vazio quando não há internação no recorte)'}, 'note': {'type': 'string', 'description': 'Como obter o dado (por exemplo, consultar get_available_years)'}, 'error': {'type': 'string', 'description': 'Motivo pelo qual não há dados nesta resposta (ano sem dado, cobertura populacional, falha na consulta)'}, 'notes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Avisos que qualificam os números: era CID-9, raça/cor ausente, universo do % ICSAP, denominador populacional, truncamento'}, 'summary': {'type': 'object', 'required': ['total_hospitalizations', 'total_population', 'overall_rate', 'rate_per', 'rate_type'], 'properties': {'rate_per': {'type': 'number', 'description': 'Base da taxa'}, 'rate_type': {'enum': ['crude', 'specific'], 'description': 'Bruta ou especÃ\xadfica'}, 'overall_rate': {'type': 'number', 'description': 'Taxa do conjunto, na base `rate_per`'}, 'total_population': {'type': 'number', 'description': 'População somada'}, 'total_hospitalizations': {'type': 'number', 'description': 'Internações somadas'}}, 'additionalProperties': False}, 'metadata': {'type': 'object', 'required': ['population_source', 'filters_applied'], 'properties': {'note': {'type': 'string', 'description': 'Presente quando nenhuma internação casou o recorte'}, 'filters_applied': {'type': 'object', 'properties': {'uf': {'type': 'array', 'items': {'type': 'string'}, 'description': 'UFs para filtrar'}, 'sex': {'enum': ['M', 'F'], 'type': 'string', 'description': 'Filtrar por sexo'}, 'year': {'type': 'array', 'items': {'type': 'integer'}, 'description': 'Anos para calcular'}, 'age_max': {'type': 'integer', 'description': 'Idade máxima'}, 'age_min': {'type': 'integer', 'description': 'Idade mÃ\xadnima'}, 'is_csap': {'type': 'boolean', 'description': 'Filtrar apenas CSAP'}, 'group_by': {'type': 'array', 'items': {'enum': ['year', 'uf', 'sex'], 'type': 'string'}, 'description': 'Dimensões para agrupamento'}, 'rate_per': {'enum': [1000, 10000, 100000], 'type': 'integer', 'description': 'Taxa por X habitantes (default: 100000)'}, 'rate_type': {'enum': ['crude', 'specific'], 'type': 'string', 'description': 'Tipo de taxa: crude (bruta) ou specific (especÃ\xadfica por filtro)'}, 'cid_chapter': {'type': 'array', 'items': {'type': 'integer'}, 'description': 'CapÃ\xadtulos CID-10 (1-22)'}}, 'description': 'Os argumentos, com UFs normalizadas e só os anos atendidos', 'additionalProperties': False}, 'population_notes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Avisos sobre o denominador (faixa quinquenal antes de 2000; mistura de fontes)'}, 'population_source': {'type': 'object', 'description': 'Fonte da população â\x80\x94 chave é o ano (string)', 'additionalProperties': {'enum': ['detailed', 'aggregated', None], 'description': 'Arquivo que serviu o ano'}}, 'available_sih_years': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Anos com dados SIH atendÃ\xadveis por este servidor'}}, 'additionalProperties': False}, 'truncated': {'type': 'object', 'required': ['returned', 'total'], 'properties': {'total': {'type': 'number', 'description': 'Linhas que a consulta produziu'}, 'returned': {'type': 'number', 'description': 'Linhas devolvidas (o teto)'}}, 'description': 'Presente só quando `data` foi truncado no teto de linhas; os totais em `summary` são do conjunto inteiro', 'additionalProperties': False}, 'provenance': {'type': 'array', 'items': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado (id SPDX quando há)'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'oneOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'description': 'Diagnóstico de origem da chamada: como o dado foi obtido. Medição real do servidor; unstable=true pede ao agente que trate o dado como obtido com dificuldade', 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta ou localiza a fonte'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Competência ou safra do dado segundo a fonte; null quando a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante REAL da extração na origem (ISO-8601) â\x80\x94 para os cubos SIH, a safra do sidecar (extração no FTP do DATASUS), nunca o instante do download'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, competência, extração, diagnóstico de origem, citação e licença', 'additionalProperties': False}, 'description': 'Um bloco por procedência que contribuiu com esta resposta (SIH, lista CSAP, csapAIH, populaçãoâ\x80¦); licenças nunca se fundem'}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}, 'published_years': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Anos que o canal de cubos publica â\x80\x94 a verdade do canal, distinta do que esta instância tem em disco; só com o cache de cubos ligado'}, 'population_years': {'type': 'object', 'required': ['first_year', 'last_year', 'detailed', 'aggregated'], 'properties': {'detailed': {'type': ['object', 'null'], 'required': ['first_year', 'last_year', 'source', 'age'], 'properties': {'age': {'type': 'string', 'description': 'Grão etário do arquivo'}, 'source': {'type': 'string', 'description': 'Arquivo parquet que serve o intervalo'}, 'last_year': {'type': 'number', 'description': 'Ã\x9altimo ano coberto'}, 'age_groups': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Faixas etárias quinquenais (só no arquivo agregado)'}, 'first_year': {'type': 'number', 'description': 'Primeiro ano coberto'}}, 'description': 'pop_uf.parquet â\x80\x94 idade simples por UF e sexo (projeções IBGE, 2000+)', 'additionalProperties': False}, 'last_year': {'type': 'number', 'description': 'Ã\x9altimo ano com população por UF'}, 'aggregated': {'type': ['object', 'null'], 'required': ['first_year', 'last_year', 'source', 'age'], 'properties': {'age': {'type': 'string', 'description': 'Grão etário do arquivo'}, 'source': {'type': 'string', 'description': 'Arquivo parquet que serve o intervalo'}, 'last_year': {'type': 'number', 'description': 'Ã\x9altimo ano coberto'}, 'age_groups': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Faixas etárias quinquenais (só no arquivo agregado)'}, 'first_year': {'type': 'number', 'description': 'Primeiro ano coberto'}}, 'description': 'pop_uf_agregado.parquet â\x80\x94 faixa etária quinquenal por UF e sexo (1991â\x80\x931999)', 'additionalProperties': False}, 'first_year': {'type': 'number', 'description': 'Primeiro ano com população por UF (união dos dois arquivos)'}}, 'description': 'Cobertura dos arquivos de população por UF: o que as ferramentas de taxa aceitam', 'additionalProperties': False}, 'available_sih_years': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Anos com dados SIH atendÃ\xadveis por este servidor'}, 'years_not_available': {'type': 'object', 'required': ['years', 'note'], 'properties': {'note': {'type': 'string', 'description': 'Quais anos ficaram fora e quais os números cobrem'}, 'years': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Anos pedidos que não têm dados SIH e ficaram fora do resultado'}}, 'description': 'Presente só quando parte dos anos pedidos não tem dado: os números cobrem apenas os anos atendidos', 'additionalProperties': False}}, 'description': 'Taxa de internação por população (IBGE por UF), bruta ou especÃ\xadfica; `error` quando o ano está fora da cobertura populacional ou nenhum ano pedido tem dado', 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'uf': {'type': 'array', 'items': {'type': 'string'}, 'description': "Lista de UFs (ex: ['SP', 'RJ']). Se omitido, todas."}, 'sex': {'enum': ['M', 'F'], 'type': 'string', 'description': 'Filtrar por sexo'}, 'race': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Raça/cor (branca, preta, parda, amarela, indigena, ignorado). Só existe de 2008 em diante: em 1998â\x80\x932007 race é nulo e o filtro não alcança esses anos.'}, 'year': {'type': 'array', 'items': {'type': 'integer'}, 'description': 'Anos para consultar (ex: [2023, 2024]); série de 1992 em diante'}, 'limit': {'type': 'integer', 'description': 'Limitar número de resultados'}, 'month': {'type': 'array', 'items': {'type': 'integer'}, 'description': 'Meses (1-12). Se omitido, todos.'}, 'age_max': {'type': 'integer', 'description': 'Idade máxima em anos'}, 'age_min': {'type': 'integer', 'description': 'Idade mÃ\xadnima em anos'}, 'is_csap': {'type': 'boolean', 'description': 'Filtrar apenas CSAP (true) ou não-CSAP (false)'}, 'group_by': {'type': 'array', 'items': {'enum': ['year', 'month', 'uf', 'cid_chapter', 'cid_revision', 'cid_group', 'sex', 'age', 'race', 'exclusion', 'is_csap', 'csap_group'], 'type': 'string'}, 'description': 'Dimensões para agrupamento'}, 'cid_chapter': {'type': 'array', 'items': {'type': 'integer'}, 'description': 'CapÃ\xadtulos CID-10 (1-22). Se omitido, todos.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'anyOf': [{'required': ['data', 'summary', 'filters_applied']}, {'required': ['error']}], 'required': ['provenance', 'attribution'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'required': ['n_hospitalizations', 'total_days', 'total_value', 'deaths'], 'properties': {'uf': {'type': 'string', 'description': 'UF de residência â\x80\x94 do estabelecimento em 1992â\x80\x931997 (group_by: uf)'}, 'age': {'type': 'number', 'description': 'Idade em anos (group_by: age)'}, 'sex': {'type': 'string', 'description': 'Sexo: M ou F (group_by: sex)'}, 'race': {'type': ['string', 'null'], 'description': 'Raça/cor; null em 1998â\x80\x932007, quando a AIH não trazia o campo (group_by: race)'}, 'year': {'type': 'number', 'description': 'Ano (group_by: year)'}, 'month': {'type': 'number', 'description': 'Mês, 1â\x80\x9312 (group_by: month)'}, 'deaths': {'type': ['number', 'null'], 'description': 'Ã\x93bitos; null quando o recorte não tem nenhuma linha'}, 'is_csap': {'type': 'boolean', 'description': 'Internação por condição sensÃ\xadvel Ã\xa0 atenção primária (group_by: is_csap)'}, 'cid_group': {'type': 'string', 'description': 'Categoria CID de 3 dÃ\xadgitos (group_by: cid_group)'}, 'exclusion': {'type': ['string', 'null'], 'description': 'Motivo de exclusão do universo csapAIH; null quando dentro do universo (group_by: exclusion)'}, 'csap_group': {'type': ['string', 'null'], 'description': 'Grupo CSAP g01â\x80\x93g19; null quando a internação não é sensÃ\xadvel (group_by: csap_group)'}, 'total_days': {'type': ['number', 'null'], 'description': 'Dias de permanência; null quando o recorte não tem nenhuma linha'}, 'cid_chapter': {'type': 'number', 'description': 'CapÃ\xadtulo da CID, 1â\x80\x9322 (group_by: cid_chapter)'}, 'total_value': {'type': ['number', 'null'], 'description': 'Valor total pago (R$); null quando o recorte não tem nenhuma linha'}, 'cid_revision': {'type': 'number', 'description': 'Revisão da CID do diagnóstico: 9 ou 10 (group_by: cid_revision)'}, 'n_hospitalizations': {'type': ['number', 'null'], 'description': 'Internações; null quando o recorte não tem nenhuma linha'}}, 'description': 'Uma linha por combinação de `group_by` (só as colunas pedidas aparecem)', 'additionalProperties': False}, 'description': 'Linhas agrupadas (vazio no caminho de erro-mole)'}, 'note': {'type': 'string', 'description': 'Como obter o dado (por exemplo, consultar get_available_years)'}, 'error': {'type': 'string', 'description': 'Motivo pelo qual não há dados nesta resposta (ano sem dado, cobertura populacional, falha na consulta)'}, 'notes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Avisos que qualificam os números: era CID-9, raça/cor ausente, universo do % ICSAP, denominador populacional, truncamento'}, 'summary': {'type': 'object', 'required': ['total_hospitalizations', 'total_days', 'total_value', 'deaths', 'hospital_mortality_rate', 'records_returned'], 'properties': {'deaths': {'type': 'number', 'description': 'Ã\x93bitos'}, 'total_days': {'type': 'number', 'description': 'Dias de permanência'}, 'total_value': {'type': 'number', 'description': 'Valor pago (R$), duas casas'}, 'records_returned': {'type': 'number', 'description': 'Linhas em `data`'}, 'total_hospitalizations': {'type': 'number', 'description': 'Internações no recorte inteiro'}, 'hospital_mortality_rate': {'type': 'number', 'description': 'Ã\x93bitos / internações Ã\x97 100, duas casas'}}, 'description': 'Totais do recorte inteiro (não do trecho devolvido, quando truncado)', 'additionalProperties': False}, 'truncated': {'type': 'object', 'required': ['returned', 'total'], 'properties': {'total': {'type': 'number', 'description': 'Linhas que a consulta produziu'}, 'returned': {'type': 'number', 'description': 'Linhas devolvidas (o teto)'}}, 'description': 'Presente só quando `data` foi truncado no teto de linhas; os totais em `summary` são do conjunto inteiro', 'additionalProperties': False}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado (id SPDX quando há)'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'oneOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'description': 'Diagnóstico de origem da chamada: como o dado foi obtido. Medição real do servidor; unstable=true pede ao agente que trate o dado como obtido com dificuldade', 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta ou localiza a fonte'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Competência ou safra do dado segundo a fonte; null quando a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante REAL da extração na origem (ISO-8601) â\x80\x94 para os cubos SIH, a safra do sidecar (extração no FTP do DATASUS), nunca o instante do download'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, competência, extração, diagnóstico de origem, citação e licença', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}, 'filters_applied': {'type': 'object', 'properties': {'uf': {'type': 'array', 'items': {'type': 'string'}, 'description': "Lista de UFs (ex: ['SP', 'RJ']). Se omitido, todas."}, 'sex': {'enum': ['M', 'F'], 'type': 'string', 'description': 'Filtrar por sexo'}, 'race': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Raça/cor (branca, preta, parda, amarela, indigena, ignorado). Só existe de 2008 em diante: em 1998â\x80\x932007 race é nulo e o filtro não alcança esses anos.'}, 'year': {'type': 'array', 'items': {'type': 'integer'}, 'description': 'Anos para consultar (ex: [2023, 2024]); série de 1992 em diante'}, 'limit': {'type': 'integer', 'description': 'Limitar número de resultados'}, 'month': {'type': 'array', 'items': {'type': 'integer'}, 'description': 'Meses (1-12). Se omitido, todos.'}, 'age_max': {'type': 'integer', 'description': 'Idade máxima em anos'}, 'age_min': {'type': 'integer', 'description': 'Idade mÃ\xadnima em anos'}, 'is_csap': {'type': 'boolean', 'description': 'Filtrar apenas CSAP (true) ou não-CSAP (false)'}, 'group_by': {'type': 'array', 'items': {'enum': ['year', 'month', 'uf', 'cid_chapter', 'cid_revision', 'cid_group', 'sex', 'age', 'race', 'exclusion', 'is_csap', 'csap_group'], 'type': 'string'}, 'description': 'Dimensões para agrupamento'}, 'cid_chapter': {'type': 'array', 'items': {'type': 'integer'}, 'description': 'CapÃ\xadtulos CID-10 (1-22). Se omitido, todos.'}}, 'description': 'Os argumentos recebidos, ecoados', 'additionalProperties': False}, 'published_years': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Anos que o canal de cubos publica â\x80\x94 a verdade do canal, distinta do que esta instância tem em disco; só com o cache de cubos ligado'}, 'available_sih_years': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Anos com dados SIH atendÃ\xadveis por este servidor'}, 'years_not_available': {'type': 'object', 'required': ['years', 'note'], 'properties': {'note': {'type': 'string', 'description': 'Quais anos ficaram fora e quais os números cobrem'}, 'years': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Anos pedidos que não têm dados SIH e ficaram fora do resultado'}}, 'description': 'Presente só quando parte dos anos pedidos não tem dado: os números cobrem apenas os anos atendidos', 'additionalProperties': False}}, 'description': 'Internações do cubo de causas, agrupadas conforme `group_by`, com totais do recorte inteiro; `error` quando nenhum ano pedido tem dado', 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['year_start', 'year_end'], 'properties': {'uf': {'type': 'array', 'items': {'type': 'string'}, 'description': 'UFs para filtrar'}, 'year_end': {'type': 'integer', 'description': 'Ano final'}, 'year_start': {'type': 'integer', 'description': 'Ano inicial'}, 'cid_chapter': {'type': 'integer', 'description': 'CapÃ\xadtulo CID-10 especÃ\xadfico'}, 'granularity': {'enum': ['monthly', 'yearly'], 'type': 'string', 'description': 'Granularidade temporal (default: yearly)'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'anyOf': [{'required': ['granularity', 'period', 'series']}, {'required': ['error']}], 'required': ['provenance', 'attribution'], 'properties': {'data': {'type': 'array', 'items': {}, 'description': 'Sempre vazio: só aparece no caminho de erro-mole do funil'}, 'note': {'type': 'string', 'description': 'Como obter o dado (por exemplo, consultar get_available_years)'}, 'error': {'type': 'string', 'description': 'Motivo pelo qual não há dados nesta resposta (ano sem dado, cobertura populacional, falha na consulta)'}, 'notes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Avisos que qualificam os números: era CID-9, raça/cor ausente, universo do % ICSAP, denominador populacional, truncamento'}, 'period': {'type': 'object', 'required': ['start', 'end'], 'properties': {'end': {'type': ['number', 'string'], 'description': 'Ano (anual) ou AAAA-MM (mensal) final'}, 'start': {'type': ['number', 'string'], 'description': 'Ano (anual) ou AAAA-MM (mensal) inicial'}}, 'description': 'Intervalo pedido', 'additionalProperties': False}, 'series': {'type': 'array', 'items': {'anyOf': [{'type': 'object', 'required': ['year', 'n_hospitalizations', 'deaths'], 'properties': {'year': {'type': 'number', 'description': 'Ano'}, 'deaths': {'type': 'number', 'description': 'Ã\x93bitos no ano'}, 'n_hospitalizations': {'type': 'number', 'description': 'Internações no ano'}}, 'description': 'Ponto anual', 'additionalProperties': False}, {'type': 'object', 'required': ['year_month', 'n', 'deaths'], 'properties': {'n': {'type': 'number', 'description': 'Internações no mês'}, 'deaths': {'type': 'number', 'description': 'Ã\x93bitos no mês'}, 'year_month': {'type': 'string', 'description': 'Competência AAAA-MM'}}, 'description': 'Ponto mensal', 'additionalProperties': False}]}, 'description': 'Um ponto por ano ou por mês, em ordem cronológica'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado (id SPDX quando há)'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'oneOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'description': 'Diagnóstico de origem da chamada: como o dado foi obtido. Medição real do servidor; unstable=true pede ao agente que trate o dado como obtido com dificuldade', 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta ou localiza a fonte'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Competência ou safra do dado segundo a fonte; null quando a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante REAL da extração na origem (ISO-8601) â\x80\x94 para os cubos SIH, a safra do sidecar (extração no FTP do DATASUS), nunca o instante do download'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, competência, extração, diagnóstico de origem, citação e licença', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}, 'granularity': {'enum': ['yearly', 'monthly'], 'description': 'Grão da série'}, 'published_years': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Anos que o canal de cubos publica â\x80\x94 a verdade do canal, distinta do que esta instância tem em disco; só com o cache de cubos ligado'}, 'available_sih_years': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Anos com dados SIH atendÃ\xadveis por este servidor'}, 'years_not_available': {'type': 'object', 'required': ['years', 'note'], 'properties': {'note': {'type': 'string', 'description': 'Quais anos ficaram fora e quais os números cobrem'}, 'years': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Anos pedidos que não têm dados SIH e ficaram fora do resultado'}}, 'description': 'Presente só quando parte dos anos pedidos não tem dado: os números cobrem apenas os anos atendidos', 'additionalProperties': False}}, 'description': 'Série temporal de internações, anual (`year`) ou mensal (`year_month`); `error` quando nenhum ano do intervalo tem dado', 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'uf': {'type': 'array', 'items': {'type': 'string'}, 'description': 'UFs para filtrar'}, 'sex': {'enum': ['M', 'F'], 'type': 'string', 'description': 'Filtrar por sexo'}, 'race': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Raça/cor (branca, preta, parda, amarela, indigena, ignorado). Só existe de 2008 em diante: em 1998â\x80\x932007 race é nulo e o filtro não alcança esses anos.'}, 'year': {'type': 'array', 'items': {'type': 'integer'}, 'description': 'Anos para consultar'}, 'age_max': {'type': 'integer', 'description': 'Idade máxima'}, 'age_min': {'type': 'integer', 'description': 'Idade mÃ\xadnima'}, 'group_by': {'type': 'array', 'items': {'enum': ['year', 'uf', 'municipality_code', 'cid_revision', 'csap_group', 'sex', 'age', 'race'], 'type': 'string'}, 'description': 'Dimensões para agrupamento'}, 'universe': {'enum': ['csapaih', 'all'], 'type': 'string', 'description': "Universo do % ICSAP: 'csapaih' (padrão) tira do numerador e do denominador as internações por procedimento obstétrico, com diagnóstico de parto (O80-O84) e as AIH de longa permanência, como o pacote R csapAIH (Nedel); 'all' conta todas as internações."}, 'csap_group': {'type': 'array', 'items': {'type': 'string'}, 'description': "Grupos CSAP (ex: ['g01', 'g05'])"}, 'municipality_code': {'type': 'string', 'description': 'Código IBGE do municÃ\xadpio (6 dÃ\xadgitos)'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'anyOf': [{'required': ['data', 'notes', 'summary', 'filters_applied']}, {'required': ['error']}], 'required': ['provenance', 'attribution'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'required': ['n_icsap', 'n_total', 'icsap_percentage', 'total_days', 'total_value', 'deaths'], 'properties': {'uf': {'type': 'string', 'description': 'UF de residência â\x80\x94 do estabelecimento em 1992â\x80\x931997 (group_by: uf)'}, 'age': {'type': 'number', 'description': 'Idade em anos (group_by: age)'}, 'sex': {'type': 'string', 'description': 'Sexo: M ou F (group_by: sex)'}, 'race': {'type': ['string', 'null'], 'description': 'Raça/cor; null em 1998â\x80\x932007 (group_by: race)'}, 'year': {'type': 'number', 'description': 'Ano (group_by: year)'}, 'deaths': {'type': 'number', 'description': 'Ã\x93bitos nas ICSAP'}, 'n_icsap': {'type': 'number', 'description': 'Internações por condições sensÃ\xadveis Ã\xa0 atenção primária no universo escolhido'}, 'n_total': {'type': 'number', 'description': 'Total de internações no universo escolhido (denominador)'}, 'csap_group': {'type': ['string', 'null'], 'description': 'Grupo CSAP g01â\x80\x93g19 (group_by: csap_group)'}, 'total_days': {'type': 'number', 'description': 'Dias de permanência das ICSAP'}, 'total_value': {'type': 'number', 'description': 'Valor pago das ICSAP (R$)'}, 'cid_revision': {'type': 'number', 'description': 'Revisão da CID: 9 ou 10 (group_by: cid_revision)'}, 'icsap_percentage': {'type': 'number', 'description': 'n_icsap / n_total Ã\x97 100, duas casas'}, 'municipality_code': {'type': ['string', 'null'], 'description': 'Código IBGE do municÃ\xadpio de residência (6 dÃ\xadgitos); null em 1992â\x80\x931997 (group_by: municipality_code)'}}, 'description': 'Uma linha por combinação de `group_by` (só as colunas pedidas aparecem)', 'additionalProperties': False}, 'description': 'Linhas agrupadas (vazio no caminho de erro-mole)'}, 'note': {'type': 'string', 'description': 'Como obter o dado (por exemplo, consultar get_available_years)'}, 'error': {'type': 'string', 'description': 'Motivo pelo qual não há dados nesta resposta (ano sem dado, cobertura populacional, falha na consulta)'}, 'notes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Avisos que qualificam os números: era CID-9, raça/cor ausente, universo do % ICSAP, denominador populacional, truncamento'}, 'summary': {'type': 'object', 'required': ['total_icsap', 'total_hospitalizations', 'icsap_percentage', 'total_days', 'total_value', 'deaths', 'records_returned'], 'properties': {'deaths': {'type': 'number', 'description': 'Ã\x93bitos nas ICSAP'}, 'total_days': {'type': 'number', 'description': 'Dias de permanência das ICSAP'}, 'total_icsap': {'type': 'number', 'description': 'ICSAP no recorte inteiro'}, 'total_value': {'type': 'number', 'description': 'Valor pago das ICSAP (R$)'}, 'icsap_percentage': {'type': 'number', 'description': 'total_icsap / total_hospitalizations Ã\x97 100, duas casas'}, 'records_returned': {'type': 'number', 'description': 'Linhas em `data`'}, 'total_hospitalizations': {'type': 'number', 'description': 'Internações no universo (denominador)'}}, 'description': 'Totais do recorte inteiro, calculados sem agrupamento', 'additionalProperties': False}, 'truncated': {'type': 'object', 'required': ['returned', 'total'], 'properties': {'total': {'type': 'number', 'description': 'Linhas que a consulta produziu'}, 'returned': {'type': 'number', 'description': 'Linhas devolvidas (o teto)'}}, 'description': 'Presente só quando `data` foi truncado no teto de linhas; os totais em `summary` são do conjunto inteiro', 'additionalProperties': False}, 'provenance': {'type': 'array', 'items': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado (id SPDX quando há)'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'oneOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'description': 'Diagnóstico de origem da chamada: como o dado foi obtido. Medição real do servidor; unstable=true pede ao agente que trate o dado como obtido com dificuldade', 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta ou localiza a fonte'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Competência ou safra do dado segundo a fonte; null quando a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante REAL da extração na origem (ISO-8601) â\x80\x94 para os cubos SIH, a safra do sidecar (extração no FTP do DATASUS), nunca o instante do download'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, competência, extração, diagnóstico de origem, citação e licença', 'additionalProperties': False}, 'description': 'Um bloco por procedência que contribuiu com esta resposta (SIH, lista CSAP, csapAIH, populaçãoâ\x80¦); licenças nunca se fundem'}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}, 'filters_applied': {'type': 'object', 'properties': {'uf': {'type': 'array', 'items': {'type': 'string'}, 'description': 'UFs para filtrar'}, 'sex': {'enum': ['M', 'F'], 'type': 'string', 'description': 'Filtrar por sexo'}, 'race': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Raça/cor (branca, preta, parda, amarela, indigena, ignorado). Só existe de 2008 em diante: em 1998â\x80\x932007 race é nulo e o filtro não alcança esses anos.'}, 'year': {'type': 'array', 'items': {'type': 'integer'}, 'description': 'Anos para consultar'}, 'age_max': {'type': 'integer', 'description': 'Idade máxima'}, 'age_min': {'type': 'integer', 'description': 'Idade mÃ\xadnima'}, 'group_by': {'type': 'array', 'items': {'enum': ['year', 'uf', 'municipality_code', 'cid_revision', 'csap_group', 'sex', 'age', 'race'], 'type': 'string'}, 'description': 'Dimensões para agrupamento'}, 'universe': {'enum': ['csapaih', 'all'], 'type': 'string', 'description': "Universo do % ICSAP: 'csapaih' (padrão) tira do numerador e do denominador as internações por procedimento obstétrico, com diagnóstico de parto (O80-O84) e as AIH de longa permanência, como o pacote R csapAIH (Nedel); 'all' conta todas as internações."}, 'csap_group': {'type': 'array', 'items': {'type': 'string'}, 'description': "Grupos CSAP (ex: ['g01', 'g05'])"}, 'municipality_code': {'type': 'string', 'description': 'Código IBGE do municÃ\xadpio (6 dÃ\xadgitos)'}}, 'description': 'Os argumentos recebidos, ecoados', 'additionalProperties': False}, 'published_years': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Anos que o canal de cubos publica â\x80\x94 a verdade do canal, distinta do que esta instância tem em disco; só com o cache de cubos ligado'}, 'available_sih_years': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Anos com dados SIH atendÃ\xadveis por este servidor'}, 'years_not_available': {'type': 'object', 'required': ['years', 'note'], 'properties': {'note': {'type': 'string', 'description': 'Quais anos ficaram fora e quais os números cobrem'}, 'years': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Anos pedidos que não têm dados SIH e ficaram fora do resultado'}}, 'description': 'Presente só quando parte dos anos pedidos não tem dado: os números cobrem apenas os anos atendidos', 'additionalProperties': False}}, 'description': 'Internações por condições sensÃ\xadveis Ã\xa0 atenção primária, agrupadas conforme `group_by`, com totais e a nota do universo; `error` quando nenhum ano pedido tem dado', 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'uf': {'type': 'array', 'items': {'type': 'string'}, 'description': 'UFs para calcular'}, 'sex': {'enum': ['M', 'F'], 'type': 'string', 'description': 'Filtrar por sexo'}, 'year': {'type': 'array', 'items': {'type': 'integer'}, 'description': 'Anos para calcular'}, 'age_max': {'type': 'integer', 'description': 'Idade máxima'}, 'age_min': {'type': 'integer', 'description': 'Idade mÃ\xadnima'}, 'group_by': {'type': 'array', 'items': {'enum': ['year', 'uf', 'cid_revision', 'sex', 'race'], 'type': 'string'}, 'description': 'Dimensões para agrupamento'}, 'universe': {'enum': ['csapaih', 'all'], 'type': 'string', 'description': "Universo do % ICSAP: 'csapaih' (padrão) tira do numerador e do denominador as internações por procedimento obstétrico, com diagnóstico de parto (O80-O84) e as AIH de longa permanência, como o pacote R csapAIH (Nedel); 'all' conta todas as internações."}, 'municipality_code': {'type': 'string', 'description': 'Código IBGE do municÃ\xadpio'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'anyOf': [{'required': ['data', 'notes', 'indicators_calculated', 'note']}, {'required': ['error']}], 'required': ['provenance', 'attribution'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'required': ['n_icsap', 'n_total', 'icsap_percentage', 'total_days', 'total_value', 'deaths'], 'properties': {'uf': {'type': 'string', 'description': 'UF de residência â\x80\x94 do estabelecimento em 1992â\x80\x931997 (group_by: uf)'}, 'age': {'type': 'number', 'description': 'Idade em anos (group_by: age)'}, 'sex': {'type': 'string', 'description': 'Sexo: M ou F (group_by: sex)'}, 'race': {'type': ['string', 'null'], 'description': 'Raça/cor; null em 1998â\x80\x932007 (group_by: race)'}, 'year': {'type': 'number', 'description': 'Ano (group_by: year)'}, 'deaths': {'type': 'number', 'description': 'Ã\x93bitos nas ICSAP'}, 'n_icsap': {'type': 'number', 'description': 'Internações por condições sensÃ\xadveis Ã\xa0 atenção primária no universo escolhido'}, 'n_total': {'type': 'number', 'description': 'Total de internações no universo escolhido (denominador)'}, 'csap_group': {'type': ['string', 'null'], 'description': 'Grupo CSAP g01â\x80\x93g19 (group_by: csap_group)'}, 'total_days': {'type': 'number', 'description': 'Dias de permanência das ICSAP'}, 'total_value': {'type': 'number', 'description': 'Valor pago das ICSAP (R$)'}, 'cid_revision': {'type': 'number', 'description': 'Revisão da CID: 9 ou 10 (group_by: cid_revision)'}, 'icsap_percentage': {'type': 'number', 'description': 'n_icsap / n_total Ã\x97 100, duas casas'}, 'municipality_code': {'type': ['string', 'null'], 'description': 'Código IBGE do municÃ\xadpio de residência (6 dÃ\xadgitos); null em 1992â\x80\x931997 (group_by: municipality_code)'}}, 'description': 'Uma linha por combinação de `group_by` (só as colunas pedidas aparecem)', 'additionalProperties': False}, 'description': 'Um estrato por linha (vazio no caminho de erro-mole)'}, 'note': {'type': 'string', 'description': 'Fórmula do indicador â\x80\x94 ou, no caminho de erro-mole, como obter o dado'}, 'error': {'type': 'string', 'description': 'Motivo pelo qual não há dados nesta resposta (ano sem dado, cobertura populacional, falha na consulta)'}, 'notes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Avisos que qualificam os números: era CID-9, raça/cor ausente, universo do % ICSAP, denominador populacional, truncamento'}, 'truncated': {'type': 'object', 'required': ['returned', 'total'], 'properties': {'total': {'type': 'number', 'description': 'Linhas que a consulta produziu'}, 'returned': {'type': 'number', 'description': 'Linhas devolvidas (o teto)'}}, 'description': 'Presente só quando `data` foi truncado no teto de linhas; os totais em `summary` são do conjunto inteiro', 'additionalProperties': False}, 'provenance': {'type': 'array', 'items': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado (id SPDX quando há)'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'oneOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'description': 'Diagnóstico de origem da chamada: como o dado foi obtido. Medição real do servidor; unstable=true pede ao agente que trate o dado como obtido com dificuldade', 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta ou localiza a fonte'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Competência ou safra do dado segundo a fonte; null quando a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante REAL da extração na origem (ISO-8601) â\x80\x94 para os cubos SIH, a safra do sidecar (extração no FTP do DATASUS), nunca o instante do download'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, competência, extração, diagnóstico de origem, citação e licença', 'additionalProperties': False}, 'description': 'Um bloco por procedência que contribuiu com esta resposta (SIH, lista CSAP, csapAIH, populaçãoâ\x80¦); licenças nunca se fundem'}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}, 'published_years': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Anos que o canal de cubos publica â\x80\x94 a verdade do canal, distinta do que esta instância tem em disco; só com o cache de cubos ligado'}, 'available_sih_years': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Anos com dados SIH atendÃ\xadveis por este servidor'}, 'years_not_available': {'type': 'object', 'required': ['years', 'note'], 'properties': {'note': {'type': 'string', 'description': 'Quais anos ficaram fora e quais os números cobrem'}, 'years': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Anos pedidos que não têm dados SIH e ficaram fora do resultado'}}, 'description': 'Presente só quando parte dos anos pedidos não tem dado: os números cobrem apenas os anos atendidos', 'additionalProperties': False}, 'indicators_calculated': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Indicadores presentes nas linhas (icsap_percentage)'}}, 'description': 'Percentual de ICSAP por estrato de `group_by`, com a fórmula e a nota do universo; `error` quando nenhum ano pedido tem dado', 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'anyOf': [{'required': ['total_chapters', 'chapters']}], 'required': ['provenance', 'attribution'], 'properties': {'chapters': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'roman', 'range', 'name_pt', 'name_en'], 'properties': {'code': {'type': 'string', 'description': 'CapÃ\xadtulo em algarismo romano (chave usada em `cid_chapter` é o número, 1â\x80\x9322)'}, 'range': {'type': 'string', 'description': 'Intervalo de códigos CID-10 (ex.: A00-B99)'}, 'roman': {'type': 'string', 'description': 'CapÃ\xadtulo em algarismo romano'}, 'name_en': {'type': 'string', 'description': 'Nome em inglês'}, 'name_pt': {'type': 'string', 'description': 'Nome em português'}}, 'additionalProperties': False}, 'description': 'Os capÃ\xadtulos, na ordem da CID'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado (id SPDX quando há)'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'oneOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'description': 'Diagnóstico de origem da chamada: como o dado foi obtido. Medição real do servidor; unstable=true pede ao agente que trate o dado como obtido com dificuldade', 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta ou localiza a fonte'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Competência ou safra do dado segundo a fonte; null quando a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante REAL da extração na origem (ISO-8601) â\x80\x94 para os cubos SIH, a safra do sidecar (extração no FTP do DATASUS), nunca o instante do download'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, competência, extração, diagnóstico de origem, citação e licença', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}, 'total_chapters': {'type': 'number', 'description': 'Número de capÃ\xadtulos (22)'}}, 'description': 'Os 22 capÃ\xadtulos da CID-10 (versão 2019), com intervalo de códigos e nomes', 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'group_code': {'type': 'string', 'description': "Código do grupo especÃ\xadfico (ex: 'g01'). Se omitido, retorna todos."}, 'include_cid_codes': {'type': 'boolean', 'description': 'Se true, inclui lista de códigos CID-10 (default: false)'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'anyOf': [{'required': ['total_groups', 'source', 'groups']}, {'required': ['group']}, {'required': ['error']}], 'required': ['provenance', 'attribution'], 'properties': {'error': {'type': 'string', 'description': 'Grupo CSAP não encontrado'}, 'group': {'type': 'object', 'required': ['id', 'code', 'name_pt', 'name_en', 'diagnoses'], 'properties': {'id': {'type': 'number', 'description': 'Número do grupo na Portaria, 1â\x80\x9319'}, 'code': {'type': 'string', 'description': 'Código do grupo, g01â\x80\x93g19'}, 'name_en': {'type': 'string', 'description': 'Nome em inglês'}, 'name_pt': {'type': 'string', 'description': 'Nome em português'}, 'cid_codes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Todos os códigos CID-10 do grupo; só com `include_cid_codes: true`'}, 'diagnoses': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'cid10'], 'properties': {'name': {'type': 'string', 'description': 'Diagnóstico'}, 'cid10': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Códigos CID-10 do diagnóstico'}}, 'additionalProperties': False}, 'description': 'Diagnósticos que compõem o grupo, com seus códigos'}}, 'description': 'O grupo pedido por `group_code`', 'additionalProperties': False}, 'groups': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'name', 'cid_count'], 'properties': {'code': {'type': 'string', 'description': 'Código do grupo, g01â\x80\x93g19'}, 'name': {'type': 'string', 'description': 'Nome do grupo em português'}, 'cid_codes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Códigos CID-10 do grupo; só com `include_cid_codes: true`'}, 'cid_count': {'type': 'number', 'description': 'Quantos códigos CID-10 compõem o grupo'}}, 'additionalProperties': False}, 'description': 'Os 19 grupos, na ordem da Portaria'}, 'source': {'type': 'string', 'description': 'Norma que define a lista (Portaria MS/SAS 221/2008)'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado (id SPDX quando há)'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'oneOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'description': 'Diagnóstico de origem da chamada: como o dado foi obtido. Medição real do servidor; unstable=true pede ao agente que trate o dado como obtido com dificuldade', 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta ou localiza a fonte'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Competência ou safra do dado segundo a fonte; null quando a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante REAL da extração na origem (ISO-8601) â\x80\x94 para os cubos SIH, a safra do sidecar (extração no FTP do DATASUS), nunca o instante do download'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, competência, extração, diagnóstico de origem, citação e licença', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}, 'total_groups': {'type': 'number', 'description': 'Número de grupos na lista (19)'}}, 'description': 'Os 19 grupos CSAP (lista completa) ou um grupo só, quando `group_code` é informado; `error` quando o código não existe', 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'uf': {'type': 'array', 'items': {'type': 'string'}, 'description': 'UFs para filtrar'}, 'sex': {'enum': ['M', 'F'], 'type': 'string', 'description': 'Filtrar por sexo'}, 'year': {'type': 'array', 'items': {'type': 'integer'}, 'description': 'Anos para consultar'}, 'limit': {'type': 'integer', 'maximum': 19, 'minimum': 1, 'description': 'Número de grupos no ranking (default: 19)'}, 'metric': {'enum': ['n', 'days', 'value', 'deaths'], 'type': 'string', 'description': 'Métrica para ranking (default: n)'}, 'age_max': {'type': 'integer', 'description': 'Idade máxima'}, 'age_min': {'type': 'integer', 'description': 'Idade mÃ\xadnima'}, 'universe': {'enum': ['csapaih', 'all'], 'type': 'string', 'description': "Universo do % ICSAP: 'csapaih' (padrão) tira do numerador e do denominador as internações por procedimento obstétrico, com diagnóstico de parto (O80-O84) e as AIH de longa permanência, como o pacote R csapAIH (Nedel); 'all' conta todas as internações."}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'anyOf': [{'required': ['metric', 'ranking', 'notes', 'concentration', 'total_groups']}, {'required': ['error']}], 'required': ['provenance', 'attribution'], 'properties': {'data': {'type': 'array', 'items': {}, 'description': 'Sempre vazio: só aparece no caminho de erro-mole do funil'}, 'note': {'type': 'string', 'description': 'Como obter o dado (por exemplo, consultar get_available_years)'}, 'error': {'type': 'string', 'description': 'Motivo pelo qual não há dados nesta resposta (ano sem dado, cobertura populacional, falha na consulta)'}, 'notes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Avisos que qualificam os números: era CID-9, raça/cor ausente, universo do % ICSAP, denominador populacional, truncamento'}, 'metric': {'enum': ['n', 'days', 'value', 'deaths'], 'description': 'Métrica que ordena'}, 'ranking': {'type': 'array', 'items': {'type': 'object', 'required': ['rank', 'csap_group', 'csap_name', 'metric_value', 'pct_of_total', 'n_hospitalizations', 'total_days', 'total_value', 'deaths'], 'properties': {'rank': {'type': 'number', 'description': 'Posição, 1 = maior'}, 'deaths': {'type': 'number', 'description': 'Ã\x93bitos'}, 'csap_name': {'type': 'string', 'description': 'Nome do grupo'}, 'csap_group': {'type': 'string', 'description': 'Grupo CSAP g01â\x80\x93g19'}, 'total_days': {'type': 'number', 'description': 'Dias de permanência'}, 'total_value': {'type': 'number', 'description': 'Valor pago (R$)'}, 'metric_value': {'type': 'number', 'description': 'Valor da métrica escolhida'}, 'pct_of_total': {'type': 'number', 'description': 'Participação do grupo no total da métrica, %'}, 'n_hospitalizations': {'type': 'number', 'description': 'Internações do grupo'}}, 'additionalProperties': False}, 'description': 'Ranking em ordem decrescente da métrica'}, 'provenance': {'type': 'array', 'items': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado (id SPDX quando há)'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'oneOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'description': 'Diagnóstico de origem da chamada: como o dado foi obtido. Medição real do servidor; unstable=true pede ao agente que trate o dado como obtido com dificuldade', 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta ou localiza a fonte'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Competência ou safra do dado segundo a fonte; null quando a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante REAL da extração na origem (ISO-8601) â\x80\x94 para os cubos SIH, a safra do sidecar (extração no FTP do DATASUS), nunca o instante do download'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, competência, extração, diagnóstico de origem, citação e licença', 'additionalProperties': False}, 'description': 'Um bloco por procedência que contribuiu com esta resposta (SIH, lista CSAP, csapAIH, populaçãoâ\x80¦); licenças nunca se fundem'}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}, 'total_groups': {'type': 'number', 'description': 'Quantos grupos no ranking'}, 'concentration': {'type': 'object', 'required': ['top_3_percentage', 'top_5_percentage'], 'properties': {'top_3_percentage': {'type': 'number', 'description': 'Soma da participação dos 3 primeiros, %'}, 'top_5_percentage': {'type': 'number', 'description': 'Soma dos 5 primeiros, %'}}, 'additionalProperties': False}, 'published_years': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Anos que o canal de cubos publica â\x80\x94 a verdade do canal, distinta do que esta instância tem em disco; só com o cache de cubos ligado'}, 'available_sih_years': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Anos com dados SIH atendÃ\xadveis por este servidor'}, 'years_not_available': {'type': 'object', 'required': ['years', 'note'], 'properties': {'note': {'type': 'string', 'description': 'Quais anos ficaram fora e quais os números cobrem'}, 'years': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Anos pedidos que não têm dados SIH e ficaram fora do resultado'}}, 'description': 'Presente só quando parte dos anos pedidos não tem dado: os números cobrem apenas os anos atendidos', 'additionalProperties': False}}, 'description': 'Os grupos CSAP ordenados pela métrica, com participação de cada um e concentração nos primeiros; `error` quando nenhum ano pedido tem dado', 'additionalProperties': False}
최근 도구 변경
유사한 MCP 서버
Clink Forge
Provides pay-per-call access to attested government datasets, primarily CDC and HHS health data plus EPA air-quality observations.
Medicare Coverage
Provides structured Medicare coverage documents, policy timelines, utilization, enrollment, supplier, and payment-related data fr…
Openfda
Provides access to FDA drug, labeling, approval, adverse-event, recall, shortage, warning-letter, and enforcement data for biomed…
Fda Drug Competition
Analyzes FDA Orange Book drug applications, patents, exclusivities, generic competition, and loss-of-exclusivity timelines.
Cms Open Payments
Searches and analyzes CMS Open Payments data on payments from pharmaceutical and device companies to physicians, hospitals, and o…
Fda Devices
Searches FDA medical-device regulatory datasets covering 510(k)s, PMAs, classifications, registrations, recalls, UDI records, and…
Clinicaltables
Searches NIH clinical vocabularies and registries for conditions, diseases, drugs, procedures, ICD codes, LOINC codes, and health…
Pharma Intel
Combines clinical trial, FDA, PubMed, drug identification, safety, pipeline, sales, patent, and pharmaceutical sponsor data for d…