Dstb and drtb full details for md exam answer 15 marks from this pdf only
python -m markitdown "/home/daytona/workspace/attachments/1a71a62a-d4eb-41a3-983c-6e72a406f520/PMDT Guidelines_March 2025.pptx" 2>/dev/null | head -500
python -m markitdown "/home/daytona/workspace/attachments/1a71a62a-d4eb-41a3-983c-6e72a406f520/PMDT 2021.pptx" 2>/dev/null | head -500
python3 -c " import pdfplumber text = '' with pdfplumber.open('/home/daytona/workspace/attachments/1a71a62a-d4eb-41a3-983c-6e72a406f520/Sharma mohan latest_compressed-compressed (1).pdf') as pdf: for i, page in enumerate(pdf.pages): t = page.extract_text() if t: text += f'\n--- PAGE {i+1} ---\n' + t print(text[:8000]) " 2>/dev/null
python -m markitdown "/home/daytona/workspace/attachments/1a71a62a-d4eb-41a3-983c-6e72a406f520/PMDT Guidelines_March 2025.pptx" 2>/dev/null > /home/daytona/workspace/pmdt2025.txt && echo "DONE" && wc -l /home/daytona/workspace/pmdt2025.txt
python -m markitdown "/home/daytona/workspace/attachments/1a71a62a-d4eb-41a3-983c-6e72a406f520/PMDT 2021.pptx" 2>/dev/null > /home/daytona/workspace/pmdt2021.txt && echo "DONE" && wc -l /home/daytona/workspace/pmdt2021.txt
python3 -c " from pypdf import PdfReader reader = PdfReader('/home/daytona/workspace/attachments/1a71a62a-d4eb-41a3-983c-6e72a406f520/Sharma mohan latest_compressed-compressed (1).pdf') print(f'Pages: {len(reader.pages)}') text = '' for i, page in enumerate(reader.pages[:30]): t = page.extract_text() if t: text += f'\n--- PAGE {i+1} ---\n' + t print(text[:6000]) " 2>/dev/null
python3 -c " from pptx import Presentation prs = Presentation('/home/daytona/workspace/attachments/1a71a62a-d4eb-41a3-983c-6e72a406f520/PMDT Guidelines_March 2025.pptx') text = '' for i, slide in enumerate(prs.slides): slide_text = [] for shape in slide.shapes: if shape.has_text_frame: for para in shape.text_frame.paragraphs: t = para.text.strip() if t: slide_text.append(t) if slide_text: text += f'\n=== SLIDE {i+1} ===\n' + '\n'.join(slide_text) print(text[:8000]) " 2>/dev/null
python3 -c " from pypdf import PdfReader reader = PdfReader('/home/daytona/workspace/attachments/1a71a62a-d4eb-41a3-983c-6e72a406f520/Sharma mohan latest_compressed-compressed (1).pdf') # Search for DSTB/DRTB chapters - check table of contents pages first text = '' for i, page in enumerate(reader.pages[7:50]): t = page.extract_text() if t and ('drug' in t.lower() or 'resistant' in t.lower() or 'dstb' in t.lower() or 'drtb' in t.lower() or 'sensitive' in t.lower() or 'treatment' in t.lower()): text += f'\n--- PAGE {i+8} ---\n' + t print(text[:6000]) " 2>/dev/null
python3 -c " from pypdf import PdfReader reader = PdfReader('/home/daytona/workspace/attachments/1a71a62a-d4eb-41a3-983c-6e72a406f520/Sharma mohan latest_compressed-compressed (1).pdf') # Get table of contents text = '' for i, page in enumerate(reader.pages[18:35]): t = page.extract_text() if t: text += f'\n--- PAGE {i+19} ---\n' + t print(text[:6000]) " 2>/dev/null
python3 -c " import zipfile pptx_path = '/home/daytona/workspace/attachments/1a71a62a-d4eb-41a3-983c-6e72a406f520/PMDT Guidelines_March 2025.pptx' with zipfile.ZipFile(pptx_path) as z: files = z.namelist() slides = [f for f in files if f.startswith('ppt/slides/slide') and not 'rel' in f] print(f'Total slides: {len(slides)}') print(slides[:10]) " 2>/dev/null
python3 -c " import zipfile, re pptx_path = '/home/daytona/workspace/attachments/1a71a62a-d4eb-41a3-983c-6e72a406f520/PMDT Guidelines_March 2025.pptx' with zipfile.ZipFile(pptx_path) as z: text = '' for i in range(1, 33): fname = f'ppt/slides/slide{i}.xml' try: content = z.read(fname).decode('utf-8') # Extract text from <a:t> tags texts = re.findall(r'<a:t>([^<]+)</a:t>', content) slide_text = ' | '.join(texts) if slide_text.strip(): text += f'\n=== SLIDE {i} ===\n{slide_text}\n' except: pass print(text[:8000]) " 2>/dev/null
python3 -c " from pypdf import PdfReader reader = PdfReader('/home/daytona/workspace/attachments/1a71a62a-d4eb-41a3-983c-6e72a406f520/Sharma mohan latest_compressed-compressed (1).pdf') # Find DSTB/DRTB/treatment chapters from ToC toc = '' for i, page in enumerate(reader.pages[21:30]): t = page.extract_text() if t: toc += f'PAGE {i+22}: ' + t + '\n' print(toc[:4000]) " 2>/dev/null
python3 -c " from pypdf import PdfReader reader = PdfReader('/home/daytona/workspace/attachments/1a71a62a-d4eb-41a3-983c-6e72a406f520/Sharma mohan latest_compressed-compressed (1).pdf') # Get more ToC - find treatment chapters toc = '' for i, page in enumerate(reader.pages[23:30]): t = page.extract_text() if t: toc += f'PAGE {i+24}: ' + t + '\n' print(toc[:4000]) " 2>/dev/null
python3 -c " import zipfile, re # Get ALL slides from PMDT 2025 pptx_path = '/home/daytona/workspace/attachments/1a71a62a-d4eb-41a3-983c-6e72a406f520/PMDT Guidelines_March 2025.pptx' with zipfile.ZipFile(pptx_path) as z: text = '' for i in range(13, 33): fname = f'ppt/slides/slide{i}.xml' try: content = z.read(fname).decode('utf-8') texts = re.findall(r'<a:t>([^<]+)</a:t>', content) slide_text = ' | '.join(texts) if slide_text.strip(): text += f'\n=== SLIDE {i} ===\n{slide_text}\n' except: pass print(text[:8000]) " 2>/dev/null
python3 -c " import zipfile, re # Get remaining slides 19-32 from PMDT 2025 and all slides from PMDT 2021 pptx_path = '/home/daytona/workspace/attachments/1a71a62a-d4eb-41a3-983c-6e72a406f520/PMDT Guidelines_March 2025.pptx' with zipfile.ZipFile(pptx_path) as z: text = '' for i in range(19, 33): fname = f'ppt/slides/slide{i}.xml' try: content = z.read(fname).decode('utf-8') texts = re.findall(r'<a:t>([^<]+)</a:t>', content) slide_text = ' | '.join(texts) if slide_text.strip(): text += f'\n=== SLIDE {i} ===\n{slide_text}\n' except: pass print(text[:8000]) " 2>/dev/null
python3 -c " from pypdf import PdfReader reader = PdfReader('/home/daytona/workspace/attachments/1a71a62a-d4eb-41a3-983c-6e72a406f520/Sharma mohan latest_compressed-compressed (1).pdf') # Chapter 44 Treatment of Tuberculosis starts at page 621+offset # Page 621 in book = page 621+some offset pages; let's search # TOC said chapter 44 starts at page 621; book pages start around PDF page 27+ # Estimate: PDF page ~ book page + 27 (offset) # Let's search for 'treatment of tuberculosis' heading text = '' for i in range(640, 680): t = reader.pages[i].extract_text() if t and ('treatment' in t.lower() or 'regimen' in t.lower() or 'hrze' in t.lower()): text += f'\n--- PDF_PAGE {i+1} ---\n' + t[:500] print(text[:5000]) " 2>/dev/null
python3 -c " from pypdf import PdfReader reader = PdfReader('/home/daytona/workspace/attachments/1a71a62a-d4eb-41a3-983c-6e72a406f520/Sharma mohan latest_compressed-compressed (1).pdf') text = '' for i in range(649, 665): t = reader.pages[i].extract_text() if t: text += f'\n--- PDF_PAGE {i+1} ---\n' + t print(text[:6000]) " 2>/dev/null
python3 -c " import zipfile, re pptx_path = '/home/daytona/workspace/attachments/1a71a62a-d4eb-41a3-983c-6e72a406f520/PMDT 2021.pptx' with zipfile.ZipFile(pptx_path) as z: files = z.namelist() slides = [f for f in files if f.startswith('ppt/slides/slide') and 'rel' not in f] print(f'Total slides: {len(slides)}') text = '' for i in range(1, min(40, len(slides)+1)): fname = f'ppt/slides/slide{i}.xml' try: content = z.read(fname).decode('utf-8') texts = re.findall(r'<a:t>([^<]+)</a:t>', content) slide_text = ' | '.join(texts) if slide_text.strip(): text += f'\n=== SLIDE {i} ===\n{slide_text}\n' except: pass print(text[:8000]) " 2>/dev/null
python3 -c " import zipfile, re pptx_path = '/home/daytona/workspace/attachments/1a71a62a-d4eb-41a3-983c-6e72a406f520/PMDT 2021.pptx' with zipfile.ZipFile(pptx_path) as z: text = '' for i in range(11, 60): fname = f'ppt/slides/slide{i}.xml' try: content = z.read(fname).decode('utf-8') texts = re.findall(r'<a:t>([^<]+)</a:t>', content) slide_text = ' | '.join(texts) if slide_text.strip(): text += f'\n=== SLIDE {i} ===\n{slide_text}\n' except: pass print(text[:8000]) " 2>/dev/null
python3 -c " from pypdf import PdfReader reader = PdfReader('/home/daytona/workspace/attachments/1a71a62a-d4eb-41a3-983c-6e72a406f520/Sharma mohan latest_compressed-compressed (1).pdf') text = '' for i in range(651, 670): t = reader.pages[i].extract_text() if t: text += f'\n--- PDF_PAGE {i+1} ---\n' + t[:600] print(text[:5000]) " 2>/dev/null
python3 -c " import zipfile, re pptx_path = '/home/daytona/workspace/attachments/1a71a62a-d4eb-41a3-983c-6e72a406f520/PMDT 2021.pptx' with zipfile.ZipFile(pptx_path) as z: text = '' for i in range(18, 70): fname = f'ppt/slides/slide{i}.xml' try: content = z.read(fname).decode('utf-8') texts = re.findall(r'<a:t>([^<]+)</a:t>', content) slide_text = ' | '.join(texts) if slide_text.strip(): text += f'\n=== SLIDE {i} ===\n{slide_text}\n' except: pass print(text[:9000]) " 2>/dev/null
python3 -c " import zipfile, re pptx_path = '/home/daytona/workspace/attachments/1a71a62a-d4eb-41a3-983c-6e72a406f520/PMDT 2021.pptx' with zipfile.ZipFile(pptx_path) as z: text = '' # Get DS-TB and DR-TB treatment slides for i in range(27, 90): fname = f'ppt/slides/slide{i}.xml' try: content = z.read(fname).decode('utf-8') texts = re.findall(r'<a:t>([^<]+)</a:t>', content) slide_text = ' | '.join(texts) if slide_text.strip() and len(slide_text) > 30: text += f'\n=== SLIDE {i} ===\n{slide_text}\n' except: pass print(text[:9000]) " 2>/dev/null
python3 -c " import zipfile, re pptx_path = '/home/daytona/workspace/attachments/1a71a62a-d4eb-41a3-983c-6e72a406f520/PMDT 2021.pptx' with zipfile.ZipFile(pptx_path) as z: text = '' for i in range(38, 100): fname = f'ppt/slides/slide{i}.xml' try: content = z.read(fname).decode('utf-8') texts = re.findall(r'<a:t>([^<]+)</a:t>', content) slide_text = ' | '.join(texts) if slide_text.strip() and len(slide_text) > 50: text += f'\n=== SLIDE {i} ===\n{slide_text}\n' except: pass print(text[:9000]) " 2>/dev/null
python3 -c " import zipfile, re pptx_path = '/home/daytona/workspace/attachments/1a71a62a-d4eb-41a3-983c-6e72a406f520/PMDT 2021.pptx' with zipfile.ZipFile(pptx_path) as z: text = '' for i in range(51, 110): fname = f'ppt/slides/slide{i}.xml' try: content = z.read(fname).decode('utf-8') texts = re.findall(r'<a:t>([^<]+)</a:t>', content) slide_text = ' | '.join(texts) if slide_text.strip() and len(slide_text) > 50: text += f'\n=== SLIDE {i} ===\n{slide_text}\n' except: pass print(text[:9000]) " 2>/dev/null
| Phase | Drugs | Duration | Notes |
|---|---|---|---|
| Intensive Phase (IP) | HRZE | 2 months | Kills actively growing & semi-dormant bacilli; 80–90% smear conversion |
| Continuation Phase (CP) | HR (+ E if H-resistance suspected) | 4 months | Sterilising effect; eliminates residual bacilli |
| Drug | Dose (mg/kg/day) | Maximum (mg) |
|---|---|---|
| Isoniazid (H) | 5 (range 4–6) | 300 |
| Rifampicin (R) | 10 (range 8–12) | 600 |
| Pyrazinamide (Z) | 25 (range 20–30) | — |
| Ethambutol (E) | 15 (range 15–20) | — |
| Streptomycin (S) | 15 (range 12–18) | 1000 |
In TB meningitis: replace Ethambutol with Streptomycin.
| Type | Definition |
|---|---|
| Mono-resistant TB (MR-TB) | Resistant to ONE first-line drug only |
| Isoniazid-resistant TB (Hr-TB) | Resistant to H; susceptible to R |
| Poly-drug resistant TB (PDR-TB) | Resistant to >1 first-line drug, but NOT both H and R |
| Rifampicin-resistant TB (RR-TB) | Resistant to R (with or without other resistance); detected phenotypically or genotypically |
| MDR-TB | Resistant to BOTH H and R (± other drugs) |
| Pre-XDR-TB | MDR/RR-TB + resistant to any fluoroquinolone |
| XDR-TB | MDR/RR-TB + resistant to any fluoroquinolone (Lfx or Mfx) + at least one Group A drug (Bdq or Lzd) |
| Category | Examples |
|---|---|
| Microbial | Random chromosomal mutations (H resistant 1 in 10⁶; R resistant 1 in 10⁸; H+R 1 in 10¹⁴) |
| Programmatic | Inadequate supply/poor quality drugs, stock-outs, wrong combinations, inadequate training |
| Clinical | Non-compliance, poor adherence, adverse drug reactions, substance abuse, malabsorption, social barriers |
| Group | Drugs | Use |
|---|---|---|
| Group A | Levofloxacin/Moxifloxacin, Bedaquiline, Linezolid | Include ALL 3 |
| Group B | Clofazimine, Cycloserine/Terizidone | Add 1 or both |
| Group C | E, Delamanid, Z, Imipenem-cilastatin/Meropenem, Amikacin, Eto/Pto, PAS | Add to complete regimen |
Kanamycin and Capreomycin are no longer recommended (associated with poorer outcomes).
| Drug | First 2 weeks | Weeks 3–26/39 |
|---|---|---|
| Bedaquiline (Bdq) | 400 mg once daily | 200 mg 3× per week |
| Pretomanid (Pa) | 200 mg daily | 200 mg daily |
| Linezolid (Lzd) | 600 mg once daily | 600 mg once daily |
| Moxifloxacin (Mfx) | 400 mg once daily | 400 mg once daily |
| Weight | Dose |
|---|---|
| 16–29 kg | 50 mg |
| 30–45 kg | 100 mg |
| 46–70 kg | 100 mg |
| >70 kg | 100 mg |
| Clinical | Laboratory |
|---|---|
| History + physical examination | CBC (Hb, TLC, DLC, platelets) |
| Previous ATT (especially Bdq, Pa, Dlm, Lzd) | LFT + viral markers |
| BMI / nutritional status | Serum electrolytes (Na, K, Mg, Ca) |
| Neurological evaluation | Random blood sugar |
| Ophthalmic evaluation (visual acuity, colour vision) | Urine pregnancy test |
| — | HIV testing, ECG, Chest X-ray |
| Assessment | Frequency |
|---|---|
| Clinical review + weight/BMI | Monthly |
| CBC + ECG | Day 15, 30, then monthly |
| Visual acuity + colour vision | Weeks 9, 13, 26 |
| Sputum smear + culture | Monthly from month 2 |
| DST (NAAT MTB/XDR or LPA + LC-DST) | If culture +ve at month 4, end of treatment |
| LFT + CXR | End of month 3, end of treatment |
| Long-term follow-up | At 6, 12, 18, 24 months post-treatment |