{"schemaVersion":2,"title":"Microbiology M1-M4 + R1/R2 authoritative alignment review","instance":"amr","jira":"OGC-782","intro":"Review the stacked OGC-782 microbiology implementation through R2. Complete each story independently and record Pass, Fail, or N/A with notes. M-03 validates culture-order context and details; the focused M-04 story validates bench-protocol correction. Optional steps are explicitly marked.","sections":[{"title":"R2 - M-03 - Route and contextualize a culture order","key":"AMR-S01","version":"4.0","steps":[{"key":"AMR-2","required":true,"do":"From Home, expand Order, expand Add Generic Order, and choose Enter Order. Select Generate Lab Number and write the number down. In the Patient section, enter UATMICRO-01C82736AB in Patient ID, select the Search button in that same section, then select the UAT Microbiology result. Under Sample 1 choose UAT micro specimen. Under Order Tests select UAT microbiology culture. Inspect Program and Microbiology Program Details.","expect":"Program is disabled at Microbiology. Microbiology Program Details identifies Bacteriology and displays the derived, read-only UAT micro culture protocol with its media/incubation summary. That section has exactly five editable fields: Patient origin, Date of admission, Number of sets, Clinical history, and recent antibiotic exposure. No critical-notification control appears. Ignore unrelated generic order fields outside this section.","route":"/order/enter"},{"key":"AMR-79","required":true,"do":"Continue the same order. In Microbiology Program Details select Inpatient, enter Date of admission 13/07/2026, set Number of sets to 2, enter Persistent fever after antibiotics as Clinical history, and select recent antibiotic exposure. Choose Save & Next. On Collect, enter Collection Date 12/07/2026 and press Enter. Then replace it with 14/07/2026, press Enter, and choose Save & Next.","expect":"With 12/07/2026, an inline message says collection cannot be before admission and Save / Save & Next are disabled. With 14/07/2026, the message clears and Save & Next reaches Label & Store. The UI may localize date formatting, but the calendar dates must remain July 13 and July 14; day and month must not be swapped.","route":"/order/enter"},{"key":"AMR-63","required":true,"do":"From Label & Store, enter the saved Lab Number in Scan barcode and press Enter, then choose the Enter Order progress step. Inspect the read-only Microbiology Program Details. Next expand Microbiology in the side navigation, choose Microbiology worklist, enter the Lab Number in Filter table, open its single row, expand Case info, and inspect Inoculation > Culture protocol.","expect":"The reopened order and exactly one Bacteriology case preserve Patient origin Inpatient, Date of admission July 13 2026, Number of sets 2, Clinical history Persistent fever after antibiotics, recent antibiotic exposure Yes, and the derived UAT micro culture protocol. No duplicate case is created.","route":"/order/enter"},{"key":"AMR-64","required":true,"do":"Start a fresh order and repeat the AMR-2 setup through selecting UAT microbiology culture. Enter Keep this history in Clinical history. Clear the UAT microbiology culture selection. In Remove microbiology workflow? choose Cancel and inspect the order. Clear the culture selection again and choose Discard details.","expect":"Cancel leaves the culture test selected and preserves Keep this history. Only the explicit Discard details action removes Microbiology Program Details and returns Program to an editable state; entered microbiology data is never discarded without confirmation.","route":"/order/enter"},{"key":"AMR-83","required":true,"do":"Start a fresh order. Generate and write down a Lab Number, select patient UATMICRO-01C82736AB, and choose Sample Type UAT micro specimen as in AMR-2. Select only UAT routine non-culture test. Choose Save & Next, enter Collection Date 14/07/2026, and continue to Label & Store. Open Microbiology > Microbiology worklist and enter the saved Lab Number in Filter table.","expect":"A non-culture-only order never displays Microbiology Program Details and produces no microbiology worklist row or case for its Lab Number.","route":"/order/enter"}],"links":{"jira":"OGC-782","pr":"https://github.com/DIGI-UW/OpenELIS-Global-2/pull/4051","mock":"https://github.com/DIGI-UW/openelis-work/blob/bf51582766eaf4048dcf83a4810a3cd32a975ad5/designs/microbiology/m-03-order-entry-step1.html","userStory":"GOAL\nCreate one bacteriology culture order and confirm that its microbiology context reaches the routed case.\n\nSTARTING POINT\nSign in and start on Home. Navigate through Order > Add Generic Order > Enter Order.\n\nUAT DATA\nPatient ID: UATMICRO-01C82736AB\nSample Type: UAT micro specimen\nCulture test: UAT microbiology culture\nNon-culture test: UAT routine non-culture test\n\nRUN ORDER\nAMR-2, AMR-79, and AMR-63 share one generated Lab Number; write it down. AMR-64 and AMR-83 each start a fresh order.\n\nSCOPE\nEnter Order is a generic order screen. Judge the Program control and Microbiology Program Details section for this story. Do not count Clinical Information, Requester, Provider, or Sample controls as microbiology fields. Department / Ward belongs to standard Requester context, not the five-field microbiology section."},"hosts":["amr.openelis-global.org"],"revision":"384c45086925"},{"title":"R1 - M-07 - Work the Culture queue","key":"AMR-S17","version":"1.0","steps":[{"key":"AMR-1","required":true,"do":"Open Microbiology from the configured navigation, choose the Culture queue, set Workflow to Bacteriology and Sort to Newest, then reload the copied URL.","expect":"The same Culture queue, workflow, sort, paging, and visible rows return from the canonical URL.","route":"/Dashboard"},{"key":"AMR-3","required":true,"do":"Open the deployment-scoped Bacteriology case from the Culture queue, then use its Worklist breadcrumb to return.","expect":"The exact case opens with its current stage and next action, and returning restores the prior Culture queue URL state.","route":"/Microbiology/worklist?grain=cultures&workflow=BACTERIOLOGY&sort=newest&page=1&pageSize=20"},{"key":"AMR-75","required":true,"do":"Inspect a Culture row's accession, patient, specimen, workflow, stage, due action, last activity, and critical context, then open one row action.","expect":"The context is readable in the shared Carbon table and the row action routes to the corresponding case action without changing clinical state in the queue.","route":"/Microbiology/worklist?grain=cultures&workflow=BACTERIOLOGY&sort=priority&page=1&pageSize=20"}],"links":{"jira":"OGC-782","pr":"https://github.com/DIGI-UW/OpenELIS-Global-2/pull/4004","mock":"https://github.com/DIGI-UW/openelis-work/blob/a1f720d7b3b01db63387361495f4aa6589105003/designs/microbiology/m-07-worklists.md","userStory":"As a bench user, I can find culture work that needs attention and open the exact case without losing my queue state.\n\nThe queue must show current stage, due action, patient and specimen context, critical state, and recent activity without performing clinical writes itself."},"hosts":["amr.openelis-global.org"],"revision":"8fa0e0f3a515"},{"title":"R1 - M-04 - Classify and navigate sibling cases","key":"AMR-S18","version":"1.0","steps":[{"key":"AMR-65","required":true,"do":"Open the deployment-scoped Unassigned case, choose Change Workflow, select Bacteriology with a compatible Culture Method, enter a reason, and confirm.","expect":"The case becomes Bacteriology, records the reason and actor in history, and makes workflow-dependent bench actions available.","route":"/Microbiology/worklist?grain=cultures&workflow=UNASSIGNED&sort=newest&page=1&pageSize=20"},{"key":"AMR-66","required":true,"do":"Use the sibling-case links to move between the linked workflows on the same specimen and return to the classified case.","expect":"Each sibling shows its own workflow, stage, and history while both retain the same accession and specimen context.","route":"/Microbiology/worklist?grain=cultures&sort=newest&page=1&pageSize=20"}],"links":{"jira":"OGC-782","pr":"https://github.com/DIGI-UW/OpenELIS-Global-2/pull/4004","mock":"https://github.com/DIGI-UW/openelis-work/blob/a1f720d7b3b01db63387361495f4aa6589105003/designs/microbiology/m-04-case-workbench-core.md","userStory":"As a laboratory user, I can safely classify unassigned culture work and move between sibling workflows on the same specimen.\n\nEach sibling keeps an independent workflow, stage, history, and link back to the same physical specimen."},"hosts":["amr.openelis-global.org"],"revision":"bba2f70c2b54"},{"title":"R2 - M-04 - Record culture progression","key":"AMR-S02","version":"3.0","steps":[{"key":"AMR-4","required":true,"do":"From the left navigation choose Microbiology > Microbiology worklist. In Search, enter UATMICROB407A659D2; confirm the matching Received row and open its accession link. Confirm the breadcrumb reads Dashboard > Microbiology worklist > UATMICROB407A659D2 and Inoculation is the current step. In Next step choose Start inoculation. Confirm the URL includes section=setup&action=start-inoculation. Enter Bottle or plate ID UAT-M04-PRIMARY-01, Media or bottle Blood culture bottle, Incubation 35 C for 24 hours, and Atmosphere Ambient. Select the eligible lot whose label contains UAT-MICRO-MEDIA-FEFO, then choose Save media.","expect":"The case stage becomes Incubating; the action parameter clears while the worklist search remains in the URL; Inoculation lists UAT-M04-PRIMARY-01 with the entered conditions; and Recorded lot usage lists UAT-MICRO-MEDIA-FEFO. Mark Fail if the case opens on another section, the lot cannot be selected, the stage does not advance, or any entered value disappears.","route":"/Microbiology/worklist?q=UATMICROB407A659D2&sort=newest"},{"key":"AMR-67","required":true,"do":"Continue on the same Incubating case. In Inoculation choose Add subculture and confirm the URL includes action=add-subculture. For Parent media select UAT-M04-PRIMARY-01 - Blood culture bottle. Enter Bottle or plate ID UAT-M04-SUB-01 and Media or bottle MacConkey agar, then choose Save media.","expect":"The action parameter clears; UAT-M04-SUB-01 appears as a separate media row; and its lineage identifies UAT-M04-PRIMARY-01 as the parent. Mark Fail if the parent is optional, the subculture replaces the primary row, or the lineage is not visible after save.","route":"/Microbiology/cases/ef8c82a9-312d-46b8-beed-03806085b83f?q=UATMICROB407A659D2&sort=newest&section=setup"},{"key":"AMR-84","required":true,"do":"Continue on the same case and open Timeline. Confirm Inoculation Recorded and Subculture Recorded are labeled Auto. Choose Add note, enter Colonies visible at 18 hours, and choose Save note.","expect":"The observation appears as a separate Manual event while inoculation and subculture remain Auto. Every visible event actor is a human-readable name such as Open ELIS, never a numeric value such as Performed by 1. Mark Fail if the note is merged into an automatic event or any raw user ID is shown.","route":"/Microbiology/cases/ef8c82a9-312d-46b8-beed-03806085b83f?q=UATMICROB407A659D2&sort=newest&section=timeline"},{"key":"AMR-68","required":true,"do":"Continue on the same Incubating case and open Inoculation. Confirm both Mark positive and Mark no growth are visible. Choose Mark positive, confirm the URL includes action=mark-positive, then choose Confirm positive signal.","expect":"The case stage becomes Positive Signal, the action parameter clears, and Next step says to subculture the bottle and record the Gram stain. The UI must not claim confirmed growth. Mark Fail if the two Incubating outcomes are not visible, the stage skips to Growth Confirmed, or the guidance is absent.","route":"/Microbiology/cases/ef8c82a9-312d-46b8-beed-03806085b83f?q=UATMICROB407A659D2&sort=newest&section=setup"}],"links":{"jira":"OGC-782","pr":"https://github.com/DIGI-UW/OpenELIS-Global-2/pull/4051","mock":"https://github.com/DIGI-UW/openelis-work/blob/bf51582766eaf4048dcf83a4810a3cd32a975ad5/designs/microbiology/m-04-case-workbench-core.md","userStory":"GOAL\nAs a microbiology bench user, I can progress one received culture through primary inoculation, subculture, a manual observation, and a positive signal while the case keeps the next bench action clear.\n\nSTARTING POINT\nSign in to amr.openelis-global.org. In the left navigation, follow Microbiology > Microbiology worklist.\n\nTARGET\nAccession: UATMICROB407A659D2\nCase ID: ef8c82a9-312d-46b8-beed-03806085b83f\nRequired starting stage: Received\n\nRUN ORDER AND RESET\nRun AMR-4, AMR-67, AMR-84, then AMR-68 in order on this same case. This fixture is consume-once. If the case is not at the expected stage, stop and request an AMR-S02 reseed; do not substitute another case or undo clinical data.\n\nSCOPE\nReview only the case header, breadcrumb, Next step, Inoculation, and Timeline surfaces used by these four outcomes. Isolate identification, AST, reporting, and no-growth release belong to other stories.\n\nAUTHORITY\nOpenELIS Work bf51582766eaf4048dcf83a4810a3cd32a975ad5; implementation PR #4051."},"hosts":["amr.openelis-global.org"],"revision":"e5397f19f26f"},{"title":"R2 - M-04 - Set or change the bench protocol","key":"AMR-S28","version":"1.0","steps":[{"key":"AMR-81","required":true,"do":"Open a seeded routine culture case, note its workflow, stage, and current protocol, then use the Inoculation Set or Change Protocol action to choose the alternate UAT culture protocol and enter a reason.","expect":"Only the protocol changes. Workflow and stage remain unchanged, the case returns to its canonical setup view, and Timeline records the previous protocol, new protocol, reason, actor, and time.","route":"/Microbiology/worklist"},{"key":"AMR-82","required":true,"do":"Reload the same case and reopen the protocol action.","expect":"The changed protocol persists. The current protocol cannot be selected again, and only active protocols compatible with the case are offered.","route":"/Microbiology/worklist"}],"links":{"jira":"OGC-782","pr":"https://github.com/DIGI-UW/OpenELIS-Global-2/pull/4051","mock":"https://github.com/DIGI-UW/openelis-work/blob/bf51582766eaf4048dcf83a4810a3cd32a975ad5/designs/microbiology/m-04-case-workbench-core.md","userStory":"As a bench user, I can set a missing culture protocol or correct the current protocol with a reason, without reclassifying the case or disturbing completed microbiology work."},"hosts":["amr.openelis-global.org"],"revision":"79fe2e7dcb7e"},{"title":"R2 - M-04/M-11 - Review and release a no-growth culture","key":"AMR-S29","version":"1.0","steps":[{"key":"AMR-85","required":true,"do":"From Dashboard, open Microbiology in the left navigation, choose Microbiology worklist, search for accession UATMICROF1878986A7, and open the matching row. Do not substitute another case.","expect":"The worklist has one matching row. The opened case shows accession UATMICROF1878986A7, stage Received, and Inoculation as the current next step. If it is not Received, stop and request this story fixture be reseeded.","route":"/Microbiology/worklist?q=UATMICROF1878986A7&sort=newest"},{"key":"AMR-86","required":true,"do":"In Inoculation, choose Start inoculation. Enter NG-PRIMARY-01 for Bottle or plate ID, Blood culture bottle for Media or bottle, 35 C for 48 hours for Incubation, and Ambient for Atmosphere. Select the available UAT-MICRO-MEDIA-FEFO lot when offered, then choose Save media.","expect":"The recorded media is visible, the case stage is Incubating, and both Mark positive and Mark no growth are available as separate outcomes.","route":"/Microbiology/cases/07f5af46-29d7-4164-a241-2536878d0815?section=setup"},{"key":"AMR-87","required":true,"do":"Choose Mark no growth, confirm the URL contains action=mark-no-growth, then choose Confirm no growth. Open Timeline.","expect":"The case stage becomes No Growth Ready and the action parameter clears. Timeline shows Incubation complete with no growth with the signed-in actor and time. The next step directs the reviewer to report release.","route":"/Microbiology/cases/07f5af46-29d7-4164-a241-2536878d0815?section=setup&action=mark-no-growth"},{"key":"AMR-88","required":true,"do":"Open Reports before releasing anything. Confirm Release final report is a separate action, then choose View patient results and inspect this culture order.","expect":"The case is ready for release but is not Final Released, and Patient Results does not yet contain a final No growth result for this culture order.","route":"/Microbiology/cases/07f5af46-29d7-4164-a241-2536878d0815?section=reports"},{"key":"AMR-89","required":true,"do":"Return to the case Reports section as an authorized final-result reviewer and choose Release final report. Then choose View patient results again.","expect":"The case becomes Final Released and Patient Results now contains the standard final culture result No growth.","route":"/Microbiology/cases/07f5af46-29d7-4164-a241-2536878d0815?section=reports"},{"key":"AMR-90","required":true,"do":"Return to the final case and review Inoculation, Isolates, AST, and Reports for any action that would mutate the completed culture.","expect":"Final case is read-only is visible and mutation controls are unavailable. Any future correction must use the amendment workflow rather than alter this record.","route":"/Microbiology/cases/07f5af46-29d7-4164-a241-2536878d0815?section=reports"}],"links":{"pr":"https://github.com/DIGI-UW/OpenELIS-Global-2/pull/4051","mock":"https://digi-uw.github.io/openelis-work/#/microbiology/microbiology-guided-workflow-walkthrough","userStory":"As an authorized microbiology reviewer, I can record that an incubated culture has no growth without publishing a patient result, then separately release the final negative result.\n\nUse only the service-created case for accession UATMICROF1878986A7. Start from the Dashboard and navigate through Microbiology > Microbiology worklist. The case must begin at Received. Work through Inoculation, Timeline, Reports, and the linked Patient Results page. This story consumes its fixture once; if the case is no longer Received, stop and request a reseed rather than changing the expected result."},"hosts":["amr.openelis-global.org"],"revision":"c93f5075847b"},{"title":"R1 - M-04 - Identify isolates and manage exceptions","key":"AMR-S19","version":"1.0","steps":[{"key":"AMR-5","required":true,"do":"Create an isolate, record Gram and colony work-up, then identify it with method, confidence, and clinical significance.","expect":"The isolate moves from preliminary work-up to identified without losing the earlier observations or their provenance.","route":"/Microbiology/worklist?grain=cultures&workflow=BACTERIOLOGY&sort=newest&page=1&pageSize=20"},{"key":"AMR-69","required":true,"do":"Inspect AST before and after completing isolate identification, then inspect the preliminary report content.","expect":"AST setup is unavailable for an unidentified isolate and becomes available after identification; preliminary reporting reflects the identified isolate without implying final release.","route":"/Microbiology/worklist?grain=cultures&workflow=BACTERIOLOGY&sort=newest&page=1&pageSize=20"},{"key":"AMR-70","required":true,"do":"Open Report NCE and Mark lost from the case, inspect each confirmation and destination, then cancel without changing the shared specimen.","expect":"Both actions use the shared nonconformance/specimen workflow and explain their impact instead of creating a microbiology-only exception record.","route":"/Microbiology/worklist?grain=cultures&workflow=BACTERIOLOGY&sort=newest&page=1&pageSize=20"}],"links":{"jira":"OGC-782","pr":"https://github.com/DIGI-UW/OpenELIS-Global-2/pull/4004","mock":"https://github.com/DIGI-UW/openelis-work/blob/a1f720d7b3b01db63387361495f4aa6589105003/designs/microbiology/m-04-case-workbench-core.md","userStory":"As a bench user, I can record preliminary isolate work-up, identify the isolate, and handle specimen exceptions without losing clinical history.\n\nAST remains unavailable until identification is sufficient, and finalized identity changes require a controlled correction."},"hosts":["amr.openelis-global.org"],"revision":"3da18f4d9c81"},{"title":"R1 - M-05 - Review manual AST","key":"AMR-S20","version":"1.0","steps":[{"key":"AMR-6","required":true,"do":"Open Manual AST for the identified isolate, confirm the offered panel and standard, and record all ordered readings.","expect":"Every reading shows its raw value, unit or measurement type, source, matched breakpoint basis, and S/I/R interpretation; a missing breakpoint is named rather than invented.","route":"/Microbiology/worklist?grain=ast&status=pending-setup&workflow=BACTERIOLOGY&sort=priority&page=1&pageSize=20"},{"key":"AMR-71","required":true,"do":"Override one interpreted reading with a reason, inspect its history, then use the supervisor revert action.","expect":"The original value remains immutable and the override and revert each retain actor, time, and reason.","route":"/Microbiology/worklist?grain=ast&status=in-progress&workflow=BACTERIOLOGY&sort=priority&page=1&pageSize=20"},{"key":"AMR-72","required":true,"do":"Start a justified single-antibiotic repeat from the reviewed run and inspect report-readiness before choosing the reportable attempt.","expect":"The new attempt preserves its source and scope, the original remains visible, and final readiness stays blocked until one complete attempt is selected for reporting.","route":"/Microbiology/worklist?grain=ast&status=in-progress&workflow=BACTERIOLOGY&sort=priority&page=1&pageSize=20"}],"links":{"jira":"OGC-782","pr":"https://github.com/DIGI-UW/OpenELIS-Global-2/pull/4004","mock":"https://github.com/DIGI-UW/openelis-work/blob/a1f720d7b3b01db63387361495f4aa6589105003/designs/microbiology/m-05-ast-entry-and-interpretation.md","userStory":"As a bench user and reviewer, I can confirm the ordered AST work, record and interpret readings, and preserve every justified change.\n\nThe reportable attempt is explicit and release readiness reflects incomplete or blocked work."},"hosts":["amr.openelis-global.org"],"revision":"327ee3b778fa"},{"title":"R1 - M-05 - Review analyzer AST and QC","key":"AMR-S21","version":"1.0","steps":[{"key":"AMR-73","required":false,"do":"When legitimate analyzer AST traffic is available, open its run and inspect result, QC, instrument, card, software, and organism-comparison context.","expect":"Awaiting, results-in, and QC blockers are explicit; analyzer organism identity remains informational and never silently replaces the case isolate.","route":"/Microbiology/worklist?grain=ast&status=results-in&workflow=BACTERIOLOGY&sort=priority&page=1&pageSize=20"},{"key":"AMR-74","required":false,"do":"Accept a valid analyzer run or invalidate a blocked run and start its repeat; inspect Analyzer Import Issues for an unmatched event.","expect":"Accept and invalidate are audited, repeat preserves the source run, and unmatched traffic has a named reconciliation path rather than disappearing.","route":"/Microbiology/worklist?grain=ast&status=results-in&workflow=BACTERIOLOGY&sort=priority&page=1&pageSize=20"}],"links":{"jira":"OGC-782","pr":"https://github.com/DIGI-UW/OpenELIS-Global-2/pull/4004","mock":"https://github.com/DIGI-UW/openelis-work/blob/a1f720d7b3b01db63387361495f4aa6589105003/designs/microbiology/m-05-ast-entry-and-interpretation.md","userStory":"As an AST reviewer, I can understand analyzer provenance, QC state, organism disagreement, and any blocker before accepting results.\n\nInvalid or unmatched analyzer work is preserved for repeat or reconciliation rather than silently discarded."},"hosts":["amr.openelis-global.org"],"revision":"7b9ec4c7dfa0"},{"title":"R1 - M-07 - Work the AST queue","key":"AMR-S22","version":"1.1","steps":[{"key":"AMR-76","required":true,"do":"Switch to the AST queue, choose an active status, copy the URL, reload it, and open a row.","expect":"The selected AST grain and status survive reload and the exact isolate and run open in the case.","route":"/Microbiology/worklist?grain=ast&status=in-progress&workflow=BACTERIOLOGY&sort=priority&page=1&pageSize=20"},{"key":"AMR-77","required":true,"do":"Inspect pending-setup, in-progress, and results-in context together with analyzer flags and recent activity where present.","expect":"Each active state is named accurately, current resistance context is bounded and attributable, and deferred Expert Rules behavior is not presented as implemented.","route":"/Microbiology/worklist?grain=ast&workflow=BACTERIOLOGY&sort=priority&page=1&pageSize=20"},{"key":"AMR-78","required":true,"do":"Use an AST row command to open or edit active work, then return and trigger manual refresh with keyboard focus on the same row.","expect":"The command opens the case-scoped action and refresh preserves the canonical URL, scroll position, selected row context, and keyboard focus.","route":"/Microbiology/worklist?grain=ast&status=in-progress&workflow=BACTERIOLOGY&sort=priority&page=1&pageSize=20"},{"key":"AMR-91","required":true,"do":"From Dashboard, expand Microbiology and select Microbiology worklist. Choose the AST runs tab. Set AST status to Active work and search for accession UATMICRO66E74F33A7; confirm it is absent. Change AST status to Reviewed, keep the same search, open Row actions for that accession, and choose View reviewed AST.","expect":"UATMICRO66E74F33A7 appears only in Reviewed. The row is labeled Reviewed and offers View reviewed AST and View audit, with no Edit AST or Set up new AST run action. The case opens the exact reviewed isolate and run. Repeat or retest remains inside the case and requires a reason.","route":"/Microbiology/worklist?grain=ast&status=reviewed&q=UATMICRO66E74F33A7"}],"links":{"jira":"OGC-782","pr":"https://github.com/DIGI-UW/OpenELIS-Global-2/pull/4091","mock":"https://github.com/DIGI-UW/openelis-work/blob/a1f720d7b3b01db63387361495f4aa6589105003/designs/microbiology/m-07-worklists.md","userStory":"As an AST bench user, I can distinguish pending setup, in-progress, results-in, and reviewed work; open the exact isolate and run; and inspect reviewed history without treating it as active work.\n\nQueue actions lead to the case workflow and preserve run history rather than changing clinical state inline. Reviewed rows are view-only from the worklist. Repeat or retest remains case-scoped and requires a reason."},"hosts":["amr.openelis-global.org"],"revision":"2df8f9103422"},{"title":"R1 - M-11 - Communicate and release results","key":"AMR-S03","version":"2.0","steps":[{"key":"AMR-7","required":true,"do":"Log a critical communication against a projected Result, then acknowledge and close it with a resolution note.","expect":"The communication requires a method, follows Open to Acknowledged to Closed, and the existing Alerts workflow stays synchronized."},{"key":"AMR-16","required":true,"do":"Review the AST run, complete final release, and use View patient results.","expect":"The visible patient-results page contains the released organism and antibiotic S/I/R interpretation rather than stopping at the AST-entry surface."},{"key":"AMR-20","required":true,"do":"Return to the final-released case without opening an amendment and try to change isolate identification or AST data.","expect":"Direct edits remain locked and a clear message explains that a reasoned amendment must be opened before clinical corrections are enabled."}],"links":{"jira":"OGC-782","pr":"https://github.com/DIGI-UW/OpenELIS-Global-2/pull/4004","mock":"https://digi-uw.github.io/openelis-work/#/microbiology/microbiology-guided-workflow-walkthrough","userStory":"As a laboratory reviewer, I can communicate critical findings, release reportable microbiology results, and see finalized data protected from silent mutation.\n\nThe visible patient result is the release outcome, not AST entry alone."},"hosts":["amr.openelis-global.org"],"revision":"5839812ca6fb"},{"title":"M1 - Shared-specimen reflection (optional)","key":"AMR-S04","version":"2.0","steps":[{"key":"AMR-21","required":false,"do":"Find the sibling TB workflow record on the same specimen and note the highest-value gap for a future TB bench workflow.","expect":"The bacterial and TB records are distinguishable without duplicate accessioning. Do not expect operational TB processing in this MVP.","route":"/Microbiology/worklist"}],"links":{"jira":"OGC-782","pr":"https://github.com/DIGI-UW/OpenELIS-Global-2/pull/4004","mock":"https://digi-uw.github.io/openelis-work/#/microbiology/microbiology-guided-workflow-walkthrough","userStory":"As a reviewer, I can distinguish sibling workflows on one specimen and identify future TB workflow gaps."},"hosts":["amr.openelis-global.org"],"revision":"4a98c4ef8191"},{"title":"M2 - Open a controlled correction","key":"AMR-S05","version":"1.0","steps":[{"key":"AMR-22","required":true,"do":"From the final-released bacteriology case, open Amendments, enter a reason that describes the correction, and open the amendment.","expect":"The original report remains available, the case changes from read-only to Amendment in progress, and the open amendment shows the supplied reason.","route":"/Microbiology/worklist?workflow=BACTERIOLOGY&sort=newest"},{"key":"AMR-23","required":true,"do":"Open Isolates, update the reported organism, enter a re-identification reason, and save.","expect":"The replacement identity is visible and Identification history shows the prior value, new value, and reason instead of silently overwriting the organism."}],"links":{"jira":"OGC-782","pr":"https://github.com/DIGI-UW/OpenELIS-Global-2/pull/3972","mock":"https://digi-uw.github.io/openelis-work/#/microbiology/microbiology-guided-workflow-walkthrough","userStory":"As an authorized laboratory user, I can correct a finalized report without erasing prior clinical history."},"hosts":["amr.openelis-global.org"],"revision":"d9754c8100d6"},{"title":"M2 - Preserve repeat and retest AST attempts","key":"AMR-S06","version":"1.0","steps":[{"key":"AMR-24","required":true,"do":"In Manual AST, select Retest, enter why a fresh attempt is required, and start the retest from the reviewed original attempt.","expect":"Attempt 2 is labeled Retest, identifies Attempt 1 as its source, retains the reason, and leaves Attempt 1 unchanged."},{"key":"AMR-25","required":true,"do":"Record a different AST result on Attempt 2, review it, and choose Use attempt 2 for reporting.","expect":"Both attempts remain visible, exactly one is Included in report, and final-release readiness returns after the explicit selection."}],"links":{"jira":"OGC-782","pr":"https://github.com/DIGI-UW/OpenELIS-Global-2/pull/3972","mock":"https://digi-uw.github.io/openelis-work/#/microbiology/microbiology-guided-workflow-walkthrough","userStory":"As a bench user, I can repeat AST with provenance and explicitly choose the reportable attempt."},"hosts":["amr.openelis-global.org"],"revision":"f6f96b2dd8d8"},{"title":"M2 - Release and verify corrected results","key":"AMR-S07","version":"1.0","steps":[{"key":"AMR-26","required":true,"do":"Return to Amendments and release the amended report.","expect":"The history shows Version 1 and Version 2, identifies Version 2 as correcting Version 1, closes the amendment, and locks the case again."},{"key":"AMR-27","required":true,"do":"Use View patient results after releasing the amendment.","expect":"Patient History preserves the original report and shows a distinguishable corrected result containing the replacement organism and the selected retest interpretation."}],"links":{"jira":"OGC-782","pr":"https://github.com/DIGI-UW/OpenELIS-Global-2/pull/3972","mock":"https://digi-uw.github.io/openelis-work/#/microbiology/microbiology-guided-workflow-walkthrough","userStory":"As a reviewer, I can distinguish original and corrected reports and confirm the case relocks."},"hosts":["amr.openelis-global.org"],"revision":"2c1b8c507a37"},{"title":"M2 - Review the workflow by keyboard","key":"AMR-S08","version":"1.0","steps":[{"key":"AMR-28","required":true,"do":"Reload the final case and use only the keyboard to inspect Amendments, isolate history, AST attempts, and Reports.","expect":"Controls follow a logical order with visible focus and no keyboard trap, while text labels communicate amendment, attempt, reporting, and lock status without relying on color.","route":"/Microbiology/worklist?workflow=BACTERIOLOGY&sort=newest"}],"links":{"jira":"OGC-782","pr":"https://github.com/DIGI-UW/OpenELIS-Global-2/pull/3972","mock":"https://digi-uw.github.io/openelis-work/#/microbiology/microbiology-guided-workflow-walkthrough","userStory":"As a keyboard user, I can inspect the correction workflow with understandable focus and status."},"hosts":["amr.openelis-global.org"],"revision":"ad5566c625ad"},{"title":"M2/R1 - Trace bench consumable lots","key":"AMR-S09","version":"2.0","steps":[{"key":"AMR-29","required":true,"do":"In Setup, inspect the culture-media lots before selecting one.","expect":"The expired lot is disabled with a named reason, the first eligible lot is visibly recommended by FEFO, and the Primary label is presented separately as catalog role metadata.","route":"/Microbiology/worklist?workflow=BACTERIOLOGY&sort=newest"},{"key":"AMR-30","required":true,"do":"Select the recommended eligible culture-media lot and record inoculation.","expect":"Recorded lot usage names the exact selected culture-media lot, Culture setup context, quantity used, current lot status, and recorded time."},{"key":"AMR-31","required":true,"do":"Create or use an isolate, open Manual AST, select the recommended eligible AST-card lot, and start the AST run.","expect":"Recorded lot usage adds the exact selected card with AST setup context while retaining the earlier culture-media usage; the Secondary label remains role metadata rather than requiredness policy."}],"links":{"jira":"OGC-784","pr":"https://github.com/DIGI-UW/OpenELIS-Global-2/pull/4004","mock":"https://github.com/DIGI-UW/openelis-work/blob/main/designs/microbiology/m-12-test-reagent-linkage.md","userStory":"As a bench user, I can select eligible culture and AST consumable lots and later trace each exact lot to the work where it was used."},"hosts":["amr.openelis-global.org"],"revision":"c5b33b2c97ff"},{"title":"M3 - Maintain organism and antibiotic vocabularies","key":"AMR-S10","version":"1.0","steps":[{"key":"AMR-32","required":true,"do":"Open Admin Management and choose Microbiology Reference Data from the configured navigation.","expect":"The Organisms page opens with Home, Admin Management, Microbiology Reference Data, and Organisms in the linkable breadcrumb.","route":"/MasterListsPage/MicrobiologyReference/organisms?status=ALL&sort=name&page=1&pageSize=20"},{"key":"AMR-33","required":true,"do":"Search for Reference organism (UAT), edit its Notes, save, and reload the resulting URL.","expect":"The saved note remains visible and the same search, status, sort, page, and page-size state returns after reload.","route":"/MasterListsPage/MicrobiologyReference/organisms?status=ALL&q=Reference+organism+%28UAT%29&sort=name&page=1&pageSize=20"},{"key":"AMR-34","required":true,"do":"Deactivate Reference organism (UAT) after reading the impact confirmation, verify the new-work picker, then reactivate it.","expect":"The warning names preserved historical references; the organism disappears only from new selection while inactive and returns after reactivation.","route":"/MasterListsPage/MicrobiologyReference/organisms?status=ALL&q=Reference+organism+%28UAT%29&sort=name&page=1&pageSize=20"},{"key":"AMR-35","required":true,"do":"Search for Reference antibiotic (UAT), edit its Notes, exercise the guarded deactivate action, and reactivate it.","expect":"The edit persists, deactivation preserves historical AST readings, and reactivation restores the antibiotic to new-work selection.","route":"/MasterListsPage/MicrobiologyReference/antibiotics?status=ALL&q=REFUAT&sort=name&page=1&pageSize=20"}],"links":{"jira":"OGC-786","pr":"https://github.com/DIGI-UW/OpenELIS-Global-2/pull/3981","mock":"https://digi-uw.github.io/openelis-work/#/microbiology/m-01-amr-reference-data","userStory":"As a laboratory manager, I can maintain active organism and antibiotic vocabularies without changing historical microbiology records."},"hosts":["amr.openelis-global.org"],"revision":"55826fd2898c"},{"title":"M3 - Publish immutable AST panel versions","key":"AMR-S11","version":"1.0","steps":[{"key":"AMR-36","required":true,"do":"Open the current Gram negative AST panel (UAT), review order, tier, and report behavior, then publish one changed version.","expect":"A confirmation precedes publication and the list shows a new current version with the previous version retained as historical.","route":"/MasterListsPage/MicrobiologyReference/ast-panels?status=ALL&q=Gram+negative+AST+panel+%28UAT%29&sort=name&page=1&pageSize=20"},{"key":"AMR-37","required":true,"do":"Return to the seeded reviewed microbiology case and inspect its existing AST run after panel publication.","expect":"The existing run still names its original panel version and readings; only new AST setup offers the current version.","route":"/Microbiology/worklist?workflow=BACTERIOLOGY&stage=ALL&urgency=ALL&due=ALL&sort=priority&page=1&pageSize=20"}],"links":{"jira":"OGC-786","pr":"https://github.com/DIGI-UW/OpenELIS-Global-2/pull/3981","mock":"https://digi-uw.github.io/openelis-work/#/microbiology/m-01-amr-reference-data","userStory":"As a laboratory manager, I can publish a new AST panel version while existing AST runs retain the version they used."},"hosts":["amr.openelis-global.org"],"revision":"c2467586d78a"},{"title":"M3 - Control breakpoint catalog lifecycle","key":"AMR-S12","version":"1.0","steps":[{"key":"AMR-38","required":true,"do":"Open the synthetic Loaded breakpoint standard, filter its rules by organism or group, antibiotic, method, and specimen, then reload the URL.","expect":"The selected standard and every filter survive reload and return the same rule rows.","route":"/MasterListsPage/MicrobiologyReference/breakpoints?status=ALL&sort=name&page=1&pageSize=20"},{"key":"AMR-39","required":true,"do":"Activate CLSI SYNTH-UAT-LOADED with an effective date.","expect":"The selected version becomes Active, the former CLSI version becomes Loaded, and the effective date is retained.","route":"/MasterListsPage/MicrobiologyReference/breakpoints?status=ALL&q=SYNTH-UAT-LOADED&sort=name&page=1&pageSize=20"},{"key":"AMR-40","required":true,"do":"Inspect the seeded reviewed AST run after activating the synthetic standard.","expect":"The reviewed run keeps its original breakpoint standard and S/I/R interpretation instead of being recalculated.","route":"/Microbiology/worklist?workflow=BACTERIOLOGY&stage=ALL&urgency=ALL&due=ALL&sort=priority&page=1&pageSize=20"}],"links":{"jira":"OGC-787","pr":"https://github.com/DIGI-UW/OpenELIS-Global-2/pull/3981","mock":"https://digi-uw.github.io/openelis-work/#/microbiology/m-02-breakpoint-catalog","userStory":"As a laboratory manager, I can inspect and activate breakpoint standards without recalculating reviewed AST history."},"hosts":["amr.openelis-global.org"],"revision":"c8094edb3fc9"},{"title":"M3 - Import breakpoint updates safely","key":"AMR-S13","version":"1.0","steps":[{"key":"AMR-41","required":true,"do":"Upload the synthetic mixed-validity breakpoint CSV and stop at the preview.","expect":"The preview reports one valid row, two skipped rows, and actionable row-specific errors before any rule is applied.","route":"/MasterListsPage/MicrobiologyReference/breakpoints?status=ALL&sort=name&page=1&pageSize=20&edit=import"},{"key":"AMR-42","required":true,"do":"Download the rejected-row CSV, then apply the valid preview row.","expect":"The rejected file contains source rows, the valid rule is imported, and its new standard remains Loaded rather than becoming Active.","route":"/MasterListsPage/MicrobiologyReference/breakpoints?status=ALL&sort=name&page=1&pageSize=20&edit=import"},{"key":"AMR-43","required":true,"do":"Preview and apply the same synthetic CSV again.","expect":"The previously imported row is reported unchanged and no duplicate rule is created.","route":"/MasterListsPage/MicrobiologyReference/breakpoints?status=ALL&sort=name&page=1&pageSize=20&edit=import"},{"key":"AMR-44","required":true,"do":"Open the imported synthetic rule, save a local correction, then preview the same CSV again.","expect":"The rule is visibly marked Local correction and the preview reports the matching row as locally customized instead of overwriting it.","route":"/MasterListsPage/MicrobiologyReference/breakpoints?status=ALL&q=SYNTH-UAT-MIXED&sort=name&page=1&pageSize=20"}],"links":{"jira":"OGC-787","pr":"https://github.com/DIGI-UW/OpenELIS-Global-2/pull/3981","mock":"https://digi-uw.github.io/openelis-work/#/microbiology/m-02-breakpoint-catalog","userStory":"As a laboratory manager, I can preview and apply valid breakpoint rows while rejected rows and local corrections remain protected."},"hosts":["amr.openelis-global.org"],"revision":"fc87ccd93044"},{"title":"M4 - Preview and export WHONET CSV","key":"AMR-S14","version":"2.0","steps":[{"key":"AMR-45","required":true,"do":"From Dashboard, expand Microbiology in the main navigation and choose WHONET export.","expect":"The WHONET export page opens with a Home > Reports > WHONET export breadcrumb and defaults to the previous complete month, clinically significant isolates, and first patient-organism isolate in 7 days.","route":"/Dashboard"},{"key":"AMR-46","required":true,"do":"In Configure export, set From and To to today or another period that includes today's seeded data. Keep Inclusion at Clinically significant isolates and De-duplication at First patient-organism isolate in 7 days, then choose Preview export.","expect":"Preview shows 1 finalized case, 2 isolates found, 0 mappable isolates, 0 eligible rows, and 4 excluded rows. Generate CSV is disabled, and Mapping readiness offers Fix specimen mapping for one sample type affecting all 4 excluded rows. If this starting state differs, stop and request an AMR-S14 reseed.","route":"/Microbiology/whonet"},{"key":"AMR-92","required":true,"do":"In Mapping readiness, choose Fix specimen mapping. On Sample type > Basic information, confirm WHONET specimen code has focus, enter BLD, choose Save, then choose Return to WHONET preview.","expect":"The exact preview URL returns. The specimen warning is gone; the summary shows 1 mappable isolate, 2 eligible rows, and 2 excluded rows; and the table shows specimen BLD with CIPUAT S and GENUAT R. The only remaining readiness warning is the mapping-pending organism affecting 2 rows.","route":"/Microbiology/whonet"},{"key":"AMR-47","required":true,"do":"In Mapping readiness, choose Fix organism mapping for the remaining mapping-pending organism. Confirm the Organism dialog opens for that exact record, then use the browser Back action without changing it.","expect":"The organism editor is scoped to the affected record. Browser Back restores the same preview URL, with the organism warning still naming 2 excluded rows and the mapped specimen rows still eligible.","route":"/Microbiology/whonet"},{"key":"AMR-48","required":true,"do":"Copy the complete WHONET preview URL, reload it, and compare the reporting period, inclusion option, de-duplication option, page size, counts, warning, and visible AST rows.","expect":"The canonical URL restores the same preview without re-entering configuration: 2 eligible rows remain visible with specimen BLD, and the one unchanged organism warning still accounts for 2 excluded rows.","route":"/Microbiology/whonet"},{"key":"AMR-49","required":true,"do":"Choose Generate CSV, open the downloaded file, and find the accession shown in the two eligible preview rows.","expect":"The period-named CSV has the established headers and exactly two rows for that accession: CIPUAT with S and GENUAT with R. Both rows have SPECIMEN_TYPE BLD, and rows for the mapping-pending organism are absent.","route":"/Microbiology/whonet"},{"key":"AMR-50","required":true,"do":"Reload WHONET export and use only the keyboard to move through the date fields, Inclusion, De-duplication, Preview export, Mapping readiness, the eligible-row table, pagination, and Generate CSV.","expect":"Focus is visible and follows the workflow order; every control has an understandable name; and no keyboard trap, overlap, or hidden action prevents completing the export workflow.","route":"/Microbiology/whonet"}],"links":{"jira":"OGC-794","pr":"https://github.com/DIGI-UW/OpenELIS-Global-2/pull/4097","mock":"https://digi-uw.github.io/openelis-work/#/microbiology/m-09-whonet-export","userStory":"GOAL\nAs a surveillance or laboratory reporting user, preview finalized routine bacteriology data, repair a missing specimen mapping in context, and download the validated CSV.\n\nSTARTING POINT\nSign in to amr.openelis-global.org. From the main navigation follow Microbiology > WHONET export.\n\nFIXTURE\nThe deployment seeds the AMR-S14 service-created fixture. Select a reporting period that includes today. It starts with one sample type intentionally missing its WHONET code; saving BLD consumes that starting state.\n\nRUN ORDER AND RESET\nRun AMR-45, AMR-46, AMR-92, AMR-47, AMR-48, AMR-49, and AMR-50 in order. If the initial specimen warning or expected counts are absent, stop and request an AMR-S14 reseed. Do not substitute another case or adapt the expected result.\n\nSCOPE\nReview the WHONET Configure and Preview surfaces, the owning Sample Type editor, the affected organism dialog, the canonical preview URL, and the downloaded CSV.\n\nAUTHORITY\nOpenELIS Work M-09 WHONET Export and implementation PR #4097."},"hosts":["amr.openelis-global.org"],"revision":"f8b15d247c42"},{"title":"OGC-788 M1 - Manage and use shared phrases","key":"AMR-S15","version":"1.0","steps":[{"key":"AMR-51","required":true,"do":"Open Macro Library from Admin Management, search for .uat_ng24, select All contexts, All statuses, and Code A-Z, then reload the resulting URL.","expect":"The Macro Library breadcrumb, selected controls, matching phrase row, and complete canonical URL return unchanged after reload.","route":"/admin/MacroLibrary?q=.uat_ng24&context=all&status=all&sort=code%3Aasc&page=1&pageSize=20"},{"key":"AMR-52","required":true,"do":"Edit .uat_ng24, retain the text No growth at 24 hours, select Culture activity, Clinical history, and Antibiotic exposure, keep it Active, and save.","expect":"The saved row remains searchable as an active phrase and reopening it shows the same text and three field contexts.","route":"/admin/MacroLibrary?q=.uat_ng24&context=all&status=all&sort=code%3Aasc&page=1&pageSize=20"},{"key":"AMR-53","required":true,"do":"Open the seeded bacteriology case, go to Setup, type Culture observation: .uat_ng24 in Activity note, and choose the suggestion with the keyboard.","expect":"Only the shortcut is replaced, the prefix is preserved, the expanded phrase remains editable, and focus returns to Activity note.","route":"/Microbiology/worklist?workflow=BACTERIOLOGY&sort=newest"},{"key":"AMR-54","required":true,"do":"Save the setup activity, open Timeline, copy the case URL, and reload it.","expect":"Timeline still shows Culture observation: No growth at 24 hours as ordinary text, and the same case section returns from the copied URL."},{"key":"AMR-55","required":true,"do":"Open order entry, select the seeded UAT microbiology culture test, and expand .uat_ng24 once in Clinical history and once in Antibiotic exposure.","expect":"Both fields offer the active phrase because their contexts were selected, and each field receives independent editable expanded text.","route":"/SamplePatientEntry"},{"key":"AMR-56","required":true,"do":"At a narrow mobile-width window, inspect the filtered Macro Library and then open the seeded case Activity note suggestion for .uat_ng24.","expect":"Shortcut, phrase, status, and row action remain readable without horizontal table scrolling, and the suggestion does not cover the Activity note or Start inoculation action.","route":"/admin/MacroLibrary?q=.uat_ng24&context=all&status=all&sort=code%3Aasc&page=1&pageSize=20"}],"links":{"jira":"OGC-788","pr":"https://github.com/DIGI-UW/OpenELIS-Global-2/pull/3990","mock":"https://digi-uw.github.io/openelis-work/designs/microbiology/m-08-macro-library.html","userStory":"As a laboratory administrator and bench user, I can maintain shared phrases and expand eligible text in context without hiding what is recorded."},"hosts":["phrases.openelis-global.org"],"revision":"3117e11218f2"},{"title":"OGC-788 M2 - Administer and export shared phrases","key":"AMR-S16","version":"1.0","steps":[{"key":"AMR-57","required":true,"do":"Open Macro Library, search for .uat_bulk, select All contexts, All statuses, and Code A-Z, then reload the resulting URL. Prepare two local active phrases named .uat_bulk_a and .uat_bulk_b through the editor if they are not already present.","expect":"The filtered library and all selected controls return unchanged from the canonical URL, and the two local active phrases are available for the next checks.","route":"/admin/MacroLibrary?q=.uat_bulk&context=all&status=all&sort=code%3Aasc&page=1&pageSize=20"},{"key":"AMR-58","required":true,"do":"Select .uat_bulk_a and .uat_bulk_b, choose Deactivate, inspect the confirmation, and cancel once before opening it again.","expect":"The confirmation names the action and both phrases. Cancel changes nothing and returns focus to the library; reopening presents the same selection.","route":"/admin/MacroLibrary?q=.uat_bulk&context=all&status=all&sort=code%3Aasc&page=1&pageSize=20"},{"key":"AMR-59","required":true,"do":"Confirm Deactivate, reload the canonical URL, select the same two rows, and confirm Activate.","expect":"Both rows become inactive together, remain inactive after reload, and then become active together. No partial update is visible.","route":"/admin/MacroLibrary?q=.uat_bulk&context=all&status=all&sort=code%3Aasc&page=1&pageSize=20"},{"key":"AMR-60","required":true,"do":"Choose Export CSV and open the downloaded file.","expect":"The UTF-8 CSV has one header row, is ordered by code, includes contexts, active state, and source/provenance, and contains no database IDs or audit actor identifiers.","route":"/admin/MacroLibrary?q=.uat_bulk&context=all&status=all&sort=code%3Aasc&page=1&pageSize=20"},{"key":"AMR-61","required":true,"do":"Select only .uat_bulk_b, choose Remove local phrases, inspect the danger confirmation, and confirm. Leave .uat_bulk_a active for repeat review.","expect":"The confirmation identifies irreversible local removal, .uat_bulk_b disappears after reload, and .uat_bulk_a remains available.","route":"/admin/MacroLibrary?q=.uat_bulk&context=all&status=all&sort=code%3Aasc&page=1&pageSize=20"},{"key":"AMR-62","required":true,"do":"At a narrow mobile-width window, search for .uat_bulk, select the remaining phrase, and open a bulk confirmation.","expect":"The phrase, status, compact selected-count state, and confirmation remain readable without horizontal page overflow; focusable controls are not hidden from assistive technology.","route":"/admin/MacroLibrary?q=.uat_bulk&context=all&status=all&sort=code%3Aasc&page=1&pageSize=20"}],"links":{"jira":"OGC-788","pr":"https://github.com/DIGI-UW/OpenELIS-Global-2/pull/3992","mock":"https://digi-uw.github.io/openelis-work/designs/microbiology/m-08-macro-library.html","userStory":"As a laboratory administrator, I can safely administer several shared phrases together and export the effective library for review and portability."},"hosts":["phrases.openelis-global.org"],"revision":"f6166a241a38"},{"title":"R9 - Filter the WHONET export population","key":"AMR-S30","version":"1.0","steps":[{"key":"AMR-93","required":true,"do":"From Dashboard, expand Reports in the main navigation and choose WHONET export.","expect":"WHONET export opens at /Microbiology/whonet. The breadcrumb is Home > Reports > WHONET export, and Configure export shows From, To, Specimen types, Organisms, Patient origins, Inclusion, and De-duplication controls.","route":"/Dashboard"},{"key":"AMR-94","required":true,"do":"Set From and To to today. In Specimen types choose one UAT WHONET specimen <suffix>. In Organisms choose Reference organism (UAT) and the WHONET mapping pending organism carrying that same suffix. In Patient origins choose Inpatient. In Inclusion keep Clinically significant and also choose Contaminant.","expect":"The selection summaries show 1 specimen type, 2 organisms, 1 patient origin, and 2 inclusion values. The page address updates as each choice is made and contains the reporting dates plus one specimen, two organism, origin=INPATIENT, and both significance entries.","route":"/Microbiology/whonet"},{"key":"AMR-95","required":true,"do":"Copy the complete page address, reload the page from that address, and reopen each of the four population filters.","expect":"The same dates and exact selected specimen, two organisms, Inpatient origin, and two inclusion values are restored without re-entry. De-duplication remains First patient-organism isolate in 7 days and the address remains canonical rather than accumulating duplicate state.","route":"/Microbiology/whonet"},{"key":"AMR-96","required":true,"do":"Choose Preview export and review the summary and Mapping readiness before changing any mapping.","expect":"After the selected filters are applied, After specimen filter, After organism filter, After origin filter, Isolates included, and After de-duplication each show 2. Mappable isolates shows 1, Eligible rows shows 2, and Rows excluded shows 2. The unfiltered Finalized cases and Isolates found totals may be higher because other UAT stories share the reporting date.","route":"/Microbiology/whonet"},{"key":"AMR-97","required":true,"do":"Choose Generate CSV, open the downloaded period-named file, and find the accession whose suffix matches the selected UAT WHONET specimen.","expect":"The CSV contains exactly the two eligible AST rows for that selected accession, with SPECIMEN_TYPE BLD and the expected S and R interpretations. The mapping-pending organism and unrelated UAT accessions are absent.","route":"/Microbiology/whonet"}],"links":{"jira":"OGC-782","pr":"https://github.com/DIGI-UW/OpenELIS-Global-2/pull/4103","mock":"https://digi-uw.github.io/openelis-work/#/microbiology/m-09-whonet-export","userStory":"GOAL\nAs a surveillance or laboratory reporting user, narrow a WHONET export to the intended finalized culture population and preserve that selection for review and download.\n\nSTARTING POINT\nSign in to amr.openelis-global.org. From Dashboard, follow Reports > WHONET export.\n\nFIXTURE\nUse one service-created R9 fixture in the reporting period for today. Its specimen is named UAT WHONET specimen <suffix>; pair it with Reference organism (UAT), the WHONET mapping pending organism carrying the same suffix, and patient origin Inpatient.\n\nRUN ORDER AND RESET\nRun AMR-93 through AMR-97 in order. The story is read-only except for downloading a CSV, so it can be repeated. If no matching specimen and pending-organism pair is available for today, stop and request an R9 reseed rather than substituting unrelated data.\n\nSCOPE\nReview Reports navigation, specimen, organism, patient-origin and inclusion filters, canonical URL persistence, staged preview counts, and the downloaded CSV.\n\nAUTHORITY\nOpenELIS Work M-09 WHONET Export and implementation PR #4103."},"hosts":["amr.openelis-global.org"],"revision":"7903c920b395"},{"title":"R10 - Secure analyzer event ingress and reconcile failures","key":"AMR-S31","version":"1.0","steps":[{"key":"AMR-98","required":true,"do":"From Dashboard, open Microbiology in the left navigation and choose Microbiology Worklist. Select AST runs, select the Results in - review summary tile, and enter UATMICROEEE2538B5C in the table search.","expect":"Exactly one AST row for UATMICROEEE2538B5C is visible and its status context says QC Failed.","route":"/Microbiology/worklist?grain=ast&status=results-in&workflow=BACTERIOLOGY&sort=priority&page=1&pageSize=20"},{"key":"AMR-99","required":true,"do":"Open the matching AST row. In Manual AST, inspect the Analyzer results and QC region for card UAT-AST-CARD-EEE2538B5C and the Ciprofloxacin (UAT) reading.","expect":"The region shows Analyzer QC failed, UAT microbiology AST analyzer, card UAT-AST-CARD-EEE2538B5C, QC reference UAT-QC-CONTROL-17, and Analyzer: Susceptible without replacing the case isolate identity.","route":"/Microbiology/worklist?grain=ast&status=results-in&workflow=BACTERIOLOGY&sort=priority&page=1&pageSize=20"},{"key":"AMR-100","required":true,"do":"In the Analyzer results and QC region, enter QC control investigated; supervisor accepts this run in Reason and corrective action, then select Override QC flag.","expect":"The QC failure remains auditable and the page changes to Analyzer results ready for review; it does not accept the run automatically.","route":"/Microbiology/worklist?grain=ast&status=results-in&workflow=BACTERIOLOGY&sort=priority&page=1&pageSize=20"},{"key":"AMR-101","required":true,"do":"After the QC override, select Accept results in the same Analyzer results and QC region.","expect":"The AST run status changes to Reviewed and the analyzer provenance and corrective-action history remain visible.","route":"/Microbiology/worklist?grain=ast&status=results-in&workflow=BACTERIOLOGY&sort=priority&page=1&pageSize=20"},{"key":"AMR-102","required":true,"do":"Return to Dashboard. In the left navigation open Admin and choose Stuck analyzer events. In Analyzer import issues, find target UAT-AST-CARD-EEE2538B5C-UNMATCHED.","expect":"The row says AST result available and No AST run matched the analyzer and card identifiers, provides Open mappings, and offers no Retry or Reprocess action.","route":"/AnalyzerResults?view=import-issues"}],"links":{"jira":"OGC-782","pr":"https://github.com/DIGI-UW/OpenELIS-Global-2/pull/4116","mock":"https://github.com/DIGI-UW/openelis-work/blob/a1f720d7b3b01db63387361495f4aa6589105003/designs/microbiology/m-05-ast-entry-and-interpretation.md","userStory":"As an AST reviewer, I can trust that normalized analyzer results enter through an approved machine identity, review a failed QC result explicitly, and find unmatched traffic without silent loss.\n\nStart signed in on Dashboard. Use only the dedicated fixture accession UATMICROEEE2538B5C and analyzer card UAT-AST-CARD-EEE2538B5C. All steps share this one case. Accept results consumes its review-ready state; if it is already Reviewed or missing, request a reseed of AMR-S31 instead of substituting another case.\n\nThe machine-authentication boundary is covered by automated security evidence. This reviewer story validates the operator-visible result and reconciliation workflow."},"hosts":["amr.openelis-global.org"],"revision":"e4726d4b30a7"},{"title":"R11 - Classify culture purpose and control WHONET populations","key":"AMR-S32","version":"1.0","steps":[{"key":"AMR-103","required":true,"do":"From Dashboard, expand Microbiology in the left navigation, choose Microbiology worklist, search for accession UATMICROEDF2766FE0, open the only matching row, and choose Order detail.","expect":"The case shows accession UATMICROEDF2766FE0 and is not Final Released. The Culture purpose group is visible with Clinical diagnosis or treatment selected, Active screening or carriage unselected, and Save order detail available.","route":"/Microbiology/worklist?q=UATMICROEDF2766FE0&sort=newest"},{"key":"AMR-104","required":true,"do":"In Culture purpose, choose Active screening or carriage and then choose Save order detail. Open Case info after the save.","expect":"Active screening or carriage remains selected after the save, Case info shows that same purpose, and the case is still available for ordinary pre-release work.","route":"/Microbiology/cases/e6a35dac-22bc-4c5e-975d-b37e19520ba7?section=order-detail"},{"key":"AMR-105","required":true,"do":"Open Timeline and find the newest Culture purpose changed event.","expect":"The timeline shows Clinical diagnosis or treatment to Active screening or carriage together with the signed-in actor and event time.","route":"/Microbiology/cases/e6a35dac-22bc-4c5e-975d-b37e19520ba7?section=timeline"},{"key":"AMR-106","required":true,"do":"Return to Dashboard, expand Reports in the left navigation, choose WHONET export, set From and To to August 22, 2026, and leave both Culture purpose checkboxes clear. Choose Preview export.","expect":"WHONET export opens at /Microbiology/whonet with Home > Reports > WHONET export breadcrumbs. The address contains includeScreening=false and includeUnspecified=false. Preview shows separate Clinical diagnostic cases, Active screening or carriage cases, Historical unspecified cases, and After culture-purpose selection counts.","route":"/Dashboard"},{"key":"AMR-107","required":true,"do":"Select Include active screening or carriage cultures while leaving historical unspecified clear, note the page address, and preview. Then clear screening, select Include historical cultures with unspecified purpose, note the address, and preview again.","expect":"The first address contains includeScreening=true and includeUnspecified=false, and its After culture-purpose selection count is higher than the default preview. The second contains includeScreening=false and includeUnspecified=true, and its count is also higher than the default. Each control changes only its own population.","route":"/Microbiology/whonet"},{"key":"AMR-108","required":true,"do":"Return to Microbiology worklist, search for final accession UATMICRO584CA24AF3, open the only matching row, and choose Order detail.","expect":"The case is Final Released. Its Culture purpose remains visible, both purpose choices are disabled, and Save order detail is absent.","route":"/Microbiology/worklist?q=UATMICRO584CA24AF3&sort=newest"}],"links":{"jira":"OGC-782","pr":"https://github.com/DIGI-UW/OpenELIS-Global-2/pull/4117","mock":"https://digi-uw.github.io/openelis-work/#/microbiology/m-09-whonet-export","userStory":"GOAL\nAs a microbiology bench user, I can distinguish clinical diagnostic cultures from active screening or carriage cultures, correct that purpose before final release with an audit trail, and explicitly include screening or historical unspecified cultures in WHONET review.\n\nSTARTING POINT\nSign in to amr.openelis-global.org. From Dashboard, follow Microbiology > Microbiology worklist for case review, and Reports > WHONET export for surveillance selection.\n\nFIXTURES\nUse editable accession UATMICROEDF2766FE0 for AMR-103 through AMR-105. Use final accession UATMICRO584CA24AF3 for AMR-108. The August 22, 2026 reporting period contains service-created clinical, screening, and historical-unspecified export cases for AMR-106 and AMR-107.\n\nRUN ORDER AND RESET\nRun AMR-103 through AMR-108 in order. AMR-104 changes the editable case from clinical to screening and can be consumed once. If that case is already screening or final, stop and request an AMR-S32 reseed rather than substituting another case. WHONET steps are read-only.\n\nSCOPE\nReview Culture purpose in Order detail and Case info, the signed timeline correction, independent canonical WHONET inclusion controls, explicit purpose population counts, and final-case locking.\n\nAUTHORITY\nOpenELIS Work M-09 WHONET Export and implementation PR #4117."},"hosts":["amr.openelis-global.org"],"revision":"59e1a8209b93"},{"title":"R12 - Carry reviewed AST scope into WHONET","key":"AMR-S33","version":"1.0","steps":[{"key":"AMR-109","required":true,"do":"From Dashboard, expand Microbiology in the left navigation and choose Microbiology worklist. In the view switch choose AST runs. Under Filters set AST status to Reviewed. In the AST runs table search, enter UATMICROEF24FE71AD. In Surveillance scope leave Reporting period at This Month.","expect":"AST runs is the page and table heading. From and To are the first and last calendar day of the current month, and exactly the seeded accession row remains visible.","route":"/Microbiology/worklist"},{"key":"AMR-110","required":true,"do":"In Surveillance scope, choose UAT micro specimen under Specimen types, Escherichia coli (UAT) under Organisms, Inpatient under Patient origins, and Clinically significant under Inclusion. Inspect the page address and AST runs table.","expect":"All five surveillance values (period plus four population filters) remain visible and the address changes to preserve them. The seeded accession stays visible. AST status and the table search remain separate under Filters and the table toolbar rather than becoming surveillance criteria.","route":"/Microbiology/worklist"},{"key":"AMR-111","required":true,"do":"In the AST runs table toolbar choose Export to WHONET. Inspect the breadcrumb, source notice, and Configure export controls.","expect":"Home > Reports > WHONET export is shown with Scope provided by the AST worklist. The same full-month dates, specimen, organism, patient origin, and inclusion are selected and editable. AST status, search, urgency, sorting, and paging do not appear as export criteria.","route":"/Microbiology/worklist"},{"key":"AMR-112","required":true,"do":"Set Reporting period to This Quarter. Under Patient origins remove Inpatient, then reload the page.","expect":"From and To cover the full current calendar quarter. Patient origins remains empty after reload, the other transferred surveillance filters remain selected, the page address reflects the edit, and Scope provided by the AST worklist remains visible.","route":"/Microbiology/whonet"},{"key":"AMR-113","required":true,"do":"Choose Clear worklist scope and inspect the Configure export controls and page address.","expect":"The source notice is gone. Reporting period is Last Month with the full previous calendar month. Specimen types, Organisms, and Patient origins are empty. Inclusion remains Clinically significant as the direct-entry default, and the page address has no worklist source marker.","route":"/Microbiology/whonet"}],"links":{"jira":"OGC-782","pr":"https://github.com/DIGI-UW/OpenELIS-Global-2/pull/4120","mock":"https://digi-uw.github.io/openelis-work/#/microbiology/m-09-whonet-export","userStory":"GOAL\nAs a surveillance or laboratory reporting user, I can narrow reviewed AST work with structured surveillance criteria and carry exactly that editable scope into the Reports-owned WHONET generator.\n\nSTARTING POINT\nSign in to amr.openelis-global.org. From Dashboard, follow Microbiology > Microbiology worklist. Select AST runs, then select Reviewed in the AST status filter.\n\nFIXTURE\nUse finalized accession UATMICROEF24FE71AD. This service-created case is read-only for this story and can be reused.\n\nRUN ORDER AND RESET\nRun AMR-109 through AMR-113 in order. The steps change only URL-backed filters, not clinical records. Clear worklist scope in AMR-113 restores the direct Reports defaults, so the story is repeatable.\n\nSCOPE\nReview full-calendar reporting periods, the five structured surveillance filters, the AST-worklist handoff, editable provenance, and reset behavior. Operational queue state must not become export criteria.\n\nAUTHORITY\nOpenELIS Work M-09 WHONET Export and implementation PR #4120."},"hosts":["amr.openelis-global.org"],"revision":"b4ba7d59d7fc"},{"title":"R13 - Configure first-isolate selection for WHONET","key":"AMR-S34","version":"1.0","steps":[{"key":"AMR-114","required":true,"do":"In the left navigation, open Reports, then choose WHONET export. Stay on the Configure step.","expect":"The WHONET export page opens at /Microbiology/whonet. Apply first-isolate selection is checked and the advanced policy is available below it.","route":"/Microbiology/whonet"},{"key":"AMR-115","required":true,"do":"Open Adjust first-isolate policy. Under Window length, choose 14 days.","expect":"14 days remains selected, the page explains that an isolate exactly on the boundary begins a new window, and the URL contains dedup=FIRST_ISOLATE_14_DAY.","route":"/Microbiology/whonet"},{"key":"AMR-116","required":true,"do":"Choose Final result-release date and Same specimen source only. Clear Exclude probable contaminants before selection, then choose Treat changed S/I/R as new.","expect":"Each chosen value is visibly selected. The URL records dedupBasis=RELEASE_DATE, dedupScope=SAME_SOURCE, excludeContaminants=false, and profileSensitivity=SENSITIVE.","route":"/Microbiology/whonet"},{"key":"AMR-117","required":true,"do":"Reload the browser at the current URL, then reopen Adjust first-isolate policy.","expect":"The same 14-day, release-date, same-source, include-contaminants, and changed-S/I/R choices are restored from the URL.","route":"/Microbiology/whonet"},{"key":"AMR-118","required":true,"do":"Clear Apply first-isolate selection.","expect":"The advanced policy controls are hidden and the URL records dedup=NONE without losing the rest of the export configuration.","route":"/Microbiology/whonet"}],"links":{"jira":"OGC-782","pr":"https://github.com/DIGI-UW/OpenELIS-Global-2/pull/4124","mock":"https://digi-uw.github.io/openelis-work/designs/microbiology/m-09-whonet-export.html","userStory":"As a surveillance user, I can configure how repeated isolates are selected for a WHONET export and preserve those choices in a bookmarkable URL.\n\nUse the existing AMR review data. This story changes export configuration only; it does not modify culture cases."},"revision":"b55055a743d8"}],"checklistRevision":"138ed99ffb1a659e481a6c329dc92536b75e13de23b3702d9c182662a26b4e30"}