{
  "$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",
    "reviewed": "2026-10-21",
    "human_clinician_review": false,
    "text": "AI-assisted clinical and source review by the Medical Research Assistant, Oct 21, 2026 (batch 6 review, 26 required corrections and 17 optional suggestions); all required corrections, and the low-risk suggestions, are applied in this version (see Corrections). No named human clinician has reviewed it. Not for clinical use."
  },
  "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-CARD-003",
  "slug": "rmp-card-003",
  "title": "Abnormal heart rhythm on monitoring: record, alert crew and ground",
  "category": "cardio",
  "tier": 1,
  "rung_note": "Max rung raised from 1 to 2 for supervised recording, fetching the closed defibrillator and video. The robot never reads a rhythm, never says what it is, and never fires a defibrillator; the crew place every electrode.",
  "result_language": {
    "use": [
      "logged, not interpreted",
      "sent to flight surgeon",
      "monitor alarm as displayed",
      "EMERGENCY FETCH – NOT VERIFIED (CMO command)",
      "as stated by the crewmember"
    ],
    "never": [
      "normal",
      "no problem found",
      "all clear",
      "negative",
      "any diagnosis or cause",
      "benign",
      "artefact",
      "normal rhythm",
      "atrial fibrillation",
      "ventricular tachycardia",
      "heart block",
      "verified",
      "safe",
      "mild",
      "minor",
      "sinus rhythm",
      "no arrhythmia",
      "heart is fine",
      "just palpitations",
      "reading is reassuring"
    ]
  },
  "scope": {
    "summary": "When a heart monitor alarms or shows a rhythm the CMO calls abnormal, or a crewmember reports palpitations, the robot sends an alert to the flight surgeon and the CMO at once (URGENT with any red flag), records the rhythm strip and vital signs as displayed, asks structured symptom questions and logs the answers word for word, brings the closed defibrillator and the ECG kit on command, and sends everything to the flight surgeon. It names the alarm the device shows, never a rhythm. It hands off to RMP-CARD-001 if the crewmember becomes unresponsive.",
    "why": "NASA's in-flight medical conditions evidence report states: \"Both benign and more serious cardiac dysrhythmias (supraventricular and ventricular tachycardia) have been reported during previous Mir, Skylab, and Apollo missions; one case of dysrhythmia required that crewmembers be brought back to Earth.\" In active astronauts, atrial fibrillation (AF) is about as common as in the general population (about 5%) but at a younger age; in 13 astronauts, the left upper heart chamber (left atrium) grew transiently after 6 months in space, and none developed AF (Khine 2018). On Earth, the American Heart Association (AHA) 2025 adult advanced life support guideline covers peri-arrest rhythm problems such as atrial fibrillation or flutter with a rapid heart rate, the 2018 ACC/AHA/HRS bradycardia guideline asks clinicians to link symptoms to the recorded rhythm, and the 2023 AF guideline (American College of Cardiology, AHA, American College of Clinical Pharmacy and Heart Rhythm Society; PubMed record only) is for the clinicians who read the strips. A clean, time-stamped strip with stated symptoms is what the flight surgeon needs. Alarm levels match RMP-CARD-002 and RMP-INF-001: every monitor rhythm alarm is URGENT, unless the flight surgeon's logged order sets a reviewed recurring alarm for a named crewmember as a Flag; blood pressure and heart rate use the same clinical-lead values as RMP-CARD-002. The shared value SPO2_ALERT_PCT only raises an alert; it never gates a crew action (the crew act without waiting for a reading), and the clinical lead sets it per mission with the flight surgeon, because the cabin atmosphere can differ by mission. Open question for review: who on board reviews strips when the link is down (as in RMP-CARD-002, an onboard ECG reviewer named before flight).",
    "covers": [
      "A heart monitor alarm or rhythm the CMO calls abnormal, during scheduled monitoring, exercise or care",
      "Palpitations, fainting or near-fainting reported by a crewmember",
      "Hand-off to RMP-CARD-001 (unresponsive) and RMP-CARD-002 (chest pain)"
    ],
    "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)",
      "Reading, naming or ranking any rhythm",
      "Placing electrodes",
      "Charging or firing the defibrillator, or opening it",
      "Saying an alarm is artefact or harmless",
      "Choosing or adjusting any device setting"
    ],
    "related": [
      "RMP-CARD-001",
      "RMP-CARD-002",
      "RMP-CARD-004",
      "RMP-RESP-001",
      "RMP-SKIN-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",
      "Onboard ECG reviewer: the CMO, or a reader the flight surgeon names before flight, reviews every strip when the link is down or delayed"
    ],
    "robot_may": [
      "Alert the flight surgeon and CMO at once",
      "Record the strip and vital signs as displayed, with clock times",
      "Ask structured symptom questions and log answers word for word",
      "Bring the closed defibrillator and ECG kit on command",
      "Show the electrode placement diagram",
      "Send everything to the flight surgeon"
    ],
    "robot_may_not": [
      "Interpret, name or rank a rhythm",
      "Touch the chest or place electrodes",
      "Open, charge or fire the defibrillator",
      "Change any device setting",
      "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 or the CMO started the protocol by command after a monitor alarm, an abnormal-looking rhythm or palpitations.",
      "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": "Emergency care; recording by the CMO's agreement when the crewmember cannot speak.",
    "emergency": "If the crewmember cannot agree, the robot proceeds on the CMO's or commander's command.",
    "withdrawal": "The crewmember or CMO can stop video; the alert and record stand."
  },
  "inputs": [
    {
      "id": "IN-1",
      "name": "Monitor alarm text as displayed",
      "source": "Heart monitor",
      "required": false,
      "if_missing": "Log \"no alarm text\"."
    },
    {
      "id": "IN-2",
      "name": "Rhythm strip and heart rate as recorded (12-lead ECG if the CMO places it)",
      "source": "Heart monitor / ECG",
      "required": true,
      "if_missing": "Prompt the CMO to re-seat electrodes. After <set by validation> attempts, log \"strip not obtained\" and keep the alert. Never hold up the call."
    },
    {
      "id": "IN-3",
      "name": "Blood pressure and saturation as displayed",
      "source": "Monitor",
      "required": false,
      "if_missing": "Log \"not obtained\"."
    },
    {
      "id": "IN-4",
      "name": "Symptoms as stated: palpitations, light-headedness, fainting, chest pain, breathlessness",
      "source": "Crewmember",
      "required": true,
      "if_missing": "Log \"no response\"; URGENT."
    },
    {
      "id": "IN-5",
      "name": "Link status and delay",
      "source": "Communications system",
      "required": true,
      "if_missing": "Treat as link down; the onboard ECG reviewer reviews."
    }
  ],
  "steps": [
    {
      "id": "S1",
      "actor": "robot",
      "rung": 2,
      "action": "On a crewmember's or the CMO's word, send a \"heart rhythm alarm\" alert with the alarm text as displayed to the flight surgeon and the CMO at once (URGENT for any monitor rhythm alarm or any stated red flag; a Flag only where the flight surgeon's logged order says so). 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": "Alert acknowledged, or escalated.",
      "refs": [
        "V2 10174",
        "V1 6003",
        "V1 3006"
      ]
    },
    {
      "id": "S2",
      "actor": "robot",
      "rung": 2,
      "action": "On the CMO's command, bring the ECG medical kit and the defibrillator (closed; the robot never opens, charges or fires it) to the crewmember and restrain them within reach. 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 and defibrillator within reach, or skipped; override logged.",
      "limit": "<set by validation>",
      "refs": [
        "V2 7046"
      ]
    },
    {
      "id": "S3",
      "actor": "robot",
      "rung": 2,
      "action": "Show the electrode placement diagram and lead-contact indicators; record the strip, heart rate, blood pressure and saturation as displayed, each with its clock time.",
      "success": "Strip and readings recorded, or \"strip not obtained\" logged.",
      "refs": [
        "V1 3004"
      ]
    },
    {
      "id": "S4",
      "actor": "robot",
      "rung": 2,
      "action": "Ask the structured symptom questions and log the answers word for word.",
      "success": "Answers logged.",
      "refs": [
        "V1 3003"
      ]
    },
    {
      "id": "S5",
      "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": "S6",
      "actor": "robot",
      "rung": 2,
      "action": "Send the strip, readings and answers to the flight surgeon; when the link is down or delayed, send them to the onboard ECG reviewer at once (sending to the ground does not count as review).",
      "success": "Strip with the flight surgeon or the onboard reviewer.",
      "refs": [
        "V1 6003",
        "V1 7001"
      ]
    },
    {
      "id": "S7",
      "actor": "ground",
      "action": "The flight surgeon (or the onboard ECG reviewer and CMO under the onboard checklist) decides on monitoring, any treatment and any evacuation [V1 3007]; the robot repeats recordings only on that schedule.",
      "success": "Decision logged.",
      "refs": [
        "V1 3007"
      ]
    },
    {
      "id": "S8",
      "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": "S9",
      "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": "Reconciliation recorded; kits shown as opened – not restocked until resealed.",
      "refs": [
        "V2 7059"
      ]
    }
  ],
  "decisions": [
    {
      "id": "D1",
      "after": "S3",
      "decided_by": "crew",
      "question": "Has the crewmember become unresponsive or stopped breathing normally?",
      "branches": [
        {
          "if": "Yes",
          "then": "Start RMP-CARD-001 at once; the defibrillator is already at the scene, closed, for the crew."
        },
        {
          "if": "No",
          "then": "Continue."
        }
      ]
    },
    {
      "id": "D2",
      "after": "S4",
      "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": "S4",
      "decided_by": "robot",
      "question": "Did the crewmember answer the last question?",
      "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": "S7",
      "decided_by": "ground",
      "question": "What is the plan (monitoring, treatment, evacuation)?",
      "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": "S8",
      "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": "Robot pauses its own movement in its stopped position and tells the CMO and the commander. This pauses robot movement only: crew CPR, defibrillation, oxygen and the commander's vehicle procedure 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; 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"
    },
    {
      "id": "X9",
      "trigger": "The CMO needs the robot's space",
      "action": "Robot moves to its rest position at once and holds; it does not leave the module on its own.",
      "level": "safe-state",
      "refs": [
        "V2 10172"
      ]
    }
  ],
  "red_flags": [
    {
      "id": "RF1",
      "sign": "Unresponsive, or not breathing normally",
      "threshold": "any",
      "action": "URGENT alert; start RMP-CARD-001 now",
      "source": "aha2025bls"
    },
    {
      "id": "RF2",
      "sign": "Fainting or near-fainting",
      "threshold": "any",
      "action": "URGENT alert",
      "source": "kusumoto2018"
    },
    {
      "id": "RF3",
      "sign": "Chest pain or pressure (design judgment; same route as RMP-CARD-002)",
      "threshold": "any",
      "action": "URGENT alert; see RMP-CARD-002"
    },
    {
      "id": "RF4",
      "sign": "Breathlessness, or displayed saturation below the shared alert value",
      "threshold": "any; saturation below <set by clinical lead> percent (shared parameter SPO2_ALERT_PCT)",
      "action": "URGENT alert; see RMP-RESP-001; the crew act without waiting for a reading",
      "source": "btso2"
    },
    {
      "id": "RF5",
      "sign": "Confusion, drowsiness or new weakness (design judgment)",
      "threshold": "any",
      "action": "URGENT alert; a crewmember checks in person"
    },
    {
      "id": "RF6",
      "sign": "Any monitor rhythm alarm (design judgment; the same level as RMP-CARD-002 RF7 and RMP-INF-001 RF13)",
      "threshold": "any",
      "action": "URGENT alert; the robot names the alarm, never a rhythm. Only the flight surgeon, by a logged order, may set a reviewed recurring alarm for a named crewmember as a Flag"
    },
    {
      "id": "RF7",
      "sign": "Palpitations with no other symptom, as stated (design judgment)",
      "threshold": "any",
      "action": "Flag to the flight surgeon; the robot keeps recording on the flight surgeon's schedule"
    },
    {
      "id": "RF8",
      "sign": "Displayed systolic blood pressure low or high (design judgment; same values as RMP-CARD-002 RF1)",
      "threshold": "below or above <set by clinical lead> mmHg",
      "action": "URGENT alert to the CMO and the flight surgeon"
    },
    {
      "id": "RF9",
      "sign": "Displayed heart rate low or high (design judgment; same values as RMP-CARD-002 RF2)",
      "threshold": "below or above <set by clinical lead> beats per minute",
      "action": "URGENT alert"
    },
    {
      "id": "RF10",
      "sign": "Sweating, or pale or clammy skin, as stated (design judgment)",
      "threshold": "any",
      "action": "URGENT alert; a crewmember checks in person"
    },
    {
      "id": "RF11",
      "sign": "The oximeter cannot get a reading after the validated attempts (L5), and \"saturation not obtained\" is logged",
      "threshold": "any",
      "action": "URGENT alert; the CMO checks the crewmember now (possible poor circulation); the robot never says \"probe error\" and never treats a missing reading as reassuring",
      "source": "ng253"
    }
  ],
  "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": "Defibrillator use by the robot",
      "value": "not allowed",
      "enforced": "Robot cannot open, charge or fire it; carry task only"
    },
    {
      "id": "L3",
      "name": "Robot speed near the crewmember",
      "value": "<set by validation>",
      "enforced": "Hard limit in the controller",
      "refs": [
        "V2 10172"
      ]
    },
    {
      "id": "L4",
      "name": "Electrode re-seat prompts before \"strip not obtained\"",
      "value": "<set by validation>",
      "enforced": "Software"
    },
    {
      "id": "L5",
      "name": "Failed oximeter readings before \"saturation not obtained\"",
      "value": "<set by validation>",
      "enforced": "Software"
    }
  ],
  "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": "Alert time, alarm text as displayed, strips and readings with clock times, symptom answers, reviewer and decisions."
    },
    {
      "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"
      ]
    }
  ],
  "requirements": [
    {
      "id": "V1 3003",
      "use": "Monitor physiological well-being in flight, including heart rate and rhythm."
    },
    {
      "id": "V1 3004",
      "use": "In-mission care includes vital signs, electrocardiography and defibrillation by the crew."
    },
    {
      "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 3007",
      "use": "Medical evacuation when needed; the flight surgeon decides."
    },
    {
      "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": "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 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 alarms on a rhythm simulator, palpitations only, fainting, unresponsive transition to CARD-001, failed strip, lost link with onboard reviewer.",
      "pass": "No rhythm ever named; every strip reaches a reviewer."
    },
    {
      "stage": "training model",
      "what": "CMO drills with the robot recording strips on a manikin.",
      "pass": "Strip recorded within <set by validation> seconds of electrode placement."
    },
    {
      "stage": "parabolic or station demonstration",
      "what": "Defibrillator and kit fetch in weightlessness without a patient.",
      "pass": "Defibrillator closed and restrained."
    },
    {
      "stage": "flight use under flight surgeon supervision",
      "what": "First use in drills.",
      "pass": "No safety 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 a crewmember or the CMO. Strips are reviewed by the flight surgeon or the onboard ECG reviewer."
  },
  "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 the alert, records and video when the link allows.",
    "loss_of_signal": [
      "Only the robot pauses its own movement and tells the CMO and the commander; recording continues offline on confirmation.",
      "Crew CPR, defibrillation and oxygen continue under the onboard checklist and never wait for the link or the robot."
    ],
    "mars_delay": [
      "Rhythm review cannot wait for the ground; the onboard checklist and two trained CMOs lead."
    ]
  },
  "sources": [
    {
      "key": "ermed",
      "text": "NASA Human Research Program. Evidence Report: Risk of Adverse Health Outcomes and Decrements in Performance due to Medical Conditions that occur in Flight, as well as Private Medical Conditions, in Exploration Missions (In-Flight Medical Conditions).",
      "url": "https://humanresearchroadmap.nasa.gov/evidence/reports/Medical.pdf",
      "supports": "Serious abnormal heart rhythms (supraventricular and ventricular tachycardia) have occurred in flight; one case of an abnormal rhythm required that crewmembers be brought back."
    },
    {
      "key": "aha2025als",
      "text": "Wigginton JG, Agarwal S, Bartos JA, et al. Part 9: Adult Advanced Life Support: 2025 American Heart Association Guidelines for Cardiopulmonary Resuscitation and Emergency Cardiovascular Care. Circulation. 2025;152(16_suppl_2):S538-S577.",
      "url": "https://doi.org/10.1161/CIR.0000000000001376",
      "doi": "10.1161/CIR.0000000000001376",
      "pmid": "41122884",
      "supports": "AHA 2025 adult advanced life support covers peri-arrest conditions such as atrial fibrillation or flutter with a rapid ventricular rate, and the importance of identifying causative versus secondary arrhythmias. Context for the clinicians; the robot never interprets a rhythm."
    },
    {
      "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": "Hand-off to cardiac arrest support when the crewmember is unresponsive or not breathing normally."
    },
    {
      "key": "kusumoto2018",
      "text": "Kusumoto FM, Schoenfeld MH, Barrett C, et al. 2018 ACC/AHA/HRS Guideline on the Evaluation and Management of Patients With Bradycardia and Cardiac Conduction Delay. Circulation. 2019;140(8):e382-e482.",
      "url": "https://doi.org/10.1161/CIR.0000000000000628",
      "doi": "10.1161/CIR.0000000000000628",
      "pmid": "30586772",
      "supports": "Earth guidance on evaluating and managing slow heart rhythms and conduction delay, including correlation of symptoms with recorded rhythm. Context for the flight surgeon reading the strips; the robot never interprets rate or rhythm. PubMed record verified Oct 21, 2026 (publisher page blocks automated fetch)."
    },
    {
      "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": "joglar2024",
      "text": "Joglar JA, Chung MK, Armbruster AL, et al. 2023 ACC/AHA/ACCP/HRS guideline for the diagnosis and management of atrial fibrillation. Circulation. 2024;149(1):e1-e156. doi:10.1161/CIR.0000000000001193. PMID 38033089. PubMed record only (full text not read).",
      "url": "https://pubmed.ncbi.nlm.nih.gov/38033089/",
      "supports": "Earth guideline on atrial fibrillation for the clinicians who read the strips; cited as context only (PubMed record)."
    },
    {
      "key": "khine2018",
      "text": "Khine HW, Steding-Ehrenborg K, Hastings JL, et al. Effects of prolonged spaceflight on atrial size, atrial electrophysiology, and risk of atrial fibrillation. Circ Arrhythm Electrophysiol. 2018;11(5):e005959. doi:10.1161/CIRCEP.117.005959. PMID 29752376.",
      "url": "https://pubmed.ncbi.nlm.nih.gov/29752376/",
      "supports": "Abstract: atrial fibrillation (AF) prevalence in active astronauts is about 5%, similar to the general population but at a younger age; in 13 astronauts, left atrial volume rose transiently after 6 months in space, and none developed AF. Context only."
    },
    {
      "key": "btso2",
      "text": "British Thoracic Society. Guideline for oxygen use in healthcare and emergency settings (emergency oxygen guideline page). Fetched Oct 21, 2026.",
      "url": "https://www.brit-thoracic.org.uk/quality-improvement/guidelines/emergency-oxygen/",
      "supports": "Recommended target saturation range for acutely ill patients not at risk of hypercapnic respiratory failure is 94-98%; for known COPD or other risk factors for hypercapnic respiratory failure, 88-92% pending blood gas results. Context for the CMO and flight surgeon only; the robot never starts, stops or adjusts oxygen."
    },
    {
      "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, V1 3004 (vital signs, ECG, defibrillation by crew), V1 3006, V1 3007."
    },
    {
      "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": "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": "AI-assisted clinical and source review by the Medical Research Assistant, Oct 21, 2026 (batch 6 review)",
      "items": [
        "RF6: any monitor rhythm alarm is URGENT; the robot names the alarm, never a rhythm; only the flight surgeon, by a logged order, may set a reviewed recurring alarm for a named crewmember as a Flag; S1 matches. Same level as RMP-CARD-002 RF7 and RMP-INF-001 RF13 (item 21; design judgment).",
        "New URGENT RF8 (displayed systolic blood pressure below or above <set by clinical lead> mmHg), RF9 (heart rate below or above <set by clinical lead> beats per minute) and RF10 (sweating, pale or clammy, as stated), design judgment, the same values as RMP-CARD-002 (item 22).",
        "The \"why\" quotes the evidence report exactly and adds Khine 2018 (PMID 29752376) as AF context; the 2023 AF guideline (Joglar, PMID 38033089, PubMed record only) added as context; RF3, RF5, RF6 and RF7 labelled design judgment, with their stretched sources removed (item 23, suggestion 39).",
        "X5 and the comms loss-of-signal branch: only the robot pauses; crew CPR, defibrillation and oxygen never wait for the link or the robot (item 24).",
        "RF4 says the crew act without waiting for a reading; new URGENT RF11 and limit L5 for \"saturation not obtained\" (item 25).",
        "Never-words \"sinus rhythm\", \"no arrhythmia\", \"heart is fine\" and \"just palpitations\" (suggestion 38).",
        "Batch 6 protocols now record the review as AI-assisted (Medical Research Assistant, Oct 21, 2026); no named human clinician.",
        "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: v2). Editorial; no change to steps, thresholds or limits."
      ]
    }
  ]
}
