NandanData commited on
Commit
1260e28
Β·
verified Β·
1 Parent(s): 29925d4

Upload 71 files

Browse files
This view is limited to 50 files because it contains too many changes. Β  See raw diff
Files changed (50) hide show
  1. README.md +16 -8
  2. app.py +16 -15
  3. backend/chat_endpoint.py +32 -73
  4. backend/rag_engine.py +2 -1
  5. backend/soap_generator.py +3 -3
  6. data/guidelines/internal_med/001_Hypertension.txt +6 -0
  7. data/guidelines/internal_med/002_Hypertension.txt +6 -0
  8. data/guidelines/internal_med/003_Fever_of_Unknown_Origin.txt +6 -0
  9. data/guidelines/internal_med/004_Asthma.txt +6 -0
  10. data/guidelines/internal_med/005_Fever_of_Unknown_Origin.txt +6 -0
  11. data/guidelines/internal_med/006_COPD_Exacerbation.txt +6 -0
  12. data/guidelines/internal_med/007_Asthma.txt +6 -0
  13. data/guidelines/internal_med/008_Thyroid_Dysfunction.txt +6 -0
  14. data/guidelines/internal_med/009_Diabetes_Mellitus.txt +6 -0
  15. data/guidelines/internal_med/010_Thyroid_Dysfunction.txt +6 -0
  16. data/guidelines/internal_med/011_Fever_of_Unknown_Origin.txt +6 -0
  17. data/guidelines/internal_med/012_Diabetes_Mellitus.txt +6 -0
  18. data/guidelines/internal_med/013_UTI.txt +6 -0
  19. data/guidelines/internal_med/014_Asthma.txt +6 -0
  20. data/guidelines/internal_med/015_UTI.txt +6 -0
  21. data/guidelines/internal_med/016_Anemia.txt +6 -34
  22. data/guidelines/internal_med/017_COPD_Exacerbation.txt +6 -0
  23. data/guidelines/internal_med/018_COPD_Exacerbation.txt +6 -0
  24. data/guidelines/internal_med/019_Asthma.txt +5 -33
  25. data/guidelines/internal_med/020_Fever_of_Unknown_Origin.txt +6 -0
  26. data/guidelines/obgyn/001_AUB.txt +6 -34
  27. data/guidelines/obgyn/002_Fibroids.txt +6 -0
  28. data/guidelines/obgyn/003_PCOS.txt +6 -0
  29. data/guidelines/obgyn/004_Antenatal_Care.txt +6 -0
  30. data/guidelines/obgyn/005_Endometriosis.txt +6 -0
  31. data/guidelines/obgyn/006_Miscarriage.txt +6 -0
  32. data/guidelines/obgyn/007_Dysmenorrhea.txt +6 -0
  33. data/guidelines/obgyn/008_Infertility_Workup.txt +6 -0
  34. data/guidelines/obgyn/009_Infertility_Workup.txt +6 -0
  35. data/guidelines/obgyn/010_Miscarriage.txt +6 -0
  36. data/guidelines/obgyn/011_Fibroids.txt +6 -0
  37. data/guidelines/obgyn/012_Dysmenorrhea.txt +6 -0
  38. data/guidelines/obgyn/013_Antenatal_Care.txt +6 -0
  39. data/guidelines/obgyn/014_Adenomyosis.txt +6 -0
  40. data/guidelines/obgyn/015_Infertility_Workup.txt +6 -0
  41. data/guidelines/obgyn/016_Ectopic_Pregnancy.txt +6 -0
  42. data/guidelines/obgyn/017_Endometriosis.txt +6 -0
  43. data/guidelines/obgyn/018_Miscarriage.txt +6 -0
  44. data/guidelines/obgyn/019_AUB.txt +6 -0
  45. data/guidelines/obgyn/020_Adenomyosis.txt +6 -0
  46. data/guidelines/orthopedics/001_ACL_Injury.txt +6 -0
  47. data/guidelines/orthopedics/002_Rotator_Cuff_Tear.txt +6 -0
  48. data/guidelines/orthopedics/003_Frozen_Shoulder.txt +6 -0
  49. data/guidelines/orthopedics/004_Low_Back_Pain.txt +6 -0
  50. data/guidelines/orthopedics/005_Knee_Osteoarthritis.txt +6 -0
README.md CHANGED
@@ -1,8 +1,16 @@
1
- ---
2
- license: apache-2.0
3
- title: MediAssist v14.3 β€” Chat + RAG + PDF
4
- sdk: streamlit
5
- colorFrom: purple
6
- colorTo: indigo
7
- short_description: The MedicalAI system combines **ClinicalBERT**, **RAG retrie
8
- ---
 
 
 
 
 
 
 
 
 
1
+ # MediAssist v14.4 β€” Stable (Router-powered)
2
+ - Uses HF Router text-generation endpoint (default: GPT-OSS-120B)
3
+ - Robust chat handler with non-JSON and 404 handling
4
+ - RAG with unique IDs to prevent Chroma DuplicateIDError
5
+ - OPD + Citations + PDF export
6
+ - Diagnostics page for quick endpoint tests
7
+
8
+ ## HF Space Setup
9
+ 1. Create Space (SDK: Streamlit) and upload this ZIP.
10
+ 2. Settings β†’ Secrets: `HF_API_TOKEN`
11
+ 3. Settings β†’ Variables (optional):
12
+ - `HF_CHAT_ENDPOINT` = https://router.huggingface.co/hf-inference/text-generation/openai/gpt-oss-120b
13
+ 4. Sidebar β†’ Seed / Refresh RAG Index (once)
14
+ 5. Chat, generate OPD, and export PDF.
15
+
16
+ Generated: 2025-12-06
app.py CHANGED
@@ -1,47 +1,48 @@
1
- import os, json, time, streamlit as st
2
  from backend.rag_engine import get_embedder, get_chroma, retrieve, seed_index
3
  from backend.soap_generator import compose_soap
4
  from backend.pdf_utils import generate_pdf
5
  from backend.chat_endpoint import chat
6
  from utils.constants import DOCS_DIR, RETRIEVAL_K_DEFAULT
7
 
8
- st.set_page_config(page_title="MediAssist v14.3 β€” Clinical AI", page_icon="🩺", layout="wide")
9
 
10
  @st.cache_resource(show_spinner=False)
11
  def _embedder(): return get_embedder()
12
-
13
  @st.cache_resource(show_spinner=False)
14
  def _col(): return get_chroma()[1]
15
 
16
  with st.sidebar:
17
  st.subheader("Controls")
18
  if st.button("Seed / Refresh RAG Index"):
19
- with st.spinner("Indexing..."):
20
  n = seed_index(_col(), _embedder(), DOCS_DIR)
21
- st.success(f"Indexed {n} chunks from {DOCS_DIR}")
22
- st.caption("Upload .txt/.md to data/guidelines/<specialty>/ then reseed.")
23
 
24
- st.title("🩺 MediAssist v14.3 β€” Clinical AI for Doctors")
25
- st.caption("Chat + RAG + PDF Β· Uses HF Endpoint (set HF_API_TOKEN & HF_CHAT_ENDPOINT).")
26
 
27
  narrative = st.text_area("Patient narrative", height=140, placeholder="e.g., 10 days period delay, nausea, mild cramps")
28
  k = st.slider("πŸ” Results to retrieve", 1, 10, RETRIEVAL_K_DEFAULT)
29
 
30
- col1, col2 = st.columns(2)
31
 
32
  if st.button("🧾 Generate OPD + Citations"):
33
  with st.spinner("Composing..."):
34
  items = retrieve(_col(), _embedder(), narrative, k=k)
35
  soap = compose_soap(narrative, items)
36
- with col1:
37
  st.subheader("SOAP JSON")
38
  st.code(json.dumps(soap, indent=2), language="json")
39
- with col2:
40
  st.subheader("Citations")
41
- if not items: st.info("No citations retrieved.")
42
- for i,it in enumerate(items,1):
43
- st.markdown(f"**{i}. {it['title']}** \n`{it['source']}` \n> {it['text'][:400]}...")
44
- st.divider()
 
 
45
 
46
  st.markdown("---")
47
  st.subheader("πŸ’¬ AI Chat")
 
1
+ import os, json, streamlit as st
2
  from backend.rag_engine import get_embedder, get_chroma, retrieve, seed_index
3
  from backend.soap_generator import compose_soap
4
  from backend.pdf_utils import generate_pdf
5
  from backend.chat_endpoint import chat
6
  from utils.constants import DOCS_DIR, RETRIEVAL_K_DEFAULT
7
 
8
+ st.set_page_config(page_title="MediAssist v14.4 β€” Clinical AI (Stable)", page_icon="🩺", layout="wide")
9
 
10
  @st.cache_resource(show_spinner=False)
11
  def _embedder(): return get_embedder()
 
12
  @st.cache_resource(show_spinner=False)
13
  def _col(): return get_chroma()[1]
14
 
15
  with st.sidebar:
16
  st.subheader("Controls")
17
  if st.button("Seed / Refresh RAG Index"):
18
+ with st.spinner("Indexing guidelines..."):
19
  n = seed_index(_col(), _embedder(), DOCS_DIR)
20
+ st.success(f"Indexed {n} chunks.")
21
+ st.caption("Upload .txt/.md into data/guidelines/<specialty>/ and reseed.")
22
 
23
+ st.title("🩺 MediAssist v14.4 β€” Clinical AI (Stable)")
24
+ st.caption("HF Router endpoint + RAG + PDF.")
25
 
26
  narrative = st.text_area("Patient narrative", height=140, placeholder="e.g., 10 days period delay, nausea, mild cramps")
27
  k = st.slider("πŸ” Results to retrieve", 1, 10, RETRIEVAL_K_DEFAULT)
28
 
29
+ c1, c2 = st.columns(2)
30
 
31
  if st.button("🧾 Generate OPD + Citations"):
32
  with st.spinner("Composing..."):
33
  items = retrieve(_col(), _embedder(), narrative, k=k)
34
  soap = compose_soap(narrative, items)
35
+ with c1:
36
  st.subheader("SOAP JSON")
37
  st.code(json.dumps(soap, indent=2), language="json")
38
+ with c2:
39
  st.subheader("Citations")
40
+ if not items:
41
+ st.info("No citations retrieved.")
42
+ else:
43
+ for idx,it in enumerate(items,1):
44
+ st.markdown(f"**{idx}. {it['title']}** \n`{it['source']}` \n> {it['text'][:400]}...")
45
+ st.divider()
46
 
47
  st.markdown("---")
48
  st.subheader("πŸ’¬ AI Chat")
backend/chat_endpoint.py CHANGED
@@ -9,86 +9,45 @@ def _headers():
9
  tok = os.getenv("HF_API_TOKEN")
10
  return {"Authorization": f"Bearer {tok}","Content-Type":"application/json"} if tok else {}
11
 
12
-
13
  def chat(user_message: str, mode: str = "patient"):
14
  url = active_chat_endpoint()
15
  headers = _headers()
16
  if not headers:
17
  return "⚠ Add HF_API_TOKEN in Settings β†’ Secrets."
18
 
19
- system = AI_GYNO_PERSONA_V2 + (
20
- "\nUse simple, reassuring language." if mode=="patient"
21
- else "\nUse clinical language, differentials, and red flags."
22
- )
23
-
24
- payload = {
25
- "inputs": [
26
- {"role": "system", "content": system},
27
- {"role": "user", "content": user_message}
28
- ],
29
- "parameters": {
30
- "max_new_tokens": 400,
31
- "temperature": 0.2,
32
- "return_full_text": False
33
- }
34
- }
35
-
36
- try:
37
- r = requests.post(url, headers=headers, json=payload, timeout=60)
38
- except Exception as e:
39
- return f"⚠ Network error: {str(e)}"
40
 
41
- # --- SAFER PARSER ---
42
- txt = r.text
43
 
44
- # HTML β†’ clear signal model is loading or wrong
45
- if "<html" in txt.lower():
46
- if "loading" in txt.lower():
47
- return "⏳ Model is loading on HuggingFace… try again in 20–30 sec."
48
- return f"⚠ Endpoint returned HTML instead of JSON:\n\n{txt[:500]}"
49
-
50
- # Try normal JSON
51
- try:
52
- data = r.json()
53
- except:
54
- return f"⚠ Non-JSON content returned:\n\n{txt[:500]}"
55
-
56
- # Standard HF generation
57
- if isinstance(data, list) and len(data) and "generated_text" in data[0]:
58
- return data[0]["generated_text"]
59
- if isinstance(data, dict) and "generated_text" in data:
60
- return data["generated_text"]
61
-
62
- return f"⚠ Unexpected JSON:\n{json.dumps(data)[:800]}"
63
 
 
 
 
 
64
 
65
- # def chat(user_message: str, mode: str = "patient"):
66
- # url = active_chat_endpoint()
67
- # if not _headers():
68
- # return "⚠ Add HF_API_TOKEN in Settings β†’ Secrets."
69
- # system = AI_GYNO_PERSONA_V2 + ("\nPrefer plain-language for patients." if mode=='patient' else "\nProvide differentials, workup, and red flags.")
70
- # payload = {
71
- # "inputs": [
72
- # {"role":"system","content": system},
73
- # {"role":"user","content": user_message}
74
- # ],
75
- # "parameters": {"max_new_tokens": 400, "temperature": 0.2, "return_full_text": False}
76
- # }
77
- # for attempt in range(1, RETRIES_DEFAULT+1):
78
- # try:
79
- # r = requests.post(url, headers=_headers(), json=payload, timeout=REQUEST_TIMEOUT_SECONDS_DEFAULT)
80
- # try:
81
- # data = r.json()
82
- # except Exception:
83
- # txt = r.text
84
- # if "loading" in txt.lower():
85
- # time.sleep(BACKOFF_SECONDS_DEFAULT * attempt); continue
86
- # return f"⚠ Non-JSON response:\n\n{txt[:1500]}"
87
- # if isinstance(data, list) and data and "generated_text" in data[0]:
88
- # return data[0]["generated_text"]
89
- # if isinstance(data, dict) and "generated_text" in data:
90
- # return data["generated_text"]
91
- # return "⚠ Unexpected response:\n" + json.dumps(data)[:1200]
92
- # except Exception as e:
93
- # time.sleep(BACKOFF_SECONDS_DEFAULT * attempt)
94
- # return "❌ Endpoint unavailable after retries."
 
9
  tok = os.getenv("HF_API_TOKEN")
10
  return {"Authorization": f"Bearer {tok}","Content-Type":"application/json"} if tok else {}
11
 
 
12
  def chat(user_message: str, mode: str = "patient"):
13
  url = active_chat_endpoint()
14
  headers = _headers()
15
  if not headers:
16
  return "⚠ Add HF_API_TOKEN in Settings β†’ Secrets."
17
 
18
+ system = AI_GYNO_PERSONA_V2 + ("\nUse simple, supportive language." if mode=='patient' else "\nProvide differentials, initial workup, and red flags.")
19
+ prompt = f"""{system}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
 
21
+ Patient narrative:
22
+ {user_message}
23
 
24
+ Assistant:"""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
 
26
+ payload = {
27
+ "inputs": prompt,
28
+ "parameters": {"max_new_tokens": 400, "temperature": 0.2, "return_full_text": False}
29
+ }
30
 
31
+ for attempt in range(1, RETRIES_DEFAULT+1):
32
+ try:
33
+ r = requests.post(url, headers=headers, json=payload, timeout=REQUEST_TIMEOUT_SECONDS_DEFAULT)
34
+ text = r.text
35
+ try:
36
+ data = r.json()
37
+ if isinstance(data, list) and data and "generated_text" in data[0]:
38
+ return data[0]["generated_text"]
39
+ if isinstance(data, dict) and "generated_text" in data:
40
+ return data["generated_text"]
41
+ if isinstance(data, dict) and "outputs" in data and isinstance(data["outputs"], list) and data["outputs"]:
42
+ gt = data["outputs"][0].get("generated_text")
43
+ if gt: return gt
44
+ return json.dumps(data)[:1500]
45
+ except Exception:
46
+ if "loading" in text.lower():
47
+ time.sleep(BACKOFF_SECONDS_DEFAULT * attempt); continue
48
+ if r.status_code == 404:
49
+ return "❌ 404 from router. Check model path: /hf-inference/text-generation/<MODEL>"
50
+ return f"⚠ Non-JSON response:\n{text[:1000]}"
51
+ except Exception as e:
52
+ time.sleep(BACKOFF_SECONDS_DEFAULT * attempt)
53
+ return "❌ Endpoint unavailable after retries."
 
 
 
 
 
 
 
backend/rag_engine.py CHANGED
@@ -27,6 +27,7 @@ def seed_index(col, model, root_folder: str) -> int:
27
  ids, docs, metas = [], [], []
28
  for p in sorted(paths):
29
  title = os.path.splitext(os.path.basename(p))[0]
 
30
  try:
31
  with open(p, "r", encoding="utf-8") as f:
32
  txt = f.read()
@@ -34,7 +35,7 @@ def seed_index(col, model, root_folder: str) -> int:
34
  continue
35
  chunks = splitter.split_text(txt)
36
  for i, ch in enumerate(chunks):
37
- ids.append(f"{title}-{i}")
38
  docs.append(ch)
39
  metas.append({"title": title, "source": p})
40
  if not docs:
 
27
  ids, docs, metas = [], [], []
28
  for p in sorted(paths):
29
  title = os.path.splitext(os.path.basename(p))[0]
30
+ rel = os.path.relpath(p, DOCS_DIR).replace(os.sep, "_") # guarantee uniqueness
31
  try:
32
  with open(p, "r", encoding="utf-8") as f:
33
  txt = f.read()
 
35
  continue
36
  chunks = splitter.split_text(txt)
37
  for i, ch in enumerate(chunks):
38
+ ids.append(f"{rel}-{i}")
39
  docs.append(ch)
40
  metas.append({"title": title, "source": p})
41
  if not docs:
backend/soap_generator.py CHANGED
@@ -5,12 +5,12 @@ def compose_soap(narrative: str, retrieved: List[Dict]) -> Dict:
5
  assessment, plan = [], ["Safety-net advice and red-flag education.", "Follow-up in 3–7 days or earlier if worse."]
6
  if any(k in text for k in ["bleed","spotting","period","menorrhagia","aub"]):
7
  assessment.append("Abnormal uterine bleeding β€” structural vs hormonal.")
8
- plan.append("Urine pregnancy test if appropriate; CBC; pelvic US if indicated.")
9
  if any(k in text for k in ["pelvic pain","cramp","lower abdominal pain"]):
10
- assessment.append("Pelvic pain β€” rule out infection/cyst/endometriosis.")
11
  plan.append("Trial NSAIDs; pelvic exam/US if persistent.")
12
  if any(k in text for k in ["chest pain","shortness of breath","sob"]):
13
- assessment.append("Chest pain β€” consider ACS/PE; triage red flags immediately.")
14
  plan.append("ECG, vitals; urgent review if high risk.")
15
  if any(k in text for k in ["knee pain","joint","sprain","swelling","injury"]):
16
  assessment.append("MSK complaint β€” ortho evaluation.")
 
5
  assessment, plan = [], ["Safety-net advice and red-flag education.", "Follow-up in 3–7 days or earlier if worse."]
6
  if any(k in text for k in ["bleed","spotting","period","menorrhagia","aub"]):
7
  assessment.append("Abnormal uterine bleeding β€” structural vs hormonal.")
8
+ plan.append("Urine pregnancy test; CBC; pelvic ultrasound if indicated.")
9
  if any(k in text for k in ["pelvic pain","cramp","lower abdominal pain"]):
10
+ assessment.append("Pelvic pain β€” r/o infection/cyst/endometriosis.")
11
  plan.append("Trial NSAIDs; pelvic exam/US if persistent.")
12
  if any(k in text for k in ["chest pain","shortness of breath","sob"]):
13
+ assessment.append("Chest pain β€” consider ACS/PE; triage immediately if red flags.")
14
  plan.append("ECG, vitals; urgent review if high risk.")
15
  if any(k in text for k in ["knee pain","joint","sprain","swelling","injury"]):
16
  assessment.append("MSK complaint β€” ortho evaluation.")
data/guidelines/internal_med/001_Hypertension.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: Chest Pain β€” Internal Medicine Guideline (1)
2
+ Summary: Evidence-aligned triage and management for chest pain in Internal Medicine.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/internal_med/002_Hypertension.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: Asthma β€” Internal Medicine Guideline (2)
2
+ Summary: Evidence-aligned triage and management for asthma in Internal Medicine.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/internal_med/003_Fever_of_Unknown_Origin.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: Asthma β€” Internal Medicine Guideline (3)
2
+ Summary: Evidence-aligned triage and management for asthma in Internal Medicine.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/internal_med/004_Asthma.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: Fever of Unknown Origin β€” Internal Medicine Guideline (4)
2
+ Summary: Evidence-aligned triage and management for fever of unknown origin in Internal Medicine.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/internal_med/005_Fever_of_Unknown_Origin.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: Hypertension β€” Internal Medicine Guideline (5)
2
+ Summary: Evidence-aligned triage and management for hypertension in Internal Medicine.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/internal_med/006_COPD_Exacerbation.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: UTI β€” Internal Medicine Guideline (6)
2
+ Summary: Evidence-aligned triage and management for uti in Internal Medicine.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/internal_med/007_Asthma.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: UTI β€” Internal Medicine Guideline (7)
2
+ Summary: Evidence-aligned triage and management for uti in Internal Medicine.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/internal_med/008_Thyroid_Dysfunction.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: COPD Exacerbation β€” Internal Medicine Guideline (8)
2
+ Summary: Evidence-aligned triage and management for copd exacerbation in Internal Medicine.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/internal_med/009_Diabetes_Mellitus.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: Anemia β€” Internal Medicine Guideline (9)
2
+ Summary: Evidence-aligned triage and management for anemia in Internal Medicine.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/internal_med/010_Thyroid_Dysfunction.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: Diabetes Mellitus β€” Internal Medicine Guideline (10)
2
+ Summary: Evidence-aligned triage and management for diabetes mellitus in Internal Medicine.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/internal_med/011_Fever_of_Unknown_Origin.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: AKI β€” Internal Medicine Guideline (11)
2
+ Summary: Evidence-aligned triage and management for aki in Internal Medicine.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/internal_med/012_Diabetes_Mellitus.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: AKI β€” Internal Medicine Guideline (12)
2
+ Summary: Evidence-aligned triage and management for aki in Internal Medicine.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/internal_med/013_UTI.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: Diabetes Mellitus β€” Internal Medicine Guideline (13)
2
+ Summary: Evidence-aligned triage and management for diabetes mellitus in Internal Medicine.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/internal_med/014_Asthma.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: Diabetes Mellitus β€” Internal Medicine Guideline (14)
2
+ Summary: Evidence-aligned triage and management for diabetes mellitus in Internal Medicine.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/internal_med/015_UTI.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: AKI β€” Internal Medicine Guideline (15)
2
+ Summary: Evidence-aligned triage and management for aki in Internal Medicine.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/internal_med/016_Anemia.txt CHANGED
@@ -1,34 +1,6 @@
1
- Title: Anemia β€” Internal Medicine Guideline (16)
2
-
3
- Clinical Summary:
4
- Evidence-aligned approach to anemia in Internal Medicine. Prioritize red flags, history, and targeted exam; use testing judiciously.
5
-
6
- Symptoms:
7
- - Pattern, onset, severity, modifiers
8
- - Associated: fever, weight loss, bleeding, dyspnea
9
- - Risks: comorbidities, medications, family history
10
-
11
- Differentials:
12
- - Common
13
- - Less common
14
- - Must-not-miss (red flag)
15
-
16
- Investigations:
17
- - First-line labs
18
- - Imaging when indicated
19
- - Decision thresholds
20
-
21
- Management:
22
- - Conservative measures
23
- - Pharmacologic options
24
- - Escalation criteria
25
-
26
- Red Flags:
27
- - Syncope, severe pain, hemodynamic instability
28
- - New neurologic deficits
29
- - Rapid progression or systemic toxicity
30
-
31
- Follow-Up:
32
- - Time-bounded review
33
- - Safety-net advice
34
- - When to return earlier
 
1
+ Title: Asthma β€” Internal Medicine Guideline (16)
2
+ Summary: Evidence-aligned triage and management for asthma in Internal Medicine.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/guidelines/internal_med/017_COPD_Exacerbation.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: Thyroid Dysfunction β€” Internal Medicine Guideline (17)
2
+ Summary: Evidence-aligned triage and management for thyroid dysfunction in Internal Medicine.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/internal_med/018_COPD_Exacerbation.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: Asthma β€” Internal Medicine Guideline (18)
2
+ Summary: Evidence-aligned triage and management for asthma in Internal Medicine.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/internal_med/019_Asthma.txt CHANGED
@@ -1,34 +1,6 @@
1
  Title: Hypertension β€” Internal Medicine Guideline (19)
2
-
3
- Clinical Summary:
4
- Evidence-aligned approach to hypertension in Internal Medicine. Prioritize red flags, history, and targeted exam; use testing judiciously.
5
-
6
- Symptoms:
7
- - Pattern, onset, severity, modifiers
8
- - Associated: fever, weight loss, bleeding, dyspnea
9
- - Risks: comorbidities, medications, family history
10
-
11
- Differentials:
12
- - Common
13
- - Less common
14
- - Must-not-miss (red flag)
15
-
16
- Investigations:
17
- - First-line labs
18
- - Imaging when indicated
19
- - Decision thresholds
20
-
21
- Management:
22
- - Conservative measures
23
- - Pharmacologic options
24
- - Escalation criteria
25
-
26
- Red Flags:
27
- - Syncope, severe pain, hemodynamic instability
28
- - New neurologic deficits
29
- - Rapid progression or systemic toxicity
30
-
31
- Follow-Up:
32
- - Time-bounded review
33
- - Safety-net advice
34
- - When to return earlier
 
1
  Title: Hypertension β€” Internal Medicine Guideline (19)
2
+ Summary: Evidence-aligned triage and management for hypertension in Internal Medicine.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/guidelines/internal_med/020_Fever_of_Unknown_Origin.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: UTI β€” Internal Medicine Guideline (20)
2
+ Summary: Evidence-aligned triage and management for uti in Internal Medicine.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/obgyn/001_AUB.txt CHANGED
@@ -1,34 +1,6 @@
1
- Title: Infertility Workup β€” OBGYN Guideline (1)
2
-
3
- Clinical Summary:
4
- Evidence-aligned approach to infertility workup in OBGYN. Prioritize red flags, history, and targeted exam; use testing judiciously.
5
-
6
- Symptoms:
7
- - Pattern, onset, severity, modifiers
8
- - Associated: fever, weight loss, bleeding, dyspnea
9
- - Risks: comorbidities, medications, family history
10
-
11
- Differentials:
12
- - Common
13
- - Less common
14
- - Must-not-miss (red flag)
15
-
16
- Investigations:
17
- - First-line labs
18
- - Imaging when indicated
19
- - Decision thresholds
20
-
21
- Management:
22
- - Conservative measures
23
- - Pharmacologic options
24
- - Escalation criteria
25
-
26
- Red Flags:
27
- - Syncope, severe pain, hemodynamic instability
28
- - New neurologic deficits
29
- - Rapid progression or systemic toxicity
30
-
31
- Follow-Up:
32
- - Time-bounded review
33
- - Safety-net advice
34
- - When to return earlier
 
1
+ Title: Antenatal Care β€” OBGYN Guideline (1)
2
+ Summary: Evidence-aligned triage and management for antenatal care in OBGYN.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/guidelines/obgyn/002_Fibroids.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: Antenatal Care β€” OBGYN Guideline (2)
2
+ Summary: Evidence-aligned triage and management for antenatal care in OBGYN.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/obgyn/003_PCOS.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: Fibroids β€” OBGYN Guideline (3)
2
+ Summary: Evidence-aligned triage and management for fibroids in OBGYN.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/obgyn/004_Antenatal_Care.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: Ectopic Pregnancy β€” OBGYN Guideline (4)
2
+ Summary: Evidence-aligned triage and management for ectopic pregnancy in OBGYN.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/obgyn/005_Endometriosis.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: Endometriosis β€” OBGYN Guideline (5)
2
+ Summary: Evidence-aligned triage and management for endometriosis in OBGYN.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/obgyn/006_Miscarriage.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: Antenatal Care β€” OBGYN Guideline (6)
2
+ Summary: Evidence-aligned triage and management for antenatal care in OBGYN.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/obgyn/007_Dysmenorrhea.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: AUB β€” OBGYN Guideline (7)
2
+ Summary: Evidence-aligned triage and management for aub in OBGYN.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/obgyn/008_Infertility_Workup.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: PCOS β€” OBGYN Guideline (8)
2
+ Summary: Evidence-aligned triage and management for pcos in OBGYN.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/obgyn/009_Infertility_Workup.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: Infertility Workup β€” OBGYN Guideline (9)
2
+ Summary: Evidence-aligned triage and management for infertility workup in OBGYN.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/obgyn/010_Miscarriage.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: PCOS β€” OBGYN Guideline (10)
2
+ Summary: Evidence-aligned triage and management for pcos in OBGYN.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/obgyn/011_Fibroids.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: Ectopic Pregnancy β€” OBGYN Guideline (11)
2
+ Summary: Evidence-aligned triage and management for ectopic pregnancy in OBGYN.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/obgyn/012_Dysmenorrhea.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: Infertility Workup β€” OBGYN Guideline (12)
2
+ Summary: Evidence-aligned triage and management for infertility workup in OBGYN.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/obgyn/013_Antenatal_Care.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: Dysmenorrhea β€” OBGYN Guideline (13)
2
+ Summary: Evidence-aligned triage and management for dysmenorrhea in OBGYN.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/obgyn/014_Adenomyosis.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: Antenatal Care β€” OBGYN Guideline (14)
2
+ Summary: Evidence-aligned triage and management for antenatal care in OBGYN.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/obgyn/015_Infertility_Workup.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: Endometriosis β€” OBGYN Guideline (15)
2
+ Summary: Evidence-aligned triage and management for endometriosis in OBGYN.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/obgyn/016_Ectopic_Pregnancy.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: Endometriosis β€” OBGYN Guideline (16)
2
+ Summary: Evidence-aligned triage and management for endometriosis in OBGYN.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/obgyn/017_Endometriosis.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: Antenatal Care β€” OBGYN Guideline (17)
2
+ Summary: Evidence-aligned triage and management for antenatal care in OBGYN.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/obgyn/018_Miscarriage.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: Infertility Workup β€” OBGYN Guideline (18)
2
+ Summary: Evidence-aligned triage and management for infertility workup in OBGYN.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/obgyn/019_AUB.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: Miscarriage β€” OBGYN Guideline (19)
2
+ Summary: Evidence-aligned triage and management for miscarriage in OBGYN.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/obgyn/020_Adenomyosis.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: AUB β€” OBGYN Guideline (20)
2
+ Summary: Evidence-aligned triage and management for aub in OBGYN.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/orthopedics/001_ACL_Injury.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: Hip Fracture β€” Orthopedics Guideline (1)
2
+ Summary: Evidence-aligned triage and management for hip fracture in Orthopedics.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/orthopedics/002_Rotator_Cuff_Tear.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: Rotator Cuff Tear β€” Orthopedics Guideline (2)
2
+ Summary: Evidence-aligned triage and management for rotator cuff tear in Orthopedics.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/orthopedics/003_Frozen_Shoulder.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: Frozen Shoulder β€” Orthopedics Guideline (3)
2
+ Summary: Evidence-aligned triage and management for frozen shoulder in Orthopedics.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/orthopedics/004_Low_Back_Pain.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: Cervical Spondylosis β€” Orthopedics Guideline (4)
2
+ Summary: Evidence-aligned triage and management for cervical spondylosis in Orthopedics.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.
data/guidelines/orthopedics/005_Knee_Osteoarthritis.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Title: Knee Osteoarthritis β€” Orthopedics Guideline (5)
2
+ Summary: Evidence-aligned triage and management for knee osteoarthritis in Orthopedics.
3
+ Red Flags: syncope, severe pain, hemodynamic instability.
4
+ Workup: history, focused exam, first-line tests, targeted imaging.
5
+ Management: conservative β†’ pharmacologic β†’ escalation when needed.
6
+ Follow-Up: safety-net advice; return if worse.