changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "additionalProperties": false,
+ "anyOf": [
+ {
+ "required": [
+ "data",
+ "summary",
+ "filters_applied"
+ ]
+ },
+ {
+ "required": [
+ "error"
+ ]
+ }
+ ],
+ "description": "Internações do cubo de causas, agrupadas conforme `group_by`, com totais do recorte inteiro; `error` quando 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": "Linhas agrupadas (vazio no caminho de erro-mole)",
+ "items": {
+ "additionalProperties": false,
+ "description": "Uma linha por combinação de `group_by` (só as colunas pedidas aparecem)",
+ "properties": {
+ "age": {
+ "description": "Idade em anos (group_by: age)",
+ "type": "number"
+ },
+ "cid_chapter": {
+ "description": "Capítulo da CID, 1–22 (group_by: cid_chapter)",
+ "type": "number"
+ },
+ "cid_group": {
+ "description": "Categoria CID de 3 dígitos (group_by: cid_group)",
+ "type": "string"
+ },
+ "cid_revision": {
+ "description": "Revisão da CID do diagnóstico: 9 ou 10 (group_by: cid_revision)",
+ "type": "number"
+ },
+ "csap_group": {
+ "description": "Grupo CSAP g01–g19; null quando a internação não é sensível (group_by: csap_group)",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "deaths": {
+ "description": "Óbitos; null quando o recorte não tem nenhuma linha",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "exclusion": {
+ "description": "Motivo de exclusão do universo csapAIH; null quando dentro do universo (group_by: exclusion)",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "is_csap": {
+ "description": "Internação por condição sensível à atenção primária (group_by: is_csap)",
+ "type": "boolean"
+ },
+ "month": {
+ "description": "Mês, 1–12 (group_by: month)",
+ "type": "number"
+ },
+ "n_hospitalizations": {
+ "description": "Internações; null quando o recorte não tem nenhuma linha",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "race": {
+ "description": "Raça/cor; null em 1998–2007, quando a AIH não trazia o campo (group_by: race)",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "sex": {
+ "description": "Sexo: M ou F (group_by: sex)",
+ "type": "string"
+ },
+ "total_days": {
+ "description": "Dias de permanência; null quando o recorte não tem nenhuma linha",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "total_value": {
+ "description": "Valor total pago (R$); null quando o recorte não tem nenhuma linha",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "uf": {
+ "description": "UF de residência — do estabelecimento em 1992–1997 (group_by: uf)",
+ "type": "string"
+ },
+ "year": {
+ "description": "Ano (group_by: year)",
+ "type": "number"
+ }
+ },
+ "required": [
+ "n_hospitalizations",
+ "total_days",
+ "total_value",
+ "deaths"
+ ],
+ "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"
+ },
+ "filters_applied": {
+ "additionalProperties": false,
+ "description": "Os argumentos recebidos, ecoados",
+ "properties": {
+ "age_max": {
+ "description": "Idade máxima em anos",
+ "type": "integer"
+ },
+ "age_min": {
+ "description": "Idade mínima em anos",
+ "type": "integer"
+ },
+ "cid_chapter": {
+ "description": "Capítulos CID-10 (1-22). Se omitido, todos.",
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ "group_by": {
+ "description": "Dimensões para agrupamento",
+ "items": {
+ "enum": [
+ "year",
+ "month",
+ "uf",
+ "cid_chapter",
+ "cid_revision",
+ "cid_group",
+ "sex",
+ "age",
+ "race",
+ "exclusion",
+ "is_csap",
+ "csap_group"
+ ],
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "is_csap": {
+ "description": "Filtrar apenas CSAP (true) ou não-CSAP (false)",
+ "type": "boolean"
+ },
+ "limit": {
+ "description": "Limitar número de resultados",
+ "type": "integer"
+ },
+ "month": {
+ "description": "Meses (1-12). Se omitido, todos.",
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ "race": {
+ "description": "Raça/cor (branca, preta, parda, amarela, indigena, ignorado). Só existe de 2008 em diante: em 1998–2007 race é nulo e o filtro não alcança esses anos.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "sex": {
+ "description": "Filtrar por sexo",
+ "enum": [
+ "M",
+ "F"
+ ],
+ "type": "string"
+ },
+ "uf": {
+ "description": "Lista de UFs (ex: ['SP', 'RJ']). Se omitido, todas.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "year": {
+ "description": "Anos para consultar (ex: [2023, 2024]); série de 1992 em diante",
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ }
+ },
+ "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"
+ },
+ "provenance": {
+ "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"
+ },
+ "summary": {
+ "additionalProperties": false,
+ "description": "Totais do recorte inteiro (não do trecho devolvido, quando truncado)",
+ "properties": {
+ "deaths": {
+ "description": "Óbitos",
+ "type": "number"
+ },
+ "hospital_mortality_rate": {
+ "description": "Óbitos / internações × 100, duas casas",
+ "type": "number"
+ },
+ "records_returned": {
+ "description": "Linhas em `data`",
+ "type": "number"
+ },
+ "total_days": {
+ "description": "Dias de permanência",
+ "type": "number"
+ },
+ "total_hospitalizations": {
+ "description": "Internações no recorte inteiro",
+ "type": "number"
+ },
+ "total_value": {
+ "description": "Valor pago (R$), duas casas",
+ "type": "number"
+ }
+ },
+ "required": [
+ "total_hospitalizations",
+ "total_days",
+ "total_value",
+ "deaths",
+ "hospital_mortality_rate",
+ "records_returned"
+ ],
+ "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"
+}