med.io - Device I/O
Interface for medical devices (infusion pumps, patient monitors, ventilators), waveform capture, alarm management, and laboratory information systems.
Device Connection
connect_device(device_id, device_type) ? dict
Register and connect a medical device.
command(device_id, cmd) ? dict
Send a command to a registered device.
Infusion Pump Control
infuse(pump_id, drug, rate) ? dict
Start or adjust an infusion on a pump.
stop_infusion(pump_id) ? dict
Stop an infusion on a pump.
bolus(pump_id, drug, volume_ml, duration_min=30) ? dict
Deliver a bolus dose. Automatically calculates rate from volume and duration.
med.io.connect_device("Pump_01", "InfusionPump");
med.io.infuse("Pump_01", "Norepinephrine", 0.1);
// Bolus: 250mL NS over 30 minutes
med.io.bolus("Pump_01", "NS", 250, 30);
// {'rate_ml_hr': 500.0}
Patient Monitor
read_monitor(monitor_id, parameter) ? dict
Read a specific vital sign from a patient monitor.
Supported parameters: HR, SpO2, RR, BP_SYS, BP_DIA, TEMP, ETCO2, CVP
let hr = med.io.read_monitor("Monitor_01", "HR");
// {'parameter': 'HR', 'value': 72.3}
read_all_vitals(monitor_id) ? dict
Read all vital signs (HR, SpO2, RR, BP, TEMP) from a patient monitor in one call.
lib.io.read_all_vitals("Monitor_01")
# {'vitals': {'HR': 72.3, 'SpO2': 97.1, 'RR': 16.2,
# 'BP_SYS': 118.5, 'BP_DIA': 73.8, 'TEMP': 37.0}}
Ventilator Control
send_ventilator(vent_id, parameter, value) ? dict
Set a ventilator parameter.
Supported parameters: FiO2, PEEP, TV (tidal volume), RR, I_E_RATIO, MODE
med.io.send_ventilator("Vent_01", "FiO2", 0.6);
med.io.send_ventilator("Vent_01", "PEEP", 10);
read_ventilator(vent_id) ? dict
Read current ventilator settings and measured values (mode, FiO2, PEEP, tidal volume, pressures, minute ventilation).
Waveform Capture
read_waveform(device_id, channel, duration_sec=5.0, sampling_rate_hz=250.0) ? dict
Capture waveform data from a device channel.
Supported channels: ECG_II, PLETH, RESP, ABP
Returns raw waveform data array for use with med.signal analysis functions.
let ecg = med.io.read_waveform("Monitor_01", "ECG_II", 5.0, 250.0);
// {'samples': 1250, 'data': [0.02, 0.05, ...]}
// Analyze with med.signal
let peaks = med.signal.detect_peaks(ecg.data);
Alarm Management
set_alarm(device_id, parameter, low, high) ? dict
Set alarm thresholds for a monitored parameter.
check_alarms(device_id) ? dict
Check all alarm conditions for a device. Returns list of triggered alarms.
med.io.set_alarm("Monitor_01", "HR", 50, 120);
med.io.set_alarm("Monitor_01", "SpO2", 90, 100);
let alarms = med.io.check_alarms("Monitor_01");
// {'alarms_triggered': 1, 'triggered': [{'parameter': 'HR', 'type': 'HIGH'}]}
Lab Interface
get_lab(test) ? float
Fetch the latest result for a lab test from the LIS (Laboratory Information System).
Complete Example
protocol ICU_Monitoring {
input: Patient p;
// Connect devices
med.io.connect_device("Mon_01", "Monitor");
med.io.connect_device("Vent_01", "Ventilator");
med.io.connect_device("Pump_01", "InfusionPump");
// Set alarm thresholds
med.io.set_alarm("Mon_01", "HR", 50, 130);
med.io.set_alarm("Mon_01", "SpO2", 88, 100);
// Read vitals
let vitals = med.io.read_all_vitals("Mon_01");
// Capture and analyze ECG
let ecg = med.io.read_waveform("Mon_01", "ECG_II", 5.0, 250.0);
let rhythm = med.signal.classify_rhythm(
med.signal.detect_peaks(ecg.data).inter_peak_intervals
);
// Ventilator management
let vent = med.io.read_ventilator("Vent_01");
// Start infusion
med.io.infuse("Pump_01", "Norepinephrine", 0.1);
// Check alarms
let alarms = med.io.check_alarms("Mon_01");
if alarms.alarms_triggered > 0 {
alert "Device alarm triggered" severity: warning;
}
}