Patient Vital Sign Time Series

This dataset provides high-frequency, time-stamped vital sign measurements for anonymized patients, including heart rate, blood pressure, respiratory rate, oxygen saturation, body temperature, and consciousness level. Designed for health monitoring and early warning system development, it supports longitudinal patient analysis and real-time clinical decision support. Device and location metadata enable context-aware analytics and integration with hospital systems.

  • opened 22 times
  • last updated 22 Jul 2025
  • by GoMask
The brief that made it

Development of early warning systems for patient deterioration

Sample rows

preview · 8 of 200 rows · all 14 columns
patient_idstringmeasurement_locationstringoxygen_saturationfloatconsciousness_levelstringrecord_idstringtimestampdatetimeheart_ratefloatrespiratory_ratefloatsystolic_bpfloatdiastolic_bpfloatmean_arterial_pressurefloatbody_temperaturefloatdevice_idstringnotesstring
P001ICU98alertR000012024-03-07T07:23:14Z8216124819536.8DXA_ICU_01Routine morning check, patient stable and responsive.
P002ward93verbalR000022024-02-18T19:15:48Z110221449811338.5BP_WARD_11Patient reports headache; blood pressure elevated, monitoring advised.
P003home97alertR000032024-01-04T05:42:09Zblankblankblankblankblank36.9OXI_HOME_07Device error, only SpO2 and temperature recorded.
P004ER84painR000042024-04-12T13:56:35Z1313317811513639.6DXA_ER_03Severe infection suspected, patient febrile and in distress.
P005ICU100alertR000052024-03-27T09:08:21Z6514120779136.4DXA_ICU_05Post-op monitoring, patient awake and comfortable.
P006ward96alertR000062024-02-22T17:30:17Z90191368710337.1BP_WARD_02Routine vitals, patient with mild cough.
P007ICU0unresponsiveR000072024-03-03T21:12:40Z0000028DXA_ICU_09Code blue called, patient found unresponsive, resuscitation initiated.
P008ward92verbalR000082024-01-28T11:04:13Z99211429210937.7BP_WARD_14Patient alert but slightly disoriented; elevated BP noted.

What the 200 rows show

from the 200-row sample

ER (measurement location) stands out: mean oxygen_saturation is 60.5, against 95.8 for the rest.

  • 97median oxygen_saturation
  • 50patients
  • 85median heart_rate
  • 16median respiratory_rate
  • 127median systolic_bp
  • 81median diastolic_bp
Mean oxygen_saturation by measurement_location192 rows
05010095.8ICU66 rows95.1ward52 rows96.7home43 rows60.5ER31 rows
oxygen_saturation192 rows, in bands of 10
0801607000046017158050100oxygen_saturation →

Median 97, from 0 to 100.

consciousness_level200 rows · 5 values
  1. alert114
  2. verbal40
  3. pain20
  4. unresponsive15
  5. unknown11
14 columns by typefrom the column list below
  • string 6
  • float 7
  • datetime 1

Columns

14 columns in three groups
blueprint · 14 columns
columntypedescriptionexample
Text 6 columns
patient_idstringAnonymized unique identifier for each patientP001
record_idstringUnique identifier for each vital sign measurement recorduniqueR00001
consciousness_levelstringPatient's level of consciousness (e.g., alert, verbal, pain, unresponsive)alert · verbal · pain · unresponsive · unknown · optionalalert
device_idstringIdentifier for the medical device used to record the measurementoptionalDXA_ICU_01
measurement_locationstringLocation where the measurement was taken (e.g., ICU, ward, home)4 locations · optionalICU
notesstringOptional free-text notes about the measurement or patient conditionoptionalRoutine morning check, pa…
Numbers 7 columns
heart_ratefloatHeart rate in beats per minute (bpm)0 or more · optional82
respiratory_ratefloatRespiratory rate in breaths per minute0 or more · optional16
systolic_bpfloatSystolic blood pressure in mmHg0 or more · optional124
diastolic_bpfloatDiastolic blood pressure in mmHg0 or more · optional81
mean_arterial_pressurefloatMean arterial pressure in mmHg0 or more · optional95
oxygen_saturationfloatPeripheral capillary oxygen saturation (SpO2) as a percentage0 to 100 · optional98
body_temperaturefloatBody temperature in degrees Celsius25 to 45 · optional36.8
Dates and times 1 column
timestampdatetimeDate and time when the vital sign measurement was recorded2024-03-07T07:23:14Z

15 SQL practice questions for the Patient Vital Sign Time Series

Written for this data and checked against it: 12 SQL and 3 Power BI exercises from beginner to advanced. Try the first three free; the practice kit has all 15, a starter .sql file and an answer key with every expected result.

  1. 01BeginnerFreeSELECT · WHERE · ORDER BY

    ICU readings with low oxygen

    Return record_id, patient_id and oxygen_saturation for every record measured in the ICU (measurement_location = 'ICU') with an oxygen_saturation below 92. Order the rows by oxygen_saturation ascending, then record_id ascending.

    Tables: patient_vital_sign_time_series · your result: 3 columns, 3 rows
  2. 02BeginnerFreeDISTINCT · ORDER BY

    Distinct consciousness levels

    Return each distinct consciousness_level found in the data, one row per level, in a single column named consciousness_level. Order the values alphabetically.

    Tables: patient_vital_sign_time_series · your result: 1 columns, 5 rows
  3. 03BeginnerFreeGROUP BY · COUNT

    Records per location

    Count the records at each measurement_location. Return measurement_location and record_count, ordered by record_count descending, then measurement_location ascending.

    Tables: patient_vital_sign_time_series · your result: 2 columns, 4 rows
  1. 04Average heart rate by locationBeginner
  2. 05Card: average temperature of febrile recordsPower BI
  3. 06Locations with many low-oxygen recordsIntermediate
  4. 07Heart rate bandsIntermediate
  5. 08Records per monthIntermediate
  6. 09Locations hotter than the overall averageIntermediate
  7. 10Matrix: average MAP by location and consciousnessPower BI
  8. 11Rank patients by peak heart rateAdvanced
  9. 12Jumps in heart rate between readingsAdvanced
  10. 13Running count of records by monthAdvanced
  11. 14Share of critical records by locationAdvanced
  12. 15Visual: readings above a patient's own averagePower BI

Get the practice kit: the full dataset, all 15 exercises, a starter .sql and the answer key. One-time $3.99.

Get the practice kit · $3.99

Use it for

  • median oxygen …97192 rowsmean oxygen saturatio…95.8ICU95.1ward96.7home60.5ER

    A healthcare dashboard

    Oxygen_saturation by measurement_location and a breakdown of consciousness_level. Excel, Power BI or Tableau.

  • Why do the 31 ER rows have a mean oxygen_saturation of 60.5?

    A root-cause class exercise

    Hand out the rows and one question. The answer is in the data, not in the brief.

  • A software demo

    Believable patients with record_id, timestamp and heart_rate to fill a screen in front of a buyer.

Not quite right?

Make it yours.

Same 14 columns, your size and your rules. See 20 rows before you pay.

Preview 20 rows free

1,000 rows: $1.99 · 10,000: $12.99One-time. No subscription. All prices

This dataset200 rows14 columns
Yours1,000 rows14 columnsmeasurement_location: UK only

blueprint · patient-vital-sign-time-series

Behind this dataset

Same schema. As many rows as you need.

These 200 rows came out of a blueprint — 14 columns with generation rules behind each one. Open it in Data Factory to retune a column, add your own, wire in foreign keys, and run it at the size you actually need.

Rules it was built with
  • Each row captures a timestamped vital sign reading
  • Contains anonymized patient ID, heart rate, blood pressure, temperature
  • Readings sampled at regular intervals
  • Segments by hospital department
  • No personally identifiable information
Rows
Open the blueprint in Data Factory

1 credit per row. Preview 20 rows free. Buy rows for the full run.

Exports
CSV, JSON, JSONL, Parquet, SQL, Excel, TSV, XML
Licence
yours to use, including commercially
API slug
patient-vital-sign-time-series

What should your data show?

Preview 20 rows free
No signup. No card.