我想搜索DICOM服务器.例如,如果用户输入患者ID以进行搜索,那么我的应用程序将填充一个表格,其中包含与该ID相关的所有元数据,例如id,name,登录号e.tc. 如果在dicom服务器中存在研究ID,如何使用dcm4chee工具包完成. -
您可以使用dcm4che3工具dcm4che-tool-findscu.此代码向您展示如何针对PACS(或任何实现C-FIND作为SCP)执行C-FIND.
FindSCU.java非常清楚,需要一段时间,不要错过Apache Commons CLI代码来理解来自控制台的输入.大多数CLI管理代码不在此项目中,但您可以在dcm4che3工具dcm4che-tool-common项目org.dcm4che3.tool.common.CLIUtils.java类中找到它.
考虑以下因素:
FindSCU.java,您将看到可以管理四个不同的级别:PATIENT|STUDY|SERIES|IMAGE.这将指示C-FIND SCP如何搜索匹配的属性.0020, 000D Study InstanceUID标记.
0020, 000D Study InstanceUID标记值执行C-GET/C-MOVE操作.您可以看到如何配置属性键以将C-FIND SCU CLIUtils.java作为dcm4che3工具dcm4che-tool-common项目的一部分进行操作.见CLIUtils.addAttributes(Attributes, String[]).
希望能帮助到你!
由于你评论你使用dcm4che2并且你已经有了DicomObject搜索结果,如果你想从中获取元数据,DicomObject你必须先解析它,使用DicomInputStream,然后你可以使用getXXXX(Tag)from BasiDicomObject,如下所示:
DicomObject dcmObj;
DicomInputStream dis = null;
dis = new DicomInputStream(file);
dcmObj = dis.readDicomObject();
String someVar = dcmObj.getString(Tag.SeriesInstanceUID);
Run Code Online (Sandbox Code Playgroud)
请记住,一些属性是在序列内部,因此您必须先搜索它.
您还可以查看dcm4che-tool-dcm2txt,您将看到Dcm2Txt.java并在第170行等等,有如何解析整个dicom对象.
| 归档时间: |
|
| 查看次数: |
899 次 |
| 最近记录: |