PHARMACY NETWORK CONNECTORS
Dispensing, Fulfillment & Status Updates
6 of 7Connect pharmacy systems, ePrescription networks, medication catalogues and fulfillment workflows across the medication pathway.
MedicationDispensePreparationPartial FillSubstitutionCollectionDeliveryStatus Events
End-to-End Dispensing
Track preparation through patient receipt.
Real-Time Status Sync
Synchronize statuses across PMS and Mediloop.
Flexible Fulfillment
Support collection and delivery workflows.
Safe & Compliant
Handle partial fills, substitutions and cancellations with traceability.
Pharmacy Dispensing & Fulfillment Workflow
1
Accept
Pharmacy accepts prescription
2
Prepare
Prepare items and verify stock
3
Validate
Pharmacist validation/substitution when permitted
4
Dispense
Full or partial dispense; update inventory
5
Fulfill
Collection or tracked delivery
6
Update
MedicationDispense and patient/source synchronization
Prescription & Order Statuses
| Status | Meaning | Typical event |
|---|---|---|
| received | Prescription received by pharmacy | prescription.received |
| accepted | Accepted for preparation | prescription.accepted |
| preparing | In preparation | prescription.preparing |
| ready_for_collection | Ready for patient | fulfillment.ready |
| out_for_delivery | Handoff to delivery | delivery.dispatched |
| dispensed | Full dispense completed | dispense.completed |
| partially_dispensed | Some items remain | dispense.partial |
| cancelled | Cancelled with reason | prescription.cancelled |
Status Updates
Events are idempotent and include correlation/source identifiers
Map vendor status to stable Mediloop workflow while preserving original value
Reconcile missing/out-of-order callbacks
Expose status timestamps and actor/system provenance
Do not infer patient receipt from delivery dispatch
Substitution & Partial Fills
Validate substitution against prescription and applicable pharmacy rules
Record prescribed vs dispensed product
Include pharmacist decision/reason where required
Track remaining quantity/items after partial fill
Create additional dispense events rather than overwriting prior dispense
Notify patient/prescriber when policy requires
APIs & Examples
fhirCopy
{
"resourceType":"MedicationDispense",
"status":"completed",
"subject":{"reference":"Patient/123"},
"authorizingPrescription":[{"reference":"MedicationRequest/rx-456"}],
"whenHandedOver":"2026-09-06T10:30:00Z"
}Simplified example. Real dispense data, substitution, performer and national requirements must follow applicable profiles and PMS evidence.
Error Handling
| Condition | Handling |
|---|---|
| Duplicate status event | Idempotent no-op/update evidence only |
| Out-of-order event | Preserve source event; reconcile state transition |
| Partial dispense conflict | Use authoritative PMS dispense records |
| Delivery failure | Keep dispense/fulfillment states distinct |
| Cancellation after dispense | Do not erase dispense; create correction/return workflow if applicable |
Best Practices
PMS is authoritative for local dispense evidence
Use FHIR MedicationDispense for interoperable clinical record
Keep fulfillment logistics separate from clinical dispense status
Preserve substitution/partial-fill lineage
Reconcile inventory after each final dispense/cancellation
Monitor event delays and manual exceptions
Developer Integration Surface
| Surface | Operation / resource | Use | Status |
|---|---|---|---|
| FHIR | MedicationDispense | Clinical dispense record | FHIR |
| Status API | accept / prepare / ready / dispense | Mediloop workflow | Connector-backed |
| Events | status and fulfillment updates | Async synchronization | Evolving |
| Delivery API | shipment / tracking / proof of delivery | Fulfillment logistics | Provider-specific |
Next Steps
Map PMS status model
Implement MedicationDispense mapping
Add partial/substitution rules
Connect collection/delivery status
Test out-of-order/duplicate/failure cases