worklist 需要传的参数

本文详细介绍了在DICOM标准中,工作列表(worklist)需要传递的各种TAG信息,包括患者姓名、预约站AETitle、预约流程步骤开始日期时间、设备模式、执行医师、患者ID、预约号等关键属性,以及如何使用Java代码设置这些属性。
部署运行你感兴趣的模型镜像

worklist 需要传递的TAG信息

PatientName,ScheduledStationAETitle,ScheduledProcedureStepStartDate,ScheduledProcedureStepStartTime,Modality,ScheduledPerformingPhysicianName,PatientID,AccessionNumber,RequestedProcedureID,ReferringPhysicianName,PatientSex,RequestingPhysician,AdmissionID,RequestedProcedurePriority,PatientBirthDate,PatientAge,InstitutionName,RequestedProcedureDescription,StudyInstanceUID,ScheduledProcedureStepID,ScheduledProcedureStepDescription

```

    Attributes attributes = new Attributes();
    if (StringUtils.isNotBlank(item.getPatientName())) {
        attributes.setString(Tag.PatientName, VR.PN, item.getPatientName());
    }
    attributes.setString(Tag.ScheduledStationAETitle, VR.AE, item.getScheduledStationAETitle());

    if (null != item.getScheduledProcedureStepStartDateTime()) {
        attributes.setString(Tag.ScheduledProcedureStepStartDate, VR.TM, DcmDateUtil.getYMDDate(item.getScheduledProcedureStepStartDateTime()));
    }

    if (null != item.getScheduledProcedureStepStartDateTime()) {
        attributes.setString(Tag.ScheduledProcedureStepStartTime, VR.TM, DcmDateUtil.getHMSDate(item.getScheduledProcedureStepStartDateTime()));
    }

    if (StringUtils.isNotBlank(item.getModality())) {
        attributes.setString(Tag.Modality, VR.CS, item.getModality());
    }
    attributes.setString(Tag.ScheduledPerformingPhysicianName, VR.PN, item.getScheduledPerformingPhysicianName());
    if (StringUtils.isNotBlank(item.getPatientID())) {
        attributes.setString(Tag.PatientID, VR.LO, item.getPatientID());
    }

    attributes.setString(Tag.AccessionNumber, VR.SH, item.getAccessionNumber());

    attributes.setString(Tag.RequestedProcedureID, VR.SH, item.getRequestedProcedureID());
    attributes.setString(Tag.ReferringPhysicianName, VR.PN, item.getReferringPhysicianName());
    attributes.setString(Tag.PatientSex, VR.CS, item.getPatientSex());
    attributes.setString(Tag.RequestingPhysician, VR.PN, item.getRequestingPhysician());
    attributes.setString(Tag.AdmissionID, VR.LO, item.getAdmissionID());
    attributes.setString(Tag.RequestedProcedurePriority, VR.SH, item.getRequestedProcedurePriority());
    attributes.setString(Tag.PatientBirthDate, VR.DA, item.getPatientBirthDate());
    attributes.setString(Tag.PatientAge, VR.AS, item.getPatientAge());
    attributes.setString(Tag.InstitutionName, VR.LO, item.getInstitutionName());
    attributes.setString(Tag.RequestedProcedureDescription, VR.LO, item.getBodyPartName());
    if (StringUtils.isNotBlank(item.getStudyInstanceUID())) {
        attributes.setString(Tag.StudyInstanceUID, VR.UI, item.getStudyInstanceUID());

    }
    if (StringUtils.isNotBlank(item.getAccessionNumber())) {
        attributes.setString(Tag.ScheduledProcedureStepID, VR.SH, item.getAccessionNumber());
    }
    if (StringUtils.isNotBlank(item.getBodyPartName())) {
        attributes.setString(Tag.ScheduledProcedureStepDescription, VR.LO, item.getBodyPartName());
        attributes.setString(Tag.StudyDescription, VR.LO, item.getBodyPartName());

    }

    attributes.setString(Tag.SpecificCharacterSet, VR.CS, item.getSpecifiedCharset());
    String procedureCode = item.getProcedureCode();
    String bodyPartName = item.getBodyPartName();

    if (!StringUtils.isAnyBlank(procedureCode, bodyPartName)) {
        Sequence RequestedProcedureCodeSequence = attributes.newSequence(Tag.RequestedProcedureCodeSequence, 1);
        Attributes requestedProcedureCodeAttr = new Attributes();
        requestedProcedureCodeAttr.setString(Tag.CodeMeaning, VR.LO, item.getBodyPartName());
        requestedProcedureCodeAttr.setString(Tag.CodeValue, VR.SH, item.getProcedureCode());
        requestedProcedureCodeAttr.setString(Tag.CodingSchemeDesignator, VR.SH, "99IHE");
        RequestedProcedureCodeSequence.add(requestedProcedureCodeAttr);

        Sequence scheduledProtocolCodeSequence = attributes.newSequence(Tag.ScheduledProtocolCodeSequence, 1);
        Attributes scheduledProtocolCodeAttr = new Attributes();
        scheduledProtocolCodeAttr.setString(Tag.CodeMeaning, VR.LO, item.getBodyPartName());
        scheduledProtocolCodeAttr.setString(Tag.CodeValue, VR.SH, item.getProcedureCode());
        scheduledProtocolCodeAttr.setString(Tag.CodingSchemeDesignator, VR.SH, "99IHE");
        scheduledProtocolCodeSequence.add(scheduledProtocolCodeAttr);
    }

    Sequence scheduledProcedureStepSequence = attributes.newSequence(Tag.ScheduledProcedureStepSequence, 1);
    Attributes scheduledProcedureStepAttr = new Attributes();
    scheduledProcedureStepAttr.setString(Tag.ScheduledStationName, VR.SH, "");
    scheduledProcedureStepAttr.setString(Tag.ScheduledProcedureStepLocation, VR.SH, "");
    scheduledProcedureStepAttr.setString(Tag.ScheduledProcedureStepID, VR.SH, item.getAccessionNumber());
    scheduledProcedureStepAttr.setString(Tag.ScheduledProcedureStepDescription, VR.LO, item.getBodyPartName());
    scheduledProcedureStepAttr.setString(Tag.ScheduledStationAETitle, VR.AE, item.getScheduledStationAETitle());
    scheduledProcedureStepAttr.setString(Tag.ScheduledProcedureStepStartDate, VR.DA, DcmDateUtil.getYMDDate(item.getScheduledProcedureStepStartDateTime()));
    scheduledProcedureStepAttr.setString(Tag.ScheduledProcedureStepStartTime, VR.TM, DcmDateUtil.getHMSDate(item.getScheduledProcedureStepStartDateTime()));
    scheduledProcedureStepAttr.setString(Tag.Modality, VR.CS, item.getModality());
    scheduledProcedureStepSequence.add(scheduledProcedureStepAttr);

    addReferenceStudyAndPatientSeq(attributes);

    if (dataSetIsComplete(attributes)) {
        resAttrs.add(attributes);
    } else {
        logger.error("dataset is not complete.");
    }

```

 

 

 

 

 

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值