Files
vigilcare-clinical/VigilCare.Simulator/Scenarios/List/medication-false-alarm-01.json
T

617 lines
19 KiB
JSON

{
"scenario": {
"id": "medication-false-alarm-01",
"name": "Medication-Induced False Alarm (Stable Patient on Beta-Blocker)",
"description": "45-year-old female on metoprolol (beta-blocker) with baseline low HR (~52 bpm) and controlled hypertension. Vitals fluctuate near warning thresholds but patient never truly deteriorates. Tests the system's alert behavior near boundaries and alert-fatigue patterns.",
"durationMinutes": 180,
"tags": ["false-alarm", "beta-blocker", "bradycardia", "boundary-testing", "alert-fatigue", "stable"]
},
"patient": {
"firstName": "Sandra",
"lastName": "Kowalski",
"dateOfBirth": "1981-03-14",
"gender": "Female"
},
"encounter": {
"department": "GeneralMedicine",
"encounterType": "Inpatient",
"attendingPhysician": "Dr. Helen Tranh",
"roomBed": "GM-214A",
"admissionReason": "Observation for controlled hypertension, medication titration"
},
"events": [
{
"offsetMinutes": 0,
"type": "observation",
"data": { "code": "HEART_RATE", "value": 54, "unit": "bpm", "source": "Device" },
"note": "Baseline vitals — patient on scheduled metoprolol, resting comfortably. NEWS2=0"
},
{
"offsetMinutes": 0,
"type": "observation",
"data": { "code": "RESP_RATE", "value": 14, "unit": "/min", "source": "Device" }
},
{
"offsetMinutes": 0,
"type": "observation",
"data": { "code": "SYSTOLIC_BP", "value": 136, "unit": "mmHg", "source": "Device" }
},
{
"offsetMinutes": 0,
"type": "observation",
"data": { "code": "DIASTOLIC_BP", "value": 78, "unit": "mmHg", "source": "Device" }
},
{
"offsetMinutes": 0,
"type": "observation",
"data": { "code": "TEMP_C", "value": 36.9, "unit": "°C", "source": "Manual" }
},
{
"offsetMinutes": 0,
"type": "observation",
"data": { "code": "SPO2", "value": 98, "unit": "%", "source": "Device" }
},
{
"offsetMinutes": 0,
"type": "observation",
"data": { "code": "AVPU", "value": 0, "unit": "score", "source": "Manual" }
},
{
"offsetMinutes": 0,
"type": "observation",
"data": { "code": "GCS_EYE", "value": 4, "unit": "score", "source": "Manual" }
},
{
"offsetMinutes": 0,
"type": "observation",
"data": { "code": "GCS_VERBAL", "value": 5, "unit": "score", "source": "Manual" }
},
{
"offsetMinutes": 0,
"type": "observation",
"data": { "code": "GCS_MOTOR", "value": 6, "unit": "score", "source": "Manual" }
},
{
"offsetMinutes": 0,
"type": "medication",
"data": {
"drugName": "metoprolol tartrate",
"dose": 25,
"doseUnit": "mg",
"route": "PO",
"administeredBy": "nurse-rn-12"
},
"note": "Scheduled beta-blocker dose — expected to maintain low HR"
},
{
"offsetMinutes": 15,
"type": "observation",
"data": { "code": "HEART_RATE", "value": 50, "unit": "bpm", "source": "Device" },
"note": "HR dips to lower boundary of warning range (41-50) post-dose. NEWS2=1 (HR=1)"
},
{
"offsetMinutes": 15,
"type": "observation",
"data": { "code": "RESP_RATE", "value": 15, "unit": "/min", "source": "Device" }
},
{
"offsetMinutes": 15,
"type": "observation",
"data": { "code": "SYSTOLIC_BP", "value": 134, "unit": "mmHg", "source": "Device" }
},
{
"offsetMinutes": 15,
"type": "observation",
"data": { "code": "DIASTOLIC_BP", "value": 76, "unit": "mmHg", "source": "Device" }
},
{
"offsetMinutes": 15,
"type": "observation",
"data": { "code": "TEMP_C", "value": 36.8, "unit": "°C", "source": "Manual" }
},
{
"offsetMinutes": 15,
"type": "observation",
"data": { "code": "SPO2", "value": 98, "unit": "%", "source": "Device" }
},
{
"offsetMinutes": 15,
"type": "observation",
"data": { "code": "AVPU", "value": 0, "unit": "score", "source": "Manual" }
},
{
"offsetMinutes": 30,
"type": "observation",
"data": { "code": "HEART_RATE", "value": 49, "unit": "bpm", "source": "Device" },
"note": "HR remains in warning range — metoprolol peak effect. NEWS2=1 (HR=1)"
},
{
"offsetMinutes": 30,
"type": "observation",
"data": { "code": "RESP_RATE", "value": 14, "unit": "/min", "source": "Device" }
},
{
"offsetMinutes": 30,
"type": "observation",
"data": { "code": "SYSTOLIC_BP", "value": 132, "unit": "mmHg", "source": "Device" }
},
{
"offsetMinutes": 30,
"type": "observation",
"data": { "code": "DIASTOLIC_BP", "value": 75, "unit": "mmHg", "source": "Device" }
},
{
"offsetMinutes": 30,
"type": "observation",
"data": { "code": "TEMP_C", "value": 37.0, "unit": "°C", "source": "Manual" }
},
{
"offsetMinutes": 30,
"type": "observation",
"data": { "code": "SPO2", "value": 97, "unit": "%", "source": "Device" }
},
{
"offsetMinutes": 30,
"type": "observation",
"data": { "code": "AVPU", "value": 0, "unit": "score", "source": "Manual" }
},
{
"offsetMinutes": 45,
"type": "observation",
"data": { "code": "HEART_RATE", "value": 52, "unit": "bpm", "source": "Device" },
"note": "HR recovers to normal range (51-90). NEWS2=0"
},
{
"offsetMinutes": 45,
"type": "observation",
"data": { "code": "RESP_RATE", "value": 15, "unit": "/min", "source": "Device" }
},
{
"offsetMinutes": 45,
"type": "observation",
"data": { "code": "SYSTOLIC_BP", "value": 130, "unit": "mmHg", "source": "Device" }
},
{
"offsetMinutes": 45,
"type": "observation",
"data": { "code": "DIASTOLIC_BP", "value": 74, "unit": "mmHg", "source": "Device" }
},
{
"offsetMinutes": 45,
"type": "observation",
"data": { "code": "TEMP_C", "value": 36.9, "unit": "°C", "source": "Manual" }
},
{
"offsetMinutes": 45,
"type": "observation",
"data": { "code": "SPO2", "value": 98, "unit": "%", "source": "Device" }
},
{
"offsetMinutes": 45,
"type": "observation",
"data": { "code": "AVPU", "value": 0, "unit": "score", "source": "Manual" }
},
{
"offsetMinutes": 60,
"type": "observation",
"data": { "code": "HEART_RATE", "value": 51, "unit": "bpm", "source": "Device" },
"note": "Routine check — all within normal limits. NEWS2=0"
},
{
"offsetMinutes": 60,
"type": "observation",
"data": { "code": "RESP_RATE", "value": 14, "unit": "/min", "source": "Device" }
},
{
"offsetMinutes": 60,
"type": "observation",
"data": { "code": "SYSTOLIC_BP", "value": 133, "unit": "mmHg", "source": "Device" }
},
{
"offsetMinutes": 60,
"type": "observation",
"data": { "code": "DIASTOLIC_BP", "value": 76, "unit": "mmHg", "source": "Device" }
},
{
"offsetMinutes": 60,
"type": "observation",
"data": { "code": "TEMP_C", "value": 37.0, "unit": "°C", "source": "Manual" }
},
{
"offsetMinutes": 60,
"type": "observation",
"data": { "code": "SPO2", "value": 97, "unit": "%", "source": "Device" }
},
{
"offsetMinutes": 60,
"type": "observation",
"data": { "code": "AVPU", "value": 0, "unit": "score", "source": "Manual" }
},
{
"offsetMinutes": 75,
"type": "observation",
"data": { "code": "HEART_RATE", "value": 48, "unit": "bpm", "source": "Device" },
"note": "HR dips again after position change — back into warning range. NEWS2=1 (HR=1)"
},
{
"offsetMinutes": 75,
"type": "observation",
"data": { "code": "RESP_RATE", "value": 16, "unit": "/min", "source": "Device" }
},
{
"offsetMinutes": 75,
"type": "observation",
"data": { "code": "SYSTOLIC_BP", "value": 128, "unit": "mmHg", "source": "Device" }
},
{
"offsetMinutes": 75,
"type": "observation",
"data": { "code": "DIASTOLIC_BP", "value": 73, "unit": "mmHg", "source": "Device" }
},
{
"offsetMinutes": 75,
"type": "observation",
"data": { "code": "TEMP_C", "value": 36.8, "unit": "°C", "source": "Manual" }
},
{
"offsetMinutes": 75,
"type": "observation",
"data": { "code": "SPO2", "value": 98, "unit": "%", "source": "Device" }
},
{
"offsetMinutes": 75,
"type": "observation",
"data": { "code": "AVPU", "value": 0, "unit": "score", "source": "Manual" }
},
{
"offsetMinutes": 90,
"type": "observation",
"data": { "code": "HEART_RATE", "value": 53, "unit": "bpm", "source": "Device" },
"note": "HR recovers again — normal range. NEWS2=0"
},
{
"offsetMinutes": 90,
"type": "observation",
"data": { "code": "RESP_RATE", "value": 15, "unit": "/min", "source": "Device" }
},
{
"offsetMinutes": 90,
"type": "observation",
"data": { "code": "SYSTOLIC_BP", "value": 131, "unit": "mmHg", "source": "Device" }
},
{
"offsetMinutes": 90,
"type": "observation",
"data": { "code": "DIASTOLIC_BP", "value": 75, "unit": "mmHg", "source": "Device" }
},
{
"offsetMinutes": 90,
"type": "observation",
"data": { "code": "TEMP_C", "value": 37.0, "unit": "°C", "source": "Manual" }
},
{
"offsetMinutes": 90,
"type": "observation",
"data": { "code": "SPO2", "value": 97, "unit": "%", "source": "Device" }
},
{
"offsetMinutes": 90,
"type": "observation",
"data": { "code": "AVPU", "value": 0, "unit": "score", "source": "Manual" }
},
{
"offsetMinutes": 105,
"type": "observation",
"data": { "code": "HEART_RATE", "value": 55, "unit": "bpm", "source": "Device" },
"note": "Stable — metoprolol wearing off slightly before next dose. NEWS2=0"
},
{
"offsetMinutes": 105,
"type": "observation",
"data": { "code": "RESP_RATE", "value": 14, "unit": "/min", "source": "Device" }
},
{
"offsetMinutes": 105,
"type": "observation",
"data": { "code": "SYSTOLIC_BP", "value": 130, "unit": "mmHg", "source": "Device" }
},
{
"offsetMinutes": 105,
"type": "observation",
"data": { "code": "DIASTOLIC_BP", "value": 74, "unit": "mmHg", "source": "Device" }
},
{
"offsetMinutes": 105,
"type": "observation",
"data": { "code": "TEMP_C", "value": 36.9, "unit": "°C", "source": "Manual" }
},
{
"offsetMinutes": 105,
"type": "observation",
"data": { "code": "SPO2", "value": 98, "unit": "%", "source": "Device" }
},
{
"offsetMinutes": 105,
"type": "observation",
"data": { "code": "AVPU", "value": 0, "unit": "score", "source": "Manual" }
},
{
"offsetMinutes": 120,
"type": "medication",
"data": {
"drugName": "metoprolol tartrate",
"dose": 25,
"doseUnit": "mg",
"route": "PO",
"administeredBy": "nurse-rn-12"
},
"note": "Second scheduled metoprolol dose"
},
{
"offsetMinutes": 120,
"type": "observation",
"data": { "code": "HEART_RATE", "value": 52, "unit": "bpm", "source": "Device" },
"note": "Pre-dose vitals taken with medication. NEWS2=0"
},
{
"offsetMinutes": 120,
"type": "observation",
"data": { "code": "RESP_RATE", "value": 15, "unit": "/min", "source": "Device" }
},
{
"offsetMinutes": 120,
"type": "observation",
"data": { "code": "SYSTOLIC_BP", "value": 126, "unit": "mmHg", "source": "Device" }
},
{
"offsetMinutes": 120,
"type": "observation",
"data": { "code": "DIASTOLIC_BP", "value": 72, "unit": "mmHg", "source": "Device" }
},
{
"offsetMinutes": 120,
"type": "observation",
"data": { "code": "TEMP_C", "value": 37.0, "unit": "°C", "source": "Manual" }
},
{
"offsetMinutes": 120,
"type": "observation",
"data": { "code": "SPO2", "value": 97, "unit": "%", "source": "Device" }
},
{
"offsetMinutes": 120,
"type": "observation",
"data": { "code": "AVPU", "value": 0, "unit": "score", "source": "Manual" }
},
{
"offsetMinutes": 135,
"type": "observation",
"data": { "code": "HEART_RATE", "value": 48, "unit": "bpm", "source": "Device" },
"note": "Post-dose HR dip — second metoprolol taking effect. NEWS2=1 (HR=1)"
},
{
"offsetMinutes": 135,
"type": "observation",
"data": { "code": "RESP_RATE", "value": 14, "unit": "/min", "source": "Device" }
},
{
"offsetMinutes": 135,
"type": "observation",
"data": { "code": "SYSTOLIC_BP", "value": 112, "unit": "mmHg", "source": "Device" }
},
{
"offsetMinutes": 135,
"type": "observation",
"data": { "code": "DIASTOLIC_BP", "value": 68, "unit": "mmHg", "source": "Device" }
},
{
"offsetMinutes": 135,
"type": "observation",
"data": { "code": "TEMP_C", "value": 36.8, "unit": "°C", "source": "Manual" }
},
{
"offsetMinutes": 135,
"type": "observation",
"data": { "code": "SPO2", "value": 98, "unit": "%", "source": "Device" }
},
{
"offsetMinutes": 135,
"type": "observation",
"data": { "code": "AVPU", "value": 0, "unit": "score", "source": "Manual" }
},
{
"offsetMinutes": 150,
"type": "observation",
"data": { "code": "HEART_RATE", "value": 47, "unit": "bpm", "source": "Device" },
"note": "Lowest HR of scenario — SBP also drifts near warning boundary. NEWS2=2 (HR=1, SBP=1)"
},
{
"offsetMinutes": 150,
"type": "observation",
"data": { "code": "RESP_RATE", "value": 15, "unit": "/min", "source": "Device" }
},
{
"offsetMinutes": 150,
"type": "observation",
"data": { "code": "SYSTOLIC_BP", "value": 110, "unit": "mmHg", "source": "Device" }
},
{
"offsetMinutes": 150,
"type": "observation",
"data": { "code": "DIASTOLIC_BP", "value": 66, "unit": "mmHg", "source": "Device" }
},
{
"offsetMinutes": 150,
"type": "observation",
"data": { "code": "TEMP_C", "value": 36.9, "unit": "°C", "source": "Manual" }
},
{
"offsetMinutes": 150,
"type": "observation",
"data": { "code": "SPO2", "value": 97, "unit": "%", "source": "Device" }
},
{
"offsetMinutes": 150,
"type": "observation",
"data": { "code": "AVPU", "value": 0, "unit": "score", "source": "Manual" }
},
{
"offsetMinutes": 165,
"type": "observation",
"data": { "code": "HEART_RATE", "value": 50, "unit": "bpm", "source": "Device" },
"note": "HR still in warning but recovering, SBP back to normal. NEWS2=1 (HR=1)"
},
{
"offsetMinutes": 165,
"type": "observation",
"data": { "code": "RESP_RATE", "value": 14, "unit": "/min", "source": "Device" }
},
{
"offsetMinutes": 165,
"type": "observation",
"data": { "code": "SYSTOLIC_BP", "value": 114, "unit": "mmHg", "source": "Device" }
},
{
"offsetMinutes": 165,
"type": "observation",
"data": { "code": "DIASTOLIC_BP", "value": 70, "unit": "mmHg", "source": "Device" }
},
{
"offsetMinutes": 165,
"type": "observation",
"data": { "code": "TEMP_C", "value": 37.0, "unit": "°C", "source": "Manual" }
},
{
"offsetMinutes": 165,
"type": "observation",
"data": { "code": "SPO2", "value": 98, "unit": "%", "source": "Device" }
},
{
"offsetMinutes": 165,
"type": "observation",
"data": { "code": "AVPU", "value": 0, "unit": "score", "source": "Manual" }
},
{
"offsetMinutes": 180,
"type": "observation",
"data": { "code": "HEART_RATE", "value": 52, "unit": "bpm", "source": "Device" },
"note": "End of scenario — patient stable, HR back in normal range. NEWS2=0"
},
{
"offsetMinutes": 180,
"type": "observation",
"data": { "code": "RESP_RATE", "value": 15, "unit": "/min", "source": "Device" }
},
{
"offsetMinutes": 180,
"type": "observation",
"data": { "code": "SYSTOLIC_BP", "value": 118, "unit": "mmHg", "source": "Device" }
},
{
"offsetMinutes": 180,
"type": "observation",
"data": { "code": "DIASTOLIC_BP", "value": 72, "unit": "mmHg", "source": "Device" }
},
{
"offsetMinutes": 180,
"type": "observation",
"data": { "code": "TEMP_C", "value": 36.9, "unit": "°C", "source": "Manual" }
},
{
"offsetMinutes": 180,
"type": "observation",
"data": { "code": "SPO2", "value": 97, "unit": "%", "source": "Device" }
},
{
"offsetMinutes": 180,
"type": "observation",
"data": { "code": "AVPU", "value": 0, "unit": "score", "source": "Manual" }
}
],
"expectedOutcomes": [
{
"afterOffsetMinutes": 15,
"type": "alert",
"alertType": "WARNING_HEART_RATE",
"description": "HR drops to 50 bpm (warning range 41-50) after first metoprolol dose — expected medication effect"
},
{
"afterOffsetMinutes": 15,
"type": "score",
"scoreType": "NEWS2",
"expectedMinimum": 1,
"description": "NEWS2=1 (HR=1 only) — below WARNING threshold of 5, no escalation needed"
},
{
"afterOffsetMinutes": 30,
"type": "alert",
"alertType": "WARNING_HEART_RATE",
"description": "HR 49 bpm — sustained warning-range bradycardia during metoprolol peak effect"
},
{
"afterOffsetMinutes": 45,
"type": "score",
"scoreType": "NEWS2",
"expectedMinimum": 0,
"description": "NEWS2=0 — HR recovers to 52 bpm (normal range), all parameters normal"
},
{
"afterOffsetMinutes": 75,
"type": "alert",
"alertType": "WARNING_HEART_RATE",
"description": "HR dips to 48 bpm after position change — transient, self-resolving"
},
{
"afterOffsetMinutes": 135,
"type": "alert",
"alertType": "WARNING_HEART_RATE",
"description": "HR 48 bpm after second metoprolol dose — repeat of earlier pattern"
},
{
"afterOffsetMinutes": 150,
"type": "alert",
"alertType": "WARNING_HEART_RATE",
"description": "HR 47 bpm — lowest point of scenario, still within warning (not critical)"
},
{
"afterOffsetMinutes": 150,
"type": "alert",
"alertType": "WARNING_SYSTOLIC_BP",
"description": "SBP 110 mmHg — briefly enters warning range (101-110), self-resolves by T+165"
},
{
"afterOffsetMinutes": 150,
"type": "score",
"scoreType": "NEWS2",
"expectedMinimum": 2,
"description": "Peak NEWS2=2 (HR=1 + SBP=1) — maximum score in scenario, well below WARNING threshold of 5"
},
{
"afterOffsetMinutes": 165,
"type": "alert",
"alertType": "WARNING_HEART_RATE",
"description": "HR 50 bpm — still in warning range but trending upward toward recovery"
},
{
"afterOffsetMinutes": 180,
"type": "score",
"scoreType": "NEWS2",
"expectedMinimum": 0,
"description": "NEWS2=0 at end of scenario — patient fully stable, no active alerts. Confirms no escalation occurred."
}
]
}