我们使用DCM4CHEE作为PACS服务器的副本。我有8位和16位图像分布在多个研究中。所有图像都存储在DCM4CHEE中。
我们在样本图像上运行DICOM DUMP [DCM2TXT]以识别比特分配。这是一个漫长的过程。
DCM4CHEE服务器是否将位表示存储在DB?中,如果是这样,我在哪里可以找到有关所分配位的信息?
请帮助我找到最佳解决方案。
谢谢,
-Anil Kumar.C
答案 0 :(得分:1)
是的,它在数据库中,可以非常快速地访问。在数据库/模式'pacsdb'中,表名是'instance',列名是'inst_attrs'。最有可能的是,您必须使用涉及学习和系列表的连接进行选择,具体取决于您搜索/显示数据的方式。
现在,问题是,inst_attrs是一个带有二进制数据的BLOB。在里面,您需要查找以下十六进制字符串(来自DICOM传输语法)28 00 00 01 55 53 02 00 xx 00 这里,28 00 00 01实际上是(0028,0100)标签(分配位)的十六进制,55 53 02 00表示“无符号短(US)2字节长”,之后通常有10 00表示16位或08 00为8位图像。所以,你真的只需要上面字节中的“xx”值。
根据您将用于获取此数据的数据库访问工具,您可以选择最佳策略。它可以是与dcm4chee一起部署的web应用程序(.war),可能只是一堆jsp就足够了;它可以是一个单独的Java应用程序甚至是.NET - 选择的工具实际上取决于您需要它的位置和内容。对于Web访问,我宁愿做一个完整的.ear与无状态会话bean来获取数据和小的,受密码保护的Web应用程序来呈现数据并从外部提供JSON / WS访问。
<强>更新强> 下面是一个SQL示例(仅限MySQL),它返回研究UID,系列UID和分配为10的16位和08位的8位图像:
SELECT study_iuid as StudyUID, series_iuid as SeriesUID,
SUBSTRING(HEX(inst_attrs),
LOCATE('2800000155530200',HEX(inst_attrs))+16
,2) as BitsAllocatedHex
FROM instance i JOIN series s ON i.series_fk=s.pk
JOIN study st ON s.study_fk=st.pk