agentsclimarketplace

Pubmed search

Skill aizech/clinical-skills/skills/platform-integration/pubmed-search

A collection of AI agent skills focused on medical imaging and healthcare workflows. Built for radiologists, healthcare IT professionals, and researchers who want AI coding agents to help with imaging workflows, clinical documentation, AI integration, and medical research. Works with Claude Code, Codex, Cursor, Windsurf, and many other agents.

Install
npx -y skills add aizech/clinical-skills --skill pubmed-search

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Evidence-based literature search for radiology. Also use when the user needs to find relevant studies, guidelines, clinical evidence, systematic reviews, or research papers for imaging findings. For guideline-specific searches, see guideline-integration.

SKILL.md

9.0 KB, as published. Nobody here has run it

PubMed Search for Radiology

You are a medical literature search expert. Your role is to help users find relevant, high-quality research for radiology applications.

PubMed API Overview

NCBI Entrez API

ServiceEndpointPurpose
ESearch/esearch.fcgiSearch for article IDs
ESummary/esummary.fcgiGet article summaries
EFetch/efetch.fcgiGet full article details
ELink/elink.fcgiFind related articles
EGQuery/egquery.fcgiGlobal search

Base URL

https://eutils.ncbi.nlm.nih.gov/entrez/eutils/

Search Construction

Basic Search

import requests
from urllib.parse import urlencode

BASE_URL = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils"

def pubmed_search(query, max_results=20, date_filter=None):
    """
    Search PubMed for articles.
    
    Args:
        query: Search terms (use [MeSH] for controlled vocabulary)
        max_results: Maximum number of results
        date_filter: Optional date restriction (e.g., "2020:2026")
    """
    params = {
        "db": "pubmed",
        "term": query,
        "retmax": max_results,
        "retmode": "json",
        "sort": "relevance"
    }
    
    if date_filter:
        params["datetype"] = "pdat"
        params["reldate"] = date_filter
    
    response = requests.get(f"{BASE_URL}/esearch.fcgi", params=params)
    return response.json()

Search Query Syntax

OperatorExampleDescription
AND"lung nodule" AND "AI"Both terms required
OR"MRI" OR "CT"Either term
NOT"COVID" NOT "pneumonia"Exclude term
[MeSH]"Neoplasm"[MeSH]MeSH controlled vocabulary
[tiab]"cancer"[tiab]Title/abstract only
[ti]"lung cancer"[ti]Title only
[au]"Smith J"[au]Author search

Radiology-Specific Searches

Imaging Modality Studies

# CT Studies
def search_ct_studies(topic, years=5):
    return pubmed_search(
        f"({topic}) AND (CT[tiab] OR 'computed tomography'[tiab])",
        date_filter=f"{years}[dp]"
    )

# MRI Studies  
def search_mri_studies(topic, years=5):
    return pubmed_search(
        f"({topic}) AND (MRI[tiab] OR 'magnetic resonance'[tiab])",
        date_filter=f"{years}[dp]"
    )

# X-ray Studies
def search_xray_studies(topic, years=5):
    return pubmed_search(
        f"({topic}) AND (X-ray[tiab] OR 'radiograph'[tiab])",
        date_filter=f"{years}[dp]"
    )

# Ultrasound
def search_ultrasound_studies(topic, years=5):
    return pubmed_search(
        f"({topic}) AND (ultrasound[tiab] OR 'sonography'[tiab])",
        date_filter=f"{years}[dp]"
    )

AI/ML in Radiology

def search_ai_radiology(max_results=50):
    """Search for AI/ML papers in radiology."""
    query = """
    (deep learning[tiab] OR machine learning[tiab] OR 
     artificial intelligence[tiab] OR neural network[tiab] OR
     convolutional[tiab] OR CNN[tiab] OR AI[tiab])
    AND (radiology[tiab] OR radiologist[tiab] OR 
         imaging[tiab] OR diagnostic imaging[tiab])
    """
    return pubmed_search(query, max_results=max_results)

Guideline Searches

def search_guidelines(condition, modality=None):
    """Search for clinical guidelines."""
    query = f"({condition})"
    
    if modality:
        query += f" AND ({modality})"
    
    query += """ AND 
    (guideline[pt] OR practice guideline[pt] OR 
     recommendation[tiab] OR consensus[tiab])"""
    
    return pubmed_search(query)

Systematic Reviews

def search_systematic_review(topic):
    """Find systematic reviews."""
    query = f"({topic}) AND (systematic[pt] OR 'systematic review'[tiab])"
    return pubmed_search(query)

Get Article Details

def get_article_details(pmids):
    """Get detailed article information."""
    if isinstance(pmids, str):
        pmids = [pmids]
    
    params = {
        "db": "pubmed",
        "id": ",".join(pmids),
        "retmode": "xml"
    }
    
    response = requests.get(f"{BASE_URL}/efetch.fcgi", params=params)
    return response.text  # Parse XML as needed

Extract Key Information

def extract_article_info(xml_text):
    """Extract key fields from PubMed XML."""
    import xml.etree.ElementTree as ET
    
    root = ET.fromstring(xml_text)
    articles = []
    
    for article in root.findall(".//PubmedArticle"):
        info = {
            "pmid": article.findtext(".//PMID"),
            "title": article.findtext(".//ArticleTitle"),
            "abstract": article.findtext(".//AbstractText"),
            "authors": [
                auth.findtext("LastName") + ", " + auth.findtext("ForeName")
                for auth in article.findall(".//Author")
            ],
            "journal": article.findtext(".//Journal/Title"),
            "pub_date": article.findtext(".//PubDate/Year"),
            "doi": article.findtext(".//ArticleIdList/ArticleId[@IdType='doi']")
        }
        articles.append(info)
    
    return articles

Citation Analysis

def find_related_articles(pmid):
    """Find articles related to a specific paper."""
    params = {
        "dbfrom": "pubmed",
        "id": pmid,
        "linkname": "pubmed_pubmed"
    }
    
    response = requests.get(f"{BASE_URL}/elink.fcgi", params=params)
    return response.json()

def get_citation_count(pmid):
    """Get citation count for an article."""
    params = {
        "db": "pubmed",
        "id": pmid,
        "retmode": "json"
    }
    
    response = requests.get(f"{BASE_URL}/esummary.fcgi", params=params)
    data = response.json()
    
    return data.get("result", {}).get(pmid, {}).get("citationcount", 0)

Clinical Trials

def search_clinical_trials(condition):
    """Search ClinicalTrials.gov for relevant trials."""
    base_url = "https://clinicaltrials.gov/api/v2"
    
    params = {
        "query.term": condition,
        "filter.advanced": "radiology[AreaOfResearch]",
        "pageSize": 20
    }
    
    response = requests.get(f"{base_url}/studies", params=params)
    return response.json()

ACR Guidelines

Common ACR Search Terms

TopicSearch Terms
Incidental Findings"incidental"[tiab] AND ("ACR"[tiab] OR "American College"[tiab])
Lung Nodules"pulmonary nodule"[tiab] AND "ACR"[tiab]
TI-RADS"TI-RADS"[tiab] OR "thyroid imaging"[tiab]
LI-RADS"LI-RADS"[tiab] OR "liver imaging"[tiab]
PI-RADS"PI-RADS"[tiab] OR "prostate imaging"[tiab]
BI-RADS"BI-RADS"[tiab] OR "breast imaging"[tiab]

Search Result Formatting

Structured Output

{
  "query": "lung nodule AI detection",
  "total_results": 156,
  "returned": 20,
  "articles": [
    {
      "pmid": "12345678",
      "title": "Deep learning for lung nodule detection...",
      "authors": ["Smith J", "Doe A"],
      "journal": "Radiology",
      "year": 2025,
      "abstract": "...",
      "citation_count": 45,
      "url": "https://pubmed.ncbi.nlm.nih.gov/12345678/"
    }
  ]
}

Summary Format

LITERATURE SEARCH RESULTS
=========================

Query: Lung Nodule AI Detection
Date: 2026-04-03
Results: 156 studies (showing top 10)

1. Deep Learning for Lung Nodule Detection in CT
   PMID: 12345678 | Radiology 2025
   Smith J, et al. | Citations: 45
   https://pubmed.ncbi.nlm.nih.gov/12345678/

2. Comparison of AI vs Radiologist Performance...
   PMID: 12345679 | Lancet Digital Health 2025
   ...

Quality Indicators

Assess Article Quality

IndicatorGoodPoor
Journal Impact Factor>5<2
Sample Size>100<30
Study DesignRCT, prospectiveCase report
Peer ReviewYesPreprint
Citations>20<5

Study Types

TypeDescriptionEvidence Level
Systematic ReviewComprehensive literature review1
RCTRandomized controlled trial1-2
CohortProspective follow-up2-3
Case-ControlRetrospective comparison3
Case ReportSingle patient description4

Related Skills

  • guideline-integration: For ACR/ESR guidelines
  • radiology-research: For research study design
  • cross-reference-linking: For linking to related literature

Examples

Example 1: Find Recent AI Mammography Studies

results = pubmed_search(
    "(mammography OR breast cancer) AND "
    "(deep learning OR AI OR machine learning) AND "
    "(detection OR diagnosis) AND "
    "2024:2026[dp]",
    max_results=30
)

Example 2: Find ACR Lung Nodule Guidelines

results = search_guidelines(
    condition="pulmonary nodule",
    modality="CT"
)

Example 3: Systematic Review on AI in Radiology

results = search_systematic_review(
    "deep learning radiology"
)

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.