Recalls

Open a recall on lots, quarantine stock, reach exposed patients, dispose of units, and close.

Pages: /dashboard/platform/recalls (queue from pharmacyRecallQueue), /recalls/open, and /recalls/[id].

Recall fields

recallNumber, classification (class_i, class_ii, class_iii, market_withdrawal, unverified), status (draft, active, quarantined, resolved, closed, cancelled), reason, source, sourceValidationReference, initiatedAt, closedAt, and the affected lots.

Steps

Open the recall

Choose the location, recall number, classification, reason, source, and source reference, then select the affected lots. openPharmacyRecall requires every lot to belong to the pharmacy. Exposure rows are built from dispense and sale movements on those lots.

Quarantine

quarantineRecallLots moves the remaining available stock to quantityQuarantined, writes quarantine movements, and sets the recall to quarantined.

Reach exposed patients

Each RecallExposure starts as outreach_required. Record the contact method, outcome, and notes with recordRecallExposureAction, and set the status to contacted, returned, unable_to_reach, or resolved.

Dispose of quarantined stock

disposeRecallLot takes the lot, the full quarantined quantity, and a disposition reference.

Close

closePharmacyRecall succeeds once every lot's quarantined quantity has a disposition, every sale or dispense movement has an exposure, and every exposure is returned, resolved, or unable_to_reach.

Needs canManageRecalls. See Run a recall.

On this page