search_by_date_range
Find clinical trials by filtering based on start or completion date ranges to identify studies within specific timeframes.
Instructions
Search clinical trials by start or completion date range
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| startDateFrom | No | Start date from (YYYY-MM-DD format) | |
| startDateTo | No | Start date to (YYYY-MM-DD format) | |
| completionDateFrom | No | Primary completion date from (YYYY-MM-DD format) | |
| completionDateTo | No | Primary completion date to (YYYY-MM-DD format) | |
| condition | No | Optional condition filter | |
| pageSize | No | Number of results to return (default 10, max 100) |
Implementation Reference
- src/index.ts:1469-1549 (handler)Handler function for search_by_date_range tool.
private async handleSearchByDateRange(args: any) { const params: any = { format: "json", pageSize: args?.pageSize || 10, }; if (args?.startDateFrom) { params["filter.studyStartDateFrom"] = args.startDateFrom; } if (args?.startDateTo) { params["filter.studyStartDateTo"] = args.startDateTo; } if (args?.completionDateFrom) { params["filter.primaryCompletionDateFrom"] = args.completionDateFrom; } if (args?.completionDateTo) { params["filter.primaryCompletionDateTo"] = args.completionDateTo; } if (args?.condition) { params["query.cond"] = args.condition; } try { const response: AxiosResponse<StudySearchResponse> = await this.axiosInstance.get("/studies", { params }); const studies = response.data.studies || []; const results = studies.map((study) => ({ ...this.formatStudySummary(study), dates: { startDate: study.protocolSection.statusModule.startDateStruct?.date, primaryCompletionDate: study.protocolSection.statusModule.primaryCompletionDateStruct ?.date, }, })); return { content: [ { type: "text", text: JSON.stringify( { searchCriteria: { startDateFrom: args?.startDateFrom, startDateTo: args?.startDateTo, completionDateFrom: args?.completionDateFrom, completionDateTo: args?.completionDateTo, condition: args?.condition, }, totalCount: response.data.totalCount || 0, resultsShown: results.length, studies: results, }, null, 2 ), }, ], }; } catch (error) { if (axios.isAxiosError(error)) { return { content: [ { type: "text", text: `Clinical Trials API error: ${ error.response?.data?.message || error.message }`, }, ], isError: true, }; } throw error; } } - src/index.ts:397-436 (registration)Schema registration for search_by_date_range tool.
name: "search_by_date_range", description: "Search clinical trials by start or completion date range", inputSchema: { type: "object", properties: { startDateFrom: { type: "string", description: "Start date from (YYYY-MM-DD format)", pattern: "^\\d{4}-\\d{2}-\\d{2}$", }, startDateTo: { type: "string", description: "Start date to (YYYY-MM-DD format)", pattern: "^\\d{4}-\\d{2}-\\d{2}$", }, completionDateFrom: { type: "string", description: "Primary completion date from (YYYY-MM-DD format)", pattern: "^\\d{4}-\\d{2}-\\d{2}$", }, completionDateTo: { type: "string", description: "Primary completion date to (YYYY-MM-DD format)", pattern: "^\\d{4}-\\d{2}-\\d{2}$", }, condition: { type: "string", description: "Optional condition filter", }, pageSize: { type: "number", description: "Number of results to return (default 10, max 100)", minimum: 1, maximum: 100, }, }, }, },