Kulcare Docs

Hospital Case Stock QA

Manual acceptance checks for U10 internal inventory consumption and recovery.

Record the commit, environment, tenant, facility, user role, and command keys for each run. Use synthetic patients and approved test stock. Do not use real clinical care to test corrections. These unchecked steps are acceptance work, not a claim that staging QA has passed. Read the developer guide for command rules.

Prepare

  • Apply the Inventory, U2, and U10 migrations. Confirm the app uses HTTP mode.
  • Prepare a store, OT location, active item, and an approved source receipt of 10 base units.
  • Prepare two cases in the facility. Use an approved test Inventory readiness rule.
  • Prepare a full stock operator, a view-only user, and a user without Inventory access.
  • Keep Billing posting and retail pharmacy outside this test.

Requirements And Navigation

  • Open Inventory directly. Search by item, case number, and patient. Clear each filter.
  • Open Inventory from Case Detail. Confirm the URL and case filter retain that case after reload.
  • Add a requirement for 4 units with a reason. Confirm the requirement, actor, and command history.
  • Test item, balance, location, hold, custody, and history pagination with more than one page.
  • Change facility and profile. Confirm the former case, stock, and editor do not remain active.
  • Test loading, empty, denied, and failed requests. A failed source must not appear as zero stock.
  • Check the screen at desktop and narrow mobile widths. Confirm fields, controls, and long names fit.

Stock Lifecycle

  • Reserve 4 units with an explicit expiry. Confirm eligible held quantity is 4; on-hand stays 10.
  • Issue the hold to the OT. Confirm issued custody, original hold lineage, and no consumption yet.
  • Record actual use of 2 units with a time and reason. Confirm source consumption and case history agree.
  • Return the 2 unused units to the store. Confirm custody is zero and confirmed consumption remains 2.
  • Attempt to return more than remaining custody. Confirm rejection and unchanged stock.
  • Test damaged or expired unused material. Confirm source quarantine rules, not usable-stock inflation.
  • Test fractional base units on an item that permits them. Confirm exact decimal quantities.
  • Test another case's hold or custody and another facility's stock ID through the API. Confirm rejection.

Failures And Recovery

  • Record actual use greater than available stock. Confirm pending, no confirmed source effect, and a visible obligation.
  • Receive sufficient test stock through Inventory. Reconcile the original use. Confirm one source effect and preserved original history.
  • Repeat a reconciliation. Confirm the original obligation cannot post twice.
  • Test a stale reservation version. Select the current allocation for reconciliation; retain the original actual quantity and time.
  • Interrupt the response after submission. Retry the same key. Confirm no duplicate effect.
  • Reload with an uncertain submission. Use Check saved result. If absent, enter the original reason and retry the same command.
  • Open protected command history and record the stable command key for manual recovery. A browser-session reset must not lead to a duplicate posting.
  • Confirm a failed lookup does not unlock a replacement-key command. Confirm session storage contains no free-text reason or patient name.
  • Submit a changed payload with the same key. Confirm a conflict, not a second stock effect.
  • Enable the source write stop. Confirm actual use is unconfirmed and remains recoverable after the stop clears.
  • Inject a Clinical audit failure in a test environment. Confirm the source write rolls back.
  • Submit competing uses from two browser sessions. Confirm no negative physical stock; retain the unconfirmed use.

Readiness And Cancellation

  • Confirm only eligible current holds and confirmed movement clear the linked Inventory rule.
  • Let a hold expire without running the expiry job. Refresh Case Detail and the case list; both must stop reporting ready.
  • Rebind an approved new policy version. Confirm an old need or hold cannot clear it.
  • Attempt to approve an Inventory rule with manual review or override. Confirm rejection; U10 does not implement those Inventory review actions.
  • Cancel the OT booking with a hold present. Confirm remaining holds release, but consumed material is not restored.
  • Revoke stock-write permission before cancellation. Confirm cleanup remains pending and visible. Restore authority and release the hold.
  • Cancel with outstanding issued stock. Confirm an explicit unused return is still required.

Permissions And Corrections

  • A view-only user can read stock, but cannot add, reserve, issue, consume, release, or return.
  • A user without Inventory access cannot read through navigation or a direct API request.
  • Suspend the tenant. Confirm reads remain available where allowed and all writes fail.
  • Revoke permission after a successful command. Confirm an identical POST retry checks current authority.
  • Remove adjustment authority. Confirm normal use remains available and recording-error corrections fail.
  • Correct one erroneous consumed unit. Confirm the ledger changes once and original use history remains unchanged.
  • Void an erroneous unconfirmed use with a reason. Confirm only the obligation closes, with no stock increase.
  • Disable the Inventory module. Confirm direct routes and source-linked case actions cannot bypass the setting.
  • Verify activity audit and PHI access records. Confirm generic Inventory audit contains no patient or case identifiers.

Sign-Off

  • Attach automated test, review, and full-PR CI evidence.
  • Complete clinical policy and source pilot approvals.
  • Record product and QA acceptance. Keep the tracked issue open for QA to close.

On this page