Meds 2.0 prototype. Illustrative only, no database behind it. What to try:
Medications
Patient-level record, continuously editable, not owned by any one event
Medications
Eye
| Drug | Side | Dose / frequency / route | Dates | Responsibility to supply |
Order | Actions |
|---|
Systemic, relevant to eye care
| Drug | Side | Dose / frequency / route | Dates | Responsibility to supply |
Order | Actions |
|---|
Prescriptions
Supply orders derived from the medication record, fixed at signature.
Each order is its own prescription event on the patient's timeline. Pick one below to open it as that
event, in view mode or in edit mode with the Medications element inside it, or list them all the way a
reviewer would see them across the timeline.
How the prototype maps to the model
Three layers
| Layer | What it is | Where you see it in this prototype | Proposed storage |
|---|---|---|---|
| 1. Medication state | The clinical truth: what this patient is on, was on, and is planned to start. Patient level, continuously editable. | The Medication record tab. Rows persist across visits and are never owned by an event. | medications_cumulative_patient_state, cached one row per record event, built from medications_record_event + _entry |
| 2. Supply responsibility | Who we are relying on to get this drug to the patient from now on: Hospital, GP, Patient, Other care provider, or blank. An assignment we can make, not a supply we can observe. | The Responsibility to supply column. Editable inline on the element. Issuing a prescription does not change it, and it does not stop you issuing one. | supply_responsibility on the entry. The dispense condition is not here: it belongs to the order |
| 3. Generated artefact | The prescription itself: a single dispensable order, signed by one prescriber, fixed at signature and released at issue (printed, or pharmacy has begun signing). | The Prescriptions tab. An unsigned draft holds what was asked for; signing snapshots what the record says then. Reprinting or reissuing never edits the record. | medications_supply_artefact with lifecycle state, items_requested written when a draft is saved, items_signed written at signature, and one prescriber signature. Items in medications_supply_artefact_item, carrying the dispense condition and location |
Behaviours this prototype is demonstrating
| Behaviour | Problem it addresses | Try it |
|---|---|---|
| Uniqueness by construction | Duplicate medication lines from repeat events and same-day prescriptions | Add a drug the patient is already on. The record refuses to create a second line and offers to edit the existing one. |
| Prescription decoupled from record | Editing a prescription silently changing the clinical record, and vice versa | Pick the draft box, save the examination, change a dose, then open the draft: it shows what was asked for beside what the record now says, row by row. Sign it and change the dose again: the order keeps what was signed and reports the divergence. |
| Prepared by one person, signed by another | A nurse who cannot prescribe has no way to ask for one, so the request goes on paper or is lost | Switch the role to the nurse. Every row still has an order toggle, and the bar offers her the draft box rather than a PIN. Pick it, save the examination, switch back to a prescriber, change a dose, and open the request: it is shown beside the record with Keep and Restore on the row that moved. |
| Frozen at signature, released at issue | Printed and dispensed prescriptions being edited after the fact, while a forgotten drug forces a duplicate | Amend a draft freely; saving rewrites the request and keeps the version it replaced. Once signed, the order stops following the record, and amending means editing it and signing again, which keeps the same order number. After issue there is no edit and no re-sign, only cancel and reissue, which stay linked. |
| Divergence is flagged, not applied | A pharmacist dispensing an order the prescriber has since changed their mind about, with no way to know | Sign an order, then change that drug on the record. The order is flagged on its header, in its worklist line and in the change dialog. It does not block dispensing; it gives pharmacy a reason to query. |
| One prescriber per artefact | Ambiguity over who is legally responsible for a prescription | Switch role to Nurse. Supply under PGD is offered with a PIN, and only for drugs her protocols cover. The hospital and FP10 forms are still listed, because she can ask for those, but on them there is no PIN, only the draft box. |
| Future-dated medications | No way to record a planned start without it appearing as current | The planned row shows as Planned and is excluded from the current list until its start date. |
| Duration, dates and taper on one dialog | Today duration and taper are hidden until Prescribe is switched on, so "give this for two weeks" takes two steps and a reducing course takes three | Open Change on any drug. Duration, the stop date and the reducing course are next to dose and frequency. Nothing is prescribed. |
| Changes commit with the event | If the list is shared, a half-finished edit must not appear on anyone else's screen, and cancelling out must still mean undo | Change a dose. The bar at the top counts unsaved changes and the row is marked. Save, and the marker becomes "changed at this visit". Discard, and the record reverts. |
| The save generates the order | An order that exists before the event is saved can outlive an examination that was abandoned, and can be printed from changes that exist only in a browser | Change a dose without saving, then sign the element. Nothing is created: the bar at the top says a prescription is waiting. Save, and the record commits and the order is generated from it. Discard instead, and neither exists. Edit anything while it is signed and the signature comes off. |
| Supply responsibility moves at issue | "Hospital to supply and GP to continue" stays on the row forever, when only the second half is still true | Order acetazolamide on "Hospital to supply and GP to continue" and print it. The row stops saying the hospital supplies it and says the GP does. |
| PIN signs without a button | An extra click on every prescription, and an interaction that does not match every other PIN field in OpenEyes | Toggle a drug and type any six digits into the PIN field. It signs the element as soon as the sixth digit lands, and the field is replaced by the signature. |
| Eye relevance as a per-patient override | The ophthalmic drug set misses systemic drugs that matter to the eye, and one drug-set default cannot be right for every patient | Use "Eye relevant" on hydroxychloroquine under Other systemic. It moves group and is marked as an override of the drug-set default. |
| Dispense conditions are the existing lookups, on the order | Supply is tied to the act of prescribing, and behaviour is inferred from condition names rather than declared | Switch Institution to Gosport. FP10 disappears, because that mapping is not there. Responsibility to supply is unaffected, because that is about this patient rather than a local setting. |
| PGD supply is per user and per drug | A PGD item lands on someone else's prescription under their signature (OE-18130) | Switch role to Nurse. Add PGD Set appears, and Supply under PGD is offered only on the drugs her protocols cover. |
| Quick add is preserved, but per drug | A set add is a block of rows owned by one event, and can add a duplicate | Add standard set, then Cataract post-op. The allergy and the duplicate are named before anything is added. |
| Planned stop or hold, with confirmation | No way to record an instruction that has not happened yet, or whether it was followed | Press Stop and choose "days before next appointment". The drug stays active until someone answers "did this happen?". |
| Reprint versus reissue | Reprinting a copy that is already in circulation lets one order be dispensed twice | Print an already-printed prescription. The advisory asks whether the earlier copy still exists rather than guessing. |
| Pharmacy worklist and query | Outstanding work is inferred by counting signatures, and pharmacy can only decline to sign | Switch role to Pharmacist. Sign the dispensing roles, or raise a query that blocks completion. |
| Order-level note | No way to tell pharmacy why an order was reissued | Reissue a prescription. The successor carries a note pre-filled from the cancellation reason. |
| Drug-level attribution and history | Element-level audit only; cannot see who changed what | Open History on any row to see the entry chain with actor and timestamp. |