Spaces:
Sleeping
Sleeping
File size: 1,117 Bytes
7dcf7f6 |
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 |
# File: logic/exporter.py
from docx import Document
import os
import io
import zipfile
def export_to_docx_and_zip(report_data, summaries, output_dir="assets/sample_reports"):
zip_buffer = io.BytesIO()
with zipfile.ZipFile(zip_buffer, "w") as zipf:
for _, row in report_data.iterrows():
pid = row['patient_id']
doc = Document()
doc.add_heading(f'Patient Summary: {pid}', 0)
doc.add_paragraph(f"Risk Score: {row['risk_score']}")
doc.add_paragraph(f"Projected Revenue Gain: ${row['projected_gain']}")
doc.add_paragraph("Care Gaps:")
for gap in row['care_gaps']:
doc.add_paragraph(f"• {gap}", style='List Bullet')
doc.add_paragraph("\nSummary:")
doc.add_paragraph(summaries[pid])
doc_path = f"Patient_{pid}_Report.docx"
temp_stream = io.BytesIO()
doc.save(temp_stream)
zipf.writestr(doc_path, temp_stream.getvalue())
zip_buffer.seek(0)
return zip_buffer, report_data['patient_id'].tolist()
|