Update app.py
Browse files
app.py
CHANGED
|
@@ -338,7 +338,7 @@ class DicomAnalyzer:
|
|
| 338 |
logger.error(traceback.format_exc())
|
| 339 |
return None, error_msg
|
| 340 |
|
| 341 |
-
def add_formulas_to_template(self, ws, row_pair, col_group):
|
| 342 |
"""Add formulas for each row pair and column group"""
|
| 343 |
try:
|
| 344 |
# Get base column for formulas
|
|
@@ -351,10 +351,12 @@ class DicomAnalyzer:
|
|
| 351 |
formula1 = f"={base_col}{row1}/{std_col}{row1}"
|
| 352 |
formula_col = get_column_letter(column_index_from_string(col_group[-1]) + 1)
|
| 353 |
ws[f"{formula_col}{row1}"] = formula1
|
|
|
|
| 354 |
|
| 355 |
# Formula for second row: =(Mean1-Mean2)/StdDev2
|
| 356 |
formula2 = f"=({base_col}{row1}-{base_col}{row2})/{std_col}{row2}"
|
| 357 |
ws[f"{formula_col}{row2}"] = formula2
|
|
|
|
| 358 |
|
| 359 |
logger.debug(f"Added formulas for rows {row1},{row2} in column {formula_col}")
|
| 360 |
except Exception as e:
|
|
@@ -369,6 +371,9 @@ class DicomAnalyzer:
|
|
| 369 |
wb = openpyxl.Workbook()
|
| 370 |
ws = wb.active
|
| 371 |
|
|
|
|
|
|
|
|
|
|
| 372 |
# Define column groups and row pairs
|
| 373 |
column_groups = [
|
| 374 |
('B', 'C', 'D', 'E', 'F'), # First group
|
|
@@ -404,6 +409,7 @@ class DicomAnalyzer:
|
|
| 404 |
'(4.5mm)', '(4mm)', '(3.5mm)', '(3mm)', '(2.5mm)']
|
| 405 |
for i, size in enumerate(phantom_sizes):
|
| 406 |
ws.cell(row=row_pairs[i][0]-1, column=1, value=size)
|
|
|
|
| 407 |
|
| 408 |
# Process results
|
| 409 |
result_idx = 0
|
|
@@ -429,7 +435,7 @@ class DicomAnalyzer:
|
|
| 429 |
result_idx += 1
|
| 430 |
|
| 431 |
# Add formulas for this group
|
| 432 |
-
self.add_formulas_to_template(ws, rows, cols)
|
| 433 |
|
| 434 |
current_col_group += 1
|
| 435 |
if current_col_group >= len(column_groups):
|
|
|
|
| 338 |
logger.error(traceback.format_exc())
|
| 339 |
return None, error_msg
|
| 340 |
|
| 341 |
+
def add_formulas_to_template(self, ws, row_pair, col_group, red_font):
|
| 342 |
"""Add formulas for each row pair and column group"""
|
| 343 |
try:
|
| 344 |
# Get base column for formulas
|
|
|
|
| 351 |
formula1 = f"={base_col}{row1}/{std_col}{row1}"
|
| 352 |
formula_col = get_column_letter(column_index_from_string(col_group[-1]) + 1)
|
| 353 |
ws[f"{formula_col}{row1}"] = formula1
|
| 354 |
+
cell1.font = red_font
|
| 355 |
|
| 356 |
# Formula for second row: =(Mean1-Mean2)/StdDev2
|
| 357 |
formula2 = f"=({base_col}{row1}-{base_col}{row2})/{std_col}{row2}"
|
| 358 |
ws[f"{formula_col}{row2}"] = formula2
|
| 359 |
+
cell2.font = red_font
|
| 360 |
|
| 361 |
logger.debug(f"Added formulas for rows {row1},{row2} in column {formula_col}")
|
| 362 |
except Exception as e:
|
|
|
|
| 371 |
wb = openpyxl.Workbook()
|
| 372 |
ws = wb.active
|
| 373 |
|
| 374 |
+
# Create red font style
|
| 375 |
+
red_font = openpyxl.styles.Font(color="FF0000") # Red color in RGB
|
| 376 |
+
|
| 377 |
# Define column groups and row pairs
|
| 378 |
column_groups = [
|
| 379 |
('B', 'C', 'D', 'E', 'F'), # First group
|
|
|
|
| 409 |
'(4.5mm)', '(4mm)', '(3.5mm)', '(3mm)', '(2.5mm)']
|
| 410 |
for i, size in enumerate(phantom_sizes):
|
| 411 |
ws.cell(row=row_pairs[i][0]-1, column=1, value=size)
|
| 412 |
+
cell.font = red_font
|
| 413 |
|
| 414 |
# Process results
|
| 415 |
result_idx = 0
|
|
|
|
| 435 |
result_idx += 1
|
| 436 |
|
| 437 |
# Add formulas for this group
|
| 438 |
+
self.add_formulas_to_template(ws, rows, cols, red_font)
|
| 439 |
|
| 440 |
current_col_group += 1
|
| 441 |
if current_col_group >= len(column_groups):
|