HeshamAI commited on
Commit
7d14829
·
verified ·
1 Parent(s): 226e7b1

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +28 -14
app.py CHANGED
@@ -98,6 +98,7 @@ class DicomAnalyzer:
98
  except Exception as e:
99
  print(f"Error loading DICOM file: {str(e)}")
100
  return None, f"Error loading DICOM file: {str(e)}"
 
101
  def normalize_image(self, image):
102
  try:
103
  normalized = cv2.normalize(
@@ -114,7 +115,6 @@ class DicomAnalyzer:
114
  except Exception as e:
115
  print(f"Error normalizing image: {str(e)}")
116
  return None
117
-
118
  def reset_view(self):
119
  self.zoom_factor = 1.0
120
  self.pan_x = 0
@@ -419,7 +419,9 @@ class DicomAnalyzer:
419
  current_row = 32
420
 
421
  # Headers for StdDev Averages
422
- ws.cell(row=current_row, column=1, value="StdDev Averages").font = red_font
 
 
423
  current_row += 1
424
 
425
  # Calculate StdDev averages for each row pair
@@ -435,32 +437,44 @@ class DicomAnalyzer:
435
 
436
  if stddev_values:
437
  avg = sum(stddev_values) / len(stddev_values)
438
- ws.cell(row=current_row, column=1, value=size)
439
- ws.cell(row=current_row, column=2, value=avg).number_format = '0.000'
 
 
 
 
440
  current_row += 1
441
 
442
  current_row += 2 # Space between tables
443
 
444
  # Headers for CNR Averages
445
- ws.cell(row=current_row, column=1, value="CNR Averages").font = red_font
 
 
446
  current_row += 1
447
 
448
  # Calculate CNR averages for each row pair
449
  for i, size in enumerate(phantom_sizes):
450
  row_number = row_pairs[i][1] # Second row for CNR
451
- cnr_values = []
452
 
 
453
  for cols in column_groups:
454
  formula_col = get_column_letter(column_index_from_string(cols[-1]) + 1)
455
- cell_value = ws[f"{formula_col}{row_number}"].value
456
- if isinstance(cell_value, str) and cell_value.startswith('='):
457
- cnr_values.append(f"={formula_col}{row_number}")
 
 
 
 
 
 
 
 
 
 
458
 
459
- if cnr_values:
460
- formula = f"=AVERAGE({','.join(cnr_values)})"
461
- ws.cell(row=current_row, column=1, value=size)
462
- cell = ws.cell(row=current_row, column=2, value=formula)
463
- cell.number_format = '0.000'
464
  current_row += 1
465
 
466
  # Format the tables
 
98
  except Exception as e:
99
  print(f"Error loading DICOM file: {str(e)}")
100
  return None, f"Error loading DICOM file: {str(e)}"
101
+
102
  def normalize_image(self, image):
103
  try:
104
  normalized = cv2.normalize(
 
115
  except Exception as e:
116
  print(f"Error normalizing image: {str(e)}")
117
  return None
 
118
  def reset_view(self):
119
  self.zoom_factor = 1.0
120
  self.pan_x = 0
 
419
  current_row = 32
420
 
421
  # Headers for StdDev Averages
422
+ stddev_header = ws.cell(row=current_row, column=1, value="StdDev Averages")
423
+ stddev_header.font = red_font
424
+ stddev_header.alignment = center_alignment
425
  current_row += 1
426
 
427
  # Calculate StdDev averages for each row pair
 
437
 
438
  if stddev_values:
439
  avg = sum(stddev_values) / len(stddev_values)
440
+ size_cell = ws.cell(row=current_row, column=1, value=size)
441
+ size_cell.alignment = center_alignment
442
+
443
+ avg_cell = ws.cell(row=current_row, column=2, value=avg)
444
+ avg_cell.number_format = '0.000'
445
+ avg_cell.alignment = center_alignment
446
  current_row += 1
447
 
448
  current_row += 2 # Space between tables
449
 
450
  # Headers for CNR Averages
451
+ cnr_header = ws.cell(row=current_row, column=1, value="CNR Averages")
452
+ cnr_header.font = red_font
453
+ cnr_header.alignment = center_alignment
454
  current_row += 1
455
 
456
  # Calculate CNR averages for each row pair
457
  for i, size in enumerate(phantom_sizes):
458
  row_number = row_pairs[i][1] # Second row for CNR
459
+ cnr_references = []
460
 
461
+ # Get all CNR formula references
462
  for cols in column_groups:
463
  formula_col = get_column_letter(column_index_from_string(cols[-1]) + 1)
464
+ cnr_cell = f"{formula_col}{row_number}"
465
+ cnr_references.append(cnr_cell)
466
+
467
+ if cnr_references:
468
+ # Create AVERAGE formula using cell references
469
+ formula = f"=AVERAGE({','.join(cnr_references)})"
470
+ size_cell = ws.cell(row=current_row, column=1, value=size)
471
+ size_cell.alignment = center_alignment
472
+
473
+ avg_cell = ws.cell(row=current_row, column=2)
474
+ avg_cell.value = formula
475
+ avg_cell.number_format = '0.000'
476
+ avg_cell.alignment = center_alignment
477
 
 
 
 
 
 
478
  current_row += 1
479
 
480
  # Format the tables