how to measure warfarin and whats the value and adverse effect of nitrate and why it causes hpotension andCommon symptom of loop diuretics And also something about anti coagulants Drug and adverse effects kr ke ja achhe se Arb Heparin Anticoagulant saare We were asked about the management of a patient presenting with coronary artery disease (CAD), specifically on what basis medications should be prescribed and which drugs should be chosen in different clinical situations. He also asked us the difference between stable and unstable angina, both clinically and from a pharmacological perspective, including how the treatment approach is diffetent He also asked us about the differences between short-acting and long-acting nitrates, their indications, and also about amiodarone Adverse reactions effect of digoxin And which adverse effect is common between ace inhibitor and ARB Ace inhibitor Amiodarone contraindications Can patients administer warfarin at home How to measure warfarin If patient has asthama angina and PVD which drug- CALCIUM CHANNEL BLOCKERS Early side effect of digoxin Why is hyperkalemia dangerous Amioderon Nitroglycerin Freq side efrect of ace inhibitor Main is Dry cough Angioedema 1st line treat of heart failure 4 classes of anti hypertensive If patient not tolerate ace inhibitor Ans antihypertensive groups spincolactone and amiloride - k sparing drug loop diuretics most potent Ace inhibitors - dry cough b blockers what given to pregnant women - methyl dopa direct renin inhibitors aliskiren side effect of diogoxin types of angina iop Ace- how does it help, cardiac remodeling hypertrophy- increase workload- loss of myocytes,fibrosis interstitial arb Ace inhibitors first line for heart failure cardiac glycoside - digoxin loop diuretics types organic nitrate and side effects prolonged digoxin adverse effects 4 diff classes of anti arrhythmic drugs Most common side effect for something Dry cough 1st line treatment for heart failure Ace inhibitor What is the outcome of action of digoxin on the heart First line of treatment - ace inhibitor Followed by beta blocker Diuretic and cardiac glycosides First-Line Drug for Acute Angina ● Sublingual nitroglycerin. ● Rapid relief. ● Acts within minutes. ● Easy administration. ● Highly effective. 39. First-Line Drug for Chronic Stable Angina ● β-blockers. ● Reduce mortality. ● Decrease oxygen demand. ● Prevent attacks. ● Used long term. answer these questions from the given ppt explain all in brief in detail usimh content form ppt
cd /tmp/workspace/attachments/489533b8-9bae-4dfa-ad59-78c42738188f && python3 << 'EOF' from pptx import Presentation import os files = [ "Anti-Anginal & Anti-Arrhythmic Drugs.pptx", "Anti-Hypertensive Drugs.pptx", "Drugs for Heart Failure.pptx" ] for fname in files: print(f"\n{'='*80}") print(f"FILE: {fname}") print('='*80) prs = Presentation(fname) for i, slide in enumerate(prs.slides, 1): slide_texts = [] for shape in slide.shapes: if shape.has_text_frame and shape.text_frame.text.strip(): slide_texts.append(shape.text_frame.text.strip()) if slide_texts: print(f"\n--- Slide {i} ---") for t in slide_texts: print(t) EOF
cd /tmp/workspace/attachments/489533b8-9bae-4dfa-ad59-78c42738188f && python3 << 'EOF' # Handle .ppt (old format) with python-pptx - may fail, try anyway from pptx import Presentation try: prs = Presentation("Coagulation Modifier Drugs.ppt") for i, slide in enumerate(prs.slides, 1): for shape in slide.shapes: if shape.has_text_frame and shape.text_frame.text.strip(): print(f"Slide {i}: {shape.text_frame.text.strip()[:300]}") except Exception as e: print(f"Error: {e}") # Try converting using libreoffice or other methods import subprocess result = subprocess.run(['libreoffice', '--headless', '--convert-to', 'pptx', 'Coagulation Modifier Drugs.ppt'], capture_output=True, text=True) print(result.stdout, result.stderr) EOF
cd "/tmp/workspace/attachments/489533b8-9bae-4dfa-ad59-78c42738188f" && python3 << 'EOF' from pptx import Presentation prs = Presentation("Anti-Anginal & Anti-Arrhythmic Drugs.pptx") print(f"Total slides: {len(prs.slides)}") for i, slide in enumerate(prs.slides, 1): texts = [] for shape in slide.shapes: if hasattr(shape, "text") and shape.text.strip(): texts.append(shape.text.strip()) if texts: print(f"\n=== Slide {i} ===") for t in texts: print(t[:500]) EOF
cd "/tmp/workspace/attachments/489533b8-9bae-4dfa-ad59-78c42738188f" && python3 << 'EOF' from pptx import Presentation from pptx.util import Pt import xml.etree.ElementTree as ET prs = Presentation("Anti-Anginal & Anti-Arrhythmic Drugs.pptx") print(f"Total slides: {len(prs.slides)}") for i, slide in enumerate(prs.slides, 1): slide_text = [] for shape in slide.shapes: # Check all text-bearing elements if shape.has_text_frame: for para in shape.text_frame.paragraphs: para_text = ''.join([run.text for run in para.runs]) if para_text.strip(): slide_text.append(para_text.strip()) # Check tables if shape.shape_type == 19: # TABLE for row in shape.table.rows: for cell in row.cells: if cell.text.strip(): slide_text.append(f"[TABLE] {cell.text.strip()}") if slide_text: print(f"\n=== Slide {i} ===") for t in slide_text: print(t) EOF
cd "/tmp/workspace/attachments/489533b8-9bae-4dfa-ad59-78c42738188f" && python3 << 'EOF' from pptx import Presentation from lxml import etree prs = Presentation("Anti-Anginal & Anti-Arrhythmic Drugs.pptx") print(f"Total slides: {len(prs.slides)}") # Check slide 2 in detail slide = prs.slides[1] print("Slide 2 shapes:", len(slide.shapes)) for shape in slide.shapes: print(f" Shape type: {shape.shape_type}, name: {shape.name}") print(f" XML snippet: {etree.tostring(shape._element, encoding='unicode')[:300]}") print() EOF
cd "/tmp/workspace/attachments/489533b8-9bae-4dfa-ad59-78c42738188f" && python3 << 'EOF' from pptx import Presentation from lxml import etree files = [ "Anti-Anginal & Anti-Arrhythmic Drugs.pptx", "Anti-Hypertensive Drugs.pptx", "Drugs for Heart Failure.pptx" ] for fname in files: prs = Presentation(fname) print(f"\n{'='*70}") print(f"FILE: {fname} | Slides: {len(prs.slides)}") print('='*70) for i, slide in enumerate(prs.slides, 1): slide_content = [] for shape in slide.shapes: xml_str = etree.tostring(shape._element, encoding='unicode') # Extract descr attribute content (alt text with embedded text) import re descs = re.findall(r'descr="([^"]*)"', xml_str) for d in descs: if d.strip(): slide_content.append(d) # Also check text frames if shape.has_text_frame: t = shape.text_frame.text.strip() if t: slide_content.append(t) if slide_content: print(f"\n--- Slide {i} ---") for c in slide_content: print(c[:800]) EOF
cd "/tmp/workspace/attachments/489533b8-9bae-4dfa-ad59-78c42738188f" && python3 << 'EOF' from pptx import Presentation from lxml import etree import re # Get full content - Anti Hypertensive - truncated slides prs = Presentation("Anti-Hypertensive Drugs.pptx") important_slides = [6,7,9,10,11,12,14,15,16,18,19,20,21,22,23,24,25,26,27,30,31,32,33,34,35,36,37,38,39,40,41,43,44,45,46,47,48] for idx in important_slides: slide = prs.slides[idx-1] all_desc = [] for shape in slide.shapes: xml_str = etree.tostring(shape._element, encoding='unicode') descs = re.findall(r'descr="([^"]*)"', xml_str) for d in descs: if d.strip(): all_desc.append(d.replace(' ', '\n').replace('&', '&').replace('<', '<').replace('>', '>')) if shape.has_text_frame: t = shape.text_frame.text.strip() if t: all_desc.append(t) if all_desc: print(f"\n=== Slide {idx} ===") for c in all_desc: print(c) EOF
cd "/tmp/workspace/attachments/489533b8-9bae-4dfa-ad59-78c42738188f" && python3 << 'EOF' # Try reading .ppt using olefile import olefile import struct try: ole = olefile.OleFileIO("Coagulation Modifier Drugs.ppt") print("Streams:", ole.listdir()) except Exception as e: print(f"olefile error: {e}") # Alternative: use python-pptx with the actual file path with quotes from pptx import Presentation import os files = os.listdir(".") print("Files:", files) EOF
cd "/tmp/workspace/attachments/489533b8-9bae-4dfa-ad59-78c42738188f" && python3 << 'EOF' from pptx import Presentation from lxml import etree import re # Get full content for ALL files - extracting the full descr text without truncation files = { "Anti-Hypertensive Drugs.pptx": [6,7,9,10,11,12,14,15,16,18,19,20,21,22,23,24,25,30,41,46,47,48], "Drugs for Heart Failure.pptx": [5,6,7,8,9,10,12,14,15,16,17,18,19,20,21,25,26,27,29,32,33,34,35,36,37,38,39], } for fname, slide_nums in files.items(): prs = Presentation(fname) print(f"\n{'='*60}") print(f"FILE: {fname}") print('='*60) for idx in slide_nums: slide = prs.slides[idx-1] all_desc = [] for shape in slide.shapes: xml_str = etree.tostring(shape._element, encoding='unicode') descs = re.findall(r'descr="(.*?)"(?:\s|/)', xml_str, re.DOTALL) if not descs: descs = re.findall(r'descr="([^"]*)"', xml_str) for d in descs: if d.strip(): d_clean = d.replace(' ', '\n').replace('&', '&').replace('<', '<').replace('>', '>').replace(''', "'") all_desc.append(d_clean) if shape.has_text_frame: t = shape.text_frame.text.strip() if t and t not in all_desc: all_desc.append(t) if all_desc: print(f"\n--- Slide {idx} ---") for c in all_desc: print(c) EOF
pip install --user olefile 2>/dev/null && cd "/tmp/workspace/attachments/489533b8-9bae-4dfa-ad59-78c42738188f" && python3 -c " import zipfile, os # Try to treat .ppt as zip (it might actually be pptx renamed) try: with zipfile.ZipFile('Coagulation Modifier Drugs.ppt', 'r') as z: print('Files in zip:', z.namelist()[:20]) except Exception as e: print(f'Not a zip: {e}') # Check file magic bytes with open('Coagulation Modifier Drugs.ppt', 'rb') as f: header = f.read(8) print(f'Header bytes: {header.hex()}') # D0 CF 11 E0 = OLE format # 50 4B = PK = ZIP format (OOXML) "
cd "/tmp/workspace/attachments/489533b8-9bae-4dfa-ad59-78c42738188f" && python3 << 'EOF' # Extract text from OLE .ppt file using olefile import olefile import re ole = olefile.OleFileIO("Coagulation Modifier Drugs.ppt") # PowerPoint text is stored in the 'PowerPoint Document' stream if ole.exists('PowerPoint Document'): data = ole.openstream('PowerPoint Document').read() # Extract readable ASCII text from binary data # PPT stores text as Unicode (UTF-16LE) text_blocks = [] i = 0 while i < len(data) - 4: # Look for text records - type 0x0FA0 = TextCharsAtom (unicode) rec_type = int.from_bytes(data[i:i+2], 'little') & 0x0FFF rec_len = int.from_bytes(data[i+4:i+8], 'little') if rec_type == 0x0FA0 and rec_len > 0 and rec_len < 10000: # TextCharsAtom try: text = data[i+8:i+8+rec_len].decode('utf-16-le', errors='ignore') if text.strip() and len(text.strip()) > 2: text_blocks.append(('UNICODE', text.strip())) except: pass elif rec_type == 0x0FA8 and rec_len > 0 and rec_len < 10000: # TextBytesAtom try: text = data[i+8:i+8+rec_len].decode('latin-1', errors='ignore') if text.strip() and len(text.strip()) > 2: text_blocks.append(('ASCII', text.strip())) except: pass i += 8 + rec_len if rec_len == 0: i += 1 print(f"Found {len(text_blocks)} text blocks") for t_type, text in text_blocks[:100]: print(f"[{t_type}] {text[:200]}") print() else: print("No PowerPoint Document stream") print("Available streams:", ole.listdir()) EOF
cd "/tmp/workspace/attachments/489533b8-9bae-4dfa-ad59-78c42738188f" && python3 << 'EOF' # Get FULL text from pptx files without truncation - using XML parsing directly from pptx import Presentation from lxml import etree import re def get_full_slide_text(prs, slide_idx): slide = prs.slides[slide_idx] all_text = [] for shape in slide.shapes: xml_str = etree.tostring(shape._element, encoding='unicode') # Get full descr attribute descs = re.findall(r' descr="([^"]*)"', xml_str) for d in descs: if d.strip(): d_clean = (d.replace(' ', '\n') .replace('&', '&') .replace('<', '<') .replace('>', '>') .replace('↑', '↑') .replace('↓', '↓')) all_text.append(d_clean) if shape.has_text_frame: t = shape.text_frame.text.strip() if t: all_text.append(t) return all_text # Get ACE inhibitor slides fully prs = Presentation("Anti-Hypertensive Drugs.pptx") for idx in [14,15,16,18,19,20,21,22,23,24,25]: texts = get_full_slide_text(prs, idx-1) print(f"\n=== HTN Slide {idx} ===") for t in texts: print(t) # Get Heart Failure full slides prs2 = Presentation("Drugs for Heart Failure.pptx") for idx in [10,15,16,17,18,19,20,26,27,29,32,33,34,35,36,38,39]: texts = get_full_slide_text(prs2, idx-1) print(f"\n=== HF Slide {idx} ===") for t in texts: print(t) EOF
cd "/tmp/workspace/attachments/489533b8-9bae-4dfa-ad59-78c42738188f" && python3 << 'EOF' import zipfile, os, re from lxml import etree # Unpack Anti-Hypertensive to get full text with zipfile.ZipFile("Anti-Hypertensive Drugs.pptx") as z: slide_files = sorted([f for f in z.namelist() if f.startswith('ppt/slides/slide') and f.endswith('.xml')]) for sf in slide_files: slide_num = int(re.search(r'slide(\d+)\.xml', sf).group(1)) if slide_num not in [14,15,16,18,19,20,21,22,23,24,25,30,41,46,47,48]: continue xml_content = z.read(sf).decode('utf-8') root = etree.fromstring(xml_content.encode()) ns = {'a': 'http://schemas.openxmlformats.org/drawingml/2006/main', 'p': 'http://schemas.openxmlformats.org/presentationml/2006/main'} # Get all descr attributes (full, not truncated) descs = [] for elem in root.iter(): if 'descr' in elem.attrib: descr = elem.attrib['descr'] if descr.strip(): descs.append(descr) # Get all text runs texts = [] for t in root.iter('{http://schemas.openxmlformats.org/drawingml/2006/main}t'): if t.text and t.text.strip(): texts.append(t.text) print(f"\n=== Slide {slide_num} ===") if descs: for d in descs: print("DESC:", d[:1500]) if texts: print("TEXT:", ' | '.join(texts[:30])) EOF
cd "/tmp/workspace/attachments/489533b8-9bae-4dfa-ad59-78c42738188f" && python3 << 'EOF' import zipfile from lxml import etree with zipfile.ZipFile("Anti-Hypertensive Drugs.pptx") as z: xml_content = z.read('ppt/slides/slide14.xml').decode('utf-8') root = etree.fromstring(xml_content.encode()) for elem in root.iter(): if 'descr' in elem.attrib: full_text = elem.attrib['descr'] print(f"FULL DESCR LENGTH: {len(full_text)}") print(full_text) print("---END---") EOF
cd "/tmp/workspace/attachments/489533b8-9bae-4dfa-ad59-78c42738188f" && python3 << 'EOF' import olefile import struct ole = olefile.OleFileIO("Coagulation Modifier Drugs.ppt") print("Streams:", ole.listdir()[:30]) # Try reading the stream if ole.exists(['PowerPoint Document']): stream = ole.openstream(['PowerPoint Document']).read() print(f"Stream size: {len(stream)} bytes") # Search for readable text patterns # In PPT format, text is in TextBytesAtom (type=0xFA8) or TextCharsAtom (type=0xFA0) i = 0 text_found = [] while i < len(stream) - 8: try: rec_ver_type = struct.unpack_from('<H', stream, i)[0] rec_inst = (rec_ver_type >> 4) & 0xFFF rec_type = struct.unpack_from('<H', stream, i+2)[0] rec_len = struct.unpack_from('<I', stream, i+4)[0] if rec_type == 0x0FA8 and 1 < rec_len < 5000: # TextBytesAtom text = stream[i+8:i+8+rec_len].decode('latin-1', errors='replace') text_clean = ''.join(c if ord(c) >= 32 or c == '\n' else ' ' for c in text) if text_clean.strip(): text_found.append(('BYTES', text_clean.strip())) elif rec_type == 0x0FA0 and 1 < rec_len < 5000: # TextCharsAtom text = stream[i+8:i+8+rec_len].decode('utf-16-le', errors='replace') text_clean = text.replace('\r', '\n').strip() if text_clean: text_found.append(('CHARS', text_clean)) if rec_len > 0: i += 8 + rec_len else: i += 1 except: i += 1 print(f"\nFound {len(text_found)} text atoms") for t_type, text in text_found: print(f"\n[{t_type}]") print(text[:500]) EOF
| Type | Description |
|---|---|
| Stable Angina (Atherosclerotic/Classic) | Predictably provoked by exercise, emotion, eating, coitus. Relieved by rest within 15 min. ~90% of cases. |
| Unstable Angina (Crescendo/ACS) | Increased frequency and severity. Caused by atherosclerotic plaques + platelet aggregation + vasospasm. Unpredictable. |
| Variant/Prinzmetal's Angina (Vasospastic) | Occurs at rest or during sleep. Due to coronary artery spasm. <10% of cases. |
| Stable Angina | Unstable Angina | |
|---|---|---|
| Trigger | Exertion, predictable | Rest, unpredictable, increasing severity |
| Plaque | Stable plaque | Ruptured/fractured plaque + thrombus |
| ECG | ST depression on exertion | ST changes at rest |
| 1st Line Drug | Beta-blockers (long-term prevention) | Nitrates + anticoagulants (heparin/aspirin) + revascularization |
| Acute Drug | Sublingual GTN (nitroglycerin) | IV nitroglycerin + heparin + antiplatelet |
| Strategy | Reduce O2 demand | Both reduce demand AND prevent thrombosis |
| Short-acting (GTN) | Long-acting (Isosorbide) | |
|---|---|---|
| Route | Sublingual | Oral / transdermal |
| Onset | 1-3 min | 30-60 min |
| Duration | 15-30 min | 4-8 hours |
| Use | Abort acute attack | Chronic prophylaxis |
| First pass | Extensive (oral avoided) | Isosorbide mononitrate escapes first pass |
| Class | Mechanism | Drugs |
|---|---|---|
| Class I | Sodium channel blockers | IA: Quinidine, Procainamide, Disopyramide; IB: Lignocaine, Mexiletine, Phenytoin; IC: Flecainide, Propafenone |
| Class II | Beta-adrenergic blockers | Propranolol, Acebutolol, Esmolol |
| Class III | Potassium channel blockers (prolong APD) | Amiodarone, Sotalol, Bretylium, Dofetilide, Ibutilide |
| Class IV | Calcium channel blockers | Verapamil, Diltiazem |
| Misc | Various | Adenosine (PSVT), Digoxin (AF/Flutter), Atropine (AV block) |
| Goal | Drugs |
|---|---|
| Increase force of contraction | Digoxin, β-agonists (dobutamine, dopamine), Bipyridines (milrinone) |
| Reduce preload/afterload | ACE inhibitors, ARBs, Diuretics, Nitrates |
| Reduce remodeling/mortality | ACE inhibitors, Beta-blockers, Spironolactone |
| Drug | Route | Mechanism | Monitoring | Reversal |
|---|---|---|---|---|
| Warfarin | Oral | Inhibits Vitamin K-dependent clotting factors (II, VII, IX, X, Protein C, S) | PT/INR | Vitamin K, Fresh Frozen Plasma |
| Heparin (UFH) | IV/SC | Binds antithrombin III → inactivates thrombin (IIa) + Factor Xa | aPTT (activated partial thromboplastin time) | Protamine sulfate |
| LMWH (Enoxaparin, Dalteparin) | SC | Mainly inhibits Factor Xa via antithrombin III | Anti-Xa levels (routine monitoring not usually needed) | Protamine (partial) |
| Fondaparinux | SC | Synthetic; binds AT-III → selectively inhibits Factor Xa | Anti-Xa levels | No specific reversal |
| Direct Thrombin Inhibitors (Dabigatran, Bivalirudin) | Oral/IV | Directly inhibit thrombin (IIa) | TT, ECT (dabigatran: idarucizumab reversal) | Idarucizumab (dabigatran) |
| Direct Xa Inhibitors (Rivaroxaban, Apixaban, Edoxaban) | Oral | Directly inhibit Factor Xa | Anti-Xa (not routine) | Andexanet alfa |
| Drug | Most Important Adverse Effect |
|---|---|
| ACE Inhibitors | Dry cough (most common), Angioedema |
| ARBs | Hyperkalemia (no dry cough) |
| Loop diuretics (Furosemide) | Hypokalemia, Ototoxicity |
| K-sparing diuretics (Spironolactone) | Hyperkalemia, Gynecomastia |
| Nitrates | Headache, Hypotension, Tachycardia |
| Digoxin | Nausea/vomiting (early), Arrhythmias, Visual disturbance (late) |
| Amiodarone | Pulmonary fibrosis, Thyroid dysfunction, Corneal deposits, Bluish skin |
| Warfarin | Bleeding; Teratogenic (avoid in pregnancy) |
| Heparin | Bleeding, HIT (thrombocytopenia) |
| Beta-blockers | Bradycardia, Bronchospasm (avoid in asthma) |
| CCBs (Verapamil) | Bradycardia, Heart block, Constipation |
| CCBs (Dihydropyridines) | Ankle edema, Flushing, Tachycardia |
| Methyldopa | Sedation, Positive Coombs test, Hemolytic anemia |
| Situation | Drug of Choice |
|---|---|
| Acute angina attack | Sublingual GTN (Nitroglycerin) |
| Chronic stable angina (prevention) | Beta-blocker (1st line) |
| Variant (Prinzmetal's) angina | CCBs + Nitrates (beta-blockers may worsen) |
| Asthma + Angina + PVD | Calcium Channel Blockers |
| Post-MI (prevent remodeling) | ACE inhibitor + Beta-blocker |
| Heart failure + Angina | ACE inhibitor, Nitrates, Diuretics |
| Hypertension in pregnancy | Methyldopa |
| Cannot tolerate ACEi (dry cough) | Switch to ARB |
Note on the Coagulation PPT (.ppt format): The file uses an older binary OLE format that could not be text-extracted programmatically. The warfarin/anticoagulant section above is compiled from standard pharmacology knowledge consistent with the topics of that PPT. Key points: warfarin is monitored by PT/INR (target 2-3 for most indications), heparin by aPTT, and yes, patients can and do self-administer warfarin at home with periodic INR checks.