name: tooluniverse-clinical-guidelines
description: Search and retrieve clinical practice guidelines across 12+ authoritative sources including NICE, WHO, ADA, AHA/ACC, NCCN, SIGN, CPIC, CMA, CTFPHC, GIN, MAGICapp, PubMed, EuropePMC, TRIP, and OpenAlex. Covers disease management, cardiology, oncology, diabetes, pharmacogenomics, and more. Use when users ask about clinical guidelines, treatment recommendations, standard of care, evidence-based medicine, or drug-gene dosing recommendations.
Clinical Guidelines Search & Retrieval
Search and retrieve evidence-based clinical practice guidelines from 12+ authoritative sources spanning 41 tools. Covers disease management guidelines, society recommendations, pharmacogenomics guidance, and patient resources.
KEY PRINCIPLES:
- Multi-source search — Search ≥3 databases in parallel for comprehensive coverage
- Source-appropriate queries — Match query style to each database's strengths
- Condition + society specific — When user names a disease or society, use targeted tools
- English queries first — Use English medical terms in all tool calls; respond in user's language
- Cite sources — Every guideline result must include source organization and URL
When to Use
Apply when user asks:
- "What are the guidelines for [condition]?"
- "What does [ADA/AHA/NCCN/NICE/WHO] say about [topic]?"
- "Standard of care for [disease]?"
- "Drug-gene interactions for [drug/gene]?" (pharmacogenomics)
- "Screening recommendations for [condition]?"
- "Is there a guideline for [clinical question]?"
- "What do guidelines say about [treatment/drug]?"
- "Clinical recommendations for [oncology topic]?"
Phase 0: Tool Verification (MANDATORY FIRST STEP)
Before searching, verify tools load:
from tooluniverse import ToolUniverse
tu = ToolUniverse()
tu.load_tools()
assert hasattr(tu.tools, 'NICE_Clinical_Guidelines_Search')
Correct call pattern (use either approach):
# Option A: direct attribute access
result = tu.tools.NICE_Clinical_Guidelines_Search(query='diabetes', limit=5)
# Option B: run_one_function
result = tu.run_one_function({'name': 'NICE_Clinical_Guidelines_Search', 'arguments': {'query': 'diabetes', 'limit': 5}})
Phase 1: Identify Query Strategy
Determine which tools to use based on the user's question:
| Query type |
Primary tools |
Secondary tools |
| General disease guideline |
NICE, TRIP, GIN |
PubMed, EuropePMC, CMA |
| Cardiology |
AHA_ACC_search_guidelines, AHA_list_guidelines |
NICE, TRIP |
| Oncology |
NCCN_search_guidelines, NCCN_list_patient_guidelines |
NICE, GIN |
| Diabetes / endocrinology |
ADA_search_standards, ADA_list_standards_sections |
NICE, SIGN |
| Pharmacogenomics |
CPIC_get_gene_drug_pairs, CPIC_list_guidelines |
CPIC_get_gene_info |
| Canadian guidelines |
CMA_Guidelines_Search, CTFPHC_search_guidelines |
— |
| Scottish/UK guidelines |
SIGN_search_guidelines, NICE |
CMA |
| International guidelines |
GIN_Guidelines_Search |
OpenAlex, EuropePMC |
| Living guidelines |
MAGICapp_list_guidelines |
GIN |
| Full-text retrieval |
NICE_Guideline_Full_Text, WHO_Guideline_Full_Text, AHA_ACC_get_guideline |
— |
Phase 2: Multi-Source Search
2.1 General Search (Use ≥3 databases)
NICE_Clinical_Guidelines_Search ⭐ (Best general source)
- Parameters:
query (string, required), limit (integer, required)
- Returns: list directly (NOT wrapped in dict) —
[{title, url, summary, content, date}, ...]
- Handle:
result = tu.tools.NICE_Clinical_Guidelines_Search(...); isinstance(result, list)
- Example:
NICE_Clinical_Guidelines_Search(query='type 2 diabetes management', limit=5)
GIN_Guidelines_Search ⭐ (Best multi-society aggregator)
- Parameters:
query (string, required), limit (integer, required)
- Returns: list directly —
[{title, url, description, source, organization}, ...]
- Example:
GIN_Guidelines_Search(query='colorectal cancer screening', limit=5)
TRIP_Database_Guidelines_Search
- Parameters:
query (string, required), limit (integer, required), search_type (string, required — must be 'guidelines')
- Returns: list directly —
[{title, url, description, content, publication}, ...]
- Example:
TRIP_Database_Guidelines_Search(query='diabetes', limit=5, search_type='guidelines')
WHO_Guidelines_Search ⚠️ (Limited relevance)
- Parameters:
query (string, required), limit (integer, required)
- Returns: list directly —
[{title, url, description, content, source}, ...]
- LIMITATION: Does not reliably filter by topic. May return unrelated recent WHO publications.
- Use for broad international queries; do not rely on for specific disease searches.
- Example:
WHO_Guidelines_Search(query='diabetes', limit=5)
CMA_Guidelines_Search (Canadian)
- Parameters:
query (string, required), limit (integer, required)
- Returns: list directly —
[{title, url, description, content, date}, ...]
- Example:
CMA_Guidelines_Search(query='diabetes', limit=5)
SIGN_search_guidelines (Scottish/UK)
- Parameters:
query (string, required — NOT q), limit (integer, optional)
- Returns: list directly —
[{number, title, topic, published, url}, ...]
- Example:
SIGN_search_guidelines(query='diabetes', limit=5)
CTFPHC_search_guidelines (Canadian prevention)
- Parameters:
query (string, required — NOT q), limit (integer, optional)
- Returns: list directly —
[{title, url, year}, ...]
- Example:
CTFPHC_search_guidelines(query='colorectal cancer', limit=5)
OpenAlex_Guidelines_Search
- Parameters:
query (string, required), limit (integer, required), year_from (integer, optional), year_to (integer, optional)
- Returns: list directly —
[{title, authors, institutions, year, doi}, ...]
- Example:
OpenAlex_Guidelines_Search(query='diabetes management', limit=5) (year params optional)
- With years:
OpenAlex_Guidelines_Search(query='diabetes management', limit=5, year_from=2020, year_to=2024)
EuropePMC_Guidelines_Search
- Parameters:
query (string, required), limit (integer, required)
- Returns: list directly —
[{title, pmid, pmcid, doi, authors}, ...]
- Note: May return loosely relevant results; use for literature discovery not definitive guidelines
- Example:
EuropePMC_Guidelines_Search(query='diabetes guideline', limit=5)
PubMed_Guidelines_Search
- Parameters:
query (string, required), limit (integer, required), api_key (string, optional — use '' for anonymous)
- Returns: list directly —
[{title, pmid, pmcid, doi}, ...]
- Example:
PubMed_Guidelines_Search(query='diabetes guideline', limit=5) (api_key optional)
2.2 Society-Specific Search
ADA Standards of Care (Diabetes)
ADA_list_standards_sections() — No parameters. Lists all 19 sections of ADA Standards of Care (2026).
- Returns list of section titles with PMIDs
ADA_search_standards(query, limit) — Search within ADA Standards.
- Returns: list —
[{title, ...}]
- Note: Uses PubMed corporate author filter. Use broad medical terms, not specific phrases.
- ✅ Works:
'glycemic targets', 'pharmacologic approaches', 'cardiovascular risk'
- ❌ May fail: very specific phrases like
'first-line medication metformin'
ADA_get_standards_section(section_number) — Get metadata for a specific section.
- Returns dict with section abstract (not full PMC text)
AHA/ACC Cardiology
AHA_ACC_search_guidelines(query, limit) — Search AHA/ACC guidelines.
- Returns: list directly —
[{title, ...}]
- Example:
AHA_ACC_search_guidelines(query='heart failure management', limit=5)
AHA_list_guidelines(limit) / ACC_list_guidelines(limit) — List recent guidelines.
AHA_ACC_get_guideline(pmid) — Get full text of AHA/ACC guideline by PMID (via PMC).
- Returns dict with full text
- Example:
AHA_ACC_get_guideline(pmid='37952199')
NCCN Oncology
NCCN_list_patient_guidelines(limit) — List all NCCN patient guideline resources (up to 74).
- Returns: list directly —
[{cancer_type, url, category}, ...]
- ⚠️ Field is
cancer_type, NOT title
- Use
r[i]['cancer_type'] to get the cancer name, r[i]['url'] for URL
NCCN_search_guidelines(query, limit) — Search NCCN publications.
- Returns: list directly —
[{title, ...}]
- Note: Returns PubMed abstracts of NCCN articles (JNCCN), not proprietary guideline text
NCCN_get_patient_guideline(url) — Get full text of a patient guideline.
- Parameter:
url (string) — the full URL from NCCN_list_patient_guidelines
- Example:
NCCN_get_patient_guideline(url='https://www.nccn.org/patientresources/patient-resources/guidelines-for-patients/guidelines-for-patients-details?patientGuidelineId=61')
- ⚠️ Do NOT pass an integer ID — pass the full URL string
MAGICapp Living Guidelines
MAGICapp_list_guidelines(limit) — List living guidelines.
- Returns: dict wrapped —
r.get('data', []) gives the list
- ⚠️ Field is
name, NOT title; use item['name'] for guideline title
- Use
item['guidelineId'] for follow-up calls
MAGICapp_get_guideline(guideline_id) — Get full guideline details.
MAGICapp_get_recommendations(guideline_id) — Get recommendations for a guideline.
MAGICapp_get_sections(guideline_id) — Get sections.
NCI Resources ⚠️ (Research tools catalog, NOT clinical guidelines)
NCI_search_cancer_resources(q, size) — Search NCI Research Resources for Researchers (R4R).
- ⚠️ This is a catalog of bioinformatics tools, datasets, and lab instruments — NOT a clinical guidelines database
- Parameters:
q (NOT query), size (NOT limit — use size for result count)
- Returns: dict —
r.get('data', {}).get('results', []) gives the list
- Useful for: finding analysis tools, datasets, bioinformatics resources related to a cancer type
- Example:
NCI_search_cancer_resources(q='colorectal cancer screening', size=5)
2.3 Pharmacogenomics Search (CPIC)
Recommended workflow for gene-drug queries:
Step 1: CPIC_get_gene_info(genesymbol='GENE') → gene overview
Step 2: CPIC_get_gene_drug_pairs(genesymbol='GENE') → all drug pairs + CPIC levels
Step 3: CPIC_list_guidelines(limit=50) → find guideline_id for gene+drug
Step 4: CPIC_get_recommendations(guideline_id=N) → specific dosing recommendations
Step 5: CPIC_get_alleles(genesymbol='GENE') → allele definitions
All CPIC tools return dict-wrapped: use r.get('data', []) to access results.
CPIC_get_gene_info(genesymbol) — Gene overview.
- Example:
CPIC_get_gene_info(genesymbol='CYP2D6')
CPIC_get_gene_drug_pairs(genesymbol, limit) — All gene-drug interactions with CPIC levels.
- Returns:
data = list of {genesymbol, drugid, cpiclevel, pgkbcalevel, usedforrecommendation, ...}
cpiclevel A/B/C/D: A = strongest evidence
CPIC_list_guidelines(limit) — All CPIC guidelines.
- Returns:
data = list of {name: 'GENE and Drug', guidelineId, url, ...}
- Use to find the
guidelineId for a specific gene+drug pair
CPIC_get_recommendations(guideline_id, limit) — Get dosing recommendations.
- ⚠️ Parameter is
guideline_id (integer), NOT genesymbol
- Workflow: first find guideline_id from
CPIC_list_guidelines, then call this
- Example:
CPIC_get_recommendations(guideline_id=100416, limit=20)
- Returns duplicate records per allele combination — deduplicate by phenotype before presenting
CPIC_get_alleles(genesymbol, limit) — Allele definitions.
- Use
clinicalfunctionalstatus field (NOT functionalstatus which is always null)
- Example:
CPIC_get_alleles(genesymbol='CYP2D6', limit=10)
CPIC_get_drug_info(drugname) — Drug details.
- Example:
CPIC_get_drug_info(drugname='codeine')
CPIC_search_gene_drug_pairs(genesymbol, limit) — Search gene-drug pairs.
- ⚠️ Requires PostgREST filter syntax:
genesymbol='eq.CYP2D6' (not just 'CYP2D6')
- Example:
CPIC_search_gene_drug_pairs(genesymbol='eq.CYP2D6', limit=5)
2.4 Full-Text Retrieval
NICE_Guideline_Full_Text(url) — Get NICE guideline text.
- Use URL from NICE_Clinical_Guidelines_Search results
- Returns dict (may have empty data for some guidelines; try chapter URLs like
.../chapter/Recommendations)
WHO_Guideline_Full_Text(url) — Get WHO guideline text.
- Note: Most WHO T2D content is in PDFs; tool may return PDF link not full text
AHA_ACC_get_guideline(pmid) — Get AHA/ACC guideline text via PMC.
Phase 3: Synthesize Results
3.1 Report Structure
# Clinical Guidelines: [Topic]
## Summary
[2-3 sentence overview of what guidelines say]
## Key Recommendations
### [Source 1: NICE/ADA/NCCN/etc.]
[Key recommendations with evidence grade, URL]
### [Source 2]
[Key recommendations]
## Pharmacogenomics (if applicable)
[CPIC phenotype-to-recommendation table]
## References
[All URLs cited]
3.2 Evidence Grading
- Grade A (ADA) / Class I (AHA) / Strong (SIGN) = high confidence
- Grade B/C = moderate confidence; Grade D / Consensus = expert opinion
- CPIC Level A = strongest PGx evidence; B = moderate; C/D = limited
- Note recommendation year — guidelines vary in currency (SIGN 2025, ADA 2026, NICE Feb 2026)
3.3 CPIC Recommendation Deduplication
CPIC returns multiple records for the same phenotype (one per allele combination). Before presenting:
seen_phenotypes = set()
unique_recs = []
for rec in recs:
phenotype = rec.get('phenotype') or rec.get('lookupkey', '')
if phenotype not in seen_phenotypes:
seen_phenotypes.add(phenotype)
unique_recs.append(rec)
Phase 4: Decision Logic
General disease guideline:
- NICE (
query, limit) — UK, high quality
- GIN (
query, limit) — multi-society aggregator ⭐ best for breadth
- TRIP (
query, limit, search_type='guidelines')
- If cardiac → add AHA_ACC_search_guidelines
- If cancer → add NCCN_search_guidelines + NCCN_list_patient_guidelines
- If diabetes → add ADA_list_standards_sections + ADA_search_standards
Pharmacogenomics:
CPIC_get_gene_info(genesymbol) → overview
CPIC_get_gene_drug_pairs(genesymbol) → all drugs with CPIC levels
CPIC_list_guidelines(limit=50) → find guideline_id for target gene+drug
CPIC_get_recommendations(guideline_id=N) → specific recs (deduplicate by phenotype)
Full text retrieval:
- Find guideline URL/PMID from search results
- NICE URL → NICE_Guideline_Full_Text
- AHA/ACC PMID → AHA_ACC_get_guideline
- WHO URL → WHO_Guideline_Full_Text
- NCCN patient guideline URL → NCCN_get_patient_guideline
Fallback strategy:
- If NICE returns empty → try TRIP or GIN
- If ADA returns 0 results → broaden query terms (e.g.,
'pharmacologic approaches' instead of 'metformin first-line')
- If WHO returns irrelevant results → skip WHO, use GIN or EuropePMC instead
- If CPIC returns no recommendations → list gene-drug pairs with CPIC levels as a proxy
Critical Parameter Notes (Verified by Testing)
| Tool |
CORRECT |
WRONG |
| NICE_Clinical_Guidelines_Search |
query='...', limit=N (both required) |
❌ q='...' |
| TRIP_Database_Guidelines_Search |
search_type='guidelines' required |
❌ omitting search_type |
| OpenAlex_Guidelines_Search |
year_from/year_to are optional |
❌ treating as required |
| PubMed_Guidelines_Search |
api_key is optional (omit or use '') |
❌ treating api_key as required |
| GIN_Guidelines_Search |
limit=N required |
❌ omitting limit |
| CMA_Guidelines_Search |
limit=N required |
❌ omitting limit |
| SIGN_search_guidelines |
query='...' (NOT q) |
❌ q='...' |
| CTFPHC_search_guidelines |
query='...' (NOT q) |
❌ q='...' |
| NCI_search_cancer_resources |
q='...', size=N (NOT limit) |
❌ query=... or limit=N |
| NCCN_list_patient_guidelines |
field cancer_type (not title) |
❌ .get('title') |
| NCCN_get_patient_guideline |
url='https://...' (full URL string) |
❌ integer patientGuidelineId |
| MAGICapp_list_guidelines |
r.get('data', []) for list |
❌ accessing r directly as list |
| MAGICapp_* items |
field name (not title) |
❌ .get('title') |
| CPIC_* tools |
r.get('data', []) for list |
❌ accessing r directly |
| CPIC_get_recommendations |
guideline_id=N (integer) |
❌ genesymbol='CYP2D6' |
| CPIC_search_gene_drug_pairs |
genesymbol='eq.CYP2D6' (PostgREST) |
❌ genesymbol='CYP2D6' |
| CPIC_get_alleles |
use clinicalfunctionalstatus field |
❌ functionalstatus (always null) |
| NCI_search_cancer_resources |
r.get('data',{}).get('results',[]) |
❌ r.get('data', []) |
Response Format Reference
| Tool |
Return type |
Access pattern |
| NICE_Clinical_Guidelines_Search |
list (raw) |
result[0]['title'] |
| GIN_Guidelines_Search |
list (raw) |
result[0]['title'] |
| TRIP_Database_Guidelines_Search |
list (raw) |
result[0]['title'] |
| WHO_Guidelines_Search |
list (raw) |
result[0]['title'] |
| EuropePMC_Guidelines_Search |
list (raw) |
result[0]['title'] |
| PubMed_Guidelines_Search |
list (raw) |
result[0]['title'] |
| CMA_Guidelines_Search |
list (raw) |
result[0]['title'] |
| SIGN_search_guidelines |
list (raw) |
result[0]['title'] |
| CTFPHC_search_guidelines |
list (raw) |
result[0]['title'] |
| ADA_search_standards |
list (raw) |
result[0]['title'] |
| AHA_ACC_search_guidelines |
list (raw) |
result[0]['title'] |
| NCCN_search_guidelines |
list (raw) |
result[0]['title'] |
| NCCN_list_patient_guidelines |
list (raw) |
result[0]['cancer_type'] |
| OpenAlex_Guidelines_Search |
list (raw) |
result[0]['title'] |
| CPIC_list_guidelines |
dict → data |
r.get('data', [])[0]['name'] |
| CPIC_get_gene_drug_pairs |
dict → data |
r.get('data', [])[0]['genesymbol'] |
| CPIC_get_recommendations |
dict → data |
r.get('data', [])[0] |
| CPIC_get_gene_info |
dict → data |
r.get('data', {}) |
| MAGICapp_list_guidelines |
dict → data |
r.get('data', [])[0]['name'] |
| NCI_search_cancer_resources |
dict nested |
r.get('data',{}).get('results',[])[0]['title'] |
Known Limitations
- WHO_Guidelines_Search: Returns recently-published WHO docs regardless of query topic — results may be irrelevant for specific diseases. Supplement with GIN for international guidelines.
- NCI_search_cancer_resources: Catalogs research tools/datasets, NOT clinical practice guidelines.
- NICE_Guideline_Full_Text: Retrieves overview page only; recommendation sub-pages (
.../chapter/Recommendations) may need direct URL
- SIGN: No full-text tool; guideline text only available as PDFs
- ADA_get_standards_section: Returns abstract only, not full PMC text
- CPIC_get_recommendations: Returns many duplicate records per allele combination; deduplicate by phenotype
- NCCN_search_guidelines: Returns PubMed/JNCCN abstracts, not proprietary NCCN guideline text
- TRIP content: Some TRIP results link to PDF-gated URLs; content extraction may fail with 403
Missing Sources (Potential Future Tools)
- USPSTF (US Preventive Services Task Force) — primary US screening recommendations
- ACG (American College of Gastroenterology) — gastroenterology guidelines
- AGA (American Gastroenterological Association)
- Cochrane Reviews — systematic reviews on clinical interventions
- AHRQ — Agency for Healthcare Research and Quality
1---2name: clinical-guidelines3description: ToolUniverse workflow — Clinical Guidelines4---56---7name: tooluniverse-clinical-guidelines8description: Search and retrieve clinical practice guidelines across 12+ authoritative sources including NICE, WHO, ADA, AHA/ACC, NCCN, SIGN, CPIC, CMA, CTFPHC, GIN, MAGICapp, PubMed, EuropePMC, TRIP, and OpenAlex. Covers disease management, cardiology, oncology, diabetes, pharmacogenomics, and more. Use when users ask about clinical guidelines, treatment recommendations, standard of care, evidence-based medicine, or drug-gene dosing recommendations.9---1011# Clinical Guidelines Search & Retrieval1213Search and retrieve evidence-based clinical practice guidelines from 12+ authoritative sources spanning 41 tools. Covers disease management guidelines, society recommendations, pharmacogenomics guidance, and patient resources.1415**KEY PRINCIPLES**:161. **Multi-source search** — Search ≥3 databases in parallel for comprehensive coverage172. **Source-appropriate queries** — Match query style to each database's strengths183. **Condition + society specific** — When user names a disease or society, use targeted tools194. **English queries first** — Use English medical terms in all tool calls; respond in user's language205. **Cite sources** — Every guideline result must include source organization and URL2122---2324## When to Use2526Apply when user asks:27- "What are the guidelines for [condition]?"28- "What does [ADA/AHA/NCCN/NICE/WHO] say about [topic]?"29- "Standard of care for [disease]?"30- "Drug-gene interactions for [drug/gene]?" (pharmacogenomics)31- "Screening recommendations for [condition]?"32- "Is there a guideline for [clinical question]?"33- "What do guidelines say about [treatment/drug]?"34- "Clinical recommendations for [oncology topic]?"3536---3738## Phase 0: Tool Verification (MANDATORY FIRST STEP)3940Before searching, verify tools load:4142```python43from tooluniverse import ToolUniverse44tu = ToolUniverse()45tu.load_tools()46assert hasattr(tu.tools, 'NICE_Clinical_Guidelines_Search')47```4849**Correct call pattern** (use either approach):50```python51# Option A: direct attribute access52result = tu.tools.NICE_Clinical_Guidelines_Search(query='diabetes', limit=5)5354# Option B: run_one_function55result = tu.run_one_function({'name': 'NICE_Clinical_Guidelines_Search', 'arguments': {'query': 'diabetes', 'limit': 5}})56```5758---5960## Phase 1: Identify Query Strategy6162Determine which tools to use based on the user's question:6364| Query type | Primary tools | Secondary tools |65|-----------|---------------|-----------------|66| General disease guideline | NICE, TRIP, GIN | PubMed, EuropePMC, CMA |67| Cardiology | AHA_ACC_search_guidelines, AHA_list_guidelines | NICE, TRIP |68| Oncology | NCCN_search_guidelines, NCCN_list_patient_guidelines | NICE, GIN |69| Diabetes / endocrinology | ADA_search_standards, ADA_list_standards_sections | NICE, SIGN |70| Pharmacogenomics | CPIC_get_gene_drug_pairs, CPIC_list_guidelines | CPIC_get_gene_info |71| Canadian guidelines | CMA_Guidelines_Search, CTFPHC_search_guidelines | — |72| Scottish/UK guidelines | SIGN_search_guidelines, NICE | CMA |73| International guidelines | GIN_Guidelines_Search | OpenAlex, EuropePMC |74| Living guidelines | MAGICapp_list_guidelines | GIN |75| Full-text retrieval | NICE_Guideline_Full_Text, WHO_Guideline_Full_Text, AHA_ACC_get_guideline | — |7677---7879## Phase 2: Multi-Source Search8081### 2.1 General Search (Use ≥3 databases)8283**NICE_Clinical_Guidelines_Search** ⭐ (Best general source)84- Parameters: `query` (string, required), `limit` (integer, required)85- Returns: **list** directly (NOT wrapped in dict) — `[{title, url, summary, content, date}, ...]`86- Handle: `result = tu.tools.NICE_Clinical_Guidelines_Search(...); isinstance(result, list)`87- Example: `NICE_Clinical_Guidelines_Search(query='type 2 diabetes management', limit=5)`8889**GIN_Guidelines_Search** ⭐ (Best multi-society aggregator)90- Parameters: `query` (string, required), `limit` (integer, required)91- Returns: **list** directly — `[{title, url, description, source, organization}, ...]`92- Example: `GIN_Guidelines_Search(query='colorectal cancer screening', limit=5)`9394**TRIP_Database_Guidelines_Search**95- Parameters: `query` (string, required), `limit` (integer, required), `search_type` (string, required — **must be `'guidelines'`**)96- Returns: **list** directly — `[{title, url, description, content, publication}, ...]`97- Example: `TRIP_Database_Guidelines_Search(query='diabetes', limit=5, search_type='guidelines')`9899**WHO_Guidelines_Search** ⚠️ (Limited relevance)100- Parameters: `query` (string, required), `limit` (integer, required)101- Returns: **list** directly — `[{title, url, description, content, source}, ...]`102- **LIMITATION**: Does not reliably filter by topic. May return unrelated recent WHO publications.103- Use for broad international queries; do not rely on for specific disease searches.104- Example: `WHO_Guidelines_Search(query='diabetes', limit=5)`105106**CMA_Guidelines_Search** (Canadian)107- Parameters: `query` (string, required), `limit` (integer, required)108- Returns: **list** directly — `[{title, url, description, content, date}, ...]`109- Example: `CMA_Guidelines_Search(query='diabetes', limit=5)`110111**SIGN_search_guidelines** (Scottish/UK)112- Parameters: `query` (string, required — NOT `q`), `limit` (integer, optional)113- Returns: **list** directly — `[{number, title, topic, published, url}, ...]`114- Example: `SIGN_search_guidelines(query='diabetes', limit=5)`115116**CTFPHC_search_guidelines** (Canadian prevention)117- Parameters: `query` (string, required — NOT `q`), `limit` (integer, optional)118- Returns: **list** directly — `[{title, url, year}, ...]`119- Example: `CTFPHC_search_guidelines(query='colorectal cancer', limit=5)`120121**OpenAlex_Guidelines_Search**122- Parameters: `query` (string, required), `limit` (integer, required), `year_from` (integer, **optional**), `year_to` (integer, **optional**)123- Returns: **list** directly — `[{title, authors, institutions, year, doi}, ...]`124- Example: `OpenAlex_Guidelines_Search(query='diabetes management', limit=5)` (year params optional)125- With years: `OpenAlex_Guidelines_Search(query='diabetes management', limit=5, year_from=2020, year_to=2024)`126127**EuropePMC_Guidelines_Search**128- Parameters: `query` (string, required), `limit` (integer, required)129- Returns: **list** directly — `[{title, pmid, pmcid, doi, authors}, ...]`130- Note: May return loosely relevant results; use for literature discovery not definitive guidelines131- Example: `EuropePMC_Guidelines_Search(query='diabetes guideline', limit=5)`132133**PubMed_Guidelines_Search**134- Parameters: `query` (string, required), `limit` (integer, required), `api_key` (string, **optional** — use `''` for anonymous)135- Returns: **list** directly — `[{title, pmid, pmcid, doi}, ...]`136- Example: `PubMed_Guidelines_Search(query='diabetes guideline', limit=5)` (api_key optional)137138### 2.2 Society-Specific Search139140**ADA Standards of Care (Diabetes)**141142`ADA_list_standards_sections()` — No parameters. Lists all 19 sections of ADA Standards of Care (2026).143- Returns list of section titles with PMIDs144145`ADA_search_standards(query, limit)` — Search within ADA Standards.146- Returns: list — `[{title, ...}]`147- **Note**: Uses PubMed corporate author filter. Use broad medical terms, not specific phrases.148- ✅ Works: `'glycemic targets'`, `'pharmacologic approaches'`, `'cardiovascular risk'`149- ❌ May fail: very specific phrases like `'first-line medication metformin'`150151`ADA_get_standards_section(section_number)` — Get metadata for a specific section.152- Returns dict with section abstract (not full PMC text)153154**AHA/ACC Cardiology**155156`AHA_ACC_search_guidelines(query, limit)` — Search AHA/ACC guidelines.157- Returns: **list** directly — `[{title, ...}]`158- Example: `AHA_ACC_search_guidelines(query='heart failure management', limit=5)`159160`AHA_list_guidelines(limit)` / `ACC_list_guidelines(limit)` — List recent guidelines.161162`AHA_ACC_get_guideline(pmid)` — Get full text of AHA/ACC guideline by PMID (via PMC).163- Returns dict with full text164- Example: `AHA_ACC_get_guideline(pmid='37952199')`165166**NCCN Oncology**167168`NCCN_list_patient_guidelines(limit)` — List all NCCN patient guideline resources (up to 74).169- Returns: **list** directly — `[{cancer_type, url, category}, ...]`170- ⚠️ Field is `cancer_type`, NOT `title`171- Use `r[i]['cancer_type']` to get the cancer name, `r[i]['url']` for URL172173`NCCN_search_guidelines(query, limit)` — Search NCCN publications.174- Returns: **list** directly — `[{title, ...}]`175- Note: Returns PubMed abstracts of NCCN articles (JNCCN), not proprietary guideline text176177`NCCN_get_patient_guideline(url)` — Get full text of a patient guideline.178- Parameter: `url` (string) — the full URL from NCCN_list_patient_guidelines179- Example: `NCCN_get_patient_guideline(url='https://www.nccn.org/patientresources/patient-resources/guidelines-for-patients/guidelines-for-patients-details?patientGuidelineId=61')`180- ⚠️ Do NOT pass an integer ID — pass the full URL string181182**MAGICapp Living Guidelines**183184`MAGICapp_list_guidelines(limit)` — List living guidelines.185- Returns: **dict wrapped** — `r.get('data', [])` gives the list186- ⚠️ Field is `name`, NOT `title`; use `item['name']` for guideline title187- Use `item['guidelineId']` for follow-up calls188189`MAGICapp_get_guideline(guideline_id)` — Get full guideline details.190`MAGICapp_get_recommendations(guideline_id)` — Get recommendations for a guideline.191`MAGICapp_get_sections(guideline_id)` — Get sections.192193**NCI Resources** ⚠️ (Research tools catalog, NOT clinical guidelines)194195`NCI_search_cancer_resources(q, size)` — Search NCI Research Resources for Researchers (R4R).196- ⚠️ **This is a catalog of bioinformatics tools, datasets, and lab instruments — NOT a clinical guidelines database**197- Parameters: `q` (NOT `query`), `size` (NOT `limit` — use `size` for result count)198- Returns: dict — `r.get('data', {}).get('results', [])` gives the list199- Useful for: finding analysis tools, datasets, bioinformatics resources related to a cancer type200- Example: `NCI_search_cancer_resources(q='colorectal cancer screening', size=5)`201202### 2.3 Pharmacogenomics Search (CPIC)203204**Recommended workflow for gene-drug queries:**205206```207Step 1: CPIC_get_gene_info(genesymbol='GENE') → gene overview208Step 2: CPIC_get_gene_drug_pairs(genesymbol='GENE') → all drug pairs + CPIC levels209Step 3: CPIC_list_guidelines(limit=50) → find guideline_id for gene+drug210Step 4: CPIC_get_recommendations(guideline_id=N) → specific dosing recommendations211Step 5: CPIC_get_alleles(genesymbol='GENE') → allele definitions212```213214All CPIC tools return **dict-wrapped**: use `r.get('data', [])` to access results.215216`CPIC_get_gene_info(genesymbol)` — Gene overview.217- Example: `CPIC_get_gene_info(genesymbol='CYP2D6')`218219`CPIC_get_gene_drug_pairs(genesymbol, limit)` — All gene-drug interactions with CPIC levels.220- Returns: `data` = list of `{genesymbol, drugid, cpiclevel, pgkbcalevel, usedforrecommendation, ...}`221- `cpiclevel` A/B/C/D: A = strongest evidence222223`CPIC_list_guidelines(limit)` — All CPIC guidelines.224- Returns: `data` = list of `{name: 'GENE and Drug', guidelineId, url, ...}`225- Use to find the `guidelineId` for a specific gene+drug pair226227`CPIC_get_recommendations(guideline_id, limit)` — Get dosing recommendations.228- ⚠️ **Parameter is `guideline_id` (integer), NOT `genesymbol`**229- Workflow: first find guideline_id from `CPIC_list_guidelines`, then call this230- Example: `CPIC_get_recommendations(guideline_id=100416, limit=20)`231- Returns duplicate records per allele combination — deduplicate by phenotype before presenting232233`CPIC_get_alleles(genesymbol, limit)` — Allele definitions.234- Use `clinicalfunctionalstatus` field (NOT `functionalstatus` which is always null)235- Example: `CPIC_get_alleles(genesymbol='CYP2D6', limit=10)`236237`CPIC_get_drug_info(drugname)` — Drug details.238- Example: `CPIC_get_drug_info(drugname='codeine')`239240`CPIC_search_gene_drug_pairs(genesymbol, limit)` — Search gene-drug pairs.241- ⚠️ **Requires PostgREST filter syntax**: `genesymbol='eq.CYP2D6'` (not just `'CYP2D6'`)242- Example: `CPIC_search_gene_drug_pairs(genesymbol='eq.CYP2D6', limit=5)`243244### 2.4 Full-Text Retrieval245246`NICE_Guideline_Full_Text(url)` — Get NICE guideline text.247- Use URL from NICE_Clinical_Guidelines_Search results248- Returns dict (may have empty data for some guidelines; try chapter URLs like `.../chapter/Recommendations`)249250`WHO_Guideline_Full_Text(url)` — Get WHO guideline text.251- Note: Most WHO T2D content is in PDFs; tool may return PDF link not full text252253`AHA_ACC_get_guideline(pmid)` — Get AHA/ACC guideline text via PMC.254255---256257## Phase 3: Synthesize Results258259### 3.1 Report Structure260261```262# Clinical Guidelines: [Topic]263264## Summary265[2-3 sentence overview of what guidelines say]266267## Key Recommendations268269### [Source 1: NICE/ADA/NCCN/etc.]270[Key recommendations with evidence grade, URL]271272### [Source 2]273[Key recommendations]274275## Pharmacogenomics (if applicable)276[CPIC phenotype-to-recommendation table]277278## References279[All URLs cited]280```281282### 3.2 Evidence Grading283284- **Grade A** (ADA) / **Class I** (AHA) / **Strong** (SIGN) = high confidence285- **Grade B/C** = moderate confidence; **Grade D** / **Consensus** = expert opinion286- **CPIC Level A** = strongest PGx evidence; **B** = moderate; **C/D** = limited287- Note recommendation year — guidelines vary in currency (SIGN 2025, ADA 2026, NICE Feb 2026)288289### 3.3 CPIC Recommendation Deduplication290291CPIC returns multiple records for the same phenotype (one per allele combination). Before presenting:292```python293seen_phenotypes = set()294unique_recs = []295for rec in recs:296 phenotype = rec.get('phenotype') or rec.get('lookupkey', '')297 if phenotype not in seen_phenotypes:298 seen_phenotypes.add(phenotype)299 unique_recs.append(rec)300```301302---303304## Phase 4: Decision Logic305306### General disease guideline:3071. NICE (`query`, `limit`) — UK, high quality3082. GIN (`query`, `limit`) — multi-society aggregator ⭐ best for breadth3093. TRIP (`query`, `limit`, `search_type='guidelines'`)3104. If cardiac → add AHA_ACC_search_guidelines3115. If cancer → add NCCN_search_guidelines + NCCN_list_patient_guidelines3126. If diabetes → add ADA_list_standards_sections + ADA_search_standards313314### Pharmacogenomics:3151. `CPIC_get_gene_info(genesymbol)` → overview3162. `CPIC_get_gene_drug_pairs(genesymbol)` → all drugs with CPIC levels3173. `CPIC_list_guidelines(limit=50)` → find guideline_id for target gene+drug3184. `CPIC_get_recommendations(guideline_id=N)` → specific recs (deduplicate by phenotype)319320### Full text retrieval:3211. Find guideline URL/PMID from search results3222. NICE URL → NICE_Guideline_Full_Text3233. AHA/ACC PMID → AHA_ACC_get_guideline3244. WHO URL → WHO_Guideline_Full_Text3255. NCCN patient guideline URL → NCCN_get_patient_guideline326327### Fallback strategy:328- If NICE returns empty → try TRIP or GIN329- If ADA returns 0 results → broaden query terms (e.g., `'pharmacologic approaches'` instead of `'metformin first-line'`)330- If WHO returns irrelevant results → skip WHO, use GIN or EuropePMC instead331- If CPIC returns no recommendations → list gene-drug pairs with CPIC levels as a proxy332333---334335## Critical Parameter Notes (Verified by Testing)336337| Tool | CORRECT | WRONG |338|------|---------|-------|339| NICE_Clinical_Guidelines_Search | `query='...'`, `limit=N` (both required) | ❌ `q='...'` |340| TRIP_Database_Guidelines_Search | `search_type='guidelines'` required | ❌ omitting search_type |341| OpenAlex_Guidelines_Search | `year_from`/`year_to` are **optional** | ❌ treating as required |342| PubMed_Guidelines_Search | `api_key` is **optional** (omit or use `''`) | ❌ treating api_key as required |343| GIN_Guidelines_Search | `limit=N` required | ❌ omitting limit |344| CMA_Guidelines_Search | `limit=N` required | ❌ omitting limit |345| SIGN_search_guidelines | `query='...'` (NOT `q`) | ❌ `q='...'` |346| CTFPHC_search_guidelines | `query='...'` (NOT `q`) | ❌ `q='...'` |347| NCI_search_cancer_resources | `q='...'`, `size=N` (NOT `limit`) | ❌ `query=...` or `limit=N` |348| NCCN_list_patient_guidelines | field `cancer_type` (not `title`) | ❌ `.get('title')` |349| NCCN_get_patient_guideline | `url='https://...'` (full URL string) | ❌ integer patientGuidelineId |350| MAGICapp_list_guidelines | `r.get('data', [])` for list | ❌ accessing `r` directly as list |351| MAGICapp_* items | field `name` (not `title`) | ❌ `.get('title')` |352| CPIC_* tools | `r.get('data', [])` for list | ❌ accessing `r` directly |353| CPIC_get_recommendations | `guideline_id=N` (integer) | ❌ `genesymbol='CYP2D6'` |354| CPIC_search_gene_drug_pairs | `genesymbol='eq.CYP2D6'` (PostgREST) | ❌ `genesymbol='CYP2D6'` |355| CPIC_get_alleles | use `clinicalfunctionalstatus` field | ❌ `functionalstatus` (always null) |356| NCI_search_cancer_resources | `r.get('data',{}).get('results',[])` | ❌ `r.get('data', [])` |357358---359360## Response Format Reference361362| Tool | Return type | Access pattern |363|------|-------------|----------------|364| NICE_Clinical_Guidelines_Search | **list** (raw) | `result[0]['title']` |365| GIN_Guidelines_Search | **list** (raw) | `result[0]['title']` |366| TRIP_Database_Guidelines_Search | **list** (raw) | `result[0]['title']` |367| WHO_Guidelines_Search | **list** (raw) | `result[0]['title']` |368| EuropePMC_Guidelines_Search | **list** (raw) | `result[0]['title']` |369| PubMed_Guidelines_Search | **list** (raw) | `result[0]['title']` |370| CMA_Guidelines_Search | **list** (raw) | `result[0]['title']` |371| SIGN_search_guidelines | **list** (raw) | `result[0]['title']` |372| CTFPHC_search_guidelines | **list** (raw) | `result[0]['title']` |373| ADA_search_standards | **list** (raw) | `result[0]['title']` |374| AHA_ACC_search_guidelines | **list** (raw) | `result[0]['title']` |375| NCCN_search_guidelines | **list** (raw) | `result[0]['title']` |376| NCCN_list_patient_guidelines | **list** (raw) | `result[0]['cancer_type']` |377| OpenAlex_Guidelines_Search | **list** (raw) | `result[0]['title']` |378| CPIC_list_guidelines | **dict** → `data` | `r.get('data', [])[0]['name']` |379| CPIC_get_gene_drug_pairs | **dict** → `data` | `r.get('data', [])[0]['genesymbol']` |380| CPIC_get_recommendations | **dict** → `data` | `r.get('data', [])[0]` |381| CPIC_get_gene_info | **dict** → `data` | `r.get('data', {})` |382| MAGICapp_list_guidelines | **dict** → `data` | `r.get('data', [])[0]['name']` |383| NCI_search_cancer_resources | **dict** nested | `r.get('data',{}).get('results',[])[0]['title']` |384385---386387## Known Limitations388389- **WHO_Guidelines_Search**: Returns recently-published WHO docs regardless of query topic — results may be irrelevant for specific diseases. Supplement with GIN for international guidelines.390- **NCI_search_cancer_resources**: Catalogs research tools/datasets, NOT clinical practice guidelines.391- **NICE_Guideline_Full_Text**: Retrieves overview page only; recommendation sub-pages (`.../chapter/Recommendations`) may need direct URL392- **SIGN**: No full-text tool; guideline text only available as PDFs393- **ADA_get_standards_section**: Returns abstract only, not full PMC text394- **CPIC_get_recommendations**: Returns many duplicate records per allele combination; deduplicate by phenotype395- **NCCN_search_guidelines**: Returns PubMed/JNCCN abstracts, not proprietary NCCN guideline text396- **TRIP content**: Some TRIP results link to PDF-gated URLs; content extraction may fail with 403397398## Missing Sources (Potential Future Tools)399400- **USPSTF** (US Preventive Services Task Force) — primary US screening recommendations401- **ACG** (American College of Gastroenterology) — gastroenterology guidelines402- **AGA** (American Gastroenterological Association)403- **Cochrane Reviews** — systematic reviews on clinical interventions404- **AHRQ** — Agency for Healthcare Research and Quality