Give me pdf for 5 mark on tentorium cerebelli with diagram

Reading File
Finding Sources
Reading File
Finding Sources
Reading File
Reading File
Loading Image
Loading Image
Loading Image
Reading File
Running Command

mkdir -p /tmp/workspace/tentorium-pdf && ls /tmp/workspace/

Running Command

python3 << 'PYEOF' import requests from reportlab.lib.pagesizes import A4 from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import cm, mm from reportlab.lib import colors from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Image, Table, TableStyle, HRFlowable from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_JUSTIFY from io import BytesIO from PIL import Image as PILImage # Download images img_urls = { "fig55": "https://cdn.orris.care/cdss_images/1634225bfcbbfe68ac0b52df14837ab7833a6395b044cc6efa48330a386713f1.png", "fig56": "https://cdn.orris.care/cdss_images/09d25e667f67a8ba1c5dc13f391d8311f06d24f2ccb6a00b4e12e4f404f1d4d8.png", } img_paths = {} for key, url in img_urls.items(): r = requests.get(url, timeout=20) path = f"/tmp/workspace/tentorium-pdf/{key}.png" with open(path, "wb") as f: f.write(r.content) img_paths[key] = path print(f"Downloaded {key}: {len(r.content)} bytes") print("Done downloading images") PYEOF

Running Command

python3 << 'PYEOF' from reportlab.lib.pagesizes import A4 from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import cm, mm from reportlab.lib import colors from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Image, Table, TableStyle, HRFlowable, KeepTogether from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_JUSTIFY OUTPUT = "/tmp/workspace/tentorium-pdf/Tentorium_Cerebelli_5Marks.pdf" PAGE_W, PAGE_H = A4 MARGIN = 2.2 * cm doc = SimpleDocTemplate( OUTPUT, pagesize=A4, leftMargin=MARGIN, rightMargin=MARGIN, topMargin=2.5 * cm, bottomMargin=2.5 * cm, ) # ── Styles ────────────────────────────────────────────────────────────────── styles = getSampleStyleSheet() title_style = ParagraphStyle( "Title", parent=styles["Normal"], fontName="Helvetica-Bold", fontSize=18, textColor=colors.HexColor("#1a3a5c"), spaceAfter=4, spaceBefore=0, alignment=TA_CENTER, ) subtitle_style = ParagraphStyle( "Subtitle", parent=styles["Normal"], fontName="Helvetica", fontSize=11, textColor=colors.HexColor("#5a7a9c"), spaceAfter=8, alignment=TA_CENTER, ) heading1 = ParagraphStyle( "Heading1", parent=styles["Normal"], fontName="Helvetica-Bold", fontSize=13, textColor=colors.HexColor("#1a3a5c"), spaceBefore=14, spaceAfter=5, borderPad=4, ) heading2 = ParagraphStyle( "Heading2", parent=styles["Normal"], fontName="Helvetica-Bold", fontSize=11, textColor=colors.HexColor("#2c5f8a"), spaceBefore=10, spaceAfter=3, ) body = ParagraphStyle( "Body", parent=styles["Normal"], fontName="Helvetica", fontSize=10.5, leading=15, textColor=colors.HexColor("#1e1e1e"), spaceAfter=6, alignment=TA_JUSTIFY, ) bullet_style = ParagraphStyle( "Bullet", parent=body, leftIndent=16, bulletIndent=4, spaceBefore=2, spaceAfter=3, ) caption_style = ParagraphStyle( "Caption", parent=styles["Normal"], fontName="Helvetica-Oblique", fontSize=9, textColor=colors.HexColor("#555555"), alignment=TA_CENTER, spaceBefore=3, spaceAfter=8, ) highlight_box = ParagraphStyle( "HighlightBox", parent=body, backColor=colors.HexColor("#eef4fb"), borderColor=colors.HexColor("#2c5f8a"), borderWidth=1, borderPad=8, fontName="Helvetica", fontSize=10, spaceAfter=8, ) def section_header_table(text, color="#1a3a5c"): """Returns a full-width colored header bar.""" data = [[Paragraph(f"<font color='white'><b>{text}</b></font>", ParagraphStyle( "SH", fontName="Helvetica-Bold", fontSize=12, textColor=colors.white, alignment=TA_LEFT ))]] t = Table(data, colWidths=[PAGE_W - 2 * MARGIN]) t.setStyle(TableStyle([ ("BACKGROUND", (0, 0), (-1, -1), colors.HexColor(color)), ("TOPPADDING", (0, 0), (-1, -1), 6), ("BOTTOMPADDING", (0, 0), (-1, -1), 6), ("LEFTPADDING", (0, 0), (-1, -1), 10), ("RIGHTPADDING", (0, 0), (-1, -1), 10), ])) return t # ── Content ───────────────────────────────────────────────────────────────── story = [] # Title block story.append(Paragraph("TENTORIUM CEREBELLI", title_style)) story.append(Paragraph("5-Mark Anatomy Answer | Dural Partitions Series", subtitle_style)) story.append(HRFlowable(width="100%", thickness=2, color=colors.HexColor("#1a3a5c"), spaceAfter=14)) # 1. Definition story.append(section_header_table("1. Definition and Nature")) story.append(Spacer(1, 6)) story.append(Paragraph( "The <b>tentorium cerebelli</b> is a horizontal, tent-shaped projection of the <b>meningeal layer of dura mater</b>. " "It is one of the four dural partitions (along with the falx cerebri, falx cerebelli, and diaphragma sellae) " "that project into the cranial cavity, partially subdividing it.", body )) # 2. Position and Function story.append(section_header_table("2. Position and Function")) story.append(Spacer(1, 6)) story.append(Paragraph( "The tentorium cerebelli <b>covers the superior surface of the cerebellum</b> in the posterior cranial fossa and " "<b>separates it from the posterior parts of the cerebral hemispheres</b> (occipital and temporal lobes) above.", body )) story.append(Paragraph( "It effectively divides the intracranial cavity into two compartments:", body )) story.append(Paragraph(u"\u2022 <b>Supratentorial compartment</b> \u2013 above the tentorium; contains the cerebral hemispheres and diencephalon.", bullet_style)) story.append(Paragraph(u"\u2022 <b>Infratentorial compartment (posterior fossa)</b> \u2013 below the tentorium; contains the brainstem and cerebellum.", bullet_style)) # 3. Attachments story.append(section_header_table("3. Attachments")) story.append(Spacer(1, 6)) attach_data = [ [Paragraph("<b>Border / Region</b>", body), Paragraph("<b>Attached To</b>", body)], [Paragraph("Posterior border", body), Paragraph("Occipital bone along the grooves for the transverse sinuses", body)], [Paragraph("Lateral border", body), Paragraph("Superior border of the petrous part of the temporal bone", body)], [Paragraph("Anterior (fixed border)", body), Paragraph("Anterior and posterior clinoid processes of the sphenoid bone", body)], [Paragraph("Anterior-medial border (free edge)", body), Paragraph("Forms the <b>tentorial notch (incisura)</b> \u2013 a free oval opening in the midline", body)], [Paragraph("Superiorly (central portion)", body), Paragraph("Blends with the posterior attachment of the falx cerebri", body)], [Paragraph("Inferiorly", body), Paragraph("Attached to the falx cerebelli along the internal occipital crest", body)], ] attach_table = Table(attach_data, colWidths=[5 * cm, PAGE_W - 2 * MARGIN - 5 * cm]) attach_table.setStyle(TableStyle([ ("BACKGROUND", (0, 0), (-1, 0), colors.HexColor("#d0e4f5")), ("FONTNAME", (0, 0), (-1, 0), "Helvetica-Bold"), ("GRID", (0, 0), (-1, -1), 0.5, colors.HexColor("#aaaaaa")), ("ROWBACKGROUNDS", (0, 1), (-1, -1), [colors.white, colors.HexColor("#f5f9fd")]), ("TOPPADDING", (0, 0), (-1, -1), 5), ("BOTTOMPADDING", (0, 0), (-1, -1), 5), ("LEFTPADDING", (0, 0), (-1, -1), 6), ])) story.append(attach_table) # 4. Tentorial Notch story.append(section_header_table("4. Tentorial Notch (Incisura)")) story.append(Spacer(1, 6)) story.append(Paragraph( "The <b>free anteromedial border</b> of the tentorium cerebelli forms an oval opening called the " "<b>tentorial notch or tentorial incisura</b>. This opening measures approximately " "<b>25\u201340 mm mediolaterally</b> and <b>50\u201370 mm rostrocaudally</b>.", body )) story.append(Paragraph("Structures that traverse the tentorial notch:", heading2)) story.append(Paragraph(u"\u2022 <b>Midbrain</b> \u2013 passes through the notch, connecting the cerebral hemispheres to the brainstem.", bullet_style)) story.append(Paragraph(u"\u2022 <b>Oculomotor nerve (CN III)</b> \u2013 exits the midbrain and runs along the free edge of the tentorium.", bullet_style)) story.append(Paragraph(u"\u2022 <b>Posterior cerebral arteries (PCA)</b> \u2013 wrap around the midbrain through the notch.", bullet_style)) story.append(Paragraph(u"\u2022 <b>Superior cerebellar vermis</b> \u2013 occupies the posterior part of the notch.", bullet_style)) story.append(Paragraph(u"\u2022 <b>Basilar artery branches</b> (superior cerebellar arteries).", bullet_style)) # 5. Clinical Significance story.append(section_header_table("5. Clinical Significance", "#8b2020")) story.append(Spacer(1, 6)) story.append(Paragraph( "The tentorial notch is a key site in <b>transtentorial (uncal) herniation</b>, a life-threatening " "neurosurgical emergency:", body )) story.append(Paragraph( u"\u2022 A <b>supratentorial mass lesion</b> (haematoma, tumour, oedema) can force the medial temporal lobe (uncus) " "downward through the tentorial notch.", bullet_style )) story.append(Paragraph( u"\u2022 Compression of <b>CN III</b> causes ipsilateral <b>fixed dilated pupil</b> (blown pupil).", bullet_style )) story.append(Paragraph( u"\u2022 Compression of the <b>posterior cerebral artery</b> can cause contralateral <b>homonymous hemianopia</b>; " "bilateral compression leads to <b>cortical blindness</b>.", bullet_style )) story.append(Paragraph( u"\u2022 Compression of the <b>midbrain reticular formation</b> leads to <b>loss of consciousness</b> and coma.", bullet_style )) # ── Diagrams ──────────────────────────────────────────────────────────────── story.append(Spacer(1, 12)) story.append(HRFlowable(width="100%", thickness=1, color=colors.HexColor("#2c5f8a"), spaceAfter=8)) story.append(Paragraph("Diagrams", ParagraphStyle( "DiagHeader", fontName="Helvetica-Bold", fontSize=14, textColor=colors.HexColor("#1a3a5c"), alignment=TA_CENTER, spaceAfter=10 ))) avail_w = PAGE_W - 2 * MARGIN img55 = Image("/tmp/workspace/tentorium-pdf/fig55.png", width=avail_w * 0.75, height=avail_w * 0.55) img55.hAlign = "CENTER" story.append(img55) story.append(Paragraph( "<b>Figure 1.</b> Falx Cerebri and Tentorium Cerebelli \u2013 sagittal view showing spatial relationship of dural folds. " "<i>(Source: Neuroanatomy through Clinical Cases, 3rd ed., Fig. 5.5)</i>", caption_style )) story.append(Spacer(1, 8)) img56 = Image("/tmp/workspace/tentorium-pdf/fig56.png", width=avail_w * 0.85, height=avail_w * 0.62) img56.hAlign = "CENTER" story.append(img56) story.append(Paragraph( "<b>Figure 2.</b> Tentorium Cerebelli and Structures Traversing the Tentorial Notch \u2013 " "showing the tentorium, tentorial incisura, CN III, posterior cerebral artery, and midbrain structures. " "<i>(Source: Neuroanatomy through Clinical Cases, 3rd ed., Fig. 5.6)</i>", caption_style )) # ── Summary box ───────────────────────────────────────────────────────────── story.append(Spacer(1, 4)) summary_data = [[ Paragraph( "<b>Key Points to Remember:</b><br/>" "1. Tentorium cerebelli = dural fold separating cerebellum (posterior fossa) from cerebral hemispheres.<br/>" "2. Attached to: occipital bone (transverse sinus grooves), petrous temporal bone, clinoid processes.<br/>" "3. Free edge = tentorial notch/incisura through which the midbrain passes.<br/>" "4. CN III runs along the free edge \u2192 vulnerable in uncal herniation (fixed dilated pupil).<br/>" "5. PCA compression \u2192 homonymous hemianopia; bilateral \u2192 cortical blindness.", ParagraphStyle("SumBody", fontName="Helvetica", fontSize=10, leading=14, textColor=colors.HexColor("#1a3a5c")) ) ]] summary_table = Table(summary_data, colWidths=[avail_w]) summary_table.setStyle(TableStyle([ ("BACKGROUND", (0, 0), (-1, -1), colors.HexColor("#eef4fb")), ("BOX", (0, 0), (-1, -1), 1.5, colors.HexColor("#2c5f8a")), ("TOPPADDING", (0, 0), (-1, -1), 10), ("BOTTOMPADDING", (0, 0), (-1, -1), 10), ("LEFTPADDING", (0, 0), (-1, -1), 12), ("RIGHTPADDING", (0, 0), (-1, -1), 12), ])) story.append(summary_table) # footer note story.append(Spacer(1, 10)) story.append(HRFlowable(width="100%", thickness=0.5, color=colors.grey, spaceAfter=4)) story.append(Paragraph( "Sources: Gray's Anatomy for Students (Elsevier) | Neuroanatomy through Clinical Cases, 3rd ed. (Blumenfeld) | " "Plum and Posner's Diagnosis and Treatment of Stupor and Coma", ParagraphStyle("Footer", fontName="Helvetica-Oblique", fontSize=8, textColor=colors.grey, alignment=TA_CENTER) )) doc.build(story) print("PDF built successfully:", OUTPUT) PYEOF

Your PDF is ready for download:

Tentorium Cerebelli 5Marks

PDF Document · PDF


Here is a summary of what the PDF covers (structured as a 5-mark answer):

Tentorium Cerebelli - 5 Mark Answer

Definition: A horizontal, tent-shaped fold of the meningeal layer of dura mater - one of four dural partitions inside the cranial cavity.
Position & Function:
  • Covers the superior surface of the cerebellum in the posterior cranial fossa
  • Separates the cerebellum/brainstem (infratentorial) from the cerebral hemispheres (supratentorial)
Attachments:
BorderAttached To
PosteriorOccipital bone (transverse sinus grooves)
LateralSuperior border of petrous temporal bone
Anterior fixedAnterior and posterior clinoid processes
Free anteromedial edgeForms the tentorial notch (incisura)
Tentorial Notch - Structures Traversing It:
  • Midbrain (passes through it)
  • CN III (oculomotor nerve)
  • Posterior cerebral arteries
  • Superior cerebellar vermis
Clinical Significance - Uncal (Transtentorial) Herniation:
  • Supratentorial mass lesion pushes medial temporal lobe through the notch
  • CN III compression → ipsilateral fixed dilated pupil
  • PCA compression → contralateral homonymous hemianopia (bilateral = cortical blindness)
  • Midbrain compression → loss of consciousness/coma
The PDF includes two full anatomical diagrams from Neuroanatomy through Clinical Cases (Blumenfeld, 3rd ed.) - one showing the falx cerebri/tentorium relationship, and one showing the detailed view of the tentorial notch with all traversing structures labeled.

Give me pdf for 5 mark on connective tissue with diagram

Finding Sources
Reading File
Reading File
Reading File
Finding Sources
Finding Sources
Reading File
Reading File
Loading Image
Loading Image
Reading File
Running Command

python3 << 'PYEOF' import requests imgs = { "ct_lct_dct": "https://cdn.orris.care/cdss_images/296617e98af409f96cb62ba5366913cd0185e7cb888ea3b03b407ecfdaed61a8.png", "ct_masson": "https://cdn.orris.care/cdss_images/c0972c87abc5d88806b49fec1bbe4c6d0f24497e0fde3bfe1e14428586204dd7.png", "ct_plate61": "https://cdn.orris.care/cdss_images/5c77d9aa20cd18164d4503eba10a00ac80f70387f7d2c38e2a8b43b701fbba3e.png", } import os; os.makedirs("/tmp/workspace/connective-tissue-pdf", exist_ok=True) for k, url in imgs.items(): r = requests.get(url, timeout=20) p = f"/tmp/workspace/connective-tissue-pdf/{k}.png" with open(p, "wb") as f: f.write(r.content) print(k, len(r.content)) PYEOF

Running Command

python3 << 'PYEOF' from reportlab.lib.pagesizes import A4 from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import cm from reportlab.lib import colors from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Image, Table, TableStyle, HRFlowable) from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_JUSTIFY OUTPUT = "/tmp/workspace/connective-tissue-pdf/Connective_Tissue_5Marks.pdf" PAGE_W, PAGE_H = A4 MARGIN = 2.2 * cm avail_w = PAGE_W - 2 * MARGIN doc = SimpleDocTemplate(OUTPUT, pagesize=A4, leftMargin=MARGIN, rightMargin=MARGIN, topMargin=2.5*cm, bottomMargin=2.5*cm) styles = getSampleStyleSheet() def sty(name, **kw): base = kw.pop("parent", styles["Normal"]) return ParagraphStyle(name, parent=base, **kw) title_s = sty("T", fontName="Helvetica-Bold", fontSize=18, textColor=colors.HexColor("#1a3a5c"), alignment=TA_CENTER, spaceAfter=4) sub_s = sty("S", fontName="Helvetica", fontSize=11, textColor=colors.HexColor("#5a7a9c"), alignment=TA_CENTER, spaceAfter=8) body_s = sty("B", fontName="Helvetica", fontSize=10.5, leading=15, textColor=colors.HexColor("#1e1e1e"), spaceAfter=6, alignment=TA_JUSTIFY) bullet_s = sty("BU", parent=body_s, leftIndent=16, bulletIndent=4, spaceBefore=2, spaceAfter=3) caption_s= sty("C", fontName="Helvetica-Oblique", fontSize=9, textColor=colors.HexColor("#555555"), alignment=TA_CENTER, spaceBefore=3, spaceAfter=8) footer_s = sty("F", fontName="Helvetica-Oblique", fontSize=8, textColor=colors.grey, alignment=TA_CENTER) def hdr(text, color="#1a3a5c"): data = [[Paragraph(f"<font color='white'><b>{text}</b></font>", ParagraphStyle("H", fontName="Helvetica-Bold", fontSize=12, textColor=colors.white, alignment=TA_LEFT))]] t = Table(data, colWidths=[avail_w]) t.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,-1),colors.HexColor(color)), ("TOPPADDING",(0,0),(-1,-1),6),("BOTTOMPADDING",(0,0),(-1,-1),6), ("LEFTPADDING",(0,0),(-1,-1),10),("RIGHTPADDING",(0,0),(-1,-1),10), ])) return t def grid_table(rows, col1=5*cm): t = Table(rows, colWidths=[col1, avail_w-col1]) t.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,0),colors.HexColor("#d0e4f5")), ("GRID",(0,0),(-1,-1),0.5,colors.HexColor("#aaaaaa")), ("ROWBACKGROUNDS",(0,1),(-1,-1),[colors.white,colors.HexColor("#f5f9fd")]), ("TOPPADDING",(0,0),(-1,-1),5),("BOTTOMPADDING",(0,0),(-1,-1),5), ("LEFTPADDING",(0,0),(-1,-1),6),("VALIGN",(0,0),(-1,-1),"TOP"), ])) return t def box(text): data=[[Paragraph(text,ParagraphStyle("BX",fontName="Helvetica",fontSize=10, leading=14,textColor=colors.HexColor("#1a3a5c")))]] t=Table(data,colWidths=[avail_w]) t.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,-1),colors.HexColor("#eef4fb")), ("BOX",(0,0),(-1,-1),1.5,colors.HexColor("#2c5f8a")), ("TOPPADDING",(0,0),(-1,-1),10),("BOTTOMPADDING",(0,0),(-1,-1),10), ("LEFTPADDING",(0,0),(-1,-1),12),("RIGHTPADDING",(0,0),(-1,-1),12), ])) return t # ─────────────────────────── STORY ────────────────────────────────────────── story = [] # Title story.append(Paragraph("CONNECTIVE TISSUE", title_s)) story.append(Paragraph("5-Mark Histology Answer | General Tissue Types Series", sub_s)) story.append(HRFlowable(width="100%", thickness=2, color=colors.HexColor("#1a3a5c"), spaceAfter=14)) # 1. Introduction story.append(hdr("1. Introduction / Definition")) story.append(Spacer(1, 6)) story.append(Paragraph( "Connective tissue is one of the four basic tissue types (along with epithelium, muscle, and nerve). " "Unlike epithelial cells, <b>connective tissue cells are widely separated</b> from one another; the intervening " "spaces are occupied by an <b>extracellular matrix (ECM)</b> produced by the cells themselves. " "The nature and organization of both cells and matrix determine the type and function of the connective tissue.", body_s)) story.append(Paragraph( "<b>Embryonic origin:</b> All connective tissues derive from <b>mesoderm</b> (middle embryonic germ layer). " "Embryonic connective tissue (mesenchyme) gives rise to all adult connective tissue types.", body_s)) # 2. Classification story.append(hdr("2. Classification of Connective Tissue")) story.append(Spacer(1, 6)) story.append(Paragraph("Connective tissue is broadly classified as:", body_s)) class_rows = [ [Paragraph("<b>Category</b>", body_s), Paragraph("<b>Types / Examples</b>", body_s)], [Paragraph("<b>Connective tissue proper</b>", body_s), Paragraph("Loose (areolar) CT, Dense irregular CT, Dense regular CT", body_s)], [Paragraph("<b>Specialized CT</b>", body_s), Paragraph("Bone, Cartilage, Blood, Adipose tissue, Reticular tissue, Mucous CT", body_s)], [Paragraph("<b>Embryonic CT</b>", body_s), Paragraph("Mesenchyme (embryo), Mucous CT / Wharton jelly (umbilical cord)", body_s)], ] story.append(grid_table(class_rows, col1=5*cm)) story.append(Spacer(1, 6)) # 3. Cells story.append(hdr("3. Cells of Connective Tissue")) story.append(Spacer(1, 6)) story.append(Paragraph("Connective tissue contains two broad populations of cells:", body_s)) story.append(Paragraph("<b>A. Fixed (resident) cells:</b>", ParagraphStyle("H2", fontName="Helvetica-Bold", fontSize=11, textColor=colors.HexColor("#2c5f8a"), spaceBefore=6, spaceAfter=3))) cell_rows = [ [Paragraph("<b>Cell</b>", body_s), Paragraph("<b>Function</b>", body_s)], [Paragraph("Fibroblast (most common)", body_s), Paragraph("Synthesizes and maintains ECM components (collagen, elastin, GAGs); the only cell in dense CT.", body_s)], [Paragraph("Adipocyte (fat cell)", body_s), Paragraph("Stores neutral fat (energy reserve); secretes hormones (leptin, adiponectin).", body_s)], [Paragraph("Adult stem cells", body_s), Paragraph("Reside in tissue niches; replenish connective tissue cells.", body_s)], ] story.append(grid_table(cell_rows, col1=5*cm)) story.append(Spacer(1, 4)) story.append(Paragraph("<b>B. Wandering (transient / immigrant) cells:</b>", ParagraphStyle("H2b", fontName="Helvetica-Bold", fontSize=11, textColor=colors.HexColor("#2c5f8a"), spaceBefore=4, spaceAfter=3))) wand_rows = [ [Paragraph("<b>Cell</b>", body_s), Paragraph("<b>Function</b>", body_s)], [Paragraph("Macrophage", body_s), Paragraph("Phagocytosis of debris and pathogens; antigen presentation.", body_s)], [Paragraph("Mast cell", body_s), Paragraph("Releases histamine and heparin from basophilic granules; mediates allergic / inflammatory reactions; produces leukotrienes and interleukins.", body_s)], [Paragraph("Plasma cell", body_s), Paragraph("Produces antibodies (immunoglobulins); derived from B lymphocytes.", body_s)], [Paragraph("Lymphocyte", body_s), Paragraph("Adaptive immune responses; present in loose CT especially lamina propria.", body_s)], [Paragraph("Eosinophil", body_s), Paragraph("Defence against parasites; modulates allergic inflammation.", body_s)], [Paragraph("Neutrophil", body_s), Paragraph("First-line defence; migrate into CT during acute infection.", body_s)], ] story.append(grid_table(wand_rows, col1=4.5*cm)) # 4. Extracellular Matrix story.append(hdr("4. Extracellular Matrix (ECM)")) story.append(Spacer(1, 6)) story.append(Paragraph( "The ECM provides <b>mechanical/structural support</b>, influences cell communication, and forms pathways for " "cell migration. It has two main components:", body_s)) story.append(Paragraph(u"\u2022 <b>Protein Fibers</b> \u2013 collagen fibers, reticular fibers, elastic fibers.", bullet_s)) story.append(Paragraph(u"\u2022 <b>Ground Substance</b> \u2013 proteoglycans, glycosaminoglycans (GAGs), multiadhesive glycoproteins (fibronectin, laminin).", bullet_s)) story.append(Spacer(1, 4)) fiber_rows = [ [Paragraph("<b>Fiber Type</b>", body_s), Paragraph("<b>Composition</b>", body_s), Paragraph("<b>Function</b>", body_s)], [Paragraph("Collagen fibers", body_s), Paragraph("Type I/II/III/IV collagen; 68-nm banding", body_s), Paragraph("High tensile strength; most abundant fiber", body_s)], [Paragraph("Reticular fibers", body_s), Paragraph("Type III collagen (argyrophilic)", body_s), Paragraph("Supporting framework in lymphoid & hemopoietic organs", body_s)], [Paragraph("Elastic fibers", body_s), Paragraph("Cross-linked elastin + fibrillin microfibrils", body_s), Paragraph("Allows stretch and recoil in skin, lungs, blood vessels", body_s)], ] t = Table(fiber_rows, colWidths=[3.8*cm, 5.2*cm, avail_w-9*cm]) t.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,0),colors.HexColor("#d0e4f5")), ("GRID",(0,0),(-1,-1),0.5,colors.HexColor("#aaaaaa")), ("ROWBACKGROUNDS",(0,1),(-1,-1),[colors.white,colors.HexColor("#f5f9fd")]), ("TOPPADDING",(0,0),(-1,-1),5),("BOTTOMPADDING",(0,0),(-1,-1),5), ("LEFTPADDING",(0,0),(-1,-1),6),("VALIGN",(0,0),(-1,-1),"TOP"), ])) story.append(t) # 5. Types in detail story.append(hdr("5. Types of Connective Tissue Proper")) story.append(Spacer(1, 6)) story.append(Paragraph("<b>A. Loose (Areolar) Connective Tissue</b>", ParagraphStyle("H2c", fontName="Helvetica-Bold", fontSize=11, textColor=colors.HexColor("#2c5f8a"), spaceBefore=6, spaceAfter=3))) story.append(Paragraph( "Characterized by <b>abundant cells of many types</b> and <b>thin, sparse collagen fibers</b> embedded in a " "viscous gel-like ground substance. Ground substance occupies more volume than fibers. " "Located beneath epithelia, around glands, and surrounding small blood vessels. " "Site of <b>inflammatory and immune reactions</b>.", body_s)) story.append(Paragraph("<b>B. Dense Irregular Connective Tissue</b>", ParagraphStyle("H2d", fontName="Helvetica-Bold", fontSize=11, textColor=colors.HexColor("#2c5f8a"), spaceBefore=6, spaceAfter=3))) story.append(Paragraph( "Contains <b>abundant collagen fibers</b> in randomly oriented bundles with <b>few cells</b> (mainly fibroblasts) " "and little ground substance. Resists stresses from multiple directions. " "Examples: deep dermis of skin, organ capsules.", body_s)) story.append(Paragraph("<b>C. Dense Regular Connective Tissue</b>", ParagraphStyle("H2e", fontName="Helvetica-Bold", fontSize=11, textColor=colors.HexColor("#2c5f8a"), spaceBefore=6, spaceAfter=3))) story.append(Paragraph( "Densely packed <b>parallel arrays of collagen fibers</b> with <b>tendinocytes (fibrocytes)</b> aligned between " "bundles. Withstands unidirectional tension. " "Examples: tendons, ligaments, aponeuroses.", body_s)) story.append(Paragraph("<b>D. Specialized Connective Tissues</b>", ParagraphStyle("H2f", fontName="Helvetica-Bold", fontSize=11, textColor=colors.HexColor("#2c5f8a"), spaceBefore=6, spaceAfter=3))) story.append(Paragraph( u"\u2022 <b>Bone</b>: Mineralized matrix (calcium phosphate + collagen); provides rigid support.", bullet_s)) story.append(Paragraph( u"\u2022 <b>Cartilage</b>: Matrix with hyaluronan aggregates binding large amounts of water; resilient support.", bullet_s)) story.append(Paragraph( u"\u2022 <b>Blood</b>: Cells + plasma (liquid ECM); transports O\u2082, nutrients, CO\u2082, metabolites.", bullet_s)) story.append(Paragraph( u"\u2022 <b>Adipose tissue</b>: Adipocytes store lipid; energy homeostasis and hormone secretion.", bullet_s)) story.append(Paragraph( u"\u2022 <b>Reticular tissue</b>: Reticular fibers + reticular cells; framework of lymph nodes, spleen, bone marrow.", bullet_s)) story.append(Paragraph( u"\u2022 <b>Mucous CT (Wharton jelly)</b>: Gelatin-like hyaluronan-rich ECM with spindle cells; present in umbilical cord.", bullet_s)) # ── DIAGRAMS ──────────────────────────────────────────────────────────────── story.append(Spacer(1, 10)) story.append(HRFlowable(width="100%", thickness=1, color=colors.HexColor("#2c5f8a"), spaceAfter=8)) story.append(Paragraph("Histological Diagrams", ParagraphStyle("DH", fontName="Helvetica-Bold", fontSize=14, textColor=colors.HexColor("#1a3a5c"), alignment=TA_CENTER, spaceAfter=10))) img1 = Image("/tmp/workspace/connective-tissue-pdf/ct_lct_dct.png", width=avail_w * 0.92, height=avail_w * 0.46) img1.hAlign = "CENTER" story.append(img1) story.append(Paragraph( "<b>Figure 1.</b> Loose connective tissue (LCT) vs Dense connective tissue (DCT). " "<i>a.</i> Mallory-Azan stained epiglottis section: LCT (many cell nuclei, sparse fibers) underlies epithelium (Ep); " "DCT (intense blue, thick collagen, few nuclei) is seen below. " "<i>b.</i> Dense connective tissue with abundant collagen fibers; fibroblast nuclei (N) and blood vessels (BV) visible. \u00d7540. " "<i>(Source: Histology: A Text and Atlas, Ross & Pawlina, 9th ed., Fig. 4.2)</i>", caption_s)) story.append(Spacer(1, 6)) img2 = Image("/tmp/workspace/connective-tissue-pdf/ct_masson.png", width=avail_w * 0.60, height=avail_w * 0.60) img2.hAlign = "CENTER" story.append(img2) story.append(Paragraph( "<b>Figure 2.</b> Loose and dense irregular connective tissue in the mammary gland (Masson trichrome, \u00d7100). " "Central glandular epithelium is surrounded by loose CT (many cell nuclei, wispy fibers); " "dense irregular CT (thick collagen bundles, few nuclei) occupies the periphery. " "<i>(Source: Histology: A Text and Atlas, Ross & Pawlina, 9th ed., Fig. 6.3)</i>", caption_s)) story.append(Spacer(1, 6)) img3 = Image("/tmp/workspace/connective-tissue-pdf/ct_plate61.png", width=avail_w * 0.70, height=avail_w * 0.30) img3.hAlign = "CENTER" story.append(img3) story.append(Paragraph( "<b>Figure 3.</b> Plate 6.1 \u2013 Loose and Dense Irregular Connective Tissue (H&E, mammary gland, human, \u00d7175). " "Loose CT (LCT) surrounds glandular epithelium (GE); Dense irregular CT (DICT) shows thick collagen bundles with few nuclei. " "<i>(Source: Histology: A Text and Atlas, Ross & Pawlina, 9th ed., Plate 6.1)</i>", caption_s)) # Summary box story.append(Spacer(1, 6)) story.append(box( "<b>Key Points to Remember (5-Mark Answer):</b><br/>" "1. Connective tissue = ECM-dominated tissue derived from mesoderm (mesenchyme).<br/>" "2. Types: Loose CT (many cells, sparse fibers) | Dense irregular CT (thick random collagen, few cells) | Dense regular CT (parallel collagen \u2192 tendons/ligaments).<br/>" "3. Specialized: Bone (mineralized), Cartilage (hydrated GAGs), Blood (liquid ECM), Adipose, Reticular, Mucous (Wharton jelly).<br/>" "4. Cells: Fibroblast (ECM synthesis) | Macrophage (phagocytosis) | Mast cell (histamine, heparin) | Plasma cell (antibodies).<br/>" "5. ECM: Collagen fibers (tensile strength) + Reticular fibers (framework) + Elastic fibers (stretch) + Ground substance (GAGs/proteoglycans)." )) story.append(Spacer(1, 10)) story.append(HRFlowable(width="100%", thickness=0.5, color=colors.grey, spaceAfter=4)) story.append(Paragraph( "Sources: Histology: A Text and Atlas with Correlated Cell and Molecular Biology (Ross & Pawlina, 9th ed.) | " "Junqueira's Basic Histology, 17th ed.", footer_s)) doc.build(story) print("PDF built:", OUTPUT) PYEOF

Your PDF is ready:

Connective Tissue 5Marks

PDF Document · PDF


Here is a summary of what the PDF covers (full 5-mark answer structure):

Connective Tissue - 5 Mark Answer

1. Definition Connective tissue is ECM-dominated tissue where cells are widely separated by extracellular matrix they produce. Derived from mesoderm (mesenchyme).
2. Classification
CategoryTypes
CT ProperLoose (areolar), Dense irregular, Dense regular
Specialized CTBone, Cartilage, Blood, Adipose, Reticular, Mucous CT
Embryonic CTMesenchyme, Wharton jelly
3. Cells
  • Fixed cells: Fibroblast (ECM synthesis - most common), Adipocyte, Stem cells
  • Wandering cells: Macrophage (phagocytosis), Mast cell (histamine/heparin/leukotrienes), Plasma cell (antibodies), Lymphocyte, Eosinophil
4. Extracellular Matrix (ECM)
  • Collagen fibers - tensile strength (most abundant)
  • Reticular fibers - type III collagen; framework for lymphoid organs
  • Elastic fibers - elastin + fibrillin; stretch and recoil
  • Ground substance - GAGs, proteoglycans, glycoproteins
5. Types of CT Proper
  • Loose CT: Many cells, sparse fibers, abundant ground substance; site of inflammation/immune reactions; beneath epithelia
  • Dense irregular CT: Abundant random collagen bundles, few fibroblasts; resists multidirectional stress (dermis, organ capsules)
  • Dense regular CT: Parallel collagen + tendinocytes; resists unidirectional tension (tendons, ligaments)
The PDF contains 3 full-color histological micrographs from Histology: A Text and Atlas (Ross & Pawlina, 9th ed.).

Give me pdf for 10mark on Larynx with diagram

Finding Sources
Reading File
Reading File
Reading File
Reading File
Reading File
Reading File
Loading Image
Loading Image
Loading Image
Running Command

python3 << 'PYEOF' import requests, os os.makedirs("/tmp/workspace/larynx-pdf", exist_ok=True) imgs = { "larynx_overview": "https://cdn.orris.care/cdss_images/439d7b432d8c5a1e318f166541a0b8069a7052737cfef721299bfcf2acb21cbb.png", "larynx_anatomy": "https://cdn.orris.care/cdss_images/dadfb21cb6949f610180f31a166ea40495f234596ff753ea50912732f427090b.png", "larynx_muscles": "https://cdn.orris.care/cdss_images/3c56e250cceac8788f85764f980c1d6f987584c5fdafe524a905122bfcd972c6.png", "larynx_cricoid": "https://cdn.orris.care/cdss_images/b9e263da6d29714b524cf9ad05037a2896a99821203e71de9e57568174f9b3b8.png", "larynx_thyroid": "https://cdn.orris.care/cdss_images/f8ca83a01dda21f452812bfd2994ec2c7129c5c274fe8a5aae65ab723c144ec0.png", } for k, url in imgs.items(): r = requests.get(url, timeout=20) path = f"/tmp/workspace/larynx-pdf/{k}.png" with open(path, "wb") as f: f.write(r.content) print(k, len(r.content)) print("Done") PYEOF

Running Command

python3 << 'PYEOF' from reportlab.lib.pagesizes import A4 from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import cm from reportlab.lib import colors from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Image, Table, TableStyle, HRFlowable, PageBreak) from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_JUSTIFY OUTPUT = "/tmp/workspace/larynx-pdf/Larynx_10Marks.pdf" PAGE_W, PAGE_H = A4 MARGIN = 2.0 * cm avail_w = PAGE_W - 2 * MARGIN doc = SimpleDocTemplate(OUTPUT, pagesize=A4, leftMargin=MARGIN, rightMargin=MARGIN, topMargin=2.4*cm, bottomMargin=2.4*cm) styles = getSampleStyleSheet() def sty(name, **kw): return ParagraphStyle(name, parent=kw.pop("parent", styles["Normal"]), **kw) title_s = sty("TT", fontName="Helvetica-Bold", fontSize=22, textColor=colors.HexColor("#0d2b4e"), alignment=TA_CENTER, spaceAfter=4) sub_s = sty("SS", fontName="Helvetica", fontSize=11, textColor=colors.HexColor("#4a6fa5"), alignment=TA_CENTER, spaceAfter=6) body_s = sty("BB", fontName="Helvetica", fontSize=10.5, leading=15, textColor=colors.HexColor("#1e1e1e"), spaceAfter=5, alignment=TA_JUSTIFY) bullet_s = sty("BUL", parent=body_s, leftIndent=18, bulletIndent=4, spaceBefore=2, spaceAfter=3) caption_s = sty("CAP", fontName="Helvetica-Oblique", fontSize=8.5, textColor=colors.HexColor("#555"), alignment=TA_CENTER, spaceBefore=3, spaceAfter=10) footer_s = sty("FT", fontName="Helvetica-Oblique", fontSize=8, textColor=colors.grey, alignment=TA_CENTER) h2_s = sty("H2S", fontName="Helvetica-Bold", fontSize=11, textColor=colors.HexColor("#1a5276"), spaceBefore=8, spaceAfter=3) def hdr(text, color="#0d2b4e"): p = ParagraphStyle("HH", fontName="Helvetica-Bold", fontSize=12.5, textColor=colors.white, alignment=TA_LEFT) t = Table([[Paragraph(text, p)]], colWidths=[avail_w]) t.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,-1),colors.HexColor(color)), ("TOPPADDING",(0,0),(-1,-1),7),("BOTTOMPADDING",(0,0),(-1,-1),7), ("LEFTPADDING",(0,0),(-1,-1),10),("RIGHTPADDING",(0,0),(-1,-1),10), ])) return t def gtable(rows, widths): t = Table(rows, colWidths=widths) t.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,0),colors.HexColor("#cce0f5")), ("FONTNAME",(0,0),(-1,0),"Helvetica-Bold"), ("GRID",(0,0),(-1,-1),0.5,colors.HexColor("#aaaaaa")), ("ROWBACKGROUNDS",(0,1),(-1,-1),[colors.white,colors.HexColor("#f0f7ff")]), ("TOPPADDING",(0,0),(-1,-1),5),("BOTTOMPADDING",(0,0),(-1,-1),5), ("LEFTPADDING",(0,0),(-1,-1),6),("VALIGN",(0,0),(-1,-1),"TOP"), ])) return t def box(text, bg="#eaf2fb", border="#1a5276"): p = ParagraphStyle("BX", fontName="Helvetica", fontSize=10, leading=14, textColor=colors.HexColor("#0d2b4e")) t = Table([[Paragraph(text, p)]], colWidths=[avail_w]) t.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,-1),colors.HexColor(bg)), ("BOX",(0,0),(-1,-1),1.5,colors.HexColor(border)), ("TOPPADDING",(0,0),(-1,-1),10),("BOTTOMPADDING",(0,0),(-1,-1),10), ("LEFTPADDING",(0,0),(-1,-1),12),("RIGHTPADDING",(0,0),(-1,-1),12), ])) return t def img(path, w_frac, h_frac): i = Image(path, width=avail_w*w_frac, height=avail_w*h_frac) i.hAlign = "CENTER" return i # ═══════════════════════ STORY ═══════════════════════════════════════════ story = [] # ── Title ────────────────────────────────────────────────────────────────── story.append(Paragraph("LARYNX", title_s)) story.append(Paragraph("10-Mark Anatomy Answer | Head & Neck Series", sub_s)) story.append(HRFlowable(width="100%", thickness=2.5, color=colors.HexColor("#0d2b4e"), spaceAfter=10)) # ── 1. Introduction ───────────────────────────────────────────────────────── story.append(hdr("1. Introduction and Location")) story.append(Spacer(1,6)) story.append(Paragraph( "The <b>larynx</b> is a hollow musculoligamentous structure with a cartilaginous framework that caps the " "lower respiratory tract. It lies in the <b>anterior midline of the neck</b>, continuous below with the " "trachea and opening above into the <b>laryngopharynx</b> (at the level of C3-C6 vertebrae in adults). " "It is suspended from the hyoid bone above and attached to the trachea below by membranes and ligaments, " "making it highly mobile during swallowing.", body_s)) story.append(Paragraph( "<b>Primary function:</b> Protection of the tracheobronchial airway during swallowing. " "Phonation (voice production) is a secondary, evolutionarily derived function.", body_s)) story.append(Spacer(1,6)) story.append(img("/tmp/workspace/larynx-pdf/larynx_overview.png", 0.96, 0.52)) story.append(Paragraph( "<b>Figure 1.</b> Larynx: (A) Relationship to nasal cavities, pharynx, oral cavity, trachea and oesophagus; " "(B) Lateral view showing hyoid bone, epiglottis, thyroid cartilage, cricoid cartilage and trachea. " "<i>(Source: Gray's Anatomy for Students, 4th ed., Fig. 8.212)</i>", caption_s)) # ── 2. Cartilages ───────────────────────────────────────────────────────── story.append(hdr("2. Cartilaginous Framework")) story.append(Spacer(1,6)) story.append(Paragraph( "The laryngeal skeleton consists of <b>3 unpaired</b> and <b>3 paired</b> cartilages:", body_s)) cart_rows = [ [Paragraph("<b>Cartilage</b>",body_s), Paragraph("<b>Type</b>",body_s), Paragraph("<b>Key Features</b>",body_s)], [Paragraph("Cricoid (unpaired)",body_s), Paragraph("Hyaline",body_s), Paragraph("Only complete ring in the airway. Signet-ring shaped: broad posterior lamina + narrow anterior arch. " "Articulates with arytenoids (superolateral) and inferior horns of thyroid (lateral).",body_s)], [Paragraph("Thyroid (unpaired)",body_s), Paragraph("Hyaline",body_s), Paragraph("Largest. Two laminae meeting at 90\u00b0 (men) / 120\u00b0 (women). " "Forms laryngeal prominence (Adam's apple). Superior + inferior horns. " "Oblique line on lateral surface (attachment of sternothyroid, thyrohyoid, inferior constrictor).",body_s)], [Paragraph("Epiglottis (unpaired)",body_s), Paragraph("Elastic",body_s), Paragraph("Leaf-shaped. Attached via thyroepiglottic ligament to thyroid cartilage. " "Projects posterosuperiorly. Covers laryngeal inlet during swallowing.",body_s)], [Paragraph("Arytenoid (paired)",body_s), Paragraph("Hyaline",body_s), Paragraph("Pyramidal. Vocal process (anterior) \u2192 vocal ligament attachment. " "Muscular process (posterior/lateral) \u2192 intrinsic muscle attachment. " "Movement opens/closes rima glottidis.",body_s)], [Paragraph("Corniculate (paired)",body_s), Paragraph("Elastic",body_s), Paragraph("Small conical cartilages on apex of arytenoids; in aryepiglottic folds.",body_s)], [Paragraph("Cuneiform (paired)",body_s), Paragraph("Elastic",body_s), Paragraph("Small wedge-shaped; in aryepiglottic folds, anterior to corniculates.",body_s)], ] story.append(gtable(cart_rows, [3.5*cm, 2.2*cm, avail_w-5.7*cm])) story.append(Spacer(1,8)) # side-by-side cricoid + thyroid c1 = img("/tmp/workspace/larynx-pdf/larynx_cricoid.png", 0.47, 0.30) c2 = img("/tmp/workspace/larynx-pdf/larynx_thyroid.png", 0.47, 0.30) pair_t = Table([[c1, c2]], colWidths=[avail_w*0.5, avail_w*0.5]) pair_t.setStyle(TableStyle([("ALIGN",(0,0),(-1,-1),"CENTER"),("VALIGN",(0,0),(-1,-1),"MIDDLE")])) story.append(pair_t) story.append(Paragraph( "<b>Figure 2a (left).</b> Cricoid cartilage \u2013 anterolateral and posterior views showing lamina, arch, and articular facets. " "<b>Figure 2b (right).</b> Thyroid cartilage \u2013 anterolateral and superior views showing laminae, horns, and oblique line. " "<i>(Source: Gray's Anatomy for Students, Figs. 8.213 & 8.214)</i>", caption_s)) # ── 3. Cavity / Divisions ───────────────────────────────────────────────── story.append(hdr("3. Laryngeal Cavity and Divisions")) story.append(Spacer(1,6)) story.append(Paragraph( "The laryngeal cavity extends from the <b>laryngeal inlet (aditus)</b> above to the lower border of the " "cricoid cartilage below, and is divided into three compartments:", body_s)) div_rows = [ [Paragraph("<b>Region</b>",body_s), Paragraph("<b>Boundaries</b>",body_s), Paragraph("<b>Contents / Notes</b>",body_s)], [Paragraph("Supraglottis",body_s), Paragraph("Laryngeal inlet \u2192 upper surface of vestibular folds (false cords)",body_s), Paragraph("Contains epiglottis, aryepiglottic folds, arytenoids, false (vestibular) folds; rich lymphatic drainage.",body_s)], [Paragraph("Glottis",body_s), Paragraph("Includes true vocal folds and rima glottidis",body_s), Paragraph("True vocal folds (white, composed of vocalis muscle + vocal ligament + mucosa); " "Rima glottidis = opening between the two folds + posterior inter-arytenoid space.",body_s)], [Paragraph("Subglottis",body_s), Paragraph("Below true vocal folds \u2192 lower border of cricoid cartilage",body_s), Paragraph("Narrowest part of airway in children (cricoid = complete ring). " "Most common site of endotracheal tube injury.",body_s)], ] story.append(gtable(div_rows, [2.8*cm, 4.5*cm, avail_w-7.3*cm])) story.append(Spacer(1,8)) story.append(img("/tmp/workspace/larynx-pdf/larynx_anatomy.png", 0.82, 1.30)) story.append(Paragraph( "<b>Figure 3.</b> Anatomy of the larynx showing cartilaginous framework (anterior, lateral, posterior views) " "and sagittal section demonstrating supraglottis, glottis and subglottis with labelled structures including " "epiglottis, ventricular fold (false cord), laryngeal ventricle, vocal fold (true cord) and cricothyroid space. " "<i>(Source: Bailey & Love's Short Practice of Surgery, 28th ed., Fig. 52.6)</i>", caption_s)) # ── 4. Fibro-elastic Membrane ───────────────────────────────────────────── story.append(hdr("4. Fibro-elastic Membrane of the Larynx")) story.append(Spacer(1,6)) story.append(Paragraph( "The fibro-elastic membrane links laryngeal cartilages and completes the architectural framework. It has two parts:", body_s)) story.append(Paragraph( u"\u2022 <b>Conus elasticus (cricovocal membrane)</b>: Attached to arch of cricoid cartilage; extends superiorly. " u"Its thickened free upper margin = <b>vocal ligament</b> (underlies true vocal cord). " u"Midline thickening = <b>median cricothyroid ligament</b> (site of emergency cricothyrotomy).", bullet_s)) story.append(Paragraph( u"\u2022 <b>Quadrangular membrane</b>: Between lateral margin of epiglottis and anterolateral arytenoid. " u"Free upper margin = <b>aryepiglottic fold</b>. " u"Free lower margin = <b>vestibular (false vocal) ligament</b>.", bullet_s)) story.append(Paragraph( u"\u2022 <b>Laryngeal ventricle (sinus)</b>: Recess between vestibular and vocal folds on each side.", bullet_s)) # ── 5. Intrinsic Muscles ────────────────────────────────────────────────── story.append(hdr("5. Intrinsic Muscles of the Larynx")) story.append(Spacer(1,6)) story.append(Paragraph( "All intrinsic muscles <b>except cricothyroid</b> are supplied by the <b>recurrent laryngeal nerve</b>. " "Cricothyroid is supplied by the <b>external branch of the superior laryngeal nerve</b>.", body_s)) mus_rows = [ [Paragraph("<b>Muscle</b>",body_s), Paragraph("<b>Origin \u2192 Insertion</b>",body_s), Paragraph("<b>Action</b>",body_s), Paragraph("<b>Nerve</b>",body_s)], [Paragraph("Cricothyroid",body_s), Paragraph("Arch of cricoid \u2192 inferior horn & lower lamina of thyroid",body_s), Paragraph("Lengthens/tenses vocal folds (raises pitch)",body_s), Paragraph("Ext. branch SLN",body_s)], [Paragraph("Posterior crico-arytenoid (PCA)",body_s), Paragraph("Post. surface of cricoid lamina \u2192 muscular process of arytenoid",body_s), Paragraph("<b>SOLE ABDUCTOR</b> of vocal folds (opens rima glottidis); essential for breathing",body_s), Paragraph("RLN",body_s)], [Paragraph("Lateral crico-arytenoid",body_s), Paragraph("Upper surface of cricoid arch \u2192 muscular process of arytenoid",body_s), Paragraph("Adducts vocal folds (closes rima glottidis)",body_s), Paragraph("RLN",body_s)], [Paragraph("Transverse arytenoid",body_s), Paragraph("Spans between lateral margins of both arytenoids",body_s), Paragraph("Adducts arytenoids (closes posterior glottis)",body_s), Paragraph("RLN",body_s)], [Paragraph("Oblique arytenoid",body_s), Paragraph("Muscular process one arytenoid \u2192 apex of opposite arytenoid",body_s), Paragraph("Narrows laryngeal inlet; some fibres continue as aryepiglottic muscle",body_s), Paragraph("RLN",body_s)], [Paragraph("Thyro-arytenoid (Vocalis)",body_s), Paragraph("Inner surface of thyroid cartilage \u2192 muscular process of arytenoid",body_s), Paragraph("Relaxes/shortens vocal folds; medial fibres (vocalis) fine-tune vocal fold tension",body_s), Paragraph("RLN",body_s)], [Paragraph("Thyro-epiglottic",body_s), Paragraph("Inner thyroid lamina \u2192 lateral epiglottis margin",body_s), Paragraph("Widens laryngeal inlet; depress epiglottis",body_s), Paragraph("RLN",body_s)], ] story.append(gtable(mus_rows, [3.2*cm, 4.2*cm, 4.5*cm, 2.3*cm])) story.append(Spacer(1,8)) story.append(img("/tmp/workspace/larynx-pdf/larynx_muscles.png", 0.94, 0.50)) story.append(Paragraph( "<b>Figure 4.</b> Intrinsic muscles of the larynx. Left: cricothyroid muscle (straight and oblique parts), lateral view. " "Right: posterior view showing posterior crico-arytenoid, lateral crico-arytenoid, transverse arytenoid, oblique arytenoid, " "and vocalis muscles, with rima glottidis and vocal ligaments labelled. " "<i>(Source: Gray's Anatomy for Students, 4th ed., Figs. 8.225 & 8.226)</i>", caption_s)) # ── 6. Nerve Supply ─────────────────────────────────────────────────────── story.append(hdr("6. Nerve Supply", color="#1a4a7a")) story.append(Spacer(1,6)) story.append(Paragraph( "All laryngeal nerves are branches of the <b>vagus nerve (CN X)</b>:", body_s)) nerve_rows = [ [Paragraph("<b>Nerve</b>",body_s), Paragraph("<b>Distribution</b>",body_s)], [Paragraph("Superior laryngeal nerve (SLN) \u2013 Internal branch",body_s), Paragraph("<b>Sensory</b>: laryngeal mucosa above the vocal folds (supraglottis); also epiglottis and valleculae.",body_s)], [Paragraph("Superior laryngeal nerve (SLN) \u2013 External branch",body_s), Paragraph("<b>Motor</b>: cricothyroid muscle only.",body_s)], [Paragraph("Recurrent laryngeal nerve (RLN)",body_s), Paragraph("<b>Motor</b>: ALL intrinsic muscles except cricothyroid.<br/>" "<b>Sensory</b>: mucosa below the vocal folds (subglottis and trachea).<br/>" "Right RLN loops around right subclavian artery; Left RLN loops around arch of aorta.",body_s)], ] story.append(gtable(nerve_rows, [5*cm, avail_w-5*cm])) # ── 7. Blood Supply ─────────────────────────────────────────────────────── story.append(hdr("7. Blood Supply and Lymphatics", color="#1a4a7a")) story.append(Spacer(1,6)) bs_rows = [ [Paragraph("<b>Vessel / Region</b>",body_s), Paragraph("<b>Details</b>",body_s)], [Paragraph("Superior laryngeal artery",body_s), Paragraph("Branch of superior thyroid artery (from external carotid artery). " "Supplies supraglottic larynx. Pierces thyrohyoid membrane with internal branch of SLN.",body_s)], [Paragraph("Inferior laryngeal artery",body_s), Paragraph("Branch of inferior thyroid artery (from thyrocervical trunk of subclavian). " "Supplies subglottis and trachea. Accompanies the RLN.",body_s)], [Paragraph("Lymphatics \u2013 Supraglottis",body_s), Paragraph("Rich lymphatic network. Drains to upper deep cervical nodes via thyrohyoid membrane. " "Hence supraglottic cancers present with early nodal metastases.",body_s)], [Paragraph("Lymphatics \u2013 Glottis",body_s), Paragraph("Almost avascular lymphatic supply. Glottic cancers present late without nodal spread.",body_s)], [Paragraph("Lymphatics \u2013 Subglottis",body_s), Paragraph("Drains to paratracheal and lower deep cervical nodes.",body_s)], ] story.append(gtable(bs_rows, [4.5*cm, avail_w-4.5*cm])) # ── 8. Functions ────────────────────────────────────────────────────────── story.append(hdr("8. Functions of the Larynx", color="#1a4a7a")) story.append(Spacer(1,6)) funcs = [ ("<b>Protection of the lower respiratory tract</b>", "Three sphincters act sequentially: (1) aryepiglottic folds/epiglottis at laryngeal inlet, " "(2) vestibular (false) folds, (3) true vocal folds. Cough reflex clears aspirated material."), ("<b>Phonation (voice production)</b>", "Exhaled air causes vibration of apposed vocal folds. Rising subglottic pressure forces the folds apart, " "creating a sinusoidal wave. Pitch is controlled by tension (cricothyroid) and length of vocal folds. " "Articulated by oral structures to produce speech."), ("<b>Respiration</b>", "PCA abducts folds during inspiration, widening the rima glottidis for airflow."), ("<b>Deglutition (swallowing)</b>", "Larynx elevates and moves anteriorly; epiglottis tilts over the aditus; all three sphincters close."), ("<b>Fixation of thorax / Valsalva</b>", "Closed glottis + tensed abdominal muscles = increased intra-abdominal/intrathoracic pressure " "for defaecation, micturition, parturition, and heavy lifting."), ] for title, desc in funcs: story.append(Paragraph(f"{title}: {desc}", bullet_s)) # ── 9. Clinical Significance ────────────────────────────────────────────── story.append(hdr("9. Clinical Significance", color="#7b1515")) story.append(Spacer(1,6)) clin_rows = [ [Paragraph("<b>Condition</b>",body_s), Paragraph("<b>Anatomy Basis / Notes</b>",body_s)], [Paragraph("RLN palsy",body_s), Paragraph("Unilateral: hoarseness (adductor muscles paralysed). " "Bilateral: respiratory distress (PCA paralysed - folds adducted). " "Left RLN at greater risk (longer course, passes under aortic arch).",body_s)], [Paragraph("Cricothyrotomy",body_s), Paragraph("Emergency airway: incision through the median cricothyroid ligament (conus elasticus). " "Avascular midline structure; rapidly accessible.",body_s)], [Paragraph("Subglottic stenosis",body_s), Paragraph("Cricoid = only complete ring \u2192 narrowest airway in children. " "Prolonged intubation injures the subglottic mucosa, causing scarring.",body_s)], [Paragraph("Laryngeal carcinoma",body_s), Paragraph("Glottic (most common, presents early with hoarseness, good prognosis due to poor lymphatics). " "Supraglottic (early cervical nodal spread due to rich lymphatics). " "Subglottic (rare, paratracheal node spread).",body_s)], [Paragraph("Laryngomalacia",body_s), Paragraph("Most common cause of stridor in infants. Immature aryepiglottic folds collapse during inspiration.",body_s)], [Paragraph("Foreign body aspiration",body_s), Paragraph("Stimulates cough reflex via internal SLN (sensory above cords). " "Children: narrow subglottis is the common site of lodgement.",body_s)], ] story.append(gtable(clin_rows, [4.2*cm, avail_w-4.2*cm])) # ── 10. Summary / Key Points ───────────────────────────────────────────── story.append(Spacer(1,8)) story.append(box( "<b>Key Points Summary (10-Mark Answer):</b><br/>" "1. Larynx (C3\u2013C6): musculoligamentous structure; primary function = airway protection; secondary = phonation.<br/>" "2. Cartilages: 3 unpaired (thyroid, cricoid, epiglottis) + 3 paired (arytenoid, corniculate, cuneiform); cricoid = only complete ring.<br/>" "3. Cavity: Supraglottis (false cords) | Glottis (true vocal folds, rima glottidis) | Subglottis (narrowest in children).<br/>" "4. Fibro-elastic membrane: Conus elasticus (vocal ligament + median cricothyroid ligament) + Quadrangular membrane (aryepiglottic/vestibular folds).<br/>" "5. Muscles: Cricothyroid (ext. SLN) tenses cords. PCA = SOLE ABDUCTOR. All others adduct/close (RLN innervated).<br/>" "6. Nerve supply: SLN internal (sensory above cords) | SLN external (motor to cricothyroid) | RLN (all other muscles + sensory below cords).<br/>" "7. Blood supply: Superior laryngeal a. (sup. thyroid a.) | Inferior laryngeal a. (inf. thyroid a.).<br/>" "8. Lymphatics: Supraglottis rich (early nodal spread) | Glottis sparse (late spread) | Subglottis \u2192 paratracheal nodes.<br/>" "9. Cricothyrotomy: Emergency airway through median cricothyroid ligament.<br/>" "10. RLN palsy: Unilateral = hoarseness; Bilateral = stridor/respiratory distress (PCA paralysed)." )) # Footer story.append(Spacer(1,10)) story.append(HRFlowable(width="100%", thickness=0.5, color=colors.grey, spaceAfter=4)) story.append(Paragraph( "Sources: Gray's Anatomy for Students, 4th ed. (Elsevier) | Bailey & Love's Short Practice of Surgery, 28th ed. | " "Miller's Anesthesia, 10th ed. | Cummings Otolaryngology Head & Neck Surgery, 7th ed.", footer_s)) doc.build(story) print("PDF built:", OUTPUT) PYEOF

Your comprehensive 10-mark PDF is ready:

Larynx 10Marks

PDF Document · PDF


Here is what the PDF covers across 10 fully structured sections:

Larynx - 10 Mark Answer Overview

1. Introduction & Location Musculoligamentous structure at C3-C6; continuous with trachea; primary function = airway protection; secondary = phonation.
2. Cartilaginous Framework (with Figure 2 - cricoid & thyroid cartilage diagrams)
  • 3 unpaired: Thyroid (largest, hyaline), Cricoid (only complete ring, signet-ring shaped, hyaline), Epiglottis (leaf-shaped, elastic)
  • 3 paired: Arytenoid (pyramidal; vocal + muscular processes), Corniculate, Cuneiform
3. Laryngeal Cavity & Divisions (with Figure 3 - full anatomical diagram)
  • Supraglottis (inlet to false cords), Glottis (true vocal folds + rima glottidis), Subglottis (narrowest in children)
4. Fibro-elastic Membrane
  • Conus elasticus → vocal ligament + median cricothyroid ligament
  • Quadrangular membrane → aryepiglottic fold + vestibular ligament
5. Intrinsic Muscles (with Figure 4 - muscles diagram)
  • Cricothyroid (ext. SLN; tenses folds), PCA (SOLE ABDUCTOR), Lateral crico-arytenoid, Transverse/Oblique arytenoid, Vocalis, Thyro-arytenoid
6. Nerve Supply
  • SLN internal (sensory above cords), SLN external (cricothyroid only), RLN (all other muscles + sensory below cords)
7. Blood Supply & Lymphatics
  • Superior laryngeal a. (from sup. thyroid a.) + Inferior laryngeal a. (from inf. thyroid a.)
  • Supraglottis = rich lymphatics (early nodal spread); Glottis = sparse (late spread)
8. Functions - Protection, Phonation, Respiration, Deglutition, Valsalva/thoracic fixation
9. Clinical Significance
  • RLN palsy, Cricothyrotomy, Subglottic stenosis, Laryngeal carcinoma (glottic vs supraglottic), Foreign body aspiration
10. Summary Key Points - Boxed revision summary of all 10 points

Give me pdf for 10mark on thyroid Gland with diagram tables Flowchart and points

Finding Sources
Reading File
Reading File
Reading File
Reading File
Reading File
Loading Image
Loading Image
Loading Image
Loading Image
Running Command

python3 << 'PYEOF' import requests, os os.makedirs("/tmp/workspace/thyroid-pdf", exist_ok=True) imgs = { "thyroid_overview": "https://cdn.orris.care/cdss_images/2ec58523e023bd33efeb9ba12b34b76158eb9fa16b3ce47605088bd30921c13e.png", "thyroid_vasculature": "https://cdn.orris.care/cdss_images/19be9b2bd67c8c5988f6b6824b31cf9145e5beaa01c0bb55873c22d25abeb182.png", "thyroid_junq": "https://cdn.orris.care/cdss_images/10b4dd4f80ff514866a70119561ced67cbbafe062424e09a90b34a840665c3c0.png", "thyroid_histo": "https://cdn.orris.care/cdss_images/2fb6e4f63998fbbbb982c4887d732b2db9ac3d4d35c7cc9d74cc61710f1ded02.png", "thyroid_posterior": "https://cdn.orris.care/cdss_images/8112f3e87edcb29f118fef612e489630e3c8386c93dcbfd8d7be79250ab9c8a0.png", } for k, url in imgs.items(): r = requests.get(url, timeout=20) path = f"/tmp/workspace/thyroid-pdf/{k}.png" with open(path, "wb") as f: f.write(r.content) print(k, len(r.content)) print("Done") PYEOF

Running Command

python3 -c " from reportlab.lib.pagesizes import A4 from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import cm from reportlab.lib import colors from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Image, Table, TableStyle, HRFlowable) from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_JUSTIFY print('reportlab ok') "

Writing File

~/thyroid-pdf/build_pdf.py


from reportlab.lib.pagesizes import A4
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm
from reportlab.lib import colors
from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Image,
                                 Table, TableStyle, HRFlowable, KeepTogether)
from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_JUSTIFY, TA_RIGHT

OUTPUT = "/tmp/workspace/thyroid-pdf/Thyroid_Gland_10Marks.pdf"
PAGE_W, PAGE_H = A4
MARGIN = 2.0 * cm
avail_w = PAGE_W - 2 * MARGIN

doc = SimpleDocTemplate(OUTPUT, pagesize=A4,
    leftMargin=MARGIN, rightMargin=MARGIN,
    topMargin=2.4*cm, bottomMargin=2.4*cm)

styles = getSampleStyleSheet()

def sty(name, **kw):
    return ParagraphStyle(name, parent=kw.pop("parent", styles["Normal"]), **kw)

# ── Styles ──────────────────────────────────────────────────────────────────
title_s   = sty("TT", fontName="Helvetica-Bold", fontSize=22, textColor=colors.HexColor("#00394d"),
                alignment=TA_CENTER, spaceAfter=4)
sub_s     = sty("SS", fontName="Helvetica", fontSize=11, textColor=colors.HexColor("#006080"),
                alignment=TA_CENTER, spaceAfter=6)
body_s    = sty("BB", fontName="Helvetica", fontSize=10.5, leading=15,
                textColor=colors.HexColor("#1e1e1e"), spaceAfter=5, alignment=TA_JUSTIFY)
bullet_s  = sty("BUL", parent=body_s, leftIndent=18, bulletIndent=4, spaceBefore=2, spaceAfter=3)
sub_bullet= sty("SB", parent=body_s, leftIndent=34, bulletIndent=18, spaceBefore=1, spaceAfter=2, fontSize=10)
caption_s = sty("CAP", fontName="Helvetica-Oblique", fontSize=8.5,
                textColor=colors.HexColor("#555"), alignment=TA_CENTER, spaceBefore=3, spaceAfter=10)
footer_s  = sty("FT", fontName="Helvetica-Oblique", fontSize=8, textColor=colors.grey, alignment=TA_CENTER)
h2_s      = sty("H2S", fontName="Helvetica-Bold", fontSize=11, textColor=colors.HexColor("#00394d"),
                spaceBefore=8, spaceAfter=3)
flow_cell = sty("FC", fontName="Helvetica", fontSize=9.5, leading=13,
                textColor=colors.HexColor("#00394d"), alignment=TA_CENTER)
flow_bold = sty("FB", fontName="Helvetica-Bold", fontSize=10, leading=13,
                textColor=colors.white, alignment=TA_CENTER)
note_s    = sty("NS", fontName="Helvetica-Oblique", fontSize=9, textColor=colors.HexColor("#7f0000"),
                leading=13, spaceAfter=4)

def hdr(text, color="#00394d"):
    p = ParagraphStyle("HH", fontName="Helvetica-Bold", fontSize=12.5,
                       textColor=colors.white, alignment=TA_LEFT)
    t = Table([[Paragraph(text, p)]], colWidths=[avail_w])
    t.setStyle(TableStyle([
        ("BACKGROUND",(0,0),(-1,-1),colors.HexColor(color)),
        ("TOPPADDING",(0,0),(-1,-1),7),("BOTTOMPADDING",(0,0),(-1,-1),7),
        ("LEFTPADDING",(0,0),(-1,-1),10),("RIGHTPADDING",(0,0),(-1,-1),10),
    ]))
    return t

def gtable(rows, widths, hdr_color="#b2dfdb"):
    t = Table(rows, colWidths=widths)
    t.setStyle(TableStyle([
        ("BACKGROUND",(0,0),(-1,0),colors.HexColor(hdr_color)),
        ("FONTNAME",(0,0),(-1,0),"Helvetica-Bold"),
        ("GRID",(0,0),(-1,-1),0.5,colors.HexColor("#aaaaaa")),
        ("ROWBACKGROUNDS",(0,1),(-1,-1),[colors.white,colors.HexColor("#e8f8f5")]),
        ("TOPPADDING",(0,0),(-1,-1),5),("BOTTOMPADDING",(0,0),(-1,-1),5),
        ("LEFTPADDING",(0,0),(-1,-1),6),("VALIGN",(0,0),(-1,-1),"TOP"),
    ]))
    return t

def summary_box(text, bg="#e8f8f5", border="#00394d"):
    p = ParagraphStyle("BX", fontName="Helvetica", fontSize=10, leading=14,
                       textColor=colors.HexColor("#00394d"))
    t = Table([[Paragraph(text, p)]], colWidths=[avail_w])
    t.setStyle(TableStyle([
        ("BACKGROUND",(0,0),(-1,-1),colors.HexColor(bg)),
        ("BOX",(0,0),(-1,-1),1.5,colors.HexColor(border)),
        ("TOPPADDING",(0,0),(-1,-1),10),("BOTTOMPADDING",(0,0),(-1,-1),10),
        ("LEFTPADDING",(0,0),(-1,-1),12),("RIGHTPADDING",(0,0),(-1,-1),12),
    ]))
    return t

def img(path, w_frac, h_frac):
    i = Image(path, width=avail_w*w_frac, height=avail_w*h_frac)
    i.hAlign = "CENTER"
    return i

# ── Flowchart helper: builds a vertical flowchart with arrows ────────────────
def flowchart(steps, box_color="#006080", arrow_color="#004d60", w_frac=0.65):
    box_w = avail_w * w_frac
    rows = []
    for i, (label, text) in enumerate(steps):
        # Box
        inner = [
            [Paragraph(f"<b>{label}</b>", flow_bold)],
            [Paragraph(text, flow_cell)],
        ]
        inner_t = Table(inner, colWidths=[box_w - 0.4*cm])
        inner_t.setStyle(TableStyle([
            ("BACKGROUND",(0,0),(-1,0),colors.HexColor(box_color)),
            ("BACKGROUND",(0,1),(-1,-1),colors.HexColor("#e0f4f7")),
            ("BOX",(0,0),(-1,-1),1,colors.HexColor(box_color)),
            ("TOPPADDING",(0,0),(-1,-1),5),("BOTTOMPADDING",(0,0),(-1,-1),5),
            ("LEFTPADDING",(0,0),(-1,-1),6),("RIGHTPADDING",(0,0),(-1,-1),6),
        ]))
        rows.append(inner_t)
        # Arrow (except after last step)
        if i < len(steps) - 1:
            arr = Paragraph("\u25bc", ParagraphStyle("ARR", fontName="Helvetica-Bold",
                fontSize=14, textColor=colors.HexColor(arrow_color), alignment=TA_CENTER))
            rows.append(arr)
    # Wrap in centering table
    centered = []
    for r in rows:
        centered.append([r])
    ft = Table(centered, colWidths=[box_w])
    ft.setStyle(TableStyle([
        ("ALIGN",(0,0),(-1,-1),"CENTER"),
        ("LEFTPADDING",(0,0),(-1,-1),0),
        ("RIGHTPADDING",(0,0),(-1,-1),0),
        ("TOPPADDING",(0,0),(-1,-1),2),
        ("BOTTOMPADDING",(0,0),(-1,-1),2),
    ]))
    # Outer centering wrapper
    outer = Table([[ft]], colWidths=[avail_w])
    outer.setStyle(TableStyle([("ALIGN",(0,0),(-1,-1),"CENTER"),
                                ("TOPPADDING",(0,0),(-1,-1),0),
                                ("BOTTOMPADDING",(0,0),(-1,-1),0)]))
    return outer

# ═══════════════════════  STORY  ═══════════════════════════════════════════
story = []

# ── TITLE ──────────────────────────────────────────────────────────────────
story.append(Paragraph("THYROID GLAND", title_s))
story.append(Paragraph("10-Mark Anatomy & Physiology Answer | Endocrine System Series", sub_s))
story.append(HRFlowable(width="100%", thickness=2.5, color=colors.HexColor("#00394d"), spaceAfter=10))

# ══════════════════════════════════════════════════════════════════════════
# 1. Introduction
# ══════════════════════════════════════════════════════════════════════════
story.append(hdr("1. Introduction"))
story.append(Spacer(1,5))
story.append(Paragraph(
    "The <b>thyroid gland</b> is the <b>largest endocrine gland</b> in the body. It is a highly vascular, "
    "butterfly-shaped gland located <b>anterior and inferior to the larynx</b>, wrapped around the "
    "anterolateral surface of the trachea just below the cricoid cartilage (C5\u2013T1 level). "
    "It secretes the <b>thyroid hormones T3 and T4</b> (controlling basal metabolic rate) and "
    "<b>calcitonin</b> (calcium homeostasis).",
    body_s))
story.append(Paragraph(
    "<b>Weight:</b> ~25\u201330 g in adults. Each lobe ~5 cm long, 3 cm wide, 2 cm thick. "
    "The isthmus connects the two lobes across the 2nd\u20133rd tracheal rings.",
    body_s))

story.append(Spacer(1,6))
story.append(img("/tmp/workspace/thyroid-pdf/thyroid_overview.png", 0.97, 0.72))
story.append(Paragraph(
    "<b>Figure 1.</b> Thyroid Gland in the Anterior Triangle of Neck. "
    "(A) Anterior view showing pyramidal lobe, isthmus, and relationship to carotid and jugular vessels. "
    "(B) Transverse cross-section showing pretracheal fascia, trachea, oesophagus, RLN, and carotid arteries. "
    "(C,D) Ultrasound scans showing bilateral lobes and isthmus. (E) Nuclear medicine pertechnetate scan. "
    "<i>(Source: Gray's Anatomy for Students, 4th ed., Fig. 8.181)</i>",
    caption_s))

# ══════════════════════════════════════════════════════════════════════════
# 2. Gross Anatomy
# ══════════════════════════════════════════════════════════════════════════
story.append(hdr("2. Gross Anatomy"))
story.append(Spacer(1,5))

story.append(Paragraph("<b>Components:</b>", h2_s))
story.append(Paragraph(u"\u2022 <b>Two lateral lobes</b>: Cover the anterolateral surfaces of the trachea, "
    "cricoid cartilage, and lower thyroid cartilage.", bullet_s))
story.append(Paragraph(u"\u2022 <b>Isthmus</b>: Connects the two lobes; lies across the anterior surfaces of "
    "the 2nd and 3rd tracheal cartilage rings.", bullet_s))
story.append(Paragraph(u"\u2022 <b>Pyramidal lobe</b>: A superior extension of the isthmus (present in ~50% of people); "
    "remnant of the thyroglossal duct.", bullet_s))

story.append(Spacer(1,5))
story.append(Paragraph("<b>Relations (Table):</b>", h2_s))
rel_rows = [
    [Paragraph("<b>Surface / Direction</b>", body_s), Paragraph("<b>Related Structures</b>", body_s)],
    [Paragraph("Anterolateral", body_s),
     Paragraph("Sternohyoid, sternothyroid, and omohyoid muscles; investing layer of deep cervical fascia", body_s)],
    [Paragraph("Posteromedial", body_s),
     Paragraph("Trachea, oesophagus, inferior constrictor of pharynx, recurrent laryngeal nerves (in tracheo-oesophageal groove)", body_s)],
    [Paragraph("Posterolateral", body_s),
     Paragraph("Carotid sheath (common carotid artery, internal jugular vein, vagus nerve)", body_s)],
    [Paragraph("Posterior surface", body_s),
     Paragraph("Parathyroid glands (superior and inferior pairs), inferior thyroid artery, RLN", body_s)],
    [Paragraph("Capsule", body_s),
     Paragraph("True capsule (fibrous, sends septa into gland dividing it into lobules) + "
               "false capsule (from pretracheal fascia; contains blood vessels)", body_s)],
]
story.append(gtable(rel_rows, [4.2*cm, avail_w-4.2*cm]))

# ══════════════════════════════════════════════════════════════════════════
# 3. Embryology
# ══════════════════════════════════════════════════════════════════════════
story.append(hdr("3. Embryological Development"))
story.append(Spacer(1,5))
story.append(Paragraph(
    "The thyroid gland develops from <b>foregut endoderm</b> near the base of the tongue. "
    "Key developmental steps:", body_s))
story.append(Paragraph(u"\u2022 <b>3rd week</b>: Appears as a median outgrowth (endodermal thickening) from the floor of "
    "the pharynx at the site of the future <b>foramen caecum</b> of the tongue.", bullet_s))
story.append(Paragraph(u"\u2022 <b>4th\u20137th week</b>: Descends along the <b>thyroglossal duct</b> anterior to the hyoid bone "
    "to its final position at C5\u2013T1.", bullet_s))
story.append(Paragraph(u"\u2022 <b>Thyroglossal duct</b> normally disappears after descent. Remnants form "
    "thyroglossal duct cysts (most common midline neck mass in children).", bullet_s))
story.append(Paragraph(u"\u2022 <b>Parafollicular C cells</b> (calcitonin-secreting) derive from neural crest cells "
    "of the 4th pharyngeal pouch (ultimobranchial body).", bullet_s))

# ══════════════════════════════════════════════════════════════════════════
# 4. Histology
# ══════════════════════════════════════════════════════════════════════════
story.append(hdr("4. Histology"))
story.append(Spacer(1,5))

story.append(Paragraph(
    "The thyroid is the <b>only endocrine gland that stores its secretory product extracellularly</b> "
    "(in follicle lumen as colloid) in large quantities (up to 3 months' supply).", body_s))

histo_rows = [
    [Paragraph("<b>Structure</b>", body_s), Paragraph("<b>Description & Significance</b>", body_s)],
    [Paragraph("Capsule + Septa", body_s),
     Paragraph("Fibrous capsule with septa dividing gland into lobules. Carries blood vessels, lymphatics, nerves.", body_s)],
    [Paragraph("Follicles", body_s),
     Paragraph("Basic structural & functional units. Rounded epithelial spheres, variable diameter, packed with acidophilic colloid. "
               "Lined by a single layer of thyrocytes resting on a basal lamina.", body_s)],
    [Paragraph("Thyrocytes (follicular cells)", body_s),
     Paragraph("Shape varies with activity: squamous (inactive/hypothyroid) to low columnar (active/hyperthyroid). "
               "TSH stimulates columnar transformation. Apical microvilli face lumen. Rich in RER (basally) and Golgi/lysosomes (apically).", body_s)],
    [Paragraph("Colloid", body_s),
     Paragraph("Gelatinous acidophilic material = mainly <b>thyroglobulin</b> (660 kDa glycoprotein, precursor of T3/T4). "
               "Shows peripheral scalloping (resorption lacunae) in active glands.", body_s)],
    [Paragraph("Parafollicular C cells", body_s),
     Paragraph("Neural crest origin. Located within follicular epithelium or in interfollicular stroma. "
               "Larger, pale-staining cells. Secrete <b>calcitonin</b> (lowers blood calcium).", body_s)],
    [Paragraph("Stroma", body_s),
     Paragraph("Sparse reticular connective tissue between follicles with fenestrated capillaries for hormone transfer.", body_s)],
]
story.append(gtable(histo_rows, [4.0*cm, avail_w-4.0*cm]))

story.append(Spacer(1,8))
# Histology images side by side
c1 = img("/tmp/workspace/thyroid-pdf/thyroid_histo.png", 0.48, 0.36)
c2 = img("/tmp/workspace/thyroid-pdf/thyroid_junq.png", 0.48, 0.36)
pair = Table([[c1, c2]], colWidths=[avail_w*0.5, avail_w*0.5])
pair.setStyle(TableStyle([("ALIGN",(0,0),(-1,-1),"CENTER"),("VALIGN",(0,0),(-1,-1),"MIDDLE")]))
story.append(pair)
story.append(Paragraph(
    "<b>Figure 2 (left).</b> Thyroid gland histology (H&E, \u00d712): Capsule (C), septa (S), and colloid-filled follicles of varying sizes. "
    "<b>Figure 2 (right).</b> Thyroid gland showing follicles, colloid, cricoid cartilage and inferior thyroid artery relationships. "
    "<i>(Source: Junqueira's Basic Histology, 17th ed.; Histology: A Text and Atlas, Ross & Pawlina)</i>",
    caption_s))

# ══════════════════════════════════════════════════════════════════════════
# 5. Blood Supply
# ══════════════════════════════════════════════════════════════════════════
story.append(hdr("5. Blood Supply"))
story.append(Spacer(1,5))
story.append(Paragraph(
    "The thyroid is one of the <b>most vascular organs</b> in the body (blood flow ~5 mL/g/min, "
    "increasing 10\u00d7 in hyperthyroidism).", body_s))

bs_rows = [
    [Paragraph("<b>Vessel</b>", body_s), Paragraph("<b>Origin</b>", body_s),
     Paragraph("<b>Supply / Territory</b>", body_s)],
    [Paragraph("<b>ARTERIES</b>", sty("A", fontName="Helvetica-Bold", fontSize=10, textColor=colors.HexColor("#00394d"))),
     Paragraph("", body_s), Paragraph("", body_s)],
    [Paragraph("Superior thyroid artery", body_s),
     Paragraph("1st branch of external carotid artery", body_s),
     Paragraph("Superior pole of each lateral lobe. Anterior glandular branch anastomoses across isthmus. "
               "Posterior branch anastomoses with inferior thyroid artery.", body_s)],
    [Paragraph("Inferior thyroid artery", body_s),
     Paragraph("Branch of thyrocervical trunk (from 1st part subclavian artery)", body_s),
     Paragraph("Inferior pole of lateral lobes. Ascending branch supplies parathyroid glands. "
               "Critical relation to RLN at inferior pole.", body_s)],
    [Paragraph("Thyroid ima artery (occasional)", body_s),
     Paragraph("Brachiocephalic trunk or arch of aorta (~10% of people)", body_s),
     Paragraph("Ascends anterior to trachea; supplies isthmus.", body_s)],
    [Paragraph("<b>VEINS</b>", sty("V", fontName="Helvetica-Bold", fontSize=10, textColor=colors.HexColor("#00394d"))),
     Paragraph("", body_s), Paragraph("", body_s)],
    [Paragraph("Superior thyroid vein", body_s),
     Paragraph("Drains superior pole", body_s),
     Paragraph("Drains into internal jugular vein (IJV)", body_s)],
    [Paragraph("Middle thyroid vein", body_s),
     Paragraph("Drains lateral lobe", body_s),
     Paragraph("Drains into internal jugular vein (IJV)", body_s)],
    [Paragraph("Inferior thyroid veins (paired)", body_s),
     Paragraph("Drains inferior pole", body_s),
     Paragraph("Left \u2192 left brachiocephalic vein; Right \u2192 right brachiocephalic vein", body_s)],
]
story.append(gtable(bs_rows, [4.0*cm, 4.2*cm, avail_w-8.2*cm]))

story.append(Spacer(1,8))
story.append(img("/tmp/workspace/thyroid-pdf/thyroid_vasculature.png", 0.72, 1.05))
story.append(Paragraph(
    "<b>Figure 3.</b> Vasculature of the thyroid gland (anterior view): Superior thyroid artery and vein (from external carotid), "
    "inferior thyroid artery (from thyrocervical trunk), middle thyroid vein, inferior thyroid veins, and bilateral "
    "recurrent laryngeal nerves (RLN). "
    "<i>(Source: Gray's Anatomy for Students, 4th ed., Fig. 8.182)</i>",
    caption_s))

# ══════════════════════════════════════════════════════════════════════════
# 6. Lymphatics
# ══════════════════════════════════════════════════════════════════════════
story.append(hdr("6. Lymphatic Drainage"))
story.append(Spacer(1,5))
story.append(Paragraph(u"\u2022 <b>Primary drainage</b>: Paratracheal (level VI) lymph nodes alongside the trachea.", bullet_s))
story.append(Paragraph(u"\u2022 <b>Secondary drainage</b>: Deep cervical nodes inferior to the omohyoid muscle (lower jugular chain, level IV).", bullet_s))
story.append(Paragraph(u"\u2022 <b>Upper/superior drainage</b>: Pre-laryngeal (Delphian) nodes and upper deep cervical nodes (level III).", bullet_s))
story.append(Paragraph(u"\u2022 <b>Inferior drainage</b>: Pre-tracheal and mediastinal nodes.", bullet_s))
story.append(Paragraph(
    u"\u25b6 <b>Clinical note</b>: Rich lymphatic network facilitates early nodal spread in thyroid carcinoma. "
    u"Papillary thyroid carcinoma (most common) spreads to cervical nodes early.",
    note_s))

# ══════════════════════════════════════════════════════════════════════════
# 7. Nerve Supply
# ══════════════════════════════════════════════════════════════════════════
story.append(hdr("7. Nerve Supply"))
story.append(Spacer(1,5))
nerve_rows = [
    [Paragraph("<b>Nerve</b>", body_s), Paragraph("<b>Source</b>", body_s), Paragraph("<b>Function</b>", body_s)],
    [Paragraph("Sympathetic fibres", body_s),
     Paragraph("Middle cervical ganglion via superior thyroid artery plexus; inferior cervical ganglion via inferior thyroid artery plexus", body_s),
     Paragraph("Vasomotor: regulate blood flow. No direct secretomotor role.", body_s)],
    [Paragraph("Parasympathetic fibres", body_s),
     Paragraph("Vagus nerve (CN X) \u2192 superior and recurrent laryngeal branches", body_s),
     Paragraph("Minor vasodilator role.", body_s)],
    [Paragraph("<b>Recurrent laryngeal nerve (RLN)</b>", body_s),
     Paragraph("Branch of vagus nerve CN X", body_s),
     Paragraph("<b>Surgical landmark</b>: Passes in tracheo-oesophageal groove deep to posteromedial surface of thyroid lobe. "
               "Injured during thyroidectomy \u2192 hoarseness (unilateral) or respiratory distress (bilateral).", body_s)],
    [Paragraph("<b>External branch of SLN</b>", body_s),
     Paragraph("Superior laryngeal nerve (from vagus)", body_s),
     Paragraph("Runs close to superior thyroid artery; supplies cricothyroid muscle. "
               "Injury \u2192 loss of vocal pitch change.", body_s)],
]
story.append(gtable(nerve_rows, [3.8*cm, 4.4*cm, avail_w-8.2*cm]))

story.append(Spacer(1,8))
story.append(img("/tmp/workspace/thyroid-pdf/thyroid_posterior.png", 0.72, 0.85))
story.append(Paragraph(
    "<b>Figure 4.</b> Posterior view: Superior and inferior thyroid arteries, bilateral RLNs (ascending in tracheo-oesophageal groove), "
    "parathyroid glands, and their relationship to the posterior surface of the thyroid lobes. "
    "<i>(Source: Gray's Anatomy for Students, 4th ed., Fig. 8.183)</i>",
    caption_s))

# ══════════════════════════════════════════════════════════════════════════
# 8. Hormone Synthesis Flowchart (T3/T4)
# ══════════════════════════════════════════════════════════════════════════
story.append(hdr("8. Thyroid Hormone Synthesis (T3 / T4) \u2013 Flowchart"))
story.append(Spacer(1,8))

fc_steps = [
    ("STEP 1: Iodide Uptake (Trapping)",
     "Dietary iodide (I\u207b) actively transported into thyrocyte via Na\u207a/I\u207b symporter (NIS) on basolateral membrane.\nStimulated by TSH. Blocked by thiocyanate, perchlorate."),
    ("STEP 2: Iodide Oxidation (Organification)",
     "I\u207b oxidised to I\u2082 by thyroid peroxidase (TPO) at the apical membrane.\nBlocked by thionamides (propylthiouracil, methimazole)."),
    ("STEP 3: Thyroglobulin Synthesis",
     "Thyroglobulin (Tg, 660 kDa) synthesised by RER of thyrocytes, glycosylated in Golgi, secreted into follicular lumen as colloid."),
    ("STEP 4: Iodination of Thyroglobulin (Organification)",
     "TPO iodinates tyrosyl residues on Tg \u2192 MIT (monoiodotyrosine) and DIT (diiodotyrosine). Stored in colloid."),
    ("STEP 5: Coupling",
     "TPO couples MIT + DIT \u2192 T3 (triiodothyronine; DIT+MIT)\nDIT + DIT \u2192 T4 (thyroxine; tetraiodothyronine). T4 predominates (~90%)."),
    ("STEP 6: Resorption & Proteolysis",
     "TSH stimulates endocytosis of colloid by thyrocytes (pinocytosis). Lysosomes cleave Tg \u2192 free T3 and T4 released into blood. "
     "MIT/DIT are deiodinated and iodine recycled."),
    ("STEP 7: Secretion & Transport",
     "T4 (prohormone) \u2192 blood (80% bound to TBG; 15% albumin; 5% TBPA). "
     "T3 (active hormone) converted from T4 in peripheral tissues by 5'-deiodinase (Type I/II).\nT3 is 3\u20135\u00d7 more potent than T4."),
]
story.append(flowchart(fc_steps, box_color="#005f73", arrow_color="#0a9396", w_frac=0.90))
story.append(Spacer(1,10))

# ══════════════════════════════════════════════════════════════════════════
# 9. Actions of Thyroid Hormones (Table)
# ══════════════════════════════════════════════════════════════════════════
story.append(hdr("9. Actions of Thyroid Hormones (T3 / T4)"))
story.append(Spacer(1,5))
story.append(Paragraph(
    "Thyroid hormones bind to <b>nuclear receptors</b> (TR\u03b1, TR\u03b2), altering gene transcription. "
    "Effects are widespread and involve virtually every organ system:", body_s))

actions_rows = [
    [Paragraph("<b>System</b>", body_s), Paragraph("<b>Effect of T3/T4</b>", body_s)],
    [Paragraph("Metabolism / BMR", body_s),
     Paragraph("\u2191 basal metabolic rate, O\u2082 consumption, heat production (calorigenic effect). "
               "\u2191 Na\u207a/K\u207a-ATPase activity.", body_s)],
    [Paragraph("Cardiovascular", body_s),
     Paragraph("\u2191 heart rate, stroke volume, and cardiac output. "
               "\u2191 \u03b2-adrenergic receptor expression (explains sympathomimetic symptoms of hyperthyroidism).", body_s)],
    [Paragraph("Growth & Development", body_s),
     Paragraph("Essential for normal skeletal maturation and bone growth. "
               "Critical for <b>brain development</b> (myelination, neuronal migration) \u2013 deficiency in neonates causes <b>cretinism</b>.", body_s)],
    [Paragraph("Carbohydrate metabolism", body_s),
     Paragraph("\u2191 intestinal glucose absorption, glycogenolysis, gluconeogenesis. Potentiates insulin action.", body_s)],
    [Paragraph("Lipid metabolism", body_s),
     Paragraph("\u2191 lipolysis and fatty acid oxidation. \u2193 serum cholesterol (upregulates LDL receptors).", body_s)],
    [Paragraph("Protein synthesis", body_s),
     Paragraph("At physiological levels: anabolic (\u2191 protein synthesis). "
               "At excess: catabolic (\u2191 protein degradation, muscle wasting).", body_s)],
    [Paragraph("Nervous system", body_s),
     Paragraph("Maintains alertness, reflexes, mood. Hypothyroidism: slow mentation, depression. "
               "Hyperthyroidism: anxiety, tremor, hyperreflexia.", body_s)],
    [Paragraph("Reproductive", body_s),
     Paragraph("Normal thyroid function required for regular menstrual cycles and fertility.", body_s)],
]
story.append(gtable(actions_rows, [4.0*cm, avail_w-4.0*cm]))

# ══════════════════════════════════════════════════════════════════════════
# 10. HPT Axis Regulation Flowchart
# ══════════════════════════════════════════════════════════════════════════
story.append(hdr("10. Regulation of Thyroid Hormone \u2013 HPT Axis Flowchart"))
story.append(Spacer(1,8))

reg_steps = [
    ("Hypothalamus",
     "Detects low T3/T4 in blood \u2192 releases TRH (Thyrotropin-releasing hormone) into portal circulation"),
    ("Anterior Pituitary (Thyrotrophs)",
     "TRH binds thyrotrophs \u2192 releases TSH (Thyroid-stimulating hormone / Thyrotropin)"),
    ("Thyroid Gland",
     "TSH binds TSH receptors (Gs-protein coupled) on thyrocytes \u2192 \u2191cAMP\n"
     "\u2191 Iodide uptake \u2191 Tg synthesis \u2191 TPO activity \u2191 hormone synthesis & secretion \u2191 gland hypertrophy"),
    ("Thyroid Hormones Released (T3 / T4)",
     "T4 (prohormone) \u2192 T3 (active) via 5'-deiodinase in peripheral tissues\nT3:T4 ratio in secretion \u2248 1:14"),
    ("Negative Feedback Loop",
     "High T3/T4 \u2192 inhibits both TRH release (hypothalamus) AND TSH secretion (pituitary)\n"
     "Maintains serum T3/T4 within narrow physiological range"),
]
story.append(flowchart(reg_steps, box_color="#1b4332", arrow_color="#40916c", w_frac=0.88))
story.append(Spacer(1,10))

# ══════════════════════════════════════════════════════════════════════════
# 11. Clinical Significance
# ══════════════════════════════════════════════════════════════════════════
story.append(hdr("11. Clinical Significance", color="#6b0000"))
story.append(Spacer(1,5))

clin_rows = [
    [Paragraph("<b>Condition</b>", body_s), Paragraph("<b>Key Features</b>", body_s)],
    [Paragraph("Hypothyroidism\n(e.g., Hashimoto's thyroiditis)", body_s),
     Paragraph("Low T3/T4, high TSH. Features: fatigue, weight gain, cold intolerance, bradycardia, "
               "constipation, dry skin, myxoedema. Neonatal: cretinism (irreversible CNS damage).", body_s)],
    [Paragraph("Hyperthyroidism\n(e.g., Graves' disease)", body_s),
     Paragraph("High T3/T4, low TSH. Features: weight loss, tachycardia, heat intolerance, tremor, "
               "anxiety, diarrhoea. Graves': pretibial myxoedema, exophthalmos, thyroid bruit.", body_s)],
    [Paragraph("Thyroid carcinoma", body_s),
     Paragraph("Papillary (most common, ~80%; RET/PTC mutation; excellent prognosis; spreads to cervical nodes). "
               "Follicular (~15%; RAS mutation; haematogenous spread). "
               "Medullary (C-cell; calcitonin marker; MEN2 association). "
               "Anaplastic (most aggressive, elderly, poor prognosis).", body_s)],
    [Paragraph("Thyroglossal duct cyst", body_s),
     Paragraph("Midline neck mass; moves with tongue protrusion and swallowing. "
               "Most common midline neck mass in children. Tx: Sistrunk operation.", body_s)],
    [Paragraph("Thyroidectomy complications", body_s),
     Paragraph("1) RLN injury \u2192 hoarseness (unilateral) / respiratory distress (bilateral).\n"
               "2) SLN external branch injury \u2192 loss of high-pitched voice.\n"
               "3) Hypoparathyroidism (accidental parathyroid removal) \u2192 hypocalcaemia, tetany.", body_s)],
    [Paragraph("Goitre", body_s),
     Paragraph("Enlarged thyroid; may be diffuse or nodular; euthyroid, hypo-, or hyperthyroid. "
               "Iodine deficiency = most common worldwide cause.", body_s)],
]
story.append(gtable(clin_rows, [4.2*cm, avail_w-4.2*cm], hdr_color="#ffcccc"))

# ══════════════════════════════════════════════════════════════════════════
# SUMMARY BOX
# ══════════════════════════════════════════════════════════════════════════
story.append(Spacer(1,10))
story.append(summary_box(
    "<b>Key Points Summary (10-Mark Answer):</b><br/>"
    "1. Largest endocrine gland; butterfly-shaped; two lobes + isthmus + pyramidal lobe; located C5\u2013T1.<br/>"
    "2. Embryology: Median pharyngeal outgrowth descends via thyroglossal duct from foramen caecum. C cells from neural crest.<br/>"
    "3. Histology: Follicles lined by thyrocytes (squamous inactive \u2194 columnar active) with colloid (thyroglobulin). C cells secrete calcitonin.<br/>"
    "4. Blood supply: Superior thyroid a. (ext. carotid) + Inferior thyroid a. (thyrocervical trunk) \u00b1 Thyroid ima. Veins \u2192 IJV / brachiocephalic.<br/>"
    "5. Lymphatics: Paratracheal \u2192 deep cervical nodes. Early nodal spread in papillary carcinoma.<br/>"
    "6. Nerves: Sympathetic (vasomotor). RLN (surgical landmark; motor to larynx). External SLN (cricothyroid).<br/>"
    "7. Hormone synthesis: Iodide trapping \u2192 oxidation (TPO) \u2192 thyroglobulin iodination \u2192 MIT+DIT coupling \u2192 T3/T4 release.<br/>"
    "8. T4 is prohormone; T3 (3\u20135\u00d7 more potent) formed by 5'-deiodinase peripherally. Both bound to TBG in blood.<br/>"
    "9. Regulation: Hypothalamus TRH \u2192 Pituitary TSH \u2192 Thyroid T3/T4 (negative feedback). TSH acts via cAMP.<br/>"
    "10. Clinical: Hypothyroid (Hashimoto's), Hyperthyroid (Graves'), Carcinoma (papillary > follicular > medullary > anaplastic), "
    "Thyroglossal cyst, Thyroidectomy complications (RLN palsy, hypoparathyroidism)."
))

# Footer
story.append(Spacer(1,10))
story.append(HRFlowable(width="100%", thickness=0.5, color=colors.grey, spaceAfter=4))
story.append(Paragraph(
    "Sources: Gray's Anatomy for Students, 4th ed. (Elsevier) | "
    "Junqueira's Basic Histology, 17th ed. | "
    "Histology: A Text and Atlas, Ross & Pawlina, 9th ed. | "
    "Bailey & Love's Short Practice of Surgery, 28th ed.",
    footer_s))

doc.build(story)
print("PDF built:", OUTPUT)
Running Command

python3 /tmp/workspace/thyroid-pdf/build_pdf.py

Your comprehensive 10-mark PDF is ready:

Thyroid Gland 10Marks

PDF Document · PDF


Here is a full outline of what's inside the PDF:

Thyroid Gland - 10 Mark Answer (PDF Contents)

Diagrams (4 full-color images from Gray's & Junqueira's):
  • Fig 1: Overview with anterior view, transverse section, ultrasound, and nuclear medicine scan
  • Fig 2: Histology - colloid-filled follicles (H&E) and vascular relationship
  • Fig 3: Vasculature (anterior view) - all arteries, veins, RLN
  • Fig 4: Posterior view - parathyroid glands, RLN, thyroid arteries
Tables (6 color-coded tables):
  1. Relations of the thyroid gland (all surfaces)
  2. Histological structures and significance
  3. Blood supply (arteries + veins, origin, territory)
  4. Nerve supply (sympathetic, parasympathetic, RLN, external SLN)
  5. Actions of thyroid hormones (T3/T4) by system
  6. Clinical conditions (Hypo/Hyperthyroidism, carcinoma types, complications)
Flowcharts (2 step-by-step visual flowcharts):
  1. Thyroid Hormone Synthesis (T3/T4) - 7 steps: Iodide trapping → organification → Tg synthesis → iodination → coupling → resorption → secretion
  2. HPT Axis Regulation - 5 steps: Hypothalamus TRH → Pituitary TSH → Thyroid T3/T4 → Negative Feedback
Bullet-point sections:
  • Introduction, Gross Anatomy, Embryology, Lymphatics
  • 10-point summary revision box at the end
This is a shared conversation. Sign in to Orris to start your own chat.