Как DCM4CHEE хранит информацию о распределении битов изображения DICOM - PullRequest
0 голосов
/ 13 октября 2010

Мы используем DCM4CHEE в качестве копии сервера PACS. У меня есть 8-битные и 16-битные изображения, распределенные по нескольким исследованиям. Все изображения хранятся в DCM4CHEE.

Мы запускаем DICOM DUMP [DCM2TXT] для образцов изображений, чтобы определить распределение битов. Это длительный процесс.

Сохраняет ли сервер DCM4CHEE представление битов в БД? Если да, то где я могу найти информацию о выделенных битах?

Пожалуйста, помогите мне найти лучшее решение для этого.

Спасибо

-Анил Кумар. С

1 Ответ

1 голос
/ 12 января 2011

Да, он находится в базе данных и доступен очень быстро.В базе данных / схеме 'pacsdb' имя таблицы - 'instance', имя столбца - 'inst_attrs'.Скорее всего, вам нужно будет сделать выбор с объединениями, включающими таблицы обучения и серии, в зависимости от того, как вы ищете / представляете свои данные.

Теперь проблема в том, что inst_attrs - это BLOB с двоичными данными.Внутри вам нужно будет найти следующую шестнадцатеричную строку (из синтаксиса передачи DICOM) 28 00 00 01 55 53 02 00 xx 00 Здесь 28 00 00 01 фактически является шестнадцатеричным для (0028, 0100) тега (выделенные биты), 5553 02 00 говорит "Unsigned Short (US) длиной 2 байта", и после этого обычно есть 10 00 для 16-битных или 08 00 для 8-битных изображений.Таким образом, вам действительно нужно только значение «xx» из байтов выше.

В зависимости от инструментов доступа к базе данных, которые вы будете использовать для получения этих данных, вы можете выбрать лучшую стратегию.Это может быть веб-приложение (.war), развернутое вместе с dcm4chee, вероятно, будет достаточно просто нескольких jsp;это может быть отдельное Java-приложение или даже .NET - выбор инструмента действительно зависит от того, где и для чего он вам нужен.Для веб-доступа я бы предпочел сделать полный год с сеансным компонентом без сохранения состояния для извлечения данных и небольшое защищенное паролем веб-приложение для представления данных и обеспечения доступа 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
...