|
|
|
""" |
|
ClinicalTrials.gov helper β fetch recent trials for a keyword. |
|
""" |
|
|
|
import httpx, datetime |
|
from typing import List |
|
|
|
BASE = "https://clinicaltrials.gov/api/query/study_fields" |
|
|
|
async def search_trials(term: str, max_studies: int = 10) -> List[dict]: |
|
today = datetime.date.today().isoformat() |
|
params = { |
|
"expr": term, |
|
"fields": "NCTId,BriefTitle,Condition,InterventionName,Phase,OverallStatus,StartDate", |
|
"max_rnk": max_studies, |
|
"fmt": "json", |
|
"min_rnk": 1 |
|
} |
|
async with httpx.AsyncClient(timeout=20) as client: |
|
r = await client.get(BASE, params=params) |
|
r.raise_for_status() |
|
return r.json()["StudyFieldsResponse"]["StudyFields"] |
|
|