DICOM Conformance Statment
System 2100
Jan. 24, 2001
Read
Any file header will be ignored. However, it is assumed that the meta file header is Little Endian. After the meta file header, both Big and Little Endian encoded files can be read. The reader assumes that a DICOM file, after the file header, will start with a small group number, such that the byte order can be determined from the first group part of the tag. If the tag is a number larger than 255, then the element number is considered. Assuming one byte of the two byte group or element number is zero, the byte order is determined by which byte is non-zero and which byte is zero. If both the first group and element tag have two non-zero bytes each, then the four byte data size field is examined. If one byte order results in a number between zero and 255, that byte order is assumed. Otherwise the file will not be read.
The read function requires certain DICOM tags depending upon the use of the file. Files read to form a stacked image set require more information than files read just to display an image. Images are sorted by (10,10), patient’s name, (20,10), study ID, (20,11), series number, and (20,12), acquisition number.
For a stacked image set image, the position and orientation of the image relative to the patient must be known. This is determined differently in Dicom 3 versus Dicom 1 and 2.
Dicom 3
Required tags:
(18,5100) patient position (supine or prone, head first or feet first).
(20,32) position of image relative to patient.
(20,37) image orientation relative to patient.
Dicom 1 or 2
The software will attempt to compute the position of the image relative to the patient. If (20,30) and (20,35) below are absent, than for CT only, (8,60), modality, the program will compute the same vectors from (18,1120), gantry rotation, and (20,50), image location.
From (18,5100), patient position, we will have only supine or prone in Dicom 1 or 2. From (20,20), patient orientation, and (20,35), image orientation relative to equipment, we can infer head first or feet first. This with (20,30), image position relative to equipment, we can compute the position and orientation vectors relative to the patient to replace (20,32) and (20,37).
(8,70), manufacturer, is checked for Toshiba. Toshiba private codes (19, 1108) feet first or head first, and (19,110A), supine or prone are read and will be used to replace (18,5100) above. (20,20) is checked and the column vector in (20,35) may be corrected, which was noted to be wrong in a sample image.
Image Data
For all images one must have (28,10), number rows and (28,11), number columns, and the actual image data (7FE0,10). Only (28,2), samples per pixel, equal to 1 is supported. Only (28,100), bits allocated, equal to sixteen is supported, and defaults to 16. (28,101), bits stored, and (28,102), high bit, will be used to shift the bit data if necessary and mask out unassigned bits.
For CT data, (8,60), modality, (28,1052), rescale intercept, should be present, but will otherwise default to 0, and (28, 1053), rescale slope, should be present, but will default to 1. Both unsigned and two’s complement (28, 103), pixel representation, are supported.
For other image modalities, only unsigned pixel representation is supported, (28,103), pixel representation.
The pixel size, (28,30), pixel spacing, is needed, and if absent the pixel size will be computed from (18, 1100), reconstruction diameter, if present.
Write
Output Coplanar Contours
There is an option to write back out the image files for a stacked image set with contours. Only contours that lie within the plane of the image can be written to an image file. The contour data will simply be spliced into the file using group 50xx, with a limit of 128 contours. The Endian of the file will be used (Little or Big). The groups count evenly so that the group numbers go 5000, 5002, 5004, etc.. For each contour the following is written:
(50xx,5), curve dimensions = 2,
(50xx,10), number of points,
(50xx,20, type of data, = “ROI”,
(50xx,22), curve description, will contain the name of the volume that the curve came from,
(50xx,30), axis units, equal “PIXL”,
(50xx,103), data value representation, equals 2, single precision floating point,
(50xx,3000), the curve data.
Write Out All Contours
All contours may be written out to a Dicom file. Only contour data is written out in the coordinate system that defined the image position and image orientation relative to the patient. The meta file header is not written. Header information written is:
(8,12), (8,13), (8,14), (8,16), (8,18), (8,20), (8,21), (8,22), (8,25), (8,30), (8,31), (8,32), (8,35), (8,60), (8,64), (8,70), (8,80), (8,81), (8,90), (8,1010), (8,1030), (8,103E), (8,1040), (8,1050), (8,1070), (8,1090), (10,10), (10,20), (10,40), (18,1010), (18,1012), (18,1014), (18,1016), (18,1018), (18,1019), (18,5100), (20,0D), (20,0E), (20,10), (20,11), (20,12), (20,24).
(8,18), the unique instance identifier, shall consist of 1.2.840.113735. followed by the computer serial number, the process ID, year, month, day, hour, min, sec, and count within the second for each file produced in that second.
The curves are then written out:
(50xx,5), curve dimensions = 3,
(50xx,10), number of points,
(50xx,20, type of data, = “ROI”,
(50xx,22), curve description, will contain the name of the volume that the curve came from,
(50xx,30), axis units, equal “CM”,
(50xx,103), data value representation, equals 2, single precision floating point,
(50xx,3000), the curve data.
Multiple files will be written if there are more than 128 contours. The byte order of the image files that the stacked image set came from will be used.
Write Image Files in Equivalent Planes
The option exist to write out reformatted image data from one image set to correspond to the image planes in another fused image set. The resultant DICOM files are a mixture of items from the files of the two image sets. The user picks whether the output file is Little or Big Endian.
The Dicom meta file header specified in PS 3.10 is not appended to the files written out.
The image type (8,8) will be: DERIVED\SECONDARY\REFORMATTED\FROMFUSION
The instance creation date (8,12) and time (8,13) will be when the data is reformatted and the file is written out.
(8,14), instance creator ID will consist of the computer serial number, the user’s id, and the process id.
The SOP class ID (8,16) is copied from the image set supplying the image data.
The SOP Instance UID (unique identifier) (8,18) will consist of 1.2.840 followed by our company ANSI number 113735, followed by the serial number of the computer, followed by the process ID (when the program was running), followed by the year, month, day, hour, min, second, and count within the second for each image file written out during that second.
The study (8,20), series (8,21), and acquisition (8,22) date, and times, (8,30), (8,31), (8,32), and UID's for the same will come from a file in the image set that the pixel data is coming from. The image date (8,23) and time (8,33) will be the current date and time. However, the coordinates for the image will come from the other image set. This is so that the source of the pixel data can be identified, but the image would be located relative to the image system from which the plane definitions were taken.
All data except as noted below will come from the image set providing the pixel data. This includes the manufacturer's name, patient name, patient ID, and any other names. Slice thickness and slice spacing will also come from the image set providing the pixel data.
This computer and software will define the secondary capture device tags (18,1010), (18,1012), (18,1014), (18,1016), (18,1018), and (18,1019) which defines the system that reformatted the images.
The image set providing the plane definitions will provide the data for the following tags:
(20,20), Patient Orientation (marks edge of image left, right, superior, inferior).
(20,32), Image Position. This is the coordinates of the upper left hand corner of the image.
(20,37), Image Orientation. This is the vectors defining in patient space the horizontal and vertical directions of the image.
Data coming from this program are tags:
(8,8), (8,12), (8,14), (8,16), (8,23), (8,33), (8,64), (18,1010), (18,1012), (18,1014), (18,1016), (18,1018), (18,1019), (20,13) image number, (28,2), (28,4), (28,10), (28,11), (28,30), (28,100), (28,101), (28,102), (28,103), (28,106), (28,107), (28,1052), (28,1053).
The below tags come from the image set providing the pixel values:
(8,16), (8,20), (8,21), (8,22), (8,30), (8,31), (8,32), (8,60), (8,70), (8,80), (8,81), (8,90), (8,1010), (8,1030), (8,103E), (8,1040), (8,1050), (8,1070), (8,1090), (10,10), (10,20), (10,40), (18,50), (18,60), (18,88), (18,5100), (20,0D), (20,0E), (20,10), (20,11), (20,12).
Pixel data, (7FE0,10), will be reformatted.