[
  {
    "id": "processing",
    "title": "Sterile processing",
    "kicker": "From return to sterile stock",
    "intro": "Follow case-linked returns, decontamination, washing, packing, sterilization review and distribution into sterile stock.",
    "outcome": "Connect the kit, its assembly UID, its load, and its destination.",
    "icon": "tray",
    "stages": [
      {
        "title": "Receive & reconcile",
        "icon": "case",
        "body": "Receive returns against the OR case and compare expected contents with what physically comes back.",
        "items": [
          "Scan a case cart, tray or item to resolve the associated OR case.",
          "Confirm received counts and retain outstanding-item exceptions.",
          "The returned assembly\u2019s sterile-processing life ends in Decontam."
        ],
        "record": "OR return + counts + outstanding items",
        "photo": "processing-01"
      },
      {
        "title": "Wash & verify",
        "icon": "machine",
        "body": "Scan trays/kits directly or use a wash tag/basket to associate contents with a washer load.",
        "items": [
          "Record washer, cycle and PASS / FAIL.",
          "Failed items require rewash before packing can continue.",
          "Confirm the wash cycle at Packing where configured."
        ],
        "record": "Washer load + item-level wash result",
        "photo": "processing-02"
      },
      {
        "title": "Identify the kit",
        "icon": "scan",
        "body": "Staff find the correct child kit using the identifiers already attached to it.",
        "items": [
          "Scan UID, serial, alternate number, temporary tray tag, or kit name.",
          "Open the correct child kit when a parent has multiple children."
        ],
        "record": "Kit identity",
        "photo": "processing-03"
      },
      {
        "title": "Pack & count",
        "icon": "tray",
        "body": "The packing workflow brings kit contents and assembly recording together.",
        "items": [
          "Complete the instrument count; review a tray photo when needed.",
          "Record missing instruments and create the assembly UID.",
          "Use facility label printing or preprinted SER/SPDL scans.",
          "Capture a kit reference image using the mobile phone when required."
        ],
        "record": "Assembly UID + packing record",
        "photo": "processing-04"
      },
      {
        "title": "Create the load",
        "icon": "machine",
        "body": "A new load identifies the machine and cycle for the packed assemblies.",
        "items": [
          "Choose the sterilizer and cycle.",
          "Use the next configured load number.",
          "Scan packed kits onto the load and save the load."
        ],
        "record": "Load + linked assemblies",
        "photo": "processing-05"
      },
      {
        "title": "Capture load printout",
        "icon": "camera",
        "body": "Use a mobile phone to capture the sterilizer till-roll printout and assign the image to its load.",
        "items": [
          "Photograph the physical cycle printout.",
          "Attach it to the corresponding load record/report for reference."
        ],
        "record": "Load + till-roll image",
        "photo": "processing-06"
      },
      {
        "title": "Review the result",
        "icon": "shield",
        "body": "Load review separates usable assemblies from failed loads and biological holds.",
        "items": [
          "Review release / Qten on the sterilization workflow.",
          "Failed loads make their kits unusable.",
          "Cycles configured as biological-required enter Quarantine."
        ],
        "record": "Load result + release / hold state",
        "photo": "processing-07"
      },
      {
        "title": "Read biologicals",
        "icon": "clock",
        "body": "Where required, the Qten workflow captures biological setup and final results.",
        "items": [
          "Record control, well, expiry, bio label, and incubation details.",
          "Record setup and final pass/fail results with in/out dates and times.",
          "Review completed loads as well as the active queue."
        ],
        "record": "Biological record",
        "photo": "processing-08"
      },
      {
        "title": "Put away",
        "icon": "cabinet",
        "body": "Sterile-complete assemblies are assigned to a known stock destination.",
        "items": [
          "Choose a location or scan its slot.",
          "Put away from the load or use Distribute.",
          "The assembly lifecycle moves to distributed."
        ],
        "record": "Assembly + stock location",
        "photo": "processing-09"
      }
    ],
    "photo": "processing-overview"
  },
  {
    "id": "decontam",
    "title": "Decontam, counts & washing",
    "kicker": "Case return to confirmed wash",
    "intro": "Receive against the OR case, reconcile expected and returned counts, control outstanding items, and scan trays, baskets or wash tags to a washer.",
    "outcome": "Keep the OR case, physical return, missing-item exception, wash load and next packing record connected.",
    "icon": "machine",
    "stages": [
      {
        "title": "Receive against OR case",
        "icon": "case",
        "body": "A case-linked cart, tray or item scan opens the corresponding OR case and its expected return list.",
        "items": [
          "Scan the case cart, tray, kit or item; select the case when required.",
          "Load the items actually allocated to the case/cart.",
          "Keep items belonging to another case linked to their own case history."
        ],
        "record": "OR case + return session",
        "photo": "decontam-01"
      },
      {
        "title": "Reconcile returned counts",
        "icon": "list",
        "body": "Confirm the physical return against the expected case contents; received and outstanding counts remain visible.",
        "items": [
          "Compare expected quantities with the trays, kits, Separates and instruments returned.",
          "Receive items in Decontam or allocate them to a wash tag/basket.",
          "Reduce the case\u2019s outstanding count as items are received or resolved."
        ],
        "record": "Expected / received / outstanding quantities",
        "example": "counts",
        "photo": "decontam-02"
      },
      {
        "title": "Flag missing case items",
        "icon": "shield",
        "body": "Unresolved differences create a visible outstanding-item exception for investigation rather than disappearing when the rest of the case moves forward.",
        "items": [
          "Keep the OR case, item/tray, count difference and last known location attached.",
          "Show outstanding cases by age; identify missing, retained-in-OR, sent-elsewhere or quarantined items.",
          "Record the reason, user and time for resolution; link replacement needs to purchasing."
        ],
        "record": "Case-linked missing-item alert",
        "example": "missing",
        "photo": "decontam-03"
      },
      {
        "title": "Assign wash tag / basket",
        "icon": "tray",
        "body": "Group received contents into a controlled wash tag or reusable basket session.",
        "items": [
          "Scan or create the wash tag/basket and allocate the returned items.",
          "Show selected, allocated and physical quantities; flag a basket-content mismatch.",
          "When multi-case baskets are enabled, retain each item\u2019s original OR case link."
        ],
        "record": "Wash grouping + item-to-case lineage",
        "photo": "decontam-04"
      },
      {
        "title": "Scan tray to washer",
        "icon": "scan",
        "body": "Scan a tray or kit directly to the washer where enabled, or scan a basket/wash tag and then the washer.",
        "items": [
          "Associate the scanned contents with the current/open washer load.",
          "If needed, create a new washer load with the next cycle number.",
          "Prevent the same item being added twice to an active load."
        ],
        "record": "Tray / basket / tag + washer load",
        "photo": "decontam-05"
      },
      {
        "title": "Record wash cycle result",
        "icon": "machine",
        "body": "The washer load captures the machine, cycle number and explicit PASS / FAIL result for all included items.",
        "items": [
          "Increment the cycle number once per washer cycle, not per tray or basket.",
          "Distinguish test cycles from production cycles; apply the configured failed-test warning or block.",
          "A passing cycle records a successful wash transaction for each contained item."
        ],
        "record": "Washer + cycle + load result",
        "photo": "decontam-06"
      },
      {
        "title": "Fail \u2192 rewash required",
        "icon": "shield",
        "body": "A failed wash puts the affected items into REWASH REQUIRED and prevents downstream processing until a successful wash.",
        "items": [
          "Keep failed cycles visible in the item history.",
          "Block packing, sterilization and release while the failed-wash condition is active.",
          "A later PASS clears the active block without erasing the previous failure."
        ],
        "record": "Failed wash + rewash / pass history",
        "example": "rewash",
        "photo": "decontam-07"
      },
      {
        "title": "Confirm wash at Packing",
        "icon": "list",
        "body": "Packing displays the last washer, cycle, date/time and result before the next packing stage.",
        "items": [
          "Confirm the washer cycle where the facility requires it.",
          "Permit washer/cycle corrections only to authorized roles and locations.",
          "Record the old and new value, reason, user and time for corrections."
        ],
        "record": "Confirmed wash + audited correction",
        "photo": "decontam-08"
      },
      {
        "title": "Pack & clear the basket",
        "icon": "tray",
        "body": "Scan the basket once to list eligible Separates and pack one, some or all into new assemblies.",
        "items": [
          "Create one new assembly UID per selected Separate.",
          "Leave unresolved items visible until packed, transferred, rewashed, quarantined or otherwise resolved.",
          "Only close and return the reusable basket when active quantity is zero."
        ],
        "record": "New assemblies + closed basket session",
        "photo": "decontam-09"
      }
    ],
    "photo": "decontam-overview"
  },
  {
    "id": "or",
    "title": "OR & preference cards",
    "kicker": "Requirements to the actual case",
    "intro": "Connect the procedure requirement, the scheduled case, and the assemblies selected for that case.",
    "outcome": "Distinguish what a case needs from the assemblies actually picked.",
    "icon": "case",
    "stages": [
      {
        "title": "Define requirements",
        "icon": "list",
        "body": "Preference cards hold the expected kits and quantities for a surgeon and procedure.",
        "items": [
          "Set card name, procedure, and surgeon.",
          "Choose parent kits and quantities.",
          "Save the reusable requirement card."
        ],
        "record": "Surgeon + procedure requirement",
        "photo": "or-01"
      },
      {
        "title": "Schedule the case",
        "icon": "calendar",
        "body": "Staff work from the OR calendar, schedules and picking, or a manually created case.",
        "items": [
          "Filter by date, surgeon, OR, or status.",
          "Facility settings control which case fields appear.",
          "A local HL7 interface can supply OR bookings."
        ],
        "record": "Scheduled OR case",
        "photo": "or-02"
      },
      {
        "title": "Pick to cart / OR",
        "icon": "tray",
        "body": "The pick connects a planned requirement with identifiable assemblies.",
        "items": [
          "Choose the case and the relevant requirement.",
          "Pick preference-card kits to a case cart or OR.",
          "Scan assembly UIDs onto the case."
        ],
        "record": "Case + selected assembly UIDs",
        "photo": "or-03"
      },
      {
        "title": "Record the case",
        "icon": "case",
        "body": "The actual case list records what was allocated, separately from the preference card.",
        "items": [
          "Print the case with its assigned trays.",
          "Use a scan-only OR workflow where configured.",
          "Optionally save scanned case contents as a future requirement card."
        ],
        "record": "Case allocation record",
        "photo": "or-04"
      },
      {
        "title": "Receive & count returns",
        "icon": "scan",
        "body": "The returned case is reconciled against the items actually allocated to it.",
        "items": [
          "Scan the case ID, MRN case UID, cart or case-linked assembly to open the case return.",
          "Record expected and physically received instrument counts.",
          "Keep outstanding items visible instead of treating a partial return as fully resolved."
        ],
        "record": "Case return + received / outstanding counts",
        "example": "counts",
        "photo": "or-05"
      },
      {
        "title": "Alert on missing items",
        "icon": "shield",
        "body": "A missing-item exception stays linked to the OR case and the affected instrument or tray.",
        "items": [
          "Show what is outstanding, the missing quantity and the case context.",
          "Investigate retained-in-OR, sent-elsewhere, missing or quarantined items.",
          "Record resolution, or follow the case-linked replacement need into purchasing."
        ],
        "record": "OR case + missing-item alert",
        "example": "missing",
        "photo": "or-06"
      },
      {
        "title": "Review activity",
        "icon": "chart",
        "body": "OR case reports and assembly records support subsequent review.",
        "items": [
          "Review case activity by facility and date range.",
          "Trace assemblies linked to the patient case.",
          "Print reports or export the active report as CSV."
        ],
        "record": "OR report + assembly trace",
        "photo": "or-07"
      }
    ],
    "photo": "or-overview"
  },
  {
    "id": "stock",
    "title": "Stock & distribution",
    "kicker": "Know what is available and where",
    "intro": "Follow sterile assemblies into defined locations and keep their lifecycle visible as they move.",
    "outcome": "Give staff a searchable view of sterile assembly inventory.",
    "icon": "cabinet",
    "stages": [
      {
        "title": "Define locations",
        "icon": "pin",
        "body": "Locations provide a consistent destination structure across the facility.",
        "items": [
          "Create stock areas, case carts, specialty carts, ORs, and workstations.",
          "Define area, row, shelf, and bin.",
          "Each location also receives its own UID."
        ],
        "record": "Location structure",
        "photo": "stock-01"
      },
      {
        "title": "Choose destination",
        "icon": "scan",
        "body": "Distribution starts with the place the assemblies are going.",
        "items": [
          "Scan the stock slot or select the target location.",
          "Optionally restrict work to a sterilizer load."
        ],
        "record": "Distribution target",
        "photo": "stock-02"
      },
      {
        "title": "Scan & distribute",
        "icon": "tray",
        "body": "Assembly scans connect individual sterile-complete items to that target.",
        "items": [
          "Scan one or multiple assembly UIDs.",
          "Add them to the queue and process.",
          "Move assemblies already in stock using the same path."
        ],
        "record": "Assembly location",
        "photo": "stock-03"
      },
      {
        "title": "Reconcile the slot",
        "icon": "list",
        "body": "The Set action supports stock-taking at the selected slot.",
        "items": [
          "Scan the assemblies physically present.",
          "Unscanned assemblies previously at that slot move to area-only."
        ],
        "record": "Slot reconciliation",
        "photo": "stock-04"
      },
      {
        "title": "Search inventory",
        "icon": "search",
        "body": "Stock Management provides one row per assembly UID.",
        "items": [
          "Filter by lifecycle.",
          "Search UID, kit, patient, location, or load.",
          "See patient assignment when an assembly is on a case."
        ],
        "record": "Searchable assembly inventory",
        "photo": "stock-05"
      },
      {
        "title": "Review & export",
        "icon": "chart",
        "body": "Staff can review stock and open the assembly detail for authorized changes.",
        "items": [
          "Export the current list as CSV.",
          "Use Audit detail to update patient or stock location."
        ],
        "record": "Stock extract + assembly detail",
        "photo": "stock-06"
      }
    ],
    "photo": "stock-overview"
  },
  {
    "id": "gi",
    "title": "GI Lab & endoscopy",
    "kicker": "A dedicated scope workflow",
    "intro": "Track scope identity, visit context, processing checks, competency and storage life in a separate GI Lab path.",
    "outcome": "Link each scope visit and processing cycle to its cabinet storage history.",
    "icon": "scope",
    "stages": [
      {
        "title": "Configure & register",
        "icon": "list",
        "body": "Facility setup defines visit fields, scope identifiers, checklists and cabinets.",
        "items": [
          "Register serial, alternate asset tag, name, and checklist assignment.",
          "Build cabinets with hook counts and storage life.",
          "Configure the visible TagIT visit fields."
        ],
        "record": "Scope register + GI configuration",
        "photo": "gi-01"
      },
      {
        "title": "Load & link visit",
        "icon": "scan",
        "body": "TagIT identifies the scope and records its visit context.",
        "items": [
          "Scan the hang tag, serial, alternate number, or asset tag.",
          "Enter the enabled patient / visit fields or find a prior visit.",
          "Generate Unique Visit ID from MRN + date + time when enabled."
        ],
        "record": "Scope + visit identity",
        "photo": "gi-02"
      },
      {
        "title": "Complete checks",
        "icon": "shield",
        "body": "Core processing checks and simple checklists sit within the TagIT workflow.",
        "items": [
          "Record HLD, leak and channel responses.",
          "Complete the assigned TagIT-only checklist.",
          "Auto-clock checklist steps where configured."
        ],
        "record": "Processing checks + step times",
        "photo": "gi-03"
      },
      {
        "title": "Verify competency",
        "icon": "list",
        "body": "Optional full competency templates support a more detailed SOP walkthrough.",
        "items": [
          "Walk through groups and steps.",
          "Record cycle start/end, pass/fail, and an optional docket.",
          "Return to TagIT for the hang-tag and cabinet workflow."
        ],
        "record": "Full competency result",
        "photo": "gi-04"
      },
      {
        "title": "Save & tag",
        "icon": "tag",
        "body": "A saved visit creates a cycle record, with hang-tag availability tied to configured checks.",
        "items": [
          "Save the visit to the cycle log.",
          "Print the DYMO hang tag when required steps are complete.",
          "Identify reprocessing without recorded patient use."
        ],
        "record": "Cycle record + hang tag",
        "photo": "gi-05"
      },
      {
        "title": "Store & monitor",
        "icon": "cabinet",
        "body": "Cabinet hooks make storage position and storage life visible.",
        "items": [
          "Hang, move, or remove a scope by scan.",
          "Green / orange / red show in-life, expiring, and expired.",
          "Expired scopes require reprocessing before they can be hung again."
        ],
        "record": "Hook location + storage-life state",
        "photo": "gi-06"
      },
      {
        "title": "Reprocess & reuse",
        "icon": "scope",
        "body": "Loading a stored scope back into TagIT returns it to the processing workflow.",
        "items": [
          "Load the scope from its cabinet detail or by scan.",
          "An occupied cabinet hook can be released during loading.",
          "Repeat the visit and processing checks."
        ],
        "record": "Next scope cycle",
        "photo": "gi-07"
      },
      {
        "title": "Report & trace",
        "icon": "chart",
        "body": "GI reporting supports cycle history and facility-level review.",
        "items": [
          "Open a per-scope cycle log.",
          "Review GI Lab / scopes by surgeon, user, scope, or use type.",
          "Filter processed or reprocessed-without-use cycles and export CSV."
        ],
        "record": "GI report + cycle history",
        "photo": "gi-08"
      }
    ],
    "photo": "gi-overview"
  },
  {
    "id": "loan",
    "title": "Loan sets & implants",
    "kicker": "Receive to vendor sign-out",
    "intro": "Receive loan sets, photograph each tray and layer, follow processing and use, then document shipping contents for comparison and billing review.",
    "outcome": "Connect received loan sets with their processing and return records.",
    "icon": "loan",
    "stages": [
      {
        "title": "Plan the arrival",
        "icon": "calendar",
        "body": "The loan-set calendar organizes receiving around the procedure date.",
        "items": [
          "View sets by date.",
          "Filter by surgeon when needed."
        ],
        "record": "Loan calendar",
        "photo": "loan-01"
      },
      {
        "title": "Receive the set",
        "icon": "loan",
        "body": "Facility configuration determines which clinical and scheduling fields appear.",
        "items": [
          "Record the enabled surgeon, procedure, date, time, MRN, and OR fields.",
          "Start the receiving record for the selected day."
        ],
        "record": "Loan receiving record",
        "photo": "loan-02"
      },
      {
        "title": "Photograph received layers",
        "icon": "camera",
        "body": "Capture receiving photos for every tray and layer in the loan set.",
        "items": [
          "Link images to the loan set, tray and layer.",
          "Retain the incoming arrangement and contents for the later shipping comparison."
        ],
        "record": "Receiving images by tray / layer",
        "photo": "loan-03"
      },
      {
        "title": "Identify & pack",
        "icon": "tag",
        "body": "Default receiving uses a reusable LOANSET tag before assembly creation in Packing.",
        "items": [
          "Scan the semi-permanent LOANSET tag.",
          "Rescan in Packing to create the assembly and label.",
          "Where configured, receiving creates assemblies immediately instead."
        ],
        "record": "Loan tag + assembly UID",
        "photo": "loan-04"
      },
      {
        "title": "Process & use",
        "icon": "machine",
        "body": "Loan sets use the regular packing, sterilization and case workflows.",
        "items": [
          "Keep packing on the Packing screen.",
          "Apply configured biological requirements.",
          "Connect use and return to the clinical workflow."
        ],
        "record": "Processing + case history",
        "photo": "loan-05"
      },
      {
        "title": "Record return",
        "icon": "scan",
        "body": "The loan lifecycle includes the post-use processing path before return.",
        "items": [
          "Use the relevant Decontam and sterilization workflows.",
          "Keep processing records attached to identified assemblies."
        ],
        "record": "Return-processing history",
        "photo": "loan-06"
      },
      {
        "title": "Photograph shipping layers",
        "icon": "camera",
        "body": "Capture the corresponding tray and layer images before the loan set is shipped back.",
        "items": [
          "Document outgoing contents per tray and layer.",
          "Keep receiving and shipping evidence linked to the same loan set."
        ],
        "record": "Shipping images by tray / layer",
        "photo": "loan-07"
      },
      {
        "title": "Compare contents & consumption",
        "icon": "search",
        "body": "Compare the receiving and shipping images to evaluate consumed, missing or changed items.",
        "items": [
          "Review corresponding layers and trays.",
          "Retain the comparison as reference for consumption evaluation and billing review."
        ],
        "record": "Loan-set comparison + billing reference",
        "photo": "loan-08"
      },
      {
        "title": "Sign out",
        "icon": "loan",
        "body": "Loan-set sign-out completes the vendor return workflow.",
        "items": [
          "Confirm HLD when required at shipping.",
          "Sign out the loan set.",
          "Release the reusable LOANSET tag."
        ],
        "record": "Loan sign-out",
        "photo": "loan-09"
      }
    ],
    "photo": "loan-overview"
  },
  {
    "id": "mobile",
    "title": "Mobile photos & evidence",
    "kicker": "Capture at the point of work",
    "intro": "Use a mobile phone to capture kit images, sterilizer till-roll printouts, and loan-set photographs by tray and layer at receiving and shipping.",
    "outcome": "Keep the image with the correct kit, load or loan-set record so staff can review the evidence in context.",
    "icon": "camera",
    "photo": "mobile-overview",
    "stages": [
      {
        "title": "Capture a kit image",
        "icon": "camera",
        "body": "Photograph a surgical kit using a mobile phone.",
        "items": [
          "Capture the kit and its instrument layout clearly.",
          "Use the image as a visual reference for that kit."
        ],
        "record": "Mobile kit photograph",
        "photo": "mobile-01"
      },
      {
        "title": "Assign the kit photo",
        "icon": "tray",
        "body": "Keep the captured photograph associated with the corresponding kit.",
        "items": [
          "Identify the correct kit before assigning the image.",
          "Make the kit image available as a reference within its workflow."
        ],
        "record": "Kit + reference image",
        "photo": "mobile-02"
      },
      {
        "title": "Capture the till roll",
        "icon": "camera",
        "body": "Photograph the sterilizer\u2019s physical till-roll printout using the mobile phone.",
        "items": [
          "Capture the cycle printout clearly, including its relevant sections.",
          "Check the image is readable before assigning it."
        ],
        "record": "Sterilizer till-roll image",
        "photo": "mobile-03"
      },
      {
        "title": "Attach to the load",
        "icon": "machine",
        "body": "Assign the captured till-roll image to the corresponding sterilizer load record/report.",
        "items": [
          "Select the correct load.",
          "Keep the image with that load\u2019s supporting printout documentation."
        ],
        "record": "Load + captured cycle printout",
        "photo": "mobile-04"
      },
      {
        "title": "Receive: tray & layer photos",
        "icon": "loan",
        "body": "At loan-set receiving, document the contents of each tray and its individual layers.",
        "items": [
          "Identify the loan set, tray and layer for each photograph.",
          "Capture each layer before it is moved into the processing workflow."
        ],
        "record": "Receiving photo set by tray / layer",
        "photo": "mobile-05"
      },
      {
        "title": "Ship: tray & layer photos",
        "icon": "camera",
        "body": "Before return shipping, photograph the corresponding trays and layers again.",
        "items": [
          "Record the outgoing condition and contents.",
          "Keep the shipping photographs linked to the same loan set, tray and layer."
        ],
        "record": "Shipping photo set by tray / layer",
        "photo": "mobile-06"
      },
      {
        "title": "Compare & evaluate",
        "icon": "search",
        "body": "Review receiving and shipping images to evaluate what was consumed, missing or changed.",
        "items": [
          "Compare the corresponding tray and layer views.",
          "Evaluate discrepancies and items consumed using the recorded evidence.",
          "Keep the photographic comparison available for reference."
        ],
        "record": "Receiving-versus-shipping review",
        "photo": "mobile-07"
      },
      {
        "title": "Reference & billing review",
        "icon": "file",
        "body": "Retain the receiving and shipping evidence with the loan-set record for later reference and billing evaluation.",
        "items": [
          "Refer back to the relevant tray and layer photographs.",
          "Use the documented comparison when reviewing consumption and billing."
        ],
        "record": "Loan-set photo evidence + billing reference",
        "photo": "mobile-08"
      }
    ]
  },
  {
    "id": "purchase",
    "title": "Missing items & purchasing",
    "kicker": "Exceptions to the purchasing record",
    "intro": "Connect missing items discovered at case return, Decontam, Packing or maintenance with investigation, replacement purchasing and resolution.",
    "outcome": "Keep missing-item follow-up connected to procurement.",
    "icon": "purchase",
    "stages": [
      {
        "title": "Capture the missing-item alert",
        "icon": "shield",
        "body": "A count mismatch or missing item can be discovered against an OR case, during Decontam, at Packing or in maintenance.",
        "items": [
          "Retain case, tray/item, expected and received quantities where relevant.",
          "Record the last known location/event, user, time and reason.",
          "Indicate whether a replacement is required."
        ],
        "record": "Case / item / tray + missing-item record",
        "example": "missing",
        "photo": "purchase-01"
      },
      {
        "title": "Investigate & resolve",
        "icon": "search",
        "body": "The missing-item workflow follows the exception until it is located, replaced or otherwise closed.",
        "items": [
          "Track Investigating, Located, Replaced, Written Off, On Order and Closed.",
          "Review the linked OR case and processing history.",
          "Link replacement requirements to purchasing instead of creating an unrelated order."
        ],
        "record": "Missing-item status + resolution",
        "photo": "purchase-02"
      },
      {
        "title": "Build the request",
        "icon": "list",
        "body": "Purchasing organizes RFP and order documents by instrument and status.",
        "items": [
          "Open or build the relevant request.",
          "Work with the vendor and manufacturer records."
        ],
        "record": "RFP / order document",
        "photo": "purchase-03"
      },
      {
        "title": "Track progress",
        "icon": "purchase",
        "body": "Document and line statuses show where purchasing activity stands.",
        "items": [
          "Follow draft, sent, partial, ordered, closed, or cancelled documents.",
          "Track line states such as ordered, PO attached, or not available."
        ],
        "record": "Document + line status",
        "photo": "purchase-04"
      },
      {
        "title": "Keep the evidence",
        "icon": "file",
        "body": "Order and pricing records keep supporting details with the transaction.",
        "items": [
          "Attach PO or invoice PDFs.",
          "Review instrument pricing history.",
          "Print or open the purchasing document."
        ],
        "record": "PO / invoice + price history",
        "photo": "purchase-05"
      },
      {
        "title": "Link replacement & closure",
        "icon": "file",
        "body": "Keep the replacement transaction connected to the original missing-item event.",
        "items": [
          "Retain the RFP/PO, expected arrival and received replacement.",
          "Record the final disposition and resolution of the missing-item case."
        ],
        "record": "Missing event \u2192 order \u2192 replacement \u2192 closure",
        "photo": "purchase-06"
      }
    ],
    "photo": "purchase-overview"
  },
  {
    "id": "maintenance",
    "title": "Maintenance & repair",
    "kicker": "Out of service to return",
    "intro": "Keep an open repair record connected to the kit and prevent it from returning to packing too early.",
    "outcome": "Link service status, the vendor repair loop, and maintenance cost review.",
    "icon": "tool",
    "stages": [
      {
        "title": "Identify the kit",
        "icon": "scan",
        "body": "Maintenance starts with an identified child kit.",
        "items": [
          "Search or scan the kit.",
          "Confirm that it is out of service."
        ],
        "record": "Kit + service record",
        "photo": "maintenance-01"
      },
      {
        "title": "Control availability",
        "icon": "shield",
        "body": "An open maintenance record removes that kit from Packing.",
        "items": [
          "Record the repair details.",
          "Keep the kit unavailable for packing while maintenance is open."
        ],
        "record": "Out-of-service state",
        "photo": "maintenance-02"
      },
      {
        "title": "Manage vendor loop",
        "icon": "loan",
        "body": "Repair records follow the kit through shipping and receiving.",
        "items": [
          "Use Records to review maintenance history.",
          "Record Ship out and Receiving."
        ],
        "record": "Vendor repair history",
        "photo": "maintenance-03"
      },
      {
        "title": "Set counters",
        "icon": "clock",
        "body": "Kit maintenance setup supports configurable counters and warning points.",
        "items": [
          "Set counter start and warning threshold.",
          "Review current remaining and optional default serial."
        ],
        "record": "Maintenance counter setup",
        "photo": "maintenance-04"
      },
      {
        "title": "Return to service",
        "icon": "tool",
        "body": "Closing maintenance returns the kit to service.",
        "items": [
          "Close the record when the kit is back.",
          "The kit becomes available for packing and the counter resets."
        ],
        "record": "Closed repair + service availability",
        "photo": "maintenance-05"
      },
      {
        "title": "Review costs",
        "icon": "chart",
        "body": "Maintenance reports support date-range cost review.",
        "items": [
          "Choose facility and report dates.",
          "Review maintenance costs and export reporting data."
        ],
        "record": "Maintenance cost report",
        "photo": "maintenance-06"
      }
    ],
    "photo": "maintenance-overview"
  },
  {
    "id": "trace",
    "title": "Audit & recall search",
    "kicker": "From an identifier to its history",
    "intro": "Review assembly details and locate related records by kit, load, patient, or stock location.",
    "outcome": "Make the assembly and its related clinical and processing records easier to find.",
    "icon": "search",
    "stages": [
      {
        "title": "Start with a reference",
        "icon": "scan",
        "body": "Recall search accepts several identifiers rather than a single starting point.",
        "items": [
          "Search by assembly UID, kit, code, lot, load, sterilizer, patient, or location."
        ],
        "record": "Search reference",
        "photo": "trace-01"
      },
      {
        "title": "Narrow the results",
        "icon": "search",
        "body": "Lifecycle filters help focus the assemblies under review.",
        "items": [
          "Filter packed, loaded, sterilized, quarantine, distributed, recalled, or in-use records."
        ],
        "record": "Matching assemblies",
        "photo": "trace-02"
      },
      {
        "title": "Open the assembly",
        "icon": "tray",
        "body": "Assembly detail brings the identified record into focus.",
        "items": [
          "Open from Audit, Packing, the packed queue, Recall, or Quarantine.",
          "Review the assembly details."
        ],
        "record": "Assembly detail",
        "photo": "trace-03"
      },
      {
        "title": "Follow the context",
        "icon": "case",
        "body": "Patient and location references explain allocation and movement.",
        "items": [
          "Patient identifies allocation to an OR case.",
          "Location can identify a pack station, sterilizer load, or stock slot."
        ],
        "record": "Patient / load / location context",
        "photo": "trace-04"
      },
      {
        "title": "Review & extract",
        "icon": "file",
        "body": "Search results and audit tables can be exported for follow-up.",
        "items": [
          "Export recall-search results as CSV.",
          "Export the Audit table.",
          "Use authorized assembly detail for patient or location corrections."
        ],
        "record": "Trace results + audit extract",
        "photo": "trace-05"
      }
    ],
    "photo": "trace-overview"
  },
  {
    "id": "reports",
    "title": "Reporting & visibility",
    "kicker": "Operational records to usable reports",
    "intro": "Explore reporting across processing, staff activity, GI, OR, exceptions, turnaround and maintenance.",
    "outcome": "Review operations by facility, time period and reporting topic.",
    "icon": "chart",
    "stages": [
      {
        "title": "Set the scope",
        "icon": "pin",
        "body": "Reports begin with the facility and date range.",
        "items": [
          "Select facility, From and To.",
          "Refresh the report data."
        ],
        "record": "Facility + reporting period",
        "photo": "reports-01"
      },
      {
        "title": "Choose the view",
        "icon": "chart",
        "body": "The report workspace groups related operational views.",
        "items": [
          "Overview, packed trays, staff / packing, GI Lab / scopes, and OR cases.",
          "Exceptions, turnaround, maintenance, detailed packing, and processed trays.",
          "Productivity by category and packed queue purge."
        ],
        "record": "Selected reporting view",
        "photo": "reports-02"
      },
      {
        "title": "Review operations",
        "icon": "list",
        "body": "Each report presents a different part of the recorded workflow.",
        "items": [
          "Review activity, exceptions, or turnaround for the selected period.",
          "Use the relevant report rather than treating every record as the same lifecycle.",
          "Review outstanding case returns, count mismatches, missing-item states and washer pass/fail history in the configured reporting scope."
        ],
        "record": "Operational report",
        "photo": "reports-03"
      },
      {
        "title": "Explore analytics",
        "icon": "search",
        "body": "Reporting Analytics opens the full-screen reporting workspace.",
        "items": [
          "Access the report tabs in a larger workspace.",
          "Review the available data catalog."
        ],
        "record": "Analytics workspace",
        "photo": "reports-04"
      },
      {
        "title": "Print or export",
        "icon": "file",
        "body": "Report outputs support review outside the on-screen workspace.",
        "items": [
          "Print the active report with the browser print dialog.",
          "Export the active report tab as CSV."
        ],
        "record": "Printed report / CSV",
        "photo": "reports-05"
      }
    ],
    "photo": "reports-overview"
  },
  {
    "id": "admin",
    "title": "Configuration & connections",
    "kicker": "Fit the facility workflow",
    "intro": "Set up kit identities, locations, printers, machines, roles and the local interface context.",
    "outcome": "Support facility-specific workflows with structured setup and permissions.",
    "icon": "settings",
    "stages": [
      {
        "title": "Structure the catalogue",
        "icon": "tray",
        "body": "Facility setup defines kits, instruments, separates and parent / child relationships.",
        "items": [
          "Maintain bills of materials and kit identifiers.",
          "Deactivate or reinstate child kits while retaining history.",
          "Map catalogue items to facility kits and preference cards."
        ],
        "record": "Facility kit catalogue",
        "photo": "admin-01"
      },
      {
        "title": "Define the environment",
        "icon": "pin",
        "body": "Location and equipment setup provides the choices used in daily workflows.",
        "items": [
          "Create stock slots, carts, ORs, and workstations.",
          "Configure sterilizer types, cycles, machines and biological requirements.",
          "Register printers and semi-permanent labels.",
          "Configure washers, production/test cycles and washer numbering."
        ],
        "record": "Locations + equipment configuration",
        "photo": "admin-02"
      },
      {
        "title": "Configure workflows",
        "icon": "settings",
        "body": "Facility Case data settings control visible fields and selected permissions.",
        "items": [
          "Show or hide OR, GI visit, and loan-set fields.",
          "Configure staff permissions for cycle and load-number changes.",
          "Choose applicable facility workflow options.",
          "Enable direct tray-to-washer, wash tags/baskets, multi-case baskets and washer correction permissions as required."
        ],
        "record": "Facility workflow settings",
        "photo": "admin-03"
      },
      {
        "title": "Set access",
        "icon": "shield",
        "body": "User roles determine the menus and actions available to each person.",
        "items": [
          "Assign facility and permitted roles.",
          "Use built-in roles or admin-managed custom roles.",
          "Menus follow the signed-in user\u2019s permissions."
        ],
        "record": "Role-based access",
        "photo": "admin-04"
      },
      {
        "title": "Review HL7 intake",
        "icon": "file",
        "body": "The local HL7 interface supplies patient updates and OR bookings.",
        "items": [
          "Review PID patient messages and SUI booking messages.",
          "Cases created from bookings appear on the OR calendar."
        ],
        "record": "Interface intake log",
        "photo": "admin-05"
      },
      {
        "title": "Maintain the setup",
        "icon": "settings",
        "body": "Saved equipment and configuration support ongoing operation.",
        "items": [
          "Deactivate machines or cycles for new loads while retaining saved names.",
          "Use Version updates to review releases by area."
        ],
        "record": "Configuration + release context",
        "photo": "admin-06"
      }
    ],
    "photo": "admin-overview"
  }
]