2010-10-13 52 views
0

我們使用DCM4CHEE作爲PACS服務器的副本。我有8位和16位圖像傳播多個研究。所有圖像都存儲在DCM4CHEE中。DCM4CHEE如何存儲DICOM圖像的位分配信息

我們在樣本圖像上運行DICOM DUMP [DCM2TXT]以標識比特分配。這是一個漫長的過程。

DCM4CHEE服務器是否將比特表示存儲在數據庫?如果是的話,我可以在哪裏找到有關分配比特的信息?

請幫我找到最佳解決方案。

感謝,

-Anil Kumar.C

回答

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位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