File Exchange

image thumbnail

Dicom Tags Read and Write

version 1.1.0.0 (811 KB) by Dirk-Jan Kroon
Read / Write raw Dicom tags with large dictionary, for small file manipulations, like anonymize

10 Downloads

Updated 23 Feb 2011

View License

There are two main files, "ReadDicomElementList" which will read all tags of a dicom file into a struct and "WriteDicomElementList" which can write them back to a new file.

A large dicom dictionary is included from GDCM with private tags from Philips, Siemens and Toshiba (See Dictionary-License.txt).

These functions are usable for creation of an anatomize function, or to manipulate data which is not support by Matlab defaults functions (like writing a dicom file with one big volume inside)

Example read output:

>> Elements(4)
name: 'MediaStorageSOPInstanceUID'
data: '1.2.840.113619.2.1.2.2011002556.2.10.602503127'
group: '0002'
number: '0003'
type: 'UI'
length: 46
info: 'Type Included'
explicit: 1
location: 192

Cite As

Dirk-Jan Kroon (2019). Dicom Tags Read and Write (https://www.mathworks.com/matlabcentral/fileexchange/29145-dicom-tags-read-and-write), MATLAB Central File Exchange. Retrieved .

Comments and Ratings (4)

Zhiyan Wang

Thank you!

BLP

I have tried to get tag list for DICOM file generated by a Philips Epiq 5 ultrasound scanner and I got an error:

>> elementlist=ReadDicomElementList('IM_0001')
138 element.data=fread(f, element.length, 'uint8')';
Error using fread
Invalid size.
Error in ReadDicomElementList>ReadDicomElement (line 138)
element.data=fread(f, element.length, 'uint8')';
Error in ReadDicomElementList (line 65)
element=ReadDicomElement(f,dcmdic);

Any idea what may be the reason?

Scott

I'm running into a situation where the ReadDicomElement function fails to read the PixelData because the defined size is -1 (line 139 of ReadDicomElementList.m). A comment in the calling functionReadDicomElementList says it will "Read all tags until the PixelData is reached" but it proceeds to read until the end of the file is reached. How can one handle the OB-type PixelData element with element.length = -1?

Updates

1.1.0.0

Now also reads Dicom files with ISO header.
Tag-Replace Example.

MATLAB Release Compatibility
Created with R2010b
Compatible with any release
Platform Compatibility
Windows macOS Linux