# hl7_adapter/main.py
from hl7.parser import parse

def to_canonical(raw):
    m = parse(raw, find_groups=False)
    return {
      "event_type": "infusion_pump",
      "patient_id":  m.PID.pid_3.cx_1.value,
      "drug":        m.OBX[3].obx_5.value,
      "rate_ml_h":   float(m.OBX[4].obx_5.value),
      "alarm_code":  m.OBX[5].obx_5.value,
      "timestamp":   m.MSH.msh_7.ts_1.value,
    }
