No pain and itching On whole body present Tell me the diagnosis
| Feature in your patient | Classic lichen amyloidosis |
|---|---|
| Dark hyperpigmented plaques on shin/ankle | Most common site: shins and extensor surfaces |
| Firm, scaly, thickened, lichenified surface | Firm, scaly, hyperkeratotic papules coalescing into plaques |
| Present on whole body | Can have bilateral symmetric distribution over time |
| No pain | Can be asymptomatic or mildly pruritic |
| Background skin hyperpigmentation | Melanin-containing histiocytes surround amyloid deposits |
Note: This is a clinical assessment only. A skin biopsy with Congo red staining is required for definitive diagnosis. Please refer to a dermatologist.
Make a prescription for this condition
Patient's name? · Patient's age and sex? · Doctor's name, qualification, and clinic/hospital name?
Kaushalaya 45 yrs
Doctor's name, qualification, and clinic/hospital name?
mkdir -p /tmp/workspace/prescription && python3 << 'EOF' from docx import Document from docx.shared import Pt, Inches, RGBColor, Cm from docx.enum.text import WD_ALIGN_PARAGRAPH from docx.oxml.ns import qn from docx.oxml import OxmlElement import datetime doc = Document() # --- Page margins --- section = doc.sections[0] section.page_width = Inches(8.27) # A4 section.page_height = Inches(11.69) section.top_margin = Cm(1.5) section.bottom_margin = Cm(1.5) section.left_margin = Cm(2.0) section.right_margin = Cm(2.0) def set_font(run, name="Arial", size=11, bold=False, color=None): run.font.name = name run.font.size = Pt(size) run.font.bold = bold if color: run.font.color.rgb = RGBColor(*color) def add_para(doc, text="", align=WD_ALIGN_PARAGRAPH.LEFT, space_before=0, space_after=4): p = doc.add_paragraph() p.alignment = align p.paragraph_format.space_before = Pt(space_before) p.paragraph_format.space_after = Pt(space_after) if text: run = p.add_run(text) return p def add_hline(doc): p = doc.add_paragraph() p.paragraph_format.space_before = Pt(2) p.paragraph_format.space_after = Pt(2) pPr = p._p.get_or_add_pPr() pBdr = OxmlElement('w:pBdr') bottom = OxmlElement('w:bottom') bottom.set(qn('w:val'), 'single') bottom.set(qn('w:sz'), '6') bottom.set(qn('w:space'), '1') bottom.set(qn('w:color'), '2E4057') pBdr.append(bottom) pPr.append(pBdr) return p # ====== HEADER: Clinic Info ====== p = doc.add_paragraph() p.alignment = WD_ALIGN_PARAGRAPH.CENTER p.paragraph_format.space_after = Pt(2) r = p.add_run("SKIN & DERMATOLOGY CLINIC") set_font(r, size=16, bold=True, color=(46, 64, 87)) p = doc.add_paragraph() p.alignment = WD_ALIGN_PARAGRAPH.CENTER p.paragraph_format.space_after = Pt(1) r = p.add_run("Dr. [Name], MD (Dermatology)") set_font(r, size=11, bold=False, color=(80, 80, 80)) p = doc.add_paragraph() p.alignment = WD_ALIGN_PARAGRAPH.CENTER p.paragraph_format.space_after = Pt(2) r = p.add_run("Reg. No: XXXX | Tel: XXXXXXXXXX | Address: ________________________") set_font(r, size=9, color=(120, 120, 120)) add_hline(doc) # ====== PATIENT INFO ====== date_str = datetime.date.today().strftime("%d-%m-%Y") tbl = doc.add_table(rows=2, cols=4) tbl.style = 'Table Grid' # Remove borders via XML from docx.oxml.ns import nsmap for row in tbl.rows: for cell in row.cells: tc = cell._tc tcPr = tc.get_or_add_tcPr() tcBorders = OxmlElement('w:tcBorders') for side in ['top','left','bottom','right']: border = OxmlElement(f'w:{side}') border.set(qn('w:val'), 'none') tcBorders.append(border) tcPr.append(tcBorders) cells = tbl.rows[0].cells cells[0].text = "Patient:" cells[1].text = "Kaushalaya" cells[2].text = "Date:" cells[3].text = date_str cells2 = tbl.rows[1].cells cells2[0].text = "Age / Sex:" cells2[1].text = "45 Yrs / Female" cells2[2].text = "Diagnosis:" cells2[3].text = "Lichen Amyloidosis" for row in tbl.rows: for i, cell in enumerate(row.cells): for para in cell.paragraphs: for run in para.runs: run.font.size = Pt(10) run.font.name = "Arial" if i % 2 == 0: run.font.bold = True run.font.color.rgb = RGBColor(46, 64, 87) doc.add_paragraph().paragraph_format.space_after = Pt(2) add_hline(doc) # ====== Rx SYMBOL ====== p = doc.add_paragraph() p.paragraph_format.space_before = Pt(4) p.paragraph_format.space_after = Pt(4) r = p.add_run("℞") set_font(r, size=20, bold=True, color=(46, 64, 87)) # ====== MEDICINES ====== meds = [ { "no": "1.", "name": "Clobetasol Propionate 0.05% Cream", "sig": "Apply a thin layer to affected areas on whole body", "dose": "Twice daily (morning & night)", "dur": "× 4 weeks, then taper to once daily × 4 weeks", "note": "Do NOT apply on face or skin folds. Use under occlusion at night for thickened areas." }, { "no": "2.", "name": "Tacrolimus 0.1% Ointment", "sig": "Apply to areas not responding to steroid or on sensitive skin", "dose": "Twice daily", "dur": "× 8 weeks", "note": "Adjunct to topical steroid; helps break itch-scratch cycle." }, { "no": "3.", "name": "Cetrizine 10 mg Tablet", "sig": "1 tablet at night", "dose": "Once daily (nocte)", "dur": "× 4 weeks", "note": "For any associated pruritus / itching." }, { "no": "4.", "name": "Moisturizing Lotion (Urea 10% / Ceramide-based)", "sig": "Apply liberally to whole body after bath", "dose": "Twice daily", "dur": "Ongoing", "note": "Reduces dryness and scaling. Use fragrance-free formulation." }, ] for med in meds: # Drug name p = doc.add_paragraph() p.paragraph_format.space_before = Pt(6) p.paragraph_format.space_after = Pt(1) r = p.add_run(f"{med['no']} {med['name']}") set_font(r, size=11, bold=True, color=(20, 20, 20)) # Sig / instruction p2 = doc.add_paragraph() p2.paragraph_format.left_indent = Inches(0.3) p2.paragraph_format.space_before = Pt(0) p2.paragraph_format.space_after = Pt(0) r2 = p2.add_run(f"Sig: {med['sig']}") set_font(r2, size=10) p3 = doc.add_paragraph() p3.paragraph_format.left_indent = Inches(0.3) p3.paragraph_format.space_before = Pt(0) p3.paragraph_format.space_after = Pt(0) r3 = p3.add_run(f"Dose: {med['dose']} | Duration: {med['dur']}") set_font(r3, size=10) p4 = doc.add_paragraph() p4.paragraph_format.left_indent = Inches(0.3) p4.paragraph_format.space_before = Pt(0) p4.paragraph_format.space_after = Pt(4) r4 = p4.add_run(f"Note: {med['note']}") set_font(r4, size=9, color=(100, 100, 100)) add_hline(doc) # ====== INVESTIGATIONS ====== p = doc.add_paragraph() p.paragraph_format.space_before = Pt(6) p.paragraph_format.space_after = Pt(2) r = p.add_run("Investigations Advised:") set_font(r, size=10, bold=True, color=(46, 64, 87)) inv = [ "Skin punch biopsy – H&E + Congo red stain (apple-green birefringence under polarized light)", "Serum protein electrophoresis (SPEP) – to rule out systemic amyloidosis", "Urine protein electrophoresis (UPEP) – if SPEP abnormal", "CBC, LFT, RFT, Blood sugar – baseline", ] for item in inv: p = doc.add_paragraph(style='List Bullet') p.paragraph_format.left_indent = Inches(0.2) p.paragraph_format.space_before = Pt(1) p.paragraph_format.space_after = Pt(1) r = p.add_run(item) set_font(r, size=10) add_hline(doc) # ====== ADVICE ====== p = doc.add_paragraph() p.paragraph_format.space_before = Pt(4) p.paragraph_format.space_after = Pt(2) r = p.add_run("Advice & Counselling:") set_font(r, size=10, bold=True, color=(46, 64, 87)) advice = [ "Avoid friction on skin – do NOT use rough towels, nylon brushes or scrubbers.", "Avoid hot water baths; use lukewarm water only.", "Apply moisturizer within 3 minutes of bathing (wet-skin application).", "Do not scratch lesions – this worsens pigmentation and thickening.", "Condition is chronic but benign; it does NOT affect internal organs in primary form.", "Review after 4 weeks; consider phototherapy (NB-UVB) if inadequate response.", "Sunscreen SPF 30+ daily on exposed areas to prevent further pigmentation.", ] for item in advice: p = doc.add_paragraph(style='List Bullet') p.paragraph_format.left_indent = Inches(0.2) p.paragraph_format.space_before = Pt(1) p.paragraph_format.space_after = Pt(1) r = p.add_run(item) set_font(r, size=10) add_hline(doc) # ====== FOLLOW UP ====== p = doc.add_paragraph() p.paragraph_format.space_before = Pt(4) p.paragraph_format.space_after = Pt(2) r = p.add_run("Follow-up: 4 weeks (bring biopsy report)") set_font(r, size=10, bold=True, color=(46, 64, 87)) doc.add_paragraph().paragraph_format.space_after = Pt(20) # ====== SIGNATURE ====== p = doc.add_paragraph() p.alignment = WD_ALIGN_PARAGRAPH.RIGHT r = p.add_run("_______________________________") set_font(r, size=10) p = doc.add_paragraph() p.alignment = WD_ALIGN_PARAGRAPH.RIGHT r = p.add_run("Dr. [Name], MD (Dermatology)") set_font(r, size=10, bold=True, color=(46, 64, 87)) p = doc.add_paragraph() p.alignment = WD_ALIGN_PARAGRAPH.RIGHT r = p.add_run("Date: " + date_str) set_font(r, size=9, color=(100, 100, 100)) # ====== FOOTER NOTE ====== add_hline(doc) p = doc.add_paragraph() p.alignment = WD_ALIGN_PARAGRAPH.CENTER r = p.add_run("This prescription is valid for 30 days. This is a clinical document - please retain for your records.") set_font(r, size=8, color=(150, 150, 150)) out = "/tmp/workspace/prescription/Kaushalaya_LichenAmyloidosis_Rx.docx" doc.save(out) print("Saved:", out) EOF
Kaushalaya LichenAmyloidosis Rx
Word Document · DOCX
Note: Please fill in the doctor's name, registration number, and clinic address before using. This prescription is based on evidence-based dermatology guidelines (Dermatology 2-Volume Set 5e, Ch. 47).