【worklist】worklist的hl7、dicom是什么关系

发布于:2025-08-01 ⋅ 阅读:(15) ⋅ 点赞:(0)

HL7和DICOM在Worklist系统中是互补的关系,它们各自承担不同的角色,但协同工作以实现完整的医疗信息系统集成。

HL7与DICOM Worklist的关系

1. 功能分工

DICOM Worklist (Modality Worklist - MWL)

  • 主要用于影像设备获取患者和检查信息
  • 基于DICOM协议,使用C-FIND服务
  • 数据格式严格遵循DICOM标准
  • 直接与影像设备(CT、MRI、X-Ray等)交互

HL7 Worklist

  • 用于更广泛的医疗信息系统间的数据交换
  • 基于HL7协议,使用ORM、OMG等消息类型
  • 数据格式遵循HL7标准
  • 连接HIS、RIS、EMR等系统

2. 数据流向示例


HIS/RIS系统 → HL7 ORM消息 → Worklist Broker/网关 → DICOM MWL SCP → 影像设备 ↑ ↓ 人类可读的 影像设备可理解的DICOM格式 HL7格式

3. 字段映射关系

DICOM Tag DICOM含义 HL7字段 说明
(0008,0050) Accession Number OBR-3, ORC-3 检查申请号
(0010,0020) Patient ID PID-3 患者唯一标识
(0010,0010) Patient Name PID-5 患者姓名
(0010,0030) Patient Birth Date PID-7 出生日期
(0010,0040) Patient Sex PID-8 性别
(0008,0060) Modality OBR-24 检查类型
(0040,0001) Scheduled Station AE Title SCH-3 预约设备
(0038,0010) Admission ID PV1-19 住院号

4. 在实际系统中的协作


cpp

// 示例:HL7到DICOM的转换过程
struct WorklistConverter {
    // HL7消息中的患者信息
    struct HL7PatientInfo {
        std::string patientID;      // PID-3
        std::string patientName;    // PID-5
        std::string birthDate;      // PID-7
        std::string sex;            // PID-8
        std::string accessionNumber; // OBR-3
    };
    
    // 转换为DICOM格式供影像设备使用
    struct DICOMWorklistItem {
        std::string patientID;       // (0010,0020)
        std::string patientName;     // (0010,0010)
        std::string studyInstanceUID; // (0020,000D)
        std::string accessionNumber;  // (0008,0050)
        std::string modality;         // (0008,0060)
        // ... 其他DICOM字段
    };
};

5. 工作流程

  1. 预约阶段:HIS/RIS系统通过HL7消息发送检查预约信息
  2. 转换阶段:Worklist服务将HL7信息转换为DICOM格式存储
  3. 查询阶段:影像设备通过DICOM C-FIND查询Worklist
  4. 执行阶段:影像设备获取患者信息并执行检查
  5. 反馈阶段:检查结果通过HL7或DICOM发送回HIS/RIS

6. 技术实现考虑


cpp

// 简化的转换示例
class WorklistBridge {
public:
    // 将HL7消息转换为DICOM Worklist格式
    DicomDataset convertHL7ToDICOM(const HL7Message& hl7Msg) {
        DicomDataset dicomDS;
        
        // Patient ID转换
        dicomDS.set("0010,0020", hl7Msg.getPID_3()->getID()->getData());
        
        // Patient Name转换
        std::string fullName = std::string(hl7Msg.getPID_5()->getPatientName()->getFamilyName()->getSurname()->getData()) 
                             + "^" 
                             + std::string(hl7Msg.getPID_5()->getPatientName()->getGivenName()->getData());
        dicomDS.set("0010,0010", fullName);
        
        // Accession Number转换
        dicomDS.set("0008,0050", hl7Msg.getORDER()->getOBR_45()->getFillerOrderNumber()->getEntityIdentifier()->getData());
        
        return dicomDS;
    }
};

7. 优势

  • HL7:适合系统间业务数据交换,语义丰富
  • DICOM:适合影像设备直接使用,标准化程度高
  • 结合使用:实现从预约到执行的完整流程

总的来说,HL7和DICOM在Worklist系统中是相辅相成的关系,HL7负责系统间的业务数据传输,DICOM负责与影像设备的直接交互,通过中间件或网关实现两种协议的转换和集成。


网站公告

今日签到

点亮在社区的每一天
去签到