Просмотр исходного кода

Added checkmark for file write and notification that file has been written at location. Modified statistical output and more code cleanup

Luka 10 месяцев назад
Родитель
Сommit
c7c7dd498e
1 измененных файлов с 24 добавлено и 19 удалено
  1. 24 19
      SeekTransformModule/SeekTransformModule.py

+ 24 - 19
SeekTransformModule/SeekTransformModule.py

@@ -50,6 +50,10 @@ class SeekTransformModuleWidget(ScriptedLoadableModuleWidget):
         self.scalingCheckBox = qt.QCheckBox("Scaling")
         self.scalingCheckBox.setChecked(True)
         self.layout.addWidget(self.scalingCheckBox)
+        
+        self.writefileCheckBox = qt.QCheckBox("Write distances to csv file")
+        self.writefileCheckBox.setChecked(True)
+        self.layout.addWidget(self.writefileCheckBox)
 
         # Load button
         self.applyButton = qt.QPushButton("Find markers and transform")
@@ -70,9 +74,10 @@ class SeekTransformModuleWidget(ScriptedLoadableModuleWidget):
         applyRotation = self.rotationCheckBox.isChecked()
         applyTranslation = self.translationCheckBox.isChecked()
         applyScaling = self.scalingCheckBox.isChecked()
+        writefilecheck = self.writefileCheckBox.isChecked()
 
         # Pokliči logiko z izbranimi nastavitvami
-        logic.run(selectedMethod, applyRotation, applyTranslation, applyScaling)
+        logic.run(selectedMethod, applyRotation, applyTranslation, applyScaling, writefilecheck)
 
 
 class MyTransformModuleLogic(ScriptedLoadableModuleLogic):
@@ -81,7 +86,7 @@ class MyTransformModuleLogic(ScriptedLoadableModuleLogic):
     """
     
     
-    def run(self, selectedMethod, applyRotation, applyTranslation, applyScaling):
+    def run(self, selectedMethod, applyRotation, applyTranslation, applyScaling, writefilecheck):
         print("Calculating...")
         
         def group_points(points, threshold):
@@ -457,11 +462,6 @@ class MyTransformModuleLogic(ScriptedLoadableModuleLogic):
         for i in range(studyItems.GetNumberOfIds()):
             studyItem = studyItems.GetId(i)
             
-            # Dodamo ime študije v statistiko
-            studyName = shNode.GetItemName(studyItem)
-            prostate_size_est.append({"Study": studyName})
-            ctcbct_distance.append({"Study": studyName})
-            
             # **LOKALNI** seznami, resetirajo se pri vsakem study-ju
             cbct_list = []
             ct_list = []
@@ -605,7 +605,10 @@ class MyTransformModuleLogic(ScriptedLoadableModuleLogic):
                         distances_internal["A-B"].append(sorted_distances[0])
                         distances_internal["B-C"].append(sorted_distances[1])
                         distances_internal["C-A"].append(sorted_distances[2])
-
+                        
+                        # Dodamo ime študije za v statistiko
+                        studyName = shNode.GetItemName(studyItem)
+                        
                         # **Shrani razdalje v globalne sezname**
                         prostate_size_est.append({"Study": studyName, "Distances": sorted_distances})
                         ctcbct_distance.append({"Study": studyName, "Distances": list(distances_ct_cbct[-1])})  # Pretvorimo v seznam
@@ -655,15 +658,17 @@ class MyTransformModuleLogic(ScriptedLoadableModuleLogic):
         print("Razdalje med CT in CBCTji: ", ctcbct_distance)
         print("Razdalje med markerji: ", prostate_size_est)
         
-        # Define the file path for the CSV file
-        file_path = os.path.join(os.path.dirname(__file__), "study_data.csv")
-
-        # Write lists to the CSV file
-        with open(file_path, mode='w', newline='') as file: #w za write, a za append
-            writer = csv.writer(file)
-            # Write headers
-            writer.writerow(["Prostate Size", "CT-CBCT Distance"])
-            # Write data rows
-            for i in range(len(prostate_size_est)):
-                writer.writerow([prostate_size_est[i], ctcbct_distance[i]])
+        if(writefilecheck):
+            # Define the file path for the CSV file
+            file_path = os.path.join(os.path.dirname(__file__), "study_data.csv")
+
+            # Write lists to the CSV file
+            with open(file_path, mode='w', newline='') as file: #w za write, a za append
+                writer = csv.writer(file)
+                # Write headers
+                writer.writerow(["Prostate Size", "CT-CBCT Distance"])
+                # Write data rows
+                for i in range(len(prostate_size_est)):
+                    writer.writerow([prostate_size_est[i], ctcbct_distance[i]])
+                print("File written at ", file_path)