changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "additionalProperties": false,
+ "anyOf": [
+ {
+ "required": [
+ "data",
+ "summary",
+ "metadata"
+ ]
+ },
+ {
+ "required": [
+ "error"
+ ]
+ }
+ ],
+ "description": "Taxa de internação por população (IBGE por UF), bruta ou específica; `error` quando o ano está fora da cobertura populacional ou nenhum ano pedido tem dado",
+ "properties": {
+ "attribution": {
+ "description": "URLs canônicas das fontes desta resposta (lista de atribuição)",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "available_sih_years": {
+ "description": "Anos com dados SIH atendíveis por este servidor",
+ "items": {
+ "type": "number"
+ },
+ "type": "array"
+ },
+ "data": {
+ "description": "Um estrato por linha (vazio quando não há internação no recorte)",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "deaths": {
+ "description": "Óbitos",
+ "type": "number"
+ },
+ "mortality_rate": {
+ "description": "Óbitos / internações × 100, duas casas",
+ "type": "number"
+ },
+ "n_hospitalizations": {
+ "description": "Internações",
+ "type": "number"
+ },
+ "population": {
+ "description": "População do estrato (denominador)",
+ "type": "number"
+ },
+ "population_source": {
+ "description": "Arquivo de população que serviu o ano",
+ "enum": [
+ "detailed",
+ "aggregated",
+ null
+ ]
+ },
+ "rate_per": {
+ "description": "Base da taxa (1000, 10000 ou 100000)",
+ "type": "number"
+ },
+ "rate_per_100k": {
+ "description": "Internações por `rate_per` habitantes (o nome do campo é histórico; a base está em `rate_per`)",
+ "type": "number"
+ },
+ "uf": {
+ "description": "UF (quando agrupado por UF ou mais de uma UF)",
+ "type": "string"
+ },
+ "year": {
+ "description": "Ano (quando agrupado por ano ou mais de um ano)",
+ "type": "number"
+ }
+ },
+ "required": [
+ "n_hospitalizations",
+ "deaths",
+ "population",
+ "rate_per_100k",
+ "rate_per",
+ "population_source",
+ "mortality_rate"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "error": {
+ "description": "Motivo pelo qual não há dados nesta resposta (ano sem dado, cobertura populacional, falha na consulta)",
+ "type": "string"
+ },
+ "metadata": {
+ "additionalProperties": false,
+ "properties": {
+ "available_sih_years": {
+ "description": "Anos com dados SIH atendíveis por este servidor",
+ "items": {
+ "type": "number"
+ },
+ "type": "array"
+ },
+ "filters_applied": {
+ "additionalProperties": false,
+ "description": "Os argumentos, com UFs normalizadas e só os anos atendidos",
+ "properties": {
+ "age_max": {
+ "description": "Idade máxima",
+ "type": "integer"
+ },
+ "age_min": {
+ "description": "Idade mínima",
+ "type": "integer"
+ },
+ "cid_chapter": {
+ "description": "Capítulos CID-10 (1-22)",
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ "group_by": {
+ "description": "Dimensões para agrupamento",
+ "items": {
+ "enum": [
+ "year",
+ "uf",
+ "sex"
+ ],
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "is_csap": {
+ "description": "Filtrar apenas CSAP",
+ "type": "boolean"
+ },
+ "rate_per": {
+ "description": "Taxa por X habitantes (default: 100000)",
+ "enum": [
+ 1000,
+ 10000,
+ 100000
+ ],
+ "type": "integer"
+ },
+ "rate_type": {
+ "description": "Tipo de taxa: crude (bruta) ou specific (específica por filtro)",
+ "enum": [
+ "crude",
+ "specific"
+ ],
+ "type": "string"
+ },
+ "sex": {
+ "description": "Filtrar por sexo",
+ "enum": [
+ "M",
+ "F"
+ ],
+ "type": "string"
+ },
+ "uf": {
+ "description": "UFs para filtrar",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "year": {
+ "description": "Anos para calcular",
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "note": {
+ "description": "Presente quando nenhuma internação casou o recorte",
+ "type": "string"
+ },
+ "population_notes": {
+ "description": "Avisos sobre o denominador (faixa quinquenal antes de 2000; mistura de fontes)",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "population_source": {
+ "additionalProperties": {
+ "description": "Arquivo que serviu o ano",
+ "enum": [
+ "detailed",
+ "aggregated",
+ null
+ ]
+ },
+ "description": "Fonte da população — chave é o ano (string)",
+ "type": "object"
+ }
+ },
+ "required": [
+ "population_source",
+ "filters_applied"
+ ],
+ "type": "object"
+ },
+ "note": {
+ "description": "Como obter o dado (por exemplo, consultar get_available_years)",
+ "type": "string"
+ },
+ "notes": {
+ "description": "Avisos que qualificam os números: era CID-9, raça/cor ausente, universo do % ICSAP, denominador populacional, truncamento",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "population_years": {
+ "additionalProperties": false,
+ "description": "Cobertura dos arquivos de população por UF: o que as ferramentas de taxa aceitam",
+ "properties": {
+ "aggregated": {
+ "additionalProperties": false,
+ "description": "pop_uf_agregado.parquet — faixa etária quinquenal por UF e sexo (1991–1999)",
+ "properties": {
+ "age": {
+ "description": "Grão etário do arquivo",
+ "type": "string"
+ },
+ "age_groups": {
+ "description": "Faixas etárias quinquenais (só no arquivo agregado)",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "first_year": {
+ "description": "Primeiro ano coberto",
+ "type": "number"
+ },
+ "last_year": {
+ "description": "Último ano coberto",
+ "type": "number"
+ },
+ "source": {
+ "description": "Arquivo parquet que serve o intervalo",
+ "type": "string"
+ }
+ },
+ "required": [
+ "first_year",
+ "last_year",
+ "source",
+ "age"
+ ],
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "detailed": {
+ "additionalProperties": false,
+ "description": "pop_uf.parquet — idade simples por UF e sexo (projeções IBGE, 2000+)",
+ "properties": {
+ "age": {
+ "description": "Grão etário do arquivo",
+ "type": "string"
+ },
+ "age_groups": {
+ "description": "Faixas etárias quinquenais (só no arquivo agregado)",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "first_year": {
+ "description": "Primeiro ano coberto",
+ "type": "number"
+ },
+ "last_year": {
+ "description": "Último ano coberto",
+ "type": "number"
+ },
+ "source": {
+ "description": "Arquivo parquet que serve o intervalo",
+ "type": "string"
+ }
+ },
+ "required": [
+ "first_year",
+ "last_year",
+ "source",
+ "age"
+ ],
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "first_year": {
+ "description": "Primeiro ano com população por UF (união dos dois arquivos)",
+ "type": "number"
+ },
+ "last_year": {
+ "description": "Último ano com população por UF",
+ "type": "number"
+ }
+ },
+ "required": [
+ "first_year",
+ "last_year",
+ "detailed",
+ "aggregated"
+ ],
+ "type": "object"
+ },
+ "provenance": {
+ "description": "Um bloco por procedência que contribuiu com esta resposta (SIH, lista CSAP, csapAIH, população…); licenças nunca se fundem",
+ "items": {
+ "additionalProperties": false,
+ "description": "Bloco de proveniência (contrato v1.0): fonte, URL, competência, extração e licença",
+ "properties": {
+ "citation": {
+ "description": "Citação pronta para uso",
+ "type": "string"
+ },
+ "data_vintage": {
+ "description": "Competência ou safra do dado segundo a fonte; null quando a fonte não expõe",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "license": {
+ "description": "Regime legal do dado (id SPDX quando há)",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "retrieved_at": {
+ "description": "Instante REAL da extração na origem (ISO-8601)",
+ "type": "string"
+ },
+ "source": {
+ "description": "Fonte oficial do dado",
+ "type": "string"
+ },
+ "source_url": {
+ "description": "URL canônica que reproduz a consulta ou localiza a fonte",
+ "type": "string"
+ }
+ },
+ "required": [
+ "source",
+ "source_url",
+ "data_vintage",
+ "retrieved_at",
+ "citation",
+ "license"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "summary": {
+ "additionalProperties": false,
+ "properties": {
+ "overall_rate": {
+ "description": "Taxa do conjunto, na base `rate_per`",
+ "type": "number"
+ },
+ "rate_per": {
+ "description": "Base da taxa",
+ "type": "number"
+ },
+ "rate_type": {
+ "description": "Bruta ou específica",
+ "enum": [
+ "crude",
+ "specific"
+ ]
+ },
+ "total_hospitalizations": {
+ "description": "Internações somadas",
+ "type": "number"
+ },
+ "total_population": {
+ "description": "População somada",
+ "type": "number"
+ }
+ },
+ "required": [
+ "total_hospitalizations",
+ "total_population",
+ "overall_rate",
+ "rate_per",
+ "rate_type"
+ ],
+ "type": "object"
+ },
+ "truncated": {
+ "additionalProperties": false,
+ "description": "Presente só quando `data` foi truncado no teto de linhas; os totais em `summary` são do conjunto inteiro",
+ "properties": {
+ "returned": {
+ "description": "Linhas devolvidas (o teto)",
+ "type": "number"
+ },
+ "total": {
+ "description": "Linhas que a consulta produziu",
+ "type": "number"
+ }
+ },
+ "required": [
+ "returned",
+ "total"
+ ],
+ "type": "object"
+ },
+ "years_not_available": {
+ "additionalProperties": false,
+ "description": "Presente só quando parte dos anos pedidos não tem dado: os números cobrem apenas os anos atendidos",
+ "properties": {
+ "note": {
+ "description": "Quais anos ficaram fora e quais os números cobrem",
+ "type": "string"
+ },
+ "years": {
+ "description": "Anos pedidos que não têm dados SIH e ficaram fora do resultado",
+ "items": {
+ "type": "number"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "years",
+ "note"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "provenance",
+ "attribution"
+ ],
+ "type": "object"
+}