【问题标题】:How DCM4CHEE stores the bits allocation information of DICOM imageDCM4CHEE 如何存储 DICOM 图像的比特分配信息
【发布时间】:2010-10-13 12:35:57
【问题描述】:

我们使用 DCM4CHEE 作为 PACS 服务器的副本。我有 8 位和 16 位图像分布在多项研究中。所有图像都存储在 DCM4CHEE 中。

我们正在对样本图像运行 DICOM DUMP [DCM2TXT] 以识别位分配。这是一个漫长的过程。

DCM4CHEE 服务器是否将位表示形式存储在 DB 中?如果是,我在哪里可以找到有关已分配位的信息?

请帮助我找到最好的解决方案。

谢谢,

-阿尼尔·库马尔.C

【问题讨论】:

    标签: java dcm4che


    【解决方案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 表示“无符号短(美国)2字节长”,之后通常有 10 00 表示 16 位或 08 00 表示 8 位图像。所以,你真的只需要上面字节中的“xx”值。

    根据您将用于获取此数据的数据库访问工具,您可以选择最佳策略。它可以是与 dcm4chee 一起部署的 Web 应用程序(.war),可能只需一堆 jsp 就足够了;它可以是一个单独的 Java 应用程序甚至 .NET - 选择的工具实际上取决于您需要它的位置和用途。对于 Web 访问,我宁愿使用无状态会话 bean 做一个完整的 .ear 来获取数据,并使用受密码保护的小型 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-24
      • 1970-01-01
      • 2010-11-26
      • 1970-01-01
      • 1970-01-01
      • 2014-12-11
      • 2019-02-22
      • 1970-01-01
      相关资源
      最近更新 更多