From 7a67aac678f3e18c60b43430b428cf89889b2bf0 Mon Sep 17 00:00:00 2001 From: bolade Date: Fri, 3 Oct 2025 22:16:45 +0100 Subject: [PATCH] feat: Add PageGenerator class for generating report pages with patient data --- app/services/page_generator.py | 41 ++++++++++++++++++++++++++++++++ app/services/report_generator.py | 2 +- 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 app/services/page_generator.py diff --git a/app/services/page_generator.py b/app/services/page_generator.py new file mode 100644 index 0000000..f2ecf01 --- /dev/null +++ b/app/services/page_generator.py @@ -0,0 +1,41 @@ +class PageGenerator: + def __init__(self, pnoe_df, seca_df, spirometry_df, patient_info): + self.pnoe_df = pnoe_df + self.seca_df = seca_df + self.spirometry_df = spirometry_df + self.patient_info = patient_info + + + def page_1_context(self): + # Extract patient information + patient_name = self.patient_info.get("patient_name", "N/A") + age = self.patient_info.get("age", "N/A") + height = self.patient_info.get("height", "N/A") + weight = self.patient_info.get("weight", "N/A") + focus = self.patient_info.get("focus", "N/A") + session_id = self.patient_info.get("session_id", "N/A") + + # Extract PNOE data + pnoe_summary = self.pnoe_df.describe().to_dict() + + # Extract SECA data + seca_summary = self.seca_df.describe().to_dict() + + # Extract Spirometry data + spirometry_summary = self.spirometry_df.describe().to_dict() + + context = { + "patient_name": patient_name, + "age": age, + "height": height, + "weight": weight, + "focus": focus, + "session_id": session_id, + "pnoe_summary": pnoe_summary, + "seca_summary": seca_summary, + "spirometry_summary": spirometry_summary, + } + + return context + + \ No newline at end of file diff --git a/app/services/report_generator.py b/app/services/report_generator.py index a1f6ced..fb807aa 100644 --- a/app/services/report_generator.py +++ b/app/services/report_generator.py @@ -283,7 +283,7 @@ class ReportGeneratorService: seca_excel_path: Path to SECA Excel file patient_info: Dictionary containing patient information output_filename: Optional custom output filename - +n Returns: Dictionary containing report path, graphs generated, and analysis data """