File size: 3,387 Bytes
e9406c7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
import unittest
from services.nifti_processor import NiftiProcessor

"""
Each test session has 

    ct.nii.gz 
        - Main nifti/CT Scan file

    /combined_labels_ANS/combined_labels.nii.gz
        - segmentation files combined into one (TESTING CREATED ONE AGAINST THIS ONE)

    /combined_labels.nii.gz 
        - segmentation file that NiftiProcessor will create and store here (FILE THAT NEEDS TO BE TESTED)

    /segmentations - Directory containing 9 nifti segmentation files, which are:
        - aorta.nii.gz
        - gall_bladder.nii.gz
        - kidney_left.nii.gz
        - kidney_right.nii.gz
        - liver.nii.gz
        - pancreas.nii.gz
        - postcava.nii.gz
        - spleen.nii.gz
        - stomach.nii.gz

    test-045:
        ct.nii.gz ~ 17 mb
        combined_labels ~ 151kb
    
    test-050
        ct.nii.gz ~ 13mb
        combined_labels ~ 116kb

    test-338
        ct.nii.gz ~ 16mb
        combined_labels ~ 204kb
    
        
    organ_intensities =  {
    aorta: 1,
    gall_bladder: 2,
    kidney_left: 3,
    kidney_right: 4,
    liver: 5,
    pancreas: 6,
    postcava: 7, 
    spleen: 8, 
    stomach: 9
    }
"""



class TestNiftiProcessing(unittest.TestCase):

    def setUp(self):
        self.clabel_path = None #overload this
        self.main_nifti_path = None # overload this

        self.organ_intensities = {"aorta": 1, 
                                  "gall_bladder": 2, 
                                  "kidney_left": 3, 
                                  "kidney_right": 4, 
                                  "liver": 5, 
                                  "pancreas": 6, 
                                  "postcava": 7,  
                                  "spleen": 8,  
                                  "stomach": 9 }
    

    def test_case_045(self):
        print("testcase 045")
        self.clabel_path = "./test-sessions/test-045/combined_labels_ANS/combined_labels.nii.gz"
        self.main_nifti_path = "./test-sessions/test-045/ct.nii.gz"
        nifti_processor = NiftiProcessor(self.main_nifti_path, self.clabel_path)
        nifti_processor.set_organ_intensities(self.organ_intensities)
        #print(nip._organ_intensities)
        organ_metrics = nifti_processor.calculate_metrics()

        self.assertNotEqual(organ_metrics, None)
    

    def test_case_050(self):
        print("testcase 050")
        self.clabel_path = "./test-sessions/test-050/combined_labels_ANS/combined_labels.nii.gz"
        self.main_nifti_path = "./test-sessions/test-050/ct.nii.gz"

        nifti_processor = NiftiProcessor(self.main_nifti_path, self.clabel_path)
        nifti_processor.set_organ_intensities(self.organ_intensities)
        #print(nip._organ_intensities)
        organ_metrics = nifti_processor.calculate_metrics()

        self.assertNotEqual(organ_metrics, None)
    
 
    def test_case_338(self):
        print("testcase 338")
        self.clabel_path = "./test-sessions/test-050/combined_labels_ANS/combined_labels.nii.gz"
        self.main_nifti_path = "./test-sessions/test-050/ct.nii.gz"



        nifti_processor = NiftiProcessor(self.main_nifti_path, self.clabel_path)
        nifti_processor.set_organ_intensities(self.organ_intensities)
        #print(nip._organ_intensities)
        organ_metrics = nifti_processor.calculate_metrics()

        self.assertNotEqual(organ_metrics, None)