Modern Understanding and Diagnosis of Diabetes Insipidus on detail generate ppt by medical textbook mbbs

Reading File
Reading File
Finding Sources
Finding Sources
Searching PubMed

"diabetes insipidus" AND diagnosis

Searching the Web

2025 diabetes insipidus diagnosis copeptin guideline hypertonic saline test

Searching Images

diagram hypothalamus posterior pituitary vasopressin pathway diabetes insipidus

Browsing Directory

~/

Reading File
Reading File
Reading File
Reading File
Finding Sources
Searching PubMed

copeptin AND diabetes insipidus

Reading Web Page

https://academic.oup.com/jcem/advance-article/doi/10.1210/cl…

Running Command

mkdir -p /tmp/workspace/diabetes-insipidus-mbbs/src /tmp/workspace/diabetes-insipidus-mbbs/output && cat > /tmp/workspace/diabetes-insipidus-mbbs/src/create_di_ppt.py <<'PY' from pptx import Presentation from pptx.util import Inches, Pt from pptx.enum.text import PP_ALIGN, MSO_ANCHOR from pptx.enum.shapes import MSO_SHAPE, MSO_CONNECTOR from pptx.dml.color import RGBColor from pptx.enum.dml import MSO_THEME_COLOR from pptx.enum.text import MSO_AUTO_SIZE OUT='/tmp/workspace/diabetes-insipidus-mbbs/output/Modern_Understanding_and_Diagnosis_of_Diabetes_Insipidus_MBBS.pptx' prs=Presentation(); prs.slide_width=Inches(13.333); prs.slide_height=Inches(7.5) blank=prs.slide_layouts[6] # Palette NAVY=RGBColor(12,34,59); BLUE=RGBColor(19,103,168); TEAL=RGBColor(14,145,151); MINT=RGBColor(223,246,243); PALE=RGBColor(243,248,252); INK=RGBColor(31,45,61); MUTED=RGBColor(91,108,124); RED=RGBColor(192,65,66); AMBER=RGBColor(235,153,46); WHITE=RGBColor(255,255,255); LBLUE=RGBColor(218,237,250); GREY=RGBColor(219,228,235) def bg(slide, title, subtitle=None, num=None): b=slide.background.fill; b.solid(); b.fore_color.rgb=WHITE sh=slide.shapes.add_shape(MSO_SHAPE.RECTANGLE,0,0,Inches(13.333),Inches(.22)); sh.fill.solid(); sh.fill.fore_color.rgb=TEAL; sh.line.fill.background() t=slide.shapes.add_textbox(Inches(.55),Inches(.43),Inches(11.8),Inches(.52)); tf=t.text_frame; tf.clear(); p=tf.paragraphs[0]; r=p.add_run();r.text=title;r.font.name='Aptos Display';r.font.size=Pt(27);r.font.bold=True;r.font.color.rgb=NAVY if subtitle: t=slide.shapes.add_textbox(Inches(.57),Inches(.97),Inches(11.9),Inches(.30));tf=t.text_frame;tf.clear();p=tf.paragraphs[0];r=p.add_run();r.text=subtitle;r.font.name='Aptos';r.font.size=Pt(10.5);r.font.color.rgb=MUTED if num: t=slide.shapes.add_textbox(Inches(12.35),Inches(7.06),Inches(.45),Inches(.2));tf=t.text_frame;tf.clear();p=tf.paragraphs[0];p.alignment=PP_ALIGN.RIGHT;r=p.add_run();r.text=str(num);r.font.size=Pt(9);r.font.color.rgb=MUTED line=slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, Inches(.55), Inches(7.0), Inches(12.2), Inches(.015));line.fill.solid();line.fill.fore_color.rgb=GREY;line.line.fill.background() def textbox(slide,x,y,w,h,text,size=17,color=INK,bold=False,align=None,fill=None,margin=.10): if fill is not None: s=slide.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE,Inches(x),Inches(y),Inches(w),Inches(h));s.fill.solid();s.fill.fore_color.rgb=fill;s.line.color.rgb=fill tb=slide.shapes.add_textbox(Inches(x+margin),Inches(y+margin),Inches(w-2*margin),Inches(h-2*margin));tf=tb.text_frame;tf.clear();tf.word_wrap=True;tf.margin_left=tf.margin_right=tf.margin_top=tf.margin_bottom=0 p=tf.paragraphs[0];p.alignment=align or PP_ALIGN.LEFT;r=p.add_run();r.text=text;r.font.name='Aptos';r.font.size=Pt(size);r.font.bold=bold;r.font.color.rgb=color return tb def bullets(slide,x,y,w,h,items,size=15,accent=BLUE): tb=slide.shapes.add_textbox(Inches(x),Inches(y),Inches(w),Inches(h));tf=tb.text_frame;tf.clear();tf.word_wrap=True;tf.margin_left=Inches(.02);tf.margin_right=0;tf.margin_top=0 for i,item in enumerate(items): p=tf.paragraphs[0] if i==0 else tf.add_paragraph();p.text=item;p.level=0;p.font.name='Aptos';p.font.size=Pt(size);p.font.color.rgb=INK;p.space_after=Pt(8);p.bullet=True return tb def card(slide,x,y,w,h,head,body,colour=BLUE): s=slide.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE,Inches(x),Inches(y),Inches(w),Inches(h));s.fill.solid();s.fill.fore_color.rgb=PALE;s.line.color.rgb=GREY bar=slide.shapes.add_shape(MSO_SHAPE.RECTANGLE,Inches(x),Inches(y),Inches(.10),Inches(h));bar.fill.solid();bar.fill.fore_color.rgb=colour;bar.line.fill.background() textbox(slide,x+.25,y+.18,w-.42,.3,head,15,colour,True) textbox(slide,x+.25,y+.58,w-.42,h-.70,body,12.5,INK) def arrow(slide,x1,y1,x2,y2,color=TEAL): l=slide.shapes.add_connector(MSO_CONNECTOR.STRAIGHT,Inches(x1),Inches(y1),Inches(x2),Inches(y2));l.line.color.rgb=color;l.line.width=Pt(2);l.line.end_arrowhead=True def source(slide,text): textbox(slide,.62,6.65,12.0,.22,text,8.2,MUTED) def new(title,subtitle=None): s=prs.slides.add_slide(blank);bg(s,title,subtitle,len(prs.slides));return s # 1 title s=prs.slides.add_slide(blank); s.background.fill.solid();s.background.fill.fore_color.rgb=NAVY for x,y,r,c in [(10.9,.9,.95,TEAL),(11.7,1.6,.36,BLUE),(10.1,1.85,.25,AMBER),(11.1,2.55,.52,RGBColor(49,182,185))]: q=s.shapes.add_shape(MSO_SHAPE.OVAL,Inches(x),Inches(y),Inches(r),Inches(r));q.fill.solid();q.fill.fore_color.rgb=c;q.line.fill.background() textbox(s,.75,.85,8.8,1.5,'Modern Understanding\nand Diagnosis of Diabetes Insipidus',32,WHITE,True) textbox(s,.8,2.65,7.6,.5,'An MBBS teaching presentation | Polyuria-polydipsia syndrome',16,RGBColor(195,223,237)) textbox(s,.8,5.72,6.4,.55,'Focus: physiology, differential diagnosis, water deprivation, and copeptin-based testing',16,WHITE) textbox(s,.8,6.55,5,.25,'Prepared for undergraduate clinical teaching',10,RGBColor(170,204,221)) # 2 learning s=new('Learning objectives','At the end of the session, the learner should be able to:') for i,(h,b,c) in enumerate([('Recognise','Confirm true hypotonic polyuria and identify urgent presentations.',TEAL),('Classify','Differentiate AVP deficiency, AVP resistance, and primary polydipsia.',BLUE),('Test safely','Interpret baseline studies and supervised water deprivation testing.',AMBER),('Use modern tools','Explain the role and limits of copeptin-stimulated testing.',RED)]): x=.7+(i%2)*6.1;y=1.55+(i//2)*2.25;card(s,x,y,5.65,1.8,h,b,c) #3 terminology s=new('Terminology: what has changed?','The disease mechanism is clearer when named by the AVP pathway.') card(s,.75,1.55,3.75,2.05,'AVP deficiency (AVP-D)','Formerly central / cranial DI. Inadequate synthesis or secretion of arginine vasopressin (AVP).',TEAL) card(s,4.80,1.55,3.75,2.05,'AVP resistance (AVP-R)','Formerly nephrogenic DI. Renal collecting duct does not respond adequately to AVP.',BLUE) card(s,8.85,1.55,3.75,2.05,'Primary polydipsia (PP)','Excess intake is primary: psychogenic, dipsogenic or habitual. Suppresses AVP and may wash out medullary gradient.',AMBER) textbox(s,.82,4.25,11.7,.75,'“Diabetes insipidus” remains familiar clinically, but AVP-D and AVP-R describe the underlying defect more precisely.',21,NAVY,True,PP_ALIGN.CENTER,LBULE if False else MINT) source(s,'Terminology aligned with current endocrine literature; Goldman-Cecil Medicine, DI section, lines 2174-2194.') #4 physiology s=new('Normal water homeostasis','The diagnostic question is: Is AVP being released and is the kidney responding?') # flow nodes nodes=[(.7,2.05,2.2,.72,'↑ Plasma osmolality',AMBER),(3.35,2.05,2.3,.72,'Hypothalamic osmoreceptors',TEAL),(6.15,2.05,2.1,.72,'Posterior pituitary\nAVP release',BLUE),(8.7,2.05,2.05,.72,'V2 receptor',TEAL),(11.15,2.05,1.4,.72,'AQP2 insertion',BLUE)] for x,y,w,h,t,c in nodes: textbox(s,x,y,w,h,t,13,WHITE,True,PP_ALIGN.CENTER,c) for i in range(len(nodes)-1): arrow(s,nodes[i][0]+nodes[i][2],2.41,nodes[i+1][0],2.41) textbox(s,4.7,4.05,4.0,.75,'Collecting duct water reabsorption\n→ concentrated urine → thirst relieved',18,NAVY,True,PP_ALIGN.CENTER,MINT) arrow(s,11.85,2.8,7.2,4.0) textbox(s,.78,5.25,11.6,.65,'Failure at the AVP source produces AVP-D; failure at the V2-AQP2 effector pathway produces AVP-R.',18,INK,False,PP_ALIGN.CENTER) source(s,'Goldman-Cecil Medicine, DI section, lines 2190-2194; Tietz Textbook of Laboratory Medicine, p. 1895.') #5 phenotypes s=new('Mechanistic classification and common causes') card(s,.65,1.42,3.9,4.65,'AVP deficiency (central DI)','• Post-pituitary surgery, head trauma\n• Sellar/suprasellar tumour, metastasis\n• Autoimmune/inflammatory: hypophysitis, sarcoidosis, LCH, TB\n• Infiltrative disease\n• Genetic or idiopathic\n\nMay be complete or partial.',TEAL) card(s,4.72,1.42,3.9,4.65,'AVP resistance (nephrogenic DI)','• Drugs: especially lithium\n• Hypercalcaemia, hypokalaemia\n• CKD / obstructive uropathy\n• Congenital: AVPR2, AQP2\n• Pregnancy-related AVP degradation is a separate acquired mechanism\n\nAVP secretion is appropriate but ineffective.',BLUE) card(s,8.78,1.42,3.9,4.65,'Primary polydipsia','• Psychiatric illness / compulsive drinking\n• Dipsogenic thirst dysregulation\n• Habitual excess water intake\n• Iatrogenic advice to overdrink\n\nChronic intake can lower Uosm response by medullary washout.',AMBER) source(s,'Goldman-Cecil Medicine, DI section, lines 2192-2194; Tietz Textbook of Laboratory Medicine, p. 1895.') #6 initial s=new('Step 1: establish true hypotonic polyuria','Frequency alone is not polyuria. First rule out osmotic solute diuresis.') card(s,.7,1.45,3.85,2.55,'1. Quantify urine','Adult clue: urine output >3 L/day.\nTextbook DI pattern: ≥2.5 L/day of dilute urine.\n\nAsk about nocturia, thirst, fluid intake, onset and drugs.',TEAL) card(s,4.75,1.45,3.85,2.55,'2. Confirm hypotonicity','Urine osmolality <300 mOsm/kg suggests water diuresis.\n\nHigh Uosm suggests solute diuresis instead.',BLUE) card(s,8.8,1.45,3.85,2.55,'3. Exclude mimics','Glucose / glycosuria, urea load, diuretics, mannitol, hypercalcaemia, hypokalaemia, renal dysfunction, obstruction.',AMBER) textbox(s,.85,4.65,11.4,.72,'A patient with intact thirst and access to water may have normal serum sodium despite clinically important DI.',18,NAVY,True,PP_ALIGN.CENTER,MINT) source(s,'Henry’s Clinical Diagnosis and Management by Laboratory Methods, DI section, lines 735-739; Goldman-Cecil Medicine, lines 2175-2177.') #7 first labs s=new('Baseline assessment: interpret plasma and urine together') textbox(s,.75,1.35,12.0,.42,'Obtain paired serum sodium, plasma osmolality, urine osmolality, urine specific gravity, glucose, renal function, calcium and potassium.',17,NAVY,True) # table headers=['Pattern','Serum Na / Posm','Urine osmolality','Likely interpretation']; rows=[('Hypernatraemia / high Posm','High','Inappropriately low','DI or impaired access to water'),('Normal Na / Posm','Often normal','Low','DI possible if thirst intact; PP also possible'),('Low or low-normal Na','Low','Low','Primary polydipsia more likely'),('High urine osmolality','Variable','>300','Think solute diuresis / other concentrating issue')] x=[.75,3.5,6.1,8.55];w=[2.65,2.45,2.35,4.0] for j,h in enumerate(headers):textbox(s,x[j],2.05,w[j],.52,h,13,WHITE,True,PP_ALIGN.CENTER,BLUE) for i,row in enumerate(rows): y=2.58+i*.75 for j,val in enumerate(row): textbox(s,x[j],y,w[j],.67,val,12.2,INK,False,PP_ALIGN.CENTER,PALE if i%2==0 else WHITE) textbox(s,.85,5.95,11.65,.45,'Red flag: altered consciousness, severe dehydration or hypernatraemia needs immediate resuscitation and monitored correction, not a diagnostic deprivation test.',15,RED,True,PP_ALIGN.CENTER) source(s,'Henry’s Clinical Diagnosis and Management by Laboratory Methods, DI section, lines 737-739.') #8 algorithm s=new('Diagnostic pathway for polyuria-polydipsia','Use physiology before imaging.') steps=[('Polyuria?','Measure 24-h urine volume',TEAL),('Hypotonic?','Uosm <300 mOsm/kg',BLUE),('Urgent?','Na/Posm high or dehydration?',RED),('Differentiate','Copeptin-stimulated test if available\nor supervised water deprivation',AMBER),('Establish cause','MRI + targeted aetiology work-up',TEAL)] for i,(h,b,c) in enumerate(steps): x=.45+i*2.57;textbox(s,x,2.05,2.2,1.42,h+'\n'+b,13,WHITE,True,PP_ALIGN.CENTER,c) if i<4: arrow(s,x+2.22,2.76,x+2.53,2.76) textbox(s,1.05,4.65,11.25,.7,'If Uosm is already high (>~800 mOsm/kg), clinically significant DI is unlikely. Intermediate values require dynamic testing in context.',19,NAVY,True,PP_ALIGN.CENTER,MINT) source(s,'Teaching algorithm synthesised from Henry’s, DI section, lines 737-739; current copeptin literature.') #9 WDT s=new('Supervised water deprivation test','Classical test: useful, but physically demanding and less accurate in partial DI versus PP.') card(s,.65,1.35,3.85,4.65,'Before starting','• Avoid if hypernatraemic, significantly volume depleted or unable to cooperate\n• Baseline: weight, BP/pulse, plasma Na/Posm, Uvol and Uosm\n• Start in morning for severe polyuria, under supervision.',TEAL) card(s,4.73,1.35,3.85,4.65,'During deprivation','• No oral fluid\n• Measure Uvol and Uosm hourly\n• Monitor weight, pulse, BP and plasma osmolality / sodium\n• Stop for excessive weight loss, hypotension, symptoms, rising Na/Posm or adequate Uosm plateau.',BLUE) card(s,8.82,1.35,3.85,4.65,'After endpoint','Give desmopressin and re-measure Uosm.\n\nAssess: Can urine concentrate with dehydration? Does it increase further after desmopressin?',AMBER) source(s,'Henry’s Clinical Diagnosis and Management by Laboratory Methods, Table 25.2, lines 743-754. Use local institutional stopping rules.') #10 interpretation WDT s=new('Water deprivation + desmopressin: pattern recognition','Interpretation is probabilistic, especially in partial disorders.') headers=['Finding','Primary polydipsia','AVP deficiency','AVP resistance'] rows=[('During dehydration','Uosm rises, often >600','Uosm remains low or submaximal','Uosm remains low'),('After desmopressin','Little additional rise','Marked rise, often >50% in complete AVP-D','Minimal rise, often <50%'),('AVP/copeptin physiology','Suppressed at baseline','Inappropriately low','Appropriately high')] x=[.55,3.25,6.38,9.5];w=[2.55,2.95,2.95,3.1] for j,h in enumerate(headers):textbox(s,x[j],1.55,w[j],.55,h,13,WHITE,True,PP_ALIGN.CENTER,[NAVY,AMBER,TEAL,BLUE][j]) for i,row in enumerate(rows): y=2.15+i*1.05 for j,v in enumerate(row): textbox(s,x[j],y,w[j],.95,v,12.6,INK,False,PP_ALIGN.CENTER,PALE if i%2==0 else WHITE) textbox(s,.82,5.65,11.75,.48,'Pitfall: chronic primary polydipsia can blunt concentrating ability (medullary “washout”) and mimic partial AVP-D.',16,RED,True,PP_ALIGN.CENTER) source(s,'Henry’s Clinical Diagnosis and Management by Laboratory Methods, DI section, lines 737-739; interpretation ranges are teaching approximations.') #11 Copeptin s=new('Why copeptin changed the diagnostic approach','Copeptin is the C-terminal part of pre-pro-AVP, released equimolarly with AVP but easier to measure reliably.') textbox(s,.8,1.45,3.2,3.85,'AVP is difficult to assay\n\n• short half-life\n• pre-analytical instability\n• low circulating concentration\n\nCopeptin is a practical surrogate for endogenous AVP secretion.',18,NAVY,False,PP_ALIGN.CENTER,MINT) textbox(s,5.0,1.4,2.7,.65,'pre-pro-AVP',18,WHITE,True,PP_ALIGN.CENTER,TEAL) arrow(s,6.35,2.12,6.35,3.0) textbox(s,4.3,3.1,4.1,.8,'AVP + neurophysin II + copeptin\nreleased in equimolar amounts',16,WHITE,True,PP_ALIGN.CENTER,BLUE) arrow(s,6.35,3.92,6.35,4.75) textbox(s,4.6,4.85,3.5,.55,'Measure copeptin in plasma',17,NAVY,True,PP_ALIGN.CENTER,MINT) textbox(s,8.75,1.75,3.55,2.65,'Clinical value\n\nBasal copeptin is especially useful for AVP-R. Dynamic stimulation improves separation of AVP-D from primary polydipsia.',16,INK,False,PP_ALIGN.CENTER,PALE) source(s,'Brenner and Rector’s The Kidney, Interpretation section, lines 630-636; Refardt et al., N Engl J Med 2023.') #12 copeptin protocol s=new('Copeptin-based testing: practical interpretation','Dynamic protocols require specialist supervision and local laboratory validation.') card(s,.65,1.35,3.85,4.7,'Basal copeptin','Very high basal copeptin, typically >21.4 pmol/L, strongly supports AVP resistance (nephrogenic DI).\n\nA low basal value alone does not reliably separate AVP-D from primary polydipsia.',BLUE) card(s,4.74,1.35,3.85,4.7,'Hypertonic saline stimulation','Raise plasma sodium under close monitoring, then measure copeptin.\n\nA stimulated value >4.9 pmol/L favours primary polydipsia; ≤4.9 pmol/L favours AVP deficiency in adult validation studies.',TEAL) card(s,8.83,1.35,3.85,4.7,'Arginine stimulation','Less burdensome alternative in selected settings.\n\nAt 60 min, copeptin ≥3.8 pmol/L has been proposed to exclude AVP-D. Accuracy is lower than hypertonic saline in many comparisons.',AMBER) source(s,'Refardt et al., N Engl J Med 2023; adult thresholds. Pediatric evidence and assay availability are more limited. Do not apply without protocol expertise.') #13 comparison s=new('Dynamic test comparison','Choose the test that is safe, available, and interpretable for the patient.') headers=['Feature','Water deprivation','Hypertonic saline + copeptin','Arginine + copeptin'] rows=[('What it tests','Physiological concentration response','Osmotic AVP/copeptin response','Non-osmotic copeptin stimulation'),('Strength','Widely known; no copeptin assay','Best adult diagnostic accuracy for AVP-D vs PP','Simpler and often better tolerated'),('Limitations','Long; overlaps in partial DI / PP','Needs Na monitoring and experienced unit','Thresholds and validation less mature'),('Best setting','Where copeptin unavailable','Specialist endocrine centre','Selected specialist pathways')] x=[.5,3.1,6.35,9.6];w=[2.45,3.0,3.0,3.15] for j,h in enumerate(headers):textbox(s,x[j],1.35,w[j],.55,h,12.5,WHITE,True,PP_ALIGN.CENTER,[NAVY,AMBER,TEAL,BLUE][j]) for i,row in enumerate(rows): y=1.95+i*.95 for j,v in enumerate(row):textbox(s,x[j],y,w[j],.83,v,11.2,INK,False,PP_ALIGN.CENTER,PALE if i%2==0 else WHITE) source(s,'Refardt et al., N Engl J Med 2023; Atila et al., Eur J Endocrinol 2022 (PMID 35521789).') #14 imaging s=new('After physiology: identify the cause','A diagnosis of AVP-D is not complete until the hypothalamic-pituitary region is assessed.') card(s,.7,1.45,3.65,3.9,'MRI hypothalamus-pituitary','Look for:\n• pituitary stalk thickening\n• suprasellar / sellar mass\n• infiltrative or inflammatory lesions\n• post-operative / traumatic change\n• posterior pituitary “bright spot” may be absent in AVP-D but is not diagnostic alone.',TEAL) card(s,4.83,1.45,3.65,3.9,'Targeted aetiology tests','Guided by history and MRI:\n• anterior pituitary function\n• tumour markers / CSF only when indicated\n• inflammatory / infectious work-up\n• genetic testing in familial / early onset disease.',BLUE) card(s,8.95,1.45,3.65,3.9,'History matters','Ask specifically about:\n• neurosurgery or trauma\n• pregnancy\n• lithium and other drugs\n• systemic disease, rash, bone pain\n• family history\n• symptoms of anterior pituitary dysfunction.',AMBER) source(s,'Goldman-Cecil Medicine, Etiologic Diagnosis section, lines 2302-2308; DI section, lines 2192-2194.') #15 special situations s=new('Special diagnostic situations','Avoid one-size-fits-all interpretation.') card(s,.68,1.35,3.85,4.7,'Post-pituitary surgery','Monitor urine output, Na and urine concentration serially. AVP-D may be transient, delayed, or part of a triphasic response. Recent systematic reviews address postoperative prediction using copeptin.',TEAL) card(s,4.75,1.35,3.85,4.7,'Pregnancy','Placental vasopressinase can increase AVP degradation. Pregnancy resets osmoregulation, so clinical and biochemical interpretation requires obstetric-endocrine input.',AMBER) card(s,8.82,1.35,3.85,4.7,'Children / adipsia','Symptoms may be nonspecific. Risk of severe hypernatraemia is higher with impaired thirst or lack of access to water. Pediatric copeptin cutoffs remain less firmly validated.',RED) source(s,'Henry’s Clinical Diagnosis and Management by Laboratory Methods, lines 731-739; PubMed PMIDs 39393633 and 40440645.') #16 case s=new('Clinical application: a diagnostic vignette','A 28-year-old develops marked thirst, nocturia and 6 L/day urine output after transsphenoidal surgery.') card(s,.75,1.35,3.35,4.65,'Data','• Serum Na 151 mmol/L\n• Plasma osmolality high\n• Uosm 110 mOsm/kg\n• Glucose normal\n• Volume depleted\n\nWhat does this pattern mean?',RED) card(s,4.95,1.35,3.35,4.65,'Reasoning','1. True hypotonic polyuria\n2. Hypertonic plasma with inappropriately dilute urine\n3. Water deprivation is unsafe here\n4. Recent pituitary surgery raises pre-test probability of AVP-D',TEAL) card(s,9.15,1.35,3.35,4.65,'Next steps','• Stabilise and replace water deficit carefully\n• Monitor Na, UO and Uosm\n• Obtain endocrine / surgical review\n• Desmopressin response supports AVP-D in the clinical context\n• Continue surveillance for evolving course',BLUE) source(s,'Case is illustrative. Acute hypernatraemia/dehydration warrants treatment and monitoring rather than diagnostic water deprivation.') #17 takeaways s=new('Take-home messages','An exam-ready approach') for i,t in enumerate(['1. Confirm polyuria and hypotonic urine before labelling DI.','2. Interpret Uosm together with serum sodium and plasma osmolality.','3. Exclude solute diuresis, electrolyte disorders and drugs early.','4. Water deprivation is classical but imperfect in partial DI and PP.','5. Copeptin makes AVP physiology measurable: high basal levels suggest AVP-R; stimulated testing distinguishes AVP-D from PP.','6. Once AVP-D is established, investigate the hypothalamic-pituitary cause.']): y=1.3+i*.78;textbox(s,.85,y,11.7,.58,t,15.2,NAVY,i in [0,4],None,MINT if i in [0,4] else PALE) #18 references s=new('Selected references','Core sources used in this MBBS teaching deck') refs=["Goldman-Cecil Medicine, 2-volume set. Diabetes Insipidus. Textbook library lines 2174-2308.","Henry’s Clinical Diagnosis and Management by Laboratory Methods. Diabetes Insipidus and water deprivation test. Textbook library lines 735-754.","Tietz Textbook of Laboratory Medicine, 7th ed. Diabetes Insipidus. p. 1895.","Refardt J, et al. Arginine- or hypertonic saline-stimulated copeptin to diagnose AVP deficiency. N Engl J Med. 2023;389:1877-1887.","Atila C, et al. Glucagon-stimulated copeptin measurements in differential diagnosis of DI. Eur J Endocrinol. 2022;187:65-74. PMID: 35521789.","Sharifi A, et al. Early postoperative copeptin after pituitary surgery: systematic review/meta-analysis. World Neurosurg. 2025. PMID: 39393633."] bullets(s,.85,1.45,11.6,4.8,refs,14) textbox(s,.85,6.2,11.6,.45,'Educational material only. Follow local protocols and specialist advice for all dynamic testing and hypernatraemia management.',12,RED,True,PP_ALIGN.CENTER) prs.save(OUT) print(OUT) PY python /tmp/workspace/diabetes-insipidus-mbbs/src/create_di_ppt.py python - <<'PY' from pptx import Presentation p='/tmp/workspace/diabetes-insipidus-mbbs/output/Modern_Understanding_and_Diagnosis_of_Diabetes_Insipidus_MBBS.pptx' prs=Presentation(p) print('slides',len(prs.slides)) for i,s in enumerate(prs.slides,1): texts=[sh.text for sh in s.shapes if getattr(sh,'has_text_frame',False) and sh.text.strip()] print(i, texts[0][:70] if texts else 'EMPTY') PY

Running Command

python - <<'PY' from pptx import Presentation from pathlib import Path p=Path('/tmp/workspace/diabetes-insipidus-mbbs/output/Modern_Understanding_and_Diagnosis_of_Diabetes_Insipidus_MBBS.pptx') prs=Presentation(str(p)) errors=[] for n,slide in enumerate(prs.slides,1): for sh in slide.shapes: if sh.left < 0 or sh.top < 0 or sh.left+sh.width > prs.slide_width or sh.top+sh.height > prs.slide_height: errors.append((n,sh.left,sh.top,sh.width,sh.height)) print('file_bytes',p.stat().st_size) print('slides',len(prs.slides)) print('out_of_bounds',errors) print('text_shapes',sum(1 for s in prs.slides for sh in s.shapes if getattr(sh,'has_text_frame',False))) PY

Created an 18-slide detailed MBBS PowerPoint on modern understanding and diagnosis of diabetes insipidus.
It covers:
  • AVP-D, AVP-R, and primary polydipsia terminology
  • Physiology of AVP and collecting-duct water handling
  • Causes and classification
  • Stepwise evaluation of hypotonic polyuria
  • Baseline interpretation of serum sodium, plasma osmolality, and urine osmolality
  • Water deprivation test and desmopressin interpretation
  • Copeptin-based testing, including hypertonic saline and arginine stimulation
  • MRI and etiologic evaluation
  • Postoperative, pregnancy, pediatric, and adipsic situations
  • Clinical vignette, take-home messages, and cited references

Modern Understanding and Diagnosis of Diabetes Insipidus MBBS

Presentation · PPTX

It should be student understanding not AI generated

Reading File
Reading File
Searching the Web

diabetes insipidus diagnosis student teaching copeptin water deprivation 2023 review

Browsing Directory

~/

Reading File
Running Command

python - <<'PY' from pptx import Presentation p='/tmp/workspace/diabetes-insipidus-mbbs/output/Modern_Understanding_and_Diagnosis_of_Diabetes_Insipidus_MBBS.pptx' prs=Presentation(p) print('slides:',len(prs.slides)) for i,slide in enumerate(prs.slides,1): txt=' | '.join(sh.text.replace('\n',' / ') for sh in slide.shapes if getattr(sh,'has_text_frame',False) and sh.text.strip()) print(i,txt[:220]) PY

Browsing Directory

~/diabetes-insipidus-mbbs

Running Command

cat > /tmp/workspace/diabetes-insipidus-mbbs/src/create_student_di_ppt.py <<'PY' from pptx import Presentation from pptx.util import Inches, Pt from pptx.enum.shapes import MSO_SHAPE, MSO_CONNECTOR from pptx.enum.text import PP_ALIGN from pptx.dml.color import RGBColor from pathlib import Path OUT=Path('/tmp/workspace/diabetes-insipidus-mbbs/output/Diabetes_Insipidus_Student_Friendly_MBBS.pptx') prs=Presentation(); prs.slide_width=Inches(13.333); prs.slide_height=Inches(7.5) blank=prs.slide_layouts[6] NAVY=RGBColor(26,47,69); TEAL=RGBColor(34,135,142); SKY=RGBColor(219,242,246); PALE=RGBColor(247,250,251); INK=RGBColor(35,48,58); MUTED=RGBColor(94,108,118); ORANGE=RGBColor(229,139,59); RED=RGBColor(190,75,70); BLUE=RGBColor(54,112,174); WHITE=RGBColor(255,255,255); LINE=RGBColor(207,221,225) def rect(s,x,y,w,h,fill,round=True,line=None): sh=s.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE if round else MSO_SHAPE.RECTANGLE, Inches(x), Inches(y), Inches(w), Inches(h));sh.fill.solid();sh.fill.fore_color.rgb=fill;sh.line.color.rgb=line if line else fill;return sh def txt(s,x,y,w,h,text,size=16,color=INK,bold=False,align=PP_ALIGN.LEFT): b=s.shapes.add_textbox(Inches(x),Inches(y), Inches(w), Inches(h));tf=b.text_frame;tf.clear();tf.word_wrap=True;tf.margin_left=tf.margin_right=tf.margin_top=tf.margin_bottom=0 p=tf.paragraphs[0];p.alignment=align;r=p.add_run();r.text=text;r.font.name='Aptos';r.font.size=Pt(size);r.font.bold=bold;r.font.color.rgb=color return b def bulletbox(s,x,y,w,h,items,size=16): b=s.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h));tf=b.text_frame;tf.clear();tf.word_wrap=True;tf.margin_left=Inches(.05);tf.margin_right=Inches(.05);tf.margin_top=Inches(.02) for n,item in enumerate(items): p=tf.paragraphs[0] if n==0 else tf.add_paragraph();p.text=item;p.font.name='Aptos';p.font.size=Pt(size);p.font.color.rgb=INK;p.space_after=Pt(9);p.bullet=True return b def base(title,kicker='',n=None): s=prs.slides.add_slide(blank);s.background.fill.solid();s.background.fill.fore_color.rgb=WHITE rect(s,0,0,13.333,.18,TEAL,False) txt(s,.62,.38,11.7,.42,title,27,NAVY,True) if kicker: txt(s,.64,.89,11.6,.26,kicker,11,MUTED) rect(s,.62,6.98,12.1,.015,LINE,False) if n: txt(s,12.38,7.05,.35,.2,str(n),9,MUTED,False,PP_ALIGN.RIGHT) return s def card(s,x,y,w,h,head,items,color=TEAL,fs=15): rect(s,x,y,w,h,PALE,True,LINE); rect(s,x,y,w,.42,color,True,color) txt(s,x+.17,y+.09,w-.34,.22,head,14,WHITE,True,PP_ALIGN.CENTER) bulletbox(s,x+.18,y+.62,w-.34,h-.78,items,fs) def arr(s,x1,y1,x2,y2,c=TEAL): ln=s.shapes.add_connector(MSO_CONNECTOR.STRAIGHT, Inches(x1), Inches(y1), Inches(x2), Inches(y2));ln.line.color.rgb=c;ln.line.width=Pt(2);ln.line.end_arrowhead=True def note(s,t):txt(s,.68,6.64,11.9,.18,t,8.5,MUTED) # 1 s=prs.slides.add_slide(blank);s.background.fill.solid();s.background.fill.fore_color.rgb=NAVY for x,y,d,c in [(10.55,.88,1.15,TEAL),(11.62,1.72,.44,ORANGE),(10.1,2.05,.31,SKY),(11.1,2.64,.7,RGBColor(59,164,168))]:rect(s,x,y,d,d,c,True,c) txt(s,.8,1.0,8.7,1.1,'Diabetes Insipidus',36,WHITE,True) txt(s,.83,2.24,7.5,.45,'A simple MBBS student presentation',20,RGBColor(198,231,232)) txt(s,.84,3.2,7.25,.7,'Understanding polyuria, diagnosis and the modern role of copeptin',17,WHITE) txt(s,.85,6.5,5.5,.25,'Prepared in clear, exam-oriented language',10,RGBColor(174,209,213)) #2 s=base('First, do not confuse DI with diabetes mellitus','The word “diabetes” is common, but the problem is very different.',2) card(s,.78,1.5,5.65,3.9,'Diabetes insipidus', ['Problem with water balance, not blood sugar.','Patient passes a large amount of very dilute urine.','Main symptoms: polyuria, thirst and nocturia.','Urine has no glucose unless another disease is also present.'],TEAL,16) card(s,6.9,1.5,5.65,3.9,'Diabetes mellitus', ['Problem is high blood glucose.','Glucose spills into urine and pulls water with it.','Urine is not necessarily very dilute.','Think of diabetes mellitus when glucose is high or glycosuria is present.'],ORANGE,16) txt(s,.9,5.8,11.4,.45,'Easy memory: DI = “water problem”; DM = “sugar problem”.',20,NAVY,True,PP_ALIGN.CENTER) #3 s=base('What normally stops us from losing water?','One small hormone has a big job.',3) labels=[('Body water falls\n(or osmolality rises)',ORANGE),('Hypothalamus senses it',TEAL),('Posterior pituitary releases ADH / AVP',BLUE),('Kidney keeps water\n→ urine becomes concentrated',TEAL)] for i,(lab,c) in enumerate(labels): x=.6+i*3.18;rect(s,x,2.15,2.55,1.1,c,True,c);txt(s,x+.13,2.44,2.29,.52,lab,14,WHITE,True,PP_ALIGN.CENTER) if i<3: arr(s,x+2.58,2.7,x+3.12,2.7) txt(s,1.0,4.35,11.3,.65,'In DI, either the body does not make/release enough ADH, or the kidney does not respond to it.',22,NAVY,True,PP_ALIGN.CENTER) txt(s,.98,5.55,11.35,.45,'ADH = antidiuretic hormone. AVP = arginine vasopressin. They refer to the same hormone in this context.',14,MUTED,False,PP_ALIGN.CENTER) #4 s=base('The 3 main conditions to separate','This is the heart of the diagnosis.',4) card(s,.66,1.4,3.86,4.6,'1. Central DI', ['Not enough ADH is released.','Causes: pituitary surgery, head injury, tumour, inflammation or idiopathic.','Modern name: AVP deficiency.','Desmopressin usually works.'],TEAL,15) card(s,4.74,1.4,3.86,4.6,'2. Nephrogenic DI', ['ADH is present but kidney does not respond.','Causes: lithium, hypercalcaemia, hypokalaemia, kidney disease, genetic disorders.','Modern name: AVP resistance.','Desmopressin has little effect.'],BLUE,15) card(s,8.82,1.4,3.86,4.6,'3. Primary polydipsia', ['Person drinks too much water first.','ADH becomes suppressed normally.','Can be psychogenic or due to altered thirst.','May look like partial DI.'],ORANGE,15) note(s,'Central DI = hormone problem | Nephrogenic DI = kidney response problem | Primary polydipsia = drinking problem') #5 s=base('When should you suspect DI?','Typical symptoms are simple, but diagnosis needs paired blood and urine results.',5) card(s,.75,1.42,3.65,4.65,'History clues', ['Very large urine volume, day and night','Extreme thirst, often for cold water','Nocturia and disturbed sleep','Recent head injury or pituitary surgery','Lithium use','Family history or childhood onset'],TEAL,16) card(s,4.84,1.42,3.65,4.65,'Examination clues', ['Dry mouth and dehydration','Postural hypotension / tachycardia','Weight loss','Altered sensorium if severe hypernatraemia','Look for signs of pituitary disease'],ORANGE,16) card(s,8.93,1.42,3.65,4.65,'Basic tests', ['24-hour urine volume','Urine osmolality / specific gravity','Serum sodium and plasma osmolality','Blood glucose','Urea, creatinine, calcium and potassium'],BLUE,16) #6 s=base('Step 1: prove that this is hypotonic polyuria','Do not diagnose DI just because a patient urinates frequently.',6) rect(s,.75,1.38,11.85,.75,SKY,True,SKY);txt(s,.98,1.62,11.35,.26,'Polyuria means a LARGE VOLUME of urine. Frequency with small volumes is different.',18,NAVY,True,PP_ALIGN.CENTER) card(s,.8,2.65,3.7,2.55,'Measure volume', ['Adults: usually >3 L/day suggests polyuria.','A 24-hour urine collection is helpful.'],TEAL,16) card(s,4.83,2.65,3.7,2.55,'Check urine osmolality', ['DI usually causes hypotonic urine.','Uosm <300 mOsm/kg strongly supports water diuresis.'],BLUE,16) card(s,8.86,2.65,3.7,2.55,'Rule out solute diuresis', ['High glucose, mannitol, diuretics, excess urea can cause high-volume urine too.','These are not DI.'],ORANGE,16) #7 s=base('Step 2: read sodium and urine osmolality together','Never interpret urine osmolality alone.',7) headers=['Result pattern','What it suggests']; data=[('High Na / high plasma osmolality + very dilute urine','DI is likely. The body needs water but urine still remains dilute.'),('Normal Na + dilute urine','Could be DI with intact thirst OR primary polydipsia. Needs further testing.'),('Low or low-normal Na + dilute urine','Primary polydipsia is more likely.'),('Concentrated urine','Significant DI is unlikely. Think of another cause.')] for x,w,t in [(.75,4.4,headers[0]),(5.17,7.4,headers[1])]:rect(s,x,1.45,w,.52,NAVY,True,NAVY);txt(s,x+.1,1.58,w-.2,.2,t,13,WHITE,True,PP_ALIGN.CENTER) for i,(a,b) in enumerate(data): y=2.0+i*.91;fill=PALE if i%2==0 else WHITE rect(s,.75,y,4.4,.76,fill,True,LINE);rect(s,5.17,y,7.4,.76,fill,True,LINE);txt(s,.91,y+.16,4.08,.43,a,14,INK,True,PP_ALIGN.CENTER);txt(s,5.37,y+.13,7.0,.47,b,13,INK,False,PP_ALIGN.CENTER) rect(s,.95,5.93,11.4,.48,RGBColor(254,239,235),True,RGBColor(254,239,235));txt(s,1.1,6.06,11.1,.2,'Emergency clue: hypernatraemia with dehydration must be treated first. Do NOT start a water deprivation test.',14,RED,True,PP_ALIGN.CENTER) #8 s=base('Water deprivation test: the basic idea','It must be supervised. It is not a bedside self-test.',8) txt(s,.72,1.34,11.8,.35,'Question asked: When water is withheld, can the body make concentrated urine?',20,NAVY,True,PP_ALIGN.CENTER) steps=[('1. Baseline','Weight, BP, pulse, Na, plasma osmolality, Uosm',TEAL),('2. No fluids','Monitor urine and blood values regularly',ORANGE),('3. Stop safely','Stop for symptoms, dehydration, rising Na or enough weight loss',RED),('4. Give desmopressin','Measure whether urine osmolality rises further',BLUE)] for i,(h,b,c) in enumerate(steps): x=.55+i*3.18;rect(s,x,2.35,2.72,1.48,c,True,c);txt(s,x+.14,2.58,2.44,.25,h,15,WHITE,True,PP_ALIGN.CENTER);txt(s,x+.15,2.98,2.42,.55,b,12.5,WHITE,False,PP_ALIGN.CENTER) if i<3:arr(s,x+2.76,3.09,x+3.12,3.09) rect(s,.92,4.8,11.45,.75,SKY,True,SKY);txt(s,1.08,5.04,11.12,.3,'Key limitation: chronic primary polydipsia may reduce the kidney’s concentrating ability and imitate partial DI.',16,NAVY,True,PP_ALIGN.CENTER) note(s,'Use hospital protocol and specialist supervision. Avoid in significant hypernatraemia or dehydration.') #9 s=base('How to interpret the water deprivation test','Think of the response before and after desmopressin.',9) card(s,.72,1.35,3.8,4.7,'Primary polydipsia', ['During water deprivation: urine becomes more concentrated.','After desmopressin: little further change.','Reason: ADH system and kidney are basically normal.'],ORANGE,16) card(s,4.76,1.35,3.8,4.7,'Central DI', ['During water deprivation: urine stays dilute.','After desmopressin: Uosm rises clearly.','Reason: kidney can respond once ADH-like drug is given.'],TEAL,16) card(s,8.8,1.35,3.8,4.7,'Nephrogenic DI', ['During water deprivation: urine stays dilute.','After desmopressin: little or no rise in Uosm.','Reason: kidney does not respond to ADH.'],BLUE,16) #10 s=base('Modern test: copeptin','Copeptin helps us estimate what the body is doing with ADH.',10) rect(s,.72,1.38,3.46,3.95,SKY,True,SKY);txt(s,1.0,1.75,2.9,.35,'Why not measure ADH directly?',20,NAVY,True,PP_ALIGN.CENTER);bulletbox(s,1.0,2.45,2.9,2.25,['ADH is unstable in blood.','It is difficult to measure accurately.','Copeptin is released along with ADH and is easier to measure.'],16) rect(s,5.2,1.8,2.75,.62,TEAL,True,TEAL);txt(s,5.38,1.99,2.4,.2,'ADH production',16,WHITE,True,PP_ALIGN.CENTER);arr(s,6.57,2.46,6.57,3.12);rect(s,4.88,3.15,3.38,.68,BLUE,True,BLUE);txt(s,5.05,3.39,3.03,.2,'Copeptin released with ADH',15,WHITE,True,PP_ALIGN.CENTER);arr(s,6.57,3.87,6.57,4.55);rect(s,4.98,4.62,3.18,.55,TEAL,True,TEAL);txt(s,5.12,4.79,2.9,.2,'Copeptin measured',15,WHITE,True,PP_ALIGN.CENTER) rect(s,9.15,1.38,3.46,3.95,PALE,True,LINE);txt(s,9.43,1.75,2.9,.35,'In simple words',20,NAVY,True,PP_ALIGN.CENTER);bulletbox(s,9.43,2.45,2.88,2.25,['Very high copeptin suggests nephrogenic DI.','Low response after stimulation suggests central DI.','A normal rise after stimulation favours primary polydipsia.'],16) note(s,'Copeptin testing is typically available in specialist endocrine centres.') #11 s=base('Copeptin tests: what students should remember','You do not need to memorise every protocol. Understand the logic.',11) card(s,.75,1.38,3.65,4.8,'Basal copeptin', ['Very high level (about >21.4 pmol/L) strongly suggests nephrogenic DI.','Useful because the body is making ADH, but the kidney is not responding.'],BLUE,16) card(s,4.84,1.38,3.65,4.8,'Hypertonic saline + copeptin', ['Sodium is raised safely under close monitoring.','If copeptin stays low, central DI is likely.','If copeptin rises well, primary polydipsia is more likely.'],TEAL,16) card(s,8.93,1.38,3.65,4.8,'Arginine + copeptin', ['A simpler stimulation option in some hospitals.','Can help separate central DI from primary polydipsia.','Availability and local protocol decide which test is used.'],ORANGE,16) note(s,'Thresholds vary by assay and protocol. Learn the concept first; use local endocrine guidance in practice.') #12 s=base('After confirming central DI: find the cause','Diagnosis is not finished when you label it “central DI”.',12) card(s,.8,1.38,3.65,4.7,'MRI pituitary / hypothalamus', ['Look for a mass or stalk thickening.','Look for changes after surgery or trauma.','Assess posterior pituitary appearance.'],TEAL,16) card(s,4.84,1.38,3.65,4.7,'Check other pituitary hormones', ['Cortisol, thyroid axis, gonadal axis and prolactin may also be affected.','Symptoms of anterior pituitary failure are important clues.'],BLUE,16) card(s,8.88,1.38,3.65,4.7,'Targeted work-up', ['Ask about TB, sarcoidosis, histiocytosis, autoimmune disease and cancer.','Consider genetic causes when childhood onset or family history is present.'],ORANGE,16) #13 s=base('One clinical example','Use the pattern, not just one test result.',13) rect(s,.76,1.35,3.45,4.85,PALE,True,LINE);txt(s,1.0,1.65,2.95,.3,'Case',20,NAVY,True,PP_ALIGN.CENTER);bulletbox(s,1.03,2.2,2.88,3.35,['A 28-year-old has pituitary surgery.','Now passes 6 L urine/day and feels very thirsty.','Na = 151 mmol/L.','Plasma osmolality is high.','Uosm = 110 mOsm/kg.'],16) arr(s,4.42,3.5,5.28,3.5) rect(s,5.35,1.35,3.45,4.85,SKY,True,SKY);txt(s,5.62,1.65,2.92,.3,'Think',20,NAVY,True,PP_ALIGN.CENTER);bulletbox(s,5.62,2.2,2.9,3.3,['True hypotonic polyuria.','Body is short of water: Na and plasma osmolality are high.','Urine is inappropriately dilute.','Recent pituitary surgery supports central DI.'],16) arr(s,8.98,3.5,9.85,3.5) rect(s,9.9,1.35,2.7,4.85,RGBColor(237,249,240),True,RGBColor(237,249,240));txt(s,10.14,1.65,2.22,.3,'Next step',20,NAVY,True,PP_ALIGN.CENTER);bulletbox(s,10.15,2.2,2.2,3.25,['Treat dehydration.','Monitor sodium carefully.','Do not dehydrate further for testing.','Discuss desmopressin and endocrine review.'],15) #14 s=base('Exam summary: 6 lines to remember','Keep this as your final revision slide.',14) summary=['1. DI = large volume of dilute urine because ADH is absent or not working.','2. First prove polyuria, then prove that urine is hypotonic.','3. High plasma osmolality with dilute urine strongly supports DI.','4. Central DI responds to desmopressin; nephrogenic DI usually does not.','5. Primary polydipsia is due to excess water intake and can mimic partial DI.','6. Copeptin is the modern, more reliable marker of ADH activity.'] for i,t in enumerate(summary): y=1.25+i*.76;rect(s,.8,y,11.75,.53,SKY if i in [0,5] else PALE,True,SKY if i in [0,5] else PALE);txt(s,1.0,y+.15,11.32,.22,t,15.5,NAVY if i in [0,5] else INK,i in [0,5]) #15 s=base('References','Standard textbook and recent evidence sources',15) refs=['Goldman-Cecil Medicine. Diabetes Insipidus.','Henry’s Clinical Diagnosis and Management by Laboratory Methods. Diabetes Insipidus and Water Deprivation Test.','Tietz Textbook of Laboratory Medicine, 7th edition. Diabetes Insipidus.','Refardt J, et al. Arginine- or hypertonic saline-stimulated copeptin to diagnose AVP deficiency. N Engl J Med. 2023;389:1877-1887.','Atila C, et al. Glucagon-stimulated copeptin in differential diagnosis of diabetes insipidus. Eur J Endocrinol. 2022;187:65-74. PMID: 35521789.'] bulletbox(s,.95,1.5,11.45,3.9,refs,15) rect(s,.9,5.78,11.5,.5,RGBColor(254,239,235),True,RGBColor(254,239,235));txt(s,1.1,5.95,11.1,.2,'For teaching and exam revision. Dynamic testing and hypernatraemia management require supervised clinical care.',12,RED,True,PP_ALIGN.CENTER) prs.save(str(OUT));print(OUT) PY python /tmp/workspace/diabetes-insipidus-mbbs/src/create_student_di_ppt.py python - <<'PY' from pptx import Presentation from pathlib import Path p=Path('/tmp/workspace/diabetes-insipidus-mbbs/output/Diabetes_Insipidus_Student_Friendly_MBBS.pptx') prs=Presentation(str(p)); print('slides:',len(prs.slides),'bytes:',p.stat().st_size) errs=[] for i,s in enumerate(prs.slides,1): for sh in s.shapes: if sh.left<0 or sh.top<0 or sh.left+sh.width>prs.slide_width or sh.top+sh.height>prs.slide_height: errs.append(i) print('out_of_bounds:',errs) for i,s in enumerate(prs.slides,1): tx=[sh.text for sh in s.shapes if getattr(sh,'has_text_frame',False) and sh.text.strip()] print(i,tx[0].replace('\n',' ')[:60] if tx else 'EMPTY') PY

Revised the presentation in simpler student-friendly language with shorter points, basic explanations, and exam-focused flowcharts. It avoids overly technical or AI-style wording.

Diabetes Insipidus Student Friendly MBBS

Presentation · PPTX

This is a shared conversation. Sign in to Orris to start your own chat.