ClinicalTrials.gov,美利坚合众国FDA临床试验之登记所也,日更其数据,公之于众,凡研究逾四十八万项。此乃医卫之重器,药商、外包机构、健康科技初创企业及学人皆需此数据以编程之。
然官方之ClinicalTrials.gov API v2乎?实乃为人类研究者所建之搜索引擎之REST封装也。无结构化之资格解析。无地理半径搜索。无webhook警报。分页机制于参数中途变更时即崩坏。若欲构建超越基本关键词搜索之物,终须刮取网站,下载2GB文本文件,或付企业供应商每月500美元以上之资。
吾乃筑临床试验API——于ClinicalTrials.gov之上,建一规整之REST层,具结构化之资格审、地理搜索、及webhook警报。其事若此。
堆栈
- 运行时:Python 工作者(Pyodide,Redux 内存快照)
- 部署:Wrangler CLI(Wrangler命令行工具)>寰宇之内,有三百三十有奇之境,皆设边缘节点。
- 後端數據:臨床試驗.gov API v2(公共領域,無需授權)
- 市場與收費:RapidAPI
- 定價:免費/49美元/月(Pro)/199美元/月(Ultra)
- 平均響應:350-500毫秒暖機,約1秒冷啟動
吾所建
十端点散布四功能群:
| 端点 | 描述 | 层级 |
|---|---|---|
| GET /v1/trials/search | 全文及字段检索,游标分页 | 免费 |
| GET /v1/trials/{nct_id} | 详尽试验全貌,含成果、地点、引文 | 免费 |
| 取/v1试验/邻近 | 依纬经距索,排序 | 无偿 |
| 取/v1统计 | 按期次、状态、主办者、研究类聚计 | 无偿 |
| 取/v1病症 | 医疾自填浏览器 | 无偿 |
| 取/v1康健 | 健康检视,无需认证 | 免费 |
| 获取 /v1/trials/{nct_id}/资格 | 结构化资格标准解析 | 专业 |
| 获取 /v1/alerts | 列活跃的webhook警报 | 专业 |
| 提交 /v1/alerts | 为新的试验创建webhook警报 | 专业 |
| 刪除 /v1/alerts/{alert_id} | 刪除 Webhook 警報 | Pro |
難處
挑戰一:解析自由文本資格標準
此乃最艱技術之難。ClinicalTrials.gov 儲存資格標準為自由文本——常為單段或項目符號列表,全無結構:
纳入标准:组织学确诊三阴性乳腺癌。年龄>年十八。ECOG表现状态为0或1。血常规及器官功能良好。未接受过转移性乳腺癌的系统治疗。排除标准:曾接受乳腺癌免疫治疗。活动性自身免疫性疾病需全身治疗。未治疗或症状性中枢神经系统转移。怀孕或哺乳期。
吾需将此解析为结构化、机器可读之标准对象,使患者匹配算法得以为用。
{
"inclusion_criteria": [
{"category": "Age", "text": "Age >= 18 years", "criterion": "18 years and older"},
{"category": "Condition", "text": "Histologically confirmed triple-negative breast cancer", "criterion": "Triple-negative breast cancer confirmed by histology"},
{"category": "Performance Status", "text": "ECOG performance status 0 or 1", "criterion": "ECOG 0-1"}
],
"exclusion_criteria": [
{"category": "Prior Treatment", "text": "Prior immunotherapy for breast cancer", "criterion": "No prior checkpoint inhibitor therapy"}
]
}
吾之法:一 heuristic NLP 之管。首,以 regex 之式,分原文为候选之则,式合于点列、序号、行断、句界。次,以关键字匹配与规则之智,分每则入八类(年岁、性别、状况、实验室值、既往治疗、性能状态、器官功能、其他)。终,生成归一之简式。
其准确率约在八至八五之间。其余一五至二〇者,归入"其他"类,原文不废。若得良善之机器学习模型,当能更优,然吾欲先发版一,再依反馈迭代之。此结构化解析乃专业级服务(每月四十九元),因其乃付费方案之核心价值所在。
挑战二:无地理编码预算之地理搜索
ClinicalTrials.gov所载设施地址(名、城、州、国)而未载经纬度。欲建地域半径之索,必先为每设施地码之。
其难在:数据库中独有设施地址约五十万。商用地码API每千次索费。免费地码API有严率限,约每秒一索。
吾之法:预构查表。吾以 Python 脚本三日,使诸地址皆经免费地理编码 API 之转换,然有请求速率之限。其成之表,乃将设施地址与纬度经度相系,已载入工作者之模块级内存。汝若查询/v1/trials/nearby,工人云:
- 于ClinicalTrials.gov中寻检合乎汝之筛选之试验
- 自内存表检视各设施之坐标
- 量算至搜索中心之哈弗辛距
- 依距排序而返其果
此表约二十兆字节于内存,然唯存有试用之设施。邻近搜索之响应时约四百至六百毫秒,计有上游API调用及距离计算。非即时,然远胜于即时地理编码之速。
挑战三:定价 - 实用之免费层级与营收
永世独立开发者之困。何以使免费之阶足以引诱用户,又足以制驭转化?
吾之策:予数据之权,取价值增值之费。
免费版含十端之七。可试询,得详,为地之索,览症候,引总统计——凡筑真原型所需,皆备。日百请,存三警。无信用卡,无期。免费版当致“悟然”之境:“乖乖,吾一呼,已询四十八万试。”
Pro级(四十九元每月)启用可省时之功能:结构化资格解析(非汝自建正则解析器)及扩展webhook警报(二十五次而非三次,六时检查频率而非每日)。
Ultra级(一百九十九元每月)适于临床试验数据为使命之企业。请求限额更高,警报无限,优先支持,专属SLA。
转化之假说:免费用户触及每日百次请求之限或需资格解析,且四十九元每月较一小时开发者之工时为廉。
吾所异行者
地理编码之策。 三日限流于免费地理编码API,愚哉。当付五十元购商业地理编码之服务,二时即可毕。吾辈独立开发者,常以免费为省,然时之价,贵于金也。
API之设——分资格端与内嵌端。 吾择分端(JHSNS_SEG_63194f31_85__)
/v1/trials/{nct_id}/eligibility者,解析之故也,增迟约二百毫秒。免费用户不当为不能得之功能而偿迟滞之费。追思之,于试用详情端内直接返回解析之资格,则更为洁净。开发者所求,一请足矣,非二也。吾或于版本二合并之。
数字(至今)
方启。真实之数,稍候而现。
| 指标 | 数值 |
|---|---|
| 订阅者 | 0(日一) |
| API调用服务 | 0(日一) |
| 营收(月均收入) | $0(日一) |
| 运行时间 | 99.9%(目标) |
| 平均响应 | 350-500毫秒 |
| 基础设施成本 | $0(CF工作者免费套餐) |
三十日後,當以實數更之。
試之
https://rapidapi.com/capifactory-capifactory-default/api/clinical-trials-api - 免費層,無信用卡。三十秒內得API鑰,作首次呼喚。
若尔营建医技之器,需临床试验之据,愿闻何等终局,方令其诚为尔用。吾速成之——若尔需今所无者,告吾,吾或于四十八时内令其成。











