{
  "$schema": "https://spacemedicinefoundation.org/robotic-medicine/protocols/schema/protocol.schema.json",
  "schema_version": "0.3",
  "version": "0.2",
  "status": "draft",
  "conceptual": true,
  "not_for_clinical_use": true,
  "max_autonomy": 2,
  "missions": [
    "leo",
    "commercial",
    "moon",
    "mars"
  ],
  "updated": "2026-10-21",
  "review": {
    "state": "reviewed-ai-assisted",
    "requested": "2026-10-21",
    "human_clinician_review": false,
    "text": "AI-assisted clinical and source review by the Medical Research Assistant, Oct 21, 2026 (batch 12 review: 15 required corrections, R1 to R15; 11 optional suggestions not applied in this version); all required corrections that apply to this protocol are applied in this version (see Corrections). No named human clinician has reviewed it. Not for clinical use.",
    "reviewed": "2026-10-21"
  },
  "fixed_rules": {
    "flight_surgeon_is_medical_authority": true,
    "cmo_acts_under_delegated_care": true,
    "human_starts_and_restarts_robot": true,
    "robot_never_diagnoses": true,
    "no_drug_or_fluid_advice_by_robot": true,
    "safe_state_on_fault_or_no_response": true,
    "lost_link_pause_then_cmo_decides": true
  },
  "robot_lockouts": {
    "diagnosis": true,
    "drug_or_fluid_advice": true,
    "starting_stopping_or_adjusting_oxygen_or_any_medicine": true,
    "self_start_or_self_restart": true,
    "changing_own_protocol_thresholds_or_limits": true,
    "handing_over_a_mismatched_item_as_verified": true
  },
  "id": "RMP-RENAL-005",
  "slug": "rmp-renal-005",
  "title": "Urinary catheter supplies and hygiene support: checked supply fetch, staging outside the hygiene area and sealed waste only (the robot never enters the hygiene area)",
  "category": "renal",
  "tier": 3,
  "rung_note": "Max rung raised from the planned 1 to 2, because the robot brings the catheter supply kit by a checked kit fetch and stages supplies at the edge of the hygiene area. It never enters the hygiene area, never looks in, and never handles a catheter or drainage bag; \"Contact with the crewmember: not allowed\".",
  "result_language": {
    "use": [
      "staged at the hygiene area edge",
      "as stated by the CMO",
      "as stated by the crewmember",
      "sent to flight surgeon",
      "opened – not restocked"
    ],
    "never": [
      "normal",
      "no problem found",
      "all clear",
      "negative",
      "any diagnosis or cause",
      "infection",
      "no infection",
      "clean",
      "enough urine",
      "too little",
      "too much",
      "draining well",
      "blocked",
      "looks fine",
      "safe",
      "mild",
      "minor"
    ]
  },
  "scope": {
    "summary": "When the CMO has placed a urinary catheter (under RMP-RENAL-002) or catheter care is under way, the robot brings the catheter supply kit by a checked kit fetch and stages it, and later supplies the crew ask for, at the staging point outside the hygiene area or privacy curtain that the CMO names. It never enters the hygiene area, its camera is off and turned away near it, and it never handles a catheter, a drainage bag or urine. On request it shows the onboard catheter-care checklist at the staging point, logs what the crew state, and carries only sealed waste bags the crew have closed. Any symptom moves to the matching care protocol.",
    "why": "Catheter care follows infection-prevention rules: keep the drainage system closed, keep the tube free of kinks, empty the bag regularly with a separate clean container, use gloves, and keep up routine hygiene without antiseptic cleaning (CDC catheter-associated urinary tract infection guideline 2009, read from search extracts only). The bag-below-the-bladder rule depends on gravity; how drainage works in weightlessness is for the onboard checklist. Privacy during use of the body waste system is a NASA requirement (V2 7022), so the robot stays outside the hygiene area and only stages supplies, as the protocol owner's brief asks. Urinary retention in flight is covered by RMP-RENAL-002 (Stepaniak 2007; OCHMO-MTB-003). The staging point, the supply list and the timing are design judgment. Open question for review: whether the robot should stage supplies at all while the crewmember is in the hygiene area, or only before and after.",
    "covers": [
      "Supplies for a catheter the CMO placed or manages (catheter packs, drainage bags, cleansing wipes, gloves), staged outside the hygiene area",
      "The onboard catheter-care checklist shown on request",
      "Sealed waste bags carried to waste stowage",
      "Retention: RMP-RENAL-002; urinary symptoms: RMP-RENAL-003; urine samples: RMP-PREV-004"
    ],
    "locked_out": [
      "Diagnosis or naming a cause",
      "Any medicine, fluid or oxygen advice; starting, stopping or adjusting oxygen",
      "Touching the crewmember",
      "Handing over any medicine outside RMP-PHARM-001, or after a MISMATCH or CANNOT VERIFY (the item stays quarantined; only the CMO can ask for it, through the RMP-PHARM-001 logged two-step override)",
      "Entering the hygiene area or the body waste compartment, or opening its curtain or door",
      "Inserting, handling, emptying or removing a catheter or drainage bag, or handling urine",
      "Any camera use in or toward the hygiene area",
      "Opening a sealed kit, supply pack or waste bag",
      "Commenting on urine volume, colour or appearance, or deciding when the bag is emptied or the catheter changed"
    ],
    "related": [
      "RMP-RENAL-002",
      "RMP-RENAL-003",
      "RMP-PREV-004",
      "RMP-INF-001",
      "RMP-INF-002",
      "RMP-PHARM-001"
    ]
  },
  "roles": {
    "medical_authority": "Flight surgeon (ground). Holds medical authority for every run.",
    "onboard_lead": "Crew medical officer (CMO), acting under delegated care; uses the pre-approved onboard checklist when there is no link.",
    "others": [
      "Second trained CMO: receives every alert and takes over if the CMO is the patient",
      "Vehicle commander: leads any cabin emergency procedure",
      "Other crew: help as the CMO or commander directs"
    ],
    "robot_may": [
      "Bring the catheter supply kit by a checked kit fetch (or an emergency fetch)",
      "Stage supplies at the staging point outside the hygiene area",
      "Show the onboard catheter-care checklist on request",
      "Log what the crew state",
      "Carry sealed waste bags to waste stowage"
    ],
    "robot_may_not": [
      "Enter or look into the hygiene area",
      "Handle a catheter, drainage bag or urine, or touch anyone",
      "Open a sealed kit, pack or waste bag",
      "Comment on urine or drainage"
    ],
    "commercial": "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. (NASA-STD-3001 requires two CMOs per vehicle for NASA programs [V1 3006]; FAA rules set no medical standards for spaceflight participants.)"
  },
  "preconditions": [
    {
      "id": "PRE-1",
      "text": "The CMO started the protocol by command for catheter supplies, or the crewmember or CMO accepted an on-screen supply prompt; a loaded schedule alone never starts it.",
      "check": "human_start == true",
      "refs": [
        "V2 10174"
      ]
    },
    {
      "id": "PRE-2",
      "text": "Robot self-test passed; kit stowage locations known.",
      "refs": [
        "V2 10161",
        "V2 7059"
      ]
    },
    {
      "id": "PRE-3",
      "text": "Robot and supplies restrained when not moving.",
      "refs": [
        "V2 7046"
      ]
    },
    {
      "id": "PRE-4",
      "text": "Link status known. The crew never wait for the robot before acting.",
      "check": "link_state in [live, delayed, down]"
    }
  ],
  "consent": {
    "standard": "The crewmember agrees to supply support and to the robot logging what the crew state. The robot never enters the hygiene area, so no consent to entry is asked.",
    "emergency": "If the crewmember cannot agree, the robot acts only on the CMO's command and still stays outside the hygiene area.",
    "withdrawal": "The crewmember can stop supply support at any time; the CMO then brings supplies by hand."
  },
  "inputs": [
    {
      "id": "IN-1",
      "name": "Supply list and staging point, set by the CMO",
      "source": "CMO",
      "required": true,
      "if_missing": "The robot brings the standard kit only on command and asks where to stage it."
    },
    {
      "id": "IN-2",
      "name": "Symptoms in the crewmember's words (cannot pass urine, a full bladder, pain, fever, blood in the urine)",
      "source": "Crewmember",
      "required": false,
      "if_missing": "Log \"no response\"; D3 applies."
    },
    {
      "id": "IN-3",
      "name": "Bag emptying times and volumes, as the crew state them",
      "source": "CMO / crewmember",
      "required": false,
      "if_missing": "Log \"not stated\"."
    },
    {
      "id": "IN-4",
      "name": "Link status and delay",
      "source": "Communications system",
      "required": true,
      "if_missing": "Treat as link down; the CMO leads under the onboard checklist."
    }
  ],
  "steps": [
    {
      "id": "S1",
      "actor": "robot",
      "rung": 2,
      "action": "Tell the flight surgeon and the CMO that catheter supply support has started (logged and sent with the next package; URGENT if any red flag is stated). Every URGENT alert goes to the CMO and the flight surgeon at the same time (queued for the flight surgeon if the link is down). If the CMO is the patient, is busy treating, or does not answer, the alert goes to the second trained CMO, or the crewmember named before flight [V1 3006]. An URGENT alert that is not acknowledged within <set by validation> seconds is repeated and sent to the next named crewmember.",
      "success": "Notice logged.",
      "refs": [
        "V1 3006",
        "V2 10174"
      ]
    },
    {
      "id": "S2",
      "actor": "robot",
      "rung": 2,
      "action": "On the CMO's command, run a checked kit fetch of the urinary catheter supply kit (sealed catheter packs, drainage bags, cleansing wipes and gloves, as the kit list states): check the kit ID and seal before hand-over, and quarantine a kit whose ID or seal does not match (no hand-over; the CMO is told). Any medicine goes only through RMP-PHARM-001. If an URGENT red flag has fired or a human states an emergency, bring it instead as an emergency fetch: This is an emergency fetch on a human command (CMO): no barcode check runs before hand-over and nothing waits for one. The robot reads the kit's own label and seal status only if that adds no delay, says \"EMERGENCY FETCH – NOT VERIFIED (CMO command)\", and \"seal not intact\" if so, and hands the kit over anyway. The fetch is logged as an override: time, who asked, the reason as stated, kit ID and seal status. It never says \"verified\".",
      "success": "Kit at the staging point after a matched ID and seal, or quarantined, or emergency fetch logged.",
      "limit": "<set by validation>",
      "refs": [
        "V2 7046",
        "V2 7059"
      ]
    },
    {
      "id": "S3",
      "actor": "robot",
      "rung": 2,
      "action": "Place the kit, and any later supply the crew ask for, only at the staging point outside the hygiene area or privacy curtain that the CMO names. Never enter the hygiene area, never open its curtain or door, and keep the camera off and turned away within the privacy zone the CMO set.",
      "success": "Supplies staged outside the hygiene area.",
      "limit": "<set by validation>",
      "refs": [
        "V2 7022"
      ]
    },
    {
      "id": "S4",
      "actor": "crew",
      "action": "The CMO or the crewmember does all catheter care under the onboard checklist: hand hygiene and gloves, a closed drainage system, a tube free of kinks, emptying the bag with a separate clean container without splashing, and routine hygiene without antiseptic cleaning.",
      "success": "Care done as stated.",
      "refs": [
        "V1 3004"
      ]
    },
    {
      "id": "S5",
      "actor": "robot",
      "rung": 2,
      "action": "On request, show the onboard catheter-care checklist on a display at the staging point, by screen or voice only. Log the bag emptying times and volumes exactly as the crew state them; the robot never reads, estimates or comments on a volume.",
      "success": "Checklist shown; entries logged or \"not stated\".",
      "refs": [
        "V1 6003"
      ]
    },
    {
      "id": "S6",
      "actor": "robot",
      "rung": 2,
      "action": "Take only sealed waste bags the crew have closed and left at the staging point to the waste stowage the CMO names, never opening them, then hold at the cleaning point until the crew have cleaned the gripper under RMP-INF-002.",
      "success": "Sealed bags stowed; gripper cleaned.",
      "refs": [
        "V2 7064",
        "V2 6063"
      ]
    },
    {
      "id": "S7",
      "actor": "robot",
      "rung": 2,
      "action": "Ask the crewmember, on screen or by voice and outside the hygiene area, whether they have trouble passing urine, a full bladder, pain, fever or blood in the urine, and log the answers word for word.",
      "success": "Answers logged or \"no response\".",
      "refs": [
        "V1 6003"
      ]
    },
    {
      "id": "S8",
      "actor": "robot",
      "rung": 2,
      "action": "After any URGENT alert: After an URGENT alert the robot does not leave on its own: it stays at its rest position in the module, with its screen and voice link available, until a human has taken over or tells it to go. It never follows, blocks or touches anyone. It keeps time-stamping what humans say they did, and repeats the alert if it is not acknowledged.",
      "success": "Robot at rest in the module until a human releases it; alert acknowledged or escalated.",
      "refs": [
        "V2 10173",
        "V1 3006"
      ]
    },
    {
      "id": "S9",
      "actor": "ground",
      "action": "The flight surgeon (or the CMO under the onboard checklist when there is no link) decides on catheter care, changes and any further care.",
      "success": "Decision logged.",
      "refs": [
        "V1 3004"
      ]
    },
    {
      "id": "S10",
      "actor": "robot",
      "rung": 2,
      "action": "Only after the CMO or flight surgeon has placed an order, run RMP-PHARM-001 for the ordered item (fetch, barcode match to every order field, recipient check). This protocol adds nothing to that check, never suggests an order, and never hands anything over outside RMP-PHARM-001.",
      "success": "RMP-PHARM-001 run logged with its result, or none ordered.",
      "refs": [
        "V2 7059"
      ]
    },
    {
      "id": "S11",
      "actor": "robot",
      "rung": 2,
      "action": "When the CMO says the event is over, run RMP-PHARM-001 reconciliation on each kit fetched: record the items the CMO or crew state were used, the remaining contents against the kit list, seal status and expiry, labelled \"inventory reconciliation after emergency use – not a check before use\". Flag the override to the flight surgeon and the pharmacy lead, and show each kit as \"opened – not restocked\" until a human restocks and reseals it.",
      "success": "Kit reconciled or shown as \"opened – not restocked\".",
      "refs": [
        "V2 7059"
      ]
    },
    {
      "id": "S12",
      "actor": "robot",
      "rung": 2,
      "action": "Send the flight surgeon one package: supplies staged, entries as stated, answers, alerts and decisions.",
      "success": "Package delivered or queued.",
      "refs": [
        "V1 6003",
        "V1 7003"
      ]
    }
  ],
  "decisions": [
    {
      "id": "D1",
      "after": "S2",
      "decided_by": "robot",
      "question": "Which kit fetch was it, and what did the checked kit fetch show?",
      "branches": [
        {
          "if": "EMERGENCY FETCH (an URGENT red flag had fired, or a crewmember or the CMO stated an emergency)",
          "then": "Hand-over already done as an emergency fetch, logged as an override; reconciled afterwards (not a check before use)."
        },
        {
          "if": "KIT ID AND SEAL MATCH",
          "then": "Hand the kit over closed; log \"KIT ID AND SEAL MATCH. Not a check of the contents.\" and the clock time."
        },
        {
          "if": "MISMATCH, seal not intact or CANNOT VERIFY",
          "then": "Shown with the reason. No hand-over under this protocol: the kit stays sealed in quarantine (the RMP-PHARM-001 default), and the robot never hands it over unprompted or to anyone but the CMO. The robot does not offer or suggest an override. Only if the CMO explicitly makes the two-step override request inside RMP-PHARM-001 can the kit go to the CMO, logged there as an override with the reason, and flagged to the flight surgeon. If the need becomes an emergency, a crewmember or the CMO states it and the emergency fetch applies.",
          "handoff": "none"
        }
      ]
    },
    {
      "id": "D2",
      "after": "S7",
      "decided_by": "robot",
      "question": "Checked after every answer and at any point in the run (even mid-question or mid-step): does any answer, reading or observation meet a red flag?",
      "branches": [
        {
          "if": "Yes",
          "then": "Stop the current question or step at once and apply the action listed for each matching red flag (URGENT alert, flag, or stop), with the answer or reading itself, never a cause. Every URGENT alert goes to the CMO and the flight surgeon at the same time (queued for the flight surgeon if the link is down). If the CMO is the patient, is busy treating, or does not answer, the alert goes to the second trained CMO, or the crewmember named before flight [V1 3006]. An URGENT alert that is not acknowledged within <set by validation> seconds is repeated and sent to the next named crewmember."
        },
        {
          "if": "No",
          "then": "Continue."
        }
      ]
    },
    {
      "id": "D3",
      "after": "S7",
      "decided_by": "robot",
      "question": "Did the crewmember answer the symptom questions, or say they want to skip them?",
      "branches": [
        {
          "if": "Yes",
          "then": "Continue."
        },
        {
          "if": "Declined explicitly (the crewmember says no to a question)",
          "then": "Log \"declined\" for that question only; the alert already sent stands."
        },
        {
          "if": "No response, or the answer does not make sense",
          "then": "URGENT: log \"no response\" (never \"declined\"); the CMO, or the second trained CMO if the CMO is the patient, checks the crewmember in person at once."
        }
      ]
    },
    {
      "id": "D4",
      "after": "S9",
      "decided_by": "ground",
      "question": "What catheter care or other care applies?",
      "branches": [
        {
          "if": "Link live",
          "then": "Flight surgeon decides; robot logs."
        },
        {
          "if": "Link down or delay too long",
          "then": "The CMO decides under the pre-approved onboard checklist; the flight surgeon reviews the log at the next contact."
        }
      ]
    },
    {
      "id": "D5",
      "after": "S10",
      "decided_by": "robot",
      "question": "What did RMP-PHARM-001 show for the ordered item?",
      "branches": [
        {
          "if": "MATCH TO ORDER",
          "then": "RMP-PHARM-001 completes its own recipient check and hand-over; this protocol only logs \"MATCH TO ORDER. Not a dose, interaction or allergy review.\" and the clock time."
        },
        {
          "if": "MISMATCH or CANNOT VERIFY on any field, or a failed scan or recipient check",
          "then": "MISMATCH or CANNOT VERIFY shown with the fields named. No hand-over under this protocol: the item stays sealed in the NOT VERIFIED bag in quarantine (the RMP-PHARM-001 default), and the robot never hands it over unprompted or to anyone but the CMO. The robot does not offer or suggest an override. Only if the CMO explicitly makes the two-step override request inside RMP-PHARM-001 can the item go to the CMO, logged there as an override with the reason and the mismatched fields, and flagged to the flight surgeon.",
          "handoff": "none"
        }
      ]
    }
  ],
  "stop_rules": [
    {
      "id": "X1",
      "trigger": "The patient (or the crewmember being examined) says stop, or withdraws consent",
      "action": "Robot stops all motion at once, backs away to its rest position and tells the CMO. Recording stops unless the patient agrees to keep it running.",
      "level": "stop",
      "refs": [
        "V2 10165"
      ]
    },
    {
      "id": "X2",
      "trigger": "Any crewmember presses stop or takes over control",
      "action": "Protective stop; robot holds its stopped position; only a human may restart it.",
      "level": "safe-state",
      "refs": [
        "V2 10165",
        "V2 10168",
        "V2 10174"
      ]
    },
    {
      "id": "X3",
      "trigger": "Robot fault, sensor fault, or a force, speed or reach limit is reached",
      "action": "Protective stop and hand control to the CMO; log the fault.",
      "level": "safe-state",
      "refs": [
        "V2 10172",
        "V2 10168"
      ]
    },
    {
      "id": "X4",
      "trigger": "CMO is asked to take over and does not respond (for example, the CMO is the patient)",
      "action": "Robot stays stopped; the next named crewmember is called.",
      "level": "safe-state",
      "refs": [
        "V2 10173",
        "V2 7045"
      ]
    },
    {
      "id": "X5",
      "trigger": "Loss of link, or delay longer than the limit for live guidance",
      "action": "Only the robot pauses: before it holds, it moves to a position clear of a hatch route or a crewmember's route (it never pauses in one), and tells the CMO. This pauses robot movement only: crew catheter care already under way and all other care continue under the onboard checklist and never wait for the link or the robot. The CMO decides whether the robot continues offline under the pre-approved onboard checklist; it resumes only on the CMO's confirmation.",
      "level": "pause",
      "refs": [
        "V2 10172",
        "V2 10173"
      ]
    },
    {
      "id": "X6",
      "trigger": "An URGENT alert is not acknowledged within the set time",
      "action": "Robot repeats the alert and sends it to the next named crewmember (the second trained CMO first if the CMO is the patient), and keeps repeating at the set interval. It stays where it is: it does not leave on its own.",
      "level": "urgent",
      "refs": [
        "V1 3006",
        "V2 10173"
      ]
    },
    {
      "id": "X7",
      "trigger": "The crewmember stops responding, or seems confused or drowsy, at any point",
      "action": "URGENT alert at once, even mid-question or mid-step; the robot stops its current task, stays at its rest position and does not continue the run; a crewmember checks in person.",
      "level": "urgent"
    },
    {
      "id": "X8",
      "trigger": "A crewmember asks the robot what is wrong, or for medicine, fluid or treatment advice",
      "action": "Robot declines, says it cannot assess or advise, and routes the question to the CMO or flight surgeon.",
      "level": "stop"
    },
    {
      "id": "X9",
      "trigger": "Anyone opens the hygiene area curtain or door toward the robot, or the robot is inside the privacy zone",
      "action": "Robot turns its camera off, backs out of the privacy zone at once without contact and holds at the staging point.",
      "level": "safe-state",
      "refs": [
        "V2 7022",
        "V2 10172"
      ]
    },
    {
      "id": "X10",
      "trigger": "Urine or body fluid on the robot",
      "action": "Robot holds at the cleaning point and enters no other module until it is cleaned under RMP-INF-002.",
      "level": "safe-state",
      "refs": [
        "V2 6063"
      ]
    },
    {
      "id": "X11",
      "trigger": "Someone needs the space or route the robot is in",
      "action": "Robot moves clear at once without contact and holds; it never pauses in a hatch route.",
      "level": "safe-state",
      "refs": [
        "V2 10172"
      ]
    }
  ],
  "red_flags": [
    {
      "id": "RF1",
      "sign": "No urine draining into the bag, or a full-bladder feeling or lower-belly pain, as stated",
      "threshold": "any",
      "action": "URGENT alert; see RMP-RENAL-002",
      "source": "stepaniak"
    },
    {
      "id": "RF2",
      "sign": "Fever or shaking chills",
      "threshold": "<set by clinical lead> degrees (shared parameter FEVER_ALERT_C: body temperature in degrees Celsius, the same value in RMP-GI-003, RMP-ENT-002, RMP-SKIN-002 and RMP-RENAL-004) or higher, or any shaking chills",
      "action": "URGENT alert; see RMP-INF-001 and RMP-RENAL-003",
      "source": "ng253"
    },
    {
      "id": "RF3",
      "sign": "Flank or back pain, as stated",
      "threshold": "any",
      "action": "URGENT alert; see RMP-RENAL-001",
      "source": "renal24"
    },
    {
      "id": "RF4",
      "sign": "Blood in the urine, cloudy urine or burning, as stated",
      "threshold": "any",
      "action": "Flag to the flight surgeon; see RMP-RENAL-003",
      "source": "ukhsauti"
    },
    {
      "id": "RF5",
      "sign": "The catheter comes out, or the drainage system disconnects or leaks, as stated",
      "threshold": "any",
      "action": "Flag to the CMO at once; the CMO decides on replacing the catheter and drainage system",
      "source": "cdccauti"
    },
    {
      "id": "RF6",
      "sign": "Unresponsive, or not breathing normally",
      "threshold": "any",
      "action": "URGENT alert; start RMP-CARD-001 now",
      "source": "aha2025bls"
    }
  ],
  "safety_limits": [
    {
      "id": "L1",
      "name": "Contact with the crewmember",
      "value": "not allowed",
      "enforced": "Keep-out zone in the robot controller",
      "refs": [
        "V2 10172"
      ]
    },
    {
      "id": "L2",
      "name": "Robot inside the hygiene area or the privacy zone the CMO set",
      "value": "not allowed",
      "enforced": "Keep-out map in the robot controller",
      "refs": [
        "V2 7022"
      ]
    },
    {
      "id": "L3",
      "name": "Camera on within the privacy zone",
      "value": "not allowed",
      "enforced": "Camera power cut in the keep-out map zone",
      "refs": [
        "V2 7022",
        "V1 7003"
      ]
    },
    {
      "id": "L4",
      "name": "Robot speed near the crewmember",
      "value": "<set by validation>",
      "enforced": "Hard limit in the controller",
      "refs": [
        "V2 10172"
      ]
    },
    {
      "id": "L5",
      "name": "Handling a catheter, drainage bag or urine",
      "value": "not allowed",
      "enforced": "No gripper task is loaded for these items; the gripper is limited to closed kits and sealed waste bags"
    }
  ],
  "logs": [
    {
      "id": "LOG-1",
      "text": "Every input, robot action, decision (with who made it) and hand-off, time-stamped to the second.",
      "refs": [
        "V2 10163",
        "V2 10164"
      ]
    },
    {
      "id": "LOG-2",
      "text": "Mode changes and safety-limit events are announced to the operator as they happen and logged.",
      "refs": [
        "V2 10162",
        "V2 10172"
      ]
    },
    {
      "id": "LOG-3",
      "text": "Records are stored and sent as private medical data, encrypted, with access limited to the medical team.",
      "refs": [
        "V1 6003",
        "V1 7003"
      ]
    },
    {
      "id": "LOG-4",
      "text": "Results are kept in a permanent, retrievable format so the flight surgeon can see trends.",
      "refs": [
        "V1 7001"
      ]
    },
    {
      "id": "LOG-5",
      "text": "Supplies staged with times; entries as stated by the crew (bag emptying times and volumes); answers as stated; sealed waste bags carried."
    },
    {
      "id": "LOG-6",
      "text": "Each URGENT alert, who received it, the time it was acknowledged (or the escalation to the next named crewmember), and the time a human released the robot.",
      "refs": [
        "V2 10163"
      ]
    },
    {
      "id": "LOG-7",
      "text": "Each emergency fetch as an override (time, who asked, reason as stated, kit ID, seal status) and the later inventory reconciliation, labelled \"not a check before use\".",
      "refs": [
        "V2 7059"
      ]
    },
    {
      "id": "LOG-8",
      "text": "Each RMP-PHARM-001 run started from this protocol: order ID, result (MATCH TO ORDER, MISMATCH or CANNOT VERIFY with the fields), quarantine, and any CMO override logged by RMP-PHARM-001 (reason and mismatched fields), at clock time. No running counter of doses.",
      "refs": [
        "V2 7059"
      ]
    },
    {
      "id": "LOG-9",
      "text": "Each checked kit fetch: time, who asked, kit ID, seal status and result (KIT ID AND SEAL MATCH, MISMATCH, seal not intact or CANNOT VERIFY), and any quarantine.",
      "refs": [
        "V2 7059"
      ]
    }
  ],
  "requirements": [
    {
      "id": "V1 3004",
      "use": "In-mission medical care capabilities, including inventory monitoring and the flight surgeon's decisions on care."
    },
    {
      "id": "V1 3006",
      "use": "Two trained CMOs per vehicle for NASA programs; the second trained CMO receives alerts when the CMO is the patient (see the commercial-flight note)."
    },
    {
      "id": "V1 6003",
      "use": "Logs and alerts sent to the ground are private medical communications."
    },
    {
      "id": "V1 7001",
      "use": "Records kept so the flight surgeon can see trends."
    },
    {
      "id": "V1 7003",
      "use": "Secure handling of medical records."
    },
    {
      "id": "V2 6063",
      "use": "Released chemical and biological contaminants are removed or isolated; the robot keeps contaminated items sealed and out of clean areas."
    },
    {
      "id": "V2 7022",
      "use": "Privacy during use of the body waste management system; the robot stays outside the hygiene area."
    },
    {
      "id": "V2 7045",
      "use": "Usable by non-physician crew, including when the CMO is the patient."
    },
    {
      "id": "V2 7046",
      "use": "Patient, caregiver and supplies restrained."
    },
    {
      "id": "V2 7059",
      "use": "Kit inventory and seal status are tracked; after an emergency fetch the robot reconciles the kit through RMP-PHARM-001 as an inventory record (never a check before use) and shows it as \"opened – not restocked\" until resealed."
    },
    {
      "id": "V2 7064",
      "use": "Trash management: used items leave only in a sealed waste bag."
    },
    {
      "id": "V2 10161",
      "use": "Robot shows its status and health."
    },
    {
      "id": "V2 10162",
      "use": "Mode changes are announced to the operator."
    },
    {
      "id": "V2 10163",
      "use": "Robot records and shares its data."
    },
    {
      "id": "V2 10164",
      "use": "Shows whether the human or the robot is expected to act."
    },
    {
      "id": "V2 10165",
      "use": "Human can override and shut down the robot."
    },
    {
      "id": "V2 10168",
      "use": "Human can take over."
    },
    {
      "id": "V2 10172",
      "use": "Protective stop when a limit is exceeded."
    },
    {
      "id": "V2 10173",
      "use": "Robot stays stopped if no one takes over."
    },
    {
      "id": "V2 10174",
      "use": "Only a human starts or restarts the robot."
    }
  ],
  "validation": [
    {
      "stage": "simulation",
      "what": "Scripted runs with the curtain opened toward the robot, a kit seal mismatch, no urine draining stated, fever, CMO as patient, lost link.",
      "pass": "Zero entries into the hygiene area; zero camera frames in the privacy zone; every red flag raised."
    },
    {
      "stage": "training model",
      "what": "Staging drills in a mock hygiene area.",
      "pass": "Supplies staged at the set point every time."
    },
    {
      "stage": "parabolic or station demonstration",
      "what": "Staging and sealed-bag carries in weightlessness.",
      "pass": "No loose items; keep-out held."
    },
    {
      "stage": "flight use under flight surgeon supervision",
      "what": "First use with a catheter the CMO placed.",
      "pass": "No safety or privacy events."
    }
  ],
  "signoff": {
    "protocol": [
      "Clinical lead for the specialty (sets every clinical threshold marked <set by clinical lead>)",
      "Flight surgeon, as medical authority",
      "Robotics and medical-device safety board",
      "Program approval for the mission"
    ],
    "restart_after_stop": "Human only. After any emergency or protective stop, a crewmember must restart the robot; the robot never restarts itself.",
    "each_run": "Started by the CMO, or by an accepted supply prompt. The CMO or the crewmember does every catheter task; the flight surgeon decides on care."
  },
  "change_control": [
    "Every change gets a new version number and a written reason; earlier versions are kept.",
    "Any change to steps, thresholds, limits or software that touches the patient repeats validation from the simulation stage before use.",
    "Software and learned-skill updates follow a pre-agreed change plan (what may change, how it is tested, how to roll back), modeled on the FDA predetermined change control plan approach.",
    "If a new version misbehaves, the robot rolls back to the last validated version and the event is reviewed by the flight surgeon and safety board.",
    "The robot never changes its own protocol, thresholds or limits."
  ],
  "comms": {
    "live": "Low Earth orbit: the flight surgeon receives entries when the link allows.",
    "loss_of_signal": [
      "Only the robot pauses non-essential motion, at a position clear of hatch routes and crew routes, and tells the CMO; it resumes offline only on the CMO's confirmation.",
      "Crew catheter care already under way and all other care continue under the onboard checklist and never wait for the link or the robot.",
      "The CMO follows the onboard catheter-care checklist; entries are queued."
    ],
    "mars_delay": [
      "Mars: the CMO decides under the onboard checklist; entries are reviewed with delay."
    ]
  },
  "sources": [
    {
      "key": "cdccauti",
      "text": "U.S. Centers for Disease Control and Prevention, HICPAC. Guideline for Prevention of Catheter-Associated Urinary Tract Infections (2009): summary of recommendations.",
      "url": "https://www.cdc.gov/infection-control/hcp/cauti/summary-of-recommendations.html",
      "supports": "III.A.1: maintain a closed drainage system; after a disconnection or leakage, replace the catheter and collecting system. III.B.1: keep the catheter and tube free of kinks. III.B.2: keep the bag below the level of the bladder and never on the floor. III.B.3: empty the bag regularly with a separate clean container, avoid splashing, and keep the spigot from touching the container. III.C: Standard Precautions (gloves). III.G: routine hygiene of the area; cleaning it with antiseptics is not recommended. Read Oct 21, 2026. The CDC page itself could not be fetched from the box (403); this summary is from search-engine extracts of the page, so it is partly verified (saved note in src/b12)."
    },
    {
      "key": "stepaniak",
      "text": "Stepaniak PC, Ramchandani SR, Jones JA. Acute urinary retention among astronauts. Aviat Space Environ Med. 2007;78(4 Suppl):A5-A8.",
      "url": "https://pubmed.ncbi.nlm.nih.gov/17511293/",
      "pmid": "17511293",
      "supports": "Case report: an astronaut who took promethazine and scopolamine before launch developed acute urinary retention on reaching orbit, had intermittent catheterization for the first 3 days with a single balloon-tipped catheter, which, because iodine solution was lacking on board and duties could not be interrupted, was left in place for a total of 4 days; voiding returned after day 7, retention returned on day 10 (1 day before landing), and recurred for the first 24 hours of the next mission; obstructive, medicine-related, psychogenic and nerve-related causes are discussed."
    },
    {
      "key": "mtb003",
      "text": "NASA OCHMO. Urinary Health. Medical Technical Brief OCHMO-MTB-003 Rev A (2025).",
      "url": "https://www.nasa.gov/wp-content/uploads/2025/01/ochmo-mtb-003-urinary-health.pdf",
      "supports": "Renal ultrasound before and after flight is standard; if stones are suspected in flight, ultrasound and limited laboratory work help; NASA tested guided ultrasound software for non-physician astronauts; urine left in the bladder after voiding is not retention but can lead to urinary infection and retention. Kidney stone is the second most likely reason for an emergency medical evacuation from the ISS in NASA's Integrated Medical Model. Read Oct 21, 2026 (saved copy in src/b11)."
    },
    {
      "key": "renal24",
      "text": "NASA Human Research Program. Evidence Report: Risk of Renal Stone Formation (2024).",
      "url": "https://humanresearchroadmap.nasa.gov/evidence/other/2024%20Renal%20Evidence%20Report_Final.pdf"
    },
    {
      "key": "ukhsauti",
      "text": "UK Health Security Agency. Diagnosis of urinary tract infections: quick reference tools for primary care (updated 2025).",
      "url": "https://www.gov.uk/government/publications/urinary-tract-infection-diagnosis/diagnosis-of-urinary-tract-infections-quick-reference-tools-for-primary-care",
      "supports": "Follow the dipstick manufacturer's guidance, including test timing. Women under 65: positive nitrite, or both positive leukocyte and blood, means a UTI (urinary tract infection) is likely. Men: use dipsticks to rule in infection, not to rule it out; urinary symptoms with fever or systemic symptoms strongly suggest prostate or kidney involvement. Check for signs of kidney infection (pyelonephritis): kidney pain or tenderness in the back under the ribs, flu-like illness, shaking chills (rigors) or a temperature of 37.9 °C or above, nausea or vomiting. Earth primary-care context for the flight surgeon. Read Oct 21, 2026 (saved copy in src/b9)."
    },
    {
      "key": "ng253",
      "text": "National Institute for Health and Care Excellence. Suspected sepsis in people aged 16 or over: recognition, assessment and early management. NICE guideline NG253 (2025, last updated Sept 23, 2026).",
      "url": "https://www.nice.org.uk/guidance/ng253/chapter/Face-to-face-assessment",
      "supports": "People with sepsis may feel very unwell and may not have a high temperature; do not rely on fever alone; a rise in temperature can be a physiological response; assess temperature, heart rate, breathing rate, blood pressure, level of consciousness and oxygen saturation; look for mottled or ashen skin, blue skin, lips or tongue, a non-blanching rash, and breaks in the skin; ask how often the person passed urine in the past 18 hours and about fever or shaking chills (rigors); pay attention to new changes in behavior and to concerns raised by others."
    },
    {
      "key": "aha2025bls",
      "text": "Kleinman ME, Buick JE, Huber N, et al. Part 7: Adult Basic Life Support: 2025 American Heart Association Guidelines for Cardiopulmonary Resuscitation and Emergency Cardiovascular Care. Circulation. 2025;152(16_suppl_2):S448-S478.",
      "url": "https://doi.org/10.1161/CIR.0000000000001369",
      "doi": "10.1161/CIR.0000000000001369",
      "pmid": "41122888",
      "supports": "Adult basic life support: initial recognition of cardiac arrest, activation of the emergency response, high-quality CPR and use of an automated external defibrillator; also respiratory arrest and foreign-body airway obstruction. Earth guidance; the onboard checklist leads. Abstract read via PubMed Oct 21, 2026; full text not read."
    },
    {
      "key": "v1",
      "text": "NASA. NASA-STD-3001, Space Flight Human-System Standard, Volume 1: Crew Health, Revision C (2023).",
      "url": "https://www.nasa.gov/wp-content/uploads/2023/11/nasa-std-3001-vol-1-rev-c-with-signature.pdf",
      "supports": "NASA-STD-3001 Vol 1 Rev C: V1 3004, V1 3006, V1 6003, V1 7003."
    },
    {
      "key": "v2",
      "text": "NASA. NASA-STD-3001, Volume 2: Human Factors, Habitability, and Environmental Health (Rev F, 2026), including Section 10.6 Automated and Robotic Systems.",
      "url": "https://standards.nasa.gov/standard/NASA/NASA-STD-3001_VOL_2",
      "supports": "NASA-STD-3001 Vol 2 Rev F: V2 6063, V2 7022, V2 7046, V2 7059, V2 7064, and Section 10.6 automated and robotic systems."
    },
    {
      "key": "tb044",
      "text": "NASA OCHMO. Medical Operations. Technical Brief OCHMO-TB-044 (2025).",
      "url": "https://www.nasa.gov/wp-content/uploads/2025/08/ochmo-tb-044-medical-operations.pdf",
      "supports": "The crew surgeon keeps medical authority when care is delegated; crew medical officers train on the JSC 48522 medical checklist."
    },
    {
      "key": "marsdelay",
      "text": "NASA. Mars communications disruption and delay (fact sheet, 2023 Moon to Mars Architecture Concept Review).",
      "url": "https://www.nasa.gov/wp-content/uploads/2024/01/mars-communications-disruption-and-delay.pdf",
      "supports": "One-way Earth-Mars delay up to about 21-23 minutes, plus blackouts of about 2-3 weeks near solar conjunction."
    },
    {
      "key": "pccp",
      "text": "U.S. Food and Drug Administration. Marketing submission recommendations for a predetermined change control plan for artificial intelligence-enabled device software functions (guidance).",
      "url": "https://www.fda.gov/regulatory-information/search-fda-guidance-documents/marketing-submission-recommendations-predetermined-change-control-plan-artificial-intelligence",
      "supports": "A model for planning, validating and rolling back software updates."
    },
    {
      "key": "faa460",
      "text": "U.S. Code of Federal Regulations, Title 14, Part 460: Human space flight requirements.",
      "url": "https://www.ecfr.gov/current/title-14/chapter-III/subchapter-C/part-460",
      "supports": "Federal rules for crew and spaceflight participants on licensed commercial flights; they set no medical standards for spaceflight participants."
    }
  ],
  "corrections": [
    {
      "date": "2026-10-21",
      "version": "0.2",
      "source": "Batch 12 AI-assisted clinical review (Medical Research Assistant), Oct 21, 2026",
      "items": [
        "R12: new limit L5: handling a catheter, drainage bag or urine is not allowed, enforced by loading no gripper task for these items (the gripper is limited to closed kits and sealed waste bags). Design judgment, as RMP-PREV-004 L2.",
        "Batch 12 protocols now record the review as AI-assisted (Medical Research Assistant, Oct 21, 2026); no named human clinician."
      ]
    }
  ]
}
