Well.... some time without posting here. When things needs detail, speed goes down.
I had the chance to support a Dicom Viewer Station, implemented with an Imac PC.
Despite the commercial grade, the Retina Display has good enough specs near to Medical grade monitors, with a fraction of the cost. The picture shows the GUI from this Dicom Viewer to compare with the posted photo of the Skull; this bring a signal that is a good choice to use it.
The 3D Slicer is perfect to show the output images for the doctor´s diagnostic. However, there is a couple of things:
1) 3D slicer works with 2D images. It can use plenty of file formats, but again, 2D images.
2) CT systems does not produce images, it delivers Projections.
In this scenario, i need take the data collected from Gantry ( Detector), and translate to 2D images for use in 3D Slicer. To do the first part, i will Reuse this board:
This is an old 8 bit Frame Grabber that i got, and i had used into another past projects. As you can see, this board has a ISA BUS. This is itself a challenge, because i need to put in working condition the board to capture the projections.
After a Tons of reading, testing and evaluating the Open Source options, i found a perfect tool for this Project (conversion of 2D images into 3D volume, then slice it arbitrary). This is exactly what a doctor does analizing the patient´s anatomy. The software with the GUI closest to market systems is 3D SLICER (www.slicer.org)
This photo shows how it works, using a DataSet available for download with the software.
keeping the Open Source soul, the system is running on UBUNTU.
In the every day work, i put all my enthusiam and effort to recognize what is the fault in a broken system, from the Field Service point of view. That is, have clear what means every error code, and the countermeasures to fix it ASAP. I never realized (nor had time to think about), what is happenning under the hood.
Then, the pandemic´s lockdown came.....
In my case, i had a lot of free time to invest in research and web surfing, to learn, understand, and figure out how to do my idea. There is a lot of useful information out there. if you want read, then try this entries at google:
- Computed Tomography
- CT reconstruction
- FDK reconstruction
- Inverse Radon transform
- Tomographic Reconstruction Wiki
Youtube has nice presentations too, and if you like advanced Maths, the ReseachGate WebPage has very interesting papers/lecturers of academic rigor.
At this point, is clear that system comprises three big modules:
1) Xray generation
2) Projection Acquisition
3) Data Processing
Since this endeavor is revamp a system, the idea is to replace/update only 3,) or perhaps 2) and 3). Of course, nobody lets modify a working system to do Tests or Proof of concept. Then i need to figure out how to do it.
Here is a system that uses as Data Processing a couple of SGI´s computers: The Left is a Octane computer, the right side is an O2 system, without plastic covers. SGI computers were used in the commercial enviroment by graphic designers and audiovisual producers. this is my start point to find open source software to do the job.
With Data Collected inside console, then you need processing it to convert to perpendicular views, that is the images the Doctor uses to evaluate patient condition.
The video shows how it works: The relative movement between couple Tube-Detector and patient (Lemon), brings a series of photos taken around him (it). That photos are called Projections, and a set of Projections are called Sinogram (in this example, the Sinogram is the video spinning the Lemon). After a mathematical processing of the projections, you get the reconstructed image ( the Lemon Slice). The reconstructed image let you see the internal features of the structure. For example, in a Head exam, you can see how is the brain, without open the skull, even touch it!.
In the earlier systems, all the electronics was Tailor made; CPUs, memory boards, Interface boards, etc, were designed for the specific model. However, since the computational power of modern PCs is amazing, manufacturers start to use it in their systems. in the right photo we can see a Dell Precision T5400 tower.
The three machines does same thing: axial slices from scanned patient.... the difference? the older takes 3-5 seconds to do a single slice (image), while the newer build 16 images every single second!.....well, there is much faster systems, doing bigger amounts of images in a fraction of single second.
In this photo, a system still installed, being serviced. The main parts of the gantry, are the Xray source (the tube), and the Xray detectors array. The Tube is the gold part located almost 3 O´clock (well, there is a replacement inside the blue box at bottom); The Detector array is oposite side (the semicircular black thing). To be scanned, the patient is lying down between tube and detector. When system acquire data, the couple Tube-Detector rotates around the patient, with the tube emitting Xray, and the Detector receiving the images. The collected Data is sent to Image Processing Unit (operator console), for processing/computing job.