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.");
}
```

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

被折叠的 条评论
为什么被折叠?



