@erosolaraijs/cure 1.0.1 → 1.0.3

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 (87) hide show
  1. package/dist/bin/cure.d.ts +2 -5
  2. package/dist/bin/cure.d.ts.map +1 -1
  3. package/dist/bin/cure.js +360 -129
  4. package/dist/bin/cure.js.map +1 -1
  5. package/dist/clinician/decisionSupport.d.ts +325 -0
  6. package/dist/clinician/decisionSupport.d.ts.map +1 -0
  7. package/dist/clinician/decisionSupport.js +604 -0
  8. package/dist/clinician/decisionSupport.js.map +1 -0
  9. package/dist/clinician/index.d.ts +5 -0
  10. package/dist/clinician/index.d.ts.map +1 -0
  11. package/dist/clinician/index.js +5 -0
  12. package/dist/clinician/index.js.map +1 -0
  13. package/dist/compliance/index.d.ts +5 -0
  14. package/dist/compliance/index.d.ts.map +1 -0
  15. package/dist/compliance/index.js +5 -0
  16. package/dist/compliance/index.js.map +1 -0
  17. package/dist/index.d.ts +65 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +102 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/integrations/clinicalTrials/index.d.ts +5 -0
  22. package/dist/integrations/clinicalTrials/index.d.ts.map +1 -0
  23. package/dist/integrations/clinicalTrials/index.js +5 -0
  24. package/dist/integrations/clinicalTrials/index.js.map +1 -0
  25. package/dist/integrations/ehr/index.d.ts +5 -0
  26. package/dist/integrations/ehr/index.d.ts.map +1 -0
  27. package/dist/integrations/ehr/index.js +5 -0
  28. package/dist/integrations/ehr/index.js.map +1 -0
  29. package/dist/integrations/genomics/index.d.ts +5 -0
  30. package/dist/integrations/genomics/index.d.ts.map +1 -0
  31. package/dist/integrations/genomics/index.js +5 -0
  32. package/dist/integrations/genomics/index.js.map +1 -0
  33. package/dist/ml/index.d.ts +5 -0
  34. package/dist/ml/index.d.ts.map +1 -0
  35. package/dist/ml/index.js +5 -0
  36. package/dist/ml/index.js.map +1 -0
  37. package/dist/ml/outcomePredictor.d.ts +297 -0
  38. package/dist/ml/outcomePredictor.d.ts.map +1 -0
  39. package/dist/ml/outcomePredictor.js +823 -0
  40. package/dist/ml/outcomePredictor.js.map +1 -0
  41. package/dist/orchestrator/index.d.ts +5 -0
  42. package/dist/orchestrator/index.d.ts.map +1 -0
  43. package/dist/orchestrator/index.js +5 -0
  44. package/dist/orchestrator/index.js.map +1 -0
  45. package/dist/orchestrator/realWorldOncology.d.ts +351 -0
  46. package/dist/orchestrator/realWorldOncology.d.ts.map +1 -0
  47. package/dist/orchestrator/realWorldOncology.js +425 -0
  48. package/dist/orchestrator/realWorldOncology.js.map +1 -0
  49. package/dist/patient/index.d.ts +5 -0
  50. package/dist/patient/index.d.ts.map +1 -0
  51. package/dist/patient/index.js +5 -0
  52. package/dist/patient/index.js.map +1 -0
  53. package/dist/patient/patientPortal.d.ts +337 -0
  54. package/dist/patient/patientPortal.d.ts.map +1 -0
  55. package/dist/patient/patientPortal.js +667 -0
  56. package/dist/patient/patientPortal.js.map +1 -0
  57. package/dist/safety/drugInteractions.d.ts +230 -0
  58. package/dist/safety/drugInteractions.d.ts.map +1 -0
  59. package/dist/safety/drugInteractions.js +697 -0
  60. package/dist/safety/drugInteractions.js.map +1 -0
  61. package/dist/safety/index.d.ts +5 -0
  62. package/dist/safety/index.d.ts.map +1 -0
  63. package/dist/safety/index.js +5 -0
  64. package/dist/safety/index.js.map +1 -0
  65. package/dist/validation/index.d.ts +5 -0
  66. package/dist/validation/index.d.ts.map +1 -0
  67. package/dist/validation/index.js +5 -0
  68. package/dist/validation/index.js.map +1 -0
  69. package/dist/validation/retrospectiveValidator.d.ts +246 -0
  70. package/dist/validation/retrospectiveValidator.d.ts.map +1 -0
  71. package/dist/validation/retrospectiveValidator.js +602 -0
  72. package/dist/validation/retrospectiveValidator.js.map +1 -0
  73. package/package.json +1 -1
  74. package/src/bin/cure.ts +412 -143
  75. package/src/clinician/decisionSupport.ts +949 -0
  76. package/src/clinician/index.ts +11 -0
  77. package/src/compliance/index.ts +19 -0
  78. package/src/integrations/clinicalTrials/index.ts +21 -0
  79. package/src/integrations/ehr/index.ts +32 -0
  80. package/src/integrations/genomics/index.ts +23 -0
  81. package/src/ml/index.ts +15 -0
  82. package/src/orchestrator/index.ts +11 -0
  83. package/src/orchestrator/realWorldOncology.ts +803 -0
  84. package/src/patient/index.ts +14 -0
  85. package/src/patient/patientPortal.ts +1039 -0
  86. package/src/safety/index.ts +14 -0
  87. package/src/validation/index.ts +10 -0
@@ -0,0 +1,325 @@
1
+ /**
2
+ * Clinician Decision Support System
3
+ *
4
+ * Provides clinical decision support features:
5
+ * - Treatment recommendations with explanations
6
+ * - Override management and documentation
7
+ * - Tumor board integration
8
+ * - Evidence summaries
9
+ * - Risk-benefit visualization
10
+ * - Alert acknowledgment workflows
11
+ *
12
+ * Designed to augment (not replace) clinical judgment.
13
+ */
14
+ import { EventEmitter } from 'events';
15
+ export interface ClinicalRecommendation {
16
+ id: string;
17
+ patientId: string;
18
+ generatedAt: Date;
19
+ validUntil: Date;
20
+ primaryRecommendation: {
21
+ regimen: string;
22
+ drugs: {
23
+ name: string;
24
+ dose: string;
25
+ schedule: string;
26
+ route: string;
27
+ }[];
28
+ setting: 'neoadjuvant' | 'adjuvant' | 'first-line' | 'second-line' | 'third-line-plus' | 'maintenance';
29
+ confidenceScore: number;
30
+ };
31
+ alternativeOptions: {
32
+ regimen: string;
33
+ drugs: string[];
34
+ confidenceScore: number;
35
+ comparisonToPrimary: string;
36
+ }[];
37
+ supportingEvidence: {
38
+ type: 'clinical-trial' | 'guideline' | 'real-world' | 'expert-consensus';
39
+ source: string;
40
+ description: string;
41
+ strength: 'strong' | 'moderate' | 'limited';
42
+ url?: string;
43
+ }[];
44
+ biomarkerRationale: {
45
+ biomarker: string;
46
+ status: string;
47
+ impact: string;
48
+ evidenceLevel: string;
49
+ }[];
50
+ predictions: {
51
+ responseRate: {
52
+ value: number;
53
+ ci95: [number, number];
54
+ };
55
+ medianPFS: {
56
+ value: number;
57
+ ci95: [number, number];
58
+ unit: 'months';
59
+ };
60
+ medianOS: {
61
+ value: number;
62
+ ci95: [number, number];
63
+ unit: 'months';
64
+ };
65
+ grade3PlusToxicity: {
66
+ value: number;
67
+ topRisks: string[];
68
+ };
69
+ qualityOfLife: {
70
+ score: number;
71
+ considerations: string[];
72
+ };
73
+ };
74
+ clinicalConsiderations: {
75
+ category: 'efficacy' | 'safety' | 'practical' | 'cost';
76
+ consideration: string;
77
+ importance: 'critical' | 'important' | 'notable';
78
+ }[];
79
+ monitoringPlan: {
80
+ item: string;
81
+ frequency: string;
82
+ rationale: string;
83
+ }[];
84
+ clinicalTrialOptions?: {
85
+ nctId: string;
86
+ title: string;
87
+ phase: string;
88
+ matchingBiomarkers: string[];
89
+ distance?: number;
90
+ }[];
91
+ status: 'active' | 'accepted' | 'modified' | 'rejected' | 'expired';
92
+ reviewedBy?: string;
93
+ reviewedAt?: Date;
94
+ }
95
+ export interface ClinicianOverride {
96
+ id: string;
97
+ recommendationId: string;
98
+ patientId: string;
99
+ clinicianId: string;
100
+ clinicianName: string;
101
+ clinicianRole: string;
102
+ timestamp: Date;
103
+ overrideType: 'full' | 'partial' | 'modification';
104
+ originalRecommendation: {
105
+ regimen: string;
106
+ drugs: string[];
107
+ };
108
+ selectedTreatment: {
109
+ regimen: string;
110
+ drugs: string[];
111
+ doses?: string[];
112
+ };
113
+ reason: {
114
+ category: OverrideCategory;
115
+ freeText: string;
116
+ clinicalJustification: string;
117
+ };
118
+ riskAcknowledgment?: {
119
+ acknowledgedRisks: string[];
120
+ mitigationPlan?: string;
121
+ signature: string;
122
+ timestamp: Date;
123
+ };
124
+ supervisorApproval?: {
125
+ required: boolean;
126
+ supervisorId?: string;
127
+ supervisorName?: string;
128
+ approved?: boolean;
129
+ approvalTimestamp?: Date;
130
+ comments?: string;
131
+ };
132
+ auditStatus: 'pending-review' | 'reviewed' | 'flagged';
133
+ }
134
+ export type OverrideCategory = 'patient-preference' | 'comorbidity' | 'prior-treatment' | 'access-availability' | 'clinical-trial' | 'contraindication' | 'organ-function' | 'performance-status' | 'cost-coverage' | 'clinical-judgment' | 'other';
135
+ export interface TumorBoardCase {
136
+ id: string;
137
+ patientId: string;
138
+ scheduledDate: Date;
139
+ status: 'scheduled' | 'presented' | 'completed' | 'deferred';
140
+ presenter: {
141
+ id: string;
142
+ name: string;
143
+ role: string;
144
+ department: string;
145
+ };
146
+ attendees: {
147
+ id: string;
148
+ name: string;
149
+ specialty: string;
150
+ present: boolean;
151
+ }[];
152
+ caseSummary: {
153
+ diagnosis: string;
154
+ stage: string;
155
+ relevantHistory: string;
156
+ currentStatus: string;
157
+ questionForBoard: string;
158
+ };
159
+ systemRecommendation?: ClinicalRecommendation;
160
+ boardDecision?: {
161
+ recommendation: string;
162
+ rationale: string;
163
+ votingResult?: {
164
+ agree: number;
165
+ disagree: number;
166
+ abstain: number;
167
+ };
168
+ dissenting_opinions?: string[];
169
+ followUpPlan: string;
170
+ recordedBy: string;
171
+ timestamp: Date;
172
+ };
173
+ actions?: {
174
+ action: string;
175
+ assignedTo: string;
176
+ dueDate?: Date;
177
+ completed: boolean;
178
+ }[];
179
+ }
180
+ export interface AlertAcknowledgment {
181
+ alertId: string;
182
+ alertType: string;
183
+ severity: 'critical' | 'high' | 'moderate' | 'low';
184
+ acknowledgedBy: string;
185
+ acknowledgedAt: Date;
186
+ action: 'proceed' | 'modify' | 'cancel' | 'defer';
187
+ reason?: string;
188
+ signature: string;
189
+ }
190
+ export declare class ClinicalDecisionSupportService extends EventEmitter {
191
+ private recommendations;
192
+ private overrides;
193
+ private tumorBoardCases;
194
+ private alertAcknowledgments;
195
+ constructor();
196
+ /**
197
+ * Generate a clinical recommendation
198
+ */
199
+ generateRecommendation(params: {
200
+ patientId: string;
201
+ cancerType: string;
202
+ stage: string;
203
+ biomarkers: {
204
+ name: string;
205
+ value: string | number;
206
+ status?: string;
207
+ }[];
208
+ genomicAlterations: {
209
+ gene: string;
210
+ alteration: string;
211
+ }[];
212
+ priorTherapies?: string[];
213
+ performanceStatus?: number;
214
+ comorbidities?: string[];
215
+ patientPreferences?: string[];
216
+ }): Promise<ClinicalRecommendation>;
217
+ /**
218
+ * Get recommendation by ID
219
+ */
220
+ getRecommendation(recommendationId: string): ClinicalRecommendation | undefined;
221
+ /**
222
+ * Get recommendations for a patient
223
+ */
224
+ getPatientRecommendations(patientId: string): ClinicalRecommendation[];
225
+ /**
226
+ * Accept a recommendation
227
+ */
228
+ acceptRecommendation(recommendationId: string, clinicianId: string, clinicianName: string): Promise<void>;
229
+ /**
230
+ * Record an override
231
+ */
232
+ recordOverride(override: Omit<ClinicianOverride, 'id' | 'timestamp' | 'auditStatus'>): Promise<string>;
233
+ /**
234
+ * Check if supervisor approval is required
235
+ */
236
+ private requiresSupervisorApproval;
237
+ /**
238
+ * Approve an override
239
+ */
240
+ approveOverride(overrideId: string, supervisorId: string, supervisorName: string, approved: boolean, comments?: string): Promise<void>;
241
+ /**
242
+ * Get overrides for a patient
243
+ */
244
+ getPatientOverrides(patientId: string): ClinicianOverride[];
245
+ /**
246
+ * Get pending approvals for a supervisor
247
+ */
248
+ getPendingApprovals(): ClinicianOverride[];
249
+ /**
250
+ * Create a tumor board case
251
+ */
252
+ createTumorBoardCase(caseData: Omit<TumorBoardCase, 'id' | 'status' | 'boardDecision' | 'actions'>): Promise<string>;
253
+ /**
254
+ * Record tumor board decision
255
+ */
256
+ recordTumorBoardDecision(caseId: string, decision: TumorBoardCase['boardDecision']): Promise<void>;
257
+ /**
258
+ * Acknowledge an alert
259
+ */
260
+ acknowledgeAlert(acknowledgment: Omit<AlertAcknowledgment, 'acknowledgedAt'>): Promise<void>;
261
+ /**
262
+ * Generate explanation for a recommendation
263
+ */
264
+ generateExplanation(recommendation: ClinicalRecommendation): {
265
+ summary: string;
266
+ detailedRationale: string[];
267
+ keyFactors: {
268
+ factor: string;
269
+ impact: 'positive' | 'negative' | 'neutral';
270
+ weight: number;
271
+ }[];
272
+ uncertainties: string[];
273
+ alternativeConsiderations: string[];
274
+ };
275
+ /**
276
+ * Generate risk-benefit analysis
277
+ */
278
+ generateRiskBenefitAnalysis(recommendation: ClinicalRecommendation): {
279
+ benefits: {
280
+ benefit: string;
281
+ magnitude: 'high' | 'moderate' | 'low';
282
+ confidence: number;
283
+ }[];
284
+ risks: {
285
+ risk: string;
286
+ probability: number;
287
+ severity: 'severe' | 'moderate' | 'mild';
288
+ manageable: boolean;
289
+ }[];
290
+ overallAssessment: string;
291
+ numberNeededToTreat?: number;
292
+ numberNeededToHarm?: number;
293
+ };
294
+ private determinePrimaryRecommendation;
295
+ private determineAlternatives;
296
+ private gatherEvidence;
297
+ private generateBiomarkerRationale;
298
+ private getBiomarkerImpact;
299
+ private getBiomarkerEvidenceLevel;
300
+ private generatePredictions;
301
+ private identifyConsiderations;
302
+ private generateMonitoringPlan;
303
+ private determineImpact;
304
+ private determineWeight;
305
+ private generateOverallAssessment;
306
+ /**
307
+ * Export decision data for quality review
308
+ */
309
+ exportDecisionData(startDate: Date, endDate: Date): {
310
+ recommendations: ClinicalRecommendation[];
311
+ overrides: ClinicianOverride[];
312
+ tumorBoardCases: TumorBoardCase[];
313
+ summary: {
314
+ totalRecommendations: number;
315
+ acceptanceRate: number;
316
+ overrideRate: number;
317
+ commonOverrideReasons: {
318
+ reason: OverrideCategory;
319
+ count: number;
320
+ }[];
321
+ };
322
+ };
323
+ }
324
+ export default ClinicalDecisionSupportService;
325
+ //# sourceMappingURL=decisionSupport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decisionSupport.d.ts","sourceRoot":"","sources":["../../src/clinician/decisionSupport.ts"],"names":[],"mappings":"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"}