CTLungAnalyzerCTLungAnalyzer is a new 3DSlicer extension for segmentation and spatial reconstruction of infiltrated and collapsed areas in chest CT examinations.
In CT scans, pulmonary infiltrations as well as non-ventilated areas like emphysema or bullae are usually analyzed visually. Up to now, the extend of these abnormalities can not be quantified in numbers or milliliters and thus it is difficult to objectively compare results. This especially crucial in the light of the current COVID-19 pandemia, where there are high case loads of patients with severe lung infiltrations, which additionally need meticulous follow up over time. The aim of this project was to develop a software program that enables threedimensional segmentation of the CT data and calculate their individual volumes. 3D slicer (1) is an established an freely available 3D imaging platform for scientific use. Therefore, we chose 3DSlicer and Python as our main developing tool.
DICOM CT datasets of patients can be imported into 3DSlicer via URL, direct file read or DICOM LAN operations. As a first step, we call up the CT scan in the segment editor, create a new volume node "Segmentation" and add two segments into this node: "Right lung mask" and "Left lung mask". Next, we use the "Draw" function of 3DSlicer and place 4-5 hand drawn slices over the right and left lung from top to bottom. Then we use the "Fill between slices" function to generate the two lung masks. Until further notice and program version, these steps have to be performed manually. We then developed the CTLungAnalyzer (CTLA) extension from scratch in the programming language Python. The software uses freely definable threshold ranges to identify five regions of interest: "Bulla/emphysema","Ventilated","Infiltrated", "Collapsed" and "Lung Vessel". Segments are generated using 3DSlicer's segment editor "Threshold" function and the volume of each segment is calculated by using 3DSlicer's "Segment statistics" function. The results are then superimposed to the CT 2D views in standard colors: "Bulla" = black, "Ventilated" = blue, "Infiltrated" = yellow, "Collapsed" = pink and "Vessel" = red. In addition, spatial reconstruction (3D) of the diseased lung segments is available. The total results of the segmentation include:
Total lung volume (100%)
Right lung volume (% of total lung volume)
Left lung volume (% of total lung volume)
Functional right lung volume (ventilated, % of right lung volume)
Functional left lung volume (ventilatzed, % of left lung volume)
Functional total lung volume (ventilated, % of total lung volume)
Affected right lung volume (infiltrated + collapsed right volume, % of right lung volume)
Affected left lung volume (infiltrated + collapsed left volume, % of left lung volume)
Affected total lung volume (infiltrated + collapsed total volume, % of total lung volume)
CovidQ (COVID-19 quotient: total affected lung volume [ml] / total lung volume [ml])
Vessel volume is subtracted from right lung volume, left lung volume and total lung volume to compensate for this anatomic compartment. Intrapulmonary airways are not yet measured by CTLA and are not compensated for in the results.
If used with sensible thresholds, CTLA is feasible, easy to use and 100% reproducible. Spacial reconstruction of the segments yield impressive visual results. Although the production of a right and left lung mask is still rather time consuming (15 min), running CTLA only takes 5-6 seconds, running CTLA with 3D reconstruction takes about 1-2 minutes. CTLA has bee developed and tested with 3DSlicer V 4.11.200930.
Lung volumes represent areas within the lung masks only. This induces a marginal volume error. Lung vessels have a thin infiltration-like parenchyma cover around them. This induces a small volume error. CovidQ has not been clinically evaluated yet. Do NOT base and treatment decisions on that value alone. 3DSlicer is NOT FDA approved. It is the users responsibility to ensure compliance with applicable rules and regulations.
See also: https://www.slicer.org/wiki/CommercialUse
- Load chest CT DICOM data or use the demo dataset included in 3DSlicer
- Go "segment editor" and create a node "Segmentations"
- Add two segments: "Right lung mask ands "Left lung mask"
- Use the "Draw" function to create a few (4-5) slices on the axial representation of the chest CT scan ("red slice only")
- Use the "Fill Slices" function to create the right and left lung mask.
- Call up the "CTLungAnalyzer" extension in 3DSlicer.
- Select the correct chest CT volume.
- Use the threshold sliders to define sensible thresholds for the calculation.
- Press "Apply" for creating the new segments and see their two and threedimensional representations as well as a result table.
- You can do that over and over again. CTLungAnalyzer will delete the last segmentations / results (if requested) .
- Once you are satisfied with the results, save the dataset by using slicers "save" function.
Quantitative ventrodorsal lung infiltrate analysis (effect of patient positioning)
Fiduical placements in trachea, normal lung, COVID lung, vessel and calculating autothresholds
Compensate for the "vessel infiltrate" error
Compensate for the "lung airway volume " error
(semi) automated lung masks
V1.0 is what you see here.
Github page and download:
Idea and realization :
Prof. Rudolf Bumm
Department of Surgery
(c) 2020 by R. Bumm, Munich / Chur.
All rights reserved. The code presented here is distributed under the https://www.apache.org/licenses/LICENSE-2.0 license.
Development and marketing: c/o Scientific-Networks Munich
COVID-19 patient under surveillance, published with patients permission.
Fig 1: Zwo- and threedimensional representation of the segments
Fig 2: Volumetric segment results
Fig 3: CTLungAnalyzer GUI