@erosolaraijs/cure 2.3.1 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/README.md +7 -0
  2. package/dist/bin/cure.js +114 -1
  3. package/dist/bin/cure.js.map +1 -1
  4. package/dist/capabilities/clinicalTrialMatchingModule.d.ts +150 -0
  5. package/dist/capabilities/clinicalTrialMatchingModule.d.ts.map +1 -0
  6. package/dist/capabilities/clinicalTrialMatchingModule.js +436 -0
  7. package/dist/capabilities/clinicalTrialMatchingModule.js.map +1 -0
  8. package/dist/capabilities/emergencyOncology.d.ts +97 -0
  9. package/dist/capabilities/emergencyOncology.d.ts.map +1 -0
  10. package/dist/capabilities/emergencyOncology.js +1824 -0
  11. package/dist/capabilities/emergencyOncology.js.map +1 -0
  12. package/dist/capabilities/index.d.ts +10 -0
  13. package/dist/capabilities/index.d.ts.map +1 -1
  14. package/dist/capabilities/index.js +20 -0
  15. package/dist/capabilities/index.js.map +1 -1
  16. package/dist/capabilities/multimodalOncologyModule.d.ts +149 -0
  17. package/dist/capabilities/multimodalOncologyModule.d.ts.map +1 -0
  18. package/dist/capabilities/multimodalOncologyModule.js +701 -0
  19. package/dist/capabilities/multimodalOncologyModule.js.map +1 -0
  20. package/dist/capabilities/palliativeCareModule.d.ts +216 -0
  21. package/dist/capabilities/palliativeCareModule.d.ts.map +1 -0
  22. package/dist/capabilities/palliativeCareModule.js +1160 -0
  23. package/dist/capabilities/palliativeCareModule.js.map +1 -0
  24. package/dist/capabilities/precisionMedicineModule.d.ts +151 -0
  25. package/dist/capabilities/precisionMedicineModule.d.ts.map +1 -0
  26. package/dist/capabilities/precisionMedicineModule.js +758 -0
  27. package/dist/capabilities/precisionMedicineModule.js.map +1 -0
  28. package/dist/capabilities/specialPopulationsModule.d.ts +126 -0
  29. package/dist/capabilities/specialPopulationsModule.d.ts.map +1 -0
  30. package/dist/capabilities/specialPopulationsModule.js +574 -0
  31. package/dist/capabilities/specialPopulationsModule.js.map +1 -0
  32. package/dist/capabilities/survivorshipManagement.d.ts +178 -0
  33. package/dist/capabilities/survivorshipManagement.d.ts.map +1 -0
  34. package/dist/capabilities/survivorshipManagement.js +983 -0
  35. package/dist/capabilities/survivorshipManagement.js.map +1 -0
  36. package/dist/capabilities/treatmentSequencing.d.ts +140 -0
  37. package/dist/capabilities/treatmentSequencing.d.ts.map +1 -0
  38. package/dist/capabilities/treatmentSequencing.js +1689 -0
  39. package/dist/capabilities/treatmentSequencing.js.map +1 -0
  40. package/dist/capabilities/universalHealthFramework.d.ts +108 -0
  41. package/dist/capabilities/universalHealthFramework.d.ts.map +1 -0
  42. package/dist/capabilities/universalHealthFramework.js +615 -0
  43. package/dist/capabilities/universalHealthFramework.js.map +1 -0
  44. package/dist/compliance/hipaa.d.ts.map +1 -1
  45. package/dist/compliance/hipaa.js +7 -16
  46. package/dist/compliance/hipaa.js.map +1 -1
  47. package/dist/tools/index.d.ts +31 -0
  48. package/dist/tools/index.d.ts.map +1 -0
  49. package/dist/tools/index.js +3075 -0
  50. package/dist/tools/index.js.map +1 -0
  51. package/package.json +3 -2
  52. package/src/bin/cure.ts +130 -1
  53. package/src/capabilities/clinicalTrialMatchingModule.ts +600 -0
  54. package/src/capabilities/emergencyOncology.ts +1945 -0
  55. package/src/capabilities/index.ts +181 -0
  56. package/src/capabilities/multimodalOncologyModule.ts +873 -0
  57. package/src/capabilities/palliativeCareModule.ts +1438 -0
  58. package/src/capabilities/precisionMedicineModule.ts +952 -0
  59. package/src/capabilities/specialPopulationsModule.ts +711 -0
  60. package/src/capabilities/survivorshipManagement.ts +1213 -0
  61. package/src/capabilities/treatmentSequencing.ts +1878 -0
  62. package/src/capabilities/universalHealthFramework.ts +739 -0
  63. package/src/compliance/hipaa.ts +7 -15
  64. package/src/tools/index.ts +3501 -0
@@ -0,0 +1,436 @@
1
+ /**
2
+ * Clinical Trial Matching Engine
3
+ *
4
+ * ╔═══════════════════════════════════════════════════════════════════════════════╗
5
+ * ║ CLINICAL TRIAL MATCHING - CONNECTING PATIENTS TO NOVEL THERAPIES ║
6
+ * ╠═══════════════════════════════════════════════════════════════════════════════╣
7
+ * ║ This module provides: ║
8
+ * ║ - Biomarker-to-trial mapping ║
9
+ * ║ - Eligibility criteria assessment ║
10
+ * ║ - Trial phase and mechanism matching ║
11
+ * ║ - Geographic and logistical feasibility ║
12
+ * ║ - Basket, umbrella, and platform trial navigation ║
13
+ * ╚═══════════════════════════════════════════════════════════════════════════════╝
14
+ */
15
+ // ═══════════════════════════════════════════════════════════════════════════════
16
+ // TRIAL DATABASE (REPRESENTATIVE EXAMPLES)
17
+ // ═══════════════════════════════════════════════════════════════════════════════
18
+ export const TRIAL_DATABASE = [
19
+ // EGFR-mutant NSCLC Trials
20
+ {
21
+ nctId: 'NCT04816214',
22
+ title: 'Amivantamab + Lazertinib vs Osimertinib in EGFR-Mutant NSCLC (MARIPOSA)',
23
+ phase: 'Phase 3',
24
+ status: 'Active, not recruiting',
25
+ trialType: 'Interventional',
26
+ sponsor: 'Janssen',
27
+ conditions: ['NSCLC', 'EGFR-mutant'],
28
+ interventions: [
29
+ { type: 'Combination', name: 'Amivantamab + Lazertinib', mechanism: 'EGFR-MET bispecific + EGFR TKI', novelty: 'Combination' }
30
+ ],
31
+ eligibilityCriteria: {
32
+ ageRange: { min: 18, max: 99 },
33
+ gender: 'All',
34
+ performanceStatus: { scale: 'ECOG', maxValue: 1 },
35
+ priorTherapyRequirements: [
36
+ { requirement: 'Excluded', therapyType: 'Prior EGFR TKI', details: 'No prior EGFR TKI for metastatic disease' }
37
+ ],
38
+ organFunctionRequirements: [
39
+ { organ: 'Renal', parameter: 'CrCl', requirement: '≥50 mL/min' },
40
+ { organ: 'Hepatic', parameter: 'AST/ALT', requirement: '≤3x ULN' }
41
+ ],
42
+ exclusionCriteria: ['Active brain metastases', 'Prior EGFR TKI', 'Interstitial lung disease'],
43
+ inclusionCriteria: ['EGFR exon 19 del or L858R', 'Metastatic NSCLC', 'Treatment-naive']
44
+ },
45
+ locations: [
46
+ { facility: 'MD Anderson Cancer Center', city: 'Houston', state: 'TX', country: 'USA', status: 'Recruiting' },
47
+ { facility: 'Memorial Sloan Kettering', city: 'New York', state: 'NY', country: 'USA', status: 'Recruiting' }
48
+ ],
49
+ biomarkerRequirements: [
50
+ { biomarker: 'EGFR exon 19 del or L858R', requirement: 'Required', testMethod: ['NGS', 'PCR', 'ctDNA'] }
51
+ ],
52
+ primaryEndpoint: 'Progression-free survival',
53
+ estimatedEnrollment: 1074,
54
+ studyStartDate: '2021-05',
55
+ estimatedCompletionDate: '2025-12'
56
+ },
57
+ // HER2+ Breast Cancer Trials
58
+ {
59
+ nctId: 'NCT04784715',
60
+ title: 'Trastuzumab Deruxtecan vs Physician Choice in HER2-low Breast Cancer (DESTINY-Breast06)',
61
+ phase: 'Phase 3',
62
+ status: 'Recruiting',
63
+ trialType: 'Interventional',
64
+ sponsor: 'Daiichi Sankyo',
65
+ conditions: ['Breast Cancer', 'HER2-low'],
66
+ interventions: [
67
+ { type: 'Biological', name: 'Trastuzumab Deruxtecan', mechanism: 'HER2-directed ADC', novelty: 'New indication' }
68
+ ],
69
+ eligibilityCriteria: {
70
+ ageRange: { min: 18, max: 99 },
71
+ gender: 'All',
72
+ performanceStatus: { scale: 'ECOG', maxValue: 1 },
73
+ priorTherapyRequirements: [
74
+ { requirement: 'Required', therapyType: 'Prior endocrine therapy', details: 'For HR+ patients' },
75
+ { requirement: 'Allowed', therapyType: 'Prior chemotherapy', details: '1-2 prior lines allowed' }
76
+ ],
77
+ organFunctionRequirements: [
78
+ { organ: 'Cardiac', parameter: 'LVEF', requirement: '≥50%' }
79
+ ],
80
+ exclusionCriteria: ['HER2-positive (IHC 3+)', 'History of ILD', 'Uncontrolled brain mets'],
81
+ inclusionCriteria: ['HER2-low (IHC 1+ or 2+/FISH-)', 'HR+ or HR-', 'Metastatic breast cancer']
82
+ },
83
+ locations: [
84
+ { facility: 'Dana-Farber Cancer Institute', city: 'Boston', state: 'MA', country: 'USA', status: 'Recruiting' }
85
+ ],
86
+ biomarkerRequirements: [
87
+ { biomarker: 'HER2-low', requirement: 'Required', testMethod: ['IHC', 'FISH'] }
88
+ ],
89
+ primaryEndpoint: 'Progression-free survival',
90
+ estimatedEnrollment: 850,
91
+ studyStartDate: '2021-03',
92
+ estimatedCompletionDate: '2026-06'
93
+ },
94
+ // KRAS G12C Trials
95
+ {
96
+ nctId: 'NCT04685135',
97
+ title: 'Sotorasib + Anti-EGFR in KRAS G12C CRC (CodeBreaK 300)',
98
+ phase: 'Phase 3',
99
+ status: 'Recruiting',
100
+ trialType: 'Interventional',
101
+ sponsor: 'Amgen',
102
+ conditions: ['Colorectal Cancer', 'KRAS G12C'],
103
+ interventions: [
104
+ { type: 'Combination', name: 'Sotorasib + Panitumumab', mechanism: 'KRAS G12C inhibitor + anti-EGFR', novelty: 'Combination' }
105
+ ],
106
+ eligibilityCriteria: {
107
+ ageRange: { min: 18, max: 99 },
108
+ gender: 'All',
109
+ performanceStatus: { scale: 'ECOG', maxValue: 1 },
110
+ priorTherapyRequirements: [
111
+ { requirement: 'Required', therapyType: 'Prior chemotherapy', details: '1-2 prior lines for metastatic disease' }
112
+ ],
113
+ organFunctionRequirements: [],
114
+ exclusionCriteria: ['Prior KRAS G12C inhibitor', 'Symptomatic brain mets'],
115
+ inclusionCriteria: ['KRAS G12C mutation', 'Metastatic CRC', 'Prior fluoropyrimidine, oxaliplatin, irinotecan']
116
+ },
117
+ locations: [
118
+ { facility: 'Multiple sites', city: 'Various', state: 'Various', country: 'USA', status: 'Recruiting' }
119
+ ],
120
+ biomarkerRequirements: [
121
+ { biomarker: 'KRAS G12C', requirement: 'Required', testMethod: ['NGS', 'PCR'] }
122
+ ],
123
+ primaryEndpoint: 'Overall survival',
124
+ estimatedEnrollment: 160,
125
+ studyStartDate: '2021-01',
126
+ estimatedCompletionDate: '2025-06'
127
+ },
128
+ // Basket Trial Example
129
+ {
130
+ nctId: 'NCT02465060',
131
+ title: 'NCI-MATCH: Targeted Therapy Directed by Genetic Testing (Basket Trial)',
132
+ phase: 'Phase 2',
133
+ status: 'Active, not recruiting',
134
+ trialType: 'Basket',
135
+ sponsor: 'NCI',
136
+ conditions: ['Solid Tumors', 'Lymphoma'],
137
+ interventions: [
138
+ { type: 'Drug', name: 'Multiple targeted agents', mechanism: 'Various - based on molecular alteration', novelty: 'First-in-class' }
139
+ ],
140
+ eligibilityCriteria: {
141
+ ageRange: { min: 18, max: 99 },
142
+ gender: 'All',
143
+ performanceStatus: { scale: 'ECOG', maxValue: 1 },
144
+ priorTherapyRequirements: [
145
+ { requirement: 'Required', therapyType: 'Prior standard therapy', details: 'Progressed on standard options' }
146
+ ],
147
+ organFunctionRequirements: [],
148
+ exclusionCriteria: ['Matched targeted therapy previously received'],
149
+ inclusionCriteria: ['Actionable genomic alteration', 'No standard treatment options']
150
+ },
151
+ locations: [
152
+ { facility: 'ECOG-ACRIN Network Sites', city: 'Multiple', state: 'Multiple', country: 'USA', status: 'Recruiting' }
153
+ ],
154
+ biomarkerRequirements: [
155
+ { biomarker: 'Actionable mutation per NCI-MATCH arms', requirement: 'Required', testMethod: ['NGS'] }
156
+ ],
157
+ primaryEndpoint: 'Overall response rate',
158
+ estimatedEnrollment: 6000,
159
+ studyStartDate: '2015-08',
160
+ estimatedCompletionDate: '2025-12'
161
+ },
162
+ // Immunotherapy Combination
163
+ {
164
+ nctId: 'NCT03899610',
165
+ title: 'Nivolumab + Relatlimab vs Nivolumab in Melanoma (RELATIVITY-047)',
166
+ phase: 'Phase 3',
167
+ status: 'Active, not recruiting',
168
+ trialType: 'Interventional',
169
+ sponsor: 'Bristol-Myers Squibb',
170
+ conditions: ['Melanoma'],
171
+ interventions: [
172
+ { type: 'Combination', name: 'Nivolumab + Relatlimab', mechanism: 'Anti-PD-1 + Anti-LAG-3', novelty: 'First-in-class' }
173
+ ],
174
+ eligibilityCriteria: {
175
+ ageRange: { min: 18, max: 99 },
176
+ gender: 'All',
177
+ performanceStatus: { scale: 'ECOG', maxValue: 1 },
178
+ priorTherapyRequirements: [
179
+ { requirement: 'Excluded', therapyType: 'Prior anti-PD-1/PD-L1', details: 'No prior checkpoint inhibitor' }
180
+ ],
181
+ organFunctionRequirements: [],
182
+ exclusionCriteria: ['Active autoimmune disease', 'Prior immunotherapy'],
183
+ inclusionCriteria: ['Unresectable or metastatic melanoma', 'Treatment-naive for metastatic disease']
184
+ },
185
+ locations: [
186
+ { facility: 'Multiple sites', city: 'Various', state: 'Various', country: 'USA', status: 'Recruiting' }
187
+ ],
188
+ biomarkerRequirements: [],
189
+ primaryEndpoint: 'Progression-free survival',
190
+ estimatedEnrollment: 714,
191
+ studyStartDate: '2019-04',
192
+ estimatedCompletionDate: '2024-12'
193
+ },
194
+ // CAR-T Trial
195
+ {
196
+ nctId: 'NCT04503278',
197
+ title: 'Cilta-cel vs Standard of Care in Multiple Myeloma (CARTITUDE-4)',
198
+ phase: 'Phase 3',
199
+ status: 'Active, not recruiting',
200
+ trialType: 'Interventional',
201
+ sponsor: 'Janssen',
202
+ conditions: ['Multiple Myeloma'],
203
+ interventions: [
204
+ { type: 'Biological', name: 'Ciltacabtagene autoleucel (Cilta-cel)', mechanism: 'BCMA-directed CAR-T', novelty: 'Next-generation' }
205
+ ],
206
+ eligibilityCriteria: {
207
+ ageRange: { min: 18, max: 99 },
208
+ gender: 'All',
209
+ performanceStatus: { scale: 'ECOG', maxValue: 1 },
210
+ priorTherapyRequirements: [
211
+ { requirement: 'Required', therapyType: 'Prior lenalidomide and PI', details: '1-3 prior lines including lenalidomide and a PI' }
212
+ ],
213
+ organFunctionRequirements: [
214
+ { organ: 'Cardiac', parameter: 'LVEF', requirement: '≥45%' },
215
+ { organ: 'Pulmonary', parameter: 'O2 sat', requirement: '≥92% on room air' }
216
+ ],
217
+ exclusionCriteria: ['Prior BCMA-targeted therapy', 'Active CNS involvement', 'Uncontrolled infection'],
218
+ inclusionCriteria: ['Relapsed/refractory MM', 'Lenalidomide-refractory', '1-3 prior lines']
219
+ },
220
+ locations: [
221
+ { facility: 'Multiple academic centers', city: 'Various', state: 'Various', country: 'USA', status: 'Recruiting' }
222
+ ],
223
+ biomarkerRequirements: [],
224
+ primaryEndpoint: 'Progression-free survival',
225
+ estimatedEnrollment: 400,
226
+ studyStartDate: '2020-06',
227
+ estimatedCompletionDate: '2026-01'
228
+ },
229
+ // Pediatric Trial
230
+ {
231
+ nctId: 'NCT03155620',
232
+ title: 'Larotrectinib in Pediatric Solid Tumors with NTRK Fusion (SCOUT)',
233
+ phase: 'Phase 1/2',
234
+ status: 'Recruiting',
235
+ trialType: 'Basket',
236
+ sponsor: 'Bayer',
237
+ conditions: ['Pediatric Solid Tumors', 'NTRK Fusion'],
238
+ interventions: [
239
+ { type: 'Drug', name: 'Larotrectinib', mechanism: 'TRK inhibitor', novelty: 'First-in-class' }
240
+ ],
241
+ eligibilityCriteria: {
242
+ ageRange: { min: 0, max: 21 },
243
+ gender: 'All',
244
+ performanceStatus: { scale: 'Karnofsky', maxValue: 50 },
245
+ priorTherapyRequirements: [
246
+ { requirement: 'Allowed', therapyType: 'Prior therapy', details: 'No limit on prior therapies' }
247
+ ],
248
+ organFunctionRequirements: [],
249
+ exclusionCriteria: ['Prior TRK inhibitor', 'Primary CNS tumor'],
250
+ inclusionCriteria: ['NTRK gene fusion', 'Relapsed or refractory solid tumor', 'Age ≤21']
251
+ },
252
+ locations: [
253
+ { facility: "Children's Hospital of Philadelphia", city: 'Philadelphia', state: 'PA', country: 'USA', status: 'Recruiting' },
254
+ { facility: 'Texas Childrens Hospital', city: 'Houston', state: 'TX', country: 'USA', status: 'Recruiting' }
255
+ ],
256
+ biomarkerRequirements: [
257
+ { biomarker: 'NTRK1/2/3 fusion', requirement: 'Required', testMethod: ['NGS', 'FISH', 'IHC'] }
258
+ ],
259
+ primaryEndpoint: 'Overall response rate',
260
+ estimatedEnrollment: 150,
261
+ studyStartDate: '2017-07',
262
+ estimatedCompletionDate: '2025-12'
263
+ }
264
+ ];
265
+ // ═══════════════════════════════════════════════════════════════════════════════
266
+ // TRIAL MATCHING ENGINE
267
+ // ═══════════════════════════════════════════════════════════════════════════════
268
+ export class ClinicalTrialMatchingEngine {
269
+ trials = TRIAL_DATABASE;
270
+ findMatchingTrials(patient) {
271
+ const matches = [];
272
+ for (const trial of this.trials) {
273
+ if (trial.status === 'Withdrawn' || trial.status === 'Terminated')
274
+ continue;
275
+ const matchResult = this.evaluateTrialMatch(patient, trial);
276
+ if (matchResult.matchScore > 0) {
277
+ matches.push(matchResult);
278
+ }
279
+ }
280
+ return matches.sort((a, b) => b.matchScore - a.matchScore);
281
+ }
282
+ evaluateTrialMatch(patient, trial) {
283
+ const matchDetails = [];
284
+ const barriers = [];
285
+ let score = 0;
286
+ // Check cancer type match
287
+ const cancerMatch = trial.conditions.some(c => c.toLowerCase().includes(patient.cancerType.toLowerCase()) ||
288
+ patient.cancerType.toLowerCase().includes(c.toLowerCase()));
289
+ if (cancerMatch) {
290
+ score += 30;
291
+ matchDetails.push({ criterion: 'Cancer type', status: 'Met', explanation: 'Cancer type matches trial conditions' });
292
+ }
293
+ else {
294
+ matchDetails.push({ criterion: 'Cancer type', status: 'Not Met', explanation: 'Cancer type does not match' });
295
+ }
296
+ // Check biomarker requirements
297
+ for (const bioReq of trial.biomarkerRequirements) {
298
+ const patientBiomarker = patient.biomarkers.find(b => b.name.toLowerCase().includes(bioReq.biomarker.toLowerCase()) ||
299
+ bioReq.biomarker.toLowerCase().includes(b.name.toLowerCase()));
300
+ if (bioReq.requirement === 'Required') {
301
+ if (patientBiomarker?.status === 'Positive') {
302
+ score += 25;
303
+ matchDetails.push({ criterion: `Biomarker: ${bioReq.biomarker}`, status: 'Met', explanation: 'Required biomarker is positive' });
304
+ }
305
+ else if (patientBiomarker?.status === 'Negative') {
306
+ score -= 50;
307
+ barriers.push(`Required biomarker ${bioReq.biomarker} is negative`);
308
+ matchDetails.push({ criterion: `Biomarker: ${bioReq.biomarker}`, status: 'Not Met', explanation: 'Required biomarker is negative' });
309
+ }
310
+ else {
311
+ matchDetails.push({ criterion: `Biomarker: ${bioReq.biomarker}`, status: 'Unknown', explanation: 'Biomarker status not tested' });
312
+ }
313
+ }
314
+ else if (bioReq.requirement === 'Excluded') {
315
+ if (patientBiomarker?.status === 'Positive') {
316
+ score -= 50;
317
+ barriers.push(`Excluded biomarker ${bioReq.biomarker} is positive`);
318
+ matchDetails.push({ criterion: `Biomarker: ${bioReq.biomarker}`, status: 'Not Met', explanation: 'Excluded biomarker is positive' });
319
+ }
320
+ }
321
+ }
322
+ // Check age eligibility
323
+ const ageElig = trial.eligibilityCriteria.ageRange;
324
+ if (patient.age >= ageElig.min && patient.age <= ageElig.max) {
325
+ score += 10;
326
+ matchDetails.push({ criterion: 'Age', status: 'Met', explanation: `Age ${patient.age} within range ${ageElig.min}-${ageElig.max}` });
327
+ }
328
+ else {
329
+ barriers.push(`Age ${patient.age} outside eligible range ${ageElig.min}-${ageElig.max}`);
330
+ matchDetails.push({ criterion: 'Age', status: 'Not Met', explanation: 'Age outside eligible range' });
331
+ }
332
+ // Check performance status
333
+ const psReq = trial.eligibilityCriteria.performanceStatus;
334
+ if (patient.performanceStatus <= psReq.maxValue) {
335
+ score += 10;
336
+ matchDetails.push({ criterion: 'Performance status', status: 'Met', explanation: `PS ${patient.performanceStatus} meets requirement ≤${psReq.maxValue}` });
337
+ }
338
+ else {
339
+ barriers.push(`Performance status ${patient.performanceStatus} exceeds maximum ${psReq.maxValue}`);
340
+ matchDetails.push({ criterion: 'Performance status', status: 'Not Met', explanation: 'Performance status too high' });
341
+ }
342
+ // Check phase preference
343
+ if (patient.preferences.preferredPhases.includes(trial.phase)) {
344
+ score += 5;
345
+ }
346
+ // Check location
347
+ const matchingLocation = trial.locations.find(loc => loc.country === patient.location.country &&
348
+ loc.status === 'Recruiting');
349
+ if (matchingLocation) {
350
+ score += 10;
351
+ matchDetails.push({ criterion: 'Location', status: 'Met', explanation: `Trial available in ${matchingLocation.city}, ${matchingLocation.state}` });
352
+ }
353
+ else if (patient.willingToTravel) {
354
+ score += 5;
355
+ matchDetails.push({ criterion: 'Location', status: 'Partial', explanation: 'Patient willing to travel' });
356
+ }
357
+ else {
358
+ barriers.push('No recruiting sites in patient location');
359
+ matchDetails.push({ criterion: 'Location', status: 'Not Met', explanation: 'No local sites; travel required' });
360
+ }
361
+ // Determine eligibility status
362
+ let eligibilityStatus;
363
+ if (barriers.length === 0 && score > 50) {
364
+ eligibilityStatus = 'Likely Eligible';
365
+ }
366
+ else if (barriers.length === 0) {
367
+ eligibilityStatus = 'Need More Info';
368
+ }
369
+ else if (barriers.some(b => b.includes('Required biomarker') || b.includes('Age'))) {
370
+ eligibilityStatus = 'Likely Ineligible';
371
+ }
372
+ else {
373
+ eligibilityStatus = 'Possibly Eligible';
374
+ }
375
+ // Generate next steps
376
+ const nextSteps = [];
377
+ if (eligibilityStatus === 'Likely Eligible' || eligibilityStatus === 'Possibly Eligible') {
378
+ nextSteps.push('Discuss with oncologist');
379
+ nextSteps.push(`Contact trial site: ${trial.locations[0]?.facility || 'See ClinicalTrials.gov'}`);
380
+ nextSteps.push(`Search ClinicalTrials.gov for NCT: ${trial.nctId}`);
381
+ }
382
+ if (matchDetails.some(m => m.status === 'Unknown')) {
383
+ nextSteps.push('Complete biomarker testing');
384
+ }
385
+ return {
386
+ trial,
387
+ matchScore: Math.max(0, score),
388
+ matchDetails,
389
+ eligibilityStatus,
390
+ barriers,
391
+ nextSteps
392
+ };
393
+ }
394
+ findTrialsByBiomarker(biomarker) {
395
+ return this.trials.filter(trial => trial.biomarkerRequirements.some(b => b.biomarker.toLowerCase().includes(biomarker.toLowerCase())));
396
+ }
397
+ findTrialsByMechanism(mechanism) {
398
+ return this.trials.filter(trial => trial.interventions.some(i => i.mechanism.toLowerCase().includes(mechanism.toLowerCase())));
399
+ }
400
+ findBasketTrials() {
401
+ return this.trials.filter(trial => trial.trialType === 'Basket');
402
+ }
403
+ findPediatricTrials() {
404
+ return this.trials.filter(trial => trial.eligibilityCriteria.ageRange.min < 18 ||
405
+ trial.conditions.some(c => c.toLowerCase().includes('pediatric')));
406
+ }
407
+ getTrialById(nctId) {
408
+ return this.trials.find(t => t.nctId === nctId);
409
+ }
410
+ generateTrialSearchStrategy(patient) {
411
+ const searchTerms = [
412
+ patient.cancerType,
413
+ patient.histology,
414
+ ...patient.biomarkers.filter(b => b.status === 'Positive').map(b => b.name)
415
+ ];
416
+ return {
417
+ searchTerms,
418
+ recommendedDatabases: [
419
+ 'ClinicalTrials.gov (clinicaltrials.gov)',
420
+ 'NCI Cancer Clinical Trials (cancer.gov/clinicaltrials)',
421
+ 'TrialMatch (lls.org/support/information-specialists)',
422
+ 'EmergingMed Navigator (emergingmed.com)'
423
+ ],
424
+ searchTips: [
425
+ 'Use condition + biomarker for targeted searches',
426
+ 'Filter by "Recruiting" status',
427
+ 'Check Phase 1/2 trials for novel mechanisms',
428
+ 'Consider basket trials if you have an actionable mutation',
429
+ 'Contact trial coordinators directly for eligibility questions'
430
+ ]
431
+ };
432
+ }
433
+ }
434
+ // Export singleton
435
+ export const clinicalTrialMatchingEngine = new ClinicalTrialMatchingEngine();
436
+ //# sourceMappingURL=clinicalTrialMatchingModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clinicalTrialMatchingModule.js","sourceRoot":"","sources":["../../src/capabilities/clinicalTrialMatchingModule.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Emergency Oncology and Oncologic Emergencies Protocols
3
+ *
4
+ * ╔═══════════════════════════════════════════════════════════════════════════════╗
5
+ * ║ EMERGENCY ONCOLOGY - LIFE-SAVING INTERVENTIONS FOR CANCER EMERGENCIES ║
6
+ * ╠═══════════════════════════════════════════════════════════════════════════════╣
7
+ * ║ This module provides protocols for: ║
8
+ * ║ - Structural emergencies (SVC syndrome, spinal cord compression, etc.) ║
9
+ * ║ - Metabolic emergencies (TLS, hypercalcemia, SIADH, etc.) ║
10
+ * ║ - Treatment-related emergencies (febrile neutropenia, CRS, irAEs) ║
11
+ * ║ - Extravasation and infusion reactions ║
12
+ * ║ - Hemorrhagic and thrombotic emergencies ║
13
+ * ║ - Rapid-onset symptoms requiring immediate intervention ║
14
+ * ╚═══════════════════════════════════════════════════════════════════════════════╝
15
+ */
16
+ export interface OncologicEmergency {
17
+ id: string;
18
+ name: string;
19
+ category: EmergencyCategory;
20
+ urgency: 'Immediate' | 'Urgent' | 'Semi-urgent';
21
+ timeToIntervention: string;
22
+ recognition: RecognitionCriteria;
23
+ initialManagement: EmergencyManagement[];
24
+ definitiveManagement: DefinitiveManagement[];
25
+ monitoring: MonitoringProtocol;
26
+ outcomes: OutcomeExpectations;
27
+ preventionStrategies: string[];
28
+ }
29
+ export type EmergencyCategory = 'Structural' | 'Metabolic' | 'Hematologic' | 'Treatment-Related' | 'Infectious' | 'Neurologic' | 'Cardiovascular' | 'Respiratory';
30
+ export interface RecognitionCriteria {
31
+ symptoms: string[];
32
+ signs: string[];
33
+ diagnosticCriteria: string[];
34
+ labFindings?: string[];
35
+ imagingFindings?: string[];
36
+ riskFactors: string[];
37
+ }
38
+ export interface EmergencyManagement {
39
+ step: number;
40
+ action: string;
41
+ timing: string;
42
+ details: string;
43
+ medications?: MedicationOrder[];
44
+ contraindications?: string[];
45
+ }
46
+ export interface MedicationOrder {
47
+ drug: string;
48
+ dose: string;
49
+ route: string;
50
+ frequency: string;
51
+ duration: string;
52
+ monitoring?: string;
53
+ }
54
+ export interface DefinitiveManagement {
55
+ intervention: string;
56
+ indication: string;
57
+ timing: string;
58
+ expectedOutcome: string;
59
+ alternatives?: string[];
60
+ }
61
+ export interface MonitoringProtocol {
62
+ parameters: string[];
63
+ frequency: string;
64
+ escalationCriteria: string[];
65
+ deescalationCriteria: string[];
66
+ }
67
+ export interface OutcomeExpectations {
68
+ withTreatment: string;
69
+ withoutTreatment: string;
70
+ longTermPrognosis: string;
71
+ }
72
+ export declare const STRUCTURAL_EMERGENCIES: OncologicEmergency[];
73
+ export declare const METABOLIC_EMERGENCIES: OncologicEmergency[];
74
+ export declare const TREATMENT_RELATED_EMERGENCIES: OncologicEmergency[];
75
+ export declare const HEMATOLOGIC_EMERGENCIES: OncologicEmergency[];
76
+ export declare class EmergencyOncologyEngine {
77
+ private emergencies;
78
+ constructor();
79
+ private initializeEmergencies;
80
+ getEmergency(id: string): OncologicEmergency | undefined;
81
+ getEmergenciesByCategory(category: EmergencyCategory): OncologicEmergency[];
82
+ getEmergenciesByUrgency(urgency: 'Immediate' | 'Urgent' | 'Semi-urgent'): OncologicEmergency[];
83
+ identifyPotentialEmergency(symptoms: string[], labValues?: Record<string, number>): OncologicEmergency[];
84
+ generateEmergencyProtocol(emergencyId: string, patientFactors?: {
85
+ weight?: number;
86
+ renalFunction?: string;
87
+ allergies?: string[];
88
+ }): {
89
+ emergency: OncologicEmergency;
90
+ prioritizedSteps: EmergencyManagement[];
91
+ contraindicatedSteps: EmergencyManagement[];
92
+ criticalTimepoints: string[];
93
+ } | undefined;
94
+ getAllEmergencies(): OncologicEmergency[];
95
+ }
96
+ export declare const emergencyOncologyEngine: EmergencyOncologyEngine;
97
+ //# sourceMappingURL=emergencyOncology.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emergencyOncology.d.ts","sourceRoot":"","sources":["../../src/capabilities/emergencyOncology.ts"],"names":[],"mappings":"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"}