-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathreport_manager.py
45 lines (38 loc) · 1.54 KB
/
report_manager.py
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
import os
import csv
from PIL import Image
import tkcap
from tkinter.messagebox import showinfo # Importar desde tkinter.messagebox
class ReportManager:
def __init__(self, base_dir):
self.reports_dir = os.path.join(base_dir, 'reportes')
os.makedirs(self.reports_dir, exist_ok=True)
def save_results_csv(self, patient_id, label, probability):
csv_path = os.path.join(self.reports_dir, "historial.csv")
with open(csv_path, "a") as csvfile:
w = csv.writer(csvfile, delimiter="-")
w.writerow([patient_id, label, f"{probability:.2f}%"])
showinfo(title="Guardar", message="Los datos se guardaron con éxito.")
def create_pdf(self, root, report_id):
cap = tkcap.CAP(root)
# Generar nombre de archivo único para la imagen
img_id = 0
while True:
img_name = f"Reporte{report_id}_{img_id}.jpg"
img_path = os.path.join(self.reports_dir, img_name)
if not os.path.exists(img_path):
break
img_id += 1
img = cap.capture(img_path)
img = Image.open(img_path)
img = img.convert("RGB")
# Generar nombre de archivo único para el PDF
pdf_id = 0
while True:
pdf_name = f"Reporte{report_id}_{pdf_id}.pdf"
pdf_path = os.path.join(self.reports_dir, pdf_name)
if not os.path.exists(pdf_path):
break
pdf_id += 1
img.save(pdf_path)
showinfo(title="PDF", message="El PDF fue generado con éxito.")