Re: query dicom [message #41781 is a reply to message #41774] |
Tue, 07 December 2004 13:44   |
David Fanning
Messages: 11724 Registered: August 2001
|
Senior Member |
|
|
Soren writes:
> I am new to IDL and have been trying to look through the docs in this
> issue:
> I want to query a dicom file for some tags, is it correctly understood
> that this is not supported in the standard IDL dicom reader?
While it is true the READ_DICOM function will not do
this, there is no reason you can't query for tags with
the IDLffDicom object. For example:
IDL> filename = filepath(subdir=['examples', 'data'], 'mr_brain.dcm')
IDL> thisobject = obj_new('idlffdicom', filename)
IDL> thisobject -> dumpelements
0 : (0002,0000) : UL : META Group Length : 4 : 162
1 : (0002,0001) : OB : META File Meta Information Version : 2 : 0 1
2 : (0002,0002) : UI : META Media Stored SOP Class UID : 26 :
1.2.840.10008.5.1.4.1.1.4
3 : (0002,0003) : UI : META Media Stored SOP Instance UID
:1.3.46.670589.11.98.4.1997040807120170
4 : (0002,0010) : UI : META Transfer Syntax UID : 20 :
1.2.840.10008.1.2.1
5 : (0002,0012) : UI : META Implementation Class UID : 16 :
1.3.46.670589.17
6 : (0002,0013) : SH : META Implementation Version Name : 12 :
ARC_CONVERT
7 : (0008,0005) : CS : ID Specific Character Set : 10 : ISO_IR 100
8 : (0008,0008) : CS : ID Image Type : 28 : ORIGINAL\PRIMARY\OTHER\M
\FFE
9 : (0008,0012) : DA : ID Instance Creation Date : 8 : 19970408
10 : (0008,0013) : TM : ID Instance Creation Time : 6 : 091220
11 : (0008,0014) : UI : ID Instance Creator UID : 22 :
1.3.46.670589.11.98.5
12 : (0008,0016) : UI : ID SOP Class UID : 26 :
1.2.840.10008.5.1.4.1.1.4
13 : (0008,0018) : UI : ID SOP Instance UID : 38 :
1.3.46.670589.11.98.4.1997040807120170
14 : (0008,0020) : DA : ID Study Date : 8 : 19960809
15 : (0008,0021) : DA : ID Series Date : 8 : 19960809
16 : (0008,0030) : TM : ID Study Time : 12 : 105141.0000
17 : (0008,0031) : TM : ID Series Time : 12 : 110419.3100
18 : (0008,0050) : SH : ID Accession Number : 0 :
19 : (0008,0060) : CS : ID Modality : 2 : MR
20 : (0008,0070) : LO : ID Manufacturer : 24 : Philips Medical Systems
21 : (0008,0080) : LO : ID Institution Name : 10 : MM05R R4.5
22 : (0008,0090) : PN : ID Referring Physician's Name : 0 :
23 : (0008,1030) : LO : ID Study Description : 4 : head
24 : (0008,103E) : LO : ID Series Description : 56 : Brain
T1W/3D/TFE TRA T1TFE 17 5 30
25 : (0008,1090) : LO : ID Manufacturer Model Name : 12 : Gyroscan NT
26 : (0010,0010) : PN : PAT Patient Name : 16 : MR dataset Brain
27 : (0010,0020) : LO : PAT Patient ID : 4 : reg2
28 : (0010,0030) : DA : PAT Patient Birthdate : 8 : 19110101
29 : (0010,0040) : CS : PAT Patient Sex : 2 : M
30 : (0010,1030) : DS : PAT Patient Weight : 2 : 80
31 : (0018,0020) : CS : ACQ Scanning Sequence : 2 : GR
32 : (0018,0021) : CS : ACQ Sequence Variant : 6 : OTHER
33 : (0018,0022) : CS : ACQ Scan Options : 0 :
34 : (0018,0023) : CS : ACQ MR Acquisition Type : 2 : 3D
35 : (0018,0050) : DS : ACQ Slice Thickness : 8 : 1.600000
36 : (0018,0080) : DS : ACQ Repetition Time : 10 : 17.420601
37 : (0018,0081) : DS : ACQ Echo Time : 8 : 4.600255
38 : (0018,0083) : DS : ACQ Number of Averages : 2 : 1
39 : (0018,0084) : DS : ACQ Imaging Frequency : 10 : 63.912701
40 : (0018,0085) : SH : ACQ Imaged Nucleus : 2 : 1H
41 : (0018,0086) : IS : ACQ Echo Number : 2 : 1
42 : (0018,0087) : DS : ACQ Magnetic Field Strength : 8 : 1.500000
43 : (0018,0088) : DS : ACQ Spacing Between Slices : 8 : 0.800000
44 : (0018,0089) : IS : ACQ Number of Phase Encoding Steps : 4 : 179
45 : (0018,0091) : IS : ACQ Echo Train Length : 2 : 0
46 : (0018,0093) : DS : ACQ Percent Sampling : 10 : 69.921883
47 : (0018,0094) : DS : ACQ Percent Phase Field of View : 10 :
79.687500
48 : (0018,1000) : LO : ACQ Device Serial Number : 6 : 00005
49 : (0018,1020) : LO : ACQ Software Version : 6 : NT4.5
50 : (0018,1030) : LO : ACQ Protocol Name : 10 : T1W/3D/TFE
51 : (0018,1081) : IS : ACQ Low R-R Value : 2 : 0
52 : (0018,1082) : IS : ACQ High R-R Value : 2 : 0
53 : (0018,1083) : IS : ACQ Intervals Acquired : 2 : 0
54 : (0018,1084) : IS : ACQ Intervals Rejected : 2 : 0
55 : (0018,1088) : IS : ACQ Heart Rate : 2 : 60
56 : (0018,1250) : SH : ACQ Receiving Coil : 2 : H
57 : (0018,1251) : SH : ACQ Transmitting Coil : 2 : B
58 : (0018,1312) : CS : ACQ Phase Encoding Direction : 4 : ROW
59 : (0018,1314) : DS : ACQ Flip Angle : 10 : 30.000000
60 : (0018,5100) : CS : ACQ Patient Position : 4 : HFS
61 : (0020,000D) : UI : REL Study Instance UID : 38 :
1.3.46.670589.11.98.1.1997040807080001
62 : (0020,000E) : UI : REL Series Instance UID : 38 :
1.3.46.670589.11.98.2.1997040807080001
63 : (0020,0010) : SH : REL Study ID : 4 : 735
64 : (0020,0011) : IS : REL Series Number : 2 : 1
65 : (0020,0012) : IS : REL Acquisition Number : 2 : 3
66 : (0020,0013) : IS : REL Image Number : 4 : 170
67 : (0020,0032) : DS : REL Image Position Patient : 34 : -110.000000
\-114.843517\58.580631
68 : (0020,0037) : DS : REL Image Orientation (Patient) : 54 :
1.000000\0.000000\0.000000\0.000000\1.000000\0.000000
69 : (0020,0052) : UI : REL Frame of Reference UID : 38 :
1.3.46.670589.11.98.3.1997040807080001
70 : (0020,1040) : LO : REL Position Reference Indicator : 0 :
71 : (0020,4000) : LT : REL Image Comments : 0 :
72 : (0028,0002) : US : IMG Samples Per Pixel : 2 : 1
73 : (0028,0004) : CS : IMG Photometric Interpretation : 12 :
MONOCHROME2
74 : (0028,0010) : US : IMG Rows : 2 : 256
75 : (0028,0011) : US : IMG Columns : 2 : 256
76 : (0028,0030) : DS : IMG Pixel Spacing : 18 : 0.859375\0.859375
77 : (0028,0100) : US : IMG Bits Allocated : 2 : 16
78 : (0028,0101) : US : IMG Bits Stored : 2 : 12
79 : (0028,0102) : US : IMG High Bit : 2 : 11
80 : (0028,0103) : US : IMG Pixel Representation : 2 : 0
81 : (0028,1050) : DS : IMG Window Center : 4 : 1011
82 : (0028,1051) : DS : IMG Window Width : 4 : 2021
83 : (0028,1052) : DS : IMG Rescale Intercept : 8 : 0.000000
84 : (0028,1053) : DS : IMG Rescale Slope : 8 : 3.701832
85 : (0028,1054) : LO : IMG Rescale Type : 2 : US
86 : (7FE0,0010) : OW : PXL Pixel Data : 131072 : 0 0 0 0 0 0 0 0 0 0
0 0 ...
87 : (FFFC,FFFC) : OB : Pad item : 332 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 ...
IDL> modality = thisobject -> getValue('0008'x, '0060'x)
IDL> print, *modality[0]
MR
> Is ther eany good free IDL code that will do this?
If you want more than this, in IDL at any rate, I think
you have to pay for it.
Anyone know how much the new DICOM support costs?
Cheers,
David
--
David Fanning, Ph.D.
Fanning Software Consulting, Inc.
Coyote's Guide to IDL Programming: http://www.dfanning.com/
|
|
|