Thyroid hormone Enumerate the function and steps of secretions of thyroid hormone and write difference between hypothyroidism and hyperthyroidism 10 marker Physiology Content from above pdf only No hallucination
python3 << 'EOF' import pdfplumber pdf_path = "/tmp/workspace/attachments/3b1cd27f-5fbd-4f47-b3c3-ae18c5c53340/ENDOCRINE-2020 final.pdf" with pdfplumber.open(pdf_path) as pdf: print(f"Total pages: {len(pdf.pages)}") # First, scan all pages for thyroid-related content for i, page in enumerate(pdf.pages): text = page.extract_text() if text and any(word in text.lower() for word in ['thyroid', 'thyroxine', 't3', 't4', 'tsh', 'hypothyroid', 'hyperthyroid']): print(f"\n=== PAGE {i+1} ===") print(text[:200]) EOF
python3 << 'EOF' import pdfplumber pdf_path = "/tmp/workspace/attachments/3b1cd27f-5fbd-4f47-b3c3-ae18c5c53340/ENDOCRINE-2020 final.pdf" with pdfplumber.open(pdf_path) as pdf: # Extract all thyroid-relevant pages fully (pages 46-63) for i in range(45, 64): # 0-indexed, so pages 46-64 page = pdf.pages[i] text = page.extract_text() if text: print(f"\n{'='*60}") print(f"PAGE {i+1}") print('='*60) print(text) EOF
| Feature | Hypothyroidism | Hyperthyroidism |
|---|---|---|
| Hormone levels | Decreased circulating T3 and T4 | Increased circulating T3 and T4 |
| Common cause/type | Myxedema (adults); Cretinism (children) | Grave's disease (Exophthalmic Goiter / Thyrotoxicosis) |
| BMR | Falls (decreased) | Increased (↑ BMR) |
| Temperature tolerance | Cold poorly tolerated | Heat intolerance |
| Skin | Thick, rough, dry, yellowish | Warm skin with sweating |
| Mental symptoms | Severe mental symptoms ("myxedema madness") | Nervousness |
| Appetite | Reduced | Hyperphagia (increased appetite) |
| Tremors | Absent | Fine tremors of outstretched hands |
| Face/Eyes | Puffiness of face with periorbital swelling | Exophthalmos - protrusion of eyeballs; lid retraction; staring look |
| Hair | Coarsening and loss of scalp hair | - |
| Voice | Husky and slow | - |
| Cholesterol | Plasma cholesterol elevated | - |
| Goitre | Present | Present (exophthalmic goiter) |
| Growth (children) | Dwarfism, stunted growth, mental retardation, protruded abdomen, enlarged protruding tongue, failure of sexual development (Cretinism) | - |
| Cause in children | Maternal iodine deficiency | - |
All content sourced exclusively from ENDOCRINE-2020 final.pdf (BDS Curriculum, Dept. of Physiology, MRDC) - Pages 46-63.
Create a Word document with this thyroid hormone answer formatted for exam study
mkdir -p /tmp/workspace/thyroid-notes && ls /tmp/workspace/thyroid-notes/
python3 << 'EOF' from docx import Document from docx.shared import Pt, Inches, RGBColor from docx.enum.text import WD_ALIGN_PARAGRAPH from docx.oxml.ns import qn from docx.oxml import OxmlElement doc = Document() # --- Page margins --- from docx.shared import Inches section = doc.sections[0] section.top_margin = Inches(0.8) section.bottom_margin = Inches(0.8) section.left_margin = Inches(1.0) section.right_margin = Inches(1.0) # --- Default Normal style --- normal_style = doc.styles['Normal'] normal_style.font.name = 'Arial' normal_style.font.size = Pt(11) # --- Helper: set heading style colors --- def style_heading(doc, level, color_rgb, size_pt, bold=True): style = doc.styles[f'Heading {level}'] style.font.name = 'Arial' style.font.size = Pt(size_pt) style.font.bold = bold style.font.color.rgb = RGBColor(*color_rgb) style_heading(doc, 1, (0, 70, 127), 16) # Dark blue style_heading(doc, 2, (0, 112, 192), 13) # Medium blue style_heading(doc, 3, (31, 73, 125), 11) # Dark navy # --- Helper: colored paragraph background --- def add_shaded_para(doc, text, bg_hex='D9E2F3', bold=False, size=11, italic=False): 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() shd = OxmlElement('w:shd') shd.set(qn('w:val'), 'clear') shd.set(qn('w:color'), 'auto') shd.set(qn('w:fill'), bg_hex) pPr.append(shd) run = p.add_run(text) run.font.name = 'Arial' run.font.size = Pt(size) run.font.bold = bold run.font.italic = italic return p def add_bullet(doc, text, bold_part=None, level=0): p = doc.add_paragraph(style='List Bullet') p.paragraph_format.left_indent = Inches(0.25 * (level + 1)) p.paragraph_format.space_before = Pt(1) p.paragraph_format.space_after = Pt(1) if bold_part and text.startswith(bold_part): run1 = p.add_run(bold_part) run1.font.bold = True run1.font.name = 'Arial' run1.font.size = Pt(11) rest = text[len(bold_part):] if rest: run2 = p.add_run(rest) run2.font.name = 'Arial' run2.font.size = Pt(11) else: run = p.add_run(text) run.font.name = 'Arial' run.font.size = Pt(11) return p def add_numbered(doc, text, bold_part=None): p = doc.add_paragraph(style='List Number') p.paragraph_format.left_indent = Inches(0.3) p.paragraph_format.space_before = Pt(1) p.paragraph_format.space_after = Pt(1) if bold_part and text.startswith(bold_part): run1 = p.add_run(bold_part) run1.font.bold = True run1.font.name = 'Arial' run1.font.size = Pt(11) rest = text[len(bold_part):] if rest: run2 = p.add_run(rest) run2.font.name = 'Arial' run2.font.size = Pt(11) else: run = p.add_run(text) run.font.name = 'Arial' run.font.size = Pt(11) return p def add_body(doc, text, bold=False, italic=False, spacing_after=4): p = doc.add_paragraph() p.paragraph_format.space_before = Pt(2) p.paragraph_format.space_after = Pt(spacing_after) run = p.add_run(text) run.font.name = 'Arial' run.font.size = Pt(11) run.font.bold = bold run.font.italic = italic return p # ========== TITLE BLOCK ========== title_p = doc.add_paragraph() title_p.alignment = WD_ALIGN_PARAGRAPH.CENTER run = title_p.add_run('THYROID HORMONE') run.font.name = 'Arial' run.font.size = Pt(20) run.font.bold = True run.font.color.rgb = RGBColor(0, 70, 127) sub_p = doc.add_paragraph() sub_p.alignment = WD_ALIGN_PARAGRAPH.CENTER run2 = sub_p.add_run('Physiology - 10 Marker Study Notes') run2.font.name = 'Arial' run2.font.size = Pt(12) run2.font.italic = True run2.font.color.rgb = RGBColor(89, 89, 89) # Source line src_p = doc.add_paragraph() src_p.alignment = WD_ALIGN_PARAGRAPH.CENTER run3 = src_p.add_run('Source: ENDOCRINE-2020 final.pdf | BDS Curriculum, Dept. of Physiology, MRDC') run3.font.name = 'Arial' run3.font.size = Pt(9) run3.font.color.rgb = RGBColor(128, 128, 128) doc.add_paragraph() # Divider div = doc.add_paragraph() div.alignment = WD_ALIGN_PARAGRAPH.CENTER div_run = div.add_run('━' * 60) div_run.font.color.rgb = RGBColor(0, 70, 127) div_run.font.size = Pt(10) doc.add_paragraph() # ========== SECTION A ========== doc.add_heading('A. Functions (Actions) of Thyroid Hormones', level=1) add_shaded_para(doc, ' T3 and T4 are secreted by follicular cells. Their actions span multiple organ systems.', 'D9E2F3', bold=False, size=10, italic=True) doc.add_paragraph() # 1. CVS doc.add_heading('1. Cardiovascular System (CVS)', level=2) for item in [ 'Increases heart rate (HR), force of cardiac contraction (FOC), cardiac output (CO), and systolic blood pressure (SBP).', 'Causes vasodilation → decreases peripheral resistance (PR) and diastolic blood pressure (DBP).', 'Results in mild decrease in mean BP and increase in pulse pressure.', ]: add_bullet(doc, item) # 2. Protein doc.add_heading('2. Protein Metabolism', level=2) add_bullet(doc, 'Physiological doses: Anabolic - increases protein synthesis.') add_bullet(doc, 'Higher doses cause:') add_bullet(doc, 'Protein catabolism → muscle weakness and fatiguability (thyrotoxic myopathy).', level=1) add_bullet(doc, 'Mobilization of bone protein → decreases bone mass (osteoporosis) → hypercalcemia + hypercalciuria.', level=1) add_bullet(doc, 'Calorigenic action: increases heat production and BMR.', level=1) # 3. Bone marrow doc.add_heading('3. Bone Marrow', level=2) add_bullet(doc, 'Decreased T4 → decreases erythropoiesis → normocytic normochromic anemia.') # 4. Lipid doc.add_heading('4. Lipid Metabolism', level=2) add_bullet(doc, 'Increases both synthesis and breakdown of cholesterol.') add_bullet(doc, 'Effect on breakdown > synthesis → T4 decreases stores of triglycerides and phospholipids.') # 5. Growth doc.add_heading('5. Growth and Development', level=2) add_bullet(doc, 'Promotes normal growth and skeletal development.') # 6. Nervous system doc.add_heading('6. Nervous System', level=2) add_bullet(doc, 'Promotes normal brain development.') # 7. Gonads doc.add_heading('7. Gonads', level=2) add_bullet(doc, 'Essential for normal menstrual cycles and fertility.') # 8. Carbohydrate doc.add_heading('8. Carbohydrate Metabolism', level=2) add_body(doc, 'Produces two opposite effects which balance each other:', italic=True) add_bullet(doc, 'Increases peripheral utilization of glucose (insulin-like action) → hypoglycemia.') add_bullet(doc, 'Causes hyperglycemia by increasing glucose absorption from intestine and glucose output by liver.') add_bullet(doc, 'Decreases rate of secretion of insulin.') doc.add_paragraph() # ========== SECTION B ========== doc.add_heading('B. Steps of Secretion of Thyroid Hormone', level=1) add_shaded_para(doc, ' Hormones are: Thyroxine (T4), Tri-iodothyronine (T3), Calcitonin', 'E2EFDA', bold=False, size=10, italic=True) doc.add_paragraph() steps = [ ('Step 1 - Iodide Trapping:', ' Iodide (I\u207b) from blood is actively transported into follicular cells and secreted into the colloid.'), ('Step 2 - Oxidation of Iodide:', ' Inside the colloid, iodide (I\u207b) is oxidized to iodine (I\u2082).'), ('Step 3 - Thyroglobulin Synthesis:', ' Thyroid cells synthesize thyroglobulin (a glycoprotein), which is secreted into the colloid for storage.'), ('Step 4 - Iodination (Organification):', ' Iodine (I\u2082) is attached to tyrosine residues of thyroglobulin \u2192 forms iodinated thyroglobulin (precursors of T3 and T4).'), ('Step 5 - Storage:', ' Colloid (containing iodinated thyroglobulin) is stored in the lumen of thyroid follicle as a clear gelatinous pink material.'), ('Step 6 - Hydrolysis and Release:', ' TSH stimulates hydrolysis of T3 and T4 from thyroglobulin, then they are secreted into the circulation.'), ] for bold_part, rest in steps: p = doc.add_paragraph(style='List Number') p.paragraph_format.left_indent = Inches(0.3) p.paragraph_format.space_before = Pt(3) p.paragraph_format.space_after = Pt(3) r1 = p.add_run(bold_part) r1.font.bold = True r1.font.name = 'Arial' r1.font.size = Pt(11) r2 = p.add_run(rest) r2.font.name = 'Arial' r2.font.size = Pt(11) doc.add_paragraph() doc.add_heading('Regulation of Secretion', level=2) reg_items = [ ('TSH (Thyroid-Stimulating Hormone)', ' from anterior pituitary regulates production of T3 and T4.'), ('TRH (Thyrotropin-Releasing Hormone)', ' from hypothalamus stimulates TSH release.'), ('Negative Feedback:', ' When T4 levels are high, TSH production is suppressed.'), ] for bold_part, rest in reg_items: p = doc.add_paragraph(style='List Bullet') p.paragraph_format.left_indent = Inches(0.3) p.paragraph_format.space_before = Pt(2) p.paragraph_format.space_after = Pt(2) r1 = p.add_run(bold_part) r1.font.bold = True r1.font.name = 'Arial' r1.font.size = Pt(11) r2 = p.add_run(rest) r2.font.name = 'Arial' r2.font.size = Pt(11) doc.add_paragraph() doc.add_heading('Functions of Thyroid Cells (Summary)', level=2) cell_funcs = [ 'Collection of iodine from blood and transporting it to colloid for hormone synthesis.', 'Synthesize glycoprotein-thyroglobulin, stored as colloid in the follicles.', 'Remove thyroid hormones from thyroglobulin and secrete them into the circulation.', ] for f in cell_funcs: add_numbered(doc, f) doc.add_paragraph() # ========== SECTION C - TABLE ========== doc.add_heading('C. Differences: Hypothyroidism vs Hyperthyroidism', level=1) add_shaded_para(doc, ' Hypothyroidism = \u2193 T3 & T4 | Hyperthyroidism = \u2191 T3 & T4', 'FCE4D6', bold=True, size=11) doc.add_paragraph() # Table table = doc.add_table(rows=1, cols=3) table.style = 'Table Grid' # Header row hdr_cells = table.rows[0].cells headers = ['Feature', 'Hypothyroidism', 'Hyperthyroidism'] header_colors = ['1F497D', '1F497D', '1F497D'] for i, (cell, hdr, color) in enumerate(zip(hdr_cells, headers, header_colors)): cell.text = hdr para = cell.paragraphs[0] para.alignment = WD_ALIGN_PARAGRAPH.CENTER run = para.runs[0] run.font.bold = True run.font.name = 'Arial' run.font.size = Pt(11) run.font.color.rgb = RGBColor(255, 255, 255) # Cell background 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'), color) tcPr.append(shd) # Table data rows_data = [ ('Hormone Levels', '\u2193 Circulating T3 and T4', '\u2191 Circulating T3 and T4'), ('Common Cause / Type', 'Myxedema (adults)\nCretinism (children)', "Grave's Disease\n(Exophthalmic Goiter / Thyrotoxicosis)"), ('BMR', 'Falls (decreased)', 'Increased (\u2191 BMR)'), ('Temperature Tolerance', 'Cold poorly tolerated', 'Heat intolerance'), ('Skin', 'Thick, rough, dry, yellowish', 'Warm skin with sweating'), ('Appetite', 'Reduced', 'Hyperphagia (increased appetite)'), ('Mental Symptoms', '"Myxedema madness" (severe mental symptoms)', 'Nervousness'), ('Tremors', 'Absent', 'Fine tremors of outstretched hands'), ('Eyes / Face', 'Puffiness of face with periorbital swelling', 'Exophthalmos - protrusion of eyeballs\nLid retraction - staring look'), ('Hair', 'Coarsening and loss of scalp hair', 'Not typically mentioned'), ('Voice', 'Husky and slow', 'Not typically mentioned'), ('Cholesterol', 'Plasma cholesterol elevated', 'Decreased (T4 \u2191 breakdown)'), ('Goitre', 'Present', 'Present (exophthalmic goiter)'), ('Growth (Children)', 'Dwarfism, stunted growth, mental retardation,\nprotruded abdomen, enlarged tongue,\nfailure of sexual development (Cretinism)', '-'), ('Cause in Children', 'Maternal iodine deficiency', '-'), ] alt_colors = ['FFFFFF', 'EBF3FB'] for idx, (feature, hypo, hyper) in enumerate(rows_data): row = table.add_row() row.cells[0].text = feature row.cells[1].text = hypo row.cells[2].text = hyper bg = alt_colors[idx % 2] for cell in row.cells: # Style font for para in cell.paragraphs: for run in para.runs: run.font.name = 'Arial' run.font.size = Pt(10) # Feature column bold if cell == row.cells[0]: for para in cell.paragraphs: for run in para.runs: run.font.bold = True # Alternating row shading 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'), bg) tcPr.append(shd) # Set column widths from docx.shared import Cm for row in table.rows: row.cells[0].width = Cm(4.5) row.cells[1].width = Cm(7.5) row.cells[2].width = Cm(7.5) doc.add_paragraph() # ========== QUICK RECALL BOX ========== doc.add_heading('Quick Recall - Key Points', level=1) add_shaded_para(doc, ' MEMORY AIDS FOR EXAM', 'FFF2CC', bold=True, size=11) doc.add_paragraph() recalls = [ ('Thyroid hormones:', ' T3 (Tri-iodothyronine) and T4 (Thyroxine) - secreted by follicular cells.'), ('Calcitonin:', ' Secreted by parafollicular (C) cells - calcium lowering hormone.'), ('Steps mnemonic:', ' Trap \u2192 Oxidize \u2192 Synthesize TG \u2192 Iodiniate \u2192 Store \u2192 Release'), ('Regulation axis:', ' Hypothalamus (TRH) \u2192 Anterior Pituitary (TSH) \u2192 Thyroid (T3/T4) \u2192 Negative Feedback'), ('Myxedema:', ' Adult hypothyroidism - LOW T3/T4, HIGH cholesterol, LOW BMR.'), ('Cretinism:', ' Childhood hypothyroidism - dwarfism, mental retardation; cause = maternal iodine deficiency.'), ("Grave's Disease:", ' Hyperthyroidism - HIGH T3/T4, HIGH BMR, exophthalmos.'), ] for bold_part, rest in recalls: p = doc.add_paragraph(style='List Bullet') p.paragraph_format.left_indent = Inches(0.3) p.paragraph_format.space_before = Pt(2) p.paragraph_format.space_after = Pt(2) r1 = p.add_run(bold_part) r1.font.bold = True r1.font.name = 'Arial' r1.font.size = Pt(11) r2 = p.add_run(rest) r2.font.name = 'Arial' r2.font.size = Pt(11) doc.add_paragraph() # Footer note footer_p = doc.add_paragraph() footer_p.alignment = WD_ALIGN_PARAGRAPH.CENTER fr = footer_p.add_run('Source: ENDOCRINE-2020 final.pdf | BDS Curriculum, Dept. of Physiology, MRDC | Pages 46-63') fr.font.name = 'Arial' fr.font.size = Pt(8) fr.font.italic = True fr.font.color.rgb = RGBColor(128, 128, 128) # Save output_path = '/tmp/workspace/thyroid-notes/Thyroid_Hormone_10_Marker.docx' doc.save(output_path) print(f"Saved: {output_path}") EOF
python3 -c " from docx import Document doc = Document('/tmp/workspace/thyroid-notes/Thyroid_Hormone_10_Marker.docx') for p in doc.paragraphs[:30]: if p.text.strip(): print(f'[{p.style.name}] {p.text[:80]}') print('--- TABLE ---') for table in doc.tables: for row in table.rows[:3]: print([c.text[:30] for c in row.cells]) print('OK - file valid') "
Thyroid Hormone 10 Marker
Word Document · DOCX
| Section | Content |
|---|---|
| Title Block | Bold heading, subtitle, source citation, divider line |
| A. Functions of Thyroid Hormones | 8 sub-sections (CVS, Protein, Bone Marrow, Lipid, Growth, Nervous, Gonads, Carbohydrate) with bullet points |
| B. Steps of Secretion | 6 numbered steps (Trapping → Oxidation → Synthesis → Iodination → Storage → Release), Regulation axis, Cell functions summary |
| C. Differences Table | 15-row colour-coded comparison table (Hypothyroidism vs Hyperthyroidism) with alternating row shading |
| Quick Recall Box | 7 memory-aid bullet points including mnemonics and key distinctions for exam |
Create a Word document with this thyroid hormone answer formatted for exam study
Thyroid Hormone 10 Marker
Word Document · DOCX
Add these 2 images in above document
mkdir -p /tmp/workspace/thyroid-notes/images && \ curl -s -o /tmp/workspace/thyroid-notes/images/regulation_diagram.jpg "https://d361swluvexzqs.cloudfront.net/chats-attachments/IMG_0818-1784199471472-ndjd2h.jpg" && \ curl -s -o /tmp/workspace/thyroid-notes/images/secretion_diagram.jpg "https://d361swluvexzqs.cloudfront.net/chats-attachments/IMG_0816-1784199474141-wrpz2r.jpg" && \ ls -lh /tmp/workspace/thyroid-notes/images/
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 copy doc = Document('/tmp/workspace/thyroid-notes/Thyroid_Hormone_10_Marker.docx') # Helper: add a centered image with a caption def insert_image_with_caption(doc, img_path, caption_text, width_inches=5.8): # Image paragraph - centered img_para = doc.add_paragraph() img_para.alignment = WD_ALIGN_PARAGRAPH.CENTER img_para.paragraph_format.space_before = Pt(6) img_para.paragraph_format.space_after = Pt(4) run = img_para.add_run() run.add_picture(img_path, width=Inches(width_inches)) # Caption paragraph cap_para = doc.add_paragraph() cap_para.alignment = WD_ALIGN_PARAGRAPH.CENTER cap_para.paragraph_format.space_before = Pt(2) cap_para.paragraph_format.space_after = Pt(10) cap_run = cap_para.add_run(caption_text) cap_run.font.name = 'Arial' cap_run.font.size = Pt(9) cap_run.font.italic = True cap_run.font.color.rgb = RGBColor(89, 89, 89) # Helper: add shaded label before image def add_image_label(doc, text): p = doc.add_paragraph() p.alignment = WD_ALIGN_PARAGRAPH.CENTER p.paragraph_format.space_before = Pt(8) p.paragraph_format.space_after = Pt(4) pPr = p._p.get_or_add_pPr() shd = OxmlElement('w:shd') shd.set(qn('w:val'), 'clear') shd.set(qn('w:color'), 'auto') shd.set(qn('w:fill'), 'D9E2F3') pPr.append(shd) run = p.add_run(text) run.font.name = 'Arial' run.font.size = Pt(10) run.font.bold = True run.font.color.rgb = RGBColor(0, 70, 127) # ------------------------------------------------------- # Find the index of "B. Steps of Secretion" heading # and insert the secretion diagram (IMG_0816) AFTER it # ------------------------------------------------------- target_b = None target_reg = None for i, para in enumerate(doc.paragraphs): if 'Steps of Secretion' in para.text: target_b = i if 'Regulation of Secretion' in para.text: target_reg = i print(f"Section B index: {target_b}") print(f"Regulation index: {target_reg}") print(f"Total paragraphs: {len(doc.paragraphs)}") # Strategy: rebuild the document by re-saving with images appended # to the correct positions using XML manipulation from docx.oxml.ns import nsmap from lxml import etree body = doc.element.body def para_index_in_body(para): """Return position of paragraph's XML element in the body.""" for i, child in enumerate(body): if child is para._p: return i return -1 # --- IMAGE 1: Secretion diagram (IMG_0816) --- # Insert after "B. Steps of Secretion of Thyroid Hormone" heading if target_b is not None: b_para = doc.paragraphs[target_b] b_idx = para_index_in_body(b_para) # Create label paragraph label1 = doc.add_paragraph() label1.alignment = WD_ALIGN_PARAGRAPH.CENTER label1.paragraph_format.space_before = Pt(8) label1.paragraph_format.space_after = Pt(4) pPr = label1._p.get_or_add_pPr() shd = OxmlElement('w:shd') shd.set(qn('w:val'), 'clear') shd.set(qn('w:color'), 'auto') shd.set(qn('w:fill'), 'E2EFDA') pPr.append(shd) r = label1.add_run('Fig 1: Steps of Thyroid Hormone Secretion (Thyroid Follicle)') r.font.name = 'Arial'; r.font.size = Pt(10); r.font.bold = True r.font.color.rgb = RGBColor(31, 73, 125) # Create image paragraph img1_para = doc.add_paragraph() img1_para.alignment = WD_ALIGN_PARAGRAPH.CENTER img1_para.paragraph_format.space_before = Pt(4) img1_para.paragraph_format.space_after = Pt(4) img1_run = img1_para.add_run() img1_run.add_picture('/tmp/workspace/thyroid-notes/images/secretion_diagram.jpg', width=Inches(5.8)) # Create caption paragraph cap1 = doc.add_paragraph() cap1.alignment = WD_ALIGN_PARAGRAPH.CENTER cap1.paragraph_format.space_before = Pt(2) cap1.paragraph_format.space_after = Pt(10) cr1 = cap1.add_run('Fig 1: Thyroid follicle showing iodide trapping, oxidation, thyroglobulin iodination, and T3/T4 secretion stimulated by TSH') cr1.font.name = 'Arial'; cr1.font.size = Pt(9); cr1.font.italic = True cr1.font.color.rgb = RGBColor(89, 89, 89) # Move these 3 new elements to just after the Section B heading for elem in [label1._p, img1_para._p, cap1._p]: body.remove(elem) body.insert(b_idx + 1, elem) b_idx += 1 # keep pushing after inserted elements # --- IMAGE 2: Regulation diagram (IMG_0818) --- # Find updated index of "Regulation of Secretion" target_reg2 = None for i, para in enumerate(doc.paragraphs): if 'Regulation of Secretion' in para.text: target_reg2 = i print(f"Updated Regulation index: {target_reg2}") if target_reg2 is not None: reg_para = doc.paragraphs[target_reg2] reg_idx = para_index_in_body(reg_para) label2 = doc.add_paragraph() label2.alignment = WD_ALIGN_PARAGRAPH.CENTER label2.paragraph_format.space_before = Pt(8) label2.paragraph_format.space_after = Pt(4) pPr2 = label2._p.get_or_add_pPr() shd2 = OxmlElement('w:shd') shd2.set(qn('w:val'), 'clear') shd2.set(qn('w:color'), 'auto') shd2.set(qn('w:fill'), 'D9E2F3') pPr2.append(shd2) r2 = label2.add_run('Fig 2: Regulation of Thyroid Hormone Secretion (HPT Axis)') r2.font.name = 'Arial'; r2.font.size = Pt(10); r2.font.bold = True r2.font.color.rgb = RGBColor(0, 70, 127) img2_para = doc.add_paragraph() img2_para.alignment = WD_ALIGN_PARAGRAPH.CENTER img2_para.paragraph_format.space_before = Pt(4) img2_para.paragraph_format.space_after = Pt(4) img2_run = img2_para.add_run() img2_run.add_picture('/tmp/workspace/thyroid-notes/images/regulation_diagram.jpg', width=Inches(4.5)) cap2 = doc.add_paragraph() cap2.alignment = WD_ALIGN_PARAGRAPH.CENTER cap2.paragraph_format.space_before = Pt(2) cap2.paragraph_format.space_after = Pt(10) cr2 = cap2.add_run('Fig 2: Hypothalamus-Pituitary-Thyroid (HPT) axis - TRH → TSH → T3/T4 with negative feedback') cr2.font.name = 'Arial'; cr2.font.size = Pt(9); cr2.font.italic = True cr2.font.color.rgb = RGBColor(89, 89, 89) for elem in [label2._p, img2_para._p, cap2._p]: body.remove(elem) body.insert(reg_idx + 1, elem) reg_idx += 1 output_path = '/tmp/workspace/thyroid-notes/Thyroid_Hormone_10_Marker.docx' doc.save(output_path) print(f"\nSaved with images: {output_path}") EOF
python3 -c " from docx import Document doc = Document('/tmp/workspace/thyroid-notes/Thyroid_Hormone_10_Marker.docx') # Count inline images from docx.oxml.ns import qn count = 0 for para in doc.paragraphs: for run in para.runs: if run._r.find(qn('w:drawing')) is not None or run._r.find(qn('a:blip')) is not None: count += 1 print(f'Image found in para: {para.text[:60] or \"[image para]\"}') # Also check via relationships rels = [r for r in doc.part.rels.values() if 'image' in r.reltype] print(f'Total image relationships: {len(rels)}') print('File valid.') "
Thyroid Hormone 10 Marker
Word Document · DOCX
| Image | Placement in Document |
|---|---|
| Fig 1 - Thyroid follicle secretion diagram (iodide trapping → MIT/DIT → T3/T4) | Inserted right after the "B. Steps of Secretion" heading, before the numbered steps |
| Fig 2 - HPT axis regulation diagram (TRH → TSH → T3/T4 negative feedback) | Inserted right after the "Regulation of Secretion" sub-heading |
Convert exact same document into pdf
python3 << 'EOF' # Check available tools and image files import os print("Images:") for f in os.listdir('/tmp/workspace/thyroid-notes/images'): size = os.path.getsize(f'/tmp/workspace/thyroid-notes/images/{f}') print(f" {f} - {size} bytes") # Check reportlab version import reportlab print(f"\nReportLab version: {reportlab.Version}") # Check PIL from PIL import Image img1 = Image.open('/tmp/workspace/thyroid-notes/images/secretion_diagram.jpg') img2 = Image.open('/tmp/workspace/thyroid-notes/images/regulation_diagram.jpg') print(f"Secretion diagram: {img1.size}") print(f"Regulation diagram: {img2.size}") EOF
python3 << 'PYEOF' from reportlab.lib.pagesizes import A4 from reportlab.lib.units import cm, mm from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.colors import HexColor, white, black from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY from reportlab.platypus import ( SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, Image as RLImage, HRFlowable, KeepTogether, PageBreak ) from reportlab.lib import colors from reportlab.platypus.flowables import HRFlowable PAGE_W, PAGE_H = A4 MARGIN = 2.0 * cm # Colors DARK_BLUE = HexColor('#00467F') MED_BLUE = HexColor('#0070C0') NAVY = HexColor('#1F497D') BG_BLUE = HexColor('#D9E2F3') BG_GREEN = HexColor('#E2EFDA') BG_ORANGE = HexColor('#FCE4D6') BG_YELLOW = HexColor('#FFF2CC') GREY = HexColor('#595959') LIGHT_GREY = HexColor('#808080') TABLE_HEADER= HexColor('#1F497D') ALT_ROW = HexColor('#EBF3FB') BORDER_COL = HexColor('#BFBFBF') doc = SimpleDocTemplate( '/tmp/workspace/thyroid-notes/Thyroid_Hormone_10_Marker.pdf', pagesize=A4, leftMargin=MARGIN, rightMargin=MARGIN, topMargin=MARGIN, bottomMargin=MARGIN, title='Thyroid Hormone - 10 Marker Study Notes', author='BDS Curriculum, Dept. of Physiology, MRDC' ) styles = getSampleStyleSheet() USABLE_W = PAGE_W - 2 * MARGIN # ── Custom styles ─────────────────────────────────────────────── def S(name, **kw): return ParagraphStyle(name, **kw) sTitle = S('sTitle', fontName='Helvetica-Bold', fontSize=22, textColor=DARK_BLUE, alignment=TA_CENTER, spaceAfter=4) sSub = S('sSub', fontName='Helvetica-Oblique', fontSize=12, textColor=GREY, alignment=TA_CENTER, spaceAfter=2) sSrc = S('sSrc', fontName='Helvetica-Oblique', fontSize=8, textColor=LIGHT_GREY, alignment=TA_CENTER, spaceAfter=8) sH1 = S('sH1', fontName='Helvetica-Bold', fontSize=14, textColor=DARK_BLUE, spaceBefore=14, spaceAfter=4, borderPad=4) sH2 = S('sH2', fontName='Helvetica-Bold', fontSize=11, textColor=MED_BLUE, spaceBefore=8, spaceAfter=3) sH3 = S('sH3', fontName='Helvetica-Bold', fontSize=10, textColor=NAVY, spaceBefore=5, spaceAfter=2) sBody = S('sBody', fontName='Helvetica', fontSize=10, leading=14, spaceAfter=2, spaceBefore=1) sBodyB = S('sBodyB', fontName='Helvetica-Bold', fontSize=10, leading=14, spaceAfter=2) sItal = S('sItal', fontName='Helvetica-Oblique', fontSize=9, textColor=GREY, spaceAfter=2) sBullet = S('sBullet', fontName='Helvetica', fontSize=10, leading=14, leftIndent=16, firstLineIndent=-10, spaceBefore=1, spaceAfter=2) sBulletB = S('sBulletB', fontName='Helvetica-Bold', fontSize=10, leading=14, leftIndent=16, firstLineIndent=-10, spaceBefore=1, spaceAfter=2) sBullet2 = S('sBullet2', fontName='Helvetica', fontSize=10, leading=14, leftIndent=28, firstLineIndent=-10, spaceBefore=1, spaceAfter=1) sNum = S('sNum', fontName='Helvetica', fontSize=10, leading=14, leftIndent=18, firstLineIndent=-14, spaceBefore=2, spaceAfter=2) sCap = S('sCap', fontName='Helvetica-Oblique', fontSize=8, textColor=GREY, alignment=TA_CENTER, spaceAfter=6) sLabelC = S('sLabelC', fontName='Helvetica-Bold', fontSize=9, textColor=DARK_BLUE, alignment=TA_CENTER, spaceAfter=3) sTblHdr = S('sTblHdr', fontName='Helvetica-Bold', fontSize=10, textColor=white, alignment=TA_CENTER) sTblFeat= S('sTblFeat',fontName='Helvetica-Bold', fontSize=9, textColor=NAVY, leading=12) sTblCell= S('sTblCell',fontName='Helvetica', fontSize=9, leading=12) sRecall = S('sRecall', fontName='Helvetica', fontSize=10, leading=14, leftIndent=14, firstLineIndent=-10, spaceBefore=2, spaceAfter=2) # ── Helpers ───────────────────────────────────────────────────── def bullet(text): return Paragraph(f'\u2022 {text}', sBullet) def bullet2(text): return Paragraph(f' \u25e6 {text}', sBullet2) def numbered(n, bold_part, rest=''): return Paragraph(f'{n}. <b>{bold_part}</b>{rest}', sNum) def shaded_box(text, bg=BG_BLUE, style=None): st = style or sItal t = Table([[Paragraph(text, st)]], colWidths=[USABLE_W]) t.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,-1), bg), ('TOPPADDING', (0,0), (-1,-1), 5), ('BOTTOMPADDING', (0,0), (-1,-1), 5), ('LEFTPADDING', (0,0), (-1,-1), 10), ('RIGHTPADDING', (0,0), (-1,-1), 10), ('ROUNDEDCORNERS', [4,4,4,4]), ])) return t def h1_rule(text): """Heading 1 with a bottom rule.""" return [ Spacer(1, 6), Paragraph(text, sH1), HRFlowable(width=USABLE_W, thickness=1.5, color=DARK_BLUE, spaceAfter=4), ] def img_block(path, width_cm, caption): w = width_cm * cm img = RLImage(path, width=w, height=w * (1112/1600)) img.hAlign = 'CENTER' cap = Paragraph(caption, sCap) return [img, cap] # ── Story ──────────────────────────────────────────────────────── story = [] # ── TITLE ──────────────────────────────────────────────────────── story.append(Spacer(1, 4)) story.append(Paragraph('THYROID HORMONE', sTitle)) story.append(Paragraph('Physiology - 10 Marker Study Notes', sSub)) story.append(Paragraph('Source: ENDOCRINE-2020 final.pdf | BDS Curriculum, Dept. of Physiology, MRDC', sSrc)) story.append(HRFlowable(width=USABLE_W, thickness=2, color=DARK_BLUE, spaceAfter=10)) # ══════════════════════════════════════════════════════════════ # SECTION A # ══════════════════════════════════════════════════════════════ story += h1_rule('A. Functions (Actions) of Thyroid Hormones') story.append(shaded_box(' T3 and T4 are secreted by follicular cells. Their actions span multiple organ systems.', BG_BLUE)) story.append(Spacer(1, 6)) # 1. CVS story.append(Paragraph('1. Cardiovascular System (CVS)', sH2)) story.append(bullet('Increases heart rate (HR), force of cardiac contraction (FOC), cardiac output (CO), and systolic blood pressure (SBP).')) story.append(bullet('Causes vasodilation \u2192 decreases peripheral resistance (PR) and diastolic blood pressure (DBP).')) story.append(bullet('Results in mild decrease in mean BP and increase in pulse pressure.')) # 2. Protein story.append(Paragraph('2. Protein Metabolism', sH2)) story.append(bullet('Physiological doses: Anabolic - increases protein synthesis.')) story.append(bullet('Higher doses cause:')) story.append(bullet2('Protein catabolism \u2192 muscle weakness and fatiguability (thyrotoxic myopathy).')) story.append(bullet2('Mobilization of bone protein \u2192 decreases bone mass (osteoporosis) \u2192 hypercalcemia + hypercalciuria.')) story.append(bullet2('Calorigenic action: increases heat production and BMR.')) # 3. Bone marrow story.append(Paragraph('3. Bone Marrow', sH2)) story.append(bullet('Decreased T4 \u2192 decreases erythropoiesis \u2192 normocytic normochromic anemia.')) # 4. Lipid story.append(Paragraph('4. Lipid Metabolism', sH2)) story.append(bullet('Increases both synthesis and breakdown of cholesterol.')) story.append(bullet('Effect on breakdown > synthesis \u2192 T4 decreases stores of triglycerides and phospholipids.')) # 5-7 story.append(Paragraph('5. Growth and Development', sH2)) story.append(bullet('Promotes normal growth and skeletal development.')) story.append(Paragraph('6. Nervous System', sH2)) story.append(bullet('Promotes normal brain development.')) story.append(Paragraph('7. Gonads', sH2)) story.append(bullet('Essential for normal menstrual cycles and fertility.')) # 8. Carbohydrate story.append(Paragraph('8. Carbohydrate Metabolism', sH2)) story.append(Paragraph('Produces two opposite effects which balance each other:', sItal)) story.append(bullet('Increases peripheral utilization of glucose (insulin-like action) \u2192 hypoglycemia.')) story.append(bullet('Causes hyperglycemia by increasing glucose absorption from intestine and glucose output by liver.')) story.append(bullet('Decreases rate of secretion of insulin.')) story.append(Spacer(1, 8)) # ══════════════════════════════════════════════════════════════ # SECTION B # ══════════════════════════════════════════════════════════════ story += h1_rule('B. Steps of Secretion of Thyroid Hormone') story.append(shaded_box(' Hormones are: Thyroxine (T4), Tri-iodothyronine (T3), Calcitonin', BG_GREEN)) story.append(Spacer(1, 8)) # Fig 1 - secretion diagram story.append(shaded_box('Fig 1: Steps of Thyroid Hormone Secretion (Thyroid Follicle)', BG_GREEN, sLabelC)) story += img_block( '/tmp/workspace/thyroid-notes/images/secretion_diagram.jpg', 14.5, 'Fig 1: Thyroid follicle showing iodide trapping, oxidation, thyroglobulin iodination,\nand T3/T4 secretion stimulated by TSH' ) story.append(Spacer(1, 8)) steps = [ ('Step 1 - Iodide Trapping:', ' Iodide (I\u207b) from blood is actively transported into follicular cells and secreted into the colloid.'), ('Step 2 - Oxidation of Iodide:', ' Inside the colloid, iodide (I\u207b) is oxidized to iodine (I\u2082).'), ('Step 3 - Thyroglobulin Synthesis:', ' Thyroid cells synthesize thyroglobulin (a glycoprotein), which is secreted into the colloid for storage.'), ('Step 4 - Iodination (Organification):', ' Iodine (I\u2082) is attached to tyrosine residues of thyroglobulin \u2192 forms iodinated thyroglobulin (precursors of T3 and T4).'), ('Step 5 - Storage:', ' Colloid (containing iodinated thyroglobulin) is stored in the lumen of thyroid follicle as a clear gelatinous pink material.'), ('Step 6 - Hydrolysis and Release:', ' TSH stimulates hydrolysis of T3 and T4 from thyroglobulin, then they are secreted into the circulation.'), ] for i, (bold, rest) in enumerate(steps, 1): story.append(Paragraph(f'{i}. <b>{bold}</b>{rest}', sNum)) story.append(Spacer(1, 8)) # Regulation story.append(Paragraph('Regulation of Secretion', sH2)) story.append(shaded_box('Fig 2: Regulation of Thyroid Hormone Secretion (HPT Axis)', BG_BLUE, sLabelC)) story += img_block( '/tmp/workspace/thyroid-notes/images/regulation_diagram.jpg', 11.0, 'Fig 2: Hypothalamus-Pituitary-Thyroid (HPT) axis - TRH \u2192 TSH \u2192 T3/T4 with negative feedback' ) story.append(Spacer(1, 6)) reg_items = [ ('<b>TSH (Thyroid-Stimulating Hormone)</b>', ' from anterior pituitary regulates production of T3 and T4.'), ('<b>TRH (Thyrotropin-Releasing Hormone)</b>', ' from hypothalamus stimulates TSH release.'), ('<b>Negative Feedback:</b>', ' When T4 levels are high, TSH production is suppressed.'), ] for bold, rest in reg_items: story.append(Paragraph(f'\u2022 {bold}{rest}', sBullet)) story.append(Spacer(1, 8)) # Cell functions story.append(Paragraph('Functions of Thyroid Cells (Summary)', sH2)) cell_funcs = [ 'Collection of iodine from blood and transporting it to colloid for hormone synthesis.', 'Synthesize glycoprotein-thyroglobulin, stored as colloid in the follicles.', 'Remove thyroid hormones from thyroglobulin and secrete them into the circulation.', ] for i, f in enumerate(cell_funcs, 1): story.append(Paragraph(f'{i}. {f}', sNum)) story.append(Spacer(1, 10)) # ══════════════════════════════════════════════════════════════ # SECTION C - TABLE # ══════════════════════════════════════════════════════════════ story += h1_rule('C. Differences: Hypothyroidism vs Hyperthyroidism') story.append(shaded_box(' Hypothyroidism = \u2193 T3 & T4 | Hyperthyroidism = \u2191 T3 & T4', BG_ORANGE, S('sOrangeB', fontName='Helvetica-Bold', fontSize=10, textColor=HexColor('#7B3F00'), alignment=TA_CENTER))) story.append(Spacer(1, 8)) col_w = [USABLE_W * 0.22, USABLE_W * 0.39, USABLE_W * 0.39] tbl_data = [ [Paragraph('Feature', sTblHdr), Paragraph('Hypothyroidism', sTblHdr), Paragraph('Hyperthyroidism', sTblHdr)], [Paragraph('Hormone Levels', sTblFeat), Paragraph('\u2193 Circulating T3 and T4', sTblCell), Paragraph('\u2191 Circulating T3 and T4', sTblCell)], [Paragraph('Common Cause / Type', sTblFeat), Paragraph('Myxedema (adults)\nCretinism (children)', sTblCell), Paragraph("Grave's Disease\n(Exophthalmic Goiter / Thyrotoxicosis)", sTblCell)], [Paragraph('BMR', sTblFeat), Paragraph('Falls (decreased)', sTblCell), Paragraph('Increased (\u2191 BMR)', sTblCell)], [Paragraph('Temperature\nTolerance', sTblFeat), Paragraph('Cold poorly tolerated', sTblCell), Paragraph('Heat intolerance', sTblCell)], [Paragraph('Skin', sTblFeat), Paragraph('Thick, rough, dry, yellowish', sTblCell), Paragraph('Warm skin with sweating', sTblCell)], [Paragraph('Appetite', sTblFeat), Paragraph('Reduced', sTblCell), Paragraph('Hyperphagia (increased appetite)', sTblCell)], [Paragraph('Mental Symptoms', sTblFeat), Paragraph('"Myxedema madness"\n(severe mental symptoms)', sTblCell), Paragraph('Nervousness', sTblCell)], [Paragraph('Tremors', sTblFeat), Paragraph('Absent', sTblCell), Paragraph('Fine tremors of outstretched hands', sTblCell)], [Paragraph('Eyes / Face', sTblFeat), Paragraph('Puffiness of face with periorbital swelling', sTblCell), Paragraph('Exophthalmos - protrusion of eyeballs\nLid retraction - staring look', sTblCell)], [Paragraph('Hair', sTblFeat), Paragraph('Coarsening and loss of scalp hair', sTblCell), Paragraph('-', sTblCell)], [Paragraph('Voice', sTblFeat), Paragraph('Husky and slow', sTblCell), Paragraph('-', sTblCell)], [Paragraph('Cholesterol', sTblFeat), Paragraph('Plasma cholesterol elevated', sTblCell), Paragraph('Decreased (T4 \u2191 breakdown)', sTblCell)], [Paragraph('Goitre', sTblFeat), Paragraph('Present', sTblCell), Paragraph('Present (exophthalmic goiter)', sTblCell)], [Paragraph('Growth\n(Children)', sTblFeat), Paragraph('Dwarfism, stunted growth, mental retardation,\nprotruded abdomen, enlarged tongue,\nfailure of sexual development (Cretinism)', sTblCell), Paragraph('-', sTblCell)], [Paragraph('Cause in Children', sTblFeat), Paragraph('Maternal iodine deficiency', sTblCell), Paragraph('-', sTblCell)], ] tbl_style = TableStyle([ # Header ('BACKGROUND', (0,0), (-1,0), TABLE_HEADER), ('TEXTCOLOR', (0,0), (-1,0), white), ('ALIGN', (0,0), (-1,0), 'CENTER'), ('VALIGN', (0,0), (-1,-1), 'MIDDLE'), # Alternating rows *[('BACKGROUND', (0,i), (-1,i), ALT_ROW if i%2==0 else white) for i in range(1, len(tbl_data))], # Feature col slightly tinted ('BACKGROUND', (0,1), (0,-1), HexColor('#EBF3FB')), # Grid ('GRID', (0,0), (-1,-1), 0.5, BORDER_COL), ('LINEBELOW', (0,0), (-1,0), 1.5, DARK_BLUE), # Padding ('TOPPADDING', (0,0), (-1,-1), 5), ('BOTTOMPADDING', (0,0), (-1,-1), 5), ('LEFTPADDING', (0,0), (-1,-1), 6), ('RIGHTPADDING', (0,0), (-1,-1), 6), ('ROWBACKGROUNDS',(0,0), (-1,-1), [HexColor('#DAEEF3'), white]), ]) tbl = Table(tbl_data, colWidths=col_w, repeatRows=1) tbl.setStyle(tbl_style) story.append(tbl) story.append(Spacer(1, 12)) # ══════════════════════════════════════════════════════════════ # QUICK RECALL # ══════════════════════════════════════════════════════════════ story += h1_rule('Quick Recall - Key Points') story.append(shaded_box(' MEMORY AIDS FOR EXAM', BG_YELLOW, S('sYellowB', fontName='Helvetica-Bold', fontSize=10, textColor=HexColor('#7B6000'), alignment=TA_CENTER))) story.append(Spacer(1, 6)) recalls = [ ('<b>Thyroid hormones:</b>', ' T3 (Tri-iodothyronine) and T4 (Thyroxine) - secreted by follicular cells.'), ('<b>Calcitonin:</b>', ' Secreted by parafollicular (C) cells - calcium lowering hormone.'), ('<b>Steps mnemonic:</b>', ' Trap \u2192 Oxidize \u2192 Synthesize TG \u2192 Iodiniate \u2192 Store \u2192 Release'), ('<b>Regulation axis:</b>', ' Hypothalamus (TRH) \u2192 Anterior Pituitary (TSH) \u2192 Thyroid (T3/T4) \u2192 Negative Feedback'), ('<b>Myxedema:</b>', ' Adult hypothyroidism - LOW T3/T4, HIGH cholesterol, LOW BMR.'), ('<b>Cretinism:</b>', ' Childhood hypothyroidism - dwarfism, mental retardation; cause = maternal iodine deficiency.'), ("<b>Grave's Disease:</b>", ' Hyperthyroidism - HIGH T3/T4, HIGH BMR, exophthalmos.'), ] for bold, rest in recalls: story.append(Paragraph(f'\u2022 {bold}{rest}', sRecall)) story.append(Spacer(1, 12)) # Footer story.append(HRFlowable(width=USABLE_W, thickness=0.5, color=LIGHT_GREY, spaceAfter=4)) story.append(Paragraph( 'Source: ENDOCRINE-2020 final.pdf | BDS Curriculum, Dept. of Physiology, MRDC | Pages 46-63', sSrc)) # Build doc.build(story) print("PDF saved: /tmp/workspace/thyroid-notes/Thyroid_Hormone_10_Marker.pdf") import os size = os.path.getsize('/tmp/workspace/thyroid-notes/Thyroid_Hormone_10_Marker.pdf') print(f"File size: {size:,} bytes") PYEOF
python3 -c " import pdfplumber with pdfplumber.open('/tmp/workspace/thyroid-notes/Thyroid_Hormone_10_Marker.pdf') as pdf: print(f'Pages: {len(pdf.pages)}') for i, page in enumerate(pdf.pages): text = page.extract_text() print(f'Page {i+1}: {len(text) if text else 0} chars - {text[:80].strip() if text else \"[image/empty]\"}') "
Thyroid Hormone 10 Marker
PDF Document · PDF
| Page | Content |
|---|---|
| 1 | Title block + Section A (Functions of Thyroid Hormones - all 8 systems) |
| 2 | Section B opening + Fig 1 (Thyroid follicle secretion diagram) + numbered steps 1-6 |
| 3 | Regulation of Secretion + Fig 2 (HPT axis diagram) + cell functions summary |
| 4 | Section C (Hypothyroidism vs Hyperthyroidism comparison table) + Quick Recall box |