The latest version of oro.dicom (0.4.0) contains a substantial update:
- The function subroutines of readDICOMFile() have been re-written from scratch.
- The entire DICOM file is read into R using readBin(what = "raw") and parsed in a recursive fashion. That is, the DICOM header information is processed in the (group, element) doublets until a sequence header is found. Once a sequence header is found, then the subroutine is called again... and so on and so forth... until the entire DICOM header is parsed. This has reduced the total number of lines of code and, I believe, made the process more easily digestible.
- Assuming a PixelData or SpectroscopyData field is present, the subsequent bytes will be read into a separate R data structure.
The revised code has been tested against a collection of DICOM files and works well. However, only time will tell if the modifications work against the wide variety of DICOM headers one can find. If you have DICOM data that you would like to contribute to the test suite for oro.dicom, please contact me at email@example.com or post messages on this blog.