APPENDIX I CAREGIVER QUESTIONNAIRE FOR DETERMINANTS OF DELAYED DIAGNOSIS IN CHILDHOOD GLAUCOMA Study Title: Determinants of Delayed Diagnosis in Childhood Glaucoma: A Hospital-Based Observational Study Adapted from published literature on caregiver knowledge, early signs of childhood glaucoma, referral pathways, and barriers to timely eye care (1–8). Instructions to the Interviewer: Please ask the caregiver the following questions in the language best understood by them. Tick the most appropriate response. Do not prompt the respondent toward any answer. For knowledge questions, mark Yes = 1 and No = 0. Section A: Sociodemographic and Clinical Details Patient ID: ____________________ Date of Interview: ____ / ____ / ______ Name of Interviewer: ____________________ Caregiver Details Age of caregiver (years): __________ Sex of caregiver: ☐ Male ☐ Female ☐ Other Relationship to child: ☐ Mother ☐ Father ☐ Grandparent ☐ Sibling ☐ Other: __________ Education level of caregiver: ☐ No formal education ☐ Primary school ☐ Secondary school ☐ Higher secondary ☐ Graduate or above Occupation of caregiver: ____________________ Monthly household income: ____________________ Place of residence: ☐ Urban ☐ Rural ☐ Semi-urban Distance from nearest eye care center: ☐ <50 km ☐ 50–200 km ☐ >200 km Health insurance/government health coverage: ☐ Yes ☐ No Child Details Age of child at presentation: __________ Sex of child: ☐ Male ☐ Female Laterality: ☐ Right eye ☐ Left eye ☐ Both eyes Type of childhood glaucoma: ____________________ Age when symptoms were first noticed: __________ Age at confirmed diagnosis: __________ Family history of glaucoma: ☐ Yes ☐ No ☐ Do not know History of consanguinity in parents: ☐ Yes ☐ No Any affected sibling/family member with similar eye disease: ☐ Yes ☐ No Section B: Caregiver Knowledge Questionnaire Scoring: Yes = 1, No = 0 No. Question Yes No Score 1 Did you know glaucoma can affect babies and young children? (1,2) ☐ ☐ ____ 2 Did you know a watery or teary eye in a baby could be a sign of serious eye disease? (3,4) ☐ ☐ ____ 3 Did you know a cloudy or hazy cornea in an infant needs urgent eye review? (3,4) ☐ ☐ ____ 4 Did you know that a visibly large eye in a baby could mean raised eye pressure? (3,5) ☐ ☐ ____ 5 Did you know that glaucoma in children can be treated successfully if found early? (4,6) ☐ ☐ ____ 6 Did you know that untreated childhood glaucoma can cause permanent blindness? (4,6) ☐ ☐ ____ 7 Did you know that light sensitivity and eye squeezing in an infant can be warning signs? (3,5) ☐ ☐ ____ 8 Did you know that a family history of glaucoma puts a child at higher risk? (5,7) ☐ ☐ ____ 9 Did you know that an infant eye check can help detect serious eye disease early? (3,8) ☐ ☐ ____ 10 Did you know that a general practitioner or pediatrician can refer a child to an eye specialist? (7,8) ☐ ☐ ____ Total Knowledge Score: ____ / 10 Section C: Delay Determinants and Referral Pathway Who first noticed the child’s eye problem? ☐ Mother ☐ Father ☐ Grandparent ☐ Other family member ☐ Doctor ☐ Teacher ☐ Other: __________ What was the first symptom noticed? ☐ Watering ☐ Cloudiness of eye ☐ Large eye ☐ Light sensitivity ☐ Redness ☐ Poor vision ☐ Other: __________ How long after first noticing the problem was medical care first sought? ☐ Same day ☐ <1 week ☐ 1–4 weeks ☐ 1–3 months ☐ >3 months Did you think the problem would improve on its own? ☐ Yes ☐ No Did you try home remedies, self-medication, or traditional treatment before visiting a specialist? ☐ Yes ☐ No Did financial cost delay seeking eye care? ☐ Not at all ☐ A little ☐ A lot Did distance or transport difficulty delay seeking eye care? ☐ Not at all ☐ A little ☐ A lot Did work or household responsibilities delay the hospital visit? ☐ Yes ☐ No Did any family, community, cultural, or religious belief delay treatment? ☐ Yes ☐ No Did you have difficulty knowing where to go for specialist eye care? ☐ Yes ☐ No How many healthcare providers were consulted before ophthalmology referral? ☐ 0 ☐ 1 ☐ 2 ☐ 3 or more Which providers were consulted before ophthalmology referral? ☐ General practitioner ☐ Pediatrician ☐ Emergency department ☐ Local ophthalmologist ☐ Traditional healer ☐ Other: __________ Was any previous diagnosis given before childhood glaucoma was diagnosed? ☐ No ☐ Yes, specify: ____________________ Who referred the child to the ophthalmologist/tertiary eye center? ☐ General practitioner ☐ Pediatrician ☐ Ophthalmologist ☐ Screening program ☐ Emergency department ☐ Self-referral ☐ Other: __________ Were any warning signs previously noted in earlier medical records? ☐ No ☐ Yes ☐ Do not know If yes, which warning signs were documented? ☐ Corneal enlargement ☐ Buphthalmos ☐ Persistent tearing ☐ Corneal haze ☐ Photophobia ☐ Other: __________ Did lack of family or social support delay seeking care? ☐ Yes ☐ No Section D: Scoring Key and Interpretation Knowledge Score: Each correct Yes response in Section B = 1 mark; each No response = 0 mark; maximum score = 10. Interpretation: 0–3 = Poor knowledge; 4–7 = Moderate knowledge; 8–10 = Good knowledge. Delay determinants: Analyze Section C items individually, not as a combined score. Suggested definition of diagnostic delay: Interval between first caregiver recognition of symptoms and confirmed diagnosis by an ophthalmologist make this in a word file use table where ever needed
ls -la /tmp/workspace/ 2>/dev/null || mkdir -p /tmp/workspace && echo "workspace ready"
mkdir -p /tmp/workspace/childhood-glaucoma && cat << 'PYEOF' > /tmp/workspace/childhood-glaucoma/build_questionnaire.py from docx import Document from docx.shared import Pt, Inches, RGBColor from docx.enum.text import WD_ALIGN_PARAGRAPH from docx.enum.table import WD_TABLE_ALIGNMENT, WD_ALIGN_VERTICAL from docx.oxml.ns import qn from docx.oxml import OxmlElement def set_cell_bg(cell, hex_color): tc = cell._tc tcPr = tc.get_or_add_tcPr() shd = OxmlElement('w:shd') shd.set(qn('w:val'), 'clear') shd.set(qn('w:color'), 'auto') shd.set(qn('w:fill'), hex_color) tcPr.append(shd) def set_cell_borders(cell, top=None, bottom=None, left=None, right=None): tc = cell._tc tcPr = tc.get_or_add_tcPr() tcBorders = OxmlElement('w:tcBorders') for side, val in [('top', top), ('bottom', bottom), ('left', left), ('right', right)]: if val: el = OxmlElement(f'w:{side}') el.set(qn('w:val'), val.get('val', 'single')) el.set(qn('w:sz'), str(val.get('sz', 4))) el.set(qn('w:space'), '0') el.set(qn('w:color'), val.get('color', '000000')) tcBorders.append(el) tcPr.append(tcBorders) def bold_run(para, text, size=None, color=None): run = para.add_run(text) run.bold = True if size: run.font.size = Pt(size) if color: run.font.color.rgb = RGBColor(*color) return run def add_checkbox_line(doc, label, indent=0.3): p = doc.add_paragraph() p.paragraph_format.left_indent = Inches(indent) p.paragraph_format.space_before = Pt(2) p.paragraph_format.space_after = Pt(2) run = p.add_run(u'\u2610 ' + label) run.font.name = 'Arial' run.font.size = Pt(11) return p def cell_para(cell, text, bold=False, size=11, align=WD_ALIGN_PARAGRAPH.LEFT, color=None): cell.paragraphs[0].clear() p = cell.paragraphs[0] p.alignment = align run = p.add_run(text) run.bold = bold run.font.name = 'Arial' run.font.size = Pt(size) if color: run.font.color.rgb = RGBColor(*color) return p # ─── Document Setup ───────────────────────────────────────────────────────── doc = Document() # Page: A4, 1" margins section = doc.sections[0] section.page_width = Inches(8.27) section.page_height = Inches(11.69) section.top_margin = Inches(1.0) section.bottom_margin = Inches(1.0) section.left_margin = Inches(1.0) section.right_margin = Inches(1.0) # Default Normal style normal = doc.styles['Normal'] normal.font.name = 'Arial' normal.font.size = Pt(11) # Heading styles for lvl, sz, col in [(1, 14, (0x1F, 0x35, 0x64)), (2, 12, (0x1F, 0x35, 0x64)), (3, 11, (0x2E, 0x74, 0xB5))]: h = doc.styles[f'Heading {lvl}'] h.font.name = 'Arial' h.font.size = Pt(sz) h.font.bold = True h.font.color.rgb = RGBColor(*col) DARK_BLUE = (0x1F, 0x35, 0x64) MED_BLUE = (0x2E, 0x74, 0xB5) HEADER_BG = 'D9E1F2' SUBHDR_BG = 'BDD7EE' ALTROW_BG = 'EBF3FB' WHITE_BG = 'FFFFFF' # ─── TITLE BLOCK ──────────────────────────────────────────────────────────── title = doc.add_paragraph() title.alignment = WD_ALIGN_PARAGRAPH.CENTER title.paragraph_format.space_before = Pt(0) title.paragraph_format.space_after = Pt(4) r = title.add_run('APPENDIX I') r.bold = True; r.font.size = Pt(13); r.font.name = 'Arial' r.font.color.rgb = RGBColor(*DARK_BLUE) title2 = doc.add_paragraph() title2.alignment = WD_ALIGN_PARAGRAPH.CENTER title2.paragraph_format.space_before = Pt(0) title2.paragraph_format.space_after = Pt(4) r2 = title2.add_run('CAREGIVER QUESTIONNAIRE FOR DETERMINANTS OF DELAYED DIAGNOSIS IN CHILDHOOD GLAUCOMA') r2.bold = True; r2.font.size = Pt(13); r2.font.name = 'Arial' r2.font.color.rgb = RGBColor(*DARK_BLUE) study = doc.add_paragraph() study.alignment = WD_ALIGN_PARAGRAPH.CENTER study.paragraph_format.space_before = Pt(2) study.paragraph_format.space_after = Pt(8) r3 = study.add_run('Study Title: Determinants of Delayed Diagnosis in Childhood Glaucoma: A Hospital-Based Observational Study') r3.italic = True; r3.font.size = Pt(11); r3.font.name = 'Arial' # Adapted from line adp = doc.add_paragraph() adp.alignment = WD_ALIGN_PARAGRAPH.CENTER adp.paragraph_format.space_after = Pt(10) r4 = adp.add_run('Adapted from published literature on caregiver knowledge, early signs of childhood glaucoma, referral pathways, and barriers to timely eye care (1\u20138).') r4.font.size = Pt(10); r4.font.name = 'Arial'; r4.italic = True # ─── INSTRUCTIONS BOX ─────────────────────────────────────────────────────── instr_tbl = doc.add_table(rows=1, cols=1) instr_tbl.style = 'Table Grid' instr_tbl.alignment = WD_TABLE_ALIGNMENT.CENTER cell = instr_tbl.cell(0, 0) set_cell_bg(cell, 'FFF2CC') cell.width = Inches(6.27) p = cell.paragraphs[0] p.paragraph_format.left_indent = Inches(0.1) p.paragraph_format.right_indent = Inches(0.1) p.paragraph_format.space_before = Pt(4) p.paragraph_format.space_after = Pt(4) rb = p.add_run('Instructions to the Interviewer:\n') rb.bold = True; rb.font.name = 'Arial'; rb.font.size = Pt(11) ri = p.add_run('Please ask the caregiver the following questions in the language best understood by them. Tick the most appropriate response. Do not prompt the respondent toward any answer. For knowledge questions, mark Yes = 1 and No = 0.') ri.font.name = 'Arial'; ri.font.size = Pt(11) doc.add_paragraph() # ─── SECTION A ────────────────────────────────────────────────────────────── doc.add_heading('Section A: Sociodemographic and Clinical Details', level=1) # Admin info table adm = doc.add_table(rows=3, cols=2) adm.style = 'Table Grid' adm.alignment = WD_TABLE_ALIGNMENT.LEFT adm_data = [ ('Patient ID:', '____________________'), ('Date of Interview:', '____ / ____ / ______'), ('Name of Interviewer:', '____________________'), ] for i, (lbl, val) in enumerate(adm_data): c0 = adm.cell(i, 0); c1 = adm.cell(i, 1) set_cell_bg(c0, HEADER_BG) cell_para(c0, lbl, bold=True, size=11) cell_para(c1, val, size=11) c0.width = Inches(2.5); c1.width = Inches(3.77) doc.add_paragraph() # ─── CAREGIVER DETAILS sub-heading ───────────────────────────────────────── doc.add_heading('Caregiver Details', level=2) cg_table = doc.add_table(rows=10, cols=2) cg_table.style = 'Table Grid' cg_table.alignment = WD_TABLE_ALIGNMENT.LEFT cg_rows = [ ('Age of caregiver (years):', '__________'), ('Sex of caregiver:', u'\u2610 Male \u2610 Female \u2610 Other'), ('Relationship to child:', u'\u2610 Mother \u2610 Father \u2610 Grandparent \u2610 Sibling \u2610 Other: __________'), ('Education level of caregiver:', u'\u2610 No formal education \u2610 Primary school \u2610 Secondary school\n\u2610 Higher secondary \u2610 Graduate or above'), ('Occupation of caregiver:', '____________________'), ('Monthly household income:', '____________________'), ('Place of residence:', u'\u2610 Urban \u2610 Rural \u2610 Semi-urban'), ('Distance from nearest eye care center:', u'\u2610 <50 km \u2610 50\u2013200 km \u2610 >200 km'), ('Health insurance / government health coverage:', u'\u2610 Yes \u2610 No'), ] for i, (lbl, val) in enumerate(cg_rows): c0 = cg_table.cell(i, 0); c1 = cg_table.cell(i, 1) bg = ALTROW_BG if i % 2 == 0 else WHITE_BG set_cell_bg(c0, HEADER_BG) set_cell_bg(c1, bg) cell_para(c0, lbl, bold=True, size=11) cell_para(c1, val, size=11) c0.width = Inches(2.7); c1.width = Inches(3.57) # Row 10 colspan for scoring note -- not needed; remove extra row # Remove row 9 (empty) cg_table._tbl.remove(cg_table.rows[9]._tr) doc.add_paragraph() # ─── CHILD DETAILS sub-heading ────────────────────────────────────────────── doc.add_heading('Child Details', level=2) cd_table = doc.add_table(rows=11, cols=2) cd_table.style = 'Table Grid' cd_table.alignment = WD_TABLE_ALIGNMENT.LEFT cd_rows = [ ('Age of child at presentation:', '__________'), ('Sex of child:', u'\u2610 Male \u2610 Female'), ('Laterality:', u'\u2610 Right eye \u2610 Left eye \u2610 Both eyes'), ('Type of childhood glaucoma:', '____________________'), ('Age when symptoms were first noticed:', '__________'), ('Age at confirmed diagnosis:', '__________'), ('Family history of glaucoma:', u'\u2610 Yes \u2610 No \u2610 Do not know'), ('History of consanguinity in parents:', u'\u2610 Yes \u2610 No'), ('Any affected sibling/family member with similar eye disease:', u'\u2610 Yes \u2610 No'), ] for i, (lbl, val) in enumerate(cd_rows): c0 = cd_table.cell(i, 0); c1 = cd_table.cell(i, 1) bg = ALTROW_BG if i % 2 == 0 else WHITE_BG set_cell_bg(c0, HEADER_BG) set_cell_bg(c1, bg) cell_para(c0, lbl, bold=True, size=11) cell_para(c1, val, size=11) c0.width = Inches(2.9); c1.width = Inches(3.37) # Remove 2 extra rows cd_table._tbl.remove(cd_table.rows[10]._tr) cd_table._tbl.remove(cd_table.rows[9]._tr) doc.add_paragraph() # ─── SECTION B ────────────────────────────────────────────────────────────── doc.add_heading('Section B: Caregiver Knowledge Questionnaire', level=1) sp = doc.add_paragraph() rsp = sp.add_run('Scoring: Yes = 1, No = 0') rsp.bold = True; rsp.italic = True; rsp.font.size = Pt(11); rsp.font.name = 'Arial' kb_table = doc.add_table(rows=12, cols=5) kb_table.style = 'Table Grid' kb_table.alignment = WD_TABLE_ALIGNMENT.CENTER # Set column widths col_widths = [Inches(0.4), Inches(3.7), Inches(0.7), Inches(0.7), Inches(0.77)] for row in kb_table.rows: for i, w in enumerate(col_widths): row.cells[i].width = w # Header row hdr = kb_table.rows[0] for c in hdr.cells: set_cell_bg(c, DARK_BLUE[0:3]) set_cell_bg(c, '1F3564') hdrs = ['No.', 'Question', 'Yes', 'No', 'Score'] for i, h in enumerate(hdrs): cell_para(hdr.cells[i], h, bold=True, size=11, align=WD_ALIGN_PARAGRAPH.CENTER, color=(255,255,255)) questions = [ (1, 'Did you know glaucoma can affect babies and young children? (1,2)'), (2, 'Did you know a watery or teary eye in a baby could be a sign of serious eye disease? (3,4)'), (3, 'Did you know a cloudy or hazy cornea in an infant needs urgent eye review? (3,4)'), (4, 'Did you know that a visibly large eye in a baby could mean raised eye pressure? (3,5)'), (5, 'Did you know that glaucoma in children can be treated successfully if found early? (4,6)'), (6, 'Did you know that untreated childhood glaucoma can cause permanent blindness? (4,6)'), (7, 'Did you know that light sensitivity and eye squeezing in an infant can be warning signs? (3,5)'), (8, 'Did you know that a family history of glaucoma puts a child at higher risk? (5,7)'), (9, 'Did you know that an infant eye check can help detect serious eye disease early? (3,8)'), (10, 'Did you know that a general practitioner or pediatrician can refer a child to an eye specialist? (7,8)'), ] for idx, (num, q) in enumerate(questions): row = kb_table.rows[idx + 1] bg = ALTROW_BG if idx % 2 == 0 else WHITE_BG for c in row.cells: set_cell_bg(c, bg) cell_para(row.cells[0], str(num), size=11, align=WD_ALIGN_PARAGRAPH.CENTER) cell_para(row.cells[1], q, size=11) cell_para(row.cells[2], u'\u2610', size=12, align=WD_ALIGN_PARAGRAPH.CENTER) cell_para(row.cells[3], u'\u2610', size=12, align=WD_ALIGN_PARAGRAPH.CENTER) cell_para(row.cells[4], '____', size=11, align=WD_ALIGN_PARAGRAPH.CENTER) # Total row tot_row = kb_table.rows[11] for c in tot_row.cells: set_cell_bg(c, SUBHDR_BG) # Merge first 4 cells tot_row.cells[0].merge(tot_row.cells[3]) cell_para(tot_row.cells[0], 'Total Knowledge Score:', bold=True, size=11, align=WD_ALIGN_PARAGRAPH.RIGHT) cell_para(tot_row.cells[4], '____ / 10', bold=True, size=11, align=WD_ALIGN_PARAGRAPH.CENTER) doc.add_paragraph() # ─── SECTION C ────────────────────────────────────────────────────────────── doc.add_heading('Section C: Delay Determinants and Referral Pathway', level=1) sec_c_items = [ { 'q': 'C1. Who first noticed the child\'s eye problem?', 'opts': [u'\u2610 Mother', u'\u2610 Father', u'\u2610 Grandparent', u'\u2610 Other family member', u'\u2610 Doctor', u'\u2610 Teacher', u'\u2610 Other: __________'], }, { 'q': 'C2. What was the first symptom noticed?', 'opts': [u'\u2610 Watering', u'\u2610 Cloudiness of eye', u'\u2610 Large eye', u'\u2610 Light sensitivity', u'\u2610 Redness', u'\u2610 Poor vision', u'\u2610 Other: __________'], }, { 'q': 'C3. How long after first noticing the problem was medical care first sought?', 'opts': [u'\u2610 Same day', u'\u2610 <1 week', u'\u2610 1\u20134 weeks', u'\u2610 1\u20133 months', u'\u2610 >3 months'], }, { 'q': 'C4. Did you think the problem would improve on its own?', 'opts': [u'\u2610 Yes', u'\u2610 No'], }, { 'q': 'C5. Did you try home remedies, self-medication, or traditional treatment before visiting a specialist?', 'opts': [u'\u2610 Yes', u'\u2610 No'], }, { 'q': 'C6. Did financial cost delay seeking eye care?', 'opts': [u'\u2610 Not at all', u'\u2610 A little', u'\u2610 A lot'], }, { 'q': 'C7. Did distance or transport difficulty delay seeking eye care?', 'opts': [u'\u2610 Not at all', u'\u2610 A little', u'\u2610 A lot'], }, { 'q': 'C8. Did work or household responsibilities delay the hospital visit?', 'opts': [u'\u2610 Yes', u'\u2610 No'], }, { 'q': 'C9. Did any family, community, cultural, or religious belief delay treatment?', 'opts': [u'\u2610 Yes', u'\u2610 No'], }, { 'q': 'C10. Did you have difficulty knowing where to go for specialist eye care?', 'opts': [u'\u2610 Yes', u'\u2610 No'], }, { 'q': 'C11. How many healthcare providers were consulted before ophthalmology referral?', 'opts': [u'\u2610 0', u'\u2610 1', u'\u2610 2', u'\u2610 3 or more'], }, { 'q': 'C12. Which providers were consulted before ophthalmology referral?', 'opts': [u'\u2610 General practitioner', u'\u2610 Pediatrician', u'\u2610 Emergency department', u'\u2610 Local ophthalmologist', u'\u2610 Traditional healer', u'\u2610 Other: __________'], }, { 'q': 'C13. Was any previous diagnosis given before childhood glaucoma was diagnosed?', 'opts': [u'\u2610 No', u'\u2610 Yes, specify: ____________________'], }, { 'q': 'C14. Who referred the child to the ophthalmologist / tertiary eye center?', 'opts': [u'\u2610 General practitioner', u'\u2610 Pediatrician', u'\u2610 Ophthalmologist', u'\u2610 Screening program', u'\u2610 Emergency department', u'\u2610 Self-referral', u'\u2610 Other: __________'], }, { 'q': 'C15. Were any warning signs previously noted in earlier medical records?', 'opts': [u'\u2610 No', u'\u2610 Yes', u'\u2610 Do not know'], }, { 'q': 'C16. If yes, which warning signs were documented?', 'opts': [u'\u2610 Corneal enlargement', u'\u2610 Buphthalmos', u'\u2610 Persistent tearing', u'\u2610 Corneal haze', u'\u2610 Photophobia', u'\u2610 Other: __________'], }, { 'q': 'C17. Did lack of family or social support delay seeking care?', 'opts': [u'\u2610 Yes', u'\u2610 No'], }, ] sc_table = doc.add_table(rows=len(sec_c_items), cols=2) sc_table.style = 'Table Grid' sc_table.alignment = WD_TABLE_ALIGNMENT.LEFT for i, item in enumerate(sec_c_items): row = sc_table.rows[i] c0 = row.cells[0]; c1 = row.cells[1] bg = ALTROW_BG if i % 2 == 0 else WHITE_BG set_cell_bg(c0, HEADER_BG) set_cell_bg(c1, bg) cell_para(c0, item['q'], bold=True, size=11) c0.width = Inches(2.7); c1.width = Inches(3.57) # Options in c1 c1.paragraphs[0].clear() for j, opt in enumerate(item['opts']): if j == 0: p = c1.paragraphs[0] else: p = c1.add_paragraph() p.paragraph_format.space_before = Pt(1) p.paragraph_format.space_after = Pt(1) run = p.add_run(opt) run.font.name = 'Arial'; run.font.size = Pt(11) doc.add_paragraph() # ─── SECTION D ────────────────────────────────────────────────────────────── doc.add_heading('Section D: Scoring Key and Interpretation', level=1) # Scoring table sd_table = doc.add_table(rows=4, cols=2) sd_table.style = 'Table Grid' sd_table.alignment = WD_TABLE_ALIGNMENT.LEFT sd_rows = [ ('Knowledge Score', 'Each correct Yes response in Section B = 1 mark; each No response = 0 mark;\nMaximum score = 10.'), ('Score Interpretation', '0\u20133 = Poor knowledge\n4\u20137 = Moderate knowledge\n8\u201310 = Good knowledge'), ('Delay Determinants', 'Analyze Section C items individually, not as a combined score.'), ('Suggested Definition of Diagnostic Delay', 'Interval between first caregiver recognition of symptoms and confirmed diagnosis by an ophthalmologist.'), ] for i, (lbl, val) in enumerate(sd_rows): c0 = sd_table.cell(i, 0); c1 = sd_table.cell(i, 1) set_cell_bg(c0, '1F3564') set_cell_bg(c1, ALTROW_BG if i % 2 == 0 else WHITE_BG) cell_para(c0, lbl, bold=True, size=11, color=(255,255,255)) cell_para(c1, val, size=11) c0.width = Inches(2.2); c1.width = Inches(4.07) doc.add_paragraph() # ─── Save ─────────────────────────────────────────────────────────────────── out = '/tmp/workspace/childhood-glaucoma/Childhood_Glaucoma_Caregiver_Questionnaire.docx' doc.save(out) print(f'Saved: {out}') PYEOF python3 /tmp/workspace/childhood-glaucoma/build_questionnaire.py
~/childhood-glaucoma/build_questionnaire.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/childhood-glaucoma/build_questionnaire.py'
python3 /tmp/workspace/childhood-glaucoma/build_questionnaire.py
Childhood Glaucoma Caregiver Questionnaire
Word Document · DOCX
| Section | Format |
|---|---|
| Title block | Centred, dark-blue heading + italic study title + adapted-from line |
| Instructions box | Highlighted yellow table cell for quick interviewer reference |
| Section A - Admin | 3-row table for Patient ID, Date, and Interviewer name |
| Section A - Caregiver Details | 9-row alternating-row table with checkboxes |
| Section A - Child Details | 9-row alternating-row table with checkboxes |
| Section B - Knowledge Questionnaire | 11-row table (header + 10 questions + total row) with Yes / No / Score columns |
| Section C - Delay Determinants | 17-row table, one question per row, each with its full checkbox options |
| Section D - Scoring Key | 4-row table covering knowledge score, interpretation, delay determinants, and the suggested definition of diagnostic delay |
☐ Unicode box symbol, the knowledge-score table includes a totals row pre-filled with ____ / 10, and the Section D definition reads: "Interval between first caregiver recognition of symptoms and confirmed diagnosis by an ophthalmologist."