Skip to main content

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;
}
}