@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,337 @@
1
+ /**
2
+ * Patient-Facing Portal Interfaces
3
+ *
4
+ * Provides patient engagement features:
5
+ * - Treatment plan viewing
6
+ * - Side effect tracking
7
+ * - Medication adherence monitoring
8
+ * - Quality of life assessments
9
+ * - Secure messaging with care team
10
+ * - Educational content delivery
11
+ * - Appointment management
12
+ *
13
+ * All interfaces designed for health literacy and accessibility.
14
+ */
15
+ import { EventEmitter } from 'events';
16
+ export interface PatientAccount {
17
+ id: string;
18
+ mrn: string;
19
+ email: string;
20
+ phone?: string;
21
+ preferredLanguage: string;
22
+ preferredContactMethod: 'email' | 'sms' | 'phone' | 'portal';
23
+ accessLevel: 'full' | 'limited';
24
+ proxyAccess?: {
25
+ proxyId: string;
26
+ proxyName: string;
27
+ relationship: string;
28
+ permissions: ('view' | 'message' | 'schedule')[];
29
+ }[];
30
+ createdAt: Date;
31
+ lastLoginAt?: Date;
32
+ notificationPreferences: {
33
+ appointments: boolean;
34
+ labResults: boolean;
35
+ messages: boolean;
36
+ medications: boolean;
37
+ educational: boolean;
38
+ };
39
+ }
40
+ export interface PatientTreatmentSummary {
41
+ patientId: string;
42
+ diagnosis: {
43
+ condition: string;
44
+ diagnosisDate: Date;
45
+ stage?: string;
46
+ simpleExplanation: string;
47
+ };
48
+ currentTreatment: {
49
+ regimen: string;
50
+ medications: {
51
+ name: string;
52
+ purpose: string;
53
+ dose: string;
54
+ frequency: string;
55
+ instructions: string;
56
+ sideEffectsToWatch: string[];
57
+ }[];
58
+ startDate: Date;
59
+ cycleInfo?: {
60
+ currentCycle: number;
61
+ totalPlannedCycles?: number;
62
+ nextCycleDate?: Date;
63
+ };
64
+ whatToExpect: string[];
65
+ whenToCallDoctor: string[];
66
+ };
67
+ upcomingAppointments: {
68
+ date: Date;
69
+ type: string;
70
+ provider: string;
71
+ location: string;
72
+ preparation?: string;
73
+ }[];
74
+ careTeam: {
75
+ role: string;
76
+ name: string;
77
+ phone?: string;
78
+ messageable: boolean;
79
+ }[];
80
+ goals: {
81
+ goal: string;
82
+ progress?: number;
83
+ lastUpdated?: Date;
84
+ }[];
85
+ }
86
+ export interface SymptomReport {
87
+ id: string;
88
+ patientId: string;
89
+ reportedAt: Date;
90
+ symptoms: {
91
+ symptom: string;
92
+ severity: 1 | 2 | 3 | 4 | 5;
93
+ duration?: string;
94
+ interference: 'none' | 'little' | 'somewhat' | 'quite-a-bit' | 'very-much';
95
+ notes?: string;
96
+ }[];
97
+ overallFeeling: 1 | 2 | 3 | 4 | 5;
98
+ concernsForDoctor?: string;
99
+ requiresFollowUp: boolean;
100
+ followUpReason?: string;
101
+ }
102
+ export interface MedicationAdherenceLog {
103
+ patientId: string;
104
+ medication: string;
105
+ logs: {
106
+ scheduledTime: Date;
107
+ takenTime?: Date;
108
+ taken: boolean;
109
+ skippedReason?: string;
110
+ sideEffects?: string[];
111
+ notes?: string;
112
+ }[];
113
+ adherenceRate: number;
114
+ missedDoses: number;
115
+ streakDays: number;
116
+ }
117
+ export interface QualityOfLifeAssessment {
118
+ id: string;
119
+ patientId: string;
120
+ assessmentType: 'FACT-G' | 'EORTC-QLQ-C30' | 'PRO-CTCAE' | 'custom';
121
+ completedAt: Date;
122
+ responses: {
123
+ question: string;
124
+ category: 'physical' | 'emotional' | 'social' | 'functional' | 'symptoms';
125
+ response: number | string;
126
+ score?: number;
127
+ }[];
128
+ summaryScores: {
129
+ domain: string;
130
+ score: number;
131
+ maxScore: number;
132
+ interpretation: string;
133
+ changeFromLast?: number;
134
+ }[];
135
+ alerts: {
136
+ domain: string;
137
+ concern: string;
138
+ severity: 'low' | 'moderate' | 'high';
139
+ recommendation: string;
140
+ }[];
141
+ }
142
+ export interface PatientMessage {
143
+ id: string;
144
+ threadId: string;
145
+ patientId: string;
146
+ direction: 'inbound' | 'outbound';
147
+ sender: {
148
+ type: 'patient' | 'provider' | 'nurse' | 'system';
149
+ name: string;
150
+ id?: string;
151
+ };
152
+ recipient?: {
153
+ type: 'patient' | 'provider' | 'nurse' | 'care-team';
154
+ name: string;
155
+ id?: string;
156
+ };
157
+ subject?: string;
158
+ body: string;
159
+ attachments?: {
160
+ name: string;
161
+ type: string;
162
+ url: string;
163
+ }[];
164
+ sentAt: Date;
165
+ readAt?: Date;
166
+ priority: 'routine' | 'urgent';
167
+ category: 'question' | 'symptoms' | 'medication' | 'appointment' | 'billing' | 'other';
168
+ requiresResponse: boolean;
169
+ responseDeadline?: Date;
170
+ status: 'unread' | 'read' | 'responded' | 'closed';
171
+ }
172
+ export interface EducationalContent {
173
+ id: string;
174
+ title: string;
175
+ description: string;
176
+ contentType: 'article' | 'video' | 'infographic' | 'checklist' | 'faq';
177
+ targetAudience: string[];
178
+ cancerTypes?: string[];
179
+ treatmentTypes?: string[];
180
+ topics: string[];
181
+ readingLevel: 'basic' | 'intermediate' | 'advanced';
182
+ language: string;
183
+ content: string;
184
+ videoUrl?: string;
185
+ duration?: number;
186
+ author?: string;
187
+ reviewedBy?: string;
188
+ lastUpdated: Date;
189
+ relatedContent?: string[];
190
+ }
191
+ export interface AppointmentRequest {
192
+ id: string;
193
+ patientId: string;
194
+ requestType: 'new' | 'reschedule' | 'cancel';
195
+ appointmentType: string;
196
+ preferredDates: Date[];
197
+ preferredTimes: ('morning' | 'afternoon' | 'evening')[];
198
+ reason: string;
199
+ urgency: 'routine' | 'soon' | 'urgent';
200
+ notes?: string;
201
+ status: 'pending' | 'scheduled' | 'declined';
202
+ scheduledAppointment?: {
203
+ date: Date;
204
+ provider: string;
205
+ location: string;
206
+ };
207
+ submittedAt: Date;
208
+ processedAt?: Date;
209
+ processedBy?: string;
210
+ }
211
+ export declare class PatientPortalService extends EventEmitter {
212
+ private accounts;
213
+ private treatmentSummaries;
214
+ private symptomReports;
215
+ private adherenceLogs;
216
+ private qolAssessments;
217
+ private messages;
218
+ private educationalContent;
219
+ private appointmentRequests;
220
+ constructor();
221
+ /**
222
+ * Create a patient portal account
223
+ */
224
+ createAccount(accountData: Omit<PatientAccount, 'id' | 'createdAt'>): Promise<PatientAccount>;
225
+ /**
226
+ * Get patient account
227
+ */
228
+ getAccount(patientId: string): PatientAccount | undefined;
229
+ /**
230
+ * Record patient login
231
+ */
232
+ recordLogin(patientId: string): void;
233
+ /**
234
+ * Set patient treatment summary
235
+ */
236
+ setTreatmentSummary(summary: PatientTreatmentSummary): void;
237
+ /**
238
+ * Get patient-friendly treatment summary
239
+ */
240
+ getTreatmentSummary(patientId: string): PatientTreatmentSummary | undefined;
241
+ /**
242
+ * Generate simple language summary
243
+ */
244
+ generateSimpleSummary(diagnosis: string, stage: string, treatment: string): {
245
+ diagnosisExplanation: string;
246
+ treatmentExplanation: string;
247
+ whatItMeans: string[];
248
+ };
249
+ private simplifyDiagnosis;
250
+ private simplifyTreatment;
251
+ /**
252
+ * Submit a symptom report
253
+ */
254
+ submitSymptomReport(patientId: string, symptoms: SymptomReport['symptoms'], overallFeeling: SymptomReport['overallFeeling'], concerns?: string): Promise<SymptomReport>;
255
+ /**
256
+ * Get symptom history for patient
257
+ */
258
+ getSymptomHistory(patientId: string, days?: number): SymptomReport[];
259
+ /**
260
+ * Get symptom trends
261
+ */
262
+ getSymptomTrends(patientId: string): {
263
+ symptom: string;
264
+ trend: 'improving' | 'stable' | 'worsening';
265
+ averageSeverity: number;
266
+ occurrences: number;
267
+ }[];
268
+ private analyzeSymptoms;
269
+ private determineSeverity;
270
+ /**
271
+ * Log medication taken
272
+ */
273
+ logMedicationTaken(patientId: string, medication: string, scheduledTime: Date, taken: boolean, takenTime?: Date, skippedReason?: string, sideEffects?: string[]): void;
274
+ /**
275
+ * Get adherence summary
276
+ */
277
+ getAdherenceSummary(patientId: string): {
278
+ medications: MedicationAdherenceLog[];
279
+ overallAdherence: number;
280
+ concerns: string[];
281
+ encouragement: string;
282
+ };
283
+ /**
284
+ * Submit quality of life assessment
285
+ */
286
+ submitQoLAssessment(patientId: string, assessmentType: QualityOfLifeAssessment['assessmentType'], responses: QualityOfLifeAssessment['responses']): Promise<QualityOfLifeAssessment>;
287
+ /**
288
+ * Get QoL assessment history
289
+ */
290
+ getQoLHistory(patientId: string): QualityOfLifeAssessment[];
291
+ private scoreAssessment;
292
+ private interpretScore;
293
+ private identifyQoLAlerts;
294
+ /**
295
+ * Send a message
296
+ */
297
+ sendMessage(patientId: string, body: string, category: PatientMessage['category'], priority?: PatientMessage['priority'], subject?: string): Promise<PatientMessage>;
298
+ /**
299
+ * Get messages for patient
300
+ */
301
+ getMessages(patientId: string, unreadOnly?: boolean): PatientMessage[];
302
+ /**
303
+ * Mark message as read
304
+ */
305
+ markMessageRead(patientId: string, messageId: string): void;
306
+ /**
307
+ * Get recommended educational content
308
+ */
309
+ getRecommendedContent(patientId: string): EducationalContent[];
310
+ /**
311
+ * Search educational content
312
+ */
313
+ searchContent(query: string): EducationalContent[];
314
+ private initializeEducationalContent;
315
+ /**
316
+ * Request an appointment
317
+ */
318
+ requestAppointment(request: Omit<AppointmentRequest, 'id' | 'status' | 'submittedAt'>): Promise<string>;
319
+ /**
320
+ * Get appointment requests for patient
321
+ */
322
+ getAppointmentRequests(patientId: string): AppointmentRequest[];
323
+ /**
324
+ * Get dashboard data for patient
325
+ */
326
+ getDashboard(patientId: string): {
327
+ summary: PatientTreatmentSummary | undefined;
328
+ recentSymptoms: SymptomReport[];
329
+ adherence: ReturnType<typeof this.getAdherenceSummary>;
330
+ unreadMessages: number;
331
+ upcomingAppointments: PatientTreatmentSummary['upcomingAppointments'];
332
+ recommendedContent: EducationalContent[];
333
+ alerts: string[];
334
+ };
335
+ }
336
+ export default PatientPortalService;
337
+ //# sourceMappingURL=patientPortal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patientPortal.d.ts","sourceRoot":"","sources":["../../src/patient/patientPortal.ts"],"names":[],"mappings":"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"}