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

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负责与影像设备的直接交互,通过中间件或网关实现两种协议的转换和集成。

相关推荐
不老刘2 天前
如何将DICOM文件制作成在线云胶片
dicom·云影像·云胶片
西哥写代码2 天前
基于dcmtk的dicom工具 第九章 以json文件或sqlite为数据源的worklist服务(附工程源码)
sqlite·json·mfc·dcmtk·worklist
右弦GISer10 天前
【UE5医学影像可视化】读取dicom数据生成2D纹理并显示
ue5·dicom
西哥写代码14 天前
基于dcmtk的dicom工具 第四章 图像接受StoreSCP(2)
mfc·dicom·dcmtk·vs2017
右弦GISer1 个月前
【Dicom标准】dicom数据中pixelData显示处理流程详细介绍
dicom·医学图像
西哥写代码2 个月前
基于cornerstone3D的dicom影像浏览器 第三十一章 从PACS服务加载图像
javascript·pacs·dicom
翟天保Steven2 个月前
DCMTK&OpenCV-构建DICOM图像查看器
opencv·dicom·dcmtk
martian6652 个月前
深入详解DICOMweb:WADO与STOW-RS的技术解析与实现
开发语言·dicom
西哥写代码2 个月前
基于cornerstone3D的dicom影像浏览器 第二十四章 显示方位、坐标系、vr轮廓线
javascript·3d·vue3·vr·dicom·cornerstonejs