I want to make abstract of poster presentation with JIC 2027 – Scientific Poster Presentation Guidelines 1. Poster Presentation Format Parameter Guidelines Orientation Vertical (Portrait) Height 6.50 feet (2 metres) Width 3.28 feet (1 metre) Language English Abstract length 250–300 words Abstract font Times New Roman Abstract font size 11 points Mandatory poster footer The following statement must be printed at the bottom of the poster: “Poster presented at JIC 2027, Ahmedabad, India.” 1. Abstract Structure The abstract must contain the following sections: For clinical studies: 1. Background 2. Method 3. Results 4. Conclusion For clinical case studies: 1. Case History 2. Diagnosis 3. Management 4. Discussion 5. Outcome Abstract requirements: * 250–300 words. * Font: Times New Roman. * Font size: 11 points. * Must be written in English. * Research should not have been presented earlier. 1. Important Checklist Before Submission Requirement Details ☐ Prepare abstract of 250–300 words ☐ Use Times New Roman, 11-point font ☐ Include all required abstract sections ☐ Ensure research has not been presented previously ☐ Submit before 30 November 2026 ☐ Pay ₹1,000 submission fee ☐ Prepare vertical poster (6.5 × 3.28 feet) ☐ Include mandatory footer ☐ Prepare maximum 6 slides for Grand Jury ☐ Prepare a 6-minute presentation My recommendation for preparing a competitive medical poster For a clinical research poster, I recommend the following layout: 1. Title and Authors 2. Introduction / Background 3. Aim and Objectives 4. Materials and Methods 5. Results – tables, graphs and charts 6. Discussion 7. Conclusion 8. References 9. Acknowledgement

Reading File
Asking for Preferences

Which part should I go into in detail first?

attachment
attachment
attachment
attachment
attachment
attachment
attachment
attachment
attachment
attachment
attachment
attachment
attachment
attachment

This is patient detail for which we have to make abstract

Searching PubMed

"granulomatosis with polyangiitis"[MeSH Terms] AND "rituximab"

Finding Sources
Reading File
Running Command

mkdir -p /tmp/workspace/jic2027-abstract && cat > /tmp/workspace/jic2027-abstract/abs.py << 'EOF' sections = [ ("Case History", "A 29-year-old male tobacco chewer with no comorbidities presented in March 2026 with epistaxis, nasal crusting, fever, weight loss, fatigue, left knee arthritis and haematuria. Hb was 8.8 g/dL, ESR 85 mm/h and CRP 345 mg/L. Urine showed 10-12 RBC/hpf. CECT thorax revealed diffuse nodular infiltrates and consolidation with necrotizing areas in the right upper, right middle and bilateral lower lobes."), ("Diagnosis", "PR3-ANCA was strongly positive (ELISA 72; cut-off 3). Sputum CBNAAT for tuberculosis and Coombs test were negative, and CT of paranasal sinuses was normal. Granulomatosis with polyangiitis (GPA) was diagnosed, with pulmonary, musculoskeletal and upper airway involvement."), ("Management", "Induction began on 21 March 2026 with intravenous cyclophosphamide 500 mg every 15 days. After three doses, he developed dry cough, exertional dyspnoea, haematuria and bilateral crepitations. Hb fell to 8.3 g/dL, CRP was 150 mg/L, ESR 118 mm/h, and HRCT showed diffuse ground-glass opacities with consolidation. A flare during induction was diagnosed. Rituximab 1 g replaced the fourth cyclophosphamide dose on 15 May 2026, with methylprednisolone 500 mg for three days followed by tapering oral prednisolone. The second rituximab 1 g dose was given on 1 June 2026."), ("Discussion", "Rituximab with glucocorticoids is non-inferior to cyclophosphamide for remission induction in severe ANCA-associated vasculitis, and is preferred in refractory or relapsing disease. Disease flare eight weeks into cyclophosphamide, with lung involvement and anaemia of chronic disease (low iron, ferritin 462 ng/mL), shows the need for early reassessment of disease activity and a prompt change of agent."), ("Outcome", "Chest opacities resolved on repeat radiograph two days after treatment. At five months (October 2026) he was asymptomatic, with SpO2 98% on room air, Hb 10.2 g/dL, ESR 40 mm/h and CRP 4.1 mg/L. Creatinine 1.15 mg/dL and 1+ proteinuria remain under surveillance. He continues azathioprine 50 mg twice daily and low-dose prednisolone, with maintenance rituximab 500 mg planned for 1 December 2026."), ] import re tot=0 for h,t in sections: n=len(t.split()); tot+=n; print(h,n) print("body",tot) print("with headings", tot+sum(len(h.split()) for h,_ in sections)) from docx import Document from docx.shared import Pt from docx.oxml.ns import qn d=Document() st=d.styles['Normal']; st.font.name='Times New Roman'; st.font.size=Pt(11) st.element.rPr.rFonts.set(qn('w:eastAsia'),'Times New Roman') p=d.add_paragraph(); r=p.add_run("Flare of PR3-ANCA Granulomatosis with Polyangiitis during Cyclophosphamide Induction: Rapid Response to Rituximab and Pulse Methylprednisolone"); r.bold=True for h,t in sections: p=d.add_paragraph(); r=p.add_run(h+": "); r.bold=True; p.add_run(t) p.paragraph_format.space_after=Pt(4) d.save("/tmp/workspace/jic2027-abstract/JIC2027_GPA_Case_Abstract.docx") EOF python3 /tmp/workspace/jic2027-abstract/abs.py

Running Command

cat > /tmp/workspace/jic2027-abstract/abs2.py << 'EOF' title="Flare of PR3-ANCA Granulomatosis with Polyangiitis during Cyclophosphamide Induction: Rapid Response to Rituximab and Pulse Methylprednisolone" sections = [ ("Case History", "A 29-year-old male tobacco chewer with no comorbidities presented in March 2026 with epistaxis, nasal crusting, fever, weight loss, left knee arthritis and haematuria. Hb was 8.8 g/dL, ESR 85 mm/h, CRP 345 mg/L; urine showed 10-12 RBC/hpf. CECT thorax revealed diffuse nodular infiltrates and consolidation with necrotizing areas in the right upper, right middle and both lower lobes."), ("Diagnosis", "PR3-ANCA was strongly positive (ELISA 72; cut-off 3). Sputum CBNAAT for tuberculosis and Coombs test were negative; sinus CT was normal. Granulomatosis with polyangiitis (GPA) was diagnosed, with pulmonary, musculoskeletal and upper airway involvement."), ("Management", "Induction began on 21 March 2026 with intravenous cyclophosphamide 500 mg every 15 days. After three doses he developed dry cough, exertional dyspnoea, haematuria and bilateral crepitations. Hb fell from 11.4 to 9.2 g/dL, CRP was 150 mg/L, ESR 118 mm/h, and HRCT showed diffuse ground-glass opacities with consolidation, indicating flare. Rituximab 1 g replaced the fourth cyclophosphamide dose on 15 May 2026, with methylprednisolone 500 mg for three days, then tapering prednisolone. A second rituximab 1 g dose followed on 1 June 2026."), ("Discussion", "Rituximab with glucocorticoids is non-inferior to cyclophosphamide for remission induction in severe ANCA-associated vasculitis and is preferred in refractory disease. Flare eight weeks into cyclophosphamide, with lung involvement and anaemia of chronic disease (low iron, ferritin 462 ng/mL), highlights the need for early reassessment and prompt change of agent."), ("Outcome", "Chest opacities resolved on repeat radiograph two days later. At five months (October 2026) he was asymptomatic, with SpO2 98% on room air, Hb 10.2 g/dL, ESR 40 mm/h and CRP 4.1 mg/L. Creatinine 1.15 mg/dL and 1+ proteinuria remain under surveillance. He continues azathioprine 50 mg twice daily and low-dose prednisolone; maintenance rituximab 500 mg is planned for 1 December 2026."), ] tot=0 for h,t in sections: n=len(t.split()); tot+=n; print(h,n) hd=sum(len(h.split()) for h,_ in sections) print("body",tot,"with headings",tot+hd,"with title",tot+hd+len(title.split())) from docx import Document from docx.shared import Pt from docx.oxml.ns import qn d=Document() st=d.styles['Normal']; st.font.name='Times New Roman'; st.font.size=Pt(11) st.element.rPr.rFonts.set(qn('w:eastAsia'),'Times New Roman') p=d.add_paragraph(); r=p.add_run(title); r.bold=True for h,t in sections: p=d.add_paragraph(); r=p.add_run(h+": "); r.bold=True; p.add_run(t) p.paragraph_format.space_after=Pt(4) d.save("/tmp/workspace/jic2027-abstract/JIC2027_GPA_Case_Abstract.docx") EOF python3 /tmp/workspace/jic2027-abstract/abs2.py; ls -la /tmp/workspace/jic2027-abstract/

I've written the case abstract in the 5-section JIC 2027 format. It is 288 words of body text, or 294 with the section headings, so it fits the 250-300 range. The title adds about 16 words. I haven't checked whether JIC counts the title, so shorten it if the portal counts everything. The file uses Times New Roman 11 pt.

JIC2027 GPA Case Abstract

Word Document · DOCX


Flare of PR3-ANCA Granulomatosis with Polyangiitis during Cyclophosphamide Induction: Rapid Response to Rituximab and Pulse Methylprednisolone
Case History: A 29-year-old male tobacco chewer with no comorbidities presented in March 2026 with epistaxis, nasal crusting, fever, weight loss, left knee arthritis and haematuria. Hb was 8.8 g/dL, ESR 85 mm/h, CRP 345 mg/L; urine showed 10-12 RBC/hpf. CECT thorax revealed diffuse nodular infiltrates and consolidation with necrotizing areas in the right upper, right middle and both lower lobes.
Diagnosis: PR3-ANCA was strongly positive (ELISA 72; cut-off 3). Sputum CBNAAT for tuberculosis and Coombs test were negative; sinus CT was normal. Granulomatosis with polyangiitis (GPA) was diagnosed, with pulmonary, musculoskeletal and upper airway involvement.
Management: Induction began on 21 March 2026 with intravenous cyclophosphamide 500 mg every 15 days. After three doses he developed dry cough, exertional dyspnoea, haematuria and bilateral crepitations. Hb fell from 11.4 to 9.2 g/dL, CRP was 150 mg/L, ESR 118 mm/h, and HRCT showed diffuse ground-glass opacities with consolidation, indicating flare. Rituximab 1 g replaced the fourth cyclophosphamide dose on 15 May 2026, with methylprednisolone 500 mg for three days, then tapering prednisolone. A second rituximab 1 g dose followed on 1 June 2026.
Discussion: Rituximab with glucocorticoids is non-inferior to cyclophosphamide for remission induction in severe ANCA-associated vasculitis and is preferred in refractory disease. Flare eight weeks into cyclophosphamide, with lung involvement and anaemia of chronic disease (low iron, ferritin 462 ng/mL), highlights the need for early reassessment and prompt change of agent.
Outcome: Chest opacities resolved on repeat radiograph two days later. At five months (October 2026) he was asymptomatic, with SpO2 98% on room air, Hb 10.2 g/dL, ESR 40 mm/h and CRP 4.1 mg/L. Creatinine 1.15 mg/dL and 1+ proteinuria remain under surveillance. He continues azathioprine 50 mg twice daily and low-dose prednisolone; maintenance rituximab 500 mg is planned for 1 December 2026.

Please check these points before you submit
  1. Units: The records give no units for CRP or ferritin. I assumed CRP in mg/L and ferritin in ng/mL.
  2. "Partial thrombus": A handwritten note next to the CECT thorax says "+ partial thrombus". I left it out because I couldn't tell what it refers to. If it is a pulmonary vessel thrombus, it is worth adding.
  3. Renal involvement: Creatinine rose from 0.76 in March to 1.2 and 1.15 in September and October, with 1+ proteinuria. I wrote that these "remain under surveillance". If you think this is early renal GPA, say so in the Discussion.
  4. March liver tests: SGPT was 88 and ALP 233, and the later values are normal. I didn't mention this. The total bilirubin entry in the record is also hard to read.
  5. Disease scores and steroids: The record has no BVAS score, and no glucocorticoid dose during the cyclophosphamide phase. Adding both would strengthen the case.
  6. Hospital course: The discharge summary says the 4th cyclophosphamide dose was due on 15 May. I described rituximab as replacing it. The second rituximab dose was originally planned for 31 May, and the handwritten note says 1 June, which I used.
  7. Rituximab 500 mg on 1 December 2026: This is a plan, not a completed dose. If you submit before that date, the wording is correct as it stands.
  8. Patient privacy: I left out the name, MRN and visit ID. Keep the patient de-identified on the poster and slides. You also need written patient consent and ethics or institutional clearance for a case report. The poster can't be used if the case has been presented before.
Evidence used for the Discussion
  • Harrison's Principles of Internal Medicine 22E, "Rituximab Induction for Severe Disease": two randomized trials found rituximab with glucocorticoids as effective as cyclophosphamide with glucocorticoids in severe GPA/MPA.
  • The Harrison's section on vasculitic neuropathy recommends rituximab with glucocorticoids as the standard initial treatment, particularly for ANCA-associated vasculitis.
  • A 2024 systematic review of case reports supports rituximab for refractory organ involvement in GPA. It is low-level evidence, and no recent meta-analysis contradicts the library answer.
Next steps
  • I can draft the 6-slide Grand Jury deck and the 6-minute talk script.
  • I can also lay out the 2 m x 1 m poster with the mandatory footer ("Poster presented at JIC 2027, Ahmedabad, India.").
  • For a 1-line "learning point" for the poster, tell me which teaching point you want to stress: early switch to rituximab, or how to read lung opacities during a flare.

Add information from this ppt and decrease management part and increase history part .

Reading File
Running Command

cd /tmp/workspace/attachments/05f23df2-e041-4458-9e30-82e66411fa9f/ && python3 -c " from pptx import Presentation p=Presentation('Clinical_Case_GPA.pptx') for i,s in enumerate(p.slides,1): print('--- slide',i) for sh in s.shapes: if sh.has_text_frame: t=sh.text_frame.text.strip() if t: print(t) if sh.has_table: for r in sh.table.rows: print(' | '.join(c.text for c in r.cells)) if sh.shape_type==13: print('[picture]',sh.name) if s.has_notes_slide: print('NOTES:',s.notes_slide.notes_text_frame.text) "

Running Command

cat > /tmp/workspace/jic2027-abstract/abs3.py << 'EOF' title="Flare of PR3-ANCA Granulomatosis with Polyangiitis during Cyclophosphamide Induction: Rapid Response to Rituximab and Pulse Methylprednisolone" sections = [ ("Case History", "A 29-year-old male driver from Surendranagar, a tobacco chewer with recurrent otitis media and sensorineural hearing loss, presented in March 2026 with 20 days of giddiness, weakness, low-grade fever and anorexia, 15 days of cough with haemoptysis and epistaxis, 2-3 kg weight loss, and 100 days of left knee pain and swelling. Examination showed bilateral conjunctival injection, a dark nasal crust, and bilateral knee swelling (left more than right) with left effusion. Rash, sicca symptoms, genital ulcers and small joint pain were absent. Hb was 9.9 g/dL, WBC 17,460/µL, platelets 795,000/µL, CRP 303.9 mg/L, ESR 85 mm/h and ferritin above 1850 ng/mL. Urine showed 10-12 RBC/hpf, ACR 40.7 mg/g. CECT thorax revealed diffuse nodular infiltrates and consolidation with necrotizing areas. Ultrasound showed a left pleural effusion and left popliteal partial thrombus."), ("Diagnosis", "PR3-ANCA was strongly positive (72 IU/mL; reference below 3). ANA, hepatitis B and C, dengue, Widal, blood and urine cultures and sputum CBNAAT were negative. Echocardiography showed EF 60% and RVSP 22 mmHg. Granulomatosis with polyangiitis (GPA) was diagnosed, with upper airway, ear, eye, lung, joint and probable renal involvement."), ("Management", "Cyclophosphamide 500 mg fortnightly began on 21 March 2026. After three doses he flared with cough, dyspnoea and crepitations; Hb fell from 11.4 to 9.2 g/dL, CRP was 150 mg/L, and HRCT showed ground-glass opacities. Rituximab 1 g (15 May and 1 June 2026) and methylprednisolone 500 mg for three days, then tapering prednisolone, were given."), ("Discussion", "Ear involvement should not be dismissed as coincidental in ANCA-positive multisystem disease. Rituximab with glucocorticoids is non-inferior to cyclophosphamide for induction and is preferred in refractory disease. Flare eight weeks into cyclophosphamide shows the need for early reassessment and prompt change of agent."), ("Outcome", "Chest opacities resolved within two days. At five months he was asymptomatic (SpO2 98%), with Hb 10.2 g/dL, ESR 40 mm/h and CRP 4.1 mg/L; creatinine 1.15 mg/dL and 1+ proteinuria are monitored. On azathioprine and low-dose prednisolone, maintenance rituximab 500 mg is planned for 1 December 2026."), ] tot=0 for h,t in sections: n=len(t.split()); tot+=n; print(h,n) hd=sum(len(h.split()) for h,_ in sections) print("body",tot,"with headings",tot+hd,"with title",tot+hd+len(title.split())) from docx import Document from docx.shared import Pt from docx.oxml.ns import qn d=Document() st=d.styles['Normal']; st.font.name='Times New Roman'; st.font.size=Pt(11) st.element.rPr.rFonts.set(qn('w:eastAsia'),'Times New Roman') p=d.add_paragraph(); r=p.add_run(title); r.bold=True for h,t in sections: p=d.add_paragraph(); r=p.add_run(h+": "); r.bold=True; p.add_run(t) p.paragraph_format.space_after=Pt(4) d.save("/tmp/workspace/jic2027-abstract/JIC2027_GPA_Case_Abstract_v2.docx") EOF python3 /tmp/workspace/jic2027-abstract/abs3.py

Running Command

cd /tmp/workspace/jic2027-abstract && python3 - << 'EOF' import re s=open('abs3.py').read() start=s.index('sections = ['); end=s.index(']\ntot=0')+1 new='''sections = [ ("Case History", "A 29-year-old male driver from Surendranagar, a tobacco chewer with recurrent otitis media and sensorineural hearing loss, presented in March 2026 with 20 days of giddiness, weakness, fever and anorexia, 15 days of cough with haemoptysis and epistaxis, weight loss, and 100 days of left knee pain and swelling. Examination showed bilateral conjunctival injection, a dark nasal crust and bilateral knee swelling with left effusion. Rash, sicca symptoms, genital ulcers and small joint pain were absent. Hb was 9.9 g/dL, CRP 303.9 mg/L, ESR 85 mm/h and ferritin above 1850 ng/mL; urine showed 10-12 RBC/hpf. CECT thorax revealed nodular infiltrates and consolidation with necrotizing areas. Ultrasound showed left pleural effusion and left popliteal partial thrombus."), ("Diagnosis", "PR3-ANCA was strongly positive (72 IU/mL; reference below 3). ANA, hepatitis B and C, dengue, Widal, cultures and sputum CBNAAT were negative. Granulomatosis with polyangiitis (GPA) was diagnosed, with upper airway, ear, eye, lung, joint and probable renal involvement."), ("Management", "Cyclophosphamide 500 mg fortnightly began on 21 March 2026. After three doses he flared with cough, dyspnoea and crepitations; Hb fell to 9.2 g/dL, CRP was 150 mg/L, and HRCT showed ground-glass opacities. Rituximab 1 g (15 May, 1 June 2026) and methylprednisolone 500 mg for three days, then tapering prednisolone, were given."), ("Discussion", "Ear involvement should not be dismissed as coincidental in ANCA-positive multisystem disease. Rituximab with glucocorticoids is non-inferior to cyclophosphamide for induction and is preferred in refractory disease. Flare eight weeks into cyclophosphamide warrants early reassessment and prompt change of agent."), ("Outcome", "Chest opacities resolved within two days. At five months he was asymptomatic (SpO2 98%), with Hb 10.2 g/dL, ESR 40 mm/h and CRP 4.1 mg/L; creatinine 1.15 mg/dL and 1+ proteinuria are monitored. On azathioprine and low-dose prednisolone, maintenance rituximab 500 mg is planned for 1 December 2026."), ]''' open('abs4.py','w').write(s[:start]+new+s[end:]) EOF python3 abs4.py; ls /tmp/workspace/jic2027-abstract/*.docx

Running Command

cd /tmp/workspace/jic2027-abstract && python3 - << 'EOF' s=open('abs4.py').read() s=s.replace("driver from Surendranagar, a tobacco","driver, a tobacco") s=s.replace("Rash, sicca symptoms, genital ulcers and small joint pain were absent.","Rash, sicca symptoms and genital ulcers were absent.") s=s.replace("Hb fell to 9.2 g/dL, CRP was 150 mg/L,","CRP was 150 mg/L,") s=s.replace("JIC2027_GPA_Case_Abstract_v2.docx","JIC2027_GPA_Case_Abstract_v2.docx") open('abs5.py','w').write(s) EOF python3 abs5.py && python3 -c " from docx import Document d=Document('/tmp/workspace/jic2027-abstract/JIC2027_GPA_Case_Abstract_v2.docx') print(d.styles['Normal'].font.name,d.styles['Normal'].font.size.pt)"

The updated abstract now has a longer Case History and a shorter Management section, with details from your PPT added. It is 285 words of body text, or 291 with the section headings, which fits the 250-300 limit. The file uses Times New Roman 11 pt.

JIC2027 GPA Case Abstract v2

Word Document · DOCX


Flare of PR3-ANCA Granulomatosis with Polyangiitis during Cyclophosphamide Induction: Rapid Response to Rituximab and Pulse Methylprednisolone
Case History: A 29-year-old male driver, a tobacco chewer with recurrent otitis media and sensorineural hearing loss, presented in March 2026 with 20 days of giddiness, weakness, fever and anorexia, 15 days of cough with haemoptysis and epistaxis, weight loss, and 100 days of left knee pain and swelling. Examination showed bilateral conjunctival injection, a dark nasal crust and bilateral knee swelling with left effusion. Rash, sicca symptoms and genital ulcers were absent. Hb was 9.9 g/dL, CRP 303.9 mg/L, ESR 85 mm/h and ferritin above 1850 ng/mL; urine showed 10-12 RBC/hpf. CECT thorax revealed nodular infiltrates and consolidation with necrotizing areas. Ultrasound showed left pleural effusion and left popliteal partial thrombus.
Diagnosis: PR3-ANCA was strongly positive (72 IU/mL; reference below 3). ANA, hepatitis B and C, dengue, Widal, cultures and sputum CBNAAT were negative. Granulomatosis with polyangiitis (GPA) was diagnosed, with upper airway, ear, eye, lung, joint and probable renal involvement.
Management: Cyclophosphamide 500 mg fortnightly began on 21 March 2026. After three doses he flared with cough, dyspnoea and crepitations; CRP was 150 mg/L, and HRCT showed ground-glass opacities. Rituximab 1 g (15 May, 1 June 2026) and methylprednisolone 500 mg for three days, then tapering prednisolone, were given.
Discussion: Ear involvement should not be dismissed as coincidental in ANCA-positive multisystem disease. Rituximab with glucocorticoids is non-inferior to cyclophosphamide for induction and is preferred in refractory disease. Flare eight weeks into cyclophosphamide warrants early reassessment and prompt change of agent.
Outcome: Chest opacities resolved within two days. At five months he was asymptomatic (SpO2 98%), with Hb 10.2 g/dL, ESR 40 mm/h and CRP 4.1 mg/L; creatinine 1.15 mg/dL and 1+ proteinuria are monitored. On azathioprine and low-dose prednisolone, maintenance rituximab 500 mg is planned for 1 December 2026.

What changed
  • Case History: It grew from about 59 to 110 words. I added the occupation, ear disease (recurrent otitis media and sensorineural hearing loss), giddiness, haemoptysis, conjunctival injection, nasal crust and bilateral knee swelling with left effusion. I also added the 100-day joint history, the pertinent negatives, the CRP, ESR, ferritin and urine findings, the pleural effusion and the left popliteal partial thrombus.
  • Diagnosis: It now includes the negative ANA, viral, tropical-fever and culture results, and the ear and eye involvement.
  • Management: It shrank from 84 to 48 words. The planned workup and supportive care in slide 11 are not in the abstract.
  • Discussion: It now carries the ear-involvement teaching point from your take-home slide.
  • Resolved earlier query: The "partial thrombus" note I couldn't read before is now clear from your PPT. It is a left popliteal partial thrombus.
Conflicts between your PPT and the hospital records. Please confirm these.
  1. CRP: The PPT gives 303.9 mg/L, and the OPD record gives 345. I used 303.9, since it matches the 21-23 March initial values.
  2. Ferritin: The PPT gives above 1850 ng/mL, and the OPD record gives above 1650. I used 1850.
  3. Haematuria: The PPT lists it as a pertinent negative, but urine microscopy showed 10-12 RBC/hpf. The abstract therefore reports only the urine finding. Haematuria did appear as a complaint at the May flare.
  4. Pleural effusion: The PPT mentions a mild left pleural effusion on ultrasound, but the OPD record's USG abdomen says NAD. I kept the PPT version.
  5. Popliteal thrombus: No anticoagulation or Doppler follow-up is documented. A reviewer may ask about treatment, so add it if it was given.
  6. Biopsy: No tissue biopsy is documented. The diagnosis rests on clinical features and PR3-ANCA, so be ready for that question.
  7. Hospital name: The PPT says Dept. of Internal Medicine, Surendranagar, but the treatment records are from SVP Hospital, Ahmedabad. Confirm the author affiliations.
  8. Renal involvement: I wrote "probable renal involvement". This rests on the urine RBCs, ACR 40.7 mg/g and the creatinine rise to 1.15 to 1.2.
Poster use: Your PPT's clinical photographs (conjunctival injection, nasal crust, bilateral knee swelling) are strong poster material. Use them de-identified, with patient consent. The remaining PPT content works for the poster: the differential diagnosis, the NT-proBNP 372 and PAT 81 ms results, and the Q&A.
I can now draft the 6-slide Grand Jury deck and the 6-minute talk script, or lay out the poster.

Design the 2 m x 1 m vertical poster with mandatory footer

Running Command

mkdir -p /tmp/workspace/jic2027-poster/assets && cd /tmp/workspace/jic2027-poster && python3 - << 'EOF' from pptx import Presentation p=Presentation('/tmp/workspace/attachments/05f23df2-e041-4458-9e30-82e66411fa9f/Clinical_Case_GPA.pptx') for i,s in enumerate(p.slides,1): for sh in s.shapes: if sh.shape_type==13: im=sh.image fn=f'assets/s{i}_{sh.name.replace(" ","_")}.{im.ext}' open(fn,'wb').write(im.blob) from PIL import Image print(fn, Image.open(fn).size, sh.crop_left, sh.crop_right, sh.crop_top, sh.crop_bottom) EOF fc-list | grep -iE "liberation|dejavu|arial|helvet|open|roboto|noto" | head -20; python3 -c "import fitz;print('fitz ok')"; python3 -c "import reportlab;print(reportlab.Version)"

Reading File
Reading File
Reading File
Running Command

which pdftoppm; python3 -c "import pypdfium2;print('pdfium ok')"; python3 -c "import pdf2image;print('pdf2image ok')"; python3 -c "import matplotlib;print(matplotlib.__version__)"

Running Command

mkdir -p /tmp/workspace/jic2027-poster/src /tmp/workspace/jic2027-poster/output && cd /tmp/workspace/jic2027-poster && cat > src/chart.py << 'EOF' import matplotlib matplotlib.use("Agg") import matplotlib.pyplot as plt import matplotlib.dates as mdates from matplotlib.gridspec import GridSpec from datetime import date as D NAVY="#12355B"; TEAL="#1B7F8C"; RED="#B23A48"; GOLD="#E0A100"; GREY="#5B6B7A" W_CM, H_CM = 91.6, 40.0 plt.rcParams.update({"font.size":26, "axes.linewidth":2}) fig = plt.figure(figsize=(W_CM/2.54, H_CM/2.54)) gs = GridSpec(3,1,height_ratios=[1.25,1.5,1.0], hspace=0.10, left=0.15, right=0.985, top=0.985, bottom=0.075) ax1=fig.add_subplot(gs[0]); ax2=fig.add_subplot(gs[1],sharex=ax1); ax3=fig.add_subplot(gs[2],sharex=ax1) x0,x1 = D(2026,3,8), D(2026,12,20) def num(d): return mdates.date2num(d) # ---- Panel A: treatment ax1.set_ylim(-0.6,3.7); ax1.set_yticks([3,2,1,0]) ax1.set_yticklabels(["Cyclophosphamide","Rituximab","Steroids","Azathioprine"], fontsize=27, fontweight="bold", color=NAVY) def bar(y,a,b,c): ax1.barh(y, num(b)-num(a), left=num(a), height=0.5, color=c, edgecolor="none", zorder=3) bar(3,D(2026,3,21),D(2026,4,30),TEAL) ax1.text(num(D(2026,5,4)),3,"500 mg x 3 doses (21 Mar to 30 Apr)",va="center",fontsize=24,color=TEAL,fontweight="bold") for d,lab in [(D(2026,5,15),""),(D(2026,6,1),"")]: ax1.plot(num(d),2,marker="D",ms=26,color=RED,zorder=4) ax1.text(num(D(2026,6,8)),2,"1 g on 15 May and 1 Jun",va="center",fontsize=24,color=RED,fontweight="bold") ax1.plot(num(D(2026,12,1)),2,marker="D",ms=26,mfc="white",mec=RED,mew=4,zorder=4) ax1.text(num(D(2026,11,26)),2,"500 mg planned 1 Dec",va="center",ha="right",fontsize=24,color=RED,fontweight="bold") bar(1,D(2026,5,15),D(2026,5,18),RED) ax1.text(num(D(2026,5,11)),1,"MPS 500 mg x 3 d",va="center",ha="right",fontsize=24,color=RED,fontweight="bold") bar(1,D(2026,5,18),D(2026,10,30),"#8FB8C4") ax1.text(num(D(2026,5,26)),1,"Prednisolone taper (40 mg to 5 / 2.5 mg alternate days)",va="center",fontsize=24,color=NAVY,fontweight="bold",zorder=5) bar(0,D(2026,10,30),D(2026,12,15),GREY) ax1.text(num(D(2026,10,26)),0,"50 mg twice daily",va="center",ha="right",fontsize=24,color=GREY,fontweight="bold") ax1.set_title("") ax1.tick_params(axis="x",labelbottom=False,length=0) ax1.tick_params(axis="y",length=0) for s in ["top","right"]: ax1.spines[s].set_visible(False) # ---- Panel B: CRP and ESR crp=[(D(2026,3,23),303.9),(D(2026,4,29),73),(D(2026,5,14),84),(D(2026,5,15),150),(D(2026,5,17),121),(D(2026,9,30),36),(D(2026,10,28),4.1)] esr=[(D(2026,3,23),85),(D(2026,4,29),67),(D(2026,5,14),118),(D(2026,9,30),44),(D(2026,10,28),40)] ax2.plot([num(d) for d,_ in crp],[v for _,v in crp],"-o",color=RED,lw=5,ms=16,label="CRP (mg/L)",zorder=4) ax2.plot([num(d) for d,_ in esr],[v for _,v in esr],"-s",color=NAVY,lw=5,ms=16,label="ESR (mm/h)",zorder=4) def lab(ax,d,v,t,dx,dy,c,ha="center"): ax.annotate(t,(num(d),v),xytext=(dx,dy),textcoords="offset points",fontsize=25,color=c,fontweight="bold",ha=ha,va="center") lab(ax2,D(2026,3,23),303.9,"303.9",0,34,RED) lab(ax2,D(2026,3,23),85,"85",0,-36,NAVY) lab(ax2,D(2026,4,29),73,"73",-8,40,RED) lab(ax2,D(2026,4,29),67,"67",0,-40,NAVY) lab(ax2,D(2026,5,14),118,"118",-52,10,NAVY) lab(ax2,D(2026,5,15),150,"150",46,18,RED) lab(ax2,D(2026,9,30),36,"36",0,-38,RED) lab(ax2,D(2026,9,30),44,"44",0,36,NAVY) lab(ax2,D(2026,10,28),4.1,"4.1",0,-38,RED) lab(ax2,D(2026,10,28),40,"40",0,36,NAVY) ax2.set_ylim(-35,350); ax2.set_yticks([0,100,200,300]) ax2.set_ylabel("CRP / ESR",fontsize=27,fontweight="bold",color=NAVY) ax2.legend(loc="upper right",fontsize=25,frameon=False,ncol=2,bbox_to_anchor=(1.0,1.02)) ax2.tick_params(axis="x",labelbottom=False,length=0) for s in ["top","right"]: ax2.spines[s].set_visible(False) ax2.grid(axis="y",color="#D9E2EA",lw=1.5,zorder=0) # ---- Panel C: Hb hb=[(D(2026,3,23),9.9),(D(2026,3,28),8.8),(D(2026,4,29),11.4),(D(2026,5,14),9.2),(D(2026,5,17),8.3),(D(2026,9,30),9.5),(D(2026,10,28),10.2)] ax3.plot([num(d) for d,_ in hb],[v for _,v in hb],"-o",color=TEAL,lw=5,ms=16,zorder=4) lab(ax3,D(2026,3,23),9.9,"9.9",-8,36,TEAL) lab(ax3,D(2026,3,28),8.8,"8.8",36,-30,TEAL) lab(ax3,D(2026,4,29),11.4,"11.4",0,36,TEAL) lab(ax3,D(2026,5,14),9.2,"9.2",-48,10,TEAL) lab(ax3,D(2026,5,17),8.3,"8.3",44,-24,TEAL) lab(ax3,D(2026,9,30),9.5,"9.5",0,-36,TEAL) lab(ax3,D(2026,10,28),10.2,"10.2",0,36,TEAL) ax3.set_ylim(7.3,12.6); ax3.set_yticks([8,10,12]) ax3.set_ylabel("Hb (g/dL)",fontsize=27,fontweight="bold",color=NAVY) ax3.grid(axis="y",color="#D9E2EA",lw=1.5,zorder=0) for s in ["top","right"]: ax3.spines[s].set_visible(False) ax3.xaxis.set_major_locator(mdates.MonthLocator()) ax3.xaxis.set_major_formatter(mdates.DateFormatter("%b")) ax3.tick_params(axis="x",labelsize=26,length=8,width=2) ax3.set_xlabel("2026",fontsize=27,fontweight="bold",color=NAVY) ax1.set_xlim(num(x0),num(x1)) # flare shading for ax in (ax1,ax2,ax3): ax.axvspan(num(D(2026,5,14)),num(D(2026,5,18)),color="#F6D5D9",zorder=1) ax1.text(num(D(2026,5,16)),3.55,"FLARE",ha="center",va="center",fontsize=24,color=RED,fontweight="bold") # panel letters for ax,t in [(ax1,"A Treatment"),(ax2,"B Inflammatory markers"),(ax3,"C Haemoglobin")]: ax.text(num(D(2026,7,20)),1.0 if ax is not ax1 else 3.6, "",) fig.text(0.152,0.985,"",) fig.savefig("assets/course_chart.png",dpi=150) print("ok") EOF python3 src/chart.py && python3 -c " from PIL import Image im=Image.open('/tmp/workspace/jic2027-poster/assets/course_chart.png');print(im.size) im.resize((im.width//5,im.height//5)).save('/tmp/workspace/jic2027-poster/assets/chart_prev.png')"

Reading File
Running Command

cd /tmp/workspace/jic2027-poster && sed -i 's/ax1.set_ylim(-0.6,3.7)/ax1.set_ylim(-0.6,4.05)/; s/3.55,"FLARE"/3.75,"FLARE"/; s/ax2.set_ylim(-35,350)/ax2.set_ylim(-60,350)/' src/chart.py && python3 src/chart.py && python3 - << 'EOF' from PIL import Image a='/tmp/workspace/jic2027-poster/assets/' im=Image.open(a+'s5_Image_0.jpg').rotate(180); im.save(a+'p_eyes.jpg',quality=92) Image.open(a+'s5_Image_1.jpg').save(a+'p_nose.jpg',quality=92) Image.open(a+'s6_Image_0.jpg').save(a+'p_knee.jpg',quality=92) EOF cat > src/poster.py << 'EOF' from reportlab.pdfgen import canvas from reportlab.lib.units import cm from reportlab.lib.colors import HexColor, white from reportlab.lib.styles import ParagraphStyle from reportlab.platypus import Paragraph, Table, TableStyle from reportlab.lib.utils import ImageReader A="/tmp/workspace/jic2027-poster/assets/" OUT="/tmp/workspace/jic2027-poster/output/JIC2027_GPA_Poster_100x200cm.pdf" PW,PH=100*cm,200*cm NAVY=HexColor("#12355B"); TEAL=HexColor("#1B7F8C"); RED=HexColor("#B23A48"); GOLD=HexColor("#FFD166") LIGHT=HexColor("#EEF4F8"); INK=HexColor("#1E2A38"); LINE=HexColor("#C9D6E0") M=3*cm; CW=PW-2*M; GAP=3*cm; COL=(CW-GAP)/2; PAD=1.3*cm BAR=2.8*cm; FOOT=8*cm; HEAD=37*cm def S(name,size,lead=None,font="Helvetica",color=INK,**kw): return ParagraphStyle(name,fontName=font,fontSize=size,leading=lead or size*1.28,textColor=color,**kw) body=S("b",30,40) bul=S("bu",30,40,leftIndent=1.2*cm,bulletIndent=0.1*cm,spaceAfter=0.35*cm) small=S("s",24,31) ref=S("r",24,31,leftIndent=1.2*cm,firstLineIndent=-1.2*cm,spaceAfter=0.3*cm) cap=S("c",24,30,alignment=1) cell=S("cell",27,34); cellb=S("cellb",27,34,font="Helvetica-Bold",color=NAVY) PH_=lambda t: f'<font backColor="#FFD166" color="#7A4B00">{t}</font>' class Paras: def __init__(s,items): s.items=items def measure(s,w): return sum(p.wrap(w,10000)[1]+p.style.spaceAfter+p.style.spaceBefore for p in s.items) def draw(s,c,x,y,w): for p in s.items: h=p.wrap(w,10000)[1]; y-=p.style.spaceBefore; p.drawOn(c,x,y-h); y-=h+p.style.spaceAfter def P(t,st=body): return Paragraph(t,st) def B(t): return Paragraph(t,bul,bulletText="\u2022") class Spacer_: def __init__(s,h): s.h=h def measure(s,w): return s.h def draw(s,c,x,y,w): pass class Photos: def __init__(s,items): s.items=items # (file, caption) def dims(s,w): g=0.8*cm; iw=(w-2*g)/3; ih=iw*4/3; return g,iw,ih def measure(s,w): g,iw,ih=s.dims(w); return ih+0.4*cm+3*30+0.3*cm def draw(s,c,x,y,w): g,iw,ih=s.dims(w) for i,(f,t) in enumerate(s.items): xx=x+i*(iw+g); c.drawImage(A+f,xx,y-ih,iw,ih,preserveAspectRatio=True,mask=None) c.setStrokeColor(NAVY); c.setLineWidth(2); c.rect(xx,y-ih,iw,ih,fill=0) pp=Paragraph(t,cap); h=pp.wrap(iw,1000)[1]; pp.drawOn(c,xx,y-ih-0.4*cm-h) class Img: def __init__(s,f,h_cm): s.f=f; s.h=h_cm*cm def measure(s,w): return s.h def draw(s,c,x,y,w): c.drawImage(A+s.f,x,y-s.h,w,s.h) class Tbl: def __init__(s,rows,colw,header=True,hl=None): s.rows=rows; s.colw=colw; s.header=header def build(s,w): cw=[w*f for f in s.colw] data=[[Paragraph(str(c),cellb if (j==0 or (s.header and i==0)) else cell) for j,c in enumerate(r)] for i,r in enumerate(s.rows)] t=Table(data,colWidths=cw) st=[("GRID",(0,0),(-1,-1),1.2,LINE),("VALIGN",(0,0),(-1,-1),"MIDDLE"), ("TOPPADDING",(0,0),(-1,-1),7),("BOTTOMPADDING",(0,0),(-1,-1),9),("LEFTPADDING",(0,0),(-1,-1),10), ("ROWBACKGROUNDS",(0,1 if s.header else 0),(-1,-1),[white,HexColor("#F6F9FB")])] if s.header: st+= [("BACKGROUND",(0,0),(-1,0),HexColor("#DCE8F0"))] t.setStyle(TableStyle(st)); return t def measure(s,w): return s.build(w).wrap(w,10000)[1] def draw(s,c,x,y,w): t=s.build(w); h=t.wrap(w,10000)[1]; t.drawOn(c,x,y-h) class Callout: def __init__(s,big,small_): s.big=big; s.small_=small_ def measure(s,w): return 5.2*cm def draw(s,c,x,y,w): c.setFillColor(NAVY); c.roundRect(x,y-5.2*cm,w,5.2*cm,0.5*cm,fill=1,stroke=0) c.setFillColor(GOLD); c.setFont("Helvetica-Bold",68); c.drawString(x+0.9*cm,y-3.4*cm,s.big) c.setFillColor(white); c.setFont("Helvetica",30) for i,l in enumerate(s.small_): c.drawString(x+19.5*cm,y-2.6*cm-i*1.3*cm+0.6*cm,l) class Panel: def __init__(s,title,items,color=TEAL): s.title=title; s.items=items; s.color=color def inner(s,w): return w-2*PAD def content_h(s,w): return sum(i.measure(s.inner(w)) for i in s.items)+PAD*2+0.5*cm*(len(s.items)-1) def height(s,w): return BAR+s.content_h(w) def draw(s,c,x,ytop,w,h): c.setFillColor(LIGHT); c.setStrokeColor(LINE); c.setLineWidth(2) c.roundRect(x,ytop-h,w,h,0.6*cm,fill=1,stroke=1) c.setFillColor(s.color); p=c.beginPath(); p.roundRect(x,ytop-BAR,w,BAR,0.6*cm); c.drawPath(p,fill=1,stroke=0) c.rect(x,ytop-BAR,w,BAR/2,fill=1,stroke=0) c.setFillColor(white); c.setFont("Helvetica-Bold",48); c.drawString(x+PAD,ytop-BAR+0.85*cm,s.title) y=ytop-BAR-PAD for it in s.items: it.draw(c,x+PAD,y,s.inner(w)); y-=it.measure(s.inner(w))+0.5*cm c=canvas.Canvas(OUT,pagesize=(PW,PH)) c.setTitle("Flare of PR3-ANCA GPA during Cyclophosphamide Induction - JIC 2027 poster") # ---------------- header c.setFillColor(NAVY); c.rect(0,PH-HEAD,PW,HEAD,fill=1,stroke=0) c.setFillColor(TEAL); c.rect(0,PH-HEAD-0.7*cm,PW,0.7*cm,fill=1,stroke=0) c.setFillColor(GOLD); c.setFont("Helvetica-Bold",36); c.drawString(M,PH-3.2*cm,"JIC 2027 | CLINICAL CASE STUDY | RHEUMATOLOGY") tp=Paragraph("Flare of PR3-ANCA Granulomatosis with Polyangiitis during Cyclophosphamide Induction: Rapid Response to Rituximab and Pulse Methylprednisolone",S("t",74,86,font="Helvetica-Bold",color=white)) h=tp.wrap(CW,1000)[1]; tp.drawOn(c,M,PH-5*cm-h) au=Paragraph(PH_("[Presenting author]")+"*, "+PH_("[Co-author 2]")+", "+PH_("[Co-author 3]")+", "+PH_("[Guide / Head of department]"),S("a",40,50,color=white)) h2=au.wrap(CW,1000)[1]; y=PH-5*cm-h-1.4*cm; au.drawOn(c,M,y-h2) af=Paragraph(PH_("[Department of Rheumatology, Institution]")+", Ahmedabad, India. *Correspondence: "+PH_("[email]"),S("af",30,38,color=HexColor("#DCE8F0"))) h3=af.wrap(CW,1000)[1]; af.drawOn(c,M,y-h2-0.7*cm-h3) # ---------------- content intro=Panel("Introduction",[Paras([P("Granulomatosis with polyangiitis (GPA) is a PR3-ANCA associated necrotizing vasculitis of small vessels. It typically involves the upper airway, lungs and kidneys, and can also affect the ears, eyes and joints."), P("Cyclophosphamide or rituximab with glucocorticoids is standard induction. Disease can still flare during induction. We describe a young man with multisystem GPA whose disease flared on cyclophosphamide and settled quickly after rituximab.")])]) aim=Panel("Aim and Objectives",[Paras([P("<b>Aim:</b> To describe a multisystem presentation of PR3-ANCA GPA and its flare during induction therapy."), B("Show ear, eye and joint features that are easily dismissed"),B("Record the flare during cyclophosphamide induction"), B("Track CRP, ESR and Hb through rituximab and pulse methylprednisolone"),B("Discuss when to change the induction agent")])]) caseh=Panel("Case History",[Paras([ B("<b>Patient:</b> 29-year-old male driver, tobacco chewer; no comorbidity; family history not significant"), B("<b>Past:</b> recurrent otitis media and sensorineural hearing loss"), B("<b>20 days:</b> giddiness, generalised weakness, low-grade fever, anorexia"), B("<b>15-16 days:</b> cough with haemoptysis, epistaxis, nasal crusting"), B("<b>100 days:</b> left knee pain and swelling, worse over the last 10-12 days; 2-3 kg weight loss"), B("<b>Absent:</b> rash, sicca symptoms, genital ulcers, small joint and back pain"), B("<b>Examination:</b> bilateral conjunctival injection, dark nasal crust, bilateral knee swelling (left more than right) with left effusion")])]) photos=Panel("Clinical Findings",[Photos([("p_eyes.jpg","<b>A.</b> Bilateral conjunctival injection"),("p_nose.jpg","<b>B.</b> Nasal mucosal crusting"),("p_knee.jpg","<b>C.</b> Bilateral knee swelling, left more than right")]), Tbl([["System","Finding"],["Upper airway","Epistaxis, nasal crust"],["Ear","Recurrent otitis media, SNHL"],["Eye","Conjunctival injection"],["Lung","Cough, haemoptysis, infiltrates"],["Joint","Left knee monoarthritis"],["Kidney","10-12 RBC/hpf, ACR 40.7 mg/g"]],[0.32,0.68])]) inv=Panel("Investigations at Presentation",[Tbl([["Test","Result"],["Haemoglobin","9.9 g/dL"],["WBC / Platelets","17,460 / 795,000 per µL (peak)"],["CRP / ESR","303.9 mg/L / 85 mm/h"],["Ferritin","above 1850 ng/mL"],["Creatinine","0.58 mg/dL (0.95 at first check)"],["Urine","RBC 10-12/hpf; ACR 40.7 mg/g"],["NT-proBNP","372 pg/mL"],["PR3-ANCA (ELISA)","<b>72 IU/mL</b> (reference below 3)"],["ANA, HBsAg, HCV","Negative"],["Dengue, Widal","Negative"],["Blood and urine culture","No growth"],["Sputum CBNAAT","TB not detected"]],[0.42,0.58])]) dx=Panel("Imaging and Diagnosis",[Callout("PR3 72","PR3-ANCA, IU/mL|reference below 3".split("|")), Paras([B("<b>CECT thorax:</b> diffuse nodular infiltrates and dense consolidation with necrotizing areas in right upper, right middle and both lower lobes"), B("<b>CT paranasal sinuses:</b> normal"),B("<b>Ultrasound:</b> left pleural effusion, minimal left knee effusion, left popliteal partial thrombus"), B("<b>Echo:</b> EF 60%, RVSP 22 mmHg"), B("<b>Diagnosis: GPA</b> with upper airway, ear, eye, lung, joint and probable renal involvement"), B("<b>Excluded:</b> SLE (ANA negative), viral hepatitis, tropical fever, tuberculosis, endocarditis (cultures negative)")])],NAVY) course=Panel("Management and Outcome",[Img("course_chart.png",40), Paras([P("<b>Management:</b> Cyclophosphamide 500 mg fortnightly from 21 March 2026. After three doses (last on 30 April) he flared with cough, dyspnoea and crepitations, with CRP 150 mg/L and ground-glass opacities with consolidation on HRCT. Rituximab 1 g was given on 15 May and 1 June 2026 with methylprednisolone 500 mg for three days, then tapering prednisolone."), P("<b>Outcome:</b> Chest radiograph cleared within two days. At five months he is asymptomatic (SpO2 98% on room air) with Hb 10.2 g/dL, ESR 40 mm/h and CRP 4.1 mg/L. Creatinine 1.15 mg/dL and 1+ proteinuria are under surveillance. Maintenance: azathioprine 50 mg twice daily and low-dose prednisolone; rituximab 500 mg planned for 1 December 2026.")])],RED) disc=Panel("Discussion",[Paras([ B("Hearing loss and otitis media should not be dismissed as coincidental in ANCA-positive multisystem disease"), B("Rituximab with glucocorticoids is non-inferior to cyclophosphamide for induction in severe ANCA vasculitis (RAVE, RITUXVAS) and is recommended in current guidelines<super>1-4</super>"), B("Flare eight weeks into cyclophosphamide, with falling Hb and a CRP rebound, justified a prompt change of agent<super>5</super>"), B("Active ANCA vasculitis raises venous thrombosis risk; a popliteal thrombus needs a clear plan"), B("<b>Limitations:</b> no tissue biopsy; single case; short follow-up; creatinine drift to 1.15 mg/dL")])]) concl=Panel("Conclusion and Take-home Points",[Paras([ B("Think GPA in a young patient with nasal crusting, haemoptysis, joint, eye and ear features"), B("A strongly positive PR3-ANCA with typical features supports the diagnosis even before tissue confirmation"), B("Reassess disease activity early; switch to rituximab if the disease flares during induction"), B("Follow CRP, ESR, Hb, creatinine and urine closely after remission"), B("Manage jointly with rheumatology, pulmonology, nephrology, ENT and ophthalmology")])],RED) refs=Panel("References",[Paras([Paragraph(t,ref) for t in [ "1. Stone JH, Merkel PA, Spiera R, et al. Rituximab versus cyclophosphamide for ANCA-associated vasculitis. N Engl J Med 2010;363:221-32.", "2. Jones RB, Tervaert JW, Hauser T, et al. Rituximab versus cyclophosphamide in ANCA-associated renal vasculitis. N Engl J Med 2010;363:211-20.", "3. Hellmich B, Sanchez-Alamo B, Schirmer JH, et al. EULAR recommendations for the management of ANCA-associated vasculitis: 2022 update. Ann Rheum Dis 2024;83:30-47.", "4. Chung SA, Langford CA, Maz M, et al. 2021 ACR/Vasculitis Foundation guideline for the management of ANCA-associated vasculitis. Arthritis Rheumatol 2021;73:1366-83.", "5. Hajishah H, Amini MJ, Chadeganipour AS. Efficacy of rituximab on refractory organ involvements in granulomatosis with polyangiitis: a systematic review of case reports. Curr Rheumatol Rev 2024 (PMID 37907486).", "6. Harrison's Principles of Internal Medicine, 22nd ed. McGraw Hill; 2025."]])],NAVY) ack=Panel("Acknowledgement and Consent",[Paras([P("We thank the patient and his family, and the rheumatology, radiology, laboratory and nursing teams who cared for him."), P(PH_("[Confirm before printing: written informed consent for publication of clinical details and photographs was obtained.]")), P(PH_("[Conflict of interest / funding statement]"))])],NAVY) rows=[(intro,aim),(caseh,photos),(inv,dx),(course,),(disc,concl),(refs,ack)] avail=PH-HEAD-0.7*cm-FOOT def rh(r): return max(p.height(COL if len(r)==2 else CW) for p in r) tot=sum(rh(r) for r in rows); gap=(avail-tot)/(len(rows)+1) print("content",tot/cm,"avail",avail/cm,"gap",gap/cm) y=PH-HEAD-0.7*cm-gap for r in rows: h=rh(r) if len(r)==2: r[0].draw(c,M,y,COL,h); r[1].draw(c,M+COL+GAP,y,COL,h) else: r[0].draw(c,M,y,CW,h) y-=h+gap # ---------------- footer c.setFillColor(NAVY); c.rect(0,0,PW,FOOT,fill=1,stroke=0) c.setFillColor(TEAL); c.rect(0,FOOT,PW,0.7*cm,fill=1,stroke=0) c.setFillColor(white); c.setFont("Helvetica-Bold",58) c.drawCentredString(PW/2,FOOT/2-0.7*cm,"Poster presented at JIC 2027, Ahmedabad, India.") c.showPage(); c.save(); print("saved") EOF python3 src/poster.py && cd output && pdftoppm -r 14 -png JIC2027_GPA_Poster_100x200cm.pdf prev && ls

Running Command

cd /tmp/workspace/jic2027-poster && sed -i 's/W_CM, H_CM = 91.6, 40.0/W_CM, H_CM = 91.6, 33.0/' src/chart.py && python3 src/chart.py && sed -i 's/body=S("b",30,40)/body=S("b",28,36)/; s/bul=S("bu",30,40,/bul=S("bu",28,36,/; s/Img("course_chart.png",40)/Img("course_chart.png",33)/; s/FOOT=8\*cm; HEAD=37\*cm/FOOT=7*cm; HEAD=34*cm/; s/cell=S("cell",27,34); cellb=S("cellb",27,34,/cell=S("cell",26,31); cellb=S("cellb",26,31,/' src/poster.py && python3 src/poster.py && cd output && rm -f prev*.png && pdftoppm -r 16 -png JIC2027_GPA_Poster_100x200cm.pdf prev && ls

Reading File
Running Command

cd /tmp/workspace/jic2027-poster && python3 - << 'EOF' s=open('src/poster.py').read() s=s.replace('FOOT=7*cm; HEAD=34*cm','FOOT=7*cm; HEAD=27*cm') s=s.replace('body=S("b",28,36)','body=S("b",31,41)').replace('bul=S("bu",28,36,','bul=S("bu",31,41,') s=s.replace('cell=S("cell",26,31); cellb=S("cellb",26,31,','cell=S("cell",28,33); cellb=S("cellb",28,33,') s=s.replace('S("t",74,86,','S("t",80,92,') s=s.replace('<super>1-4</super>',' [1-4]').replace('<super>5</super>',' [5]') # move organ table to left panel s=s.replace(''' B("<b>Examination:</b> bilateral conjunctival injection, dark nasal crust, bilateral knee swelling (left more than right) with left effusion")])])''',''' B("<b>Examination:</b> bilateral conjunctival injection, dark nasal crust, bilateral knee swelling (left more than right) with left effusion")]), Tbl([["System","Finding"],["Upper airway","Epistaxis, nasal crust"],["Ear","Recurrent otitis media, SNHL"],["Eye","Conjunctival injection"],["Lung","Cough, haemoptysis, infiltrates"],["Joint","Left knee monoarthritis"],["Kidney","10-12 RBC/hpf, ACR 40.7 mg/g"]],[0.32,0.68])])''') a=s.index(' Tbl([["System","Finding"],["Upper airway"',s.index('photos=Panel')) b=s.index('inv=Panel') s=s[:a].rstrip().rstrip(',')+'])\n'+s[b:] open('src/poster.py','w').write(s) EOF sed -n '/^photos=Panel/,/^inv=Panel/p' src/poster.py | head -5; python3 src/poster.py && cd output && rm -f prev*.png && pdftoppm -r 18 -png JIC2027_GPA_Poster_100x200cm.pdf prev && ls

Running Command

cd /tmp/workspace/jic2027-poster && sed -i 's/W_CM, H_CM = 91.6, 33.0/W_CM, H_CM = 91.6, 30.0/' src/chart.py && python3 src/chart.py && sed -i 's/body=S("b",31,41)/body=S("b",29,37)/; s/bul=S("bu",31,41,leftIndent=1.2\*cm,bulletIndent=0.1\*cm,spaceAfter=0.35\*cm)/bul=S("bu",29,37,leftIndent=1.2*cm,bulletIndent=0.1*cm,spaceAfter=0.25*cm)/; s/Img("course_chart.png",33)/Img("course_chart.png",30)/; s/PAD=1.3\*cm/PAD=1.1*cm/; s/BAR=2.8\*cm/BAR=2.6*cm/; s/cell=S("cell",28,33); cellb=S("cellb",28,33,/cell=S("cell",27,31); cellb=S("cellb",27,31,/; s/("TOPPADDING",(0,0),(-1,-1),7),("BOTTOMPADDING",(0,0),(-1,-1),9)/("TOPPADDING",(0,0),(-1,-1),5),("BOTTOMPADDING",(0,0),(-1,-1),7)/' src/poster.py && python3 src/poster.py && cd output && rm -f prev*.png && pdftoppm -r 18 -png JIC2027_GPA_Poster_100x200cm.pdf prev

Reading File
Running Command

cd /tmp/workspace/jic2027-poster && python3 - << 'EOF' s=open('src/poster.py').read() s=s.replace('HEAD=27*cm','HEAD=24*cm') s=s.replace('body=S("b",29,37)','body=S("b",32,41)').replace('bul=S("bu",29,37,leftIndent=1.2*cm,bulletIndent=0.1*cm,spaceAfter=0.25*cm)','bul=S("bu",32,41,leftIndent=1.2*cm,bulletIndent=0.1*cm,spaceAfter=0.3*cm)') s=s.replace('cell=S("cell",27,31); cellb=S("cellb",27,31,','cell=S("cell",29,34); cellb=S("cellb",29,34,') s=s.replace('ref=S("r",24,31,','ref=S("r",26,33,') s=s.replace('S("t",80,92,','S("t",84,96,') s=s.replace('PAD=1.1*cm','PAD=1.2*cm') # center option s=s.replace('def __init__(s,title,items,color=TEAL): s.title=title; s.items=items; s.color=color','def __init__(s,title,items,color=TEAL,center=False): s.title=title; s.items=items; s.color=color; s.center=center') s=s.replace(' y=ytop-BAR-PAD\n',' y=ytop-BAR-PAD\n if s.center: y-=max(0,(h-s.height(w))/2)\n') s=s.replace('("p_knee.jpg","<b>C.</b> Bilateral knee swelling, left more than right")])])','("p_knee.jpg","<b>C.</b> Bilateral knee swelling, left more than right")])],TEAL,True)') open('src/poster.py','w').write(s) EOF python3 src/poster.py && cd output && rm -f prev*.png && pdftoppm -r 18 -png JIC2027_GPA_Poster_100x200cm.pdf prev

Reading File
Running Command

cd /tmp/workspace/jic2027-poster/output && pdftoppm -r 40 -png JIC2027_GPA_Poster_100x200cm.pdf big && python3 - << 'EOF' from PIL import Image from pypdf import PdfReader r=PdfReader('JIC2027_GPA_Poster_100x200cm.pdf'); b=r.pages[0].mediabox print('page cm', float(b.width)/72*2.54, float(b.height)/72*2.54) im=Image.open('big-1.png'); print(im.size) w,h=im.size im.crop((0,int(h*0.0),w,int(h*0.36))).save('crop_top.png') im.crop((0,int(h*0.56),w,int(h*0.80))).save('crop_mid.png') Image.open('prev-1.png').save('JIC2027_GPA_Poster_preview.png') EOF

Reading File
Reading File
Running Command

cd /tmp/workspace/jic2027-poster && sed -i 's/ax2.set_ylim(-60,350)/ax2.set_ylim(-95,350)/; s/ax2.set_yticks(\[0,100,200,300\])/ax2.set_yticks([0,100,200,300])/' src/chart.py && python3 src/chart.py && sed -i 's/bul=S("bu",32,41,leftIndent=1.2\*cm,bulletIndent=0.1\*cm,spaceAfter=0.3\*cm)/bul=S("bu",32,41,leftIndent=1.2*cm,bulletIndent=0.1*cm,spaceAfter=0.3*cm,bulletFontName="Helvetica-Bold",bulletFontSize=34,bulletColor=TEAL)/' src/poster.py && python3 src/poster.py && cd output && rm -f prev*.png big*.png crop*.png && pdftoppm -r 40 -png JIC2027_GPA_Poster_100x200cm.pdf big && python3 - << 'EOF' from PIL import Image im=Image.open('big-1.png'); w,h=im.size im.crop((0,int(h*0.12),w,int(h*0.30))).save('crop_a.png') im.resize((w//3,h//3)).save('JIC2027_GPA_Poster_preview.png') EOF ls

Reading File
The poster is ready as a print-ready PDF at exactly 100 cm x 200 cm, portrait, with the mandatory footer printed across the bottom. I checked the page size in the file. I viewed it at reduced resolution and zoomed in on the chart and text areas.

JIC2027 GPA Poster 100x200cm

PDF Document · PDF

JIC2027 GPA Poster preview

Image · PNG

Footer (bottom band, 58 pt, bold): "Poster presented at JIC 2027, Ahmedabad, India."
Layout, top to bottom
  1. Header band: title, authors, affiliation, correspondence.
  2. Introduction and Aim and Objectives.
  3. Case History with a table of organ systems involved, beside Clinical Findings with three photos: conjunctival injection, nasal crust and bilateral knee swelling.
  4. Investigations at Presentation (table) beside Imaging and Diagnosis, which has a large "PR3 72" callout.
  5. Management and Outcome, full width:
    • A single timeline chart covers treatment bars (cyclophosphamide, rituximab, methylprednisolone and prednisolone taper, azathioprine), CRP and ESR over time, and Hb over time.
    • The May flare is shaded on the chart.
    • A short management and outcome paragraph sits below it.
  6. Discussion beside Conclusion and Take-home Points.
  7. References beside Acknowledgement and Consent.
This follows your recommended order, adapted for a case report. Methods and Results become Case History, Investigations, and Management and Outcome. The chart is the Results graph.
Type sizes: title 84 pt, section headings 48 pt, body text 32 pt, tables 29 pt, references 26 pt.
What you need to fill in or confirm before printing. Yellow-highlighted text in the PDF marks these items.
  1. Authors, affiliation and email: I used placeholders. Send me the names and I'll regenerate the poster.
  2. Written consent for publication: The Acknowledgement panel has a highlighted line to confirm this. I did not state that consent was obtained. Do not print without it.
  3. Photos:
    • The eye photo shows both eyes. I rotated it 180° because it was upside down in your PPT.
    • Get explicit consent for it, or crop or blur it.
  4. Azathioprine bar on the chart: It starts at 30 October because that is the first prescription I could see. If he started earlier, tell me the date.
  5. Cyclophosphamide dates: The records list doses 1 and 3 (21 March and 30 April) but "15 days apart" doesn't fit those dates. The chart shows one bar from 21 March to 30 April, with no individual dose dates.
  6. CRP, ferritin and Hb: Both of the values below use your PPT, as in the abstract.
    • CRP is 303.9 mg/L; the OPD record says 345.
    • Ferritin is above 1850; the OPD record says above 1650.
    • On the chart, the 23 March Hb of 9.9 and 28 March Hb of 8.8 are both plotted.
  7. References: I wrote these from memory, apart from the Hajishah 2024 review, which I confirmed on PubMed. Check the volume and page numbers before printing.
    • They are RAVE, RITUXVAS, EULAR 2022 (published 2024), ACR 2021, the Hajishah review and Harrison's 22E.
  8. Print size: Check that the print shop accepts 100 x 200 cm. Many standard plotters stop at about 91 cm wide.
  9. Layout points to review: Two things about the layout are open.
    • Printed in colour, the navy and teal bands will use a lot of ink.
    • The Case History panel is taller than the Clinical Findings panel beside it, so I centred the photos vertically.
Next steps
  • I can make an editable PowerPoint version at half scale (50 x 100 cm) that you scale to 200% when printing. PowerPoint can't open a 100 x 200 cm slide.
  • I can build the 6-slide Grand Jury deck and the 6-minute talk script.
  • I can add a QR code to the abstract or case report.
This is a shared conversation. Sign in to Orris to start your own chat.