{"services":[{"id":"drug-repurposing","hook":"order-select","title":"ThTxGNN Drug Repurposing Suggestions","description":"Provides AI-powered drug repurposing predictions when medications are selected","prefetch":{"patient":"Patient/","currentMedications":"MedicationRequest?patient=&status=active"}},{"id":"ddi-alert","hook":"order-sign","title":"ThTxGNN DDI Alert Service","description":"Checks for drug-drug interactions and suggests alternatives","prefetch":{"patient":"Patient/","currentMedications":"MedicationRequest?patient=&status=active","conditions":"Condition?patient=&clinical-status=active"}}]}
{"cards":[{"uuid":"thtxgnn-repurposing-001","summary":"💊 Drug Repurposing: Metformin may be effective for Breast Carcinoma","detail":"ThTxGNN AI prediction (score: 0.992, evidence: L2)\n\n• 45 clinical trials in progress\n• 128 PubMed publications\n\nThis is a research finding and requires clinical validation.","indicator":"info","source":{"label":"ThTxGNN","url":"https://thtxgnn.yao.care/drugs/metformin/","icon":"https://thtxgnn.yao.care/assets/images/icon.png"},"links":[{"label":"View Evidence Report","url":"https://thtxgnn.yao.care/drugs/metformin/#breast-carcinoma","type":"absolute"},{"label":"Search Clinical Trials","url":"https://clinicaltrials.gov/search?cond=breast+cancer&intr=metformin","type":"absolute"}]}]}
Service 2: DDI Alert
觸發條件
Hook: order-sign
觸發時機: 醫師簽署處方前
Response 範例
{"cards":[{"uuid":"thtxgnn-ddi-001","summary":"⚠️ Drug Interaction: Warfarin + Ibuprofen","detail":"Concurrent use increases bleeding risk by 3-4x.\n\n**Patient Risk Factors:**\n• Age > 65\n• History of GI bleeding\n\n**Recommendation:** Consider alternative analgesic.","indicator":"warning","source":{"label":"ThTxGNN DDI Service","url":"https://thtxgnn.yao.care/ddi/"},"suggestions":[{"label":"Replace with Acetaminophen","uuid":"replace-with-acetaminophen","actions":[{"type":"delete","description":"Remove Ibuprofen order","resourceId":["MedicationRequest/ibuprofen-draft-001"]},{"type":"create","description":"Order Acetaminophen instead","resource":{"resourceType":"MedicationRequest","status":"draft","intent":"order","medicationCodeableConcept":{"coding":[{"system":"http://www.nlm.nih.gov/research/umls/rxnorm","code":"161","display":"Acetaminophen"}]}}}]}],"overrideReasons":[{"code":"patient-benefit","display":"Benefit outweighs risk for this patient"},{"code":"already-monitored","display":"Patient is already being monitored for bleeding"}]}]}
技術實作
Cloudflare Worker 範例
// cds-hooks-worker.jsconstSEARCH_INDEX_URL='https://thtxgnn.yao.care/data/search-index.json';exportdefault{asyncfetch(request,env){consturl=newURL(request.url);// Discovery endpointif (url.pathname==='/cds-services'&&request.method==='GET'){returnhandleDiscovery();}// Drug repurposing serviceif (url.pathname==='/cds-services/drug-repurposing'&&request.method==='POST'){constbody=awaitrequest.json();returnhandleDrugRepurposing(body);}// DDI alert serviceif (url.pathname==='/cds-services/ddi-alert'&&request.method==='POST'){constbody=awaitrequest.json();returnhandleDDIAlert(body);}returnnewResponse('Not Found',{status:404});}};functionhandleDiscovery(){constservices={services:[{id:'drug-repurposing',hook:'order-select',title:'ThTxGNN Drug Repurposing Suggestions',description:'AI-powered drug repurposing predictions'},{id:'ddi-alert',hook:'order-sign',title:'ThTxGNN DDI Alert',description:'Drug-drug interaction checking'}]};returnnewResponse(JSON.stringify(services),{headers:{'Content-Type':'application/json'}});}asyncfunctionhandleDrugRepurposing(request){// 1. 從 context 提取藥物資訊constmedications=extractMedications(request.context?.draftOrders);// 2. 查詢 ThTxGNN 預測constsearchIndex=awaitfetch(SEARCH_INDEX_URL).then(r=>r.json());// 3. 匹配藥物constcards=[];for (constmedofmedications){constdrug=findDrugInIndex(searchIndex,med.name);if (drug&&drug.indications?.length>0){cards.push(createRepurposingCard(drug));}}returnnewResponse(JSON.stringify({cards}),{headers:{'Content-Type':'application/json'}});}functioncreateRepurposingCard(drug){consttopIndication=drug.indications[0];return{uuid:`thtxgnn-${drug.slug}-${Date.now()}`,summary:`💊 Drug Repurposing: ${drug.name} may be effective for ${topIndication.name}`,detail:`ThTxGNN AI prediction (score: ${topIndication.score.toFixed(2)}, evidence: ${topIndication.level})`,indicator:'info',source:{label:'ThTxGNN',url:`https://thtxgnn.yao.care/drugs/${drug.slug}/`},links:[{label:'View Evidence Report',url:`https://thtxgnn.yao.care/drugs/${drug.slug}/`,type:'absolute'}]};}