Walking One Protocol End to End: RMP-PHARM-001 Medicine Barcode Check
Also: pharmacy robot protocol walkthrough · RMP-PHARM-001 explained · medicine barcode check robot · mismatch quarantine CMO override
Distance from EarthIsolation & ConfinementPharmacologyIn-flightLEO long-durationCislunar / Lunar orbitLunar surfaceMars transit & surfacePublicStudentClinicianResearcher
- RMP-PHARM-001 is a conceptual, educational protocol: after a human has already ordered a medicine, the robot may fetch the sealed package, match it to every field of that order by barcode, confirm the recipient, and hand over only a full MATCH TO ORDER. It never chooses, recommends, doses or gives a medicine. ◆◆◆◆ High · E
- After any mismatch, failed scan or failed recipient check, quarantine is the default. The robot never hands the item over unprompted, and never to anyone other than the crew medical officer. ◆◆◆◆ High · E
- It may hand a NOT VERIFIED item to the CMO only on an explicit two-step override request: the CMO states the override and reason, then confirms. That hand-over is logged (timestamp, CMO identity, reason, mismatched fields, order, barcode) and flagged to the flight surgeon. ◆◆◆◆ High · E
- A match is not a clinical safety check. Allowed language is MATCH TO ORDER (not a dose, interaction or allergy review). Banned: verified safe, safe to take, OK to give, MATCH alone, or any diagnosis. ◆◆◆◆ High · E
- In an emergency where seconds matter, the crew take items directly and the robot reconciles inventory afterward. This protocol is not for clinical use. ◆◆◆◆ High · E
Proposed certainty (◆ High → ◇ Very low) and evidence-type tags: F flight · A analog · M model/animal · C computational · E expert/operational/standards. AI-proposed, pending reviewer confirmation. How to read the grades.
Why walk a pharmacy protocol
Part 1 framed autonomy rungs and a 13-part protocol skeleton [11]. Part 2 walked an imaging assist protocol end to end [12]. Part 3 explained validation and who signs off — including the library’s standing pharmacy rule: mismatch → quarantine by default [13][14].
This Part 4 follows one pharmacy draft from start to finish: RMP-PHARM-001, Fetch a medicine a human has prescribed and match it to the order by barcode (v0.7, AI-assisted clinical and source review on the protocol itself; conceptual; not for clinical use) [1].
The protocol’s job is narrow. A human has already decided on a medicine. The robot fetches the sealed package, matches it to every field of that order, confirms the recipient, and either hands over a full match or quarantines the item. Choosing, recommending, dosing and giving the medicine stay with people.
Earth barcode systems cut many administration errors but do not eliminate them, and workarounds such as proxy scanning undermine them [3][4]. Exploration missions can outlast typical medication expiry dates, so expiry and storage checks matter alongside the order match [6]. Those facts motivate the protocol; they do not make this article operational guidance.
The cast: who decides what
| Role | In this protocol | Must never… |
|---|---|---|
| Flight surgeon (ground) | Medical authority for every run [1][7]. May uplink orders when the link allows; reviews override flags and logs [1]. | Hand medical authority to the robot. |
| Crew medical officer (CMO) | Onboard lead under delegated care; enters or confirms the order; starts the run; decides whether and how to give the medicine after hand-over; may request a logged two-step override for a NOT VERIFIED item [1][7]. | Leave a mismatched item treated as verified; accept an override without the two-step confirm and reason. |
| Prescriber | Flight surgeon, or the CMO under the onboard checklist [1]. | Ask the robot to choose or recommend a medicine. |
| Recipient | Crewmember named on the order; identity confirmed at hand-over [1]. | Receive a NOT VERIFIED item from the robot (only the CMO may take one, via override). |
| Robot | Read-back, fetch, field-by-field barcode match, recipient check, quarantine, inventory update; max autonomy rung 2 (supervised) [1][15]. | Diagnose; give drug advice; open packaging; proxy-scan; hand over a mismatch unprompted or to anyone but the CMO; say “safe to take” [1]. |
On commercial flights, “flight surgeon” and “CMO” mean the operator’s designated medical authority and trained onboard responder. If no trained responder is aboard, this protocol is not used [1][16]. NASA programs plan for two CMOs per vehicle [8].
Communication delay: orders stay human
Unlike RENAL-001’s live-vs-store-and-forward imaging choice, this protocol does not wait on the ground to match an item [1][10]:
- Low Earth orbit: the flight surgeon can uplink orders; inventory syncs with the ground.
- Loss of link: only the robot pauses; crew care never waits for the link or the robot. On the CMO’s confirmation the robot works from the local inventory copy; logs and overrides sync at the next contact [1].
- Mars-class delay: all orders are entered onboard; inventory, expiry, override and resupply data go to the ground as packages [1][10].
Preconditions (nothing is fetched until these are true)
Encoded as preconditions [1][2]:
- PRE-1 — A complete human order exists: prescriber, crewmember, medicine, strength, dose form, quantity and ordered time window (
order.complete == true). - PRE-2 — The CMO started the run (
human_start == true) [V2 10174]. - PRE-3 — Inventory synced (or local copy in use with CMO confirmation); barcode and crew-ID scanners self-tested [V2 10161].
- PRE-4 — Not an emergency where seconds matter: in that case the crew take items directly and the robot logs afterward (the protocol’s emergency block adds that it reconciles inventory) [1].
Consent to the medicine itself is a CMO responsibility, outside the robot’s role. The CMO confirms the order on read-back; the CMO can cancel the fetch at any time and the item returns to stowage [1].
Step-by-step: what the robot does
Actors in the YAML are crew or robot [1].
| Step | Actor | Action |
|---|---|---|
| S1 | Crew | CMO enters the order, or confirms one uplinked by the flight surgeon. |
| S2 | Robot (rung 2) | Read the order back aloud and on screen; CMO confirms. |
| S3 | Robot | Find stowage location; retrieve the sealed package without opening it [V2 7052]. |
| D1 | Robot | Item found where inventory says, in the expected quantity? If not → flag discrepancy; ask the CMO. |
| S4 | Robot | Scan the item’s own barcode; compare every field (see below). Expiry or storage problems show as MISMATCH before any hand-over. |
| D2 | Robot | Every check matched? Yes → continue. No / cannot verify → HARD STOP, quarantine (see mismatch path). CMO two-step override → S7. |
| S5 | Robot | Confirm recipient identity (crew ID scan, or CMO voice) against the crewmember on the order. |
| D3 | Robot | Recipient matches? Yes → S6. No / not confirmed → HARD STOP, quarantine. CMO two-step override → S7. |
| S6 | Robot | Only after a full match: show “MATCH TO ORDER. Not a dose, interaction or allergy review.” and hand the item to the CMO. |
| S7 | Robot | Override path only (details below). |
| S8 | Crew | CMO checks the item by eye and decides whether and how to give it (outside the robot’s role). |
| S9 | Robot | Log the fetch and every check; update inventory; flag low stock [V2 7059]. |
| S10 | Robot | Return unused or rejected items to stowage; quarantined items stay in the quarantine bin. |
Fields the robot must match (verification.fields) [1]: recipient identity, crewmember on the order, medicine, strength, dose form, quantity, ordered time window, expiry, storage, and human-entered record flags (for example allergy flags entered by humans — the robot does not perform a clinical allergy review).
Language the robot is allowed to use: “MATCH TO ORDER (recipient, medicine, strength, form, quantity, time window, expiry, storage). Not a dose, interaction or allergy review.”; “MISMATCH: <fields>. NOT VERIFIED. Quarantined.”; “CANNOT VERIFY: <reason>. NOT VERIFIED. Quarantined.”; and at an override hand-over, “NOT VERIFIED - MISMATCH: <fields>. Override by CMO logged.” Never: “normal”, “all clear”, “MATCH” alone, “verified safe”, “safe to take”, “OK to give”, “recommended”, “use instead”, or any diagnosis [1].
The mismatch path: quarantine, then optional logged override
This is the standing library rule Part 3 pointed at, written out in the YAML [1][13][14]:
- Default after any mismatch, failed scan, failed recipient check, or check that cannot be done: hard stop. Seal the item in a labeled NOT VERIFIED bag; place it in the quarantine bin. No hand-over. The robot never hands the item over unprompted [1].
- Who may receive a NOT VERIFIED item: the CMO only — never the recipient, never another crewmember [1].
- Explicit CMO override (two steps): (a) the CMO states “override” and the reason; the robot reads back the mismatched fields and the reason; (b) the CMO confirms in a separate, deliberate step (second spoken confirmation or confirm control). The robot confirms the CMO’s identity before releasing the item [1].
- Log every override: timestamp, CMO identity, reason, mismatched fields, order ID, item barcode [1].
- Flag the flight surgeon at once; if the link is down, queue and send at the next contact [1].
- Speak and show at hand-over: “NOT VERIFIED - MISMATCH: <fields>. Override by CMO logged.” — never language that sounds like the item is verified or safe [1].
Gripper release to a person is blocked unless all checks passed, or the identified CMO completed that two-step override and the log entry was written (safety_limits L1–L2) [1]. Proxy scanning (any label other than the item’s own package) is not allowed (L3) [1][5]. Scan failures follow the same quarantine default; the CMO uses the pre-approved escalation process (verify by eye against the order; a second crewmember when available is marked in the YAML as a design suggestion, not from the cited source); never scan a substitute label [1][5].
Whether an expired or out-of-storage item may be used is a CMO and flight surgeon decision — not the robot’s [1][6].
What the robot must never do (lockouts)
Encoded as robot_lockouts / roles.robot_may_not / scope.locked_out and echoed in the library’s shared safety rules [1][14]:
- Never diagnose.
- Never give drug or fluid advice; never suggest a medicine, dose or alternative.
- Never start, stop or adjust oxygen or any medicine.
- Never self-start or self-restart.
- Never change its own protocol thresholds or limits.
- Never hand over a mismatched item as “verified”.
- Never hand over a NOT VERIFIED item unprompted, or to anyone other than the CMO.
- Never accept an override without the two-step confirm, the reason and the log.
- Never say or show that an item is safe, OK or verified safe.
- Never scan anything other than the item’s own package (no proxy scanning).
- Never open packaging or handle loose tablets.
- Never give a medicine to a crewmember.
- Never delay the crew from taking an item directly in an emergency.
Controlled-medicine counts belong to RMP-PHARM-004, not this protocol [1].
Failure modes and red flags
Stop rules (stop_rules) [1]:
| ID | Trigger | Robot action |
|---|---|---|
| X1 | Patient / examined crewmember says stop or withdraws consent | Stop fetch; return to stowage (or quarantine if a check failed); tell CMO. |
| X2 | Any crewmember presses stop or takes over | Protective stop; only a human may restart. |
| X3 | Fault or force/speed/reach limit | Protective stop; hand control to CMO; log fault. |
| X4 | CMO asked to take over and does not respond | Stay stopped; call the next named crewmember [V2 7045], [V2 10173]. |
| X5 | Loss of link or delay past live-guidance limit | Only the robot pauses; crew care never waits. Continue offline only on CMO confirmation; sync later. |
| X6 | Any mismatch, failed scan, failed recipient check, or check that cannot be done | Hard stop → NOT VERIFIED quarantine; hand-over only via logged two-step CMO override (S7). |
| X7 | Order changes during the fetch | Stop; discard old order; read back the new one. |
| X8 | Medicine advice requested, or anyone but the CMO asks for a quarantined item, or override without two-step confirm and reason | Decline; route to CMO or flight surgeon; item stays in quarantine. |
Red flags (red_flags) [1]: any field mismatch including recipient (RF1); a human-entered allergy or other record flag (RF2 — hard stop; CMO and flight surgeon decide); storage temperature outside limits (RF3); every CMO override hand-over of a NOT VERIFIED item (RF4 — logged and flagged to the flight surgeon); stock below reorder level (RF5 — flag to ground). Thresholds marked <set by pharmacy lead> are intentional blanks until a human owner fills them [2].
Consent, privacy and the medical record
- Medicine consent is the CMO’s job; the robot only confirms order read-back and can cancel the fetch on CMO command [1].
- Logs are private medical data, encrypted, limited to the medical team [V1 6003], [V1 7003] [8].
- Every input, action, decision (with who decided), mismatch, quarantine, override and inventory change is time-stamped [V2 10163], [V2 10164] [9].
- Override logs must include timestamp, CMO identity, reason, mismatched fields, order and barcode, and when the flight surgeon flag was sent [1].
A delayed flight surgeon should be able to reconstruct the run without trusting soft language like “verified.”
How the YAML and schema encode the checks
The downloadable file is rmp-pharm-001.yaml, validated against the schema (schema_version: 0.3) at build time [1][2]. Useful fields for readers of the file:
max_autonomy: 2— supervised rung ceiling [15].verification.on_mismatch—hard_stop, quarantine default,unprompted_handoff: false, and the fullcmo_overridetwo-step / log /notify_flight_surgeonblock.robot_lockouts.handing_over_a_mismatched_item_as_verified— hard behavioral limit, not a prose footnote.result_language.use/.never— including the ban on “safe to take” and bare “MATCH”.steps[]S1–S10,decisions[]D1–D3,stop_rules[]X1–X8,red_flags[]RF1–RF5,safety_limits[]L1–L7.comms.loss_of_signal/comms.mars_delay— crew care never waits; orders stay onboard under delay.validation[]— simulation with seeded errors (zero false MATCH TO ORDER; zero hand-overs after a mismatch) → mock-up stowage → Earth analog → flight use under flight surgeon supervision.signoff.each_run— started by the CMO after a human order; overrides reviewed by the flight surgeon at the next contact.change_control— new versions and re-validation after patient- or medicine-touching changes; the robot never edits itself.
If a hand-over after a mismatch lacks the override logging and flight-surgeon notification fields, the schema and build reject it [1][2]. That is the point of a robot-readable pharmacy rule: humans and machines share one source of truth.
Where this sits in the library
- Full protocol page: RMP-PHARM-001 [1]
- Related: RMP-PHARM-002 (inventory / expiry / storage), RMP-PHARM-003 (dose log after a human gives a medicine), RMP-PHARM-004 (controlled-medicine count)
- Schema: protocol schema [2]
- Shared safety rules [14]
- Capabilities board (pharmacy sits under logistics and inventory) [15]
- Clinical / research background: Medical kits and drug stability, Risk atlas: medications
- Series hub: Robotic and autonomous medical care
What comes next
- Part 5 (published): Contingency autonomy for 2027–2033 — fallback rungs 4–5 when human support is unavailable or insufficient; AGI prescribe/diagnose is contingency-only and does not erase this barcode/quarantine path.
- Later (planned): other library walks (for example crew-held ultrasound variants, or further pharmacy drafts), always conceptual and educational.
- Part 1 · Part 2 · Part 3 remain the framework, imaging walk-through and validation/sign-off pieces.
Part 4 makes the pharmacy mismatch rule concrete by walking the YAML that encodes it. It does not clear any protocol for flight use.
How this article was checked
Written with AI assistance on Oct 26, 2026. Every behavioral claim about RMP-PHARM-001 was checked against the published v0.7 YAML in the site repository (verification.on_mismatch, steps S4–S7, decisions D2–D3, stop rule X6, red flag RF4, safety limits L1–L3, result language, and corrections notes for v0.2–v0.7). NASA-STD-3001 Volume 1 and Volume 2 requirement IDs match the protocol’s requirements block. Barcode literature claims follow the protocol’s cited Poon 2010, Koppel 2008 and ISMP 2024 sources. Pharmaceutical-care context follows OCHMO-MTB-012 as named in the protocol’s v0.7 correction (link path may still show the older TB-006 filename on NASA’s CDN).
No named human clinician has reviewed this Part 4 article. An independent AI-assisted pass by the Medical Research Assistant is requested. The underlying protocol RMP-PHARM-001 already carries its own AI-assisted review note (Oct 20–21, 2026).
Evidence profile
- Overall certainty
- ◆◆◇◇ Low (proposed)
- Evidence types
- E · Expert / operational / standardsA · Terrestrial analogF · Flight data
- Literature through
- 2026-10-26
Requirements referenced 19
| Requirement | Title | Plain-language meaning |
|---|---|---|
| [V1 3004] | In-mission medical care capabilities | Includes inventory monitoring and administering and managing medications (a human capability). |
| [V1 3006] | Crew Medical Officer | NASA programs plan for two CMOs per vehicle. |
| [V1 6003] | Private Medical Communications | Medical traffic to and from the ground is private. |
| [V1 7001] | Medical records kept permanently and retrievable | Records kept in retrievable form for trend analysis. |
| [V1 7003] | Crew Records Security | Medical records must be secured in handling, storage and transmission. |
| [V2 7045] | Medical Equipment Usability | Equipment usable when the usual caregiver is the patient. |
| [V2 7052] | Dedicated stowage location for relocatable items | Relocatable items have a dedicated stowage location. |
| [V2 7059] | Inventory management: track locations and quantities | Inventory system tracks locations and quantities of items. |
| [V2 10161] | Automation System Status Provision | Robot status (including self-test) shown to the operator. |
| [V2 10162] | Automation Mode Change Notification | Mode changes are announced to the operator. |
| [V2 10163] | Automation Data Availability | Data recorded, time-stamped and made available. |
| [V2 10164] | Automation System Responsibility Delineation | Show whether human or machine is expected to act. |
| [V2 10165] | Automation and Robotics Override and Shut-Down | Human can override and shut down. |
| [V2 10168] | Automation Failure Recovery | Human can take over if the robot fails. |
| [V2 10170] | Decision aids explain their reasoning | The screen shows each field compared and why it matched or not. |
| [V2 10171] | Decision aids state their limitations | Robot says when it cannot verify. |
| [V2 10172] | Automation Safe Mode | Protective action when a safety threshold is crossed. |
| [V2 10173] | Safety Default | Stay stopped if the human does not take control when asked. |
| [V2 10174] | System Initiation | Only a human starts or restarts the robot after an emergency stop. |
IDs as published in NASA-STD-3001 Vol. 1 Rev C (2023-09-15) and NASA-STD-3001 Vol. 2 Rev F (2026-07-14). NASA-STD-3001 binds NASA programs; it is not a regulation for commercial flights. Paraphrased. Standards quick reference.
References 16
- Space Medicine Foundation. RMP-PHARM-001: Fetch a medicine a human has prescribed and match it to the order by barcode (conceptual protocol v0.7; AI-assisted review). spacemedicinefoundation.org/robotic-medicine/protocols/rmp-p… Other E
- Space Medicine Foundation. Robot-readable protocol schema. spacemedicinefoundation.org/robotic-medicine/protocols/schem… Other E
- Poon EG, Keohane CA, Yoon CS, et al. Effect of bar-code technology on the safety of medication administration. N Engl J Med. 2010;362(18):1698-1707. doi:10.1056/NEJMsa0907115 PMID:20445181 Peer-reviewed A
- Koppel R, Wetterneck T, Telles JL, Karsh BT. Workarounds to barcode medication administration systems: their occurrences, causes, and threats to patient safety. J Am Med Inform Assoc. 2008;15(4):408-423. doi:10.1197/jamia.M2616 PMID:18436903 Peer-reviewed A
- Institute for Safe Medication Practices. Lack of proper escalation process for BCMA scanning failures. ISMP Medication Safety Alert! Acute Care, March 21, 2024. www.ismp.org/sites/default/files/newsletter-issues/20240321.… Other E
- NASA OCHMO. Pharmaceutical Care. Medical Technical Brief OCHMO-MTB-012 Rev B (2026). www.nasa.gov/wp-content/uploads/2023/12/ochmo-tb-006-pharmac… NASA E
- NASA OCHMO. Medical Operations. Technical Brief OCHMO-TB-044 (2025). www.nasa.gov/wp-content/uploads/2025/08/ochmo-tb-044-medical… NASA E
- NASA. NASA-STD-3001, Space Flight Human-System Standard, Volume 1: Crew Health, Revision C (2023). www.nasa.gov/wp-content/uploads/2023/11/nasa-std-3001-vol-1-… Standard E
- NASA. NASA-STD-3001, Volume 2: Human Factors, Habitability, and Environmental Health, Revision F (approved July 14, 2026), Section 10.6 Automated and Robotic Systems. standards.nasa.gov/standard/NASA/NASA-STD-3001_VOL_2 Standard E
- NASA. Mars communications disruption and delay (fact sheet, 2023 Moon to Mars Architecture Concept Review). www.nasa.gov/wp-content/uploads/2024/01/mars-communications-… NASA E
- Space Medicine Foundation. Robotic Medicine series Part 1: Could a humanoid robot be a medical crewmember? spacemedicinefoundation.org/robotic-medicine/series/humanoid… Other E
- Space Medicine Foundation. Robotic Medicine series Part 2: Walking RMP-RENAL-001 end to end. spacemedicinefoundation.org/robotic-medicine/series/walking-… Other E
- Space Medicine Foundation. Robotic Medicine series Part 3: Testing robot care in simulation and Earth analogs, and who signs off. spacemedicinefoundation.org/robotic-medicine/series/testing-… Other E
- Space Medicine Foundation. Shared safety rules for the robot-readable protocol library. spacemedicinefoundation.org/robotic-medicine/protocols/#shar… Other E
- Space Medicine Foundation. Capabilities at a glance. spacemedicinefoundation.org/robotic-medicine/capabilities/ Other E
- U.S. Code of Federal Regulations, Title 14, Part 460: Human space flight requirements. www.ecfr.gov/current/title-14/chapter-III/subchapter-C/part-… Other E
Machine-checked on 2026-10-26: each URL resolved, each DOI's title/journal/year matched via Crossref, and claims were checked against the source text (abstract or full NASA page). Human verification against full text is still required before review. NASA documents are U.S. Government works (public domain) and are summarized with attribution; journal articles are summarized, not reproduced.
Article info
- Authors
- Pending (AI-assisted)
- Reviewer
- AI-assisted draft, sources self-checked against the published RMP-PHARM-001 v0.7 YAML, NASA standards and cited barcode literature (Oct 26, 2026); Medical Research Assistant clinical/source pass requested; no named human clinician
- Last reviewed
- 2026-10-26
- Literature through
- 2026-10-26
- AI-assisted
- Yes (disclosed)
- COI
- Pending
- License
- CC BY-SA 4.0
- Use
- Educational only · Disclaimer
- Cite this version
- Pending first edition