{
  "$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 9 review: 16 required corrections, R1 to R17 with R10 dropped, of which R17 applies to RMP-PHARM-002; 20 optional suggestions); 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."
  },
  "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-RESP-004",
  "slug": "rmp-resp-004",
  "title": "Lung ultrasound assist with a crew-held probe (diagnostic only)",
  "category": "resp",
  "tier": 2,
  "rung_note": "Max rung 2 for supervised fetching of the ultrasound kit, holding the display and reference card, and labelling and relaying clips. The CMO holds the probe, as in RMP-GI-001: \"Contact with the crewmember: not allowed\".",
  "result_language": {
    "use": [
      "non-diagnostic",
      "images acquired, for human review",
      "image not obtained",
      "reading as displayed",
      "sent to flight surgeon",
      "as stated by the crewmember"
    ],
    "never": [
      "normal",
      "no problem found",
      "all clear",
      "negative",
      "any diagnosis or cause",
      "looks fine",
      "nothing seen",
      "verified",
      "no abnormality",
      "clear",
      "pneumothorax",
      "no pneumothorax",
      "collapsed lung",
      "lung sliding",
      "B-lines",
      "fluid",
      "no fluid",
      "pneumonia",
      "lungs clear",
      "safe",
      "mild",
      "minor",
      "lung point",
      "A-lines",
      "consolidation",
      "effusion",
      "no B-lines",
      "sliding present",
      "sliding absent",
      "good images",
      "adequate"
    ]
  },
  "scope": {
    "summary": "When the flight surgeon or CMO wants a lung ultrasound (for example for shortness of breath, chest pain after an injury, or a low oxygen reading), the robot alerts the flight surgeon at once, brings the ultrasound kit by a checked kit fetch, holds the display and the probe reference card where the CMO can see them, relays live images and voice to the ground imaging expert when the link allows, and labels and stores each clip with the chest zone the CMO names and the clock time. The CMO holds the probe. Every image is \"non-diagnostic, for human review\": the robot never reads an image or says what it shows.",
    "why": "Point-of-care lung ultrasound is used in emergency and critical care on Earth, with 73 international consensus statements covering, for example, a collapsed lung (pneumothorax), fluid around the lung and lung consolidation (Volpicelli 2012). In an animal model on parabolic flights, ultrasound detected small amounts of air and fluid in the chest (Hamilton 2004), and on the ISS a minimally trained crewmember, guided from Mission Control, completed a remote-guided ultrasound examination (Sargsyan 2005). NASA's in-flight medical conditions evidence report describes the ADUM (Advanced Diagnostic Ultrasound in Microgravity) project, which guides \"minimally trained crewmembers\" by remote guidance and just-in-time instruction. Here ultrasound is diagnostic only: it never delays oxygen, the call to the flight surgeon or emergency care, and an onboard CMO is not an experienced operator, so images are for remote expert review only and never rule anything out. Which chest zones are scanned is set by the onboard checklist or the ground expert (design judgment). 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.",
    "covers": [
      "Lung ultrasound with a crew-held probe, in flight or on a planetary surface, with ground remote guidance or store-and-forward",
      "Shortness of breath and oxygen: RMP-RESP-001; chest pain: RMP-CARD-002; injury: RMP-MSK-001",
      "Probe cleaning under RMP-INF-002"
    ],
    "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)",
      "Holding, moving or pressing the probe, or touching the chest",
      "Reading or measuring an image, or saying what an image shows or does not show",
      "Starting, stopping or adjusting oxygen",
      "Any procedure on the chest (for example needle or tube placement)",
      "Scanning over an open wound or broken skin, unless the flight surgeon directs it with a sterile cover"
    ],
    "related": [
      "RMP-RESP-001",
      "RMP-CARD-002",
      "RMP-MSK-001",
      "RMP-GI-001",
      "RMP-INF-002",
      "RMP-CARD-001",
      "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": [
      "Alert the flight surgeon at once",
      "Bring the ultrasound kit by a checked kit fetch (or an emergency fetch)",
      "Hold the display and the probe reference card where the CMO can see them",
      "Relay live images and voice to the ground imaging expert when the link allows",
      "Label and store each clip with the zone the CMO names and the clock time",
      "Record oxygen saturation as displayed"
    ],
    "robot_may_not": [
      "Hold, move or press the probe, or touch the crewmember",
      "Read, measure or describe an image",
      "Say what is wrong, or that nothing is wrong",
      "Touch the oxygen supply",
      "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": "The CMO or the flight surgeon asked for a lung ultrasound by command.",
      "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 the scan, images and video; the CMO confirms. Images go only to the flight surgeon and the ground imaging expert the flight surgeon names.",
    "emergency": "If the crewmember cannot agree, the robot proceeds on the CMO's command; the scan never delays care.",
    "withdrawal": "The crewmember can stop the scan, images or video at any time; the alert and the record stand."
  },
  "inputs": [
    {
      "id": "IN-1",
      "name": "The reason for the scan and the chest zones to scan, as the CMO or ground expert names them",
      "source": "CMO / ground imaging expert",
      "required": true,
      "if_missing": "The robot shows the onboard scan checklist; the CMO decides."
    },
    {
      "id": "IN-2",
      "name": "Breathing symptoms in the crewmember's words",
      "source": "Crewmember",
      "required": false,
      "if_missing": "Log \"no response\"; D3 applies."
    },
    {
      "id": "IN-3",
      "name": "Oxygen saturation and heart rate as displayed",
      "source": "Crew-placed pulse oximeter",
      "required": false,
      "if_missing": "Log \"saturation not obtained\" (never a value); see RF4."
    },
    {
      "id": "IN-4",
      "name": "Ultrasound clips, each with the zone the CMO names",
      "source": "Ultrasound unit",
      "required": false,
      "if_missing": "Log \"image not obtained\" (never a reassuring value) and continue."
    },
    {
      "id": "IN-5",
      "name": "Link status and delay",
      "source": "Communications system",
      "required": true,
      "if_missing": "Treat as link down; store and forward."
    }
  ],
  "steps": [
    {
      "id": "S1",
      "actor": "robot",
      "rung": 2,
      "action": "Send a \"lung ultrasound requested\" notice to the flight surgeon and the CMO at once (URGENT if a red flag is already 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 acknowledged, or escalated.",
      "refs": [
        "V2 10174",
        "V1 6003",
        "V1 3006"
      ]
    },
    {
      "id": "S2",
      "actor": "robot",
      "rung": 2,
      "action": "On the CMO's command, run a checked kit fetch of the ultrasound medical kit (unit, sealed gel and probe-cover pack): 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 within reach after a matched ID and seal, or quarantined, or emergency fetch logged.",
      "limit": "<set by validation>",
      "refs": [
        "V2 7046",
        "V2 7059"
      ]
    },
    {
      "id": "S3",
      "actor": "crew",
      "action": "The CMO checks breathing and oxygen first under the onboard checklist (RMP-RESP-001); the crewmember and the CMO are restrained for scanning. Oxygen and emergency care never wait for the scan.",
      "success": "Human-led care; robot logs what is stated.",
      "refs": [
        "V1 3004",
        "V2 7046"
      ]
    },
    {
      "id": "S4",
      "actor": "robot",
      "rung": 2,
      "action": "Hold the ultrasound display and the probe reference card where the CMO can see them, no closer than the set display distance, and relay live images and voice to the ground imaging expert when the link allows. When the link is down, show the onboard scan checklist and store the clips for forwarding.",
      "success": "Display and card in view; relay running or clips stored.",
      "limit": "<set by validation>",
      "refs": [
        "V2 7045"
      ]
    },
    {
      "id": "S5",
      "actor": "crew",
      "action": "The CMO holds the probe and scans the zones that the onboard checklist or the ground expert names; the crewmember can stop at any time. The probe and gel are never placed on an open wound or broken skin unless the flight surgeon directs it with a sterile cover.",
      "success": "Scan done, stopped, or not possible.",
      "refs": [
        "V1 3004"
      ]
    },
    {
      "id": "S6",
      "actor": "robot",
      "rung": 2,
      "action": "Label and store each clip with the zone the CMO names and the clock time, mark every clip \"non-diagnostic, for human review\", record oxygen saturation as displayed, and log stated answers word for word. A device image-quality prompt is passed on to the CMO as displayed; the robot never judges an image.",
      "success": "Clips labelled; gaps logged as \"image not obtained\".",
      "refs": [
        "V1 7001"
      ]
    },
    {
      "id": "S7",
      "actor": "crew",
      "action": "After the scan, the crew clean the probe and any shared surface under RMP-INF-002; a probe on intact skin is noncritical equipment, and a probe cover never allows a lower level of cleaning. A probe that touched broken skin is semicritical equipment: the crew tag it \"not for use\" under RMP-INF-002 until it has had high-level disinfection.",
      "success": "Cleaning recorded as stated under RMP-INF-002.",
      "refs": [
        "V2 7046"
      ]
    },
    {
      "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 with the ground imaging expert (or the CMO under the onboard checklist when there is no link) reviews the images and decides on care, repeat scans and any evacuation [V1 3007]; evacuation preparation follows RMP-EGR-001.",
      "success": "Decision logged.",
      "refs": [
        "V1 3007"
      ]
    },
    {
      "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": "Reconciliation recorded; kit shown as opened – not restocked until resealed.",
      "refs": [
        "V2 7059"
      ]
    },
    {
      "id": "S12",
      "actor": "robot",
      "rung": 2,
      "action": "Send the flight surgeon one package: stated answers, saturation as displayed, labelled clips, times and decisions; images go only to the people the flight surgeon names.",
      "success": "Package delivered or queued.",
      "refs": [
        "V1 6003",
        "V1 7001",
        "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": "S6",
      "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": "S6",
      "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": "S9",
      "decided_by": "ground",
      "question": "What is the plan (care, repeat scan, 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": "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 oxygen, breathing care and all crew 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": "The crew need the robot's space",
      "action": "Robot moves clear at once without contact and holds; it never pauses in a hatch route; it does not leave the module on its own.",
      "level": "safe-state",
      "refs": [
        "V2 10172"
      ]
    },
    {
      "id": "X10",
      "trigger": "The crewmember says the probe makes the pain or breathing worse, or asks to stop the scan",
      "action": "Robot stops relaying scan prompts and keeps the record; the CMO decides whether to continue. Worse breathing is a red flag.",
      "level": "stop"
    }
  ],
  "red_flags": [
    {
      "id": "RF1",
      "sign": "Breathing getting worse, or the crewmember cannot speak in full sentences, as stated (design judgment)",
      "threshold": "any",
      "action": "URGENT alert; see RMP-RESP-001; the scan stops if the CMO says so"
    },
    {
      "id": "RF2",
      "sign": "Chest pain, pressure or tightness, as stated",
      "threshold": "any",
      "action": "URGENT alert; see RMP-CARD-002",
      "source": "gulati"
    },
    {
      "id": "RF3",
      "sign": "Displayed oxygen saturation (pulse oximeter) below the shared alert value",
      "threshold": "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": "RF4",
      "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"
    },
    {
      "id": "RF5",
      "sign": "Chest pain or breathlessness after an injury or impact",
      "threshold": "any",
      "action": "URGENT alert; see RMP-MSK-001",
      "source": "ng39"
    },
    {
      "id": "RF6",
      "sign": "Unresponsive, or not breathing normally",
      "threshold": "any",
      "action": "URGENT alert; start RMP-CARD-001 now",
      "source": "aha2025bls"
    },
    {
      "id": "RF7",
      "sign": "Breathlessness with fever, shaking chills or new confusion, as stated",
      "threshold": "any",
      "action": "URGENT alert; see RMP-INF-001",
      "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": "Probe holding or movement by the robot",
      "value": "not allowed",
      "enforced": "No probe task is loaded; the robot holds only the display and reference card"
    },
    {
      "id": "L3",
      "name": "Robot speed near the crewmember",
      "value": "<set by validation>",
      "enforced": "Hard limit in the controller",
      "refs": [
        "V2 10172"
      ]
    },
    {
      "id": "L4",
      "name": "Display distance from the crewmember",
      "value": "<set by validation>",
      "enforced": "Hard limit in the controller",
      "refs": [
        "V2 10172"
      ]
    },
    {
      "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": "Stated answers, saturation as displayed, each clip with its zone, label and time, relay start and stop, 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"
      ]
    },
    {
      "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 care includes imaging; the CMO scans and a human reviews every image."
    },
    {
      "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 breathlessness cases with and without red flags, kit seal mismatch, image not obtained, failed oximeter reading, CMO as patient, lost link.",
      "pass": "Zero contact; no image described; red flags raised at once."
    },
    {
      "stage": "training model",
      "what": "CMO scans a chest phantom with the robot holding the display and relaying to a ground expert.",
      "pass": "Every clip labelled; no robot wording about image content."
    },
    {
      "stage": "parabolic or station demonstration",
      "what": "Display hold and relay in weightlessness on a phantom.",
      "pass": "Display distance limit held."
    },
    {
      "stage": "flight use under flight surgeon supervision",
      "what": "First use in drills and scheduled scans.",
      "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 the CMO or the flight surgeon. The CMO holds the probe; a human reviews every image."
  },
  "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 ground imaging expert can guide the CMO in real time 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 oxygen, breathing care and all crew care continue under the onboard checklist and never wait for the link or the robot.",
      "The CMO scans under the onboard checklist and the clips are stored for forwarding."
    ],
    "mars_delay": [
      "Mars: live remote guidance is not possible; the CMO uses the onboard scan checklist and the flight surgeon reviews the stored clips when they arrive."
    ]
  },
  "sources": [
    {
      "key": "volpicelli2012",
      "text": "Volpicelli G, Elbarbary M, Blaivas M, et al. International evidence-based recommendations for point-of-care lung ultrasound. Intensive Care Med. 2012;38(4):577-591.",
      "url": "https://doi.org/10.1007/s00134-012-2513-4",
      "doi": "10.1007/s00134-012-2513-4",
      "pmid": "22392031",
      "supports": "Abstract: an international consensus conference produced 73 statements on point-of-care lung ultrasound in emergency and critical care (including pneumothorax, interstitial syndrome, lung consolidation and pleural effusion). Earth context for the flight surgeon and the ground imaging expert; the robot never reads an image. Abstract read Oct 21, 2026."
    },
    {
      "key": "hamilton2004",
      "text": "Hamilton DR, Sargsyan AE, Kirkpatrick AW, et al. Sonographic detection of pneumothorax and hemothorax in microgravity. Aviat Space Environ Med. 2004;75(3):272-277.",
      "url": "https://pubmed.ncbi.nlm.nih.gov/15018297/",
      "pmid": "15018297",
      "supports": "Abstract: in an animal model on parabolic flights, ultrasound detected pneumothorax after 100 ml of air and fluid in the chest after 50 ml; the presence of lung sliding excluded pneumothorax. Animal and parabolic-flight context only. Abstract read Oct 21, 2026."
    },
    {
      "key": "sargsyan2005",
      "text": "Sargsyan AE, Hamilton DR, Jones JA, et al. FAST at MACH 20: clinical ultrasound aboard the International Space Station. J Trauma. 2005;58(1):35-39.",
      "url": "https://doi.org/10.1097/01.ta.0000145083.47032.78",
      "doi": "10.1097/01.ta.0000145083.47032.78",
      "pmid": "15674147",
      "supports": "An ISS crewmember with minimal sonography training was remotely guided from Mission Control through a FAST (focused assessment with sonography for trauma) examination of four abdominal windows in about 5.5 minutes, with a 2-second delay, private two-way audio and video downlink, and identical reference cards for crew and ground expert. Abstract read."
    },
    {
      "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": "NASA in-flight medical conditions evidence report: the ADUM (Advanced Diagnostic Ultrasound in Microgravity) project \"uses remote guidance, telemedical interfaces, and just-in-time instruction techniques to guide minimally trained crewmembers in acquisition of adequate imaging\"."
    },
    {
      "key": "gulati",
      "text": "Gulati M, Levy PD, Mukherjee D, et al. 2021 AHA/ACC/ASE/CHEST/SAEM/SCCT/SCMR guideline for the evaluation and diagnosis of chest pain. Circulation. 2021;144(22):e368-e454.",
      "url": "https://doi.org/10.1161/CIR.0000000000001029",
      "doi": "10.1161/CIR.0000000000001029",
      "pmid": "34709879",
      "supports": "Chest pain includes pressure, tightness or discomfort in the chest, shoulders, arms, neck, back, upper abdomen or jaw."
    },
    {
      "key": "ng39",
      "text": "National Institute for Health and Care Excellence. Major trauma: assessment and initial management. NICE guideline NG39 (2016).",
      "url": "https://www.nice.org.uk/guidance/ng39/chapter/Recommendations",
      "supports": "Injury pathway (NICE major trauma guideline); chest symptoms after an injury go to RMP-MSK-001."
    },
    {
      "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": "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": "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": "cdcdis",
      "text": "U.S. Centers for Disease Control and Prevention. Guideline for Disinfection and Sterilization in Healthcare Facilities (2008): summary of recommendations.",
      "url": "https://www.cdc.gov/infection-control/hcp/disinfection-sterilization/summary-recommendations.html",
      "supports": "3.b: at least high-level disinfection for semicritical equipment that touches mucous membranes or non-intact skin; 3.c: low-level disinfection for noncritical equipment that touches intact skin; 10.b: probe covers do not allow a lower category of disinfection. Read live (WebFetch, Oct 21, 2026; 3.b as quoted in RMP-INF-002)."
    },
    {
      "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 (in-mission imaging), V1 3006, V1 3007, V1 6003, V1 7001, 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": "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 9 review)",
      "items": [
        "Probe on broken skin: the probe and gel are never placed on an open wound or broken skin unless the flight surgeon directs it with a sterile cover; a probe that touched broken skin is semicritical and tagged \"not for use\" under RMP-INF-002 until it has had high-level disinfection (CDC 3.b) (R4).",
        "Never-words added: \"lung point\", \"A-lines\", \"consolidation\", \"effusion\", \"no B-lines\", \"sliding present\", \"sliding absent\", \"good images\", \"adequate\" (S6, Q2).",
        "Batch 9 protocols now record the review as AI-assisted (Medical Research Assistant, Oct 21, 2026); no named human clinician."
      ]
    }
  ]
}
