/** * Machine Learning Outcome Prediction Infrastructure * * Provides ML-based prediction models for: * - Treatment response prediction * - Survival probability estimation * - Toxicity risk assessment * - Resistance prediction * - Optimal therapy selection * * This module provides the infrastructure for training and deploying * ML models. In production, models would be trained on real patient cohorts * with proper validation and FDA clearance. */ import { EventEmitter } from 'events'; export interface PatientFeatures { age: number; gender: 'male' | 'female'; ethnicity?: string; bmi?: number; cancerType: string; histology?: string; stage: 'I' | 'II' | 'III' | 'IV' | 'IA' | 'IB' | 'IIA' | 'IIB' | 'IIIA' | 'IIIB' | 'IIIC' | 'IVA' | 'IVB'; grade?: 1 | 2 | 3; tumorSize?: number; lymphNodeInvolvement?: number; metastaticSites?: string[]; ecogStatus: 0 | 1 | 2 | 3 | 4; genomicAlterations: { gene: string; alteration: string; type: 'mutation' | 'amplification' | 'deletion' | 'fusion'; vaf?: number; }[]; pdl1Score?: number; pdl1ScoreType?: 'TPS' | 'CPS' | 'IC'; msiStatus?: 'MSI-H' | 'MSI-L' | 'MSS'; tmbValue?: number; tmbStatus?: 'high' | 'low'; hrdScore?: number; hrdStatus?: 'positive' | 'negative'; brcaStatus?: 'BRCA1' | 'BRCA2' | 'wild-type'; ldh?: number; albumin?: number; hemoglobin?: number; neutrophils?: number; lymphocytes?: number; platelets?: number; creatinine?: number; bilirubin?: number; alkalinePhosphatase?: number; priorLines?: number; priorTherapies?: string[]; priorResponse?: 'CR' | 'PR' | 'SD' | 'PD'; treatmentFreeInterval?: number; comorbidityIndex?: number; organFunction?: { cardiac?: 'normal' | 'impaired'; hepatic?: 'normal' | 'impaired'; renal?: 'normal' | 'impaired'; pulmonary?: 'normal' | 'impaired'; }; } export interface TreatmentFeatures { regimen: string; drugs: string[]; treatmentType: 'chemotherapy' | 'immunotherapy' | 'targeted' | 'combination' | 'radiation' | 'surgery' | 'car-t'; setting: 'neoadjuvant' | 'adjuvant' | 'first-line' | 'second-line' | 'third-line-plus' | 'maintenance'; dosing?: 'standard' | 'reduced' | 'dose-dense'; schedule?: string; } export interface ResponsePrediction { predictedResponse: 'CR' | 'PR' | 'SD' | 'PD'; probabilities: { completeResponse: number; partialResponse: number; stableDisease: number; progressiveDisease: number; }; confidence: number; objectiveResponseRate: number; diseaseControlRate: number; timeToResponse?: { median: number; range: [number, number]; }; } export interface SurvivalPrediction { pfs: { median: number; sixMonth: number; twelveMonth: number; twentyFourMonth: number; confidence: number; hazardRatio?: number; }; os: { median: number; twelveMonth: number; twentyFourMonth: number; fiveYear: number; confidence: number; hazardRatio?: number; }; riskGroup: 'low' | 'intermediate-low' | 'intermediate-high' | 'high'; riskScore: number; } export interface ToxicityPrediction { overallRisk: 'low' | 'moderate' | 'high'; grade3PlusRisk: number; specificRisks: { toxicity: string; grade: 1 | 2 | 3 | 4 | 5; probability: number; timeToOnset?: { median: number; unit: 'days' | 'weeks' | 'cycles'; }; reversible: boolean; management?: string; }[]; iraeRisk?: { any: number; grade3Plus: number; specificOrgans: { organ: string; risk: number; }[]; }; doseModification?: { recommended: boolean; reduction: number; reason: string; }; } export interface ResistancePrediction { intrinsicResistanceRisk: number; acquiredResistanceRisk: number; predictedMechanisms: { mechanism: string; probability: number; monitoringBiomarker?: string; }[]; timeToResistance?: { median: number; range: [number, number]; }; nextLineOptions: { therapy: string; rationale: string; expectedBenefit: number; }[]; } export interface TherapyRanking { therapies: { regimen: string; drugs: string[]; rank: number; predictions: { responseRate: number; pfsSurvival: number; osSurvival: number; toxicityRisk: number; qualityOfLifeScore: number; }; overallScore: number; confidence: number; matchingBiomarkers: string[]; fdaApproved: boolean; nccnRecommended: boolean; considerations: string[]; contraindications?: string[]; }[]; bestChoice: { regimen: string; rationale: string[]; }; } export interface MLModel { id: string; name: string; version: string; type: 'classification' | 'regression' | 'survival' | 'ranking'; target: 'response' | 'pfs' | 'os' | 'toxicity' | 'resistance'; cancerTypes: string[]; performance: { auc?: number; accuracy?: number; sensitivity?: number; specificity?: number; cIndex?: number; calibration?: number; brier?: number; }; validation: { method: 'cross-validation' | 'temporal' | 'external' | 'prospective'; cohortSize: number; testSetSize: number; validationDate: Date; }; features: string[]; importantFeatures: { feature: string; importance: number; }[]; status: 'development' | 'validation' | 'clinical-use' | 'deprecated'; regulatoryStatus?: 'not-submitted' | 'pending' | 'cleared' | '510k' | 'de-novo'; } export interface ModelRegistry { models: MLModel[]; getModel(id: string): MLModel | undefined; getBestModel(target: MLModel['target'], cancerType: string): MLModel | undefined; registerModel(model: MLModel): void; } export declare class OutcomePredictorService extends EventEmitter { private modelRegistry; private featureEncoders; private predictionCache; private cacheDuration; constructor(); /** * Predict treatment response */ predictResponse(patient: PatientFeatures, treatment: TreatmentFeatures): Promise; /** * Predict survival outcomes */ predictSurvival(patient: PatientFeatures, treatment: TreatmentFeatures): Promise; /** * Predict toxicity risk */ predictToxicity(patient: PatientFeatures, treatment: TreatmentFeatures): Promise; /** * Predict resistance development */ predictResistance(patient: PatientFeatures, treatment: TreatmentFeatures): Promise; /** * Rank treatment options */ rankTherapies(patient: PatientFeatures, treatmentOptions: TreatmentFeatures[], preferences?: { prioritizeEfficacy?: boolean; prioritizeToxicity?: boolean; prioritizeQoL?: boolean; }): Promise; /** * Get comprehensive prediction report */ getComprehensivePrediction(patient: PatientFeatures, treatment: TreatmentFeatures): Promise<{ response: ResponsePrediction; survival: SurvivalPrediction; toxicity: ToxicityPrediction; resistance: ResistancePrediction; overallAssessment: { recommendation: 'strongly-recommended' | 'recommended' | 'consider' | 'caution' | 'not-recommended'; rationale: string[]; caveats: string[]; alternativeOptions: string[]; }; }>; private computeResponsePrediction; private computeSurvivalPrediction; private computeToxicityPrediction; private computeResistancePrediction; private initializeDefaultModels; private initializeFeatureEncoders; private encodeFeatures; private getBestModel; private hasBiomarkerMatch; private hasImmunotherapyDrug; private getDrugToxicityProfiles; private getResistanceMechanisms; private getNextLineOptions; private estimateQoLScore; private getMatchingBiomarkers; private isBiomarkerRelevant; private checkFDAApproval; private checkNCCNRecommendation; private getConsiderations; private generateOverallAssessment; private getCacheKey; private getFromCache; private setCache; /** * Register a new model */ registerModel(model: MLModel): void; /** * Get model performance metrics */ getModelMetrics(modelId: string): MLModel['performance'] | undefined; /** * List all available models */ listModels(): MLModel[]; } export default OutcomePredictorService; //# sourceMappingURL=outcomePredictor.d.ts.map