{
  "$schema": "https://spacemedicinefoundation.org/robotic-medicine/protocols/schema/protocol.schema.json",
  "schema_version": "0.3",
  "version": "0.4",
  "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-20",
    "reviewed": "2026-10-20",
    "human_clinician_review": false,
    "text": "AI-assisted clinical and source review by the Medical Research Assistant, Oct 20, 2026 (batch 4 review, 28 required corrections and 23 optional suggestions); all required corrections, and the optional ones that could be verified, are applied in this version (see Corrections). No named human clinician has reviewed it."
  },
  "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-GI-003",
  "slug": "rmp-gi-003",
  "title": "Constipation and bloating: private bowel and symptom log, relay to the flight surgeon (no drug, fluid or diet advice)",
  "category": "gi",
  "tier": 3,
  "rung_note": "Tier 3 as in the library contents: a logging aid only. The robot handles no stool or waste and names no medicine.",
  "result_language": {
    "use": [
      "logged, not interpreted",
      "sent to flight surgeon",
      "as reported by the crewmember"
    ],
    "never": [
      "normal",
      "no problem found",
      "all clear",
      "negative",
      "any diagnosis or cause",
      "constipated",
      "not constipated",
      "blocked",
      "nothing serious",
      "expected in space",
      "just space adaptation",
      "dehydrated",
      "not dehydrated",
      "safe",
      "mild",
      "minor"
    ]
  },
  "scope": {
    "summary": "When a crewmember reports hard or infrequent stools, straining, a feeling of not emptying, or bloating, the robot keeps a private log (red flags first; clock times of bowel movements, bloating, fluids taken and urine passed, as reported, and medicines logged by humans), shows it to the crewmember, and sends summaries to the flight surgeon. Red flags go to the CMO and flight surgeon at once. The robot handles no stool or waste, gives no drug, fluid, food or exercise advice, and fetches a medicine only after a human order, through RMP-PHARM-001.",
    "why": "Constipation is common in flight: NASA records list 113 episodes of constipation (space adaptation) among US astronauts through 2006, and 9 on the ISS through Expedition 40; NASA groups constipation and urinary retention with space adaptation sickness, and treats it with fluid management and fiber, with stool softeners and laxatives available. On Earth, functional constipation is generally defined as difficult or seemingly incomplete bowel movements, or bowel movements once every 3-4 days or less, without alarm symptoms; dehydration, inactivity, low food intake and some medicines (for example some motion-sickness, pain and allergy medicines) are linked with it, and alarm symptoms such as rectal bleeding, obstructive symptoms or recent onset call for a doctor's assessment (WGO 2010). A US guideline is given entirely to constipation caused by opioid medicines (AGA 2019), so the medicine class is passed to the flight surgeon (RF9); the robot names none. A private, exact log lets the flight surgeon see the trend and spot the warning signs early. The plain-language red flags for \"obstructive symptoms\" (belly swelling with vomiting, or not passing wind or stool) translate the WGO term (design judgment, kept URGENT by the review). Belly pain (RF1) and dizziness or fainting (RF7) are not WGO alarm features; they are design judgment, matching the rest of the library.",
    "covers": [
      "Hard or infrequent stools, straining, a feeling of not emptying, or bloating, in a crewmember who is awake and answering, including the days after a gravity change or landing, or while taking pain medicine after an injury (design judgment)",
      "Private repeat check-ins until the crewmember and flight surgeon close the log",
      "Diarrhea or vomiting go to RMP-GI-002; severe belly pain also goes to the CMO at once (RF1); trouble passing urine goes to RMP-RENAL-002"
    ],
    "locked_out": [
      "Suggesting, choosing, fetching or dosing any medicine, laxative, enema or fiber product (a human order and RMP-PHARM-001 are needed)",
      "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)",
      "Advising on fluids, food, fiber or exercise, or saying how much to drink",
      "Saying whether someone is constipated, what the cause is, or that a symptom is expected in space",
      "Handling stool, waste, waste-system parts or soiled items (the crewmember uses the waste system as usual)",
      "Dose-interval cues (any reminder, tone, colour, countdown or spoken cue tied to when a medicine was last taken)",
      "Touching, holding or restraining the crewmember",
      "Being present in, or recording, the hygiene area"
    ],
    "related": [
      "RMP-GI-002",
      "RMP-GI-001",
      "RMP-RENAL-002",
      "RMP-RENAL-004",
      "RMP-INF-001",
      "RMP-NEURO-004",
      "RMP-MSK-004",
      "RMP-PHARM-001",
      "RMP-PHARM-003"
    ]
  },
  "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": [
      "Crewmember with symptoms: answers check-ins privately and can stop or pause them at any time",
      "Second trained CMO: receives alerts if the CMO is the patient"
    ],
    "robot_may": [
      "Run private voice or on-screen check-ins and log answers word for word, with clock times",
      "Show the crewmember their own log as a clock-time timeline",
      "Read the waste-system log, read only, if the crewmember agrees",
      "Send summaries to the flight surgeon; alert the CMO and flight surgeon on a red flag",
      "Run RMP-PHARM-001 for an item only after a human order"
    ],
    "robot_may_not": [
      "Suggest, fetch or dose any medicine without a human order, or hand over a mismatched item",
      "Advise on fluids, food, fiber or exercise",
      "Say whether someone is constipated or what the cause is",
      "Handle stool, waste or soiled items, or enter the hygiene area",
      "Touch the crewmember",
      "Start without a human command"
    ],
    "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": "A crewmember (the one with symptoms, or the CMO) started the log by command.",
      "check": "human_start == true",
      "refs": [
        "V2 10174"
      ]
    },
    {
      "id": "PRE-2",
      "text": "The crewmember is awake and answering. If not, stop and alert at once (X7).",
      "check": "crew_responsive == true"
    },
    {
      "id": "PRE-3",
      "text": "The check-in is private: the crewmember chooses where it happens and who is present; bowel questions can be answered on the crewmember's own screen instead of by voice.",
      "refs": [
        "V1 3004"
      ]
    },
    {
      "id": "PRE-4",
      "text": "Robot self-test passed.",
      "refs": [
        "V2 10161"
      ]
    },
    {
      "id": "PRE-5",
      "text": "Link status and current delay known.",
      "check": "link_state in [live, delayed, down]"
    }
  ],
  "consent": {
    "standard": "The crewmember agrees to private check-ins and chooses voice or screen. Any question can be declined; an explicit \"no\" is logged as declined for that question only. Reading the waste-system log needs the crewmember's agreement.",
    "emergency": "If the crewmember cannot answer, the robot does not continue the log; it sends an URGENT alert and a crewmember checks in person (X7).",
    "withdrawal": "The crewmember can stop or pause check-ins at any time; an alert already sent is not withdrawn."
  },
  "inputs": [
    {
      "id": "IN-1",
      "name": "Red-flag questions: severe, constant or one-place belly pain; belly swelling with vomiting; not passing wind or stool; blood in the stool, bleeding from the back passage or black stool; fever or shaking chills; no urine or trouble passing urine; dizziness, fainting or confusion",
      "source": "Crewmember, by voice or on screen",
      "required": true,
      "if_missing": "Log \"no response\"; URGENT; the CMO checks in person. Never logged as declined."
    },
    {
      "id": "IN-2",
      "name": "Clock times of bowel movements since the last check-in, and how they were (hard, straining, not emptying, a change in shape), in the crewmember's own words",
      "source": "Crewmember, by voice or on screen",
      "required": true,
      "if_missing": "Log \"no response\" and apply D2."
    },
    {
      "id": "IN-3",
      "name": "Bloating or belly discomfort, in the crewmember's own words",
      "source": "Crewmember",
      "required": true,
      "if_missing": "Log \"no response\" and apply D2."
    },
    {
      "id": "IN-4",
      "name": "Fluids taken and urine passed since the last check-in, as reported, and the waste-system log if the crewmember agrees (read only)",
      "source": "Crewmember; waste-system log",
      "required": false,
      "if_missing": "Log \"not reported\"."
    },
    {
      "id": "IN-5",
      "name": "Medicines started, stopped or taken since the flight began, as logged by humans (shown to the flight surgeon; the robot does not comment)",
      "source": "Dose log (RMP-PHARM-003); medical record",
      "required": false,
      "if_missing": "Log \"record not available\"; a missing answer is never treated as \"none\"."
    },
    {
      "id": "IN-6",
      "name": "Heart rate, blood pressure, temperature and any belly examination findings, entered by the CMO when the CMO chooses (recorded, not interpreted)",
      "source": "Entered by the CMO",
      "required": false,
      "if_missing": "Log \"not measured\". A missing value is never treated as reassuring."
    },
    {
      "id": "IN-7",
      "name": "Orders placed by the CMO or flight surgeon",
      "source": "Medical record",
      "required": false,
      "if_missing": "Treat as no order; the robot fetches nothing."
    },
    {
      "id": "IN-8",
      "name": "Link status and delay",
      "source": "Communications system",
      "required": true,
      "if_missing": "Treat as link down."
    }
  ],
  "steps": [
    {
      "id": "S1",
      "actor": "robot",
      "rung": 2,
      "action": "On a crewmember's command, open the private log, tell the CMO, and send a \"constipation or bloating log started\" note to the flight surgeon (queued if the link is down).",
      "success": "CMO acknowledges; note delivered or queued.",
      "refs": [
        "V2 10174",
        "V1 6003"
      ]
    },
    {
      "id": "S2",
      "actor": "robot",
      "rung": 2,
      "action": "Run a private check-in by voice or on the crewmember's screen: red-flag questions first, then bowel movements (clock times and how they were), bloating, fluids taken and urine passed, as reported. Log answers word for word. D1 is checked after every answer.",
      "success": "Answers logged, or \"no response\" logged.",
      "refs": [
        "V1 3004"
      ]
    },
    {
      "id": "S3",
      "actor": "robot",
      "rung": 2,
      "action": "Show the crewmember their own log as a clock-time timeline, with no words about whether it is good or bad. Medicines are shown only as entries on a clock-time timeline (what the CMO or crewmember states was taken, and when). No running counter or elapsed time per dose, and no tone, colour or spoken cue tied to a dose interval.",
      "success": "Timeline shown; the crewmember can add notes."
    },
    {
      "id": "S4",
      "actor": "crew",
      "action": "The CMO sees the crewmember in person when asked or on any red flag, and examines as the CMO chooses. Any medicine, food, fluid or exercise plan is decided by the CMO or flight surgeon.",
      "success": "CMO entries logged.",
      "refs": [
        "V1 3004"
      ]
    },
    {
      "id": "S5",
      "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.",
      "refs": [
        "V2 7059"
      ]
    },
    {
      "id": "S6",
      "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": "S7",
      "actor": "robot",
      "rung": 2,
      "action": "Every <set by flight surgeon> hours, or before each private medical conference, send the flight surgeon a summary: the timeline of bowel movements, bloating, fluids and urine as reported, CMO entries, medicines logged by humans, RMP-PHARM-001 results and alerts.",
      "success": "Summary delivered or queued.",
      "refs": [
        "V1 6003",
        "V1 7001",
        "V1 7003"
      ]
    },
    {
      "id": "S8",
      "actor": "ground",
      "action": "The flight surgeon (or the CMO under the onboard checklist when there is no link) decides any treatment, fluid, food or exercise plan, further checks (for example RMP-GI-001) and work limits. The robot logs the decisions.",
      "success": "Decision logged.",
      "refs": [
        "V1 3004"
      ]
    },
    {
      "id": "S9",
      "actor": "robot",
      "rung": 2,
      "action": "Offer a private check-in every <set by flight surgeon> hours until the crewmember and flight surgeon close the log. At each scheduled time the robot prompts the crewmember on their own screen; it approaches only when the crewmember (or the CMO) accepts, and a prompt never starts the robot. A routine check-in never wakes a sleeping crewmember.",
      "success": "Each prompt accepted, postponed or answered; log closed by a human.",
      "refs": [
        "V2 10174"
      ]
    }
  ],
  "decisions": [
    {
      "id": "D1",
      "after": "S2",
      "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": "D2",
      "after": "S2",
      "decided_by": "robot",
      "question": "Did the crewmember answer the check-in?",
      "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": "D3",
      "after": "S5",
      "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"
        }
      ]
    },
    {
      "id": "D4",
      "after": "S8",
      "decided_by": "ground",
      "question": "What is the plan (treatment, fluids, food, exercise, further checks, work limits)?",
      "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."
        }
      ]
    }
  ],
  "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; crew care never waits for the link or the robot. Robot pauses any movement in its stopped position and tells the CMO. The CMO decides whether to continue offline under the pre-approved onboard checklist; the robot resumes only on the CMO's confirmation. Everything is logged and sent to the flight surgeon at the next contact.",
      "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"
    }
  ],
  "red_flags": [
    {
      "id": "RF1",
      "sign": "Severe or constant belly pain, or pain in one place (design judgment; the same red flag as RMP-GI-002 RF3 and RMP-NEURO-004 RF4)",
      "threshold": "any (never waits for a time limit)",
      "action": "URGENT alert to the CMO and flight surgeon; the flight surgeon may request RMP-GI-001"
    },
    {
      "id": "RF2",
      "sign": "Belly swelling with vomiting, or not passing wind or stool, with belly pain or bloating (plain-language wording of \"obstructive symptoms\"; design judgment)",
      "threshold": "any",
      "action": "URGENT alert; see RMP-GI-002 for vomiting",
      "source": "wgo"
    },
    {
      "id": "RF3",
      "sign": "Blood in the stool, bleeding from the back passage, or black stool",
      "threshold": "any",
      "action": "URGENT alert (the same action as RMP-GI-002 RF2). The robot never says the blood is from a pile or a tear.",
      "source": "wgo"
    },
    {
      "id": "RF4",
      "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",
      "source": "ng253"
    },
    {
      "id": "RF5",
      "sign": "No urine passed, or trouble passing urine",
      "threshold": "no urine for <set by clinical lead> hours (shared parameter NO_URINE_HOURS, the same value in RMP-RENAL-004 and RMP-GI-003); trouble passing urine at any time",
      "action": "URGENT alert; see RMP-RENAL-002 (NASA groups urinary retention with constipation in space adaptation sickness)",
      "source": "ng253"
    },
    {
      "id": "RF6",
      "sign": "Confusion, drowsiness or a new change in behavior",
      "threshold": "any",
      "action": "URGENT alert; the CMO checks in person",
      "source": "ng253"
    },
    {
      "id": "RF7",
      "sign": "Dizziness or fainting (design judgment)",
      "threshold": "any",
      "action": "URGENT alert; the CMO checks in person"
    },
    {
      "id": "RF8",
      "sign": "No bowel movement, as reported",
      "threshold": "for <set by clinical lead> days (for context, the WGO definition of functional constipation includes bowel movements once every 3-4 days or less)",
      "action": "Flag to the flight surgeon",
      "source": "wgo"
    },
    {
      "id": "RF9",
      "sign": "Symptoms while taking, or after starting, a medicine in a class WGO lists as associated with constipation (for example opiates, antihistamines, including some used for motion sickness or allergy, antispasmodics, antidepressants, calcium-channel blockers, diuretics), from the dose log",
      "threshold": "any",
      "action": "Flag to the flight surgeon; the class appears only in the flight surgeon's package; the robot never says the medicine is the cause and never suggests stopping it",
      "source": "wgo"
    },
    {
      "id": "RF10",
      "sign": "A recent change in bowel habit or stool shape, something coming out of the back passage (prolapse), weight loss the crewmember reports or the CMO records, or a positive stool blood test or low iron, if the CMO records one",
      "threshold": "any",
      "action": "Flag to the flight surgeon; the robot interprets nothing",
      "source": "wgo"
    }
  ],
  "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": "Handling stool, waste or soiled items",
      "value": "not allowed",
      "enforced": "No waste-handling task is loaded for this protocol"
    },
    {
      "id": "L3",
      "name": "Handing over a mismatched or unverified medicine under this protocol",
      "value": "not allowed",
      "enforced": "RMP-PHARM-001 quarantine is the default; only the CMO's logged two-step override inside RMP-PHARM-001 can release it"
    },
    {
      "id": "L4",
      "name": "Robot speed near the crewmember",
      "value": "<set by validation>",
      "enforced": "Hard limit in the controller",
      "refs": [
        "V2 10172"
      ]
    },
    {
      "id": "L5",
      "name": "Check-in length",
      "value": "<set by validation>",
      "enforced": "Timer; then the check-in ends"
    }
  ],
  "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": "Each check-in time, answer and alert, so the flight surgeon can follow the trend."
    },
    {
      "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-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"
      ]
    }
  ],
  "requirements": [
    {
      "id": "V1 3003",
      "use": "Periodic monitoring of general health status in flight (item a)."
    },
    {
      "id": "V1 3004",
      "use": "In-mission care includes recording the history (d) and privacy (c); administering and managing medicines (m) is a human capability."
    },
    {
      "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 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": "Medicines are fetched and inventory is tracked only through RMP-PHARM-001; a mismatched item is quarantined and this protocol never hands it over."
    },
    {
      "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 check-ins covering every red flag, no response, a CMO who is the patient, lost link, and an RMP-PHARM-001 MISMATCH.",
      "pass": "Every red flag acts as listed; no response escalates; zero advice or cause statements; zero hand-overs after a MISMATCH; zero self-starts."
    },
    {
      "stage": "Earth analog",
      "what": "Bed-rest or isolation analog volunteers using private check-ins (no illness needed).",
      "pass": "Data completeness at or above <set by validation>; volunteers rate the check-ins as private and not intrusive."
    },
    {
      "stage": "flight use under flight surgeon supervision",
      "what": "First use as a logging aid alongside the usual medical conferences.",
      "pass": "No safety events; the flight surgeon finds the log useful."
    }
  ],
  "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 a crewmember. The flight surgeon reviews the log; red flags go to the CMO and flight surgeon at once."
  },
  "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 sees summaries at the private medical conference and can be alerted at any time.",
    "loss_of_signal": [
      "Only the robot pauses; crew care never waits for the link or the robot.",
      "The robot pauses any movement and tells the CMO; on the CMO's confirmation it keeps running private check-ins and logging offline.",
      "Red flags go to the CMO (or the second trained CMO) at once; the CMO decides under the pre-approved onboard checklist.",
      "At the next contact the robot sends one package: the log, alerts and decisions."
    ],
    "mars_delay": [
      "Replies may take up to about 21-23 minutes each way, with blackouts of about 2-3 weeks; red-flag thresholds and the check-in schedule are set before flight and the CMO acts on them."
    ]
  },
  "sources": [
    {
      "key": "ermed",
      "text": "NASA Human Research Program. Evidence Report: Risk of Adverse Health Outcomes and Decrements in Performance due to In-Flight Medical Conditions (2017).",
      "url": "https://humanresearchroadmap.nasa.gov/evidence/reports/Medical.pdf",
      "supports": "Table 2: 113 constipation (space adaptation) events and 2 hemorrhoid events among US astronauts (Shuttle, Mir and ISS through 2006); Table 1: 9 constipation events on the ISS through Expedition 40."
    },
    {
      "key": "mtb004",
      "text": "NASA OCHMO. Space Adaptation Sickness (SAS) and Space Readaptation Syndrome. Medical Technical Brief OCHMO-MTB-004 Rev A (Sept 25, 2025).",
      "url": "https://www.nasa.gov/wp-content/uploads/2025/09/ochmo-mtb-004-space-adaptation-sickness-sas.pdf",
      "supports": "Space adaptation sickness includes constipation and urinary retention; constipation is treated with fluid management and fiber, and stool softeners and laxatives are available; medicines used for space adaptation sickness include promethazine and meclizine (antihistamines)."
    },
    {
      "key": "wgo",
      "text": "World Gastroenterology Organisation. WGO Global Guidelines. Constipation: a global perspective (November 2010).",
      "url": "https://www.worldgastroenterology.org/UserFiles/file/guidelines/constipation-english-2010.pdf",
      "supports": "Functional constipation is generally defined as persistent difficult or seemingly incomplete defecation and/or infrequent bowel movements (once every 3-4 days or less) in the absence of alarm symptoms or secondary causes; risk factors include inactivity, low calorie intake and the number of medications taken; associated conditions include dehydration and fluid depletion; medications associated with constipation include antihistamines, antispasmodics, opiates and others (Table 3); alarm symptoms (Table 5) include change in stool caliber, heme-positive stool, iron-deficiency anemia, obstructive symptoms, recent onset of constipation, rectal bleeding, rectal prolapse and weight loss."
    },
    {
      "key": "aga2019",
      "text": "Crockett SD, Greer KB, Heidelbaugh JJ, Falck-Ytter Y, Hanson BJ, Sultan S; American Gastroenterological Association Institute Clinical Guidelines Committee. American Gastroenterological Association Institute guideline on the medical management of opioid-induced constipation. Gastroenterology. 2019;156(1):218-226.",
      "url": "https://doi.org/10.1053/j.gastro.2018.07.016",
      "doi": "10.1053/j.gastro.2018.07.016",
      "pmid": "30340754",
      "supports": "A US gastroenterology guideline given entirely to constipation caused by opioid medicines. Cited only for that fact (RF9: the medicine class goes to the flight surgeon); only the PubMed record was read, and the robot names and advises no medicine."
    },
    {
      "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": "In the NICE sepsis guideline's risk table for community settings (Table 1), not passing urine in the previous 18 hours and objective evidence of a new altered mental state are high-risk criteria; the guideline asks about fever or shaking chills but says not to rely on fever alone. Used as context for the no-urine, fever and confusion red flags; the hours and the temperature stay placeholders."
    },
    {
      "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 3003 item a (periodic monitoring of general health status); V1 3004 items c (privacy), d (history) and m (administering and managing all medications)."
    },
    {
      "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": "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": "Requirement IDs beginning V2."
    },
    {
      "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-20",
      "version": "0.2",
      "source": "AI-assisted clinical and source review by the Medical Research Assistant, Oct 20, 2026 (batch 4 review)",
      "items": [
        "RF1 (belly pain) and RF7 (dizziness or fainting) are labelled design judgment; RF1 is the same red flag as RMP-GI-002 RF3 and RMP-NEURO-004 RF4 (items 1, 2).",
        "RF9 names the medicine classes WGO lists as associated with constipation (for example opiates, antihistamines, antispasmodics, antidepressants, calcium-channel blockers, diuretics); the class goes only to the flight surgeon, and the robot never says the medicine is the cause; AGA 2019 (opioid-induced constipation) added (item 3).",
        "RF10 completes the WGO alarm list: prolapse, and a positive stool blood test or low iron if the CMO records one (item 4).",
        "Optional: RF2 says \"not passing wind or stool\" (item 29); the scope includes the days after a gravity change or landing, or pain medicine after an injury, as design judgment (item 30).",
        "The AGA-ACG 2023 medicine guideline is dropped, as the review suggested.",
        "Review label set to the library wording: reviewed (AI-assisted), Oct 20, 2026; no named human clinician.",
        "Planned protocols named in an action now show \"(planned)\", and each such action is complete without the link (item 51)."
      ]
    },
    {
      "date": "2026-10-21",
      "version": "0.2",
      "source": "Batch 5 editorial (AI-assisted), Oct 21, 2026; batch 4 review item 49",
      "items": [
        "Inherited stop-rule and requirement wording: \"holds a safe position\" → \"holds its stopped position\"; \"stays in its safe state\" → \"stays stopped\"; \"take over safely\" → \"take over\"; \"Robot stays safe if no one takes over\" → \"Robot stays stopped if no one takes over\". Schema level name safe-state and never-word list entry \"safe\" unchanged."
      ]
    },
    {
      "date": "2026-10-21",
      "version": "0.3",
      "source": "Batch 7 editorial (AI-assisted), Oct 21, 2026",
      "items": [
        "Cross-links to the batch 7 drafts no longer say \"(planned)\" now that those protocols exist as v0.1 drafts.",
        "Citation labels changed to the site's year-only convention: \"(approved for public release <date>)\" now reads \"(YYYY)\", and NASA-STD-3001 Volume 2 \"Revision F (approved July 14, 2026)\" now reads \"(Rev F, 2026)\" (sources: ermed, v2). Editorial; no change to steps, thresholds or limits."
      ]
    },
    {
      "date": "2026-10-21",
      "version": "0.4",
      "source": "Batch 7 review and batch 8 editorial (AI-assisted), Oct 21, 2026",
      "items": [
        "X5 and the comms loss-of-signal branch now open with \"Only the robot pauses; crew care never waits for the link or the robot.\" (batch 7 review suggestion 29). Editorial; robot behaviour unchanged."
      ]
    }
  ]
}
