Radiology Information System Screen Requirements
Screen Inventory
| Screen ID | Screen Name | Primary Actor(s) | Workflow(s) | Access Level |
|---|---|---|---|---|
| SCR-RIS-001 | Radiology Worklist (Tech) | Radiology Technologist, Lead Technologist | WF-RIS-001, WF-RIS-002, WF-RIS-003 | Radiology staff (modality-level access) |
| SCR-RIS-002 | Patient Check-In | Radiology Receptionist, Radiology Technologist, Radiology Nurse | WF-RIS-002, WF-RIS-008 | Front-desk radiology staff |
| SCR-RIS-003 | Exam Execution | Radiology Technologist, Lead Technologist | WF-RIS-003, WF-RIS-007 | Radiology technologists |
| SCR-RIS-004 | Reading Worklist (Radiologist) | Radiologist, Chief Radiologist | WF-RIS-001, WF-RIS-004, WF-RIS-006 | Radiologists only |
| SCR-RIS-005 | Report Dictation / Editor | Radiologist, Chief Radiologist | WF-RIS-004, WF-RIS-006, WF-RIS-005 | Radiologists only |
| SCR-RIS-006 | Critical Result Notification | Radiologist, Ordering Physician, Nurse | WF-RIS-005 | Radiologists, ordering providers, charge nurses (view/ack) |
| SCR-RIS-007 | Radiation Dose Dashboard | Radiation Safety Officer, Radiologist, Lead Technologist | WF-RIS-003, WF-RIS-007 | RSO, radiology leadership |
| SCR-RIS-008 | Modality Management | Lead Technologist, Radiology Admin, IT PACS Admin | WF-RIS-001, WF-RIS-003, WF-RIS-007 | Radiology admin / IT only |
| SCR-RIS-009 | Protocol Management | Chief Radiologist, Lead Technologist, Radiology Informatics | WF-RIS-001, WF-RIS-003 | Radiology clinical leadership |
| SCR-RIS-010 | Radiology Analytics Dashboard | Chief Radiologist, Radiology Manager, Quality Officer | WF-RIS-004, WF-RIS-005, WF-RIS-007, WF-RIS-008 | Management / QA roles |
Navigation Flow
Screen Specifications
SCR-RIS-001: Radiology Worklist (Tech)
Purpose
Operational worklist for technologists and reception to view, filter, and manage scheduled and in-progress radiology exams per modality, including drag‑and‑drop scheduling and status updates.
Layout Description
- Header: Module title, date selector, modality filter, priority filter, status filter.
- Patient Banner Strip (when exam selected): Patient name (Arabic/English), MRN, Emirates ID, DOB/age, sex, allergies, pregnancy status (if female of childbearing age).
- Worklist Table: Rows per exam with key details and visual priority/status indicators.
- Right Panel (Collapsible): Exam details (order info, protocol, notes), mini schedule timeline for selected modality.
- Footer: Legend (priority colours, status icons), pagination.
Field Specifications
Filters & Controls
| Field | Type | Required | Validation | Default | Notes |
|---|---|---|---|---|---|
| Date | Date picker | Yes | Valid calendar date | Today | Limits to +/- 90 days |
| Modality | Multi-select dropdown | No | Value in modality master | All | CT, MR, US, XR, etc. |
| Priority | Multi-select chips | No | IN (Routine, Urgent, STAT, Wet Read) | All | Colour-coded |
| Status | Multi-select chips | No | IN (Scheduled, Patient Arrived, In Progress, Images Acquired, Completed, No-show, Cancelled) | Scheduled, Patient Arrived | |
| Search | Text input | No | Min 2 chars | Empty | Searches patient name, MRN, accession, Emirates ID |
Worklist Table Columns
| Field | Type | Required | Validation | Default | Notes |
|---|---|---|---|---|---|
| Scheduled Time | Time display | Yes | HH:MM (24h) | — | From radiology_orders.scheduled_datetime |
| Patient Name | Text | Yes | Non-empty | — | Arabic/English; from patient master |
| MRN | Text | Yes | Non-empty | — | From patient master |
| Exam Type | Text | Yes | Non-empty | — | From radiology_orders.exam_description |
| Modality | Badge | Yes | Valid modality code | — | From radiology_orders.modality_type |
| Body Part / Laterality | Text | Yes | — | — | e.g., “CT Abdomen – Left” |
| Priority | Badge | Yes | IN (Routine, Urgent, STAT, Wet Read) | Routine | Colour-coded; icon + text |
| Status | Badge | Yes | Valid status | Scheduled | From radiology_exams.exam_status |
| Assigned Tech | Text | No | — | Unassigned | From radiology_exams.technologist_id |
| Accession Number | Text | Yes | Non-empty | — | From radiology_exams.accession_number |
| Auth Status | Icon + text | No | IN (Not Required, Pending, Approved, Denied, Expired) | Not Required | From prior auth integration |
Drag-and-Drop Scheduling
- Drag exam row onto time slots in mini schedule (per modality).
- On drop, system updates
radiology_orders.scheduled_datetimeand checks for conflicts.
Validation Messages
| Condition | Message | Severity |
|---|---|---|
| Drop exam into past time slot | "Cannot schedule an exam in the past." | Error |
Modality overbooked (exceeds max_daily_slots) |
"Selected time exceeds configured capacity for this modality." | Warning |
| Missing prior authorization where required | "Prior authorization is required before scheduling this exam." | Error |
| Attempt to change status without patient check-in | "Patient must be checked in before starting the exam." | Error |
| Network / save failure | "Unable to update schedule. Please retry or contact IT support." | Error |
Actions / Buttons
- Refresh: Reload worklist with latest data.
- Bulk Actions (multi-select rows):
- Mark as No-show
- Cancel Exam (requires reason)
- Row Actions:
- “Check-In” → opens SCR-RIS-002.
- “Start Exam” → sets status to In Progress and opens SCR-RIS-003.
- “View Order Details” → side panel with order/protocol.
- Drag-and-Drop:
- Re-schedule exam within same day/modality.
- Prompt confirmation dialog on drop.
HTML Wireframe Mockup
Show HTML code
<div style="font-family: Arial, sans-serif; max-width: 1200px; margin: 0 auto; border: 1px solid #ccc; border-radius: 8px; overflow: hidden;">
<div style="background: #1a73e8; color: white; padding: 12px 20px; display:flex; justify-content:space-between; align-items:center;">
<h3 style="margin: 0;">Radiology Worklist (Tech)</h3>
<div>
<button style="background:#fff;color:#1a73e8;border:none;padding:6px 12px;border-radius:4px;cursor:pointer;">Refresh</button>
</div>
</div>
<div style="padding: 12px 20px; border-bottom:1px solid #eee;">
<div style="display:flex; flex-wrap:wrap; gap:12px; align-items:flex-end;">
<div>
<label for="wl-date" style="display:block;font-size:12px;">Date</label>
<input id="wl-date" type="date" style="padding:4px 6px; min-width:140px;">
</div>
<div>
<label style="display:block;font-size:12px;">Modality</label>
<select multiple style="padding:4px 6px; min-width:160px;">
<option>All</option>
<option>CT</option>
<option>MR</option>
<option>US</option>
<option>XR</option>
</select>
</div>
<div>
<label style="display:block;font-size:12px;">Priority</label>
<div>
<label><input type="checkbox" checked> Routine</label>
<label style="margin-left:8px;"><input type="checkbox" checked> Urgent</label>
<label style="margin-left:8px;"><input type="checkbox" checked> STAT</label>
</div>
</div>
<div style="flex:1; min-width:200px;">
<label for="wl-search" style="display:block;font-size:12px;">Search (Name / MRN / Accession)</label>
<input id="wl-search" type="text" style="width:100%;padding:4px 6px;">
</div>
</div>
</div>
<div style="display:flex; max-height:520px;">
<div style="flex:2; border-right:1px solid #eee; overflow:auto;">
<table style="width:100%; border-collapse:collapse; font-size:13px;">
<thead style="background:#f5f5f5;">
<tr>
<th style="text-align:left;padding:6px;border-bottom:1px solid #ddd;">Time</th>
<th style="text-align:left;padding:6px;border-bottom:1px solid #ddd;">Patient</th>
<th style="text-align:left;padding:6px;border-bottom:1px solid #ddd;">Exam</th>
<th style="text-align:left;padding:6px;border-bottom:1px solid #ddd;">Mod</th>
<th style="text-align:left;padding:6px;border-bottom:1px solid #ddd;">Priority</th>
<th style="text-align:left;padding:6px;border-bottom:1px solid #ddd;">Status</th>
<th style="text-align:left;padding:6px;border-bottom:1px solid #ddd;">Tech</th>
<th style="text-align:left;padding:6px;border-bottom:1px solid #ddd;">Actions</th>
</tr>
</thead>
<tbody>
<tr style="cursor:move;">
<td style="padding:6px;border-bottom:1px solid #eee;">09:30</td>
<td style="padding:6px;border-bottom:1px solid #eee;">Ahmed Al-Maktoum<br><span style="color:#555;">MRN: 0012345</span></td>
<td style="padding:6px;border-bottom:1px solid #eee;">CT Abdomen w/ Contrast</td>
<td style="padding:6px;border-bottom:1px solid #eee;">CT</td>
<td style="padding:6px;border-bottom:1px solid #eee;"><span style="background:#d93025;color:#fff;padding:2px 6px;border-radius:10px;font-size:11px;">STAT</span></td>
<td style="padding:6px;border-bottom:1px solid #eee;">Scheduled</td>
<td style="padding:6px;border-bottom:1px solid #eee;">Unassigned</td>
<td style="padding:6px;border-bottom:1px solid #eee;">
<button style="padding:2px 6px;font-size:11px;">Check-In</button>
</td>
</tr>
<!-- more rows -->
</tbody>
</table>
</div>
<div style="flex:1; padding:12px; font-size:13px;">
<h4 style="margin-top:0;">Selected Exam Details</h4>
<div style="border:1px solid #ddd;border-radius:4px;padding:8px;margin-bottom:8px;">
<strong>Patient:</strong> Ahmed Al‑Maktoum (MRN 0012345)<br>
<strong>Emirates ID:</strong> 784-1990-1234567-1<br>
<strong>DOB:</strong> 12‑03‑1990 (35y) • Male
</div>
<div style="border:1px solid #ddd;border-radius:4px;padding:8px;margin-bottom:8px;">
<strong>Exam:</strong> CT Abdomen w/ Contrast<br>
<strong>Priority:</strong> STAT<br>
<strong>Ordering Physician:</strong> Dr. Fatima Al‑Nahyan<br>
<strong>Clinical Indication:</strong> Acute abdominal pain, r/o appendicitis
</div>
<div>
<h5 style="margin:8px 0 4px;">Modality Schedule (CT)</h5>
<div style="border:1px solid #eee;height:200px;font-size:12px;padding:4px;">
<!-- simplified timeline placeholder -->
<p>09:00–09:30 Booked</p>
<p>09:30–10:00 Available</p>
<p>10:00–10:30 Booked</p>
</div>
</div>
</div>
</div>
</div>
Accessibility (WCAG 2.1 AA)
- All filters and table headers use
<label>and<th scope="col">. - Drag-and-drop scheduling has keyboard alternative (e.g., “Change Time” dialog).
- Priority/status indicated by text plus colour; not colour alone.
- Live updates (auto-refresh) announced via
aria-live="polite"region. - Row selection and actions reachable via keyboard (Tab/Enter/Space).
Responsive / Mobile
- On screens < 768px:
- Filters stack vertically.
- Worklist table collapses to cards (time, patient, exam, priority, status).
- Right panel becomes a slide-up drawer.
- Drag-and-drop replaced with “Change Time” button opening a time picker.
- Touch targets minimum 44x44 px.
SCR-RIS-002: Patient Check-In
Purpose
Capture patient arrival, identity verification, safety screening (MRI/contrast/pregnancy), and consent for imaging exams, ensuring compliance with UAE PDPL and local radiation safety requirements.
Layout Description
- Header: Patient banner (from shared pattern) + exam summary.
- Section 1: Identity verification (Emirates ID, MRN, DOB).
- Section 2: Safety screening questionnaire (modality-specific).
- Section 3: Vitals & weight (for contrast dosing).
- Section 4: Consent capture (checkboxes + signature capture if required).
- Footer: Buttons: Cancel, Save as Draft, Complete Check-In.
Field Specifications
| Field | Type | Required | Validation | Default | Notes |
|---|---|---|---|---|---|
| Emirates ID | Text | Yes | Regex ^784-\d{4}-\d{7}-\d$ |
Pre-filled if on file | Masked input; from patient master |
| MRN | Read-only text | Yes | Non-empty | From context | From patients table |
| Full Name (Arabic / English) | Read-only text | Yes | Non-empty | From context | Display both if available |
| Date of Birth | Read-only text | Yes | Valid date | From context | Age auto-calculated |
| Identity Verification Method | Dropdown | Yes | IN (Emirates ID, Passport, Other Govt ID) | Emirates ID | Audit logged |
| Identity Verified Checkbox | Checkbox | Yes | Must be checked | Unchecked | Required before proceeding |
Safety Screening (examples)
| Field | Type | Required | Validation | Default | Notes |
|---|---|---|---|---|---|
| MRI Safety Questionnaire Completed | Checkbox | Conditional | Required if modality = MR | Unchecked | |
| Any implanted devices? | Radio (Yes/No) | Conditional | — | No | If Yes → details text area |
| Contrast Allergy History | Radio (Yes/No/Unknown) | If contrast planned | — | Unknown | |
| Pregnancy Status (for females 12–55y) | Radio (Not Pregnant / Pregnant / Unknown / Not Applicable) | Conditional | — | Not Applicable | Drives alerts |
| Last Creatinine Date | Date | If contrast planned | <= today | Empty | Optional but recommended |
| Last Creatinine Value | Numeric | If date entered | > 0 | Empty | Units: µmol/L or mg/dL |
Vitals & Weight
| Field | Type | Required | Validation | Default | Notes |
|---|---|---|---|---|---|
| Weight (kg) | Numeric | Yes | 1–300 | Empty | Used for contrast dosing |
| Height (cm) | Numeric | No | 30–250 | Empty | For BMI if needed |
| Blood Pressure | Text | No | Pattern NNN/NN |
Empty | Optional |
Consent
| Field | Type | Required | Validation | Default | Notes |
|---|---|---|---|---|---|
| Imaging Consent Type | Multi-select | Conditional | At least one if required | Based on exam | e.g., General Imaging, Contrast, Interventional |
| Consent Obtained | Checkbox | Conditional | Must be checked if consent required | Unchecked | |
| Consent Date/Time | DateTime | Conditional | <= now | Now | |
| Consent Document Link | Read-only link | No | — | — | Opens scanned/ e-signed consent |
| Patient / Guardian Name | Text | Conditional | Non-empty | Patient name | For signature |
| Relationship to Patient | Dropdown | Conditional | IN (Self, Parent, Guardian, Other) | Self |
Validation Messages
| Condition | Message | Severity |
|---|---|---|
| Emirates ID format invalid | "Emirates ID must be in format 784-YYYY-NNNNNNN-C." | Error |
| Identity not verified | "Identity verification is required before check-in can be completed." | Error |
| MRI safety questionnaire not completed for MR exam | "MRI safety screening must be completed for all MRI exams." | Error |
| Female 12–55y with pregnancy status = Unknown | "Please confirm pregnancy status or document 'Unknown' with justification." | Warning |
| Contrast planned but no weight | "Patient weight is required for contrast dosing." | Error |
| Consent required but not obtained | "Imaging consent is required for this exam before proceeding." | Error |
Actions / Buttons
- Save as Draft: Saves entered data without changing exam status.
- Complete Check-In:
- Validates all required fields.
- Sets exam status to “Patient Arrived”.
- Returns to SCR-RIS-001.
- Cancel: Returns to worklist without saving changes (with confirmation).
- Print Safety Form (optional): For patient review/sign if local policy requires paper backup.
HTML Wireframe Mockup
Show HTML code
<div style="font-family: Arial, sans-serif; max-width: 900px; margin: 0 auto; border: 1px solid #ccc; border-radius: 8px; overflow: hidden;">
<div style="background: #1a73e8; color: white; padding: 12px 20px;">
<h3 style="margin: 0;">Patient Check-In</h3>
</div>
<div style="padding: 16px 20px;">
<!-- Patient Banner -->
<div style="border:1px solid #ddd;border-radius:4px;padding:8px 10px;margin-bottom:12px;background:#f8fafc;">
<strong>Ahmed Al‑Maktoum</strong> • MRN: 0012345 • Emirates ID: 784-1990-1234567-1<br>
DOB: 12‑03‑1990 (35y) • Male • Allergies: None Known<br>
Exam: CT Abdomen w/ Contrast • Priority: STAT
</div>
<!-- Identity Verification -->
<h4 style="margin:12px 0 6px;">1. Identity Verification</h4>
<div style="display:flex; flex-wrap:wrap; gap:12px;">
<div>
<label style="display:block;font-size:12px;">Emirates ID</label>
<input type="text" value="784-1990-1234567-1" style="padding:4px 6px; min-width:200px;">
</div>
<div>
<label style="display:block;font-size:12px;">Verification Method</label>
<select style="padding:4px 6px; min-width:160px;">
<option>Emirates ID</option>
<option>Passport</option>
<option>Other Govt ID</option>
</select>
</div>
<div style="align-self:flex-end;">
<label><input type="checkbox"> Identity verified against ID document</label>
</div>
</div>
<!-- Safety Screening -->
<h4 style="margin:16px 0 6px;">2. Safety Screening</h4>
<div style="border:1px solid #eee;border-radius:4px;padding:8px 10px;margin-bottom:8px;">
<div style="margin-bottom:6px;">
<label style="display:block;font-size:12px;">Contrast Allergy History</label>
<label><input type="radio" name="allergy"> Yes</label>
<label style="margin-left:8px;"><input type="radio" name="allergy" checked> No</label>
<label style="margin-left:8px;"><input type="radio" name="allergy"> Unknown</label>
</div>
<div style="margin-bottom:6px;">
<label style="display:block;font-size:12px;">Pregnancy Status (if applicable)</label>
<label><input type="radio" name="preg"> Not Pregnant</label>
<label style="margin-left:8px;"><input type="radio" name="preg"> Pregnant</label>
<label style="margin-left:8px;"><input type="radio" name="preg"> Unknown</label>
<label style="margin-left:8px;"><input type="radio" name="preg" checked> Not Applicable</label>
</div>
<div style="display:flex; gap:12px;">
<div>
<label style="display:block;font-size:12px;">Last Creatinine Date</label>
<input type="date" style="padding:4px 6px;">
</div>
<div>
<label style="display:block;font-size:12px;">Creatinine Value</label>
<input type="number" step="0.1" style="padding:4px 6px; width:100px;">
<span style="font-size:11px;color:#555;">µmol/L</span>
</div>
</div>
</div>
<!-- Vitals -->
<h4 style="margin:16px 0 6px;">3. Vitals & Weight</h4>
<div style="display:flex; gap:12px; flex-wrap:wrap;">
<div>
<label style="display:block;font-size:12px;">Weight (kg)</label>
<input type="number" style="padding:4px 6px; width:100px;">
</div>
<div>
<label style="display:block;font-size:12px;">Height (cm)</label>
<input type="number" style="padding:4px 6px; width:100px;">
</div>
<div>
<label style="display:block;font-size:12px;">Blood Pressure</label>
<input type="text" placeholder="120/80" style="padding:4px 6px; width:90px;">
</div>
</div>
<!-- Consent -->
<h4 style="margin:16px 0 6px;">4. Consent</h4>
<div style="border:1px solid #eee;border-radius:4px;padding:8px 10px;">
<label><input type="checkbox"> General imaging consent obtained</label><br>
<label><input type="checkbox"> Contrast consent obtained</label><br>
<div style="margin-top:6px; display:flex; gap:12px; flex-wrap:wrap;">
<div>
<label style="display:block;font-size:12px;">Consent Date/Time</label>
<input type="datetime-local" style="padding:4px 6px;">
</div>
<div>
<label style="display:block;font-size:12px;">Patient / Guardian Name</label>
<input type="text" style="padding:4px 6px; min-width:200px;">
</div>
<div>
<label style="display:block;font-size:12px;">Relationship</label>
<select style="padding:4px 6px;">
<option>Self</option>
<option>Parent</option>
<option>Guardian</option>
<option>Other</option>
</select>
</div>
</div>
</div>
<!-- Footer Buttons -->
<div style="margin-top:16px; text-align:right;">
<button style="padding:6px 12px; margin-right:8px;">Cancel</button>
<button style="padding:6px 12px; margin-right:8px;">Save as Draft</button>
<button style="padding:6px 16px; background:#1a73e8;color:#fff;border:none;border-radius:4px;">Complete Check-In</button>
</div>
</div>
</div>
Accessibility
- All questions have explicit
<label>and grouping via<fieldset>/<legend>(implementation detail). - Required fields indicated with text (e.g., “(required)”) not just colour.
- Error messages associated via
aria-describedby. - Pregnancy and safety questions readable in logical order for screen readers.
Responsive / Mobile
- Sections collapse into accordions for easier scrolling.
- Inputs full-width; multi-column layouts become single column.
- Signature capture (if implemented) uses touch-friendly canvas.
SCR-RIS-003: Exam Execution
Purpose
Used by technologists to manage exam execution: confirm protocol, track exam start/end, record contrast administration, capture dose (if not auto), and update exam status.
Layout Description
- Header: Patient banner + exam summary.
- Left Column: Protocol details, technologist notes, status controls.
- Right Column: Contrast administration, dose capture, image count, modality info.
- Footer: Buttons: Save, Mark Images Acquired, Mark Completed.
Field Specifications
| Field | Type | Required | Validation | Default | Notes |
|---|---|---|---|---|---|
| Exam Status | Dropdown | Yes | IN (Patient Arrived, In Progress, Images Acquired, Completed, Cancelled) | From context | Controlled transitions only |
| Check-In Time | Read-only datetime | Yes | <= now | From check-in | |
| Exam Start Time | Datetime | Conditional | <= now; >= check-in | Empty | Required when status ≥ In Progress |
| Exam End Time | Datetime | Conditional | >= start; <= now | Empty | Required when status = Completed |
| Technologist | Read-only text | Yes | Non-empty | Logged-in user | |
| Modality Resource | Read-only text | Yes | Non-empty | From modality_resources |
AE Title, room |
Contrast Administration
| Field | Type | Required | Validation | Default | Notes |
|---|---|---|---|---|---|
| Contrast Used | Checkbox | No | — | From order/protocol | |
| Contrast Type | Dropdown | Conditional | FK to Contrast Agents | Empty | Required if Contrast Used |
| Route | Dropdown | Conditional | IN (IV, Oral, Rectal, Intra-articular) | IV | |
| Volume (mL) | Numeric | Conditional | 1–500 | Empty | |
| Lot Number | Text | Conditional | Max 50 chars | Empty | For traceability |
| Adverse Reaction | Dropdown | No | IN (None, Mild, Moderate, Severe) | None | If not None → notes |
| Reaction Notes | Textarea | Conditional | Max 500 chars | Empty |
Dose Capture (for ionizing modalities)
| Field | Type | Required | Validation | Default | Notes |
|---|---|---|---|---|---|
| Dose Auto-Captured from RDSR | Checkbox | No | — | Checked if RDSR received | Read-only |
| CTDIvol (mGy) | Numeric | Conditional | >= 0 | From RDSR | Editable if manual |
| DLP (mGy·cm) | Numeric | Conditional | >= 0 | From RDSR | |
| DAP (Gy·cm²) | Numeric | Conditional | >= 0 | From RDSR | For fluoroscopy |
| Effective Dose (mSv) | Numeric | No | >= 0 | Auto-calculated | Based on body region & modality |
| Image Count | Numeric | No | >= 0 | From modality |
Technologist Notes
| Field | Type | Required | Validation | Default | Notes |
|---|---|---|---|---|---|
| Positioning Notes | Textarea | No | Max 1000 chars | Empty | |
| Repeat Reason | Dropdown | No | IN (Motion, Positioning, Artefact, Other) | Empty | If repeats performed |
| Repeat Count | Numeric | No | >= 0 | 0 | For QA |
Validation Messages
| Condition | Message | Severity |
|---|---|---|
| Exam Start Time missing when status In Progress | "Exam start time is required when marking exam as In Progress." | Error |
| Exam End Time missing when status Completed | "Exam end time is required when marking exam as Completed." | Error |
| Contrast Used checked but no type/volume | "Contrast type and volume are required when contrast is used." | Error |
| Dose fields empty for CT/XR/Fluoro and no RDSR | "Radiation dose must be recorded for this modality." | Warning (can be hard error per policy) |
| End time before start time | "Exam end time cannot be earlier than start time." | Error |
Actions / Buttons
- Save: Persist current data without changing status.
- Mark Images Acquired:
- Sets status to “Images Acquired”.
- Requires at least Exam Start Time.
- Mark Completed:
- Sets status to “Completed”.
- Requires Exam Start & End Time and dose (if applicable).
- Open in PACS: Launches PACS viewer for quick QA (if integration available).
Accessibility
- Time fields use accessible date/time pickers with keyboard support.
- Dose fields grouped with clear legends; units displayed in text.
- Error messages appear inline and summarized at top in an
aria-live="assertive"region.
Responsive / Mobile
- Two-column layout collapses to single column.
- Buttons fixed at bottom on mobile for easy access.
- Numeric inputs use numeric keypad on mobile.
SCR-RIS-004: Reading Worklist (Radiologist)
Purpose
Provide radiologists with a prioritized list of exams ready for interpretation, with filters, assignment controls, and quick access to PACS and report editor.
Layout Description
- Header: Filters (priority, modality, status, assigned to), search, “My List / All” toggle.
- Worklist Table: Exams with priority, patient, exam, age, ordering provider, images availability, and SLA timers.
- Side Panel: When exam selected, shows clinical history, prior exams, labs summary.
- Footer: Legend and pagination.
Field Specifications
| Field | Type | Required | Validation | Default | Notes |
|---|---|---|---|---|---|
| View Toggle | Segmented control | Yes | IN (My Assigned, All Unassigned, All) | My Assigned | |
| Priority Filter | Multi-select chips | No | IN (Routine, Urgent, STAT, Wet Read) | All | |
| Modality Filter | Multi-select | No | Valid modality | All | |
| Status Filter | Multi-select | No | IN (Images Acquired, Preliminary, Final Pending) | Images Acquired | |
| Search | Text | No | Min 2 chars | Empty | Patient, MRN, accession |
Worklist Columns
| Field | Type | Required | Validation | Default | Notes |
|---|---|---|---|---|---|
| Priority | Badge | Yes | — | — | STAT in red, etc. |
| Patient Name / MRN | Text | Yes | — | — | |
| Age / Sex | Text | Yes | — | — | |
| Exam Description | Text | Yes | — | — | |
| Modality | Badge | Yes | — | — | |
| Ordering Physician | Text | Yes | — | — | |
| Clinical Indication | Text (truncated) | Yes | — | — | Hover for full |
| Images Available | Icon | Yes | — | — | From PACS |
| Time Since Images Acquired | Text | Yes | >= 0 | — | e.g., "2h 15m" |
| Assigned To | Text | No | — | Unassigned | |
| Status | Badge | Yes | — | — | e.g., Unread, In Progress, Preliminary, Final |
Validation Messages
| Condition | Message | Severity |
|---|---|---|
| Attempt to open exam with no images | "Images are not yet available in PACS for this exam." | Error |
| Assign exam to another radiologist without permission | "You do not have permission to reassign this exam." | Error |
| Network/PACS launch failure | "Unable to open images in PACS. Please retry or contact IT." | Error |
Actions / Buttons
- Open Images & Report: Opens SCR-RIS-005 and PACS viewer.
- Assign to Me: Sets
assigned_radiologist_idto current user. - Release Assignment: Clears assignment (if allowed).
- Mark as Wet Read Done: For wet read workflows; logs timestamp.
Accessibility
- Table uses proper headers; sort order indicated via
aria-sort. - SLA timers not colour-only; include text like “Overdue by 30m”.
- Keyboard shortcuts (e.g., up/down to move between rows, Enter to open exam).
Responsive / Mobile
- Worklist rows become cards; key info at top (priority, patient, exam).
- Side panel becomes separate screen accessible via “Details” button.
- “Assign to Me” and “Open” large touch buttons.
SCR-RIS-005: Report Dictation / Editor
Purpose
Primary interface for radiologists to review images (via integrated PACS), dictate or type reports, apply templates, use structured reporting, and sign preliminary/final reports.
Layout Description
- Top: Patient banner + exam info + critical alert indicator.
- Left (or top on small screens): Embedded PACS viewer frame/launch button.
- Right: Report editor with:
- Template selector.
- Sections: Clinical Indication, Technique, Findings, Impression.
- Structured findings panel (optional).
- Bottom: Sign buttons (Save Draft, Sign Preliminary, Sign Final), voice recognition controls.
Field Specifications
| Field | Type | Required | Validation | Default | Notes |
|---|---|---|---|---|---|
| Template Selector | Dropdown / search | No | Valid template ID | Last used per exam type | From radiology_templates |
| Clinical Indication | Read-only text | Yes | Non-empty | From order | Editable if allowed |
| Technique | Textarea | No | Max 2000 chars | From template | |
| Findings | Rich text / textarea | Yes | Max 8000 chars | Empty or from template | |
| Impression | Rich text / textarea | Yes | Max 4000 chars | Empty or from template | |
| Structured Findings JSON | Hidden / structured UI | No | Valid JSON | Empty | Stored in radiology_reports.structured_findings_json |
| Is Critical | Checkbox | No | — | Unchecked | If checked → triggers SCR-RIS-006 |
| Critical Finding Text | Textarea | Conditional | Max 2000 chars | Empty | Required if Is Critical |
| Dictation Status | Read-only | No | — | Idle / Recording | From voice engine |
| Report Status | Read-only | Yes | IN (Draft, In Progress, Preliminary, Final, Corrected) | Draft |
Validation Messages
| Condition | Message | Severity |
|---|---|---|
| Sign Preliminary with empty Findings or Impression | "Findings and Impression are required before signing." | Error |
| Sign Final when preliminary required by policy and not done | "Preliminary sign-off is required before finalizing this report." | Error (configurable) |
| Mark as Critical without Critical Finding Text | "Please describe the critical finding before sending notifications." | Error |
| Voice recognition failure | "Voice recognition service is unavailable. Please type your report or retry." | Warning |
Actions / Buttons
- Apply Template: Loads selected template into Technique/Findings/Impression (with confirmation if text already present).
- Insert Structured Finding: Opens structured reporting dialog; updates JSON and optionally text.
- Save Draft: Saves without changing report status.
- Sign Preliminary:
- Sets
report_status = Preliminary. - Populates
preliminary_sign_datetime. - Triggers outbound ORU^R01 and FHIR DiagnosticReport (preliminary).
- Sign Final:
- Sets
report_status = Final. - Populates
final_sign_datetime. - Triggers outbound ORU^R01 and HIE submissions (NABIDH/Malaffi).
- Flag Critical: Opens SCR-RIS-006 overlay with pre-filled critical text.
HTML Wireframe Mockup
Show HTML code
<div style="font-family: Arial, sans-serif; max-width: 1200px; margin: 0 auto; border: 1px solid #ccc; border-radius: 8px; overflow: hidden;">
<div style="background:#1a73e8;color:#fff;padding:12px 20px;">
<h3 style="margin:0;">Report Dictation / Editor</h3>
</div>
<div style="padding:10px 20px; border-bottom:1px solid #eee;">
<!-- Patient Banner -->
<div style="border:1px solid #ddd;border-radius:4px;padding:8px 10px;background:#f8fafc;">
<strong>Fatima Al‑Nahyan</strong> • MRN: 0098765 • Emirates ID: 784-1985-7654321-3<br>
DOB: 05‑08‑1985 (40y) • Female • Allergies: Penicillin<br>
Exam: MRI Brain w/ and w/o Contrast • Priority: Urgent
</div>
</div>
<div style="display:flex; flex-wrap:wrap;">
<!-- PACS Viewer -->
<div style="flex:1; min-width:320px; border-right:1px solid #eee; padding:10px 12px;">
<h4 style="margin-top:0;">Images</h4>
<div style="border:1px solid #ddd;border-radius:4px;height:320px;display:flex;align-items:center;justify-content:center;background:#000;color:#fff;font-size:13px;">
PACS Viewer Placeholder
</div>
<button style="margin-top:8px;padding:6px 10px;">Open in Full PACS</button>
</div>
<!-- Report Editor -->
<div style="flex:1.4; min-width:360px; padding:10px 12px;">
<div style="display:flex; gap:8px; align-items:flex-end; margin-bottom:8px;">
<div style="flex:1;">
<label style="display:block;font-size:12px;">Report Template</label>
<select style="width:100%;padding:4px 6px;">
<option>-- Select Template --</option>
<option>MR Brain - Stroke Protocol</option>
<option>MR Brain - Tumour</option>
</select>
</div>
<button style="padding:6px 10px;">Apply Template</button>
</div>
<div style="margin-bottom:8px;">
<label style="display:block;font-size:12px;">Clinical Indication</label>
<textarea style="width:100%;padding:4px 6px;height:40px;" readonly>Acute onset left-sided weakness, rule out stroke.</textarea>
</div>
<div style="margin-bottom:8px;">
<label style="display:block;font-size:12px;">Technique</label>
<textarea style="width:100%;padding:4px 6px;height:60px;"></textarea>
</div>
<div style="margin-bottom:8px;">
<label style="display:block;font-size:12px;">Findings</label>
<textarea style="width:100%;padding:4px 6px;height:120px;"></textarea>
</div>
<div style="margin-bottom:8px;">
<label style="display:block;font-size:12px;">Impression</label>
<textarea style="width:100%;padding:4px 6px;height:80px;"></textarea>
</div>
<div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:8px;">
<div>
<label><input type="checkbox"> Critical finding</label>
</div>
<div>
<button style="padding:4px 8px;font-size:12px;">Structured Findings...</button>
</div>
</div>
<div style="border-top:1px solid #eee;padding-top:8px; display:flex; justify-content:space-between; align-items:center;">
<div>
<button style="padding:6px 10px;margin-right:6px;">Save Draft</button>
<button style="padding:6px 10px;margin-right:6px;">Sign Preliminary</button>
<button style="padding:6px 14px;background:#1a73e8;color:#fff;border:none;border-radius:4px;">Sign Final</button>
</div>
<div style="font-size:12px;color:#555;">
Dictation: <span>Idle</span>
</div>
</div>
</div>
</div>
</div>
Accessibility
- Editor fields labelled and grouped logically; heading structure supports screen readers.
- Voice recognition controls accessible via keyboard; status updates announced via
aria-live. - Critical checkbox has description text explaining workflow impact.
Responsive / Mobile
- PACS viewer collapses below editor on small screens; “Open in Full PACS” opens external viewer.
- Textareas expand vertically; horizontal scrolling avoided.
- Sign buttons pinned at bottom on mobile.
SCR-RIS-006: Critical Result Notification
Purpose
Support radiologists in documenting and tracking critical result communication, including notification attempts, acknowledgements, escalation, and read-back confirmation, in line with UAE facility policies and accreditation standards.
Layout Description
- Header: Patient banner + exam and report summary.
- Section 1: Critical finding summary (pre-filled from report).
- Section 2: Target provider selection and contact details.
- Section 3: Notification attempts timeline.
- Section 4: Acknowledgement and read-back confirmation.
- Footer: Save, Mark as Completed.
Field Specifications
| Field | Type | Required | Validation | Default | Notes |
|---|---|---|---|---|---|
| Critical Finding Text | Textarea | Yes | Max 2000 chars | From report | Editable |
| Notifying Radiologist | Read-only text | Yes | Non-empty | Current user | |
| Target Provider | Autocomplete | Yes | Valid provider ID | Ordering physician | Can change to covering provider |
| Notification Method | Dropdown | Yes | IN (In-app Alert, Phone Call, SMS, Secure Email, Other) | In-app Alert | |
| Notification Sent Date/Time | Read-only datetime | Yes | <= now | Now | |
| Acknowledged Date/Time | Datetime | Conditional | >= sent | Empty | Required when acknowledged |
| Acknowledged By | Autocomplete | Conditional | Valid provider/user | Empty | |
| Escalation Level | Dropdown | No | IN (None, Level 1, Level 2, Department Head) | None | Auto-updated by rules |
| Read-back Confirmed | Checkbox | Conditional | Must be checked if policy requires | Unchecked | |
| Read-back Notes | Textarea | No | Max 1000 chars | Empty |
Validation Messages
| Condition | Message | Severity |
|---|---|---|
| Missing target provider | "A responsible provider must be selected for critical notification." | Error |
| Mark as completed without acknowledgement | "Critical result must be acknowledged before closing this notification." | Error (configurable) |
| Read-back required but not confirmed | "Read-back confirmation is required for critical results." | Error |
| Notification method SMS/email but no contact details | "Selected provider has no valid contact details for this method." | Error |
Actions / Buttons
- Send Notification:
- Creates notification record.
- Triggers in-app alert and/or SMS/email via notification service.
- Log Phone Call:
- Adds entry to attempts timeline with timestamp and outcome.
- Mark Acknowledged:
- Captures acknowledgement time and user.
- Mark Completed:
- Closes notification; locks record for audit.
Accessibility
- Timeline of attempts presented as ordered list with clear timestamps.
- Status changes announced via
aria-live. - All interactive elements keyboard accessible.
Responsive / Mobile
- Sections stacked vertically.
- Timeline collapses to cards with date/time and outcome.
- Buttons large and spaced for touch.
SCR-RIS-007: Radiation Dose Dashboard
Purpose
Provide Radiation Safety Officer and radiology leadership with patient-level and population-level radiation dose information, DRL compliance, and trends to support ALARA and UAE MOH radiation safety reporting.
Layout Description
- Header: Filters (date range, modality, body region, facility).
- Top Row: KPI tiles (DRL compliance %, average dose, number of high-dose exams).
- Middle: Charts (dose trends, modality comparison).
- Bottom: Patient-level table with cumulative dose and alerts.
Field Specifications (Key)
| Field | Type | Required | Validation | Default | Notes |
|---|---|---|---|---|---|
| Date Range | Date range picker | Yes | Start <= End | Last 30 days | |
| Modality Filter | Multi-select | No | Valid modality | All | |
| Body Region Filter | Multi-select | No | Valid body region code | All | |
| Facility Filter | Multi-select | No | Valid facility | Current facility |
Patient Table Columns
| Field | Type | Required | Notes |
|---|---|---|---|
| Patient Name / MRN | Text | Yes | |
| Cumulative Dose (mSv) | Numeric | Yes | Lifetime or period |
| Exams Count | Numeric | Yes | |
| Highest Single Exam Dose | Numeric | Yes | |
| DRL Exceeded Exams | Numeric | Yes | |
| Alerts | Icons | No | e.g., High cumulative dose |
Validation Messages
| Condition | Message | Severity |
|---|---|---|
| Date range > 1 year | "For performance reasons, please limit the date range to 12 months or less." | Warning |
| No data for filters | "No dose records found for the selected filters." | Info |
Actions / Buttons
- Export CSV / PDF: For regulatory reporting.
- Drill-down: Click patient row to view dose timeline and exam list.
- Save View: Save filter configuration as named view.
Accessibility
- Charts must have text summaries describing key insights.
- KPI tiles labelled with
<h3>and numeric values; not colour-only. - Table supports keyboard navigation and screen reader hints.
Responsive / Mobile
- KPI tiles stack vertically.
- Charts become swipeable or simplified.
- Table uses horizontal scrolling or card layout.
SCR-RIS-008: Modality Management
Purpose
Administer imaging equipment inventory, AE Titles, IP addresses, capacity, and maintenance schedules for DICOM integration and scheduling.
Field Specifications (Key)
| Field | Type | Required | Validation | Default | Notes |
|---|---|---|---|---|---|
| Equipment Name | Text | Yes | Max 255 chars | Empty | |
| Modality Type | Dropdown | Yes | Valid DICOM modality code | Empty | |
| Facility | Dropdown | Yes | FK to facilities | Current facility | |
| Department | Dropdown | Yes | FK to departments | Radiology | |
| AE Title | Text | Yes | Max 16 chars, uppercase, no spaces | Empty | |
| IP Address | Text | Yes | IPv4/IPv6 format | Empty | |
| Max Daily Slots | Numeric | No | >= 0 | 0 | |
| Maintenance Status | Dropdown | Yes | IN (Active, Planned Maintenance, Out of Service) | Active |
Validation messages include IP format errors, duplicate AE Title, etc.
SCR-RIS-009: Protocol Management
Purpose
Define and maintain imaging protocols per exam type and modality, including parameters, contrast requirements, and prep instructions.
Field Specifications (Key)
| Field | Type | Required | Validation | Default | Notes |
|---|---|---|---|---|---|
| Exam Code (CPT) | Autocomplete | Yes | Valid CPT radiology code | Empty | |
| Modality Type | Dropdown | Yes | Valid modality | Empty | |
| Protocol Name | Text | Yes | Max 255 chars | Empty | |
| Protocol Parameters JSON | JSON editor / structured UI | Yes | Valid JSON | Empty | Stores kVp, mAs, sequences, etc. |
| Contrast Required | Checkbox | Yes | — | From template | |
| Default Prep Instructions | Textarea | No | Max 2000 chars | Empty | |
| Estimated Duration (min) | Numeric | No | 1–240 | Empty |
Validation includes JSON syntax, required fields, and uniqueness per exam+modality.
SCR-RIS-010: Radiology Analytics Dashboard
Purpose
Provide management with KPIs and visualizations for turnaround times, volumes, critical result compliance, dose metrics, and staff productivity.
Field Specifications (Key)
- Filters: Date range, facility, modality, radiologist, technologist.
- KPI tiles:
- Report TAT (Routine, STAT).
- Critical Result Notification Compliance.
- Exam Completion Rate, No-Show Rate.
- Radiologist Productivity (RVU).
- Charts: Volume trends, TAT distribution, technologist utilization.
Validation: date range, required filters for staff-level metrics.
Accessibility: text summaries for each chart; keyboard focusable chart containers.
Responsive: tiles stack; charts resize; some complex charts replaced with tables on small screens.
Common UI Patterns
Patient Banner
- Displayed on all clinical screens (SCR-RIS-001/002/003/004/005/006/007).
- Fields:
- Patient name (Arabic and English if available).
- MRN.
- Emirates ID.
- DOB, age, sex.
- Allergies (with severity).
- Pregnancy status (if applicable).
- Location / encounter.
- Behaviour:
- Click opens mini patient summary (problems, meds, recent labs).
- Colour-coded allergy and alert icons with text labels.
Search Components
- Global Search: Patient search (name, MRN, Emirates ID) with minimum 2–3 characters and debounce.
- Worklist Search: Contextual search within lists (exams, reports).
- Autocomplete lists with keyboard navigation and
aria-activedescendant.
Alert / Notification Patterns
- Inline Alerts: For validation and informational messages; use icon + text; severity levels (info, warning, error).
- Toasts: Non-blocking success messages (e.g., “Report signed successfully”).
- Modal Alerts: For critical confirmations (e.g., final sign, cancel exam).
- Critical result alerts in EHR use high-visibility banners and require explicit acknowledgement.
Loading States
- Skeleton loaders for tables and charts.
- Spinners with descriptive text: “Loading worklist…”.
- Timeouts with retry options and error messages.
Arabic / English Bilingual UI
- All labels and static text must support both English and Arabic (RTL).
- Layout must flip for Arabic:
- Alignment (left/right) reversed.
- Icons and arrows mirrored where appropriate.
- Patient names may appear as: “أحمد المكتوم / Ahmed Al‑Maktoum”.
- Date/time formats configurable (e.g., DD‑MM‑YYYY) but consistent across module.
- Screen readers must handle both languages; use
lang="ar"/lang="en"appropriately.
Accessibility (WCAG 2.1 AA) – General
- Colour contrast ratio ≥ 4.5:1 for text.
- Keyboard-only navigation supported; visible focus indicators.
- Forms:
- Each input has
<label>; required fields indicated textually. - Error messages linked via
aria-describedby. - Dynamic content updates announced via
aria-livewhere relevant (worklists, alerts). - Avoid conveying information by colour alone; use icons and text.
Responsive / Mobile – General
- Breakpoints:
- Desktop ≥ 1024px: full multi-column layouts.
- Tablet 768–1023px: two-column where possible.
- Mobile < 768px: single-column, stacked sections.
- Tables:
- Convert to card layouts or enable horizontal scrolling.
- Buttons:
- Minimum 44x44 px touch targets.
- PACS integration:
- On mobile, open in external viewer or simplified image viewer if available.