Source: https://github.com/aipoch/medical-research-skills
Shift Handover Summarizer
Generate structured shift handover summaries from EHR updates, highlighting critical events that occurred during the shift.
Clinical Disclaimer: This tool generates summaries for handover support only. All clinical decisions must be verified by qualified medical staff. Patient data must comply with applicable data protection regulations (e.g., HIPAA).
Quick Check
python -m py_compile scripts/main.py
python scripts/main.py --help
When to Use
- Use this skill when generating a structured handover summary from EHR records at the end of a clinical shift.
- Use this skill when prioritizing patients by event severity for incoming staff.
- Do not use this skill as a substitute for direct clinical handover, real-time patient assessment, or emergency triage.
Workflow
- Confirm the patient records file, shift start/end times, and optional department filter.
- Validate that the input records are within the declared shift time range.
- Timezone validation: If
--shift-start or --shift-end lacks a timezone offset (e.g., 2026-02-06T00:00:00 without Z or +HH:MM), emit a warning: "Shift times appear to lack a timezone offset. Assuming UTC. Specify timezone explicitly (e.g., 2026-02-06T00:00:00+08:00) to avoid incorrect event filtering."
- Run the summarizer script or apply the manual extraction path.
- Return a structured summary with patients ranked by priority, key events, and pending tasks.
- If inputs are incomplete, state exactly which fields are missing and request only the minimum additional information.
Usage
python scripts/main.py \
--records data/shift_records.json \
--shift-start "2026-02-06T00:00:00Z" \
--shift-end "2026-02-06T08:00:00Z" \
--department "Cardiology" \
--output summary.json
Parameters
| Parameter |
Type |
Required |
Description |
--records |
file path |
Yes |
JSON file of EHR records for the shift |
--shift-start |
ISO 8601 |
Yes |
Shift start time |
--shift-end |
ISO 8601 |
Yes |
Shift end time |
--department |
string |
No |
Department filter |
--output |
file path |
No |
Output file path (default: stdout) |
--no-vitals |
flag |
No |
Exclude vital signs summary |
Event Priority Levels
| Priority |
Event Type |
| High |
Resuscitation, deterioration, serious complications, abnormal vitals |
| Medium |
New symptoms, abnormal findings, medication adjustments, special procedures |
| Low |
Routine treatment, condition improvement, daily care |
Output
- Shift summary with total patients and critical patient count
- Per-patient priority ranking, key events, vitals summary, medication summary, and pending tasks
- Plain-text handover narrative
Scope Boundaries
- This skill processes structured EHR records; it does not access live hospital systems.
- Event classification is based on preset thresholds and keywords; adjust thresholds for department-specific needs.
- This skill does not replace direct verbal handover or physician sign-off.
Stress-Case Rules
For complex multi-constraint requests, always include these explicit blocks:
- Assumptions
- Shift Period and Inputs Used
- Summary Output
- Critical Flags
- Risks and Manual Checks
Error Handling
- If required inputs are missing, state exactly which fields are missing and request only the minimum additional information.
- If the task goes outside the documented scope, stop instead of guessing or silently widening the assignment.
- If
scripts/main.py fails, report the failure point, summarize what still can be completed safely, and provide a manual fallback.
- Do not fabricate patient data, clinical events, or execution outcomes.
Input Validation
This skill accepts: a structured EHR records file with shift start and end times for handover summary generation.
If the request does not involve shift handover summary generation from EHR records — for example, asking for real-time patient monitoring, clinical diagnosis, or direct treatment recommendations — do not proceed with the workflow. Instead respond:
"shift-handover-summarizer is designed to generate structured handover summaries from EHR records. Your request appears to be outside this scope. Please provide a records file and shift times, or use a more appropriate clinical tool."
Response Template
Use the following fixed structure for non-trivial requests:
- Objective
- Inputs Received
- Assumptions
- Workflow
- Deliverable
- Risks and Limits
- Next Checks
If the request is simple, you may compress the structure, but still keep assumptions and limits explicit when they affect correctness.
1---2name: shift-handover-summarizer3description: Generate structured shift handover summaries from EHR records, highlighting critical events, vital sign changes, and pending tasks for incoming clinical staff.4license: MIT5---6> **Source**: [https://github.com/aipoch/medical-research-skills](https://github.com/aipoch/medical-research-skills)
7
8# Shift Handover Summarizer
9
10Generate structured shift handover summaries from EHR updates, highlighting critical events that occurred during the shift.
11
12> **Clinical Disclaimer:** This tool generates summaries for handover support only. All clinical decisions must be verified by qualified medical staff. Patient data must comply with applicable data protection regulations (e.g., HIPAA).
13
14## Quick Check
15
16```bash
17python -m py_compile scripts/main.py
18python scripts/main.py --help
19```
20
21## When to Use
22
23- Use this skill when generating a structured handover summary from EHR records at the end of a clinical shift.
24- Use this skill when prioritizing patients by event severity for incoming staff.
25- Do not use this skill as a substitute for direct clinical handover, real-time patient assessment, or emergency triage.
26
27## Workflow
28
291. Confirm the patient records file, shift start/end times, and optional department filter.
302. Validate that the input records are within the declared shift time range.
313. **Timezone validation:** If `--shift-start` or `--shift-end` lacks a timezone offset (e.g., `2026-02-06T00:00:00` without `Z` or `+HH:MM`), emit a warning: "Shift times appear to lack a timezone offset. Assuming UTC. Specify timezone explicitly (e.g., `2026-02-06T00:00:00+08:00`) to avoid incorrect event filtering."
324. Run the summarizer script or apply the manual extraction path.
335. Return a structured summary with patients ranked by priority, key events, and pending tasks.
346. If inputs are incomplete, state exactly which fields are missing and request only the minimum additional information.
35
36## Usage
37
38```text
39python scripts/main.py \
40 --records data/shift_records.json \
41 --shift-start "2026-02-06T00:00:00Z" \
42 --shift-end "2026-02-06T08:00:00Z" \
43 --department "Cardiology" \
44 --output summary.json
45```
46
47## Parameters
48
49| Parameter | Type | Required | Description |
50|-----------|------|----------|-------------|
51| `--records` | file path | Yes | JSON file of EHR records for the shift |
52| `--shift-start` | ISO 8601 | Yes | Shift start time |
53| `--shift-end` | ISO 8601 | Yes | Shift end time |
54| `--department` | string | No | Department filter |
55| `--output` | file path | No | Output file path (default: stdout) |
56| `--no-vitals` | flag | No | Exclude vital signs summary |
57
58## Event Priority Levels
59
60| Priority | Event Type |
61|----------|-----------|
62| High | Resuscitation, deterioration, serious complications, abnormal vitals |
63| Medium | New symptoms, abnormal findings, medication adjustments, special procedures |
64| Low | Routine treatment, condition improvement, daily care |
65
66## Output
67
68- Shift summary with total patients and critical patient count
69- Per-patient priority ranking, key events, vitals summary, medication summary, and pending tasks
70- Plain-text handover narrative
71
72## Scope Boundaries
73
74- This skill processes structured EHR records; it does not access live hospital systems.
75- Event classification is based on preset thresholds and keywords; adjust thresholds for department-specific needs.
76- This skill does not replace direct verbal handover or physician sign-off.
77
78## Stress-Case Rules
79
80For complex multi-constraint requests, always include these explicit blocks:
81
821. Assumptions
832. Shift Period and Inputs Used
843. Summary Output
854. Critical Flags
865. Risks and Manual Checks
87
88## Error Handling
89
90- If required inputs are missing, state exactly which fields are missing and request only the minimum additional information.
91- If the task goes outside the documented scope, stop instead of guessing or silently widening the assignment.
92- If `scripts/main.py` fails, report the failure point, summarize what still can be completed safely, and provide a manual fallback.
93- Do not fabricate patient data, clinical events, or execution outcomes.
94
95## Input Validation
96
97This skill accepts: a structured EHR records file with shift start and end times for handover summary generation.
98
99If the request does not involve shift handover summary generation from EHR records — for example, asking for real-time patient monitoring, clinical diagnosis, or direct treatment recommendations — do not proceed with the workflow. Instead respond:
100> "shift-handover-summarizer is designed to generate structured handover summaries from EHR records. Your request appears to be outside this scope. Please provide a records file and shift times, or use a more appropriate clinical tool."
101
102## Response Template
103
104Use the following fixed structure for non-trivial requests:
105
1061. Objective
1072. Inputs Received
1083. Assumptions
1094. Workflow
1105. Deliverable
1116. Risks and Limits
1127. Next Checks
113
114If the request is simple, you may compress the structure, but still keep assumptions and limits explicit when they affect correctness.