News2Panel
NEWS2 from the latest Observations, with the clinical risk band and the response it calls for.
Rule it enforces: NEWS2 is scored only from a complete, current set; otherwise it says which parameter is missing. Never from a guessed value.
Install
npx shadcn@latest add https://raw.githubusercontent.com/Henrycarto/wardkit/main/public/r/news2-panel.jsonUsage
import { News2Panel } from '@/components/wardkit/news2-panel';
<News2Panel observations={latest} now={new Date()} maxAgeMinutes={60} />Examples
Bed 3 at 01:00: score 17, high risk
Three parameters score 3 on their own.
NEWS2
SpO₂ scale 1
Score 17High clinical risk
Score of 3 in a single parameter: Respiration rate, SpO₂, Consciousness.
Emergency response: immediate assessment by a team with critical care skills, usually transfer to a higher level of care.
Continuous monitoring of vital signs.
| Parameter | Value used | Points |
|---|---|---|
| Respiration rate | 28 /min at 01:00 | 3 (red) |
| SpO₂ | 91 % at 01:00 | 3 (red) |
| Air or oxygen | Oxygen at 01:00 | 2 |
| Systolic BP | 94 mmHg at 01:00 | 2 |
| Pulse | 124 /min at 01:00 | 2 |
| Consciousness | Confused (scored as new confusion) at 01:00 | 3 (red) |
| Temperature | 39.4 °C at 01:00 | 2 |
No air or oxygen record: incomplete
The same normal set with the oxygen flow Observation removed. Room air is not assumed.
NEWS2
SpO₂ scale 1
Incomplete: no score
Missing: Air or oxygen. NEWS2 is not calculated from a partial set or a guessed value.
| Parameter | Value used | Points |
|---|---|---|
| Respiration rate | 16 /min at 06:00 | 0 |
| SpO₂ | 97 % at 06:00 | 0 |
| Air or oxygen | Missing. No air or oxygen record (room air is not assumed) | none |
| Systolic BP | 125 mmHg at 06:00 | 0 |
| Pulse | 72 /min at 06:00 | 0 |
| Consciousness | Alert at 06:00 | 0 |
| Temperature | 36.8 °C at 06:00 | 0 |
Stale readings: incomplete
The normal set, scored at 07:30 with a 60 minute window.
NEWS2
SpO₂ scale 1
Incomplete: no score
Missing: Respiration rate, SpO₂, Air or oxygen, Systolic BP, Pulse, Consciousness, Temperature. NEWS2 is not calculated from a partial set or a guessed value.
| Parameter | Value used | Points |
|---|---|---|
| Respiration rate | Missing. Stale: last recorded 90 min ago (limit 60 min) | none |
| SpO₂ | Missing. Stale: last recorded 90 min ago (limit 60 min) | none |
| Air or oxygen | Missing. Stale: last recorded 90 min ago (limit 60 min) | none |
| Systolic BP | Missing. Stale: last recorded 90 min ago (limit 60 min) | none |
| Pulse | Missing. Stale: last recorded 90 min ago (limit 60 min) | none |
| Consciousness | Missing. Stale: last recorded 90 min ago (limit 60 min) | none |
| Temperature | Missing. Stale: last recorded 90 min ago (limit 60 min) | none |
A rounded value is shown with what was recorded
Respiration rate 11.5 is scored as 12 (0 points); 11 would score 1.
NEWS2
SpO₂ scale 1
Score 0Low clinical risk
Continue routine monitoring.
Observations at least every 12 hours.
| Parameter | Value used | Points |
|---|---|---|
| Respiration rate | 12 /min (recorded 11.5) at 06:00 | 0 |
| SpO₂ | 97 % at 06:00 | 0 |
| Air or oxygen | Air at 06:00 | 0 |
| Systolic BP | 125 mmHg at 06:00 | 0 |
| Pulse | 72 /min at 06:00 | 0 |
| Consciousness | Alert at 06:00 | 0 |
| Temperature | 36.8 °C at 06:00 | 0 |
COPD at target on SpO₂ scale 2
Scale 2 is turned on by the caller. On scale 1 the same readings score 5.
NEWS2
SpO₂ scale 2, prescribed target 88 to 92%
Score 2Low clinical risk
Inform the nurse in charge, who decides whether to increase monitoring or escalate.
Observations at least every 4 to 6 hours.
| Parameter | Value used | Points |
|---|---|---|
| Respiration rate | 19 /min at 06:00 | 0 |
| SpO₂ | 90 % at 06:00 | 0 |
| Air or oxygen | Oxygen at 06:00 | 2 |
| Systolic BP | 134 mmHg at 06:00 | 0 |
| Pulse | 84 /min at 06:00 | 0 |
| Consciousness | Alert at 06:00 | 0 |
| Temperature | 36.8 °C at 06:00 | 0 |
Props
| Prop | Type | Description |
|---|---|---|
| observations | Observation[] | Recent Observations for one patient. Only the codes listed below are read. Required. |
| now | Date | string | The time the score is for. Required. |
| maxAgeMinutes | number | How old a reading may be and still count. Required. |
| spo2Scale? | 1 | 2 | SpO2 scale 2 only when a clinician has prescribed it. Default 1. |
| timeZone? | string | IANA time zone for displayed times, e.g. "Europe/Vienna". Defaults to the runtime zone; pass it when rendering on a server. |
| className? | string | Extra classes for the outer element. |
Clinical rules and sources
- Points per parameter and the aggregate follow the RCP NEWS2 chart (2017): 0 is low, 1 to 4 low, 5 to 6 medium, 7 or more high clinical risk.Source: Royal College of Physicians, National Early Warning Score (NEWS) 2, 2017
- A score of 3 in any single parameter sets the risk to at least low-medium (urgent ward-based response). The panel names the parameter.Source: Royal College of Physicians, National Early Warning Score (NEWS) 2, 2017
- SpO2 scale 2 is used only when the caller turns it on. On scale 2, saturations above 92% score only when on oxygen.Source: Royal College of Physicians, National Early Warning Score (NEWS) 2, 2017
- Each parameter uses its most recent reading. If that reading has a dataAbsentReason, is older than maxAgeMinutes, is timed after now, has a comparator or an unsupported unit, the parameter is missing and there is no total. An older value never stands in for a newer failed one.Source: Royal College of Physicians, National Early Warning Score (NEWS) 2, 2017; FHIR R4: DataAbsentReason
- Any supplemental oxygen scores 2 (RCP). wardkit convention: air or oxygen must be recorded; there is no default to room air, so without a record the score is incomplete.Source: Royal College of Physicians, National Early Warning Score (NEWS) 2, 2017
- wardkit convention, not an RCP rule: the chart bands are whole numbers (one decimal for temperature), so respiration rate, SpO2, systolic pressure and pulse are rounded half up to whole numbers and temperature to one decimal. When a value was rounded, the panel shows the recorded value next to the one used, for example "12 /min (recorded 11.5)".
LOINC codes read
Each code was checked against LOINC 2.82 (all active) through the HL7 terminology server, and the vital sign codes against the FHIR R4 vital signs profiles. Observations with other codes are ignored.
| Code | Meaning | Used for |
|---|---|---|
| 9279-1 | Respiratory rate | Respiration rate. Units /min, {breaths}/min |
| 2708-6 | Oxygen saturation in Arterial blood | SpO₂. Unit % |
| 59408-5 | Oxygen saturation in Arterial blood by Pulse oximetry | SpO₂, accepted as well |
| 85354-9 | Blood pressure panel with all children optional | Systolic read from its 8480-6 component |
| 8480-6 | Systolic blood pressure | Systolic BP, standalone or as a component. Unit mm[Hg] |
| 8867-4 | Heart rate | Pulse. Units /min, {beats}/min |
| 8310-5 | Body temperature | Temperature. Units Cel, [degF] (converted) |
| 67775-7 | Level of responsiveness | Consciousness, AVPU answers (LL1845-8) |
| 80288-4 | Level of consciousness | Consciousness, answers LL3828-2 including Confused |
| 3151-8 | Inhaled oxygen flow rate | Air (0 L/min) or oxygen (more than 0) |
| 3150-0 | Inhaled oxygen concentration | Air (21%) or oxygen (more than 21%) |
| 88658-0 | Use of supplemental oxygen | Oxygen (any answer in LL4908-1) |
| Code | Meaning | Used for |
|---|---|---|
| LA9340-6 | Alert | 0 points |
| LA6560-2 | Confused | 3 points, labelled "scored as new confusion" |
| LA17108-4 | Verbal | 3 points |
| LA17107-6 | Painful | 3 points |
| LA9343-0 | Unresponsive | 3 points |
| LA25161-3 | Lethargic | 3 points |
| LA25162-1 | Obtunded | 3 points |
| LA25163-9 | Stuporous | 3 points |
LOINC has no ACVPU answer list. LA6560-2 says Confused, not new confusion; it is scored 3 as new confusion and labelled so on the panel, because scoring it 0 could hide a deterioration.