File size: 1,495 Bytes
d160281
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
46
47
from reportlab.lib.pagesizes import A4
from reportlab.pdfgen import canvas
from reportlab.lib import colors

def generate_pdf(report_data, pdf_path, logo_path=None):
    c = canvas.Canvas(pdf_path, pagesize=A4)
    width, height = A4

    # Title
    c.setFont("Helvetica-Bold", 20)
    c.setFillColor(colors.darkblue)
    c.drawString(180, height - 60, "AI Doctor Recommendation Report")

    # Logo
    if logo_path:
        try:
            c.drawImage(logo_path, 40, height - 90, width=60, height=60)
        except:
            pass

    c.setFillColor(colors.black)
    c.setFont("Helvetica", 12)

    y = height - 130

    fields = [
        ("Date", report_data.get("date", "")),
        ("Patient Name", report_data.get("patient_name", "")),
        ("Symptoms", report_data.get("symptoms", "")),
        ("Predicted Disease", report_data.get("predicted_disease", "")),
        ("Recommended Doctor", report_data.get("doctor_name", "")),
        ("Specialization", report_data.get("specialization", "")),
        ("Confidence", f"{report_data.get('confidence', '')}%"),
    ]

    for label, value in fields:
        c.setFont("Helvetica-Bold", 12)
        c.drawString(50, y, f"{label}:")
        c.setFont("Helvetica", 12)
        c.drawString(180, y, str(value))
        y -= 30

    c.setFont("Helvetica-Oblique", 11)
    c.setFillColor(colors.gray)
    c.drawString(50, 60, "Generated by AI Doctor Recommendation System")

    c.save()