An orthoslice module that works in conjunction with Read_DICOM to produce correctly orientated 2D slices of medical data.
Inputs
Name Type Description in link (Mesh_Unif+Node_Data) Field containing a DICOM volume axis int slice direction perpendicular to x(0), y(1) or z(2) axis plane int the slice to extract Output Ports
Name Type Description out link (Mesh_Unif+Node_Data) a link to a 2D Field represent to request slice obj link (DataObject) renderable object
In the main this module works similarly to the standard AVS/Express orthoslice module, with the following expections:
- only handles uniform meshes (the core module being DICOM_orthoslice_unif)
- currently only handles scalar data.
The way in which ReadDICOM works and clincians expect to view the slices means that the the standard orthoslice doesn't necessarily produce slices that are correctly orientated, especially when displayed in a 2D view e.g, Patient Left is on the left rather than the right. In a 3D view since the images can be viewed from either side anyway the feature of DICOM_Orthoslice aren't required. For DICOM_Orthoslice to work some assumptions are made about the DICOM data:
- The patients was lying on thier back for the scan
- Slices were acquired moving in the direction from the feet to the head, hence the images are to viewed as if looking from the feet at the head
ReadDICOM places each slice face down starting at z = 0, consecutive slices are added at incremental z positions. The AVS/Express orthoslice when set to the z axis (2) look from the green view point whereas the desired direction and the one returned by DICOM_Orthoslice is from the blue view point this being the axial view. There is a similar problem in the y axis, coronal view.
in
A Mesh_Unif+Node_Data possibly originating from a Read_DICOM macro ut not necessarily
axis
Which axis to slice; 0 = x, sagittal , 1 = y, coronal, 2 = z, axial
plane
Which slice to return in the range 0 to dims[axis]-1
out
A 2D Mesh_Unif+Node_Data of the requested slice
obj
A renderable object
The DICOM_Orthoslice_Eg application requires Read_DICOM (the user must also provide the data) and uses DICOM_Orthoslice to present the three orthogonal views of the data.
iac_proj/dcmortho/dcmortho.v Creates the IAC_PROJ.DICOMOrtho library
iac_proj/dcmortho/dcmomods.v Creates the DICOMOrthoMods library containing the low-level module DICOM_orthoslice_unif.
iac_proj/dcmortho/dcmomacs.v Creates the DICOMOrthoMacs library containing the high-level user macro DICOM_Orthoslice, functional macro DICOM_Orthoslice_Unif and user interface macro DICOM_Orthoslice_UI.
iac_proj/dcmortho/dcmoapps.v Creates the DICOMOrthoApps library containing the example application macro DICOM_OrthosliceEg.
It is possible that in future that Read_DICOM will change the orientation in which it loads the data making this macro unnecessary.
Developed as part of the Sir Jules Thorn Charitable Trust funded project CAMRAS
James S. Perrin : james.perrin@man.ac.uk, Manchester Visualization Centre
International AVS Centre Manchester Visualization Centre Kilburn Building University of Manchester Oxford Road Manchester United Kingdom M13 9PL