From d77f81227445c066d242217fb46681b8aa8cef0a Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 10 Nov 2026 17:17:17 +0000 Subject: [PATCH 01/14] WIP item 15 arrival checklist lines --- .../ed/ed-admission-checklist.module.css | 14 +++ .../ed/ed-admission-checklist.tsx | 111 +++++++++++++++++- .../ward-admission-checklist.ts | 110 ++++++++++++++++- .../ward-arrival-support-lines.ts | 33 ++++++ .../ward-management/ward-flow-event-roles.ts | 3 +- .../ward-flow-record-stay-events.ts | 13 +- .../ward-flow-release-notice-events.ts | 25 +++- .../ward-management/ward-model-bed-release.ts | 9 +- src/components/ward-management/ward-model.ts | 4 + .../ward-support-notifications.ts | 18 +++ 10 files changed, 329 insertions(+), 11 deletions(-) create mode 100644 src/components/ward-management/ward-arrival-support-lines.ts diff --git a/src/components/ward-management/ed/ed-admission-checklist.module.css b/src/components/ward-management/ed/ed-admission-checklist.module.css index d3c66c3b94..486ebefab5 100644 --- a/src/components/ward-management/ed/ed-admission-checklist.module.css +++ b/src/components/ward-management/ed/ed-admission-checklist.module.css @@ -40,3 +40,17 @@ grid-area: action; justify-self: end; } + +/* Item 15: the inline "who was told" form for the advocacy service line. */ +.form { + grid-column: 1 / -1; + display: grid; + gap: var(--wf-s-2); + padding-top: var(--wf-s-1); +} + +.formActions { + display: flex; + justify-content: flex-end; + gap: var(--wf-s-2); +} diff --git a/src/components/ward-management/ed/ed-admission-checklist.tsx b/src/components/ward-management/ed/ed-admission-checklist.tsx index 83be5840c0..ef6db8080b 100644 --- a/src/components/ward-management/ed/ed-admission-checklist.tsx +++ b/src/components/ward-management/ed/ed-admission-checklist.tsx @@ -1,14 +1,20 @@ "use client"; -import { Badge, Button } from "@/components/wf"; -import { admissionChecklist } from "@/components/ward-management/ward-admission-checklist"; +import { useMemo, useState } from "react"; + +import { Badge, Button, Field, TextInput } from "@/components/wf"; +import { admissionChecklist, type AdmissionChecklistItem } from "@/components/ward-management/ward-admission-checklist"; import { useWardRaise } from "@/components/ward-management/ward-flow-raise"; +import { useOptionalWardFlowSelect, useWardFlowClock } from "@/components/ward-management/ward-flow-provider"; import { ARRIVAL_CHECKS, type ArrivalCheck, type Movement, type Referral, } from "@/components/ward-management/ward-model"; +import { createPatientResolver } from "@/components/ward-management/ward-patient-resolver"; +import { SUPPORT_NOTIFICATION_WHO_MAX_CHARACTERS } from "@/components/ward-management/ward-support-notifications"; +import { useHoldOpenForm } from "@/components/ward-management/use-hold-open-form"; import edStyles from "./ed.module.css"; import styles from "./ed-admission-checklist.module.css"; @@ -17,10 +23,31 @@ import styles from "./ed-admission-checklist.module.css"; * Admission arrival checklist (Top 25 item 14). * Reads recorded facts. The contraband search and the medication chart are recorded here with * `RECORD_ARRIVAL_CHECK` (D-72), and show "Done" only once the reducer has accepted the record. + * + * Feature item 15 (D-134): "Interpreter booked" and "Aboriginal liaison offered" show only when the + * patient record says they apply and are recorded the same way. "Mental Health Advocacy Service + * told" shows for a detained patient and records `RECORD_SUPPORT_NOTIFICATION` (party `mhas`), the + * one record the ward's support checklist and the Notifications alert also read. None is ever + * pre-ticked. PROVISIONAL wording, pending the cultural safety review (audit M122). */ export function EdAdmissionChecklist({ movement, referrals }: { movement: Movement; referrals: readonly Referral[] }) { const raise = useWardRaise("ed"); - const items = admissionChecklist(movement, referrals); + const records = useOptionalWardFlowSelect( + "patients", + "movements", + "plannedAdmissions", + "supportNotifications", + ); + const now = useWardFlowClock(0); + const patient = useMemo( + () => (records ? createPatientResolver({ ...records, referrals })(movement).patient : undefined), + [records, referrals, movement], + ); + const items = admissionChecklist(movement, referrals, undefined, { + patient, + supportNotifications: records?.supportNotifications, + now, + }); const done = items.filter((item) => item.state === "done").length; const recordable = movement.closure === undefined; return ( @@ -37,7 +64,7 @@ export function EdAdmissionChecklist({ movement, referrals }: { movement: Moveme const check = ARRIVAL_CHECKS.find((key): key is ArrivalCheck => key === item.key); const isDone = item.state === "done"; return ( -
  • +
  • {item.label} {isDone ? "Done" : "Outstanding"} @@ -56,6 +83,9 @@ export function EdAdmissionChecklist({ movement, referrals }: { movement: Moveme {isDone ? "Take back" : "Record done"} ) : null} + {item.key === "mhas_told" && !isDone && recordable && item.supportNotification ? ( + + ) : null}
  • ); })} @@ -63,3 +93,76 @@ export function EdAdmissionChecklist({ movement, referrals }: { movement: Moveme ); } + +/** + * Records who at the Mental Health Advocacy Service was told, now. A correction or a "not + * applicable" is made in the ward's support checklist after arrival, on the same record. + */ +function AdvocacyToldForm({ + movementId, + target, +}: { + movementId: string; + target: NonNullable; +}) { + const raise = useWardRaise("ed"); + const [open, setOpen] = useState(false); + const [who, setWho] = useState(""); + // Audit CS3-01: an open form is checked against the board it opened on. + useHoldOpenForm(open); + if (!open) + return ( + + ); + return ( +
    { + event.preventDefault(); + if (who.trim() === "") return; + void raise("RECORD_SUPPORT_NOTIFICATION", { + occasion: target.occasion, + movementId, + party: "mhas", + outcome: "told", + who, + }); + setOpen(false); + }} + > + + setWho(event.target.value)} + /> + +
    + + +
    +
    + ); +} diff --git a/src/components/ward-management/ward-admission-checklist.ts b/src/components/ward-management/ward-admission-checklist.ts index 834d6903dc..469fc49da0 100644 --- a/src/components/ward-management/ward-admission-checklist.ts +++ b/src/components/ward-management/ward-admission-checklist.ts @@ -5,19 +5,51 @@ * medical clearance, legal form receipt, transport need, contraband search and medication chart. * The search and the chart are recorded with `RECORD_ARRIVAL_CHECK` (D-72); this view only reads. * Nothing here blocks the handover: the reducer's own `HANDOVER_READY` rules are unchanged. + * + * Feature item 15 (D-134): up to three more lines, each shown only when it applies and never + * pre-ticked. "Interpreter booked" when the patient record says an interpreter is required; + * "Aboriginal liaison offered" when the recorded identity is Aboriginal, Torres Strait Islander or + * both (offered, never assumed); "Mental Health Advocacy Service told" for every move the app treats + * as detained, read from the same `RECORD_SUPPORT_NOTIFICATION` record (party `mhas`) the support + * checklist and the Notifications alert read. PROVISIONAL wording, pending the Aboriginal cultural + * safety review (audit M122, D-123 item 6). */ +import { + recordedAboriginalIdentity, + recordedInterpreterLanguage, +} from "@/components/ward-management/ward-arrival-support-lines"; +import { formatInstantWithDay, type Instant } from "@/components/ward-management/ward-clock"; import { transportNeedState } from "@/components/ward-management/ward-derivations"; import { requiresAuthorisedDestination } from "@/components/ward-management/ward-eligibility"; +import { legalStatusIsDetained } from "@/components/ward-management/ward-legal-status"; import { recordedMovementMedicalClearance } from "@/components/ward-management/ward-medical-clearance"; import type { Movement, Referral } from "@/components/ward-management/ward-model"; +import type { Patient } from "@/components/ward-management/ward-patients"; +import { + movementSupportNotificationBeforeArrival, + movementSupportNotificationSubject, + supportNotificationChecklist, + type SupportNotificationOccasion, + type SupportNotificationRecord, +} from "@/components/ward-management/ward-support-notifications"; type AdmissionChecklistState = "done" | "outstanding"; export type AdmissionChecklistItem = { - key: "medical_clearance" | "legal_form" | "transport" | "contraband_search" | "medication_chart"; + key: + | "medical_clearance" + | "legal_form" + | "transport" + | "contraband_search" + | "medication_chart" + | "interpreter_booked" + | "aboriginal_liaison_offered" + | "mhas_told"; label: string; state: AdmissionChecklistState; detail: string; + /** `mhas_told` only: the support notification record this line reads and writes. */ + supportNotification?: { occasion: SupportNotificationOccasion; subjectId: string }; }; /** @deprecated Local drafts cannot establish recorded checklist completion. */ @@ -26,11 +58,84 @@ export type AdmissionChecklistOverrides = { medication_chart?: boolean; }; +/** Item 15: what the three conditional lines read. Absent, they are simply not offered. */ +export type AdmissionChecklistContext = { + patient?: Pick; + supportNotifications?: readonly SupportNotificationRecord[]; + now?: Instant; +}; + +function interpreterLine(movement: Movement, { patient }: AdmissionChecklistContext): AdmissionChecklistItem[] { + const language = recordedInterpreterLanguage(patient); + if (language === undefined) return []; + const booked = movement.interpreterBooked === true; + return [ + { + key: "interpreter_booked", + label: "Interpreter booked", + state: booked ? "done" : "outstanding", + detail: booked ? `${language} interpreter booked` : `${language} · not recorded`, + }, + ]; +} + +/** + * The liaison line names no identity: the line itself is enough, and R-2026-09-04-A keeps identity + * and interpreter language apart wherever both show, so this line also never sits next to the + * interpreter line. + */ +function liaisonLine(movement: Movement, { patient }: AdmissionChecklistContext): AdmissionChecklistItem[] { + if (recordedAboriginalIdentity(patient) === undefined) return []; + const offered = movement.aboriginalLiaisonOffered === true; + return [ + { + key: "aboriginal_liaison_offered", + label: "Aboriginal liaison offered", + state: offered ? "done" : "outstanding", + detail: offered ? "Offered" : "Not recorded", + }, + ]; +} + +/** D-134 item 2: every move the app treats as detained, the same group the support checklist covers. */ +function advocacyLine( + movement: Movement, + referrals: readonly Referral[], + { supportNotifications, now }: AdmissionChecklistContext, +): AdmissionChecklistItem[] { + if (!legalStatusIsDetained(movement.legalStatus)) return []; + const subject = + movementSupportNotificationBeforeArrival(movement, referrals) ?? + movementSupportNotificationSubject(movement, referrals); + const record = subject + ? supportNotificationChecklist(supportNotifications, subject.occasion, subject.subjectId).mhas + : undefined; + const when = + record?.outcome === "told" && now !== undefined + ? ` · ${formatInstantWithDay(record.contactedAt ?? record.at, now)}` + : ""; + return [ + { + key: "mhas_told", + label: "Mental Health Advocacy Service told", + state: record === undefined ? "outstanding" : "done", + detail: + record === undefined + ? "Not recorded" + : record.outcome === "told" + ? `Told ${record.who ?? ""}${when}` + : `Not applicable · ${record.reason ?? ""}`, + ...(subject ? { supportNotification: { occasion: subject.occasion, subjectId: subject.subjectId } } : {}), + }, + ]; +} + export function admissionChecklist( movement: Movement, referrals: readonly Referral[], /** @deprecated Ignored: only recorded movement values establish completion. */ _overrides?: AdmissionChecklistOverrides, + context: AdmissionChecklistContext = {}, ): AdmissionChecklistItem[] { void _overrides; const clearance = recordedMovementMedicalClearance(movement, referrals); @@ -76,6 +181,7 @@ export function admissionChecklist( ? "Needed, not booked" : "Need not recorded", }, + ...interpreterLine(movement, context), { key: "contraband_search", label: "Contraband search", @@ -88,5 +194,7 @@ export function admissionChecklist( state: medChartDone === true ? "done" : "outstanding", detail: medChartDone === true ? "Ready for ward" : "Not recorded", }, + ...liaisonLine(movement, context), + ...advocacyLine(movement, referrals, context), ]; } diff --git a/src/components/ward-management/ward-arrival-support-lines.ts b/src/components/ward-management/ward-arrival-support-lines.ts new file mode 100644 index 0000000000..a1cd34b779 --- /dev/null +++ b/src/components/ward-management/ward-arrival-support-lines.ts @@ -0,0 +1,33 @@ +import type { Patient } from "./ward-patients"; + +/** + * Feature item 15 (D-134, 10 Nov 2026): when the arrival checklist offers "Interpreter booked" and + * "Aboriginal liaison offered". Each reads only what the patient record holds; nothing is guessed + * from a name, a language or anything else. Read by the checklist and by `RECORD_ARRIVAL_CHECK`, + * which refuses a tick for a line that does not apply. + * + * PROVISIONAL: the conditions and the line wording wait on the Aboriginal cultural safety review + * (audit M122, D-123 item 6). Change them only with that review. + */ + +/** The language when the record says an interpreter is required ("Italian — interpreter required"). */ +export function recordedInterpreterLanguage(patient: Pick | undefined) { + const value = patient?.interpreterLanguage?.trim(); + if (!value || /no interpreter/i.test(value) || !/interpreter required/i.test(value)) return undefined; + return value.split(/\s+[—-]\s+/)[0]?.trim() || value; +} + +/** + * The identity as recorded when it is Aboriginal, Torres Strait Islander or both (D-123 item 2: + * "Aboriginal", "Torres Strait Islander" or "Aboriginal and Torres Strait Islander"). Undefined for + * "Neither", "Not stated" or no answer. + */ +export function recordedAboriginalIdentity( + patient: Pick | undefined, +): "Aboriginal" | "Torres Strait Islander" | "Aboriginal and Torres Strait Islander" | undefined { + const value = patient?.aboriginalOrTorresStraitIslanderStatus?.trim() ?? ""; + if (/^aboriginal and torres strait islander\b/i.test(value)) return "Aboriginal and Torres Strait Islander"; + if (/^aboriginal\b/i.test(value)) return "Aboriginal"; + if (/^torres strait islander\b/i.test(value)) return "Torres Strait Islander"; + return undefined; +} diff --git a/src/components/ward-management/ward-flow-event-roles.ts b/src/components/ward-management/ward-flow-event-roles.ts index bdd11d91f9..db9c17d74b 100644 --- a/src/components/ward-management/ward-flow-event-roles.ts +++ b/src/components/ward-management/ward-flow-event-roles.ts @@ -616,7 +616,8 @@ export const EVENT_ROLE: Record CONVERT_PLANNED_ADMISSION: ["ward", "coordinator"], // Advisory carer/PSP/MHAS checklist (9 Oct 2026): recorded where the move is completed — the // ward (arrivals, discharges board) or the coordinator (movements). - RECORD_SUPPORT_NOTIFICATION: ["ward", "coordinator"], + // Item 15 (D-134 item 2): ED records only the advocacy notice before arrival (reducer-checked). + RECORD_SUPPORT_NOTIFICATION: ["ward", "coordinator", "ed"], SEND_RELEASE_SUPPORT_NOTICE: ["ward", "coordinator"], // Closing-the-loop package B (24 Oct 2026): discharge logistics, recorded by the ward or the coordinator. RECORD_DISCHARGE_DEPENDENCY: ["ward", "coordinator"], diff --git a/src/components/ward-management/ward-flow-record-stay-events.ts b/src/components/ward-management/ward-flow-record-stay-events.ts index aa87e1afb2..6595d2dc27 100644 --- a/src/components/ward-management/ward-flow-record-stay-events.ts +++ b/src/components/ward-management/ward-flow-record-stay-events.ts @@ -38,6 +38,7 @@ import { SUPPORT_NOTIFICATION_WHO_MAX_CHARACTERS, type SupportNotificationRecord, admissionSupportNotificationSubject, + movementSupportNotificationBeforeArrival, movementSupportNotificationSubject, } from "@/components/ward-management/ward-support-notifications"; @@ -707,7 +708,17 @@ export function reduceRecordedStayEvent( return reject(state, event, "an admission or transfer notification names the movement, not an admission"); const movement = findMovement(state, event.movementId); if (!movement) return reject(state, event, `no movement found for id ${event.movementId}`); - const subject = movementSupportNotificationSubject(movement, state.referrals); + // Item 15 (D-134 item 2): the emergency department records only the advocacy notice, and + // only before arrival, from the arrival checklist. Everything else stays with the ward. + const beforeArrival = + event.role === "ed" ? movementSupportNotificationBeforeArrival(movement, state.referrals) : undefined; + if (event.role === "ed" && (event.party !== "mhas" || !beforeArrival)) + return reject( + state, + event, + "the emergency department records only the advocacy service notice, before the patient arrives", + ); + const subject = beforeArrival ?? movementSupportNotificationSubject(movement, state.referrals); if (!subject) return reject(state, event, `movement ${movement.id} is not a completed arrival of an involuntary patient`); if (subject.occasion !== event.occasion) diff --git a/src/components/ward-management/ward-flow-release-notice-events.ts b/src/components/ward-management/ward-flow-release-notice-events.ts index b09987d729..a1a7023ef1 100644 --- a/src/components/ward-management/ward-flow-release-notice-events.ts +++ b/src/components/ward-management/ward-flow-release-notice-events.ts @@ -1,4 +1,6 @@ +import { recordedAboriginalIdentity, recordedInterpreterLanguage } from "./ward-arrival-support-lines"; import type { AuditDecision } from "./ward-audit"; +import { createPatientResolver } from "./ward-patient-resolver"; import type { Instant } from "./ward-clock"; import type { WardFlowRole } from "./ward-flow-roles"; import type { BedEventHelpers, findMovement, reject, replaceMovement, WardFlowState } from "./ward-flow-reducer"; @@ -37,8 +39,9 @@ export type ReleaseNoticeEvent = { /** * The emergency department records an arrival checklist item, the pre-transfer contraband search - * or the medication chart for the receiving ward. Writes `Movement.contrabandSearchDone` or - * `Movement.medicationChartDone`. `done: false` takes a mistaken tick back. Part of `WardFlowEvent`. + * or the medication chart for the receiving ward, and (item 15) an interpreter booked or Aboriginal + * liaison offered. Writes the matching `Movement` flag. `done: false` takes a mistaken tick back. + * Part of `WardFlowEvent`. */ export type ArrivalCheckEvent = { type: "RECORD_ARRIVAL_CHECK"; @@ -82,6 +85,14 @@ export function reduceReleaseNoticeEvent( return replaceBedRelease(state, release.id, updated); } +/** The movement field each arrival check writes. */ +const ARRIVAL_CHECK_FIELDS = { + contraband_search: "contrabandSearchDone", + medication_chart: "medicationChartDone", + interpreter_booked: "interpreterBooked", + aboriginal_liaison_offered: "aboriginalLiaisonOffered", +} as const satisfies Record; + export type ArrivalCheckHelpers = { findMovement: typeof findMovement; reject: typeof reject; @@ -99,7 +110,15 @@ export function reduceArrivalCheckEvent( if (!ARRIVAL_CHECKS.includes(event.check)) { return reject(state, event, "Choose a check to record."); } - const field = event.check === "contraband_search" ? "contrabandSearchDone" : "medicationChartDone"; + // Item 15: interpreter and liaison lines are offered only when the patient record says they apply. + if (event.done === true && (event.check === "interpreter_booked" || event.check === "aboriginal_liaison_offered")) { + const patient = createPatientResolver(state)(movement).patient; + if (event.check === "interpreter_booked" && recordedInterpreterLanguage(patient) === undefined) + return reject(state, event, "No interpreter need is recorded for this patient."); + if (event.check === "aboriginal_liaison_offered" && recordedAboriginalIdentity(patient) === undefined) + return reject(state, event, "No Aboriginal or Torres Strait Islander identity is recorded for this patient."); + } + const field = ARRIVAL_CHECK_FIELDS[event.check]; // `!movement[field]` counts an unrecorded check as not done; a non-boolean `done` is refused here too. if (typeof event.done !== "boolean" || !movement[field] === !event.done) { return reject(state, event, "This check is already recorded that way."); diff --git a/src/components/ward-management/ward-model-bed-release.ts b/src/components/ward-management/ward-model-bed-release.ts index 5fd7f1a097..f26924c5a5 100644 --- a/src/components/ward-management/ward-model-bed-release.ts +++ b/src/components/ward-management/ward-model-bed-release.ts @@ -19,8 +19,15 @@ export type SupportServiceType = (typeof SUPPORT_SERVICE_TYPES)[number]; /** * D-72 (21 Oct 2026): the arrival checklist items the emergency department records with * `RECORD_ARRIVAL_CHECK`, onto `Movement.contrabandSearchDone` and `Movement.medicationChartDone`. + * Feature item 15 (D-134): `interpreter_booked` and `aboriginal_liaison_offered`, onto + * `Movement.interpreterBooked` and `Movement.aboriginalLiaisonOffered`, offered only when they apply. */ -export const ARRIVAL_CHECKS = ["contraband_search", "medication_chart"] as const; +export const ARRIVAL_CHECKS = [ + "contraband_search", + "medication_chart", + "interpreter_booked", + "aboriginal_liaison_offered", +] as const; export type ArrivalCheck = (typeof ARRIVAL_CHECKS)[number]; /** diff --git a/src/components/ward-management/ward-model.ts b/src/components/ward-management/ward-model.ts index 56dc9cfef9..b65e6bd427 100644 --- a/src/components/ward-management/ward-model.ts +++ b/src/components/ward-management/ward-model.ts @@ -1075,6 +1075,10 @@ export type Movement = MovementBase & { contrabandSearchDone?: boolean; /** Top 25 item 14: whether the pre-transfer medication chart is ready for the receiving ward. */ medicationChartDone?: boolean; + /** Feature item 15: an interpreter booked for arrival. Offered only when the record needs one. */ + interpreterBooked?: boolean; + /** Feature item 15: Aboriginal liaison offered at arrival. Offered, never assumed. */ + aboriginalLiaisonOffered?: boolean; }; /** diff --git a/src/components/ward-management/ward-support-notifications.ts b/src/components/ward-management/ward-support-notifications.ts index a2664a90bd..c586f3fa96 100644 --- a/src/components/ward-management/ward-support-notifications.ts +++ b/src/components/ward-management/ward-support-notifications.ts @@ -151,6 +151,24 @@ export function movementSupportNotificationSubject( }; } +/** + * Feature item 15 (D-134 item 2, 10 Nov 2026): the arrival checklist's "Mental Health Advocacy + * Service told" line lets the emergency department record the advocacy notice for an accepted, + * still-open move of an involuntary patient, before they reach the ward. It is the same record + * (occasion, the movement as subject, party `mhas`) the support checklist reads after arrival, so + * a tick in either place shows in both. Undefined when the move is closed or arrived, not yet + * accepted, or not involuntary. + */ +export function movementSupportNotificationBeforeArrival( + movement: Movement, + referrals: readonly Referral[], +): Pick | undefined { + if (movement.closure !== undefined || movement.acceptedUnitId === undefined) return undefined; + if (movement.stage === "arrived") return undefined; + if (!movementLegalStatusIsInvoluntary(movement.legalStatus)) return undefined; + return { occasion: arrivalIsTransfer(movement, referrals) ? "transfer" : "admission", subjectId: movement.id }; +} + /** The discharge this checklist covers, for one admission, or undefined when it does not apply. */ export function admissionSupportNotificationSubject( admission: Admission, From 2b2e81abedf2410e2a1c1067c7bf0a7310a970ba Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 10 Nov 2026 21:16:30 +0000 Subject: [PATCH 02/14] Add interpreter, Aboriginal liaison and MHAS lines to the arrival checklist (item 15, held) Feature item 15 (D-134 item 2). The ED arrival checklist offers up to three more lines, each only when it applies and never pre-ticked: - Interpreter booked, when the patient record says an interpreter is required. - Aboriginal liaison offered, when the recorded identity is Aboriginal, Torres Strait Islander or both (D-123 item 2). Kept away from the interpreter line. - Mental Health Advocacy Service told, for every detained move. It reuses the RECORD_SUPPORT_NOTIFICATION record (party mhas, subject the movement), so the support checklist and Notifications alert read the same record. Interpreter and liaison ticks use RECORD_ARRIVAL_CHECK (two new check ids), refused when the record says they do not apply. ED may now raise RECORD_SUPPORT_NOTIFICATION for the advocacy party only, before arrival; the reducer refuses anything else from ED. Wording is provisional pending the cultural safety review (M122). Permission matrix regenerated. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01GxPPxmfmBRcfvStcCSeCwK --- docs/ward-flow/permission-matrix.md | 2 +- .../ed/ed-admission-checklist.tsx | 7 +- .../support-notification-checklist.tsx | 3 +- tests/ward-event-permissions.test.ts | 2 +- ...-item15-arrival-support-lines.dom.test.tsx | 231 ++++++++++++++++++ tests/ward-support-notifications.test.ts | 10 +- 6 files changed, 243 insertions(+), 12 deletions(-) create mode 100644 tests/ward-item15-arrival-support-lines.dom.test.tsx diff --git a/docs/ward-flow/permission-matrix.md b/docs/ward-flow/permission-matrix.md index 9a9575ab6f..cd06f40d6f 100644 --- a/docs/ward-flow/permission-matrix.md +++ b/docs/ward-flow/permission-matrix.md @@ -146,7 +146,7 @@ and the reducer still limit each desk to records in its own place. | `RECORD_RETURNED_FROM_EMERGENCY_DEPARTMENT` | Y | Y | - | Y | - | - | - | - | - | - | | `RECORD_SITE_HANDOVER_SIGN_OFF` | Y | Y | - | - | Y | - | - | - | - | - | | `RECORD_STAY_DISCHARGE_BLOCKER` | Y | Y | - | Y | Y | - | - | - | - | - | -| `RECORD_SUPPORT_NOTIFICATION` | Y | Y | - | Y | - | - | - | - | - | - | +| `RECORD_SUPPORT_NOTIFICATION` | Y | Y | - | Y | - | Y | - | - | - | - | | `RECORD_TRANSPORT_CAD` | Y | Y | Y | Y | - | Y | Y | - | - | - | | `RECORD_TRANSPORT_NEED` | Y | Y | - | Y | - | Y | Y | - | - | - | | `RECORD_TRIAGE_SIGNED` | Y | Y | - | Y | - | Y | Y | - | - | - | diff --git a/src/components/ward-management/ed/ed-admission-checklist.tsx b/src/components/ward-management/ed/ed-admission-checklist.tsx index ef6db8080b..806807fd6c 100644 --- a/src/components/ward-management/ed/ed-admission-checklist.tsx +++ b/src/components/ward-management/ed/ed-admission-checklist.tsx @@ -32,12 +32,7 @@ import styles from "./ed-admission-checklist.module.css"; */ export function EdAdmissionChecklist({ movement, referrals }: { movement: Movement; referrals: readonly Referral[] }) { const raise = useWardRaise("ed"); - const records = useOptionalWardFlowSelect( - "patients", - "movements", - "plannedAdmissions", - "supportNotifications", - ); + const records = useOptionalWardFlowSelect("patients", "movements", "plannedAdmissions", "supportNotifications"); const now = useWardFlowClock(0); const patient = useMemo( () => (records ? createPatientResolver({ ...records, referrals })(movement).patient : undefined), diff --git a/src/components/ward-management/movements/support-notification-checklist.tsx b/src/components/ward-management/movements/support-notification-checklist.tsx index 2e5d6c3ca6..ec319f8a1c 100644 --- a/src/components/ward-management/movements/support-notification-checklist.tsx +++ b/src/components/ward-management/movements/support-notification-checklist.tsx @@ -89,7 +89,8 @@ export function SupportNotificationChecklist({ }) { const routeRole = wardChromeRole(usePathname() ?? ""); const role = roleOverride ?? routeRole; - const canRecord = canDispatch(role, "RECORD_SUPPORT_NOTIFICATION"); + // ED may raise the event only for the arrival checklist's advocacy line before arrival (item 15). + const canRecord = role !== "ed" && canDispatch(role, "RECORD_SUPPORT_NOTIFICATION"); const { movements, admissions, patients, referrals, supportNotifications, dispatch, rejections } = useWardFlowSelect( "movements", "admissions", diff --git a/tests/ward-event-permissions.test.ts b/tests/ward-event-permissions.test.ts index 08c68d2ce4..872f84b865 100644 --- a/tests/ward-event-permissions.test.ts +++ b/tests/ward-event-permissions.test.ts @@ -529,7 +529,7 @@ describe("who may raise which event", () => { CANCEL_PLANNED_ADMISSION: ["coordinator", "bed_manager", "ward"], CONVERT_PLANNED_ADMISSION: ["ward", "coordinator"], // Advisory carer/PSP/MHAS checklist, 9 Oct 2026 (stream B): recorded where the move completes. - RECORD_SUPPORT_NOTIFICATION: ["ward", "coordinator"], + RECORD_SUPPORT_NOTIFICATION: ["ward", "coordinator", "ed"], SEND_RELEASE_SUPPORT_NOTICE: ["ward", "coordinator"], RECORD_DISCHARGE_DEPENDENCY: ["ward", "coordinator"], RECORD_DISCHARGE_PLAN_CHANGE: ["ward", "coordinator"], diff --git a/tests/ward-item15-arrival-support-lines.dom.test.tsx b/tests/ward-item15-arrival-support-lines.dom.test.tsx new file mode 100644 index 0000000000..6239c61e26 --- /dev/null +++ b/tests/ward-item15-arrival-support-lines.dom.test.tsx @@ -0,0 +1,231 @@ +// Feature item 15 (D-134): interpreter, Aboriginal liaison and advocacy service lines at arrival. +import { act, fireEvent, render, screen, within } from "@testing-library/react"; +import { describe, expect, it } from "vitest"; + +import { EdAdmissionChecklist } from "@/components/ward-management/ed/ed-admission-checklist"; +import { admissionChecklist } from "@/components/ward-management/ward-admission-checklist"; +import { seedWardFlowState, wardFlowReducer, type WardFlowState } from "@/components/ward-management/ward-flow-reducer"; +import { WardFlowProvider, useWardFlowSelect } from "@/components/ward-management/ward-flow-provider"; +import type { Movement } from "@/components/ward-management/ward-model"; +import { + supportNotificationChecklist, + supportNotificationInboxItems, +} from "@/components/ward-management/ward-support-notifications"; +import { NOW_ANCHOR } from "@/components/ward-management/ward-sites"; + +const NOW = NOW_ANCHOR; +const seed = seedWardFlowState(); +const base = seed.movements.find((movement) => movement.id === "WF-005")!; + +function movement(overrides: Partial = {}): Movement { + return { ...base, legalStatus: "Voluntary", ...overrides }; +} + +const keys = (m: Movement, context: Parameters[3] = {}) => + admissionChecklist(m, [], undefined, context).map((item) => item.key); + +const line = (m: Movement, key: string, context: Parameters[3] = {}) => + admissionChecklist(m, [], undefined, context).find((item) => item.key === key); + +const FIVE = ["medical_clearance", "legal_form", "transport", "contraband_search", "medication_chart"]; + +describe("each line appears only when its condition is recorded", () => { + it("shows none of the three for a voluntary patient with nothing recorded", () => { + expect(keys(movement())).toEqual(FIVE); + expect( + keys(movement(), { + patient: { + interpreterLanguage: "English — no interpreter required", + aboriginalOrTorresStraitIslanderStatus: "Neither Aboriginal nor Torres Strait Islander", + }, + }), + ).toEqual(FIVE); + expect(keys(movement(), { patient: { aboriginalOrTorresStraitIslanderStatus: "Not stated" } })).toEqual(FIVE); + }); + + it("offers Interpreter booked only when an interpreter need is recorded, outstanding by default", () => { + const context = { patient: { interpreterLanguage: "Italian — interpreter required" } }; + expect(keys(movement(), context)).toContain("interpreter_booked"); + expect(line(movement(), "interpreter_booked", context)).toMatchObject({ + label: "Interpreter booked", + state: "outstanding", + }); + expect(line(movement({ interpreterBooked: true }), "interpreter_booked", context)?.state).toBe("done"); + }); + + it("offers Aboriginal liaison for Aboriginal, Torres Strait Islander or both, never assumed", () => { + for (const status of [ + "Aboriginal, not Torres Strait Islander", + "Torres Strait Islander, not Aboriginal", + "Aboriginal and Torres Strait Islander", + ]) { + const context = { patient: { aboriginalOrTorresStraitIslanderStatus: status } }; + expect(line(movement(), "aboriginal_liaison_offered", context)).toMatchObject({ + label: "Aboriginal liaison offered", + state: "outstanding", + detail: "Not recorded", + }); + } + }); + + it("keeps the liaison line away from the interpreter line", () => { + const order = keys(movement(), { + patient: { + interpreterLanguage: "Tagalog — interpreter required", + aboriginalOrTorresStraitIslanderStatus: "Torres Strait Islander, not Aboriginal", + }, + }); + expect(Math.abs(order.indexOf("interpreter_booked") - order.indexOf("aboriginal_liaison_offered"))).toBeGreaterThan( + 1, + ); + }); + + it("offers Mental Health Advocacy Service told for a detained move only", () => { + expect(keys(movement({ legalStatus: "Referred for psychiatric examination" }))).not.toContain("mhas_told"); + for (const legalStatus of ["Detained awaiting examination", "Involuntary inpatient"] as const) { + expect(line(movement({ legalStatus }), "mhas_told")).toMatchObject({ + label: "Mental Health Advocacy Service told", + state: "outstanding", + supportNotification: { occasion: "admission", subjectId: base.id }, + }); + } + }); +}); + +describe("recording", () => { + it("records interpreter and liaison with RECORD_ARRIVAL_CHECK, only when they apply", () => { + const interpreterMove = seed.movements.find((candidate) => candidate.id === "WF-016")!; + const booked = wardFlowReducer(seed, { + type: "RECORD_ARRIVAL_CHECK", + role: "ed", + now: NOW, + movementId: interpreterMove.id, + check: "interpreter_booked", + done: true, + }); + expect(booked.rejections).toHaveLength(seed.rejections.length); + expect(booked.movements.find((candidate) => candidate.id === interpreterMove.id)?.interpreterBooked).toBe(true); + // WF-016's record holds no Aboriginal or Torres Strait Islander identity. + const refused = wardFlowReducer(seed, { + type: "RECORD_ARRIVAL_CHECK", + role: "ed", + now: NOW, + movementId: interpreterMove.id, + check: "aboriginal_liaison_offered", + done: true, + }); + expect(refused.rejections.at(-1)?.reason).toMatch(/No Aboriginal or Torres Strait Islander identity/); + const liaison = wardFlowReducer(seed, { + type: "RECORD_ARRIVAL_CHECK", + role: "ed", + now: NOW, + movementId: "WF-015", + check: "aboriginal_liaison_offered", + done: true, + }); + expect(liaison.movements.find((candidate) => candidate.id === "WF-015")?.aboriginalLiaisonOffered).toBe(true); + }); + + function arrive(state: WardFlowState, id: string): WardFlowState { + return { + ...state, + movements: state.movements.map((candidate) => + candidate.id === id + ? ({ ...candidate, stage: "arrived", closure: { outcome: "arrived", at: NOW } } as Movement) + : candidate, + ), + }; + } + + it("an ED tick before arrival is the same record the support checklist and alert read", () => { + const recorded = wardFlowReducer(seed, { + type: "RECORD_SUPPORT_NOTIFICATION", + role: "ed", + now: NOW, + occasion: "admission", + movementId: "WF-005", + party: "mhas", + outcome: "told", + who: "Advocate on duty", + }); + expect(recorded.supportNotifications?.at(-1)).toMatchObject({ subjectId: "WF-005", party: "mhas" }); + // ED records nothing else. + const carer = wardFlowReducer(seed, { + type: "RECORD_SUPPORT_NOTIFICATION", + role: "ed", + now: NOW, + occasion: "admission", + movementId: "WF-005", + party: "carer", + outcome: "told", + who: "Carer", + }); + expect(carer.rejections.at(-1)?.reason).toMatch(/only the advocacy service notice/); + + const arrived = arrive(recorded, "WF-005"); + expect(supportNotificationChecklist(arrived.supportNotifications, "admission", "WF-005").mhas?.outcome).toBe( + "told", + ); + const task = supportNotificationInboxItems(arrived, NOW).find((item) => item.movementId === "WF-005"); + expect(task?.detail).toMatch(/^Carer, PSP not recorded/); + }); + + it("a ward record after arrival shows as told on the arrival checklist", () => { + const arrived = arrive(seed, "WF-005"); + const recorded = wardFlowReducer(arrived, { + type: "RECORD_SUPPORT_NOTIFICATION", + role: "ward", + now: NOW, + occasion: "admission", + movementId: "WF-005", + party: "mhas", + outcome: "told", + who: "Advocate on duty", + }); + const moved = recorded.movements.find((candidate) => candidate.id === "WF-005")!; + expect(line(moved, "mhas_told", { supportNotifications: recorded.supportNotifications, now: NOW })).toMatchObject({ + state: "done", + }); + }); +}); + +function Live({ id }: { id: string }) { + const { movements, referrals } = useWardFlowSelect("movements", "referrals"); + return candidate.id === id)!} referrals={referrals} />; +} + +describe("the ED arrival checklist card", () => { + it("ticks MHAS told through the shared support record, nothing ticked by default", async () => { + render( + + + , + ); + const card = screen.getByTestId("ward-ed-admission-checklist"); + const row = within(card.querySelector('[data-item="mhas_told"]') as HTMLElement); + expect(row.getByText("Mental Health Advocacy Service told")).toBeTruthy(); + expect(row.getByText("Outstanding")).toBeTruthy(); + fireEvent.click(row.getByRole("button", { name: "Record told: Mental Health Advocacy Service" })); + fireEvent.change(row.getByLabelText("Who was told"), { target: { value: "Advocate on duty" } }); + await act(async () => { + fireEvent.click(row.getByRole("button", { name: "Save" })); + }); + const after = within(card.querySelector('[data-item="mhas_told"]') as HTMLElement); + expect(after.getByText("Done")).toBeTruthy(); + expect(after.getByText(/Told Advocate on duty/)).toBeTruthy(); + }); + + it("shows the interpreter line for a seeded arrival that needs one, unticked", () => { + render( + + + , + ); + const card = screen.getByTestId("ward-ed-admission-checklist"); + const row = within(card.querySelector('[data-item="interpreter_booked"]') as HTMLElement); + expect(row.getByText("Outstanding")).toBeTruthy(); + expect(row.getByRole("button", { name: "Record done: interpreter booked" })).toBeTruthy(); + expect(card.querySelector('[data-item="mhas_told"]')).toBeNull(); + expect(card.querySelector('[data-item="aboriginal_liaison_offered"]')).toBeNull(); + }); +}); diff --git a/tests/ward-support-notifications.test.ts b/tests/ward-support-notifications.test.ts index 9e95b62824..f06ae0fbd2 100644 --- a/tests/ward-support-notifications.test.ts +++ b/tests/ward-support-notifications.test.ts @@ -173,10 +173,14 @@ describe("RECORD_SUPPORT_NOTIFICATION", () => { expect(next.supportNotifications?.[0]).toMatchObject({ subjectId: "AD-LEFT-01", contactedAt: NOW - 30 }); }); - it("refuses a role outside ward and coordinator", () => { - const next = wardFlowReducer(involuntarySeed(), told({ role: "ed" })); + it("refuses a role outside ward, coordinator and (advocacy only, before arrival) ED", () => { + const next = wardFlowReducer(involuntarySeed(), told({ role: "officer" })); expect(next.supportNotifications).toBeUndefined(); - expect(lastRejection(next)).toMatch(/requires role ward or coordinator/); + expect(lastRejection(next)).toMatch(/requires role ward or coordinator or ed/); + // Item 15 (D-134): ED records only the advocacy notice, and only before arrival. WF-300 has arrived. + const edAfterArrival = wardFlowReducer(involuntarySeed(), told({ role: "ed", party: "mhas", who: "Advocate" })); + expect(edAfterArrival.supportNotifications).toBeUndefined(); + expect(lastRejection(edAfterArrival)).toMatch(/only the advocacy service notice, before the patient arrives/); }); it("refuses a voluntary or unfinished move, and the wrong occasion", () => { From 3af5f107ad45442f0b77a1ffb09322d5c584ff37 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 11 Nov 2026 02:55:36 +0000 Subject: [PATCH 03/14] Show the under 18 on an adult ward notice (item 4, held) Feature item 4 (Josh, 11 Nov 2026). The bed record (desktop drawer, under the hero, and the phone bed sheet, under the four facts) shows, in Josh's exact words: "Under 18 on an adult ward. Check the Mental Health Act 2014 requirements for a child on an adult ward, including notifying the Chief Psychiatrist." It is read from the date of birth against the demo day and the ward's cohort (not Youth). No section number or time limit is quoted. One optional typed field, "Chief Psychiatrist notified at", opens empty (D-93). Saving records RECORD_CHIEF_PSYCHIATRIST_NOTIFIED (ward or coordinator; a ward only for its own stay; never later than now), stored as Admission.chiefPsychiatristNotice { notifiedAt, at, by }. The notice then stays visible but quiet. It goes at 18 or on a youth ward, never blocks a bed offer and pre-selects nothing. A transfer starts the new stay without the record. The new event is registered in the events union, EVENT_ROLE, persistence classification, history, subject ids, storage validation, INSTANT_FIELDS (notifiedAt), the code map and the regenerated permission matrix. Seed: AD-SCGA-09 (SCGH adult open) is now a synthetic seventeen year old. The inline form holds register also lists item 15's ED checklist, which was missing. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01GxPPxmfmBRcfvStcCSeCwK --- docs/ward-flow/code-map/engine.md | 1 + docs/ward-flow/permission-matrix.md | 3 +- .../ward-management/ward-admissions-seed.ts | 10 +- .../ward-management/ward-admissions.ts | 12 + .../ward-discharge-follow-through-storage.ts | 13 +- .../ward-management/ward-flow-event-roles.ts | 2 + .../ward-management/ward-flow-events.ts | 6 +- .../ward-flow-persistence-classification.ts | 3 + .../ward-flow-protected-record-events.ts | 5 +- .../ward-flow-reducer-slices.ts | 7 +- .../ward-management/ward-flow-reducer.ts | 4 +- .../ward-management/ward-flow-subject-id.ts | 1 + .../ward-flow-under-18-events.ts | 53 +++++ .../ward-management/ward-history.ts | 4 + .../ward-management/ward-reanchor.ts | 2 + .../ward-under-18-adult-ward.ts | 44 ++++ .../ward/ward-bed-dossier-drawer.tsx | 6 + .../ward/ward-bed-dossier-phone.tsx | 4 + .../ward/ward-under-18-notice.module.css | 56 +++++ .../ward/ward-under-18-notice.tsx | 141 ++++++++++++ tests/helpers/ward-engine-fuzz.ts | 13 ++ tests/helpers/ward-legal-figure-sweep.ts | 9 + tests/ward-admission-model.test.ts | 9 + tests/ward-event-permissions.test.ts | 1 + tests/ward-history.test.ts | 4 +- tests/ward-inline-form-holds.test.ts | 8 + ...ard-item4-under-18-adult-ward.dom.test.tsx | 211 ++++++++++++++++++ tests/ward-referral-model.test.ts | 2 + 28 files changed, 621 insertions(+), 13 deletions(-) create mode 100644 src/components/ward-management/ward-flow-under-18-events.ts create mode 100644 src/components/ward-management/ward-under-18-adult-ward.ts create mode 100644 src/components/ward-management/ward/ward-under-18-notice.module.css create mode 100644 src/components/ward-management/ward/ward-under-18-notice.tsx create mode 100644 tests/ward-item4-under-18-adult-ward.dom.test.tsx diff --git a/docs/ward-flow/code-map/engine.md b/docs/ward-flow/code-map/engine.md index 962f588726..ddd834b59b 100644 --- a/docs/ward-flow/code-map/engine.md +++ b/docs/ward-flow/code-map/engine.md @@ -76,6 +76,7 @@ fails when a `ward-flow-*-events.ts` file is missing from this list. | `ward-flow-review-ready-events.ts` | `reduceReviewReadyEvent` | `REQUEST_PSYCH_REVIEW`, `RECORD_PSYCH_REVIEW_SEEN`, `MARK_WARD_READY_FOR_NEXT` (9 Nov 2026; the reducer imports it directly) | | `ward-flow-restrictive-practice-events.ts` | `reduceRestrictivePracticeEvent` | restrictive practice start and end, ward incidents, seclusion room status | | `ward-flow-transport-events.ts` | `reduceTransportEvent` | booking, accepting, en route, collected, arrived, handover ready, arrival details, lateness, stop and cancel | +| `ward-flow-under-18-events.ts` | `reduceChiefPsychiatristNotified` | `RECORD_CHIEF_PSYCHIATRIST_NOTIFIED` (item 4: when the Chief Psychiatrist was notified, under 18 on an adult ward) | | `ward-flow-undo-events.ts` | `reduceUndoEvent` | the `UNDO_*` events other than `UNDO_AUDIT_REVIEW` | | `ward-flow-ward-closure-events.ts` | `reduceWardClosureEvent` | `CLOSE_WARD_TO_ADMISSIONS`, `REOPEN_WARD_TO_ADMISSIONS` | | `ward-flow-weekend-review-events.ts` | `reduceWeekendDischargeReview` | `MARK_WEEKEND_DISCHARGE_REVIEWED` (the weekend discharge review tick) | diff --git a/docs/ward-flow/permission-matrix.md b/docs/ward-flow/permission-matrix.md index cd06f40d6f..82afb30556 100644 --- a/docs/ward-flow/permission-matrix.md +++ b/docs/ward-flow/permission-matrix.md @@ -18,7 +18,7 @@ and the reducer still limit each desk to records in its own place. | Backend | `deskCommand`, the role clause of `validSharedCommand` and `commandRefusal` (`backend/ward-flow/engine.ts`); no role is refused 403 in `shared-http.mjs` | Called per cell | | Database | Row level security policies and grants in `backend/ward-flow/migrations/` and `infra/` | SQL read as text | -**193 actions x 10 desks = 1930 cells.** +**194 actions x 10 desks = 1940 cells.** ## Matrix @@ -102,6 +102,7 @@ and the reducer still limit each desk to records in its own place. | `RECORD_AWAY_AT_EMERGENCY_DEPARTMENT` | Y | Y | - | Y | - | - | - | - | - | - | | `RECORD_BED_MEETING_ACTION` | Y | Y | - | - | - | - | - | - | - | - | | `RECORD_CARE_PLAN` | Y | Y | - | Y | - | Y | Y | - | - | - | +| `RECORD_CHIEF_PSYCHIATRIST_NOTIFIED` | Y | Y | - | Y | - | - | - | - | - | - | | `RECORD_CLINICAL_CONTACT` | Y | Y | - | - | - | - | Y | - | - | - | | `RECORD_COMMUNITY_TREATMENT_ORDER` | Y | Y | - | - | - | - | Y | - | - | - | | `RECORD_COUNTRY_EXTENSION` | Y | Y | - | - | - | Y | - | - | - | - | diff --git a/src/components/ward-management/ward-admissions-seed.ts b/src/components/ward-management/ward-admissions-seed.ts index 0c7a7b01b5..3607f648fd 100644 --- a/src/components/ward-management/ward-admissions-seed.ts +++ b/src/components/ward-management/ward-admissions-seed.ts @@ -1246,6 +1246,13 @@ function occupantCohort(unitId: string): GeneratedSeedPatientCohort { return "Adult"; } +/** + * Feature item 4 (11 Nov 2026): one synthetic seventeen year old on an adult ward (SCGH adult open, + * AD-SCGA-09), so the under 18 on an adult ward notice can be seen. Born September 2009, so the + * person stays under 18 through the demonstration year. + */ +const UNDER_18_ON_ADULT_WARD = "PT-G-AD-SCGA-09"; + /** * The generated people in these beds (seed-link plan task T1 names them `PT-G-`), * built here, next to the records they describe, as `ward-patients-seed.ts` asks. Owner rule, @@ -1261,4 +1268,5 @@ export const generatedOccupantPatients: Patient[] = wardAdmissions cohort: occupantCohort(admission.unitId), index, }), - ); + ) + .map((patient) => (patient.id === UNDER_18_ON_ADULT_WARD ? { ...patient, dateOfBirth: "2009-09-20" } : patient)); diff --git a/src/components/ward-management/ward-admissions.ts b/src/components/ward-management/ward-admissions.ts index e83efbff53..cd23155e57 100644 --- a/src/components/ward-management/ward-admissions.ts +++ b/src/components/ward-management/ward-admissions.ts @@ -746,6 +746,17 @@ export type Admission = { readonly at: Instant; readonly by: WardFlowRole; }>; + /** + * Item 4 (Josh, 11 Nov 2026): when the Chief Psychiatrist was notified that this person, under 18, + * is on an adult ward (`RECORD_CHIEF_PSYCHIATRIST_NOTIFIED`). `notifiedAt` is the time a person + * typed, never pre-filled (D-93). Records what a person says happened; nothing here decides + * whether a notice is required, computes a deadline or blocks anything. Absent until recorded. + */ + chiefPsychiatristNotice?: { + readonly notifiedAt: Instant; + readonly at: Instant; + readonly by: WardFlowRole; + }; /** Where this person went, once they have gone. `null` until then. */ leavingDestination: LeavingDestination | null; /** When they went. `null` until then. */ @@ -843,6 +854,7 @@ const ADMISSION_FIELD_PRESENCE: Record = { stayBlockClearances: true, stayBlockRecords: true, weekendDischargeReviews: true, + chiefPsychiatristNotice: true, leavingDestination: true, leftAt: true, followUp: true, diff --git a/src/components/ward-management/ward-discharge-follow-through-storage.ts b/src/components/ward-management/ward-discharge-follow-through-storage.ts index c9caa7bfc0..5916e4f36f 100644 --- a/src/components/ward-management/ward-discharge-follow-through-storage.ts +++ b/src/components/ward-management/ward-discharge-follow-through-storage.ts @@ -5,7 +5,8 @@ import { WARD_FLOW_ROLE_LABELS } from "./ward-flow-roles"; /** * Features 6, 37, 13 and 14 (9 Nov 2026): the stored admission fields for the discharge date trail, - * the discharge checklist, the community follow-up reply and the weekend discharge review ticks. Finite times and listed values only; + * the discharge checklist, the community follow-up reply and the weekend discharge review ticks; + * item 4 (11 Nov 2026) adds the Chief Psychiatrist notified time. Finite times and listed values only; * absent in older saves. Spread into the admission schema in `ward-flow-storage-validation.ts`, * which is at its line cap. */ @@ -24,4 +25,14 @@ export const dischargeFollowThroughFields = { ), ), ), + // Item 4 (11 Nov 2026): when the Chief Psychiatrist was notified, as typed. Two times and a role. + chiefPsychiatristNotice: z.optional( + z.readonly( + z.strictObject({ + notifiedAt: z.number(), + at: z.number(), + by: z.enum(Object.keys(WARD_FLOW_ROLE_LABELS) as [string, ...string[]]), + }), + ), + ), }; diff --git a/src/components/ward-management/ward-flow-event-roles.ts b/src/components/ward-management/ward-flow-event-roles.ts index db9c17d74b..d392aad9f2 100644 --- a/src/components/ward-management/ward-flow-event-roles.ts +++ b/src/components/ward-management/ward-flow-event-roles.ts @@ -537,6 +537,8 @@ export const EVENT_ROLE: Record RECORD_WARD_DIAGNOSIS: ["ward", "coordinator"], // Feature 14 (Josh, 9 Nov 2026): the ward or coordinator ticks a weekend discharge as reviewed. MARK_WEEKEND_DISCHARGE_REVIEWED: ["ward", "coordinator"], + // Item 4 (11 Nov 2026): the ward or the coordinator records when the Chief Psychiatrist was notified. + RECORD_CHIEF_PSYCHIATRIST_NOTIFIED: ["ward", "coordinator"], SET_DISCHARGE_BARRIER: ["ward", "coordinator"], // Item 5 (Josh, 9 Nov 2026): the same roles that record a discharge hold-up. SET_CLINICALLY_READY: ["ward", "coordinator"], diff --git a/src/components/ward-management/ward-flow-events.ts b/src/components/ward-management/ward-flow-events.ts index a9965b2885..2998c96f07 100644 --- a/src/components/ward-management/ward-flow-events.ts +++ b/src/components/ward-management/ward-flow-events.ts @@ -2544,12 +2544,12 @@ export type WardFlowEvent = | import("./discharges/discharge-check-events").DischargeDeskEvent | ObservationLevelEvent | RecordWardDiagnosisEvent - // Feature 14 (Josh, 9 Nov 2026): the weekend discharge review tick. + // Feature 14 (9 Nov 2026): the weekend discharge review tick; item 4 (11 Nov 2026): Chief Psychiatrist notified. | MarkWeekendDischargeReviewedEvent + | import("./ward-flow-under-18-events").ChiefPsychiatristNotifiedEvent | import("./ward-flow-referral-ask-events").ReferralAskEvent - // Closing-the-loop (package E): return requested vs home service agreed. + // Closing-the-loop (package E): return requested vs home service agreed; an on-call directory entry checked now. | import("./out-of-area/home-service-return").HomeServiceReturnEvent - // Closing-the-loop (package E): an on-call directory entry checked now. | import("./on-call/on-call-checks").DirectoryCheckEvent // Q61 (Josh, 31 Oct 2026): the site bed manager's site handover sign-off, and its Undo. | import("./site-sign-off/site-handover-sign-off").SiteHandoverSignOffEvent diff --git a/src/components/ward-management/ward-flow-persistence-classification.ts b/src/components/ward-management/ward-flow-persistence-classification.ts index 8dda079295..389d748b78 100644 --- a/src/components/ward-management/ward-flow-persistence-classification.ts +++ b/src/components/ward-management/ward-flow-persistence-classification.ts @@ -330,6 +330,9 @@ const WARD_FLOW_TEXT_SAFE_EVENT_TYPE_TUPLE = [ "RECORD_WARD_DIAGNOSIS", // Feature 14: an admission id, a unit id and instants. No typed text. "MARK_WEEKEND_DISCHARGE_REVIEWED", + // Item 4 (11 Nov 2026): an admission id, a unit id and instants (the notified time is a typed clock + // time read to an instant, never free text). No typed text. + "RECORD_CHIEF_PSYCHIATRIST_NOTIFIED", // Closing-the-loop (package E): an admission id, a site code, closed lists and instants. No typed text. "RECORD_HOME_SERVICE_RETURN", // Closing-the-loop (package E): a directory entry id only. No typed text. diff --git a/src/components/ward-management/ward-flow-protected-record-events.ts b/src/components/ward-management/ward-flow-protected-record-events.ts index 400bbb506a..9762d395b1 100644 --- a/src/components/ward-management/ward-flow-protected-record-events.ts +++ b/src/components/ward-management/ward-flow-protected-record-events.ts @@ -376,16 +376,19 @@ export function reduceProtectedRecordEvent( sexMix: adjustSexMix(receiving.sexMix, mixSexOf(admission.gender, admission.sex), 1), }); // The receiving stay starts its own discharge date plan: the date, its trail and the weekend - // review ticks all belong to the sending ward's plan. + // review ticks all belong to the sending ward's plan. Item 4: the Chief Psychiatrist notified + // time belongs to the sending ward's stay too, so a new adult ward starts with the full notice. const { bedNumber: _sendingBedNumber, dischargeDateTrail: _sendingDateTrail, weekendDischargeReviews: _sendingWeekendReviews, + chiefPsychiatristNotice: _sendingChiefPsychiatristNotice, ...admissionWithoutBedNumber } = admission; void _sendingBedNumber; void _sendingDateTrail; void _sendingWeekendReviews; + void _sendingChiefPsychiatristNotice; next = { ...next, admissions: [ diff --git a/src/components/ward-management/ward-flow-reducer-slices.ts b/src/components/ward-management/ward-flow-reducer-slices.ts index 35552a13a4..5bbcfa689e 100644 --- a/src/components/ward-management/ward-flow-reducer-slices.ts +++ b/src/components/ward-management/ward-flow-reducer-slices.ts @@ -28,6 +28,7 @@ import { reduceWeekendDischargeReview, } from "./ward-flow-weekend-review-events"; import { reduceWardClosureEvent } from "./ward-flow-ward-closure-events"; +import { type ChiefPsychiatristNotifiedEvent, reduceChiefPsychiatristNotified } from "./ward-flow-under-18-events"; import { reducePatientArchive } from "./ward-patient-archive-reducer"; import { reducePatientCarePlanEvent } from "./ward-patient-care-plan-reducer"; import { reducePatientRegistration } from "./ward-patient-registration-reducer"; @@ -36,15 +37,17 @@ import { reduceTriageSigned } from "./triage/triage-signed-reducer"; // A local command can seed a demonstration scenario, so its networks load with the slices. import "./ward-scenario-networks"; -/** Features 14, 37 and 13 (9 Nov 2026): the weekend discharge review, discharge checklist and follow-up reply. */ +/** Features 14, 37 and 13 (9 Nov 2026): the weekend discharge review, discharge checklist and follow-up reply. + * Item 4 (11 Nov 2026): the Chief Psychiatrist notified time for a person under 18 on an adult ward. */ // Types come from the slice itself: this file may import only slices (ward-reducer-lazy-slices test). type CheckSliceArgs = Parameters; function reduceDischargeFollowThroughEvent( state: CheckSliceArgs[0], - event: DischargeCheckEvent | MarkWeekendDischargeReviewedEvent, + event: DischargeCheckEvent | MarkWeekendDischargeReviewedEvent | ChiefPsychiatristNotifiedEvent, reject: CheckSliceArgs[2], ): ReturnType { + if (event.type === "RECORD_CHIEF_PSYCHIATRIST_NOTIFIED") return reduceChiefPsychiatristNotified(state, event, reject); return event.type === "MARK_WEEKEND_DISCHARGE_REVIEWED" ? reduceWeekendDischargeReview(state, event, reject) : reduceDischargeCheckEvent(state, event, reject); diff --git a/src/components/ward-management/ward-flow-reducer.ts b/src/components/ward-management/ward-flow-reducer.ts index fa99eeb89f..35263f14e3 100644 --- a/src/components/ward-management/ward-flow-reducer.ts +++ b/src/components/ward-management/ward-flow-reducer.ts @@ -2352,12 +2352,12 @@ export function reduceClinicalEvent( return reject(state, event, `${event.type} reason must be chosen from the listed reasons`); return reducePlannedAdmission(state, event, decision); } - case "CONVERT_PLANNED_ADMISSION": { + case "CONVERT_PLANNED_ADMISSION": return reducePlannedAdmission(state, event, decision); - } case "RECORD_WARD_DIAGNOSIS": return reducerSlices().reduceWardDiagnosis(state, event, reject); case "MARK_WEEKEND_DISCHARGE_REVIEWED": + case "RECORD_CHIEF_PSYCHIATRIST_NOTIFIED": case "RECORD_DISCHARGE_CHECK": case "RECORD_FOLLOW_UP_REPLY": return reducerSlices().reduceDischargeFollowThroughEvent(state, event, reject); diff --git a/src/components/ward-management/ward-flow-subject-id.ts b/src/components/ward-management/ward-flow-subject-id.ts index 347b801d75..151c823bfd 100644 --- a/src/components/ward-management/ward-flow-subject-id.ts +++ b/src/components/ward-management/ward-flow-subject-id.ts @@ -175,6 +175,7 @@ export function subjectId(event: WardFlowEvent): string { case "SET_STEP_DOWN_CANDIDATE": case "RECORD_WARD_DIAGNOSIS": case "MARK_WEEKEND_DISCHARGE_REVIEWED": + case "RECORD_CHIEF_PSYCHIATRIST_NOTIFIED": case "RECORD_DISCHARGE_CHECK": case "RECORD_FOLLOW_UP_REPLY": // Closing-the-loop (package E). diff --git a/src/components/ward-management/ward-flow-under-18-events.ts b/src/components/ward-management/ward-flow-under-18-events.ts new file mode 100644 index 0000000000..d1028d454c --- /dev/null +++ b/src/components/ward-management/ward-flow-under-18-events.ts @@ -0,0 +1,53 @@ +import type { Instant } from "./ward-clock"; +import type { WardFlowEvent } from "./ward-flow-events"; +import type { WardFlowState } from "./ward-flow-reducer"; +import type { WardFlowRole } from "./ward-flow-roles"; + +/** + * Feature item 4 (Josh, 11 Nov 2026): records when the Chief Psychiatrist was notified that a person + * under 18 is on an adult ward. `notifiedAt` is the time a person typed (D-93), never pre-filled. + * A record of what a person says happened: it decides nothing, computes no deadline and blocks no + * bed offer. A new record replaces the stay's previous one, so a mistyped time can be corrected. + * It carries no typed text. Kept here for the events file's line cap. + */ +export type ChiefPsychiatristNotifiedEvent = { + type: "RECORD_CHIEF_PSYCHIATRIST_NOTIFIED"; + role: WardFlowRole; + now: Instant; + actingUnitId?: string; + admissionId: string; + notifiedAt: Instant; +}; + +export function reduceChiefPsychiatristNotified( + state: WardFlowState, + event: ChiefPsychiatristNotifiedEvent, + reject: (state: WardFlowState, event: WardFlowEvent, reason: string) => WardFlowState, +): WardFlowState { + const admission = state.admissions.find((candidate) => candidate.id === event.admissionId); + if (!admission) return reject(state, event, `no admission found for id ${event.admissionId}`); + // Same claim-not-proof discipline as RECORD_WARD_DIAGNOSIS: a ward may only touch its own stay. + if (event.role === "ward" && event.actingUnitId !== admission.unitId) { + return reject( + state, + event, + `RECORD_CHIEF_PSYCHIATRIST_NOTIFIED was raised acting as unit ${event.actingUnitId} but admission ${admission.id} is at ${admission.unitId}`, + ); + } + if (admission.state !== "pulled" && admission.state !== "occupied") { + return reject(state, event, "RECORD_CHIEF_PSYCHIATRIST_NOTIFIED needs a current stay"); + } + if (!Number.isFinite(event.now) || !Number.isFinite(event.notifiedAt)) { + return reject(state, event, "RECORD_CHIEF_PSYCHIATRIST_NOTIFIED time is invalid"); + } + if (event.notifiedAt > event.now) { + return reject(state, event, "The notified time is later than now"); + } + const notice = { notifiedAt: event.notifiedAt, at: event.now, by: event.role }; + return { + ...state, + admissions: state.admissions.map((candidate) => + candidate.id === admission.id ? { ...candidate, chiefPsychiatristNotice: notice } : candidate, + ), + }; +} diff --git a/src/components/ward-management/ward-history.ts b/src/components/ward-management/ward-history.ts index f465852437..033e6315b7 100644 --- a/src/components/ward-management/ward-history.ts +++ b/src/components/ward-management/ward-history.ts @@ -62,6 +62,10 @@ export const EVENT_HISTORY_TABLE: Record = new Set([ "leftAt", // Feature 14 (9 Nov 2026): the weekend a discharge review tick belongs to moves with the clock. "weekendStart", + // Item 4 (11 Nov 2026): the typed time the Chief Psychiatrist was notified (`Admission.chiefPsychiatristNotice`). + "notifiedAt", // Nested one level down, inside `Admission.followUp`. `shift` recurses, so a name is still all // it takes — but a nested instant is exactly the kind this set loses track of, which is why it is // named here rather than left for the reader to notice. diff --git a/src/components/ward-management/ward-under-18-adult-ward.ts b/src/components/ward-management/ward-under-18-adult-ward.ts new file mode 100644 index 0000000000..d04ee4998c --- /dev/null +++ b/src/components/ward-management/ward-under-18-adult-ward.ts @@ -0,0 +1,44 @@ +import type { Admission } from "./ward-admissions"; +import type { Instant } from "./ward-clock"; +import type { Unit } from "./ward-model"; +import { patientAgeYears, type Patient } from "./ward-patients"; + +/** + * Feature item 4 (Josh, 11 Nov 2026): the notice on the patient card when a person under 18 is on + * an adult ward. The wording is Josh's, exactly. It quotes no section number and no time limit, + * because neither is verified. + * + * It shows from the date of birth and the ward type alone. It never blocks a bed offer and never + * pre-selects anything. Once a person types when the Chief Psychiatrist was notified, it stays + * visible but quiet. It goes at 18, or when the stay is on a youth ward. + */ +export const UNDER_18_ADULT_WARD_NOTICE = + "Under 18 on an adult ward. Check the Mental Health Act 2014 requirements for a child on an adult ward, including notifying the Chief Psychiatrist."; + +/** The one optional typed field's label (D-93: typed, never pre-filled). */ +export const CHIEF_PSYCHIATRIST_NOTIFIED_LABEL = "Chief Psychiatrist notified at"; + +export type Under18AdultWardNotice = { + /** Loud until a notified time is recorded, then quiet. Never gone while it applies. */ + tone: "loud" | "quiet"; + notifiedAt?: Instant; +}; + +/** + * Whether the notice applies: a usable date of birth that reads under 18 on the demo day, on a + * unit whose cohort is not Youth. Null otherwise, including when the date of birth is missing + * (nothing is guessed). Uses the same under 18 line as `referralAgeBand` (Youth). + */ +export function under18AdultWardNotice( + patient: Pick | undefined, + unit: Pick | undefined, + admission: Pick | undefined, + demoDay: Date, +): Under18AdultWardNotice | null { + if (!patient?.dateOfBirth || !/^\d{4}-\d{2}-\d{2}/.test(patient.dateOfBirth)) return null; + if (!unit || unit.cohort === "Youth") return null; + const age = patientAgeYears(patient, demoDay); + if (!Number.isFinite(age) || age < 0 || age >= 18) return null; + const notifiedAt = admission?.chiefPsychiatristNotice?.notifiedAt; + return notifiedAt === undefined ? { tone: "loud" } : { tone: "quiet", notifiedAt }; +} diff --git a/src/components/ward-management/ward/ward-bed-dossier-drawer.tsx b/src/components/ward-management/ward/ward-bed-dossier-drawer.tsx index 795debbbe9..988b8b5b85 100644 --- a/src/components/ward-management/ward/ward-bed-dossier-drawer.tsx +++ b/src/components/ward-management/ward/ward-bed-dossier-drawer.tsx @@ -83,6 +83,7 @@ import { PhoneBedSheet } from "./ward-bed-dossier-phone"; import { WardDrawerDischargeDate } from "./ward-drawer-discharge-date"; import { observationEditingToken } from "@/components/ward-management/ward-flow-observation-events"; import { WARD_FLOW_ROLE_LABELS } from "@/components/ward-management/ward-flow-roles"; +import { WardUnder18Notice } from "./ward-under-18-notice"; const roleLabel = (role: keyof typeof WARD_FLOW_ROLE_LABELS) => WARD_FLOW_ROLE_LABELS[role]; @@ -598,6 +599,9 @@ export function WardBedDossierDrawer({ const resolved = admission ? resolvePatientIdentity(admission) : undefined; const person = resolved?.patient; const personHref = person ? patientHref(person.id) : null; + // Feature item 4: under 18 on an adult ward, read from the date of birth and this ward's cohort. + const under18Notice = + !isReady && admission ? : null; // The ward board's departure check (`board/ward-board.tsx`): name · UMRN · bed, and here the destination. const leavingLabel = LEAVING_DESTINATIONS.find((destination) => destination.id === drawerLeavingDestination)?.label; @@ -802,6 +806,7 @@ export function WardBedDossierDrawer({ sentJourney={sentJourneyControls} leavingCriteriaNote={criteriaDepartureNote} readyNote={readyNote} + safetyNote={under18Notice} actions={bedActions} mainId={mainId} notLeftPlan={expectedPlan} @@ -1040,6 +1045,7 @@ export function WardBedDossierDrawer({ ) : ( <> {hero} + {under18Notice}
    {/* eslint-disable-next-line jsx-a11y/interactive-supports-focus -- roving tab stop: arrow keys bubble up from the focused tab, option or item */}
    diff --git a/src/components/ward-management/ward/ward-bed-dossier-phone.tsx b/src/components/ward-management/ward/ward-bed-dossier-phone.tsx index ee4e20c5b9..9c4eb6e564 100644 --- a/src/components/ward-management/ward/ward-bed-dossier-phone.tsx +++ b/src/components/ward-management/ward/ward-bed-dossier-phone.tsx @@ -96,6 +96,8 @@ interface PhoneBedSheetProps { leavingCriteriaNote?: string | null; /** Top 25: a short note on a bed being made ready (flagged). */ readyNote?: ReactNode; + /** Feature item 4: the under 18 on an adult ward notice, under the four facts. */ + safetyNote?: ReactNode; /** WT-02: the paper an involuntary stay needs first; while shown, "Record that they have left" waits. */ leavePaper?: ReactNode; /** The expected leaving line as plain words, for the not-left notice. */ @@ -147,6 +149,7 @@ export function PhoneBedSheet({ sentJourney, leavingCriteriaNote, readyNote, + safetyNote, leavePaper, actions, mainId, @@ -241,6 +244,7 @@ export function PhoneBedSheet({
    + {safetyNote}

    This person

    {bedItem?.preferredName ? {bedItem.preferredName} : null} diff --git a/src/components/ward-management/ward/ward-under-18-notice.module.css b/src/components/ward-management/ward/ward-under-18-notice.module.css new file mode 100644 index 0000000000..652fac2285 --- /dev/null +++ b/src/components/ward-management/ward/ward-under-18-notice.module.css @@ -0,0 +1,56 @@ +/* Feature item 4: the under 18 on an adult ward notice. Amber while nothing is recorded (red is act + now only, DESIGN-SYSTEM); neutral and quiet once a notified time is recorded. */ +.notice { + display: grid; + gap: var(--wf-s-2); + padding: var(--wf-s-3); + border: 1px solid color-mix(in srgb, var(--wf-warning) 45%, var(--wf-line)); + border-radius: var(--wf-r-md); + background: color-mix(in srgb, var(--wf-warning) 10%, var(--wf-surface)); + font-family: var(--wf-font); +} + +.quiet { + border-color: var(--wf-line); + background: var(--wf-surface); +} + +.text { + display: flex; + align-items: baseline; + gap: var(--wf-s-2); + margin: 0; + font-size: var(--wf-fs-13); + line-height: var(--wf-lh-13); + color: var(--wf-ink-1); +} + +.quiet .text { + font-size: var(--wf-fs-12); + line-height: var(--wf-lh-12); + color: var(--wf-ink-2); +} + +.recorded { + margin: 0; + font-size: var(--wf-fs-12); + line-height: var(--wf-lh-12); + color: var(--wf-ink-2); +} + +.form { + display: flex; + flex-wrap: wrap; + align-items: flex-end; + gap: var(--wf-s-2); + min-width: 0; +} + +.form > :first-child { + flex: 1 1 12rem; + min-width: 0; +} + +.save { + flex: none; +} diff --git a/src/components/ward-management/ward/ward-under-18-notice.tsx b/src/components/ward-management/ward/ward-under-18-notice.tsx new file mode 100644 index 0000000000..f7858410df --- /dev/null +++ b/src/components/ward-management/ward/ward-under-18-notice.tsx @@ -0,0 +1,141 @@ +"use client"; + +import { useState } from "react"; +import { usePathname } from "next/navigation"; + +import { Button, Field, StatusGlyph, TIME_FIELD_ERROR, TimeField, cx } from "@/components/wf"; +import type { Admission } from "@/components/ward-management/ward-admissions"; +import { calendarDateOf, formatInstantWithDay } from "@/components/ward-management/ward-clock"; +import { wardChromeRole } from "@/components/ward-management/ward-chrome-role"; +import { useWardFlowClock, useWardFlowSelect } from "@/components/ward-management/ward-flow-provider"; +import type { Unit } from "@/components/ward-management/ward-model"; +import type { Patient } from "@/components/ward-management/ward-patients"; +import { canDispatch } from "@/components/ward-management/ward-role-permissions"; +import { clockTextOnDay } from "@/components/ward-management/ward-support-notifications"; +import { + CHIEF_PSYCHIATRIST_NOTIFIED_LABEL, + UNDER_18_ADULT_WARD_NOTICE, + under18AdultWardNotice, +} from "@/components/ward-management/ward-under-18-adult-ward"; +import { useUndoableStep } from "@/components/ward-management/use-undoable-step"; + +import styles from "./ward-under-18-notice.module.css"; + +/** + * Feature item 4 (Josh, 11 Nov 2026): the under 18 on an adult ward notice on the bed record, the + * desktop drawer and the phone sheet alike. Read from the date of birth and the ward's cohort, + * against the demo day. One optional typed field, "Chief Psychiatrist notified at", that opens + * empty (D-93). Once a time is recorded the notice stays, quiet. It never blocks a bed offer and + * never pre-selects anything. Renders nothing when it does not apply. + */ +export function WardUnder18Notice({ + patient, + unit, + admission, +}: { + patient: Pick | undefined; + unit: Pick; + admission: Pick | undefined; +}) { + const now = useWardFlowClock(); + const { dayZero, dispatch, rejections } = useWardFlowSelect("dayZero", "dispatch", "rejections"); + const role = wardChromeRole(usePathname() ?? ""); + const [time, setTime] = useState(""); + const [typed, setTyped] = useState(""); + const [error, setError] = useState(null); + const [message, setMessage] = useState(null); + const { runRecorded } = useUndoableStep({ dispatch, rejections, now, routeRole: role, onMessage: setMessage }); + + const notice = under18AdultWardNotice(patient, unit, admission, calendarDateOf(now, dayZero)); + if (!notice || !admission) return null; + const canRecord = canDispatch(role, "RECORD_CHIEF_PSYCHIATRIST_NOTIFIED"); + const quiet = notice.tone === "quiet"; + + function save() { + if (!admission) return; + const notifiedAt = time === "" ? null : clockTextOnDay(time, 0, now); + if (notifiedAt === null) { + setError(typed.trim() === "" ? "Type the time the Chief Psychiatrist was notified" : TIME_FIELD_ERROR); + return; + } + if (notifiedAt > now) { + setError("That time is later than now"); + return; + } + setError(null); + runRecorded( + () => { + const completion = dispatch({ + type: "RECORD_CHIEF_PSYCHIATRIST_NOTIFIED", + role, + now, + actingUnitId: unit.id, + admissionId: admission.id, + notifiedAt, + }); + const clear = () => { + setTime(""); + setTyped(""); + }; + if (completion && "then" in completion) + void completion.then((result) => { + if (result.status === "accepted") clear(); + }); + else if (completion?.status === "accepted") clear(); + return completion; + }, + { success: "Chief Psychiatrist notified time saved" }, + ); + } + + return ( +
    +

    + + {UNDER_18_ADULT_WARD_NOTICE} +

    + {notice.notifiedAt !== undefined ? ( +

    + {CHIEF_PSYCHIATRIST_NOTIFIED_LABEL} {formatInstantWithDay(notice.notifiedAt, now)} +

    + ) : null} + {canRecord ? ( +
    { + event.preventDefault(); + save(); + }} + > + + + + +
    + ) : null} + {message ? ( +

    + {message} +

    + ) : null} +
    + ); +} diff --git a/tests/helpers/ward-engine-fuzz.ts b/tests/helpers/ward-engine-fuzz.ts index fbe4cbb6ec..768f8656ee 100644 --- a/tests/helpers/ward-engine-fuzz.ts +++ b/tests/helpers/ward-engine-fuzz.ts @@ -1276,6 +1276,19 @@ const MORE_BUILDERS: readonly (readonly [weight: number, builder: Builder])[] = }; }, ], + [ + 1, + (state, random) => { + const stay = stayFor(state, random, occupied); + return { + type: "RECORD_CHIEF_PSYCHIATRIST_NOTIFIED", + admissionId: id(stay), + actingUnitId: stay?.unitId ?? MISSING_ID, + // Item 4: a typed time at or before now; now and then one later than now, refused. + notifiedAt: chance(random, 0.85) ? currentNow - 30 : currentNow + 60, + }; + }, + ], [ 1, (state, random) => { diff --git a/tests/helpers/ward-legal-figure-sweep.ts b/tests/helpers/ward-legal-figure-sweep.ts index 91e3119ab5..d64a6cebf0 100644 --- a/tests/helpers/ward-legal-figure-sweep.ts +++ b/tests/helpers/ward-legal-figure-sweep.ts @@ -616,6 +616,15 @@ function candidatesForMovements( actingUnitId: admission.unitId, weekendStart: now, })); + case "RECORD_CHIEF_PSYCHIATRIST_NOTIFIED": + return state.admissions.map((admission) => ({ + type, + role, + now, + admissionId: admission.id, + actingUnitId: admission.unitId, + notifiedAt: now, + })); case "SET_DISCHARGE_BARRIER": return state.admissions.map((admission) => ({ type, diff --git a/tests/ward-admission-model.test.ts b/tests/ward-admission-model.test.ts index e5d3404d93..e1737d6cbc 100644 --- a/tests/ward-admission-model.test.ts +++ b/tests/ward-admission-model.test.ts @@ -82,6 +82,8 @@ function anAdmission(overrides: Partial = {}): Admission { stayBlockClearances: [], stayBlockRecords: [], weekendDischargeReviews: [], + // Item 4: a recorded Chief Psychiatrist notified time, carried so the field count stays honest. + chiefPsychiatristNotice: { notifiedAt: 0, at: 0, by: "ward" }, leavingDestination: null, leftAt: null, followUp: null, @@ -630,6 +632,8 @@ describe("Admission privacy — structural", () => { "stayBlockRecords", // Feature 14 (9 Nov 2026): weekend discharge review ticks. Two times and a role, no free text. "weekendDischargeReviews", + // Item 4 (11 Nov 2026): when the Chief Psychiatrist was notified. Two times and a role, no free text. + "chiefPsychiatristNotice", "leavingDestination", "leftAt", "followUp", @@ -689,6 +693,11 @@ describe("Admission privacy — structural", () => { stayBlockClearances: [], stayBlockRecords: [], weekendDischargeReviews: [], + chiefPsychiatristNotice: { + notifiedAt: DAY_ZERO + 2 * MINUTES_PER_DAY, + at: DAY_ZERO + 2 * MINUTES_PER_DAY, + by: "ward", + }, leavingDestination: "discharged-to-the-community", leftAt: DAY_ZERO + 30 * MINUTES_PER_DAY, // Populated for the same reason the ED timestamp above is: a null here would make the new diff --git a/tests/ward-event-permissions.test.ts b/tests/ward-event-permissions.test.ts index 872f84b865..d174c4b8a7 100644 --- a/tests/ward-event-permissions.test.ts +++ b/tests/ward-event-permissions.test.ts @@ -469,6 +469,7 @@ describe("who may raise which event", () => { SET_STEP_DOWN_CANDIDATE: ["ward", "coordinator"], RECORD_WARD_DIAGNOSIS: ["ward", "coordinator"], MARK_WEEKEND_DISCHARGE_REVIEWED: ["ward", "coordinator"], + RECORD_CHIEF_PSYCHIATRIST_NOTIFIED: ["ward", "coordinator"], SET_DISCHARGE_BARRIER: ["ward", "coordinator"], SET_CLINICALLY_READY: ["ward", "coordinator"], SET_DISCHARGE_CRITERIA: ["ward", "coordinator"], diff --git a/tests/ward-history.test.ts b/tests/ward-history.test.ts index 872515552a..daf1ab6eeb 100644 --- a/tests/ward-history.test.ts +++ b/tests/ward-history.test.ts @@ -68,8 +68,8 @@ describe("Ward Flow Read-Only Plain History", () => { // RECORD_TRIBUNAL_OUTCOME and SET_CULTURAL_SUPPORT_REQUEST. // Review tracker and wait list (9 Nov 2026) add REQUEST_PSYCH_REVIEW, RECORD_PSYCH_REVIEW_SEEN // and MARK_WARD_READY_FOR_NEXT. Staff needed (9 Nov 2026) adds REQUEST_WARD_STAFF and - // CLOSE_WARD_STAFF_REQUEST. - expect(allEventTypes.length).toBe(193); + // CLOSE_WARD_STAFF_REQUEST. Item 4 (11 Nov 2026) adds RECORD_CHIEF_PSYCHIATRIST_NOTIFIED. + expect(allEventTypes.length).toBe(194); for (const eventType of allEventTypes) { const config = EVENT_HISTORY_TABLE[eventType]; diff --git a/tests/ward-inline-form-holds.test.ts b/tests/ward-inline-form-holds.test.ts index 91ec97082c..a1fab8ddb2 100644 --- a/tests/ward-inline-form-holds.test.ts +++ b/tests/ward-inline-form-holds.test.ts @@ -54,6 +54,10 @@ const REGISTER: Record cover: "page form", formIn: "discharges/discharge-detail-panes.tsx", }, + "ed/ed-admission-checklist.tsx": { + cover: "held", + why: "The MHAS told form (item 15) calls useHoldOpenForm while it is open.", + }, "ed/ed-screen-row-forms.tsx": { cover: "popup", why: "Row forms render in the person sheet (A2)." }, "ed/ed-screen-row-menu.tsx": { cover: "popup" }, "ed/ed-screen.tsx": { cover: "popup", why: "The person sheet holds the row forms." }, @@ -134,6 +138,10 @@ const REGISTER: Record "ward/ward-drawer-discharge-date.tsx": { cover: "popup", why: "Opens only inside the bed drawer (WT-16)." }, "ward/ward-observation-control.tsx": { cover: "held" }, "ward/ward-screen.tsx": { cover: "held" }, + "ward/ward-under-18-notice.tsx": { + cover: "popup", + why: "The Chief Psychiatrist notified time renders only inside the bed drawer and phone bed sheet (item 4).", + }, "wards/ward-index.tsx": { cover: "no form", why: "Ask a ward to confirm its beds is one tap with no fields; the open states only fold filters and the phone rail.", diff --git a/tests/ward-item4-under-18-adult-ward.dom.test.tsx b/tests/ward-item4-under-18-adult-ward.dom.test.tsx new file mode 100644 index 0000000000..1d822ff1ed --- /dev/null +++ b/tests/ward-item4-under-18-adult-ward.dom.test.tsx @@ -0,0 +1,211 @@ +// Feature item 4 (Josh, 11 Nov 2026): the under 18 on an adult ward notice on the bed record. +// Synthetic seed only. +import { readFileSync } from "node:fs"; +import path from "node:path"; +import { createRef } from "react"; +import { act, fireEvent, render, screen, within } from "@testing-library/react"; +import { afterEach, describe, expect, it, vi } from "vitest"; + +import { WF_PHONE_QUERY } from "@/components/wf"; +import { LEAVING_DESTINATIONS } from "@/components/ward-management/ward-admissions"; +import { WardBedDossierDrawer } from "@/components/ward-management/ward/ward-bed-dossier-drawer"; +import { WardFlowProvider, useWardFlow } from "@/components/ward-management/ward-flow-provider"; +import { seedWardFlowState, wardFlowReducer } from "@/components/ward-management/ward-flow-reducer"; +import { setDeskRole } from "@/components/ward-management/ward-role-gate"; +import { NOW_ANCHOR } from "@/components/ward-management/ward-sites"; +import { + UNDER_18_ADULT_WARD_NOTICE, + under18AdultWardNotice, +} from "@/components/ward-management/ward-under-18-adult-ward"; + +const NOTICE = + "Under 18 on an adult ward. Check the Mental Health Act 2014 requirements for a child on an adult ward, including notifying the Chief Psychiatrist."; +const DAY = new Date("2026-11-11T02:00:00Z"); +const adultWard = { cohort: "Adult" as const }; +const youthWard = { cohort: "Youth" as const }; + +describe("when the notice applies (pure)", () => { + it("uses Josh's wording exactly, with no section number or time limit", () => { + expect(UNDER_18_ADULT_WARD_NOTICE).toBe(NOTICE); + expect(UNDER_18_ADULT_WARD_NOTICE).not.toMatch(/\bs(ection)?\s?\d|\d+\s?(hours?|days?|h)\b/i); + }); + + it("shows for a person under 18 on an adult ward, loud until a time is recorded", () => { + expect(under18AdultWardNotice({ dateOfBirth: "2009-09-20" }, adultWard, {}, DAY)).toEqual({ tone: "loud" }); + expect(under18AdultWardNotice({ dateOfBirth: "2009-09-20" }, { cohort: "Older adult" }, {}, DAY)?.tone).toBe( + "loud", + ); + }); + + it("does not show at 18 or over, on the 18th birthday itself", () => { + expect(under18AdultWardNotice({ dateOfBirth: "2008-11-11" }, adultWard, {}, DAY)).toBeNull(); + expect(under18AdultWardNotice({ dateOfBirth: "1990-01-01" }, adultWard, {}, DAY)).toBeNull(); + expect(under18AdultWardNotice({ dateOfBirth: "2008-11-12" }, adultWard, {}, DAY)?.tone).toBe("loud"); + }); + + it("does not show on a youth ward, or with no usable date of birth", () => { + expect(under18AdultWardNotice({ dateOfBirth: "2009-09-20" }, youthWard, {}, DAY)).toBeNull(); + expect(under18AdultWardNotice({ dateOfBirth: "" }, adultWard, {}, DAY)).toBeNull(); + expect(under18AdultWardNotice(undefined, adultWard, {}, DAY)).toBeNull(); + }); + + it("goes quiet, but stays, once a notified time is recorded", () => { + const admission = { chiefPsychiatristNotice: { notifiedAt: 500, at: 510, by: "ward" as const } }; + expect(under18AdultWardNotice({ dateOfBirth: "2009-09-20" }, adultWard, admission, DAY)).toEqual({ + tone: "quiet", + notifiedAt: 500, + }); + }); +}); + +const seed = seedWardFlowState(); +const stay = seed.admissions.find((admission) => admission.id === "AD-SCGA-09")!; +const unit = seed.units.find((candidate) => candidate.id === stay.unitId)!; + +describe("the recorded time", () => { + it("is seeded on a synthetic seventeen year old on an adult ward, with nothing recorded", () => { + expect(unit.cohort).toBe("Adult"); + const patient = seed.patients.find((candidate) => candidate.id === stay.patientId); + expect(under18AdultWardNotice(patient, unit, stay, DAY)).toEqual({ tone: "loud" }); + expect(stay.chiefPsychiatristNotice).toBeUndefined(); + }); + + it("records the typed time; a ward may record only for its own stay, never later than now", () => { + const base = { type: "RECORD_CHIEF_PSYCHIATRIST_NOTIFIED", now: NOW_ANCHOR, admissionId: stay.id } as const; + const recorded = wardFlowReducer(seed, { + ...base, + role: "ward", + actingUnitId: unit.id, + notifiedAt: NOW_ANCHOR - 30, + }); + expect(recorded.admissions.find((admission) => admission.id === stay.id)?.chiefPsychiatristNotice).toEqual({ + notifiedAt: NOW_ANCHOR - 30, + at: NOW_ANCHOR, + by: "ward", + }); + const otherWard = wardFlowReducer(seed, { ...base, role: "ward", actingUnitId: "rph-adult-secure", notifiedAt: 1 }); + expect(otherWard.rejections.at(-1)?.reason).toMatch(/acting as unit/); + const later = wardFlowReducer(seed, { ...base, role: "coordinator", notifiedAt: NOW_ANCHOR + 5 }); + expect(later.rejections.at(-1)?.reason).toBe("The notified time is later than now"); + const ed = wardFlowReducer(seed, { ...base, role: "ed", notifiedAt: NOW_ANCHOR }); + expect(ed.admissions.find((admission) => admission.id === stay.id)?.chiefPsychiatristNotice).toBeUndefined(); + }); + + it("never blocks a bed offer: no placement, eligibility or offer code reads the notice", () => { + const root = path.join(process.cwd(), "src/components/ward-management"); + for (const file of [ + "ward-eligibility.ts", + "ward/ward-referral-fit.ts", + "ward-flow-placement-events.ts", + "ward-flow-referral-answer-events.ts", + ]) { + const source = readFileSync(path.join(root, file), "utf8"); + expect(source, file).not.toMatch(/under18|under-18|chiefPsychiatrist/i); + } + }); +}); + +function Probe() { + const { admissions } = useWardFlow(); + const notice = admissions.find((row) => row.id === stay.id)?.chiefPsychiatristNotice; + return {notice ? String(notice.notifiedAt) : "none"}; +} + +function renderDrawer(admissionId: string, drawerUnit = unit) { + return render( + + + {}} + drawerLeavingDestination={LEAVING_DESTINATIONS[0].id} + setDrawerLeavingDestination={() => {}} + onRecordLeft={() => {}} + onMove={() => {}} + bedDrawerRef={createRef()} + onKeyDown={() => {}} + /> + , + ); +} + +afterEach(() => { + setDeskRole("coordinator"); + vi.unstubAllGlobals(); +}); + +describe("the notice on the bed record", () => { + it("shows for the seeded under 18 patient, field empty, nothing pre-selected, nothing blocked", () => { + renderDrawer(stay.id); + const notice = screen.getByTestId("ward-under-18-notice"); + expect(notice.getAttribute("data-tone")).toBe("loud"); + expect(within(notice).getByText(NOTICE)).toBeTruthy(); + const field = within(notice).getByLabelText("Chief Psychiatrist notified at") as HTMLInputElement; + expect(field.value).toBe(""); + expect(notice.querySelectorAll("input:checked, [aria-checked='true'], [aria-pressed='true']")).toHaveLength(0); + // The bed's own steps are all still offered and none waits on the notice. + const leave = screen.getByRole("button", { name: "Record that they have left" }) as HTMLButtonElement; + expect(leave.disabled).toBe(false); + }); + + it("entering a time makes it quiet but still visible", async () => { + renderDrawer(stay.id); + const notice = screen.getByTestId("ward-under-18-notice"); + const field = within(notice).getByLabelText("Chief Psychiatrist notified at"); + fireEvent.change(field, { target: { value: "0930" } }); + await act(async () => { + fireEvent.click(within(notice).getByRole("button", { name: "Save" })); + }); + expect(screen.getByTestId("notified").textContent).not.toBe("none"); + const quiet = screen.getByTestId("ward-under-18-notice"); + expect(quiet.getAttribute("data-tone")).toBe("quiet"); + expect(within(quiet).getByText(NOTICE)).toBeTruthy(); + expect(within(quiet).getByTestId("ward-under-18-notified").textContent).toMatch( + /^Chief Psychiatrist notified at .*09:30/, + ); + }); + + it("saves nothing when the time is left empty", () => { + renderDrawer(stay.id); + const notice = screen.getByTestId("ward-under-18-notice"); + fireEvent.click(within(notice).getByRole("button", { name: "Save" })); + expect(screen.getByTestId("notified").textContent).toBe("none"); + expect(within(notice).getByRole("alert").textContent).toMatch(/Type the time/); + }); + + it("does not show for an adult on the same ward, or for the same person on a youth ward", () => { + const adult = seed.admissions.find( + (admission) => admission.unitId === unit.id && admission.state === "occupied" && admission.id !== stay.id, + )!; + const { unmount } = renderDrawer(adult.id); + expect(screen.queryByTestId("ward-under-18-notice")).toBeNull(); + unmount(); + renderDrawer(stay.id, { ...unit, cohort: "Youth" }); + expect(screen.queryByTestId("ward-under-18-notice")).toBeNull(); + }); + + it("shows on the phone bed sheet too, under the four facts", () => { + vi.stubGlobal( + "matchMedia", + vi.fn((query: string) => ({ + matches: query === WF_PHONE_QUERY, + media: query, + addEventListener: vi.fn(), + removeEventListener: vi.fn(), + })), + ); + renderDrawer(stay.id); + const notice = screen.getByTestId("ward-under-18-notice"); + expect(within(notice).getByText(NOTICE)).toBeTruthy(); + expect((within(notice).getByLabelText("Chief Psychiatrist notified at") as HTMLInputElement).value).toBe(""); + }); +}); diff --git a/tests/ward-referral-model.test.ts b/tests/ward-referral-model.test.ts index d085e6cbaf..d7263e64be 100644 --- a/tests/ward-referral-model.test.ts +++ b/tests/ward-referral-model.test.ts @@ -677,6 +677,8 @@ describe("front-door contract — an ED may close to all admissions, never refus RECORD_WARD_DIAGNOSIS: false, // Feature 14: records that a desk reviewed a weekend discharge. Not a refusal. MARK_WEEKEND_DISCHARGE_REVIEWED: false, + // Item 4: records when the Chief Psychiatrist was notified. Not a refusal. + RECORD_CHIEF_PSYCHIATRIST_NOTIFIED: false, // Closing-the-loop (package E): records a return request and the home service's answer. Not a refusal. RECORD_HOME_SERVICE_RETURN: false, // Closing-the-loop (package E): records that a directory entry was checked. Not a refusal. From 2bf0183eec63deba05614fd1a4544affece8606e Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 11 Nov 2026 02:59:05 +0000 Subject: [PATCH 04/14] Held batch checks: journey model for the new event, legal wording allowance Model RECORD_CHIEF_PSYCHIATRIST_NOTIFIED in the journey dispositions and move reviewed lines whose text did not change to their new digests. Let Josh's exact item 4 notice through the legal language check (D-134 item 9), since it tells staff to check the Act rather than claiming authority. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01GxPPxmfmBRcfvStcCSeCwK --- docs/ward-flow/journey/MAP-INVENTORY.md | 434 +++++++++--------- docs/ward-flow/journey/actions.json | 424 ++++++++--------- .../ward-flow/journey/event-dispositions.json | 308 +++++++------ docs/ward-flow/journey/machines.json | 14 +- docs/ward-flow/journey/vocabularies.json | 4 +- .../journey/ward-journey-explorer.html | 2 +- .../ward-flow/check-ward-legal-language.mjs | 10 +- 7 files changed, 629 insertions(+), 567 deletions(-) diff --git a/docs/ward-flow/journey/MAP-INVENTORY.md b/docs/ward-flow/journey/MAP-INVENTORY.md index 4df7fb4cf8..a5429d0670 100644 --- a/docs/ward-flow/journey/MAP-INVENTORY.md +++ b/docs/ward-flow/journey/MAP-INVENTORY.md @@ -2,8 +2,8 @@ The route is selective. Its action notes and the additional command models have source review evidence; source digests detect later edits. This does not establish runtime or clinical acceptance. -## 193 CURRENT ENGINE EVENTS -Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3ccfca08efa +## 194 CURRENT ENGINE EVENTS +Source-contract SHA256: 840f4b2af2d4f3dce3443ebcd74b6db4a4d691c70ea2323795331ab14c3a0422 - RECORD_ADMISSION_CARE — diagram-reviewed; event roles: ward, coordinator, community Diagram action notes reviewed against the recorded source revision. Source digests detect subsequent edits; this is not runtime acceptance. Permission source: src/components/ward-management/ward-flow-event-roles.ts:20 @@ -230,7 +230,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: Updates only movement.transport.cadNumber and cadAdded; does not dispatch, accept or advance the job tests: tests/ward-transport-cad-to-follow.test.ts Reviewed source: src/components/ward-management/ward-flow-transport-events.ts:1121; SHA256 b1d2760233d1537929adff891a5d7254816ac74f3d2650af60a8b221a38a1d8a - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:188; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:188; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 Reviewed source: src/components/ward-management/ward-transport-collection-events.ts:30; SHA256 1ebf665a65645eb14f53647d07db90bef0a947b2a7e298f2b6f203b7c78d3496 Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - RELEASE_HELD_BED — diagram-reviewed; event roles: coordinator, ward, ed @@ -292,7 +292,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc Diagram action notes reviewed against the recorded source revision. Source digests detect subsequent edits; this is not runtime acceptance. Permission source: src/components/ward-management/ward-flow-event-roles.ts:208 Event/dispatch reference: src/components/ward-management/ward-flow-record-events.ts:1347 - Event/dispatch reference: src/components/ward-management/ward-flow-record-stay-events.ts:317 + Event/dispatch reference: src/components/ward-management/ward-flow-record-stay-events.ts:318 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1879 - END_LEAVE_BED — diagram-reviewed; event roles: ward, coordinator Diagram action notes reviewed against the recorded source revision. Source digests detect subsequent edits; this is not runtime acceptance. @@ -303,7 +303,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc Source-reviewed command model: Leave-bed record carries absentWithoutLeave {since,steps:[]}; stay remains occupied. Permission source: src/components/ward-management/ward-flow-event-roles.ts:213 Event/dispatch reference: src/components/ward-management/ward-flow-record-events.ts:1348 - Event/dispatch reference: src/components/ward-management/ward-flow-record-stay-events.ts:372 + Event/dispatch reference: src/components/ward-management/ward-flow-record-stay-events.ts:373 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1880 Subject: An occupied admission and its held leave-bed record Before: Occupied stay, not away at ED, with no recorded absence @@ -316,15 +316,15 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: Keeps the admission and bed occupancy; return is recorded separately through END_LEAVE_BED tests: tests/ward-absence-and-cto.test.ts tests: tests/ward-away-from-ward-exclusive.test.ts - Reviewed source: src/components/ward-management/ward-flow-record-stay-events.ts:372; SHA256 76f41e705f685062ecbfc8024544a4d50b5097cc1f9f68d9ad34976cbf9e4621 - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:213; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb - Reviewed source: src/components/ward-management/ward-flow-events.ts:1380; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-record-stay-events.ts:373; SHA256 22c8cf4905fa0043b38eb8353c92f3d760b835fd8830dc5e09eefee04b5ea866 + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:213; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 + Reviewed source: src/components/ward-management/ward-flow-events.ts:1380; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - RECORD_ABSENCE_STEP — modelled; event roles: ward, coordinator Source-reviewed command model: Same absence with one timed step appended. Permission source: src/components/ward-management/ward-flow-event-roles.ts:214 Event/dispatch reference: src/components/ward-management/ward-flow-record-events.ts:1349 - Event/dispatch reference: src/components/ward-management/ward-flow-record-stay-events.ts:424 + Event/dispatch reference: src/components/ward-management/ward-flow-record-stay-events.ts:425 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1881 Subject: An existing absence without leave Before: Absence has no record of this listed missing-person step @@ -335,9 +335,9 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc guards: Step must be listed, not already recorded, and not earlier than absence.since effects: Appends {step,at} to absentWithoutLeave.steps; does not end absence, release a bed or contact anyone tests: tests/ward-absence-and-cto.test.ts - Reviewed source: src/components/ward-management/ward-flow-record-stay-events.ts:424; SHA256 76f41e705f685062ecbfc8024544a4d50b5097cc1f9f68d9ad34976cbf9e4621 - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:214; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb - Reviewed source: src/components/ward-management/ward-flow-events.ts:1389; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-record-stay-events.ts:425; SHA256 22c8cf4905fa0043b38eb8353c92f3d760b835fd8830dc5e09eefee04b5ea866 + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:214; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 + Reviewed source: src/components/ward-management/ward-flow-events.ts:1389; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - RECORD_COMMUNITY_TREATMENT_ORDER — modelled; event roles: community, coordinator Source-reviewed command model: Form 5A recorded with time and desk label; any ended order retained in earlier history. @@ -357,8 +357,8 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: The step can be taken back by UNDO_PATIENT_RECORD within the Undo window, filed against the patient record. tests: tests/ward-absence-and-cto.test.ts Reviewed source: src/components/ward-management/ward-flow-record-legal-events.ts:155; SHA256 00105e89a350aa48ec39ce66907880bb7863bbc4cff2f4f31fc02ba659f1c6d9 - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:215; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb - Reviewed source: src/components/ward-management/ward-flow-events.ts:1398; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:215; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 + Reviewed source: src/components/ward-management/ward-flow-events.ts:1398; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - END_COMMUNITY_TREATMENT_ORDER — modelled; event roles: community, coordinator Source-reviewed command model: Same order retained with endedAt=now. @@ -375,32 +375,32 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: The step can be taken back by UNDO_PATIENT_RECORD within the Undo window, filed against the patient record. tests: tests/ward-absence-and-cto.test.ts Reviewed source: src/components/ward-management/ward-flow-bed-events.ts:667; SHA256 be57f071ee46dc50dc5c0ac2dd9474b8a75f474f65aa943661a8bd08d2ed8113 - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:216; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb - Reviewed source: src/components/ward-management/ward-flow-events.ts:1405; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:216; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 + Reviewed source: src/components/ward-management/ward-flow-events.ts:1405; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - RECORD_LEAVING — diagram-reviewed; event roles: ward, coordinator Diagram action notes reviewed against the recorded source revision. Source digests detect subsequent edits; this is not runtime acceptance. Permission source: src/components/ward-management/ward-flow-event-roles.ts:220 Event/dispatch reference: src/components/ward-management/ward-flow-record-events.ts:1343 - Event/dispatch reference: src/components/ward-management/ward-flow-record-stay-events.ts:122 + Event/dispatch reference: src/components/ward-management/ward-flow-record-stay-events.ts:123 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1601 - RECORD_AWAY_AT_EMERGENCY_DEPARTMENT — diagram-reviewed; event roles: ward, coordinator Diagram action notes reviewed against the recorded source revision. Source digests detect subsequent edits; this is not runtime acceptance. Permission source: src/components/ward-management/ward-flow-event-roles.ts:232 Event/dispatch reference: src/components/ward-management/ward-flow-record-events.ts:1344 - Event/dispatch reference: src/components/ward-management/ward-flow-record-stay-events.ts:208 + Event/dispatch reference: src/components/ward-management/ward-flow-record-stay-events.ts:209 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1875 - RECORD_RETURNED_FROM_EMERGENCY_DEPARTMENT — diagram-reviewed; event roles: ward, coordinator Diagram action notes reviewed against the recorded source revision. Source digests detect subsequent edits; this is not runtime acceptance. Permission source: src/components/ward-management/ward-flow-event-roles.ts:233 Event/dispatch reference: src/components/ward-management/ward-flow-record-events.ts:1345 - Event/dispatch reference: src/components/ward-management/ward-flow-record-stay-events.ts:244 + Event/dispatch reference: src/components/ward-management/ward-flow-record-stay-events.ts:245 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1876 - RECORD_STAY_DISCHARGE_BLOCKER — modelled; event roles: ward, bed_manager, coordinator Source-reviewed command model: Stay blockReason and linked nondischarged releases carry the chosen blocker. Permission source: src/components/ward-management/ward-flow-event-roles.ts:236 Event/dispatch reference: src/components/ward-management/ward-flow-record-events.ts:1346 - Event/dispatch reference: src/components/ward-management/ward-flow-record-stay-events.ts:264 + Event/dispatch reference: src/components/ward-management/ward-flow-record-stay-events.ts:265 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1877 Subject: An occupied admission and its pending bed releases Before: Occupied stay with no blocker or another recorded blocker @@ -412,9 +412,9 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: Replaces admission.blockReason effects: For all linked releases not discharged, updates blocker, blockedBy, blockerRecordedAt and confirmedAt; moves no capacity figure or bed state tests: tests/ward-stay-discharge-blocker.test.ts - Reviewed source: src/components/ward-management/ward-flow-record-stay-events.ts:264; SHA256 76f41e705f685062ecbfc8024544a4d50b5097cc1f9f68d9ad34976cbf9e4621 - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:236; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb - Reviewed source: src/components/ward-management/ward-flow-events.ts:1838; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-record-stay-events.ts:265; SHA256 22c8cf4905fa0043b38eb8353c92f3d760b835fd8830dc5e09eefee04b5ea866 + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:236; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 + Reviewed source: src/components/ward-management/ward-flow-events.ts:1838; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - CLEAR_STAY_DISCHARGE_BLOCKER — modelled; event roles: ward, bed_manager, coordinator Source-reviewed command model: Admission blockReason=null; clearance retained on matching pending release or admission. @@ -433,8 +433,8 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: Does not release the bed or change admission state tests: tests/ward-stay-discharge-blocker.test.ts Reviewed source: src/components/ward-management/ward-flow-bed-events.ts:247; SHA256 be57f071ee46dc50dc5c0ac2dd9474b8a75f474f65aa943661a8bd08d2ed8113 - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:237; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb - Reviewed source: src/components/ward-management/ward-flow-events.ts:1855; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:237; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 + Reviewed source: src/components/ward-management/ward-flow-events.ts:1855; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - RECORD_OBSERVATION_LEVEL — modelled; event roles: ed, ward, coordinator Source-reviewed command model: Named target and any agreeing linked open counterpart carry the new observation and append from/to history. @@ -461,7 +461,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc tests: tests/ward-audit-s2-observation-join.test.ts tests: tests/ward-consolidated-domain-20261104.test.ts Reviewed source: src/components/ward-management/ward-flow-observation-events.ts:33; SHA256 275eabc8477f1bbfb0fff94c155c389a544304f1daebb6be8036d13c54ade72c - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:240; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:240; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 Reviewed source: src/components/ward-management/ward-flow-observation-events.ts:33; SHA256 275eabc8477f1bbfb0fff94c155c389a544304f1daebb6be8036d13c54ade72c Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c Reviewed source: src/components/ward-management/ward-observation.ts:48; SHA256 b714525f0d4c6d18d050f9a3600f38c8de4e9a013595a77844c5c492fbdc2e3c @@ -490,9 +490,9 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: Sets turnaroundPriority only; does not hold capacity, discharge anybody, accept a request or advance stage effects: Selectors later hide a preference whose original readiness source no longer qualifies tests: tests/ward-cld-turnaround-priority.test.ts - Reviewed source: src/components/ward-management/ward-flow-reducer.ts:2017; SHA256 edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:308; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb - Reviewed source: src/components/ward-management/ward-flow-events.ts:692; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-reducer.ts:2017; SHA256 7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:308; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 + Reviewed source: src/components/ward-management/ward-flow-events.ts:692; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-turnaround-priority.ts:65; SHA256 f4a062f776b7e676eb045bd32daf9aac4a636392dab5599a571687cbf47db4b8 Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - FLAG_REFERRAL_TURNAROUND_PRIORITY — modelled; event roles: coordinator @@ -511,9 +511,9 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: Sets turnaroundPriority only; does not hold capacity, discharge anybody, accept a request or advance stage effects: Selectors later hide a preference whose original readiness source no longer qualifies tests: tests/ward-cld-turnaround-priority.test.ts - Reviewed source: src/components/ward-management/ward-flow-reducer.ts:2018; SHA256 edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:309; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb - Reviewed source: src/components/ward-management/ward-flow-events.ts:701; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-reducer.ts:2018; SHA256 7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:309; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 + Reviewed source: src/components/ward-management/ward-flow-events.ts:701; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-turnaround-priority.ts:65; SHA256 f4a062f776b7e676eb045bd32daf9aac4a636392dab5599a571687cbf47db4b8 Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - MARK_REFERRAL_OPENED — modelled; event roles: ward, coordinator @@ -531,8 +531,8 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: Stamps openedAt once; does not answer, stop the decision clock or alter decidedAt tests: tests/ward-referral-followup.test.ts Reviewed source: src/components/ward-management/ward-flow-referral-followup-events.ts:102; SHA256 a7980fe9e58a4d1fcc774d48dfeb4e2673b66d0624fef24d00fae7b1fcf32039 - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:312; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb - Reviewed source: src/components/ward-management/ward-flow-events.ts:716; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:312; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 + Reviewed source: src/components/ward-management/ward-flow-events.ts:716; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - REQUEST_REFERRAL_INFORMATION — modelled; event roles: ward, coordinator Source-reviewed command model: New listed needs appended; existing open needs retained without duplication. @@ -551,8 +551,8 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: No referral decision or decision-clock change tests: tests/ward-referral-followup.test.ts Reviewed source: src/components/ward-management/ward-flow-referral-followup-events.ts:118; SHA256 a7980fe9e58a4d1fcc774d48dfeb4e2673b66d0624fef24d00fae7b1fcf32039 - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:313; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb - Reviewed source: src/components/ward-management/ward-flow-events.ts:729; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:313; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 + Reviewed source: src/components/ward-management/ward-flow-events.ts:729; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - MARK_REFERRAL_INFORMATION_MET — modelled; event roles: ed, community, ward, coordinator Source-reviewed command model: Selected open request(s) stamped metAt and metBy; checklist history retained. @@ -572,8 +572,8 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc tests: tests/ward-referral-followup.test.ts tests: tests/ward-sender-information-supplied.test.ts Reviewed source: src/components/ward-management/ward-flow-referral-followup-events.ts:148; SHA256 a7980fe9e58a4d1fcc774d48dfeb4e2673b66d0624fef24d00fae7b1fcf32039 - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:315; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb - Reviewed source: src/components/ward-management/ward-flow-events.ts:740; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:315; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 + Reviewed source: src/components/ward-management/ward-flow-events.ts:740; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - ASSIGN_REFERRAL — modelled; event roles: coordinator, ed, community Source-reviewed command model: ownerHistory appended; its last owner is the current chasing desk. @@ -591,8 +591,8 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc tests: tests/ward-referral-owner-and-calls.test.ts tests: tests/ward-referral-owner-and-calls-scope.test.ts Reviewed source: src/components/ward-management/ward-flow-referral-owner-events.ts:44; SHA256 13b724abff93f6ec86c6b232d9ea7f00e66609f8297122508a7976198f8ce19e - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:318; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb - Reviewed source: src/components/ward-management/ward-flow-events.ts:764; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:318; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 + Reviewed source: src/components/ward-management/ward-flow-events.ts:764; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c Reviewed source: src/components/ward-management/referrals/referral-owner-and-calls-model.ts:28; SHA256 783d84f0aa1cc62b1f388bfabaa637c851ef47570a4ebfefc94406d550e4bde3 - LOG_REFERRAL_CONTACT — modelled; event roles: coordinator, ed, community @@ -612,8 +612,8 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: A logged call does not decide referral or pause its decision clock tests: tests/ward-referral-owner-and-calls.test.ts Reviewed source: src/components/ward-management/ward-flow-referral-owner-events.ts:67; SHA256 13b724abff93f6ec86c6b232d9ea7f00e66609f8297122508a7976198f8ce19e - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:319; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb - Reviewed source: src/components/ward-management/ward-flow-events.ts:779; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:319; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 + Reviewed source: src/components/ward-management/ward-flow-events.ts:779; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c Reviewed source: src/components/ward-management/referrals/referral-owner-and-calls-model.ts:28; SHA256 783d84f0aa1cc62b1f388bfabaa637c851ef47570a4ebfefc94406d550e4bde3 - RECORD_REFERRAL_COMMITMENT — modelled; event roles: coordinator, ward @@ -635,8 +635,8 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: Does not change state, decidedAt, clocks or automatically call anyone tests: tests/ward-referral-commitments.test.ts Reviewed source: src/components/ward-management/ward-flow-referral-commitment-events.ts:24; SHA256 a304422664462b4413fa82c9ae19d0425aef260d8ccf65239ca708d722b08994 - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:321; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb - Reviewed source: src/components/ward-management/ward-flow-events.ts:796; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:321; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 + Reviewed source: src/components/ward-management/ward-flow-events.ts:796; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c Reviewed source: src/components/ward-management/referrals/referral-owner-and-calls-model.ts:28; SHA256 783d84f0aa1cc62b1f388bfabaa637c851ef47570a4ebfefc94406d550e4bde3 Reviewed source: src/components/ward-management/referrals/referral-commitments-model.ts:73; SHA256 b8ad888efb64576aa225df86d86b58d9e31306fda7791fe9815a00a4c6c82325 @@ -658,7 +658,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: Does not answer existing arms, create a movement or reserve a bed tests: tests/ward-referral-ask-more-wards.test.ts Reviewed source: src/components/ward-management/ward-flow-referral-ask-events.ts:24; SHA256 d3c249774b280ef5c1b57d1f4c7575d2dce9ef721ec1f85ed2ac2c53e7874d08 - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:322; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:322; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 Reviewed source: src/components/ward-management/ward-flow-referral-ask-events.ts:24; SHA256 d3c249774b280ef5c1b57d1f4c7575d2dce9ef721ec1f85ed2ac2c53e7874d08 Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c Reviewed source: src/components/ward-management/referrals/referral-owner-and-calls-model.ts:28; SHA256 783d84f0aa1cc62b1f388bfabaa637c851ef47570a4ebfefc94406d550e4bde3 @@ -679,8 +679,8 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: Eligibility/shortlists refuse new admissions; until is a prompt, never automatic reopening tests: tests/ward-closure.test.ts Reviewed source: src/components/ward-management/ward-flow-ward-closure-events.ts:44; SHA256 2fd18c518e21b86c1cda4b425c6cf5163251b409d3cddffd1f8a3b225f5142ef - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:325; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb - Reviewed source: src/components/ward-management/ward-flow-events.ts:815; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:325; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 + Reviewed source: src/components/ward-management/ward-flow-events.ts:815; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - REOPEN_WARD_TO_ADMISSIONS — modelled; event roles: ward, bed_manager, coordinator Source-reviewed command model: isClosed=false; admissionsClosure removed. @@ -698,8 +698,8 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc tests: tests/ward-closure.test.ts tests: tests/ward-loop-checks.test.ts Reviewed source: src/components/ward-management/ward-flow-ward-closure-events.ts:72; SHA256 2fd18c518e21b86c1cda4b425c6cf5163251b409d3cddffd1f8a3b225f5142ef - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:326; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb - Reviewed source: src/components/ward-management/ward-flow-events.ts:826; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:326; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 + Reviewed source: src/components/ward-management/ward-flow-events.ts:826; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - SET_BED_CLOSED — modelled; event roles: ward, bed_manager, coordinator Source-reviewed command model: closed=true appends a mark; closed=false stamps active mark reopenedAt. @@ -719,8 +719,8 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc tests: tests/ward-bed-closed-mark.test.ts tests: tests/ward-bed-closed-mark-kinds.test.ts Reviewed source: src/components/ward-management/ward-flow-bed-closure-events.ts:56; SHA256 e19afdf5df97f09582af829f62e2ff463cbf9ef8ba8e2b873e79ea7e7931497f - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:328; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb - Reviewed source: src/components/ward-management/ward-flow-events.ts:834; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:328; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 + Reviewed source: src/components/ward-management/ward-flow-events.ts:834; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - RECORD_BED_MEETING_ACTION — modelled; event roles: coordinator Source-reviewed command model: meetingActions appended with chosen task, owner and due time. @@ -741,8 +741,8 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc tests: tests/ward-bed-meeting-actions.test.ts tests: tests/ward-consolidated-meeting-counts-20261104.test.ts Reviewed source: src/components/ward-management/ward-flow-bed-meeting-events.ts:61; SHA256 b28604a0b11e841e1daf151279719831992a89765e8553a84974993d57ed5e2c - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:333; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb - Reviewed source: src/components/ward-management/ward-flow-events.ts:850; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:333; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 + Reviewed source: src/components/ward-management/ward-flow-events.ts:850; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - COMPLETE_BED_MEETING_ACTION — modelled; event roles: coordinator, ward, ed, community Source-reviewed command model: Same action stamped doneAt and doneBy. @@ -761,8 +761,8 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc tests: tests/ward-bed-manager-actions.test.ts tests: tests/ward-consolidated-meeting-counts-20261104.test.ts Reviewed source: src/components/ward-management/ward-flow-bed-meeting-events.ts:105; SHA256 b28604a0b11e841e1daf151279719831992a89765e8553a84974993d57ed5e2c - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:334; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb - Reviewed source: src/components/ward-management/ward-flow-events.ts:865; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:334; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 + Reviewed source: src/components/ward-management/ward-flow-events.ts:865; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - RECORD_RESTRICTIVE_PRACTICE_START — modelled; event roles: ward, coordinator Source-reviewed command model: New episode with typed start and recording metadata appended. @@ -782,7 +782,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc tests: tests/ward-restrictive-practice.test.ts tests: tests/ward-audit-s3-restrictive-practice-departure.test.ts Reviewed source: src/components/ward-management/ward-flow-restrictive-practice-events.ts:61; SHA256 5e2f0d1e4b5e3a3415d5114400ba622bb5e83a84787491e7a93f4f5a3c7f935b - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:338; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:338; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 Reviewed source: src/components/ward-management/restrictive-practice/ward-restrictive-practice.ts:136; SHA256 c605b305700a3df7cb0e8f7f1f923ac844971e33743d4227b677773e9ec056aa Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - RECORD_RESTRICTIVE_PRACTICE_END — modelled; event roles: ward, coordinator @@ -802,7 +802,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: No patient transfer, bed move or legal decision performed tests: tests/ward-restrictive-practice.test.ts Reviewed source: src/components/ward-management/ward-flow-restrictive-practice-events.ts:95; SHA256 5e2f0d1e4b5e3a3415d5114400ba622bb5e83a84787491e7a93f4f5a3c7f935b - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:339; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:339; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 Reviewed source: src/components/ward-management/restrictive-practice/ward-restrictive-practice.ts:147; SHA256 c605b305700a3df7cb0e8f7f1f923ac844971e33743d4227b677773e9ec056aa Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - RECORD_RESTRICTIVE_PRACTICE_FOLLOW_UP — modelled; event roles: ward, coordinator @@ -820,7 +820,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc guards: task is a listed follow-up task and done is a boolean. effects: Sets or removes the task in the episode's followUp; an empty followUp is removed. tests: tests/ward-legal-form-gap-items.test.ts - Reviewed source: src/components/ward-management/ward-flow-reducer.ts:1942; SHA256 edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a + Reviewed source: src/components/ward-management/ward-flow-reducer.ts:1942; SHA256 7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a Reviewed source: src/components/ward-management/ward-flow-restrictive-practice-events.ts:109; SHA256 5e2f0d1e4b5e3a3415d5114400ba622bb5e83a84787491e7a93f4f5a3c7f935b - RECORD_WARD_INCIDENT — modelled; event roles: ward, coordinator Source-reviewed command model: New category/time incident appended. @@ -838,7 +838,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: No patient, bed, stay or legal record changes; detailed incident report remains outside this app tests: tests/ward-restrictive-practice.test.ts Reviewed source: src/components/ward-management/ward-flow-restrictive-practice-events.ts:131; SHA256 5e2f0d1e4b5e3a3415d5114400ba622bb5e83a84787491e7a93f4f5a3c7f935b - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:342; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:342; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 Reviewed source: src/components/ward-management/restrictive-practice/ward-restrictive-practice.ts:160; SHA256 c605b305700a3df7cb0e8f7f1f923ac844971e33743d4227b677773e9ec056aa Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - SET_SECLUSION_ROOM_STATUS — modelled; event roles: ward, bed_manager, coordinator @@ -856,7 +856,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: Does not start/end an episode or alter beds; selectors show an open seclusion episode as in use over the recorded availability tests: tests/ward-restrictive-practice.test.ts Reviewed source: src/components/ward-management/ward-flow-restrictive-practice-events.ts:152; SHA256 5e2f0d1e4b5e3a3415d5114400ba622bb5e83a84787491e7a93f4f5a3c7f935b - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:343; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:343; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 Reviewed source: src/components/ward-management/restrictive-practice/ward-restrictive-practice.ts:184; SHA256 c605b305700a3df7cb0e8f7f1f923ac844971e33743d4227b677773e9ec056aa Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - MARK_CANCELLED_MOVE_CHECK — modelled; event roles: coordinator, ward @@ -875,7 +875,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: Keeps one current mark per item; does not release beds, cancel transport or change movement stage tests: tests/ward-loop-checks.test.ts Reviewed source: src/components/ward-management/ward-flow-loop-check-events.ts:58; SHA256 ff8c33075771176af7fe4b39fee199eb3da5c97591401997d25b0455b83f5868 - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:347; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:347; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 Reviewed source: src/components/ward-management/loop-checks/ward-loop-checks.ts:225; SHA256 67b1b35eaafcde31aa39f6d2f2e7a73aa9ae18859d17dd777426ba9a78404921 Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - RECORD_ACCEPTANCE_CONDITION — modelled; event roles: coordinator, ward @@ -896,7 +896,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: Times prompt review; no automatic condition completion tests: tests/ward-loop-checks.test.ts Reviewed source: src/components/ward-management/ward-flow-loop-check-events.ts:79; SHA256 ff8c33075771176af7fe4b39fee199eb3da5c97591401997d25b0455b83f5868 - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:348; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:348; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 Reviewed source: src/components/ward-management/loop-checks/ward-loop-checks.ts:239; SHA256 67b1b35eaafcde31aa39f6d2f2e7a73aa9ae18859d17dd777426ba9a78404921 Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - MARK_ACCEPTANCE_CONDITION_MET — modelled; event roles: coordinator, ward @@ -913,7 +913,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: Stamps met on that exact condition; leaves stage, placement, capacity and acceptance unchanged tests: tests/ward-loop-checks.test.ts Reviewed source: src/components/ward-management/ward-flow-loop-check-events.ts:80; SHA256 ff8c33075771176af7fe4b39fee199eb3da5c97591401997d25b0455b83f5868 - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:349; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:349; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 Reviewed source: src/components/ward-management/loop-checks/ward-loop-checks.ts:250; SHA256 67b1b35eaafcde31aa39f6d2f2e7a73aa9ae18859d17dd777426ba9a78404921 Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - RECORD_RESTRICTION_REVIEW — modelled; event roles: ward, bed_manager, coordinator @@ -933,7 +933,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: Does not lift restriction or reopen ward when time passes tests: tests/ward-loop-checks.test.ts Reviewed source: src/components/ward-management/ward-flow-loop-check-events.ts:139; SHA256 ff8c33075771176af7fe4b39fee199eb3da5c97591401997d25b0455b83f5868 - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:350; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:350; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 Reviewed source: src/components/ward-management/loop-checks/ward-loop-checks.ts:262; SHA256 67b1b35eaafcde31aa39f6d2f2e7a73aa9ae18859d17dd777426ba9a78404921 Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - MARK_CLOSURE_TRANSITION_ITEM — modelled; event roles: ward, bed_manager, coordinator @@ -952,7 +952,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: Appends derived item with at/by to current closure; does not move, cancel, reassign or release the underlying record tests: tests/ward-loop-checks.test.ts Reviewed source: src/components/ward-management/ward-flow-loop-check-events.ts:169; SHA256 ff8c33075771176af7fe4b39fee199eb3da5c97591401997d25b0455b83f5868 - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:351; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:351; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 Reviewed source: src/components/ward-management/loop-checks/ward-loop-checks.ts:276; SHA256 67b1b35eaafcde31aa39f6d2f2e7a73aa9ae18859d17dd777426ba9a78404921 Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - FLAG_MOVEMENT_URGENT — diagram-reviewed; event roles: coordinator, ed @@ -1000,7 +1000,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: The step can be taken back by UNDO_PATIENT_RECORD within the Undo window. tests: tests/ward-patient-archive.test.ts Reviewed source: src/components/ward-management/ward-patient-archive-reducer.ts:10; SHA256 bfd91bd2e7955ee0c776cf1c8e5fb3ecb1dd76d2cd0d2c9a71a9789270b95898 - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:397; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:397; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 Reviewed source: src/components/ward-management/ward-patient-archive.ts:30; SHA256 2738c8d1a80a5d8fc418865719058ee2603141bb9493d55954cae83742455eb3 Reviewed source: src/components/ward-management/ward-patient-archive.ts:44; SHA256 2738c8d1a80a5d8fc418865719058ee2603141bb9493d55954cae83742455eb3 Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c @@ -1027,8 +1027,8 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc tests: tests/ward-review-engine-regressions.test.ts tests: tests/ward-override-surfaces.test.ts Reviewed source: src/components/ward-management/ward-flow-referral-answer-events.ts:675; SHA256 1155b5ab27b0a147654f89b5886f53ac1edc58c42eae52997cac0cc1838a590b - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:428; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb - Reviewed source: src/components/ward-management/ward-flow-events.ts:1538; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:428; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 + Reviewed source: src/components/ward-management/ward-flow-events.ts:1538; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - DECLINE_REFERRAL — diagram-reviewed; event roles: ward, coordinator, ed, community Diagram action notes reviewed against the recorded source revision. Source digests detect subsequent edits; this is not runtime acceptance. @@ -1104,7 +1104,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc tests: tests/ward-inbox-snooze.test.ts tests: tests/ward-consolidated-census-20261104.test.ts Reviewed source: src/components/ward-management/ward-inbox-reducer.ts:402; SHA256 4a7dde821d15d7032a38cb18333ed34872d78fb28e4be6efb382ad5e9095c81d - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:530; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:530; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 Reviewed source: src/components/ward-management/ward-inbox-events.ts:111; SHA256 c3c63fd47887f9bbabdefc8aa6b6742f72848bc9f744afa55b2aa7efd80f037c Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c Reviewed source: src/components/ward-management/ward-inbox-snooze.ts:84; SHA256 eda403a5e8fbf768036d873898501882422dad29ebc3c7362c7766a10daaf1dd @@ -1125,7 +1125,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc tests: tests/ward-alerts-release-ownership.dom.test.tsx tests: tests/ward-consolidated-census-20261104.test.ts Reviewed source: src/components/ward-management/ward-inbox-reducer.ts:422; SHA256 4a7dde821d15d7032a38cb18333ed34872d78fb28e4be6efb382ad5e9095c81d - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:531; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:531; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 Reviewed source: src/components/ward-management/ward-inbox-events.ts:121; SHA256 c3c63fd47887f9bbabdefc8aa6b6742f72848bc9f744afa55b2aa7efd80f037c Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c Reviewed source: src/components/ward-management/ward-inbox-snooze.ts:84; SHA256 eda403a5e8fbf768036d873898501882422dad29ebc3c7362c7766a10daaf1dd @@ -1147,7 +1147,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc tests: tests/ward-inbox-snooze.test.ts tests: tests/ward-consolidated-census-20261104.test.ts Reviewed source: src/components/ward-management/ward-inbox-reducer.ts:435; SHA256 4a7dde821d15d7032a38cb18333ed34872d78fb28e4be6efb382ad5e9095c81d - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:532; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:532; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 Reviewed source: src/components/ward-management/ward-inbox-events.ts:133; SHA256 c3c63fd47887f9bbabdefc8aa6b6742f72848bc9f744afa55b2aa7efd80f037c Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c Reviewed source: src/components/ward-management/ward-inbox-snooze.ts:84; SHA256 eda403a5e8fbf768036d873898501882422dad29ebc3c7362c7766a10daaf1dd @@ -1167,7 +1167,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc tests: tests/ward-inbox-snooze.test.ts tests: tests/ward-consolidated-census-20261104.test.ts Reviewed source: src/components/ward-management/ward-inbox-reducer.ts:469; SHA256 4a7dde821d15d7032a38cb18333ed34872d78fb28e4be6efb382ad5e9095c81d - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:533; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:533; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 Reviewed source: src/components/ward-management/ward-inbox-events.ts:142; SHA256 c3c63fd47887f9bbabdefc8aa6b6742f72848bc9f744afa55b2aa7efd80f037c Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c Reviewed source: src/components/ward-management/ward-inbox-snooze.ts:84; SHA256 eda403a5e8fbf768036d873898501882422dad29ebc3c7362c7766a10daaf1dd @@ -1185,7 +1185,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc Reviewed command model: Latest ward diagnosis block with recording time and desk. Permission source: src/components/ward-management/ward-flow-event-roles.ts:537 Event/dispatch reference: src/components/ward-management/ward-flow-diagnosis-events.ts:14 - Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:2358 + Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:2357 Subject: One current admission Before: No ward diagnosis, or a different ward diagnosis block After: Latest ward diagnosis block with recording time and desk @@ -1196,12 +1196,12 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: Replaces admission.wardDiagnosis only; does not overwrite the referrer's tentativeDiagnosis or move a bed. tests: tests/ward-ward-diagnosis.test.ts Reviewed source: src/components/ward-management/ward-flow-diagnosis-events.ts:29; SHA256 c0c3188726823be6157098eb593cf59300372f9328512b293328cd76d8a16e4a - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:537; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:537; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - MARK_WEEKEND_DISCHARGE_REVIEWED — modelled; event roles: ward, coordinator Reviewed command model: Weekend discharge review tick with weekend, time and desk. Permission source: src/components/ward-management/ward-flow-event-roles.ts:539 - Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:2360 + Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:2359 Event/dispatch reference: src/components/ward-management/ward-flow-weekend-review-events.ts:15 Subject: One current inpatient admission Before: No review tick for this weekend @@ -1213,21 +1213,39 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: Appends to admission.weekendDischargeReviews only; changes no date, bed or plan. tests: tests/ward-weekend-discharge-review.test.ts Reviewed source: src/components/ward-management/ward-flow-weekend-review-events.ts:23; SHA256 1360db583261541d85f5978b485e46777413053f2ab988012b22b8aac4280ab2 - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:539; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:539; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c +- RECORD_CHIEF_PSYCHIATRIST_NOTIFIED — modelled; event roles: ward, coordinator + Source-reviewed command model: records the typed time the Chief Psychiatrist was told a person under 18 is on an adult ward; information only (item 4, held). + Permission source: src/components/ward-management/ward-flow-event-roles.ts:541 + Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:2360 + Event/dispatch reference: src/components/ward-management/ward-flow-under-18-events.ts:14 + Subject: One current stay's chiefPsychiatristNotice + Before: Pulled or occupied stay with or without an earlier notice record + After: chiefPsychiatristNotice {notifiedAt, at, by} replaces any earlier one + Scope: Ward for its own stay, or coordinator. EVENT_ROLE alone is not place authority. + payload: admissionId; actingUnitId; notifiedAt (typed, never pre-filled, D-93) + payload: role and now + guards: Unknown admission, another ward's stay, or a stay that is not current refused + guards: Non-finite times, or a notified time later than now, refused + effects: Quietens the under 18 on an adult ward notice; computes no deadline and blocks no bed offer + effects: A transfer starts the receiving stay without it + tests: tests/ward-item4-under-18-adult-ward.dom.test.tsx + Reviewed source: src/components/ward-management/ward-flow-under-18-events.ts:22; SHA256 040429c9d51419da086ae64aae4b653e5b0251d906ebde5a79fa77c66f33500d + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:541; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 - SET_DISCHARGE_BARRIER — diagram-reviewed; event roles: ward, coordinator Diagram action notes reviewed against the recorded source revision. Source digests detect subsequent edits; this is not runtime acceptance. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:540 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:542 Event/dispatch reference: src/components/ward-management/ward-flow-bed-events.ts:727 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1785 - SET_CLINICALLY_READY — diagram-reviewed; event roles: ward, coordinator Diagram action notes reviewed against the recorded source revision. Source digests detect subsequent edits; this is not runtime acceptance. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:542 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:544 Event/dispatch reference: src/components/ward-management/ward-flow-bed-events.ts:757 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1786 - SET_DISCHARGE_CRITERIA — modelled; event roles: ward, coordinator Reviewed command model: Criteria set/reviewed, cleared, or one stored criterion ticked/unticked. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:543 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:545 Event/dispatch reference: src/components/ward-management/ward-flow-bed-events.ts:800 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1787 Subject: An occupied admission's criteria-led discharge record @@ -1244,11 +1262,11 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc tests: tests/ward-criteria-led-discharge.test.ts Reviewed source: src/components/ward-management/ward-flow-bed-events.ts:753; SHA256 be57f071ee46dc50dc5c0ac2dd9474b8a75f474f65aa943661a8bd08d2ed8113 Reviewed source: src/components/ward-management/ward-discharge-criteria.ts:271; SHA256 70e720fb09a6a8bd9ab6952b29e786e949b7c635b3eded6a97c9be8582648c5b - Reviewed source: src/components/ward-management/ward-flow-events.ts:2114; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-events.ts:2114; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - RECORD_ED_MEDICAL_DETERIORATION — modelled; event roles: ed, coordinator Reviewed command model: placement_requested, medically uncleared and explicitly paused; acceptance and reservation removed. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:544 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:546 Event/dispatch reference: src/components/ward-management/ward-flow-record-events.ts:1165 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1887 Subject: An accepted originating-ED movement before collection @@ -1264,27 +1282,27 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc tests: tests/ward-medical-deterioration-ui.dom.test.tsx tests: tests/ward-reservation-release-capacity.test.ts Reviewed source: src/components/ward-management/ward-flow-record-events.ts:1165; SHA256 901a830650fc830bfa41e4351b15fcea7e71bf475cc389ac2ece99fe698c4e06 - Reviewed source: src/components/ward-management/ward-flow-events.ts:2134; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-events.ts:2134; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - RECORD_MOVEMENT_MEDICAL_CLEARANCE — diagram-reviewed; event roles: ed, coordinator Diagram action notes reviewed against the recorded source revision. Source digests detect subsequent edits; this is not runtime acceptance. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:545 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:547 Event/dispatch reference: src/components/ward-management/ward-flow-record-events.ts:1271 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1888 - UPLOAD_PATIENT_FORM — diagram-reviewed; event roles: coordinator, ed, ward, community, officer Diagram action notes reviewed against the recorded source revision. Source digests detect subsequent edits; this is not runtime acceptance. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:546 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:548 Event/dispatch reference: src/components/ward-management/ward-flow-bed-events.ts:818 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1788 - RECORD_LEGAL_FORM_WRITTEN — diagram-reviewed; event roles: ed, coordinator, ward Diagram action notes reviewed against the recorded source revision. Source digests detect subsequent edits; this is not runtime acceptance. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:548 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:550 Event/dispatch reference: src/components/ward-management/ward-flow-record-events.ts:1360 Event/dispatch reference: src/components/ward-management/ward-flow-record-legal-events.ts:275 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1889 - RECORD_LEGAL_FORM_CODE — modelled; event roles: ed, coordinator, ward Reviewed command model: Chosen form code without an invented written time. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:550 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:552 Event/dispatch reference: src/components/ward-management/ward-flow-record-events.ts:1361 Event/dispatch reference: src/components/ward-management/ward-flow-record-legal-events.ts:274 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1890 @@ -1301,12 +1319,12 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: A new form code also clears the typed receipt mark and any paper details typed for the old form. tests: tests/ward-ed-handover-events.test.ts Reviewed source: src/components/ward-management/ward-flow-record-legal-events.ts:274; SHA256 00105e89a350aa48ec39ce66907880bb7863bbc4cff2f4f31fc02ba659f1c6d9 - Reviewed source: src/components/ward-management/ward-flow-events.ts:2168; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-events.ts:2168; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-undo.ts:74; SHA256 22a192fa0c973fff7b2b9b13038f17020b3990a33a0588af76ab2a4f79d035db Reviewed source: src/components/ward-management/ward-access-state.ts:831; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - RECORD_ED_PRESENTATION — modelled; event roles: ed, coordinator Reviewed command model: Canonical fixed-list choices, or field removed for an empty selection. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:552 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:554 Event/dispatch reference: src/components/ward-management/ward-flow-record-events.ts:1362 Event/dispatch reference: src/components/ward-management/ward-flow-record-legal-events.ts:205 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1891 @@ -1321,12 +1339,12 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: Does not change movement stage, diagnosis, legal status or capacity. Included in ED-step Undo. tests: tests/ward-ed-handover-events.test.ts Reviewed source: src/components/ward-management/ward-flow-record-legal-events.ts:205; SHA256 00105e89a350aa48ec39ce66907880bb7863bbc4cff2f4f31fc02ba659f1c6d9 - Reviewed source: src/components/ward-management/ward-flow-events.ts:2194; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-events.ts:2194; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-undo.ts:92; SHA256 22a192fa0c973fff7b2b9b13038f17020b3990a33a0588af76ab2a4f79d035db Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - RECORD_LEGAL_FORM_DETAILS — modelled; event roles: ed, coordinator, ward Reviewed command model: records the written legal form's typed details on the movement's current form. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:554 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:556 Event/dispatch reference: src/components/ward-management/ward-flow-record-events.ts:1363 Event/dispatch reference: src/components/ward-management/ward-flow-record-legal-events.ts:222 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1892 @@ -1344,33 +1362,33 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc Reviewed source: src/components/ward-management/ward-flow-record-legal-events.ts:222; SHA256 00105e89a350aa48ec39ce66907880bb7863bbc4cff2f4f31fc02ba659f1c6d9 - RECORD_COUNTRY_EXTENSION — diagram-reviewed; event roles: ed, coordinator Diagram action notes reviewed against the recorded source revision. Source digests detect subsequent edits; this is not runtime acceptance. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:555 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:557 Event/dispatch reference: src/components/ward-management/ward-flow-record-events.ts:1364 Event/dispatch reference: src/components/ward-management/ward-flow-record-legal-events.ts:382 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1893 - RECORD_LEGAL_FORM_CONTINUATION — diagram-reviewed; event roles: ed, coordinator, ward, community Diagram action notes reviewed against the recorded source revision. Source digests detect subsequent edits; this is not runtime acceptance. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:556 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:558 Event/dispatch reference: src/components/ward-management/ward-flow-record-events.ts:1365 Event/dispatch reference: src/components/ward-management/ward-flow-record-legal-events.ts:415 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1894 - EVALUATE_ARRIVAL_LATENESS — diagram-reviewed; event roles: coordinator, ed, ward Diagram action notes reviewed against the recorded source revision. Source digests detect subsequent edits; this is not runtime acceptance. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:557 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:559 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:2006 Event/dispatch reference: src/components/ward-management/ward-flow-transport-events.ts:1255 - RELEASE_AND_REOPEN_SEARCH — diagram-reviewed; event roles: coordinator, ward Diagram action notes reviewed against the recorded source revision. Source digests detect subsequent edits; this is not runtime acceptance. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:558 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:560 Event/dispatch reference: src/components/ward-management/ward-flow-placement-events.ts:813 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1994 - CLEAR_EXPECT_FLAG — diagram-reviewed; event roles: ward, coordinator, ed, community Diagram action notes reviewed against the recorded source revision. Source digests detect subsequent edits; this is not runtime acceptance. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:559 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:561 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:2202 - REQUEST_PSYCH_REVIEW — modelled; event roles: ed, coordinator Reviewed command model (9 Nov 2026): the emergency department records that a psychiatric review was asked for; a time only, nothing ordered or scored. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:561 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:563 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:2216 Event/dispatch reference: src/components/ward-management/ward-flow-review-ready-events.ts:16 Subject: One open movement @@ -1386,11 +1404,11 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc tests: tests/ward-psych-review-ready-next.test.ts tests: tests/ward-event-permissions.test.ts Reviewed source: src/components/ward-management/ward-flow-review-ready-events.ts:61; SHA256 c8c07485713088517586cb0556d07e0a8ac812413934ba064f12d412b00936f4 - Reviewed source: src/components/ward-management/ward-flow-reducer.ts:2213; SHA256 edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:561; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb + Reviewed source: src/components/ward-management/ward-flow-reducer.ts:2213; SHA256 7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:563; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 - RECORD_PSYCH_REVIEW_SEEN — modelled; event roles: ed, coordinator Reviewed command model (9 Nov 2026): records that the registrar or consultant saw the person for the review asked for; a time only. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:562 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:564 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:2217 Event/dispatch reference: src/components/ward-management/ward-flow-review-ready-events.ts:23 Subject: One open movement with a review asked for @@ -1407,11 +1425,11 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc tests: tests/ward-psych-review-ready-next.test.ts tests: tests/ward-event-permissions.test.ts Reviewed source: src/components/ward-management/ward-flow-review-ready-events.ts:69; SHA256 c8c07485713088517586cb0556d07e0a8ac812413934ba064f12d412b00936f4 - Reviewed source: src/components/ward-management/ward-flow-reducer.ts:2214; SHA256 edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:562; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb + Reviewed source: src/components/ward-management/ward-flow-reducer.ts:2214; SHA256 7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:564; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 - MARK_WARD_READY_FOR_NEXT — modelled; event roles: ward, coordinator Reviewed command model (9 Nov 2026): a ward says it is ready for its next patient, or cancels that; a fact for the coordinator, who still pulls by hand. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:563 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:565 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:2218 Event/dispatch reference: src/components/ward-management/ward-flow-review-ready-events.ts:31 Subject: One ward @@ -1428,38 +1446,38 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc tests: tests/ward-psych-review-ready-next.test.ts tests: tests/ward-event-permissions.test.ts Reviewed source: src/components/ward-management/ward-flow-review-ready-events.ts:84; SHA256 c8c07485713088517586cb0556d07e0a8ac812413934ba064f12d412b00936f4 - Reviewed source: src/components/ward-management/ward-flow-reducer.ts:2215; SHA256 edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:563; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb + Reviewed source: src/components/ward-management/ward-flow-reducer.ts:2215; SHA256 7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:565; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 - RAISE_EXPECT_FLAG — diagram-reviewed; event roles: ward, coordinator, ed, community Diagram action notes reviewed against the recorded source revision. Source digests detect subsequent edits; this is not runtime acceptance. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:564 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:566 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:2227 - FLAG_LEGAL_MISMATCH — diagram-reviewed; event roles: ward, coordinator Diagram action notes reviewed against the recorded source revision. Source digests detect subsequent edits; this is not runtime acceptance. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:565 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:567 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:2249 - EVALUATE_LEAVE_BED_WARNINGS — diagram-reviewed; event roles: ward, coordinator Diagram action notes reviewed against the recorded source revision. Source digests detect subsequent edits; this is not runtime acceptance. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:566 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:568 Event/dispatch reference: src/components/ward-management/ward-flow-bed-events.ts:862 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1789 - CONFIRM_MORNING_ROLLUP — diagram-reviewed; event roles: ward, bed_manager, coordinator Diagram action notes reviewed against the recorded source revision. Source digests detect subsequent edits; this is not runtime acceptance. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:567 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:569 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:2272 - SEND_WARD_BUZZ — diagram-reviewed; event roles: coordinator, bed_manager Diagram action notes reviewed against the recorded source revision. Source digests detect subsequent edits; this is not runtime acceptance. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:568 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:570 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:2303 - RECORD_REPATRIATION — diagram-reviewed; event roles: coordinator Diagram action notes reviewed against the recorded source revision. Source digests detect subsequent edits; this is not runtime acceptance. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:570 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:572 Event/dispatch reference: src/components/ward-management/ward-flow-record-events.ts:1351 - Event/dispatch reference: src/components/ward-management/ward-flow-record-stay-events.ts:478 + Event/dispatch reference: src/components/ward-management/ward-flow-record-stay-events.ts:479 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1896 - RECORD_HOME_SERVICE_RETURN — modelled; event roles: coordinator Reviewed command model: Fresh requested record, or request with agreed/not_yet_agreed/declined answer. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:572 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:574 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:2365 Subject: One current stay's home-service return discussion Before: No request, a request without agreement, or an earlier recorded answer @@ -1473,12 +1491,12 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: Records a discussion only: does not book transport or a bed, raise a return movement or change the stay. tests: tests/ward-home-service-return.test.ts Reviewed source: src/components/ward-management/out-of-area/home-service-return.ts:122; SHA256 2f3fbdc6ba3e36b6eb890a51a7707e8b26f71eba4a803181220c17c63d1249d7 - Reviewed source: src/components/ward-management/ward-flow-reducer.ts:2351; SHA256 edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:570; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb + Reviewed source: src/components/ward-management/ward-flow-reducer.ts:2351; SHA256 7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:572; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - FLAG_RETURN_EARLY — modelled; event roles: coordinator Reviewed command model: the coordinator flags an out-of-area stay as ready to return early to a home hospital. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:574 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:576 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:2370 Subject: One current out-of-area stay Before: No early-return flag on the stay @@ -1490,11 +1508,11 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc guards: The stay is not already flagged. effects: Appends a returnEarlyFlags record; the home ward site, community and officer desks see an alert while the stay is current. tests: tests/ward-return-early.test.ts - Reviewed source: src/components/ward-management/ward-flow-reducer.ts:410; SHA256 edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a + Reviewed source: src/components/ward-management/ward-flow-reducer.ts:410; SHA256 7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a Reviewed source: src/components/ward-management/out-of-area/return-early.ts:70; SHA256 28c9ec25e8d1fc5808db7af91d11f76ce64b235c292fdddfa60d1423ac2eedb3 - RECORD_DIRECTORY_CHECK — modelled; event roles: coordinator, bed_manager, ward, ed, community, officer Reviewed command model: Latest {entryId, at, by} check for that identifier. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:576 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:578 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:2367 Subject: An on-call directory entry identifier Before: Seeded check metadata or a previously recorded check @@ -1506,18 +1524,18 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: Does not change the directory's phone/contact data or verify it against an external service. tests: tests/ward-on-call-checks.test.ts Reviewed source: src/components/ward-management/on-call/on-call-checks.ts:40; SHA256 4c75385ac14339cbc7d98efc18af52257bb6ae185011b80e244fcf21f6d68e9d - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:574; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:576; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - Reviewed source: src/components/ward-management/ward-flow-reducer.ts:2386; SHA256 edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a + Reviewed source: src/components/ward-management/ward-flow-reducer.ts:2386; SHA256 7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a - RECORD_HANDOVER_SIGN_OFF — diagram-reviewed; event roles: coordinator, ward Diagram action notes reviewed against the recorded source revision. Source digests detect subsequent edits; this is not runtime acceptance. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:579 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:581 Event/dispatch reference: src/components/ward-management/ward-flow-record-events.ts:1350 - Event/dispatch reference: src/components/ward-management/ward-flow-record-stay-events.ts:457 + Event/dispatch reference: src/components/ward-management/ward-flow-record-stay-events.ts:458 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1895 - RECORD_SITE_HANDOVER_SIGN_OFF — modelled; event roles: bed_manager, coordinator Reviewed command model: Site sign-off with a snapshot of unsigned wards and unanswered bed calls. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:583 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:585 Event/dispatch reference: src/components/ward-management/site-sign-off/site-handover-sign-off-reducer.ts:28 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:2373 Subject: One site and upcoming shift handover @@ -1535,10 +1553,10 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc Reviewed source: src/components/ward-management/site-sign-off/site-handover-sign-off-reducer.ts:26; SHA256 dc671972ed160a7492f79cde72ca6dab6dad70b59921bd378ecee4721b326db5 Reviewed source: src/components/ward-management/site-sign-off/site-handover-sign-off.ts:80; SHA256 abebadfb3e48655f6e362172ed644ae06615e26916f33334ce17419955567a33 Reviewed source: src/components/ward-management/ward-access-state.ts:686; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:581; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:583; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 - RECORD_TRIAGE_SIGNED — modelled; event roles: ed, community, ward, coordinator Reviewed command model (7 Nov 2026): a clinician signs a mental health triage and risk assessment (SMHMR900 and SMHMR905) for one person; closed-list codes only, never typed text. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:587 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:589 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:2379 Subject: One person on this workspace Before: No signed triage, or earlier signed triages, on the person @@ -1553,12 +1571,12 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: Appends a triages record (codes only); the patient record's Now tab lists it. No Undo: it is a signed record. Typed text (assessment, mental state, formulation, plan) stays in the form and is never in the event. tests: tests/ward-triage-signed.test.ts tests: tests/ward-event-permissions.test.ts - Reviewed source: src/components/ward-management/ward-flow-reducer.ts:2378; SHA256 edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a + Reviewed source: src/components/ward-management/ward-flow-reducer.ts:2378; SHA256 7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a Reviewed source: src/components/ward-management/triage/triage-signed-reducer.ts:46; SHA256 88ebffb9dc86dd544d9bdac7f561fcf4998a3af62d9a19ffe4211c5325142666 Reviewed source: src/components/ward-management/ward-access-state.ts:328; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - REQUEST_WARD_STAFF — modelled; event roles: ward, coordinator, bed_manager Source-reviewed command model: one open staff request per ward per shift, added or updated in place. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:591 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:593 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:2375 Subject: A ward's staff request for this shift or next shift Before: Known ward; no open request for that ward and shift, or one to update @@ -1571,12 +1589,12 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: Appends a record, or updates count, reasons and updatedAt on the open one; never names a patient effects: Does not change beds, placement, movements or any patient stage tests: tests/ward-staff-requests.test.ts - Reviewed source: src/components/ward-management/ward-flow-reducer.ts:2375; SHA256 edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a + Reviewed source: src/components/ward-management/ward-flow-reducer.ts:2375; SHA256 7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a Reviewed source: src/components/ward-management/staffing/staff-requests.ts:132; SHA256 d3e51d13faedefa5314d5f128c59473110a61bae075bd5ddb362788d5ae479f3 - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:591; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:593; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 - CLOSE_WARD_STAFF_REQUEST — modelled; event roles: ward, coordinator, bed_manager Source-reviewed command model: an open staff request closed as arranged, not available or withdrawn. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:592 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:594 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:2376 Subject: An open staff request on a ward Before: Request exists on the named ward and is still open @@ -1589,33 +1607,33 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: Closes the one record; open lists and alerts drop it effects: Does not change beds, placement, movements or any patient stage tests: tests/ward-staff-requests.test.ts - Reviewed source: src/components/ward-management/ward-flow-reducer.ts:2376; SHA256 edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a + Reviewed source: src/components/ward-management/ward-flow-reducer.ts:2376; SHA256 7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a Reviewed source: src/components/ward-management/staffing/staff-requests.ts:171; SHA256 d3e51d13faedefa5314d5f128c59473110a61bae075bd5ddb362788d5ae479f3 - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:592; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:594; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 - RECORD_CLINICAL_CONTACT — diagram-reviewed; event roles: community, coordinator Diagram action notes reviewed against the recorded source revision. Source digests detect subsequent edits; this is not runtime acceptance. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:596 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:598 Event/dispatch reference: src/components/ward-management/ward-flow-record-events.ts:1352 - Event/dispatch reference: src/components/ward-management/ward-flow-record-stay-events.ts:664 + Event/dispatch reference: src/components/ward-management/ward-flow-record-stay-events.ts:665 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1897 - DISPATCH_BROADCAST_ALERT — diagram-reviewed; event roles: coordinator, bed_manager Diagram action notes reviewed against the recorded source revision. Source digests detect subsequent edits; this is not runtime acceptance. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:600 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:602 Event/dispatch reference: src/components/ward-management/alerts/ward-broadcast-reducer.ts:69 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:2328 - ACKNOWLEDGE_BROADCAST_ALERT — diagram-reviewed; event roles: coordinator, ward, ed, officer, community, bed_manager Diagram action notes reviewed against the recorded source revision. Source digests detect subsequent edits; this is not runtime acceptance. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:601 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:603 Event/dispatch reference: src/components/ward-management/alerts/ward-broadcast-reducer.ts:151 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:2329 - STAND_DOWN_BROADCAST_ALERT — diagram-reviewed; event roles: coordinator, bed_manager Diagram action notes reviewed against the recorded source revision. Source digests detect subsequent edits; this is not runtime acceptance. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:602 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:604 Event/dispatch reference: src/components/ward-management/alerts/ward-broadcast-reducer.ts:198 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:2330 - EXTEND_BROADCAST_ALERT — modelled; event roles: coordinator, bed_manager Reviewed command model: Same active alert with expiry and duration each extended by the fixed default. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:603 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:605 Event/dispatch reference: src/components/ward-management/alerts/ward-broadcast-reducer.ts:228 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:2331 Subject: An active broadcast alert @@ -1628,11 +1646,11 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc tests: tests/ward-top25-broadcast-extend.dom.test.tsx Reviewed source: src/components/ward-management/alerts/ward-broadcast-reducer.ts:228; SHA256 cd46a2fc3599a4dbc092b05eda177f7da454de1cd8642597fa17bf3281a11907 Reviewed source: src/components/ward-management/alerts/ward-broadcast-reducer.ts:461; SHA256 cd46a2fc3599a4dbc092b05eda177f7da454de1cd8642597fa17bf3281a11907 - Reviewed source: src/components/ward-management/ward-flow-events.ts:2395; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-events.ts:2395; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-access-state.ts:707; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - ADD_BROADCAST_ALERT_UNITS — modelled; event roles: coordinator, bed_manager Reviewed command model: Existing recipients plus new unique named desks. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:604 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:606 Event/dispatch reference: src/components/ward-management/alerts/ward-broadcast-reducer.ts:243 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:2332 Subject: An active directive or bed call's recipients @@ -1647,11 +1665,11 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: Does not reset expiry or clear previous replies/acknowledgements. tests: tests/ward-broadcast-add-units.test.ts Reviewed source: src/components/ward-management/alerts/ward-broadcast-reducer.ts:243; SHA256 cd46a2fc3599a4dbc092b05eda177f7da454de1cd8642597fa17bf3281a11907 - Reviewed source: src/components/ward-management/ward-flow-events.ts:2394; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-events.ts:2394; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-access-state.ts:707; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - RAISE_PULL_NOW — modelled; event roles: coordinator Reviewed command model: Same movement plus active Pull now addressed to the relevant wards. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:608 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:610 Event/dispatch reference: src/components/ward-management/alerts/ward-broadcast-reducer.ts:293 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:2333 Subject: A waiting movement and a new patient-specific broadcast @@ -1667,11 +1685,11 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc tests: tests/ward-global-alerts.test.ts Reviewed source: src/components/ward-management/alerts/ward-broadcast-reducer.ts:293; SHA256 cd46a2fc3599a4dbc092b05eda177f7da454de1cd8642597fa17bf3281a11907 Reviewed source: src/components/ward-management/alerts/ward-broadcast-model.ts:317; SHA256 b27896e799de72fbb71c7782bc2a571627809762c61a40dcecb86b07007ca647 - Reviewed source: src/components/ward-management/ward-flow-events.ts:2416; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-events.ts:2416; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-access-state.ts:728; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - REPLY_BROADCAST_ALERT — modelled; event roles: ward, bed_manager, coordinator Reviewed command model: Reply appended; desk also acknowledged. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:610 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:612 Event/dispatch reference: src/components/ward-management/alerts/ward-broadcast-reducer.ts:348 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:2334 Subject: One desk's answer to a bed call or Pull now @@ -1688,11 +1706,11 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc tests: tests/ward-global-alerts.test.ts tests: tests/ward-broadcast-audience-bed-call-wards.test.ts Reviewed source: src/components/ward-management/alerts/ward-broadcast-reducer.ts:348; SHA256 cd46a2fc3599a4dbc092b05eda177f7da454de1cd8642597fa17bf3281a11907 - Reviewed source: src/components/ward-management/ward-flow-events.ts:2415; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-events.ts:2415; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - BOOK_PLANNED_ADMISSION — modelled; event roles: coordinator, bed_manager, ward Reviewed command model: New PA-* record in booked state, holding no bed. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:613 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:615 Event/dispatch reference: src/components/ward-management/capacity/planned-admissions-reducer.ts:74 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:2340 Subject: A future planned admission @@ -1712,11 +1730,11 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc tests: tests/ward-audit24-1-planned-booking-authorised.test.ts Reviewed source: src/components/ward-management/capacity/planned-admissions-reducer.ts:299; SHA256 fcd8e3b7667a295dc58225efa80ca7dc36863ad203ca4b6873c535c7ae5a0eb3 Reviewed source: src/components/ward-management/capacity/planned-admissions-reducer.ts:263; SHA256 fcd8e3b7667a295dc58225efa80ca7dc36863ad203ca4b6873c535c7ae5a0eb3 - Reviewed source: src/components/ward-management/ward-flow-events.ts:2431; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-events.ts:2431; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - CHANGE_PLANNED_ADMISSION — modelled; event roles: coordinator, bed_manager, ward Reviewed command model: Still booked, with revised fields, changedAt and incremented changeCount. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:614 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:616 Event/dispatch reference: src/components/ward-management/capacity/planned-admissions-reducer.ts:388 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:2345 Subject: An existing booked planned admission @@ -1737,11 +1755,11 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc tests: tests/ward-audit24-1-planned-booking-authorised.test.ts Reviewed source: src/components/ward-management/capacity/planned-admissions-reducer.ts:383; SHA256 fcd8e3b7667a295dc58225efa80ca7dc36863ad203ca4b6873c535c7ae5a0eb3 Reviewed source: src/components/ward-management/capacity/planned-admissions-reducer.ts:263; SHA256 fcd8e3b7667a295dc58225efa80ca7dc36863ad203ca4b6873c535c7ae5a0eb3 - Reviewed source: src/components/ward-management/ward-flow-events.ts:2488; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-events.ts:2488; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - CANCEL_PLANNED_ADMISSION — modelled; event roles: coordinator, bed_manager, ward Reviewed command model: cancelled with cancel reason and time. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:615 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:617 Event/dispatch reference: src/components/ward-management/capacity/planned-admissions-reducer.ts:464 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:2350 Subject: One booked planned admission @@ -1756,11 +1774,11 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: The step can be taken back by UNDO_RELEASE_STEP within the Undo window, filed against the booking. tests: tests/ward-planned-admissions.test.ts Reviewed source: src/components/ward-management/capacity/planned-admissions-reducer.ts:459; SHA256 fcd8e3b7667a295dc58225efa80ca7dc36863ad203ca4b6873c535c7ae5a0eb3 - Reviewed source: src/components/ward-management/ward-flow-events.ts:2488; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-events.ts:2488; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - CONVERT_PLANNED_ADMISSION — modelled; event roles: ward, coordinator Reviewed command model: Plan arrived and linked to a new occupied admission. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:616 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:618 Event/dispatch reference: src/components/ward-management/capacity/planned-admissions-reducer.ts:488 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:743 Subject: A booked plan and its receiving ward @@ -1778,13 +1796,13 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc tests: tests/ward-planned-admissions.test.ts tests: tests/ward-planned-arrival-closed-bed.test.ts Reviewed source: src/components/ward-management/capacity/planned-admissions-reducer.ts:483; SHA256 fcd8e3b7667a295dc58225efa80ca7dc36863ad203ca4b6873c535c7ae5a0eb3 - Reviewed source: src/components/ward-management/ward-flow-events.ts:2516; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-events.ts:2516; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c -- RECORD_SUPPORT_NOTIFICATION — modelled; event roles: ward, coordinator +- RECORD_SUPPORT_NOTIFICATION — modelled; event roles: ward, coordinator, ed Reviewed command model: Another told/not_applicable record appended. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:619 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:622 Event/dispatch reference: src/components/ward-management/ward-flow-record-events.ts:1353 - Event/dispatch reference: src/components/ward-management/ward-flow-record-stay-events.ts:676 + Event/dispatch reference: src/components/ward-management/ward-flow-record-stay-events.ts:677 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1898 Subject: One completed involuntary arrival/transfer or discharge, and one support party Before: No or earlier checklist Tell record @@ -1798,14 +1816,14 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: Advisory recording only: neither calculates legal duties/deadlines nor blocks or advances the journey. Typed who/reason invokes typed-text persistence boundary. tests: tests/ward-support-notifications.test.ts tests: tests/ward-discharge-support-notification.test.ts - Reviewed source: src/components/ward-management/ward-flow-record-stay-events.ts:671; SHA256 76f41e705f685062ecbfc8024544a4d50b5097cc1f9f68d9ad34976cbf9e4621 - Reviewed source: src/components/ward-management/ward-flow-events.ts:2519; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-record-stay-events.ts:672; SHA256 22c8cf4905fa0043b38eb8353c92f3d760b835fd8830dc5e09eefee04b5ea866 + Reviewed source: src/components/ward-management/ward-flow-events.ts:2519; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-access-state.ts:886; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - SEND_RELEASE_SUPPORT_NOTICE — modelled; event roles: ward, coordinator Reviewed command model: confirmed release with service marked Sent. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:620 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:623 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1956 - Event/dispatch reference: src/components/ward-management/ward-flow-release-notice-events.ts:29 + Event/dispatch reference: src/components/ward-management/ward-flow-release-notice-events.ts:31 Subject: One confirmed bed release and a support service Before: confirmed release with no Sent record for chosen service After: confirmed release with service marked Sent @@ -1817,12 +1835,12 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: Appends {service,at,by} to supportNoticesSent. effects: This prototype writes the record; no external pharmacy, transport or cleaning integration is invoked by this handler. No bed/stage change. tests: tests/ward-release-notices.test.ts - Reviewed source: src/components/ward-management/ward-flow-release-notice-events.ts:52; SHA256 057ef764a841f671c0fac813c4f9485a121ca811c1228b7fec3b7abdbd94d5fd - Reviewed source: src/components/ward-management/ward-flow-release-notice-events.ts:28; SHA256 057ef764a841f671c0fac813c4f9485a121ca811c1228b7fec3b7abdbd94d5fd + Reviewed source: src/components/ward-management/ward-flow-release-notice-events.ts:55; SHA256 81d8ce05491f37320f53e7be9054404ad54c2e7244d4484901eaa5ada8f52536 + Reviewed source: src/components/ward-management/ward-flow-release-notice-events.ts:30; SHA256 81d8ce05491f37320f53e7be9054404ad54c2e7244d4484901eaa5ada8f52536 Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - RECORD_DISCHARGE_DEPENDENCY — modelled; event roles: ward, coordinator Reviewed command model: Latest outstanding/done/not_needed state and owner recorded. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:622 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:625 Event/dispatch reference: src/components/ward-management/discharges/discharge-dependency-events.ts:34 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1959 Subject: One non-discharged bed release and one logistics kind @@ -1841,7 +1859,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - RECORD_DISCHARGE_PLAN_CHANGE — modelled; event roles: ward, coordinator Reviewed command model: One changed fact, with recorded change history where applicable. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:623 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:626 Event/dispatch reference: src/components/ward-management/discharges/discharge-dependency-events.ts:49 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1960 Subject: One non-discharged bed release's logistics plan @@ -1861,7 +1879,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - RECORD_DISCHARGE_CHECK — modelled; event roles: ward, coordinator Reviewed command model: One discharge checklist item recorded as done, not needed or outstanding. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:625 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:628 Event/dispatch reference: src/components/ward-management/discharges/discharge-check-events.ts:37 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:2361 Subject: One stay with a bed (not waitlisted) and one checklist item @@ -1875,10 +1893,10 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: Advisory only: never blocks RECORD_LEAVING or RECORD_PATIENT_DISCHARGE and changes no release or bed figure. tests: tests/ward-discharge-follow-through.test.ts Reviewed source: src/components/ward-management/discharges/discharge-check-events.ts:60; SHA256 584c52430b354fe68ebf1f0504c424400f28a32eb8f081f08ffb27a7016896d1 - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:625; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:628; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 - RECORD_FOLLOW_UP_REPLY — modelled; event roles: community, coordinator Reviewed command model: The community team's follow-up reply recorded, with a listed reason when declined. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:627 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:630 Event/dispatch reference: src/components/ward-management/discharges/discharge-check-events.ts:51 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:2362 Subject: One stay with a bed (not waitlisted) referred to the acting community team @@ -1893,12 +1911,12 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: Does not change the ward's followUp record, the care journey, any release or bed figure. tests: tests/ward-discharge-follow-through.test.ts Reviewed source: src/components/ward-management/discharges/discharge-check-events.ts:60; SHA256 584c52430b354fe68ebf1f0504c424400f28a32eb8f081f08ffb27a7016896d1 - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:627; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:630; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 - RECORD_ARRIVAL_CHECK — modelled; event roles: ed, coordinator Reviewed command model: Chosen flag set to the opposite recorded boolean. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:628 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:631 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1962 - Event/dispatch reference: src/components/ward-management/ward-flow-release-notice-events.ts:44 + Event/dispatch reference: src/components/ward-management/ward-flow-release-notice-events.ts:47 Subject: An open movement's pre-transfer checklist flag Before: Contraband-search or medication-chart flag false/unrecorded or true After: Chosen flag set to the opposite recorded boolean @@ -1911,12 +1929,12 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: Does not itself certify a clinical assessment, create a notice or advance stage. tests: tests/ward-release-notices.test.ts tests: tests/ward-top25-admission-checklist.dom.test.tsx - Reviewed source: src/components/ward-management/ward-flow-release-notice-events.ts:91; SHA256 057ef764a841f671c0fac813c4f9485a121ca811c1228b7fec3b7abdbd94d5fd - Reviewed source: src/components/ward-management/ward-flow-release-notice-events.ts:43; SHA256 057ef764a841f671c0fac813c4f9485a121ca811c1228b7fec3b7abdbd94d5fd + Reviewed source: src/components/ward-management/ward-flow-release-notice-events.ts:102; SHA256 81d8ce05491f37320f53e7be9054404ad54c2e7244d4484901eaa5ada8f52536 + Reviewed source: src/components/ward-management/ward-flow-release-notice-events.ts:46; SHA256 81d8ce05491f37320f53e7be9054404ad54c2e7244d4484901eaa5ada8f52536 Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - UNDO_REFERRAL_DECISION — modelled; event roles: ward, coordinator, ed, community Reviewed command model: Referral restored to its pre-decision snapshot. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:632 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:635 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1752 Event/dispatch reference: src/components/ward-management/ward-flow-undo-events.ts:98 Subject: The latest accepted/declined decision snapshot on a referral @@ -1933,12 +1951,12 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc tests: tests/ward-undo-and-bed-board.test.ts tests: tests/ward-undo-toast-record-seq.dom.test.tsx Reviewed source: src/components/ward-management/ward-flow-undo-events.ts:98; SHA256 7344423b59a813fb2f73d630be0d158154dd5c64d718ec797aebe6de4c140b5e - Reviewed source: src/components/ward-management/ward-flow-reducer.ts:1465; SHA256 edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a + Reviewed source: src/components/ward-management/ward-flow-reducer.ts:1465; SHA256 7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a Reviewed source: src/components/ward-management/ward-undo.ts:491; SHA256 22a192fa0c973fff7b2b9b13038f17020b3990a33a0588af76ab2a4f79d035db Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - UNDO_AUDIT_REVIEW — modelled; event roles: coordinator Reviewed command model: That review removed while audit history remains. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:634 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:637 Event/dispatch reference: src/components/ward-management/ward-flow-protected-record-events.ts:104 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1577 Subject: One captured-event review in the current world generation @@ -1953,13 +1971,13 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: Does not erase the reviewed event or its original review/Undo audit entries. tests: tests/ward-undo-and-bed-board.test.ts tests: tests/ward-governance.dom.test.tsx - Reviewed source: src/components/ward-management/ward-flow-protected-record-events.ts:103; SHA256 54c8451a1eab7a74e88ff65a617a8cd2440a3de08b73e42b7e5e93720531fc96 - Reviewed source: src/components/ward-management/ward-flow-events.ts:2587; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-protected-record-events.ts:103; SHA256 1eb306ce2963727a9c1e99aa60dd505b7ac247af29c50b7980f0617f6e1ee25e + Reviewed source: src/components/ward-management/ward-flow-events.ts:2587; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-undo.ts:491; SHA256 22a192fa0c973fff7b2b9b13038f17020b3990a33a0588af76ab2a4f79d035db Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - PLACE_IN_BED — modelled; event roles: ward, coordinator Reviewed command model: Same stay recorded in the selected numbered bed and matching bed kind. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:636 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:639 Event/dispatch reference: src/components/ward-management/ward-flow-bed-events.ts:99 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1771 Subject: A current occupied/pulled stay on one ward @@ -1976,11 +1994,11 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc tests: tests/ward-undo-and-bed-board.test.ts tests: tests/ward-release-pull-undo-guard.test.ts Reviewed source: src/components/ward-management/ward-flow-bed-events.ts:97; SHA256 be57f071ee46dc50dc5c0ac2dd9474b8a75f474f65aa943661a8bd08d2ed8113 - Reviewed source: src/components/ward-management/ward-flow-events.ts:2592; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-events.ts:2592; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - UNDO_PLACE_IN_BED — modelled; event roles: ward, coordinator Reviewed command model: Prior bed number/kind and associated hold numbers restored. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:637 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:640 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1753 Event/dispatch reference: src/components/ward-management/ward-flow-undo-events.ts:134 Subject: A stay's latest numbered-bed move @@ -1996,12 +2014,12 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc tests: tests/ward-undo-and-bed-board.test.ts tests: tests/ward-release-pull-undo-guard.test.ts Reviewed source: src/components/ward-management/ward-flow-undo-events.ts:134; SHA256 7344423b59a813fb2f73d630be0d158154dd5c64d718ec797aebe6de4c140b5e - Reviewed source: src/components/ward-management/ward-flow-events.ts:2612; SHA256 378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf + Reviewed source: src/components/ward-management/ward-flow-events.ts:2612; SHA256 d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e Reviewed source: src/components/ward-management/ward-undo.ts:491; SHA256 22a192fa0c973fff7b2b9b13038f17020b3990a33a0588af76ab2a4f79d035db Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - UNDO_REFER_TO_UNITS — modelled; event roles: coordinator Reviewed command model: Movement offer/ward-referral changes reversed. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:640 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:643 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1754 Event/dispatch reference: src/components/ward-management/ward-flow-undo-events.ts:261 Subject: Latest undoable REFER_TO_UNITS on the named subject @@ -2024,7 +2042,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - UNDO_ACCEPT_IN_PRINCIPLE — modelled; event roles: ward, coordinator Reviewed command model: Acceptance, held bed/admission and generated notices restored to pre-acceptance. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:641 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:644 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1755 Event/dispatch reference: src/components/ward-management/ward-flow-undo-events.ts:262 Subject: Latest undoable ACCEPT_IN_PRINCIPLE on the named subject @@ -2047,7 +2065,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - UNDO_LEGAL_FORM_RECORD — modelled; event roles: ed, coordinator, ward, community Reviewed command model: Newest recorded form/time/receipt/expiry and accompanying changed rows restored. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:642 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:645 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1756 Event/dispatch reference: src/components/ward-management/ward-flow-undo-events.ts:263 Subject: Latest undoable RECORD_LEGAL_FORM_WRITTEN, RECORD_LEGAL_FORM_CODE, RECORD_LEGAL_FORM_RECEIVED or RECORD_LEGAL_FORM_EXPIRY on the named subject @@ -2074,7 +2092,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - UNDO_SUPPORT_NOTIFICATION — modelled; event roles: ward, coordinator Reviewed command model: Newest Tell record removed from the subject's checklist. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:643 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:646 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1757 Event/dispatch reference: src/components/ward-management/ward-flow-undo-events.ts:264 Subject: Latest undoable RECORD_SUPPORT_NOTIFICATION on the named subject @@ -2098,7 +2116,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - UNDO_REPATRIATION — modelled; event roles: coordinator Reviewed command model: Return transport record and all generated journey/notice changes restored. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:644 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:647 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1758 Event/dispatch reference: src/components/ward-management/ward-flow-undo-events.ts:265 Subject: Latest undoable RECORD_REPATRIATION on the named subject @@ -2121,7 +2139,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - UNDO_FLAG_RETURN_EARLY — modelled; event roles: coordinator Reviewed command model: takes back the newest early-return flag on a stay within the Undo window. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:645 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:648 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1759 Event/dispatch reference: src/components/ward-management/ward-flow-undo-events.ts:266 Subject: The newest FLAG_RETURN_EARLY on one stay @@ -2136,11 +2154,11 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: Restores the saved snapshot of the step, removes notices that step raised and consumes the Undo record. effects: The audit evidence of the step and of the Undo stays. tests: tests/ward-return-early.test.ts - Reviewed source: src/components/ward-management/ward-flow-reducer.ts:1508; SHA256 edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a + Reviewed source: src/components/ward-management/ward-flow-reducer.ts:1508; SHA256 7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a Reviewed source: src/components/ward-management/ward-flow-undo-events.ts:266; SHA256 7344423b59a813fb2f73d630be0d158154dd5c64d718ec797aebe6de4c140b5e - UNDO_HANDOVER_SIGN_OFF — modelled; event roles: coordinator, ward Reviewed command model: Latest sign-off for that ward or network removed. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:646 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:649 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1760 Event/dispatch reference: src/components/ward-management/ward-flow-undo-events.ts:267 Subject: Latest undoable RECORD_HANDOVER_SIGN_OFF on the named subject @@ -2165,7 +2183,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - UNDO_SITE_HANDOVER_SIGN_OFF — modelled; event roles: bed_manager Reviewed command model: Latest sign-off for that site removed; no ward sign-off changed. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:649 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:652 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1761 Event/dispatch reference: src/components/ward-management/ward-flow-undo-events.ts:268 Subject: Latest undoable RECORD_SITE_HANDOVER_SIGN_OFF on the named subject @@ -2190,7 +2208,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc Reviewed source: src/components/ward-management/ward-flow-undo-events.ts:283; SHA256 7344423b59a813fb2f73d630be0d158154dd5c64d718ec797aebe6de4c140b5e - UNDO_ED_STEP — modelled; event roles: ed, ward, community, coordinator Reviewed command model: Newest ED board step and all records it changed restored. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:650 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:653 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1762 Event/dispatch reference: src/components/ward-management/ward-flow-undo-events.ts:269 Subject: Latest undoable RECORD_ARRIVED_IN_DEPARTMENT, RECORD_EXAMINATION, RECORD_MEDICAL_CLEARANCE, RECORD_TRANSPORT_NEED, RECORD_ED_PRESENTATION, HANDOVER_READY, REQUEST_PSYCH_REVIEW or RECORD_PSYCH_REVIEW_SEEN on the named subject @@ -2214,7 +2232,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - UNDO_TRANSPORT_STEP — modelled; event roles: officer, ward, coordinator Reviewed command model: Newest transport stage reversed, including arrival-created stay and affected bed/resource changes. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:651 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:654 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1763 Event/dispatch reference: src/components/ward-management/ward-flow-undo-events.ts:270 Subject: Latest undoable TRANSPORT_ACCEPTED, TRANSPORT_EN_ROUTE, PATIENT_COLLECTED or PATIENT_ARRIVED on the named subject @@ -2238,7 +2256,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - UNDO_DEPARTURE — modelled; event roles: ward, coordinator Reviewed command model: Departure reversed, stay and capacity restored if still safe. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:652 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:655 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1764 Event/dispatch reference: src/components/ward-management/ward-flow-undo-events.ts:271 Subject: Latest undoable RECORD_LEAVING or RECORD_PATIENT_DISCHARGE on the named subject @@ -2261,7 +2279,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - UNDO_ABSENT_WITHOUT_LEAVE — modelled; event roles: ward, coordinator Reviewed command model: Newest absence record and related row changes reversed. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:653 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:656 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1765 Event/dispatch reference: src/components/ward-management/ward-flow-undo-events.ts:272 Subject: Latest undoable RECORD_ABSENT_WITHOUT_LEAVE on the named subject @@ -2284,7 +2302,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc Reviewed source: src/components/ward-management/ward-access-state.ts:658; SHA256 d635256d069ca31d3c9693db54a067de04fd24cd7cc1ccd477c4bfbc73fe236c - UNDO_BED_MEETING_ACTION — modelled; event roles: coordinator, ward, ed, community, bed_manager Reviewed command model: One completed meeting action reopened to its exact prior state. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:655 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:658 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1766 Event/dispatch reference: src/components/ward-management/ward-flow-undo-events.ts:273 Subject: Latest undoable COMPLETE_BED_MEETING_ACTION or RECORD_BED_MEETING_ACTION on the named subject @@ -2308,7 +2326,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc Reviewed source: src/components/ward-management/ward-bed-meeting-undo-event-type.ts:10; SHA256 a112bd8031c48d720a344b7a3fe9821b6f41db2d88956a2b001f8e5fca8fdb41 - UNDO_BED_STEP — modelled; event roles: ward, bed_manager, coordinator Reviewed command model: takes back a bed closed or reopened, or a return from leave, within the Undo window. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:657 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:660 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1767 Event/dispatch reference: src/components/ward-management/ward-flow-undo-events.ts:274 Subject: One bed (unitId and bedNumber) or one leave bed record @@ -2324,11 +2342,11 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: The audit evidence of the step and of the Undo stays. tests: tests/ward-tier1-undo.test.ts tests: tests/ward-undo-dependent-records.test.ts - Reviewed source: src/components/ward-management/ward-flow-reducer.ts:1516; SHA256 edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a + Reviewed source: src/components/ward-management/ward-flow-reducer.ts:1516; SHA256 7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a Reviewed source: src/components/ward-management/ward-flow-undo-events.ts:274; SHA256 7344423b59a813fb2f73d630be0d158154dd5c64d718ec797aebe6de4c140b5e - UNDO_RELEASE_STEP — modelled; event roles: coordinator, ward, ed, community, bed_manager Reviewed command model: takes back a released bed, confirmed discharge sign-off, cancelled transport, withdrawn ward request or cancelled planned admission. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:658 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:661 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1768 Event/dispatch reference: src/components/ward-management/ward-flow-undo-events.ts:275 Subject: One movement, one bed release, or one planned admission @@ -2343,11 +2361,11 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: Restores the saved snapshot of the step, removes notices that step raised and consumes the Undo record. effects: The audit evidence of the step and of the Undo stays. tests: tests/ward-tier1-undo.test.ts - Reviewed source: src/components/ward-management/ward-flow-reducer.ts:1517; SHA256 edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a + Reviewed source: src/components/ward-management/ward-flow-reducer.ts:1517; SHA256 7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a Reviewed source: src/components/ward-management/ward-flow-undo-events.ts:275; SHA256 7344423b59a813fb2f73d630be0d158154dd5c64d718ec797aebe6de4c140b5e - UNDO_PATIENT_RECORD — modelled; event roles: community, coordinator Reviewed command model: takes back a community treatment order recorded or ended, or a record archived in error. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:659 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:662 Event/dispatch reference: src/components/ward-management/ward-flow-reducer.ts:1769 Event/dispatch reference: src/components/ward-management/ward-flow-undo-events.ts:276 Subject: One patient record @@ -2363,12 +2381,12 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc effects: The audit evidence of the step and of the Undo stays. tests: tests/ward-tier1-undo.test.ts tests: tests/ward-retained-umrn.test.ts - Reviewed source: src/components/ward-management/ward-flow-reducer.ts:1518; SHA256 edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a + Reviewed source: src/components/ward-management/ward-flow-reducer.ts:1518; SHA256 7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a Reviewed source: src/components/ward-management/ward-flow-undo-events.ts:276; SHA256 7344423b59a813fb2f73d630be0d158154dd5c64d718ec797aebe6de4c140b5e Reviewed source: src/components/ward-management/ward-retained-umrn.ts:25; SHA256 7968243f077b9d5c9a6fe6a56385f48ff6a97aa39cfdeec8fe97f05919693d80 - RECORD_CARE_PLAN — modelled; event roles: ward, ed, community, coordinator Source-reviewed command model: a new Current care plan on the patient; the previous Current plan becomes Superseded. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:663 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:666 Event/dispatch reference: src/components/ward-management/ward-patient-care-plan-events.ts:14 Event/dispatch reference: src/components/ward-management/ward-patient-care-plan-reducer.ts:44 Subject: A patient record's care plans @@ -2384,11 +2402,11 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc tests: tests/ward-patient-care-plans.test.ts tests: tests/ward-event-permissions.test.ts Reviewed source: src/components/ward-management/ward-patient-care-plan-reducer.ts:44; SHA256 ebd947f4ec177d0acb998b35f3ebd66d0ac58b777c9a874e20ed3e67203caa1d - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:663; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:666; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 Reviewed source: src/components/ward-management/ward-patient-care-plans.ts:98; SHA256 20f25414be8b4ae5eb1b9cc9eee189ba1ba08b0466b00ee6f7139876b963752f - RECORD_TRIBUNAL_HEARING — modelled; event roles: ward, community, coordinator Source-reviewed command model: a Mental Health Tribunal hearing date held on the patient as typed. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:664 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:667 Event/dispatch reference: src/components/ward-management/ward-patient-care-plan-events.ts:22 Event/dispatch reference: src/components/ward-management/ward-patient-care-plan-reducer.ts:81 Subject: A patient record's tribunal hearing @@ -2401,11 +2419,11 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc tests: tests/ward-patient-care-plans.test.ts tests: tests/ward-event-permissions.test.ts Reviewed source: src/components/ward-management/ward-patient-care-plan-reducer.ts:81; SHA256 ebd947f4ec177d0acb998b35f3ebd66d0ac58b777c9a874e20ed3e67203caa1d - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:664; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:667; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 Reviewed source: src/components/ward-management/ward-patient-care-plans.ts:149; SHA256 20f25414be8b4ae5eb1b9cc9eee189ba1ba08b0466b00ee6f7139876b963752f - RECORD_TRIBUNAL_OUTCOME — modelled; event roles: ward, community, coordinator Source-reviewed command model: the outcome of the recorded tribunal hearing, held beside its date. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:665 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:668 Event/dispatch reference: src/components/ward-management/ward-patient-care-plan-events.ts:33 Event/dispatch reference: src/components/ward-management/ward-patient-care-plan-reducer.ts:95 Subject: A patient record's tribunal hearing @@ -2418,10 +2436,10 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc tests: tests/ward-patient-care-plans.test.ts tests: tests/ward-event-permissions.test.ts Reviewed source: src/components/ward-management/ward-patient-care-plan-reducer.ts:95; SHA256 ebd947f4ec177d0acb998b35f3ebd66d0ac58b777c9a874e20ed3e67203caa1d - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:665; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:668; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 - SET_CULTURAL_SUPPORT_REQUEST — modelled; event roles: ward, ed, community, coordinator Source-reviewed command model: cultural support the person or family asked for, set or taken off. - Permission source: src/components/ward-management/ward-flow-event-roles.ts:666 + Permission source: src/components/ward-management/ward-flow-event-roles.ts:669 Event/dispatch reference: src/components/ward-management/ward-patient-care-plan-events.ts:41 Event/dispatch reference: src/components/ward-management/ward-patient-care-plan-reducer.ts:107 Subject: A patient record's cultural support request @@ -2434,7 +2452,7 @@ Source-contract SHA256: 0189c905fbd46534abfd4525836059397e5bc345ff68575575f2f3cc tests: tests/ward-patient-care-plans.test.ts tests: tests/ward-event-permissions.test.ts Reviewed source: src/components/ward-management/ward-patient-care-plan-reducer.ts:107; SHA256 ebd947f4ec177d0acb998b35f3ebd66d0ac58b777c9a874e20ed3e67203caa1d - Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:666; SHA256 01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb + Reviewed source: src/components/ward-management/ward-flow-event-roles.ts:669; SHA256 f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423 Reviewed source: src/components/ward-management/ward-patient-care-plans.ts:168; SHA256 20f25414be8b4ae5eb1b9cc9eee189ba1ba08b0466b00ee6f7139876b963752f ## 111 BOXES ON THE ROUTE MAP (lane = how it is coloured) diff --git a/docs/ward-flow/journey/actions.json b/docs/ward-flow/journey/actions.json index 87b41286e0..a0cdeba137 100644 --- a/docs/ward-flow/journey/actions.json +++ b/docs/ward-flow/journey/actions.json @@ -91,7 +91,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 391, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-referral-answer-events.ts", @@ -163,7 +163,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 395, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-patient-registration-reducer.ts", @@ -222,7 +222,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 39, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-record-events.ts", @@ -278,7 +278,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 43, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-record-events.ts", @@ -382,7 +382,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 427, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-referral-answer-events.ts", @@ -484,7 +484,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 439, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-referral-answer-events.ts", @@ -587,7 +587,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 477, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-record-events.ts", @@ -671,7 +671,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 484, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-referral-send-events.ts", @@ -735,7 +735,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 445, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-record-events.ts", @@ -823,7 +823,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 37, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-referral-send-events.ts", @@ -929,7 +929,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 85, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-referral-send-events.ts", @@ -1030,7 +1030,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 86, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-referral-answer-events.ts", @@ -1122,7 +1122,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 91, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-referral-answer-events.ts", @@ -1196,7 +1196,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 495, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-referral-send-events.ts", @@ -1268,7 +1268,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 492, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-referral-answer-events.ts", @@ -1353,7 +1353,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 373, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-referral-send-events.ts", @@ -1453,7 +1453,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 195, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-referral-send-events.ts", @@ -1535,7 +1535,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 84, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-record-events.ts", @@ -1604,7 +1604,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 81, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-record-events.ts", @@ -1668,7 +1668,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 104, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-record-events.ts", @@ -1742,7 +1742,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 491, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-placement-events.ts", @@ -1844,7 +1844,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 90, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-placement-events.ts", @@ -1954,7 +1954,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 114, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-placement-events.ts", @@ -2041,7 +2041,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 190, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-placement-events.ts", @@ -2115,7 +2115,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 52, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-record-events.ts", @@ -2211,7 +2211,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 153, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-transport-events.ts", @@ -2315,7 +2315,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 94, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-transport-events.ts", @@ -2379,7 +2379,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 95, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-transport-events.ts", @@ -2448,7 +2448,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 96, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-transport-events.ts", @@ -2525,7 +2525,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 97, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-transport-events.ts", @@ -2602,7 +2602,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 98, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-transport-events.ts", @@ -2715,7 +2715,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 175, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-transport-events.ts", @@ -2807,7 +2807,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 185, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-transport-events.ts", @@ -2876,7 +2876,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 196, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-record-events.ts", @@ -2940,7 +2940,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 38, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-record-events.ts", @@ -3004,7 +3004,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 113, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-referral-send-events.ts", @@ -3084,7 +3084,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 59, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-record-events.ts", @@ -3153,7 +3153,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 65, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-referral-send-events.ts", @@ -3225,7 +3225,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 75, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-record-legal-events.ts", @@ -3299,7 +3299,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 80, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-record-events.ts", @@ -3371,12 +3371,12 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 220, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-record-stay-events.ts", - "line": 122, - "sha256": "76f41e705f685062ecbfc8024544a4d50b5097cc1f9f68d9ad34976cbf9e4621" + "line": 123, + "sha256": "22c8cf4905fa0043b38eb8353c92f3d760b835fd8830dc5e09eefee04b5ea866" }, { "path": "src/components/ward-management/ward-flow-provider.tsx", @@ -3405,18 +3405,18 @@ }, { "path": "src/components/ward-management/ward-flow-record-stay-events.ts", - "line": 134, - "sha256": "76f41e705f685062ecbfc8024544a4d50b5097cc1f9f68d9ad34976cbf9e4621" + "line": 135, + "sha256": "22c8cf4905fa0043b38eb8353c92f3d760b835fd8830dc5e09eefee04b5ea866" }, { "path": "src/components/ward-management/ward-flow-record-stay-events.ts", - "line": 140, - "sha256": "76f41e705f685062ecbfc8024544a4d50b5097cc1f9f68d9ad34976cbf9e4621" + "line": 141, + "sha256": "22c8cf4905fa0043b38eb8353c92f3d760b835fd8830dc5e09eefee04b5ea866" }, { "path": "src/components/ward-management/ward-flow-record-stay-events.ts", - "line": 148, - "sha256": "76f41e705f685062ecbfc8024544a4d50b5097cc1f9f68d9ad34976cbf9e4621" + "line": 149, + "sha256": "22c8cf4905fa0043b38eb8353c92f3d760b835fd8830dc5e09eefee04b5ea866" } ] } @@ -3460,12 +3460,12 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 232, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-record-stay-events.ts", - "line": 208, - "sha256": "76f41e705f685062ecbfc8024544a4d50b5097cc1f9f68d9ad34976cbf9e4621" + "line": 209, + "sha256": "22c8cf4905fa0043b38eb8353c92f3d760b835fd8830dc5e09eefee04b5ea866" }, { "path": "src/components/ward-management/ward/ward-screen-overlays.tsx", @@ -3489,13 +3489,13 @@ }, { "path": "src/components/ward-management/ward-flow-record-stay-events.ts", - "line": 229, - "sha256": "76f41e705f685062ecbfc8024544a4d50b5097cc1f9f68d9ad34976cbf9e4621" + "line": 230, + "sha256": "22c8cf4905fa0043b38eb8353c92f3d760b835fd8830dc5e09eefee04b5ea866" }, { "path": "src/components/ward-management/ward-flow-record-stay-events.ts", - "line": 238, - "sha256": "76f41e705f685062ecbfc8024544a4d50b5097cc1f9f68d9ad34976cbf9e4621" + "line": 239, + "sha256": "22c8cf4905fa0043b38eb8353c92f3d760b835fd8830dc5e09eefee04b5ea866" } ] } @@ -3539,12 +3539,12 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 233, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-record-stay-events.ts", - "line": 244, - "sha256": "76f41e705f685062ecbfc8024544a4d50b5097cc1f9f68d9ad34976cbf9e4621" + "line": 245, + "sha256": "22c8cf4905fa0043b38eb8353c92f3d760b835fd8830dc5e09eefee04b5ea866" }, { "path": "src/components/ward-management/ward/ward-screen-overlays.tsx", @@ -3568,13 +3568,13 @@ }, { "path": "src/components/ward-management/ward-flow-record-stay-events.ts", - "line": 246, - "sha256": "76f41e705f685062ecbfc8024544a4d50b5097cc1f9f68d9ad34976cbf9e4621" + "line": 247, + "sha256": "22c8cf4905fa0043b38eb8353c92f3d760b835fd8830dc5e09eefee04b5ea866" }, { "path": "src/components/ward-management/ward-flow-record-stay-events.ts", - "line": 257, - "sha256": "76f41e705f685062ecbfc8024544a4d50b5097cc1f9f68d9ad34976cbf9e4621" + "line": 258, + "sha256": "22c8cf4905fa0043b38eb8353c92f3d760b835fd8830dc5e09eefee04b5ea866" } ] } @@ -3618,12 +3618,12 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 208, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-record-stay-events.ts", - "line": 317, - "sha256": "76f41e705f685062ecbfc8024544a4d50b5097cc1f9f68d9ad34976cbf9e4621" + "line": 318, + "sha256": "22c8cf4905fa0043b38eb8353c92f3d760b835fd8830dc5e09eefee04b5ea866" }, { "path": "src/components/ward-management/patients/patient-now-screen.tsx", @@ -3632,13 +3632,13 @@ }, { "path": "src/components/ward-management/ward-flow-record-stay-events.ts", - "line": 324, - "sha256": "76f41e705f685062ecbfc8024544a4d50b5097cc1f9f68d9ad34976cbf9e4621" + "line": 325, + "sha256": "22c8cf4905fa0043b38eb8353c92f3d760b835fd8830dc5e09eefee04b5ea866" }, { "path": "src/components/ward-management/ward-flow-record-stay-events.ts", - "line": 336, - "sha256": "76f41e705f685062ecbfc8024544a4d50b5097cc1f9f68d9ad34976cbf9e4621" + "line": 337, + "sha256": "22c8cf4905fa0043b38eb8353c92f3d760b835fd8830dc5e09eefee04b5ea866" } ] } @@ -3682,7 +3682,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 209, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-bed-events.ts", @@ -3756,7 +3756,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 199, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-bed-events.ts", @@ -3815,7 +3815,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 200, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-bed-events.ts", @@ -3887,7 +3887,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 204, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-bed-events.ts", @@ -3959,7 +3959,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 205, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-bed-events.ts", @@ -4028,7 +4028,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 206, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-bed-events.ts", @@ -4097,7 +4097,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 207, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-bed-events.ts", @@ -4161,7 +4161,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 100, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-bed-events.ts", @@ -4230,7 +4230,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 103, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-record-events.ts", @@ -4281,7 +4281,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 376, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-bed-events.ts", @@ -4350,7 +4350,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 112, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-referral-send-events.ts", @@ -4414,12 +4414,12 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 352, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 2070, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/movements/movement-drawer.tsx", @@ -4434,12 +4434,12 @@ { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 2102, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 2105, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" } ] } @@ -4483,12 +4483,12 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 353, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 2094, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/movements/movement-drawer.tsx", @@ -4503,12 +4503,12 @@ { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 2096, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 2128, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" } ] } @@ -4552,7 +4552,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 280, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-record-events.ts", @@ -4616,12 +4616,12 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 287, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 2130, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/movements/movement-workspace-cockpit.tsx", @@ -4631,12 +4631,12 @@ { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 2132, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 2161, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" } ] } @@ -4680,7 +4680,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 505, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-inbox-reducer.ts", @@ -4754,7 +4754,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 526, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-inbox-reducer.ts", @@ -4831,7 +4831,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 527, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-inbox-reducer.ts", @@ -4905,7 +4905,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 528, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-inbox-reducer.ts", @@ -4961,12 +4961,12 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 105, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 1807, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/ward-global-search.tsx", @@ -4991,7 +4991,7 @@ { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 1811, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" } ] } @@ -5018,12 +5018,12 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 106, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 1789, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/ward-flow-provider.tsx", @@ -5069,12 +5069,12 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 107, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 1797, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/demo-reset/ward-demo-reset.tsx", @@ -5089,7 +5089,7 @@ { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 1802, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" } ] } @@ -5116,12 +5116,12 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 109, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 1818, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/settings/settings-screen.tsx", @@ -5162,12 +5162,12 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 22, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-protected-record-events.ts", - "line": 471, - "sha256": "54c8451a1eab7a74e88ff65a617a8cd2440a3de08b73e42b7e5e93720531fc96" + "line": 474, + "sha256": "1eb306ce2963727a9c1e99aa60dd505b7ac247af29c50b7980f0617f6e1ee25e" }, { "path": "src/components/ward-management/ward-flow-provider.tsx", @@ -5176,8 +5176,8 @@ }, { "path": "src/components/ward-management/ward-flow-protected-record-events.ts", - "line": 481, - "sha256": "54c8451a1eab7a74e88ff65a617a8cd2440a3de08b73e42b7e5e93720531fc96" + "line": 484, + "sha256": "1eb306ce2963727a9c1e99aa60dd505b7ac247af29c50b7980f0617f6e1ee25e" } ] } @@ -5213,12 +5213,12 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 25, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-protected-record-events.ts", "line": 178, - "sha256": "54c8451a1eab7a74e88ff65a617a8cd2440a3de08b73e42b7e5e93720531fc96" + "sha256": "1eb306ce2963727a9c1e99aa60dd505b7ac247af29c50b7980f0617f6e1ee25e" }, { "path": "src/components/ward-management/ward-flow-provider.tsx", @@ -5250,12 +5250,12 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 26, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-protected-record-events.ts", "line": 131, - "sha256": "54c8451a1eab7a74e88ff65a617a8cd2440a3de08b73e42b7e5e93720531fc96" + "sha256": "1eb306ce2963727a9c1e99aa60dd505b7ac247af29c50b7980f0617f6e1ee25e" }, { "path": "src/components/ward-management/governance-registers.tsx", @@ -5328,7 +5328,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 192, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-record-events.ts", @@ -5420,7 +5420,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 194, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-placement-events.ts", @@ -5499,7 +5499,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 534, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-transport-events.ts", @@ -5562,8 +5562,8 @@ "sources": [ { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 555, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 557, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-transport-events.ts", @@ -5627,7 +5627,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 535, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-bed-events.ts", @@ -5690,8 +5690,8 @@ "sources": [ { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 540, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 542, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-bed-events.ts", @@ -5783,8 +5783,8 @@ "sources": [ { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 542, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 544, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-bed-events.ts", @@ -5854,7 +5854,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 23, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-bed-events.ts", @@ -5959,17 +5959,17 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 20, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-protected-record-events.ts", "line": 228, - "sha256": "54c8451a1eab7a74e88ff65a617a8cd2440a3de08b73e42b7e5e93720531fc96" + "sha256": "1eb306ce2963727a9c1e99aa60dd505b7ac247af29c50b7980f0617f6e1ee25e" }, { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 1737, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/ward/ward-leave-paper-authority.tsx", @@ -5984,12 +5984,12 @@ { "path": "src/components/ward-management/ward-flow-protected-record-events.ts", "line": 274, - "sha256": "54c8451a1eab7a74e88ff65a617a8cd2440a3de08b73e42b7e5e93720531fc96" + "sha256": "1eb306ce2963727a9c1e99aa60dd505b7ac247af29c50b7980f0617f6e1ee25e" }, { "path": "src/components/ward-management/ward-flow-protected-record-events.ts", "line": 282, - "sha256": "54c8451a1eab7a74e88ff65a617a8cd2440a3de08b73e42b7e5e93720531fc96" + "sha256": "1eb306ce2963727a9c1e99aa60dd505b7ac247af29c50b7980f0617f6e1ee25e" } ] } @@ -6016,17 +6016,17 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 21, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-protected-record-events.ts", - "line": 448, - "sha256": "54c8451a1eab7a74e88ff65a617a8cd2440a3de08b73e42b7e5e93720531fc96" + "line": 451, + "sha256": "1eb306ce2963727a9c1e99aa60dd505b7ac247af29c50b7980f0617f6e1ee25e" }, { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 1738, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/discharges/discharge-follow-up.tsx", @@ -6082,8 +6082,8 @@ "sources": [ { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 543, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 545, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-record-events.ts", @@ -6151,8 +6151,8 @@ "sources": [ { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 544, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 546, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-bed-events.ts", @@ -6228,8 +6228,8 @@ "sources": [ { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 546, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 548, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-record-legal-events.ts", @@ -6305,8 +6305,8 @@ "sources": [ { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 554, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 556, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-record-legal-events.ts", @@ -6369,8 +6369,8 @@ "sources": [ { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 553, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 555, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-record-legal-events.ts", @@ -6433,13 +6433,13 @@ "sources": [ { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 559, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 561, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 2265, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/movements/movement-workflow-actions.tsx", @@ -6449,12 +6449,12 @@ { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 2241, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 2267, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" } ] } @@ -6497,13 +6497,13 @@ "sources": [ { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 558, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 560, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 2206, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/movements/movement-workflow-actions.tsx", @@ -6513,12 +6513,12 @@ { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 2239, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 2244, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" } ] } @@ -6561,13 +6561,13 @@ "sources": [ { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 557, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 559, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 2192, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/movements/movement-workflow-actions.tsx", @@ -6577,12 +6577,12 @@ { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 2194, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 2197, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" } ] } @@ -6641,8 +6641,8 @@ "sources": [ { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 556, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 558, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-placement-events.ts", @@ -6715,13 +6715,13 @@ "sources": [ { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 565, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 567, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 2262, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/ward/ward-screen.tsx", @@ -6731,12 +6731,12 @@ { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 2264, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 2254, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" } ] } @@ -6779,13 +6779,13 @@ "sources": [ { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 566, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 568, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 2293, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/movements/movement-workflow-actions.tsx", @@ -6795,12 +6795,12 @@ { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 2298, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 2325, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" } ] } @@ -6826,8 +6826,8 @@ "sources": [ { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 564, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 566, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-bed-events.ts", @@ -6912,13 +6912,13 @@ "sources": [ { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 568, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 570, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-record-stay-events.ts", - "line": 478, - "sha256": "76f41e705f685062ecbfc8024544a4d50b5097cc1f9f68d9ad34976cbf9e4621" + "line": 479, + "sha256": "22c8cf4905fa0043b38eb8353c92f3d760b835fd8830dc5e09eefee04b5ea866" }, { "path": "src/components/ward-management/out-of-area/out-of-area-board.tsx", @@ -6927,33 +6927,33 @@ }, { "path": "src/components/ward-management/ward-flow-record-stay-events.ts", - "line": 481, - "sha256": "76f41e705f685062ecbfc8024544a4d50b5097cc1f9f68d9ad34976cbf9e4621" + "line": 482, + "sha256": "22c8cf4905fa0043b38eb8353c92f3d760b835fd8830dc5e09eefee04b5ea866" }, { "path": "src/components/ward-management/ward-flow-record-stay-events.ts", - "line": 506, - "sha256": "76f41e705f685062ecbfc8024544a4d50b5097cc1f9f68d9ad34976cbf9e4621" + "line": 507, + "sha256": "22c8cf4905fa0043b38eb8353c92f3d760b835fd8830dc5e09eefee04b5ea866" }, { "path": "src/components/ward-management/ward-flow-record-stay-events.ts", - "line": 509, - "sha256": "76f41e705f685062ecbfc8024544a4d50b5097cc1f9f68d9ad34976cbf9e4621" + "line": 510, + "sha256": "22c8cf4905fa0043b38eb8353c92f3d760b835fd8830dc5e09eefee04b5ea866" }, { "path": "src/components/ward-management/ward-flow-record-stay-events.ts", - "line": 512, - "sha256": "76f41e705f685062ecbfc8024544a4d50b5097cc1f9f68d9ad34976cbf9e4621" + "line": 513, + "sha256": "22c8cf4905fa0043b38eb8353c92f3d760b835fd8830dc5e09eefee04b5ea866" }, { "path": "src/components/ward-management/ward-flow-record-stay-events.ts", - "line": 515, - "sha256": "76f41e705f685062ecbfc8024544a4d50b5097cc1f9f68d9ad34976cbf9e4621" + "line": 516, + "sha256": "22c8cf4905fa0043b38eb8353c92f3d760b835fd8830dc5e09eefee04b5ea866" }, { "path": "src/components/ward-management/ward-flow-record-stay-events.ts", - "line": 518, - "sha256": "76f41e705f685062ecbfc8024544a4d50b5097cc1f9f68d9ad34976cbf9e4621" + "line": 519, + "sha256": "22c8cf4905fa0043b38eb8353c92f3d760b835fd8830dc5e09eefee04b5ea866" } ] } @@ -6996,13 +6996,13 @@ "sources": [ { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 577, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 579, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-record-stay-events.ts", - "line": 457, - "sha256": "76f41e705f685062ecbfc8024544a4d50b5097cc1f9f68d9ad34976cbf9e4621" + "line": 458, + "sha256": "22c8cf4905fa0043b38eb8353c92f3d760b835fd8830dc5e09eefee04b5ea866" }, { "path": "src/components/ward-management/handover/handover-scope-rules.ts", @@ -7011,13 +7011,13 @@ }, { "path": "src/components/ward-management/ward-flow-record-stay-events.ts", - "line": 462, - "sha256": "76f41e705f685062ecbfc8024544a4d50b5097cc1f9f68d9ad34976cbf9e4621" + "line": 463, + "sha256": "22c8cf4905fa0043b38eb8353c92f3d760b835fd8830dc5e09eefee04b5ea866" }, { "path": "src/components/ward-management/ward-flow-record-stay-events.ts", - "line": 465, - "sha256": "76f41e705f685062ecbfc8024544a4d50b5097cc1f9f68d9ad34976cbf9e4621" + "line": 466, + "sha256": "22c8cf4905fa0043b38eb8353c92f3d760b835fd8830dc5e09eefee04b5ea866" } ] } @@ -7052,13 +7052,13 @@ "sources": [ { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 585, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 587, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-record-stay-events.ts", - "line": 659, - "sha256": "76f41e705f685062ecbfc8024544a4d50b5097cc1f9f68d9ad34976cbf9e4621" + "line": 660, + "sha256": "22c8cf4905fa0043b38eb8353c92f3d760b835fd8830dc5e09eefee04b5ea866" }, { "path": "src/components/ward-management/community/use-community-contact-save.ts", @@ -7067,8 +7067,8 @@ }, { "path": "src/components/ward-management/ward-flow-record-stay-events.ts", - "line": 663, - "sha256": "76f41e705f685062ecbfc8024544a4d50b5097cc1f9f68d9ad34976cbf9e4621" + "line": 664, + "sha256": "22c8cf4905fa0043b38eb8353c92f3d760b835fd8830dc5e09eefee04b5ea866" } ] } @@ -7111,8 +7111,8 @@ "sources": [ { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 594, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 596, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/alerts/ward-broadcast-reducer.ts", @@ -7175,8 +7175,8 @@ "sources": [ { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 595, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 597, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/alerts/ward-broadcast-reducer.ts", @@ -7239,8 +7239,8 @@ "sources": [ { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 596, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 598, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/alerts/ward-broadcast-reducer.ts", diff --git a/docs/ward-flow/journey/event-dispositions.json b/docs/ward-flow/journey/event-dispositions.json index 7ad2a45b77..ee3904baa0 100644 --- a/docs/ward-flow/journey/event-dispositions.json +++ b/docs/ward-flow/journey/event-dispositions.json @@ -29,7 +29,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 188, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-transport-collection-events.ts", @@ -67,18 +67,18 @@ "sources": [ { "path": "src/components/ward-management/ward-flow-record-stay-events.ts", - "line": 372, - "sha256": "76f41e705f685062ecbfc8024544a4d50b5097cc1f9f68d9ad34976cbf9e4621" + "line": 373, + "sha256": "22c8cf4905fa0043b38eb8353c92f3d760b835fd8830dc5e09eefee04b5ea866" }, { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 213, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-events.ts", "line": 1380, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -110,18 +110,18 @@ "sources": [ { "path": "src/components/ward-management/ward-flow-record-stay-events.ts", - "line": 424, - "sha256": "76f41e705f685062ecbfc8024544a4d50b5097cc1f9f68d9ad34976cbf9e4621" + "line": 425, + "sha256": "22c8cf4905fa0043b38eb8353c92f3d760b835fd8830dc5e09eefee04b5ea866" }, { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 214, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-events.ts", "line": 1389, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -161,12 +161,12 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 215, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-events.ts", "line": 1398, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -202,12 +202,12 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 216, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-events.ts", "line": 1405, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -240,18 +240,18 @@ "sources": [ { "path": "src/components/ward-management/ward-flow-record-stay-events.ts", - "line": 264, - "sha256": "76f41e705f685062ecbfc8024544a4d50b5097cc1f9f68d9ad34976cbf9e4621" + "line": 265, + "sha256": "22c8cf4905fa0043b38eb8353c92f3d760b835fd8830dc5e09eefee04b5ea866" }, { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 236, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-events.ts", "line": 1838, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -291,12 +291,12 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 237, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-events.ts", "line": 1855, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -343,7 +343,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 240, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-observation-events.ts", @@ -394,17 +394,17 @@ { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 2017, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 308, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-events.ts", "line": 692, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-turnaround-priority.ts", @@ -445,17 +445,17 @@ { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 2018, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 309, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-events.ts", "line": 701, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-turnaround-priority.ts", @@ -496,12 +496,12 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 312, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-events.ts", "line": 716, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -543,12 +543,12 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 313, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-events.ts", "line": 729, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -590,12 +590,12 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 315, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-events.ts", "line": 740, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -631,12 +631,12 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 318, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-events.ts", "line": 764, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -683,12 +683,12 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 319, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-events.ts", "line": 779, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -737,12 +737,12 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 321, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-events.ts", "line": 796, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -793,7 +793,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 322, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-referral-ask-events.ts", @@ -842,12 +842,12 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 325, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-events.ts", "line": 815, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -883,12 +883,12 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 326, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-events.ts", "line": 826, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -930,12 +930,12 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 328, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-events.ts", "line": 834, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -978,12 +978,12 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 333, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-events.ts", "line": 850, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -1019,12 +1019,12 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 334, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-events.ts", "line": 865, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -1070,7 +1070,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 338, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/restrictive-practice/ward-restrictive-practice.ts", @@ -1117,7 +1117,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 339, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/restrictive-practice/ward-restrictive-practice.ts", @@ -1161,7 +1161,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 342, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/restrictive-practice/ward-restrictive-practice.ts", @@ -1202,7 +1202,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 343, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/restrictive-practice/ward-restrictive-practice.ts", @@ -1246,7 +1246,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 347, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/loop-checks/ward-loop-checks.ts", @@ -1294,7 +1294,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 348, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/loop-checks/ward-loop-checks.ts", @@ -1332,7 +1332,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 349, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/loop-checks/ward-loop-checks.ts", @@ -1379,7 +1379,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 350, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/loop-checks/ward-loop-checks.ts", @@ -1425,7 +1425,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 351, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/loop-checks/ward-loop-checks.ts", @@ -1470,7 +1470,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 397, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-patient-archive.ts", @@ -1520,12 +1520,12 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 428, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-events.ts", "line": 1538, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -1558,7 +1558,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 530, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-inbox-events.ts", @@ -1603,7 +1603,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 531, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-inbox-events.ts", @@ -1656,7 +1656,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 532, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-inbox-events.ts", @@ -1703,7 +1703,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 533, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-inbox-events.ts", @@ -1748,7 +1748,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 537, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -1784,7 +1784,7 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 539, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -1832,7 +1832,7 @@ { "path": "src/components/ward-management/ward-flow-events.ts", "line": 2114, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -1874,7 +1874,7 @@ { "path": "src/components/ward-management/ward-flow-events.ts", "line": 2134, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -1917,7 +1917,7 @@ { "path": "src/components/ward-management/ward-flow-events.ts", "line": 2168, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-undo.ts", @@ -1961,7 +1961,7 @@ { "path": "src/components/ward-management/ward-flow-events.ts", "line": 2194, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-undo.ts", @@ -2008,12 +2008,12 @@ { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 2351, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 570, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 572, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -2048,8 +2048,8 @@ }, { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 574, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 576, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -2059,7 +2059,7 @@ { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 2386, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" } ], "tests": ["tests/ward-on-call-checks.test.ts"] @@ -2103,8 +2103,8 @@ }, { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 581, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 583, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" } ], "tests": ["tests/ward-site-handover-sign-off.test.ts", "tests/ward-handover-site-sign-off.dom.test.tsx"] @@ -2141,7 +2141,7 @@ { "path": "src/components/ward-management/ward-flow-events.ts", "line": 2395, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -2181,7 +2181,7 @@ { "path": "src/components/ward-management/ward-flow-events.ts", "line": 2394, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -2228,7 +2228,7 @@ { "path": "src/components/ward-management/ward-flow-events.ts", "line": 2416, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -2271,7 +2271,7 @@ { "path": "src/components/ward-management/ward-flow-events.ts", "line": 2415, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -2321,7 +2321,7 @@ { "path": "src/components/ward-management/ward-flow-events.ts", "line": 2431, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -2372,7 +2372,7 @@ { "path": "src/components/ward-management/ward-flow-events.ts", "line": 2488, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -2414,7 +2414,7 @@ { "path": "src/components/ward-management/ward-flow-events.ts", "line": 2488, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -2456,7 +2456,7 @@ { "path": "src/components/ward-management/ward-flow-events.ts", "line": 2516, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -2492,13 +2492,13 @@ "sources": [ { "path": "src/components/ward-management/ward-flow-record-stay-events.ts", - "line": 671, - "sha256": "76f41e705f685062ecbfc8024544a4d50b5097cc1f9f68d9ad34976cbf9e4621" + "line": 672, + "sha256": "22c8cf4905fa0043b38eb8353c92f3d760b835fd8830dc5e09eefee04b5ea866" }, { "path": "src/components/ward-management/ward-flow-events.ts", "line": 2519, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -2534,13 +2534,13 @@ "sources": [ { "path": "src/components/ward-management/ward-flow-release-notice-events.ts", - "line": 52, - "sha256": "057ef764a841f671c0fac813c4f9485a121ca811c1228b7fec3b7abdbd94d5fd" + "line": 55, + "sha256": "81d8ce05491f37320f53e7be9054404ad54c2e7244d4484901eaa5ada8f52536" }, { "path": "src/components/ward-management/ward-flow-release-notice-events.ts", - "line": 28, - "sha256": "057ef764a841f671c0fac813c4f9485a121ca811c1228b7fec3b7abdbd94d5fd" + "line": 30, + "sha256": "81d8ce05491f37320f53e7be9054404ad54c2e7244d4484901eaa5ada8f52536" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -2657,13 +2657,13 @@ "sources": [ { "path": "src/components/ward-management/ward-flow-release-notice-events.ts", - "line": 91, - "sha256": "057ef764a841f671c0fac813c4f9485a121ca811c1228b7fec3b7abdbd94d5fd" + "line": 102, + "sha256": "81d8ce05491f37320f53e7be9054404ad54c2e7244d4484901eaa5ada8f52536" }, { "path": "src/components/ward-management/ward-flow-release-notice-events.ts", - "line": 43, - "sha256": "057ef764a841f671c0fac813c4f9485a121ca811c1228b7fec3b7abdbd94d5fd" + "line": 46, + "sha256": "81d8ce05491f37320f53e7be9054404ad54c2e7244d4484901eaa5ada8f52536" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -2704,7 +2704,7 @@ { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 1465, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/ward-undo.ts", @@ -2744,12 +2744,12 @@ { "path": "src/components/ward-management/ward-flow-protected-record-events.ts", "line": 103, - "sha256": "54c8451a1eab7a74e88ff65a617a8cd2440a3de08b73e42b7e5e93720531fc96" + "sha256": "1eb306ce2963727a9c1e99aa60dd505b7ac247af29c50b7980f0617f6e1ee25e" }, { "path": "src/components/ward-management/ward-flow-events.ts", "line": 2587, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-undo.ts", @@ -2797,7 +2797,7 @@ { "path": "src/components/ward-management/ward-flow-events.ts", "line": 2592, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-access-state.ts", @@ -2837,7 +2837,7 @@ { "path": "src/components/ward-management/ward-flow-events.ts", "line": 2612, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-undo.ts", @@ -3523,7 +3523,7 @@ { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 1942, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/ward-flow-restrictive-practice-events.ts", @@ -3591,7 +3591,7 @@ { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 410, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/out-of-area/return-early.ts", @@ -3627,7 +3627,7 @@ { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 1508, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/ward-flow-undo-events.ts", @@ -3663,7 +3663,7 @@ { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 1516, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/ward-flow-undo-events.ts", @@ -3701,7 +3701,7 @@ { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 1517, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/ward-flow-undo-events.ts", @@ -3737,7 +3737,7 @@ { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 1518, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/ward-flow-undo-events.ts", @@ -3780,7 +3780,7 @@ { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 2378, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/triage/triage-signed-reducer.ts", @@ -3859,8 +3859,8 @@ }, { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 625, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 628, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" } ], "tests": ["tests/ward-discharge-follow-through.test.ts"] @@ -3896,8 +3896,8 @@ }, { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 627, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 630, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" } ], "tests": ["tests/ward-discharge-follow-through.test.ts"] @@ -3928,12 +3928,12 @@ { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 2213, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 561, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 563, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" } ], "tests": ["tests/ward-psych-review-ready-next.test.ts", "tests/ward-event-permissions.test.ts"] @@ -3965,12 +3965,12 @@ { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 2214, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 562, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 564, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" } ], "tests": ["tests/ward-psych-review-ready-next.test.ts", "tests/ward-event-permissions.test.ts"] @@ -4005,12 +4005,12 @@ { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 2215, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 563, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 565, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" } ], "tests": ["tests/ward-psych-review-ready-next.test.ts", "tests/ward-event-permissions.test.ts"] @@ -4042,7 +4042,7 @@ { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 2375, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/staffing/staff-requests.ts", @@ -4051,8 +4051,8 @@ }, { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 591, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 593, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" } ], "tests": ["tests/ward-staff-requests.test.ts"] @@ -4084,7 +4084,7 @@ { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 2376, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/staffing/staff-requests.ts", @@ -4093,8 +4093,8 @@ }, { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 592, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 594, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" } ], "tests": ["tests/ward-staff-requests.test.ts"] @@ -4131,8 +4131,8 @@ }, { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 663, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 666, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-patient-care-plans.ts", @@ -4164,8 +4164,8 @@ }, { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 664, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 667, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-patient-care-plans.ts", @@ -4197,8 +4197,8 @@ }, { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 665, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 668, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" } ] } @@ -4225,8 +4225,8 @@ }, { "path": "src/components/ward-management/ward-flow-event-roles.ts", - "line": 666, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "line": 669, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-patient-care-plans.ts", @@ -4235,5 +4235,39 @@ } ] } + }, + { + "event": "RECORD_CHIEF_PSYCHIATRIST_NOTIFIED", + "status": "modelled", + "reason": "Source-reviewed command model: records the typed time the Chief Psychiatrist was told a person under 18 is on an adult ward; information only (item 4, held).", + "source": "src/components/ward-management/ward-flow-under-18-events.ts", + "model": { + "subject": "One current stay's chiefPsychiatristNotice", + "before": "Pulled or occupied stay with or without an earlier notice record", + "after": "chiefPsychiatristNotice {notifiedAt, at, by} replaces any earlier one", + "payload": ["admissionId; actingUnitId; notifiedAt (typed, never pre-filled, D-93)", "role and now"], + "scope": "Ward for its own stay, or coordinator. EVENT_ROLE alone is not place authority.", + "guards": [ + "Unknown admission, another ward's stay, or a stay that is not current refused", + "Non-finite times, or a notified time later than now, refused" + ], + "effects": [ + "Quietens the under 18 on an adult ward notice; computes no deadline and blocks no bed offer", + "A transfer starts the receiving stay without it" + ], + "sources": [ + { + "path": "src/components/ward-management/ward-flow-under-18-events.ts", + "line": 22, + "sha256": "040429c9d51419da086ae64aae4b653e5b0251d906ebde5a79fa77c66f33500d" + }, + { + "path": "src/components/ward-management/ward-flow-event-roles.ts", + "line": 541, + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" + } + ], + "tests": ["tests/ward-item4-under-18-adult-ward.dom.test.tsx"] + } } ] diff --git a/docs/ward-flow/journey/machines.json b/docs/ward-flow/journey/machines.json index f6ab8d13aa..127e0aa149 100644 --- a/docs/ward-flow/journey/machines.json +++ b/docs/ward-flow/journey/machines.json @@ -1814,12 +1814,12 @@ { "path": "src/components/ward-management/ward-flow-event-roles.ts", "line": 1, - "sha256": "01913e33459ff2e0c7dfce7de7e0e731cc155400a42b2537e1e6ad7a6c3c83eb" + "sha256": "f9c4dd2aa18c14b7b98ab03b46946cf70c309a6281278d4eda668faa4011d423" }, { "path": "src/components/ward-management/ward-flow-events.ts", "line": 1, - "sha256": "378044cce3b2c98c2c24f4e5bb6ab27f7c361f02a7fa8ab59fa36a77388c84bf" + "sha256": "d8442fce2033d8962bf2804c711834fa8c4c511d3e99ce2b429d1b18e8f96d1e" }, { "path": "src/components/ward-management/ward-flow-placement-events.ts", @@ -1829,7 +1829,7 @@ { "path": "src/components/ward-management/ward-flow-protected-record-events.ts", "line": 1, - "sha256": "54c8451a1eab7a74e88ff65a617a8cd2440a3de08b73e42b7e5e93720531fc96" + "sha256": "1eb306ce2963727a9c1e99aa60dd505b7ac247af29c50b7980f0617f6e1ee25e" }, { "path": "src/components/ward-management/ward-flow-record-events.ts", @@ -1843,13 +1843,13 @@ }, { "path": "src/components/ward-management/ward-flow-record-stay-events.ts", - "line": 376, - "sha256": "76f41e705f685062ecbfc8024544a4d50b5097cc1f9f68d9ad34976cbf9e4621" + "line": 377, + "sha256": "22c8cf4905fa0043b38eb8353c92f3d760b835fd8830dc5e09eefee04b5ea866" }, { "path": "src/components/ward-management/ward-flow-reducer.ts", "line": 1169, - "sha256": "edd08d18e7d96cad77b0a026b29f7acc6b9918b4818010e53b14e08d9c00eb2a" + "sha256": "7f16e741a6d120255f536b4f9571c4a8bdd8258f35909529a3514be1173baf8a" }, { "path": "src/components/ward-management/ward-flow-referral-answer-events.ts", @@ -1899,7 +1899,7 @@ { "path": "src/components/ward-management/ward-model.ts", "line": 1, - "sha256": "246b885c01dade4f48f7a46d323569f34ac206a306597ae60a761a2b5d6b2f2d" + "sha256": "2c853686b5e38ad69e9c8829a61a7df5f90a874b5786f04eaea49879356ae7ae" }, { "path": "src/components/ward-management/ward-patient-registration-reducer.ts", diff --git a/docs/ward-flow/journey/vocabularies.json b/docs/ward-flow/journey/vocabularies.json index 5a94f31835..b86c74d693 100644 --- a/docs/ward-flow/journey/vocabularies.json +++ b/docs/ward-flow/journey/vocabularies.json @@ -28,7 +28,9 @@ "file": "ward-model-bed-release.ts", "members": [ "contraband_search", - "medication_chart" + "medication_chart", + "interpreter_booked", + "aboriginal_liaison_offered" ] }, "BED_RELEASE_STATES": { diff --git a/docs/ward-flow/journey/ward-journey-explorer.html b/docs/ward-flow/journey/ward-journey-explorer.html index cde3b54d57..c6dc8e13dc 100644 --- a/docs/ward-flow/journey/ward-journey-explorer.html +++ b/docs/ward-flow/journey/ward-journey-explorer.html @@ -1284,7 +1284,7 @@

    What to do here