[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Чем смотреть файлы DICOM под Debian



Доброго всем вечера,

Столкнулся для себя с нестандартной проблемой - надо посмотреть файлы DICOM.
Дали CD-диск с файлами AUTORUN.INF  CDVIEWER.EXE  CDVIEWER.JAR  DICOMDIR
в корне, дирами A и вложенной в нее дирой B  в которой находятся
собственно DICOM-файлы. Это все дело прислали мне эл. почтой.
> $ file AUTORUN.INF 
> AUTORUN.INF: Microsoft Windows Autorun file.

> $ file CDVIEWER.EXE 
> CDVIEWER.EXE: PE32 executable for MS Windows (GUI) Intel 80386 32-bit

> $ file DICOMDIR 
> DICOMDIR: DICOM medical imaging data

> file A00
> A00: DICOM medical imaging data

Нашел в дистре сквизи такие пакеты:
~$ aptitude search dicom
i   dicom3tools                     - DICOM medical image files
manipulation and
i   dicomnifti                      - конвертирует файлы DICOM в формат
NIfTI
i   dicomscope                      - The OFFIS DICOM Viewer

i   python-dicom                    - DICOM medical file reading and
writing
Установил их.

Пытаюсь открыть файлы в dicomscope - ничего не открывает, пишет - Load
Failed.
Не совсем правда понимаю, что грузить, пытался грузить и сами
dicom-файлы, и файл DICOMDIR - без толку.
В Process Log в окошке дикомдира никакого лога при этом не вижу.
Пытаюсь исполнить strace dicomscope, лается на то, что:
> open("/usr/lib/jvm/java-6-openjdk/jre/bin/../lib/amd64/jli/tls/x86_64/libz.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/bin/../lib/amd64/jli/tls/x86_64", 0x7fff6f258be0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/jvm/java-6-openjdk/jre/bin/../lib/amd64/jli/tls/libz.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/bin/../lib/amd64/jli/tls", 0x7fff6f258be0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/jvm/java-6-openjdk/jre/bin/../lib/amd64/jli/x86_64/libz.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/bin/../lib/amd64/jli/x86_64", 0x7fff6f258be0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/jvm/java-6-openjdk/jre/bin/../lib/amd64/jli/libz.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/bin/../lib/amd64/jli", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
> open("/usr/lib/jvm/java-6-openjdk/jre/bin/../jre/lib/amd64/jli/tls/x86_64/libz.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/bin/../jre/lib/amd64/jli/tls/x86_64", 0x7fff6f258be0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/jvm/java-6-openjdk/jre/bin/../jre/lib/amd64/jli/tls/libz.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/bin/../jre/lib/amd64/jli/tls", 0x7fff6f258be0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/jvm/java-6-openjdk/jre/bin/../jre/lib/amd64/jli/x86_64/libz.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/bin/../jre/lib/amd64/jli/x86_64", 0x7fff6f258be0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/jvm/java-6-openjdk/jre/bin/../jre/lib/amd64/jli/libz.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/bin/../jre/lib/amd64/jli", 0x7fff6f258be0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server/tls/x86_64/libz.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server/tls/x86_64", 0x7fff6f258be0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server/tls/libz.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server/tls", 0x7fff6f258be0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server/x86_64/libz.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server/x86_64", 0x7fff6f258be0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server/libz.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
> open("/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/tls/x86_64/libz.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/tls/x86_64", 0x7fff6f258be0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/tls/libz.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/tls", 0x7fff6f258be0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/x86_64/libz.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/x86_64", 0x7fff6f258be0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/libz.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/lib/amd64", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
> open("/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64/tls/x86_64/libz.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64/tls/x86_64", 0x7fff6f258be0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64/tls/libz.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64/tls", 0x7fff6f258be0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64/x86_64/libz.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64/x86_64", 0x7fff6f258be0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64/libz.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64", 0x7fff6f258be0) = -1 ENOENT (No such file or directory)
нет файлов, которые похоже проге нужны.
Вроде бы основные пакеты оупджавы в системе есть:
> $ aptitude search openjdk
> p   openjdk-6-dbg                                                               - Java runtime based on OpenJDK (debugging symbols)                                     
> p   openjdk-6-demo                                                              - Java runtime based on OpenJDK (demos and examples)                                    
> p   openjdk-6-doc                                                               - OpenJDK Development Kit (JDK) documentation                                           
> p   openjdk-6-jdk                                                               - комплект разработчика OpenJDK                                                         
> i A openjdk-6-jre                                                               - OpenJDK Java runtime, using Hotspot JIT                                               
> i A openjdk-6-jre-headless                                                      - OpenJDK Java runtime, using Hotspot JIT (headless)                                    
> i A openjdk-6-jre-lib                                                           - OpenJDK Java runtime (architecture independent libraries)                             
> v   openjdk-6-jre-shark                                                         -                                                                                       
> p   openjdk-6-jre-zero                                                          - Alternative JVM for OpenJDK, using Zero/Shark                                         
> p   openjdk-6-source             ,
не знаю какого рожна ему не хватает, не документации же или сырцов
оупнджавы?!


В dicom3tools входят следующие утилиты:
> /usr/bin/andump
> /usr/bin/dcentvfy
> /usr/bin/dcsrdump
> /usr/bin/dcsort
> /usr/bin/dctable
> /usr/bin/dcdirdmp
> /usr/bin/dcdump
> /usr/bin/dcfile
> /usr/bin/dchist
> /usr/bin/dckey
> /usr/bin/dciodvfy
> /usr/bin/dcstats
> /usr/bin/jpegdump
но ни одной из них я не смог посмотреть картинки. В лучшем случае
получал какую-то метаинформацию о файле.

Как пользоваться python-dicom  вообще не понял, видимо он нужен для
написания питон-скриптов для чтения этих файлов, в чем я не силен.

Утилита dicomhead из пакета dicomnifti выдает какую-то фигню:
> $ dicomhead DICOMDIR 
> 
> 	**** DICOMImage::Mosaic: Cannot get value of image type in image DICOMDIR

> $ dicomhead A/B/A00
> 
> 	**** DICOMImage::NumSlices: Cannot get number of slices from A/B/A00
> 	**** Setting value to 1 (can be changed with '-s' option on command line.)
> 
> 
> 	**** DICOMImage::GetRepetitonTime: Cannot get value of acquisition repetition time in image A/B/A00


При употреблении указанной опции -s ругается, что не может открыть файл
-s, воспринимая ее не как опцию, а как файл (в man нет вообще опций
никаких).
Что за NIfTI format и как его читать, если в него конвертнуть, я честно
не совсем понимаю.
Пытался wine'ом открыть CDVIEWER.EXE - ругается, что нужна java 1.5 или
выше, видимо пойду в виртмашину открывать в винде, хотя эта идея мне
особо не нравиться...


Reply to: