feature: Medication Tracking & Vital Sign Correlation

This commit is contained in:
voltsrage
2026-06-19 10:47:55 +08:00
parent e2d40331b7
commit 5c7e37471b
29 changed files with 2512 additions and 4 deletions
+87
View File
@@ -0,0 +1,87 @@
{
"scenario": {
"id": "post-op-pain-01",
"name": "Post-Operative Pain Crisis — Opioid Effect on Respiratory Rate",
"description": "45-year-old woman post-abdominal surgery with escalating pain. Morphine administered at 30 minutes. Respiratory rate drops to warning range afterward — expected opioid effect. Heart rate rises from pain before medication, then normalizes. Tests whether clinicians distinguish pain-related tachycardia from pathological tachycardia, and opioid-related respiratory depression from deterioration.",
"durationMinutes": 180,
"tags": ["post-op", "pain", "opioid", "respiratory-depression", "medication-effect"]
},
"patient": {
"firstName": "Sarah",
"lastName": "Lin",
"dateOfBirth": "1981-09-17",
"gender": "Female",
"mrn": "SIM-007"
},
"encounter": {
"department": "Surgical",
"room": "SURG-6C",
"bed": "1",
"encounterType": "Inpatient",
"chiefComplaint": "Post-op day 0 — open appendectomy (complicated appendicitis)"
},
"events": [
{ "offsetMinutes": 0, "type": "observation", "data": { "code": "HEART_RATE", "value": 86, "unit": "bpm", "source": "monitor" } },
{ "offsetMinutes": 0, "type": "observation", "data": { "code": "RESP_RATE", "value": 16, "unit": "/min", "source": "manual" } },
{ "offsetMinutes": 0, "type": "observation", "data": { "code": "SYSTOLIC_BP", "value": 134, "unit": "mmHg", "source": "manual" } },
{ "offsetMinutes": 0, "type": "observation", "data": { "code": "DIASTOLIC_BP", "value": 82, "unit": "mmHg", "source": "manual" } },
{ "offsetMinutes": 0, "type": "observation", "data": { "code": "TEMP_C", "value": 37.4, "unit": "°C", "source": "manual" } },
{ "offsetMinutes": 0, "type": "observation", "data": { "code": "SPO2", "value": 97, "unit": "%", "source": "monitor" } },
{ "offsetMinutes": 0, "type": "observation", "data": { "code": "AVPU", "value": 0, "unit": "score", "source": "manual" } },
{ "offsetMinutes": 20, "type": "observation", "data": { "code": "HEART_RATE", "value": 104, "unit": "bpm", "source": "monitor" }, "note": "Tachycardia from pain" },
{ "offsetMinutes": 20, "type": "observation", "data": { "code": "RESP_RATE", "value": 20, "unit": "/min", "source": "manual" } },
{ "offsetMinutes": 20, "type": "observation", "data": { "code": "SYSTOLIC_BP", "value": 146, "unit": "mmHg", "source": "manual" }, "note": "Hypertensive from pain" },
{ "offsetMinutes": 20, "type": "observation", "data": { "code": "DIASTOLIC_BP", "value": 92, "unit": "mmHg", "source": "manual" } },
{ "offsetMinutes": 20, "type": "observation", "data": { "code": "TEMP_C", "value": 37.5, "unit": "°C", "source": "manual" } },
{ "offsetMinutes": 20, "type": "observation", "data": { "code": "SPO2", "value": 97, "unit": "%", "source": "monitor" } },
{ "offsetMinutes": 20, "type": "observation", "data": { "code": "AVPU", "value": 0, "unit": "score", "source": "manual" } },
{ "offsetMinutes": 30, "type": "medication", "data": { "drugName": "morphine", "dose": 4, "doseUnit": "mg", "route": "IV", "administeredBy": "nurse-rn-4" }, "note": "Morphine for post-op pain" },
{ "offsetMinutes": 60, "type": "observation", "data": { "code": "HEART_RATE", "value": 82, "unit": "bpm", "source": "monitor" }, "note": "HR normalizing with pain relief" },
{ "offsetMinutes": 60, "type": "observation", "data": { "code": "RESP_RATE", "value": 14, "unit": "/min", "source": "manual" } },
{ "offsetMinutes": 60, "type": "observation", "data": { "code": "SYSTOLIC_BP", "value": 126, "unit": "mmHg", "source": "manual" } },
{ "offsetMinutes": 60, "type": "observation", "data": { "code": "DIASTOLIC_BP", "value": 78, "unit": "mmHg", "source": "manual" } },
{ "offsetMinutes": 60, "type": "observation", "data": { "code": "TEMP_C", "value": 37.4, "unit": "°C", "source": "manual" } },
{ "offsetMinutes": 60, "type": "observation", "data": { "code": "SPO2", "value": 96, "unit": "%", "source": "monitor" } },
{ "offsetMinutes": 60, "type": "observation", "data": { "code": "AVPU", "value": 0, "unit": "score", "source": "manual" } },
{ "offsetMinutes": 90, "type": "observation", "data": { "code": "HEART_RATE", "value": 76, "unit": "bpm", "source": "monitor" } },
{ "offsetMinutes": 90, "type": "observation", "data": { "code": "RESP_RATE", "value": 10, "unit": "/min", "source": "manual" }, "note": "RR dropping — morphine respiratory depression" },
{ "offsetMinutes": 90, "type": "observation", "data": { "code": "SYSTOLIC_BP", "value": 118, "unit": "mmHg", "source": "manual" } },
{ "offsetMinutes": 90, "type": "observation", "data": { "code": "DIASTOLIC_BP", "value": 72, "unit": "mmHg", "source": "manual" } },
{ "offsetMinutes": 90, "type": "observation", "data": { "code": "TEMP_C", "value": 37.3, "unit": "°C", "source": "manual" } },
{ "offsetMinutes": 90, "type": "observation", "data": { "code": "SPO2", "value": 95, "unit": "%", "source": "monitor" } },
{ "offsetMinutes": 90, "type": "observation", "data": { "code": "AVPU", "value": 0, "unit": "score", "source": "manual" } },
{ "offsetMinutes": 120, "type": "observation", "data": { "code": "HEART_RATE", "value": 74, "unit": "bpm", "source": "monitor" } },
{ "offsetMinutes": 120, "type": "observation", "data": { "code": "RESP_RATE", "value": 9, "unit": "/min", "source": "manual" }, "note": "RR 9 — warning range" },
{ "offsetMinutes": 120, "type": "observation", "data": { "code": "SYSTOLIC_BP", "value": 116, "unit": "mmHg", "source": "manual" } },
{ "offsetMinutes": 120, "type": "observation", "data": { "code": "DIASTOLIC_BP", "value": 70, "unit": "mmHg", "source": "manual" } },
{ "offsetMinutes": 120, "type": "observation", "data": { "code": "TEMP_C", "value": 37.2, "unit": "°C", "source": "manual" } },
{ "offsetMinutes": 120, "type": "observation", "data": { "code": "SPO2", "value": 94, "unit": "%", "source": "monitor" } },
{ "offsetMinutes": 120, "type": "observation", "data": { "code": "AVPU", "value": 0, "unit": "score", "source": "manual" } },
{ "offsetMinutes": 150, "type": "observation", "data": { "code": "HEART_RATE", "value": 76, "unit": "bpm", "source": "monitor" } },
{ "offsetMinutes": 150, "type": "observation", "data": { "code": "RESP_RATE", "value": 11, "unit": "/min", "source": "manual" }, "note": "RR recovering slowly" },
{ "offsetMinutes": 150, "type": "observation", "data": { "code": "SYSTOLIC_BP", "value": 120, "unit": "mmHg", "source": "manual" } },
{ "offsetMinutes": 150, "type": "observation", "data": { "code": "DIASTOLIC_BP", "value": 74, "unit": "mmHg", "source": "manual" } },
{ "offsetMinutes": 150, "type": "observation", "data": { "code": "TEMP_C", "value": 37.3, "unit": "°C", "source": "manual" } },
{ "offsetMinutes": 150, "type": "observation", "data": { "code": "SPO2", "value": 95, "unit": "%", "source": "monitor" } },
{ "offsetMinutes": 150, "type": "observation", "data": { "code": "AVPU", "value": 0, "unit": "score", "source": "manual" } },
{ "offsetMinutes": 180, "type": "observation", "data": { "code": "HEART_RATE", "value": 78, "unit": "bpm", "source": "monitor" } },
{ "offsetMinutes": 180, "type": "observation", "data": { "code": "RESP_RATE", "value": 13, "unit": "/min", "source": "manual" }, "note": "RR normalizing" },
{ "offsetMinutes": 180, "type": "observation", "data": { "code": "SYSTOLIC_BP", "value": 122, "unit": "mmHg", "source": "manual" } },
{ "offsetMinutes": 180, "type": "observation", "data": { "code": "DIASTOLIC_BP", "value": 76, "unit": "mmHg", "source": "manual" } },
{ "offsetMinutes": 180, "type": "observation", "data": { "code": "TEMP_C", "value": 37.4, "unit": "°C", "source": "manual" } },
{ "offsetMinutes": 180, "type": "observation", "data": { "code": "SPO2", "value": 96, "unit": "%", "source": "monitor" } },
{ "offsetMinutes": 180, "type": "observation", "data": { "code": "AVPU", "value": 0, "unit": "score", "source": "manual" } }
],
"expectedOutcomes": [
{ "afterOffsetMinutes": 20, "type": "alert", "alertType": "WARNING_HEART_RATE", "description": "HR 104 — pain-related tachycardia, not pathological" },
{ "afterOffsetMinutes": 90, "type": "alert", "alertType": "WARNING_RESP_RATE", "description": "RR 10 enters warning range — morphine respiratory depression" },
{ "afterOffsetMinutes": 120, "type": "alert", "alertType": "RAPID_DETERIORATION", "description": "RR dropped 20→9 — trajectory alert but pharmacologically expected" }
]
}