30 de junho de 2026

Onda de Calor de 2003 — Impacto nos Internamentos e Mortalidade Hospitalar em Portugal

por Pedro Vieira

A onda de calor de 29 de Julho a 14 de Agosto de 2003 — a de maior duração registada em Portugal desde 1941, segundo o IPMA — deixou uma marca inequívoca nos dados hospitalares do SNS: as mortes hospitalares aumentaram 35% face aos 17 dias precedentes, com quase 700 óbitos em excesso relativamente ao mesmo período de 2002. O impacto concentrou-se nos idosos com 75 ou mais anos e nas patologias directamente associadas ao calor extremo, como perturbações electrolíticas, insuficiência renal aguda e pneumonia.

Contexto

A onda de calor de 2003 foi classificada pelo IPMA como a de maior duração registada em Portugal desde 1941, com 17 dias de temperaturas extremas (29 de Julho a 14 de Agosto) em vastas áreas do interior Norte, Centro e Sul do país. Para avaliar o seu impacto nos cuidados hospitalares do SNS, comparámos os episódios de internamento e as mortes intra-hospitalares ocorridos durante a onda com os 17 dias imediatamente anteriores (12–28 de Julho de 2003) e, para controlo da sazonalidade normal, com o mesmo período calendário de 2002.

+614
Excesso de mortes hospitalares (onda vs. pré-onda)
+35,2% face aos 17 dias anteriores (1 744 → 2 358 óbitos)
5,57%
Taxa de mortalidade intra-hospitalar durante a onda
vs. 4,19% no período pré-onda (+1,38 pontos percentuais)
+679
Excesso de mortes face ao mesmo período de 2002
+19,8% acima da mortalidade esperada pela sazonalidade normal

1. Visão Geral dos Dois Períodos de 17 Dias

O número total de internamentos subiu apenas 1,7% durante a onda de calor (41 582 → 42 305 episódios), o que à primeira vista parece modesto. O sinal verdadeiramente alarmante está na mortalidade: +614 mortes hospitalares (+35%) num intervalo de apenas 17 dias. Isto indica que não foi o afluxo de novos doentes a caracterizar a crise, mas sim a gravidade acrescida dos que já estavam internados ou que acorreram ao hospital em estados de descompensação avançada.

Internamentos e mortalidade hospitalar — comparação dos dois períodos de 17 dias (2003)
PeríodoInternamentosMortes hospitalaresTaxa de mortalidade (%)
Pré-onda (12–28 Jul 2003)41 58217444,19
Onda de calor (29 Jul–14 Ago 2003)42 30523585,57
Variação absoluta723614
Variação relativa (%)1,735,2

Episódios de internamento SNS (tipo_port_apr31 = 'Int'). Mortalidade intra-hospitalar: dsp = 20.

2. Excesso face à Sazonalidade Normal (comparação com 2002)

Para distinguir o efeito da onda de calor da variação sazonal habitual de Verão, comparámos o período 29 Jul–14 Ago de 2003 com o mesmo intervalo de 2002. O total dos 34 dias (12 Jul–14 Ago) em ambos os anos mostra um excesso de 679 mortes hospitalares em 2003 face a 2002, correspondendo a +19,8% acima do esperado.

Comparação do mesmo período (12 Jul – 14 Ago) em 2002 e 2003
AnoInternamentosMortes hospitalaresTaxa de mortalidade (%)
200279 76434234,29
200383 88741024,89
Excesso 2003 vs 20024123679

Mesmo intervalo calendário (12 Jul–14 Ago) em anos consecutivos. Fonte: BDMH/ACSS.

3. Impacto por Faixa Etária

A análise por grupo etário revela um padrão inequívoco: quanto mais idoso, maior o excesso de mortalidade. Os grupos com 65 anos ou mais foram os mais gravemente afectados, com a faixa dos 85+ a registar uma taxa de mortalidade intra-hospitalar de 23%, contra 19% no período anterior. As crianças com menos de 1 ano também apresentam um sinal preocupante, embora com números absolutos menores.

Taxa de mortalidade intra-hospitalar por faixa etária — pré-onda vs. onda de calor (2003)

Internamentos SNS 2003. Episódios com idade 0–110 anos. Mortalidade intra-hospitalar (dsp=20).

Mortalidade hospitalar por faixa etária — detalhe
Faixa etáriaIntern. pré-ondaMortes pré-ondaTaxa pré (%)Intern. onda calorMortes onda calorTaxa onda (%)Var. mortes (%)
< 1 ano505490,185286220,42144,4
1–14 anos264660,23277330,11-50
15–44 anos12 4001140,9212 5091230,987,9
45–64 anos82182953,5978303344,2713,2
65–74 anos61003906,3958625168,832,3
75–84 anos533758310,92567381314,3339,5
85+ anos182734718,99237054623,0457,4

A faixa 1–14 anos é a única com redução, com números absolutos muito pequenos.

4. Causas com Maior Excesso de Internamentos

A análise por causa (classificação CCS/AHRQ, harmonizada para ICD-9) identifica as patologias com crescimento mais anómalo durante a onda de calor face ao período anterior. As perturbações de fluidos e electrólitos e a insuficiência renal aguda destacam-se como os indicadores mais directos do impacto fisiológico do calor extremo.

Causas com maior aumento de internamentos durante a onda de calor (variação % face à pré-onda)

Causas com ≥ 20 episódios em ambos os períodos. Classificação CCS/AHRQ. BDMH 2003.

Top causas — internamentos e mortalidade nos dois períodos (2003)
Causa (CCS)Intern. pré-ondaIntern. onda calorVar. intern. (%)Mortes pré-ondaMortes onda calorVar. mortes (%)
Perturbações fluidos/electrólitos160399149,41350284,6
Insuficiência renal aguda751711281023130
Febre de origem desconhecida29849465,82768151,9
Septicemia8813755,72967131
Bronquite aguda13920849,61228133,3
Outras doenças respiratórias inf.4586554366151128,8
Pneumonia966135039,819635983,2
Infecções urinárias50368536,22146119
Gastroenterite não infecciosa24133036,9<514

Causas com ≥ 20 episódios em ambos os períodos. Mortalidade intra-hospitalar (dsp=20).

5. Comparação com o Mesmo Período de 2002 (excesso anómalo)

Para confirmar que os aumentos acima não são mero reflexo da sazonalidade estival, a tabela seguinte compara a onda de calor de 2003 com o mesmo intervalo calendário de 2002. As causas directamente ligadas ao calor extremo destacam-se com clareza: as perturbações de fluidos/electrólitos aumentaram +185% e a insuficiência renal aguda +97% face a 2002, valores muito acima de qualquer variação sazonal normal.

Excesso anómalo: período da onda de calor 2003 vs. mesmo período de 2002
Causa (CCS)Internamentos 2002Internamentos 2003Var. intern. (%)Mortes 2002Mortes 2003Var. mortes (%)
Perturbações fluidos/electrólitos1403991851850177,8
Insuficiência renal aguda8717196,6142364,3
Bronquite aguda11020889,11028180
Septicemia8513761,2366786,1
Queimaduras7912760,8<56
Pneumonia855135057,9161359123
Outras doenças respiratórias inf.41765557,160151151,7
Febre de origem desconhecida34249444,42968134,5

Período: 29 Jul – 14 Ago em ambos os anos. Fonte: BDMH/ACSS.

6. Golpe de Calor e Patologia Directa — Códigos ICD-9

A BDMH regista episódios codificados explicitamente com patologia pelo calor (família ICD-9 992.x) e distúrbios hidroelectrolíticos associados (276.x). O golpe de calor directo (992.0) aparece sub-notificado — apenas 17 episódios durante a onda —, o que é consistente com a prática clínica internacional: o calor extremo mata sobretudo como amplificador de patologias preexistentes, sendo codificado o diagnóstico principal da descompensação e não o agente ambiental.

O indicador mais revelador é a deplecção de volume (desidratação, código 276.5): triplicou durante a onda de calor (99 → 313 episódios, +216%), com as mortes a quintuplicar (9 → 48).

Códigos ICD-9 directos de patologia pelo calor e distúrbios hidroelectrolíticos
Código ICD-9DescriçãoEpisódios pré-ondaEpisódios onda calorMortes pré-ondaMortes onda calor
992.0Golpe de calor e insolação0170<5
276.5Deplecção de volume (desidratação)99313948
276.0Hiperosmolaridade / hipernatremia714<50
276.8Hipocalemia91900
276.1Hiposmolaridade / hiponatremia3427<5<5

Episódios de internamento SNS 2003. ICD-9-CM. O golpe de calor directo está sub-notificado como diagnóstico principal.

7. Causas de Internamento que Tipicamente Aumentam numa Onda de Calor

Com base na evidência científica e confirmadas pelos dados acima, as causas de internamento que aumentam sistematicamente durante ondas de calor agrupam-se em três níveis de causalidade:

Directamente causadas pelo calor:

  • Golpe de calor e insolação (hipertermia ≥ 40 °C com disfunção do sistema nervoso central)
  • Exaustão pelo calor (desidratação com temperatura corporal normal)
  • Deplecção de volume / desidratação (especialmente em idosos, crianças e doentes polimedicados)
  • Perturbações electrolíticas (hipernatremia, hipocalemia)

Agravadas ou precipitadas pelo calor (causas indirectas):

  • Insuficiência renal aguda (rabdomiólise + desidratação + vasoconstrição renal)
  • Pneumonia e doenças respiratórias inferiores (ar quente e seco + imunodepressão por hipertermia; idosos acamados aspiram)
  • Insuficiência cardíaca descompensada (vasodilatação periférica + taquicardia + aumento do consumo de oxigénio)
  • Acidente vascular cerebral isquémico (hemoconcentração + hipercoagulabilidade)
  • Diabetes descompensada (desidratação eleva a glicemia; cetoacidose)
  • Infecções urinárias (desidratação concentra a urina, facilitando a multiplicação bacteriana)
  • Septicemia (progressão de infecções respiratórias e urinárias mal controladas)
  • Gastroenterite (contaminação alimentar facilitada pelas altas temperaturas)

Com sinal nos dados mas de interpretação mais cautelosa:

  • Queimaduras (incêndios florestais associados a vagas de calor; actividade ao ar livre)
  • Perturbações psiquiátricas (alguns psicofármacos — antipsicóticos, anticolinérgicos — perturbam a termorregulação)
  • Febre de etiologia indeterminada (muitos golpes de calor entram com este diagnóstico, por sub-codificação)

Síntese

A onda de calor de 2003 deixou uma marca inequívoca e quantificável nos dados hospitalares do SNS português. O sinal não reside principalmente no volume de internamentos (+1,7%), mas na mortalidade hospitalar, que aumentou 35% nos 17 dias da onda face aos 17 dias anteriores, e em quase 20% face ao mesmo período de 2002. As causas mais sobrerepresentadas — perturbações electrolíticas (+149%), insuficiência renal aguda (+128%), pneumonia (+40%) e febre de origem desconhecida (+66%) — são todas fisiopatologicamente compatíveis com o calor extremo prolongado. Os grupos mais vulneráveis foram os idosos com 75 ou mais anos, com taxas de mortalidade intra-hospitalar que atingiram os 14–23% durante a onda, e os recém-nascidos, cujo risco de morte hospitalar mais do que duplicou.

Metodologia

Fonte de dados: Base de Dados de Morbilidade Hospitalar (BDMH), ACSS — episódios de internamento de hospitais do SNS, ano 2003 (comparação com 2002 para análise de excesso sazonal).

Linha de produção: Apenas internamentos (tipo_port_apr31 = 'Int'). Excluídos episódios de cirurgia ambulatória e ambulatório médico.

Períodos analisados:

  • Pré-onda: 12 a 28 de Julho de 2003 (17 dias)
  • Onda de calor: 29 de Julho a 14 de Agosto de 2003 (17 dias, conforme delimitação IPMA)
  • Controlo sazonal: mesmo intervalo (12 Jul–14 Ago) em 2002

Mortalidade: Definida como alta com dsp = 20 (falecido). Mortalidade intra-hospitalar, não mortalidade a 30 dias.

Classificação de causas: Sistema CCS/AHRQ (Clinical Classifications Software), que harmoniza códigos ICD-9-CM e ICD-10-CM numa taxonomia única de ~283 categorias. Todos os episódios de 2003 utilizam ICD-9-CM (icd_versao = '9'). A causa principal é o diagnóstico principal do episódio (campo d1).

Códigos directos de patologia pelo calor: família ICD-9 992.x (efeitos do calor e da luz) e 276.x (perturbações de fluidos e electrólitos), analisados separadamente.

Supressão de células: células com n < 5 apresentadas como '<5'.

Nota sobre sub-notificação: O golpe de calor directo (992.0) aparece sub-notificado como diagnóstico principal, fenómeno consistente com a literatura internacional — o calor actua frequentemente como precipitante de patologias preexistentes, sendo codificada a descompensação clínica e não o agente ambiental.

Reprodutibilidade: consultas SQL utilizadas (6)

Episódios de internamento e mortes hospitalares nos dois períodos de 17 dias (2003)

SELECT periodo, COUNT(*) AS episodios, SUM(CASE WHEN dsp = 20 THEN 1 ELSE 0 END) AS mortes, ROUND(SUM(CASE WHEN dsp = 20 THEN 1 ELSE 0 END) * 100.0 / COUNT(*), 2) AS pct_mortalidade FROM (SELECT *, CASE WHEN data_entrada BETWEEN '2003-07-12' AND '2003-07-28' THEN 'pre_onda' WHEN data_entrada BETWEEN '2003-07-29' AND '2003-08-14' THEN 'onda_calor' END AS periodo FROM episodes WHERE ano = 2003 AND tipo_port_apr31 = 'Int' AND data_entrada BETWEEN '2003-07-12' AND '2003-08-14') t WHERE periodo IS NOT NULL GROUP BY periodo ORDER BY periodo DESC

Comparação dos mesmos 34 dias em 2002 vs 2003

SELECT ano, COUNT(*) AS episodios, SUM(CASE WHEN dsp = 20 THEN 1 ELSE 0 END) AS mortes, ROUND(SUM(CASE WHEN dsp = 20 THEN 1 ELSE 0 END) * 100.0 / COUNT(*), 2) AS pct_mort FROM episodes WHERE tipo_port_apr31 = 'Int' AND ((ano = 2002 AND data_entrada BETWEEN '2002-07-12' AND '2002-08-14') OR (ano = 2003 AND data_entrada BETWEEN '2003-07-12' AND '2003-08-14')) GROUP BY ano ORDER BY ano

Mortalidade por faixa etária nos dois períodos de 2003

SELECT periodo, CASE WHEN idade < 1 THEN '< 1 ano' WHEN idade BETWEEN 1 AND 14 THEN '1-14' WHEN idade BETWEEN 15 AND 44 THEN '15-44' WHEN idade BETWEEN 45 AND 64 THEN '45-64' WHEN idade BETWEEN 65 AND 74 THEN '65-74' WHEN idade BETWEEN 75 AND 84 THEN '75-84' WHEN idade >= 85 THEN '85+' END AS faixa, COUNT(*) AS episodios, SUM(CASE WHEN dsp = 20 THEN 1 ELSE 0 END) AS mortes, ROUND(SUM(CASE WHEN dsp = 20 THEN 1 ELSE 0 END) * 100.0 / COUNT(*), 2) AS pct_mort FROM (SELECT *, CASE WHEN data_entrada BETWEEN '2003-07-12' AND '2003-07-28' THEN 'Pré-onda' WHEN data_entrada BETWEEN '2003-07-29' AND '2003-08-14' THEN 'Onda de calor' END AS periodo FROM episodes WHERE ano = 2003 AND tipo_port_apr31 = 'Int' AND data_entrada BETWEEN '2003-07-12' AND '2003-08-14' AND idade BETWEEN 0 AND 110) t WHERE periodo IS NOT NULL GROUP BY periodo, faixa ORDER BY faixa

Variação relativa por causa CCS entre pré-onda e onda de calor (2003)

WITH base AS (SELECT e.icd_versao, e.d1, CASE WHEN e.data_entrada BETWEEN '2003-07-12' AND '2003-07-28' THEN 'pre_onda' WHEN e.data_entrada BETWEEN '2003-07-29' AND '2003-08-14' THEN 'onda_calor' END AS periodo, e.dsp FROM episodes e WHERE e.ano = 2003 AND e.tipo_port_apr31 = 'Int' AND e.data_entrada BETWEEN '2003-07-12' AND '2003-08-14'), com_ccs AS (SELECT b.periodo, c.ccs_descricao, c.ccs_sistema, COUNT(*) AS n, SUM(CASE WHEN b.dsp = 20 THEN 1 ELSE 0 END) AS mortes FROM base b JOIN ccs c ON c.icd_versao = b.icd_versao AND c.codigo = b.d1 WHERE b.periodo IS NOT NULL GROUP BY b.periodo, c.ccs_descricao, c.ccs_sistema), pivoted AS (SELECT ccs_descricao, ccs_sistema, MAX(CASE WHEN periodo = 'pre_onda' THEN n ELSE 0 END) AS n_pre, MAX(CASE WHEN periodo = 'onda_calor' THEN n ELSE 0 END) AS n_onda, MAX(CASE WHEN periodo = 'pre_onda' THEN mortes ELSE 0 END) AS mortes_pre, MAX(CASE WHEN periodo = 'onda_calor' THEN mortes ELSE 0 END) AS mortes_onda FROM com_ccs GROUP BY ccs_descricao, ccs_sistema) SELECT *, ROUND((n_onda - n_pre) * 100.0 / NULLIF(n_pre, 0), 1) AS var_pct_episodios, ROUND((mortes_onda - mortes_pre) * 100.0 / NULLIF(mortes_pre, 0), 1) AS var_pct_mortes FROM pivoted WHERE n_pre >= 20 AND n_onda >= 20 ORDER BY var_pct_episodios DESC LIMIT 40

Comparação período da onda 2003 vs mesmo período 2002 por causa CCS

WITH base AS (SELECT e.icd_versao, e.d1, e.dsp, e.ano FROM episodes e WHERE e.tipo_port_apr31 = 'Int' AND ((e.ano = 2002 AND e.data_entrada BETWEEN '2002-07-29' AND '2002-08-14') OR (e.ano = 2003 AND e.data_entrada BETWEEN '2003-07-29' AND '2003-08-14'))), com_ccs AS (SELECT b.ano, c.ccs_descricao, COUNT(*) AS n, SUM(CASE WHEN b.dsp = 20 THEN 1 ELSE 0 END) AS mortes FROM base b JOIN ccs c ON c.icd_versao = b.icd_versao AND c.codigo = b.d1 GROUP BY b.ano, c.ccs_descricao), pivoted AS (SELECT ccs_descricao, MAX(CASE WHEN ano = 2002 THEN n ELSE 0 END) AS n_2002, MAX(CASE WHEN ano = 2003 THEN n ELSE 0 END) AS n_2003, MAX(CASE WHEN ano = 2002 THEN mortes ELSE 0 END) AS mortes_2002, MAX(CASE WHEN ano = 2003 THEN mortes ELSE 0 END) AS mortes_2003 FROM com_ccs GROUP BY ccs_descricao) SELECT *, ROUND((n_2003 - n_2002) * 100.0 / NULLIF(n_2002, 0), 1) AS var_pct_intern, ROUND((mortes_2003 - mortes_2002) * 100.0 / NULLIF(mortes_2002, 0), 1) AS var_pct_mortes FROM pivoted WHERE n_2002 >= 15 AND n_2003 >= 15 ORDER BY var_pct_intern DESC LIMIT 30

Episódios com códigos ICD-9 directos de patologia pelo calor e distúrbios hidroelectrolíticos

SELECT periodo, d1, COUNT(*) AS n, SUM(CASE WHEN dsp = 20 THEN 1 ELSE 0 END) AS mortes FROM (SELECT e.d1, e.dsp, CASE WHEN e.data_entrada BETWEEN '2003-07-12' AND '2003-07-28' THEN 'pre_onda' WHEN e.data_entrada BETWEEN '2003-07-29' AND '2003-08-14' THEN 'onda_calor' END AS periodo FROM episodes e WHERE e.ano = 2003 AND e.tipo_port_apr31 = 'Int' AND e.icd_versao = '9' AND (e.d1 LIKE '992%' OR e.d1 LIKE '2765' OR e.d1 LIKE '276%')) t WHERE periodo IS NOT NULL GROUP BY periodo, d1 ORDER BY periodo DESC, n DESC

O jornalismo independente (só) depende dos leitores.

Não dependemos de grupos económicos nem do Estado. Não fazemos fretes. Fazemos jornalismo para os leitores, mas só sobreviveremos com o seu apoio financeiro.