fluxq-engine 1.0.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 (90) hide show
  1. package/README.md +35 -0
  2. package/dist/api/client.d.ts +82 -0
  3. package/dist/api/client.d.ts.map +1 -0
  4. package/dist/api/client.js +75 -0
  5. package/dist/api/client.js.map +1 -0
  6. package/dist/api/controllers.d.ts +12 -0
  7. package/dist/api/controllers.d.ts.map +1 -0
  8. package/dist/api/controllers.js +569 -0
  9. package/dist/api/controllers.js.map +1 -0
  10. package/dist/api/middleware.d.ts +7 -0
  11. package/dist/api/middleware.d.ts.map +1 -0
  12. package/dist/api/middleware.js +133 -0
  13. package/dist/api/middleware.js.map +1 -0
  14. package/dist/api/routes.d.ts +3 -0
  15. package/dist/api/routes.d.ts.map +1 -0
  16. package/dist/api/routes.js +46 -0
  17. package/dist/api/routes.js.map +1 -0
  18. package/dist/api/server.d.ts +4 -0
  19. package/dist/api/server.d.ts.map +1 -0
  20. package/dist/api/server.js +72 -0
  21. package/dist/api/server.js.map +1 -0
  22. package/dist/core/classifiers/bloodPressure.d.ts +9 -0
  23. package/dist/core/classifiers/bloodPressure.d.ts.map +1 -0
  24. package/dist/core/classifiers/bloodPressure.js +178 -0
  25. package/dist/core/classifiers/bloodPressure.js.map +1 -0
  26. package/dist/core/classifiers/cholesterol.d.ts +9 -0
  27. package/dist/core/classifiers/cholesterol.d.ts.map +1 -0
  28. package/dist/core/classifiers/cholesterol.js +123 -0
  29. package/dist/core/classifiers/cholesterol.js.map +1 -0
  30. package/dist/core/classifiers/diabetes.d.ts +8 -0
  31. package/dist/core/classifiers/diabetes.d.ts.map +1 -0
  32. package/dist/core/classifiers/diabetes.js +154 -0
  33. package/dist/core/classifiers/diabetes.js.map +1 -0
  34. package/dist/core/classifiers/general.d.ts +8 -0
  35. package/dist/core/classifiers/general.d.ts.map +1 -0
  36. package/dist/core/classifiers/general.js +84 -0
  37. package/dist/core/classifiers/general.js.map +1 -0
  38. package/dist/core/classifiers/index.d.ts +5 -0
  39. package/dist/core/classifiers/index.d.ts.map +1 -0
  40. package/dist/core/classifiers/index.js +113 -0
  41. package/dist/core/classifiers/index.js.map +1 -0
  42. package/dist/core/classifiers/redFlags.d.ts +10 -0
  43. package/dist/core/classifiers/redFlags.d.ts.map +1 -0
  44. package/dist/core/classifiers/redFlags.js +59 -0
  45. package/dist/core/classifiers/redFlags.js.map +1 -0
  46. package/dist/core/clinicalMultiplier.d.ts +6 -0
  47. package/dist/core/clinicalMultiplier.d.ts.map +1 -0
  48. package/dist/core/clinicalMultiplier.js +199 -0
  49. package/dist/core/clinicalMultiplier.js.map +1 -0
  50. package/dist/core/demo.d.ts +3 -0
  51. package/dist/core/demo.d.ts.map +1 -0
  52. package/dist/core/demo.js +128 -0
  53. package/dist/core/demo.js.map +1 -0
  54. package/dist/core/fairnessEngine.d.ts +13 -0
  55. package/dist/core/fairnessEngine.d.ts.map +1 -0
  56. package/dist/core/fairnessEngine.js +156 -0
  57. package/dist/core/fairnessEngine.js.map +1 -0
  58. package/dist/core/metricsCalculator.d.ts +23 -0
  59. package/dist/core/metricsCalculator.d.ts.map +1 -0
  60. package/dist/core/metricsCalculator.js +159 -0
  61. package/dist/core/metricsCalculator.js.map +1 -0
  62. package/dist/core/predictor.d.ts +11 -0
  63. package/dist/core/predictor.d.ts.map +1 -0
  64. package/dist/core/predictor.js +45 -0
  65. package/dist/core/predictor.js.map +1 -0
  66. package/dist/core/priorityScorer.d.ts +17 -0
  67. package/dist/core/priorityScorer.d.ts.map +1 -0
  68. package/dist/core/priorityScorer.js +129 -0
  69. package/dist/core/priorityScorer.js.map +1 -0
  70. package/dist/core/queueConfig.d.ts +4 -0
  71. package/dist/core/queueConfig.d.ts.map +1 -0
  72. package/dist/core/queueConfig.js +114 -0
  73. package/dist/core/queueConfig.js.map +1 -0
  74. package/dist/core/queueOptimizer.d.ts +24 -0
  75. package/dist/core/queueOptimizer.d.ts.map +1 -0
  76. package/dist/core/queueOptimizer.js +269 -0
  77. package/dist/core/queueOptimizer.js.map +1 -0
  78. package/dist/core/simulator.d.ts +12 -0
  79. package/dist/core/simulator.d.ts.map +1 -0
  80. package/dist/core/simulator.js +181 -0
  81. package/dist/core/simulator.js.map +1 -0
  82. package/dist/core/types.d.ts +249 -0
  83. package/dist/core/types.d.ts.map +1 -0
  84. package/dist/core/types.js +20 -0
  85. package/dist/core/types.js.map +1 -0
  86. package/dist/index.d.ts +17 -0
  87. package/dist/index.d.ts.map +1 -0
  88. package/dist/index.js +42 -0
  89. package/dist/index.js.map +1 -0
  90. package/package.json +51 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cholesterol.js","sourceRoot":"","sources":["../../../src/core/classifiers/cholesterol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { DiabetesSymptoms, ComfortLevel, OnsetType, SeverityLevel } from '../types';
2
+ export interface DiabetesClassification {
3
+ severity: SeverityLevel;
4
+ pattern: 'hypo' | 'hyper' | 'dka' | 'hhs' | 'mixed' | 'routine';
5
+ escalationReasons: string[];
6
+ }
7
+ export declare function classifyDiabetes(symptoms: DiabetesSymptoms, comfort: ComfortLevel, onset: OnsetType): DiabetesClassification;
8
+ //# sourceMappingURL=diabetes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diabetes.d.ts","sourceRoot":"","sources":["../../../src/core/classifiers/diabetes.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,aAAa,EACd,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS,CAAC;IAChE,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAKD,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,SAAS,GACf,sBAAsB,CA+IxB"}
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.classifyDiabetes = classifyDiabetes;
4
+ function classifyDiabetes(symptoms, comfort, onset) {
5
+ const reasons = [];
6
+ const hypoSymptoms = [
7
+ symptoms.shaking, symptoms.suddenSweating, symptoms.heartPounding,
8
+ symptoms.suddenHunger, symptoms.paleSkin, symptoms.mentalFog,
9
+ symptoms.tinglingLips, symptoms.suddenAnxiety,
10
+ ];
11
+ const hypoCount = hypoSymptoms.filter(Boolean).length;
12
+ const hyperSymptoms = [
13
+ symptoms.extremeThirst, symptoms.frequentUrination, symptoms.blurredVision,
14
+ symptoms.fruityBreath, symptoms.nausea, symptoms.deepFastBreathing,
15
+ symptoms.extremeTiredness, symptoms.stomachPain, symptoms.slowWoundHealing,
16
+ ];
17
+ const hyperCount = hyperSymptoms.filter(Boolean).length;
18
+ let severity = 'low';
19
+ let pattern = 'routine';
20
+ if (hypoCount === 0 && hyperCount === 0) {
21
+ severity = 'low';
22
+ pattern = 'routine';
23
+ }
24
+ else if (hypoCount > hyperCount || (hypoCount >= 2 && hypoCount === hyperCount)) {
25
+ pattern = 'hypo';
26
+ if (hypoCount >= 3 && comfort >= 3) {
27
+ severity = 'high';
28
+ reasons.push('Severe hypoglycaemia — imminent LOC risk');
29
+ }
30
+ else if (hypoCount >= 2 && comfort >= 2) {
31
+ severity = 'high';
32
+ reasons.push('Significant hypo symptoms with distress');
33
+ }
34
+ else if (hypoCount >= 2 && comfort === 1) {
35
+ severity = 'standard';
36
+ }
37
+ else if (hypoCount === 1 && comfort >= 2) {
38
+ severity = 'standard';
39
+ }
40
+ else {
41
+ severity = 'low';
42
+ }
43
+ }
44
+ else if (hyperCount > hypoCount || (hyperCount >= 2 && hyperCount === hypoCount)) {
45
+ if (symptoms.fruityBreath && (symptoms.nausea || symptoms.deepFastBreathing) && comfort >= 3) {
46
+ severity = 'high';
47
+ pattern = 'dka';
48
+ reasons.push('DKA pattern — fruity breath + nausea/deep breathing');
49
+ }
50
+ else if (hyperCount >= 4 && comfort >= 3) {
51
+ severity = 'high';
52
+ pattern = 'hhs';
53
+ reasons.push('HHS pattern — very high symptom load');
54
+ }
55
+ else if (hyperCount >= 3 && comfort >= 2) {
56
+ severity = 'high';
57
+ pattern = 'hyper';
58
+ reasons.push('Multiple hyper symptoms with significant discomfort');
59
+ }
60
+ else if (hyperCount >= 2 && comfort >= 1 && comfort <= 2) {
61
+ severity = 'standard';
62
+ pattern = 'hyper';
63
+ }
64
+ else {
65
+ severity = 'low';
66
+ pattern = 'hyper';
67
+ }
68
+ }
69
+ else if (hypoCount > 0 && hyperCount > 0) {
70
+ severity = 'standard';
71
+ pattern = 'mixed';
72
+ reasons.push('Mixed hypo/hyper signals — caution');
73
+ }
74
+ if (severity === 'standard' && onset === 'acute') {
75
+ severity = 'high';
76
+ reasons.push('Acute onset escalation: standard → high');
77
+ }
78
+ else if (severity === 'low' && onset === 'acute') {
79
+ severity = 'standard';
80
+ reasons.push('Acute onset escalation: low → standard');
81
+ }
82
+ if (symptoms.missedInsulinDose && hypoCount >= 1) {
83
+ severity = escalate(severity);
84
+ reasons.push('Missed insulin dose + hypo symptoms → escalated');
85
+ }
86
+ if (symptoms.recentHypoEpisode && onset === 'today') {
87
+ if (severity === 'standard') {
88
+ severity = 'high';
89
+ reasons.push('Recent hypo episode + today onset → escalated to high');
90
+ }
91
+ }
92
+ if (symptoms.isPregnant) {
93
+ if (severity === 'low')
94
+ severity = 'standard';
95
+ else if (severity === 'standard')
96
+ severity = 'high';
97
+ reasons.push('Pregnant — escalated one level (max high)');
98
+ }
99
+ if (symptoms.bloodGlucose !== undefined) {
100
+ const bg = symptoms.bloodGlucose;
101
+ if (bg < 54) {
102
+ severity = 'high';
103
+ reasons.push(`Glucose ${bg} mg/dL < 54 — severe hypo, immediate risk`);
104
+ }
105
+ else if (bg >= 54 && bg <= 70) {
106
+ if (severity !== 'high' && severity !== 'critical') {
107
+ severity = 'high';
108
+ reasons.push(`Glucose ${bg} mg/dL (54-70) — danger zone`);
109
+ }
110
+ }
111
+ else if (bg >= 141 && bg <= 180) {
112
+ if (severity === 'low') {
113
+ severity = 'standard';
114
+ reasons.push(`Glucose ${bg} mg/dL (141-180) — mildly elevated`);
115
+ }
116
+ }
117
+ else if (bg >= 181 && bg <= 300) {
118
+ if (severity === 'low')
119
+ severity = 'standard';
120
+ if (hyperCount > 0 && severity === 'standard')
121
+ severity = 'high';
122
+ reasons.push(`Glucose ${bg} mg/dL (181-300) — elevated`);
123
+ }
124
+ else if (bg > 300) {
125
+ severity = 'high';
126
+ reasons.push(`Glucose ${bg} mg/dL > 300 — DKA/HHS territory`);
127
+ }
128
+ }
129
+ if (symptoms.hba1c !== undefined) {
130
+ const a1c = symptoms.hba1c;
131
+ if (a1c < 7.0 && hypoCount === 0 && hyperCount === 0 && severity === 'standard') {
132
+ severity = 'low';
133
+ reasons.push(`HbA1c ${a1c}% < 7.0 — well controlled, downgraded`);
134
+ }
135
+ else if (a1c >= 9.0 && a1c <= 10.0 && severity === 'low') {
136
+ severity = 'standard';
137
+ reasons.push(`HbA1c ${a1c}% (9-10) — poor control`);
138
+ }
139
+ else if (a1c > 10.0) {
140
+ severity = escalate(severity);
141
+ reasons.push(`HbA1c ${a1c}% > 10 — chronic poor control, escalated`);
142
+ }
143
+ }
144
+ return { severity, pattern, escalationReasons: reasons };
145
+ }
146
+ function escalate(severity) {
147
+ switch (severity) {
148
+ case 'low': return 'standard';
149
+ case 'standard': return 'high';
150
+ case 'high': return 'high';
151
+ case 'critical': return 'critical';
152
+ }
153
+ }
154
+ //# sourceMappingURL=diabetes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diabetes.js","sourceRoot":"","sources":["../../../src/core/classifiers/diabetes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { GeneralSymptoms, ComfortLevel, OnsetType, SeverityLevel } from '../types';
2
+ export interface GeneralClassification {
3
+ severity: SeverityLevel;
4
+ points: number;
5
+ escalationReasons: string[];
6
+ }
7
+ export declare function classifyGeneral(symptoms: GeneralSymptoms, comfort: ComfortLevel, onset: OnsetType): GeneralClassification;
8
+ //# sourceMappingURL=general.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../../src/core/classifiers/general.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,YAAY,EACZ,SAAS,EACT,aAAa,EACd,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAKD,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,SAAS,GACf,qBAAqB,CAmFvB"}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.classifyGeneral = classifyGeneral;
4
+ function classifyGeneral(symptoms, comfort, onset) {
5
+ const reasons = [];
6
+ if (symptoms.bladderBowelLoss) {
7
+ reasons.push('Loss of bladder/bowel control → cauda equina emergency');
8
+ return { severity: 'critical', points: 99, escalationReasons: reasons };
9
+ }
10
+ if (symptoms.rashWithSwelling) {
11
+ reasons.push('Rash + facial/throat swelling → anaphylaxis');
12
+ return { severity: 'critical', points: 99, escalationReasons: reasons };
13
+ }
14
+ if (symptoms.selfHarmThoughts) {
15
+ reasons.push('Self-harm thoughts → mental health emergency');
16
+ return { severity: 'critical', points: 99, escalationReasons: reasons };
17
+ }
18
+ if (symptoms.confusedNotSelf && comfort >= 3) {
19
+ reasons.push('Confused/not self + comfort ≥ 3 → altered mental status');
20
+ return { severity: 'critical', points: 99, escalationReasons: reasons };
21
+ }
22
+ let points = 0;
23
+ points += comfort;
24
+ points += symptoms.impactLevel;
25
+ if (symptoms.highFever)
26
+ points += 2;
27
+ if (symptoms.worseningRapidly)
28
+ points += 2;
29
+ if (symptoms.vomitingOver5Times)
30
+ points += 2;
31
+ if (symptoms.nothingStaysDown)
32
+ points += 2;
33
+ if (symptoms.worstPainEver)
34
+ points += 2;
35
+ if (symptoms.gotSeriousBefore)
36
+ points += 1;
37
+ if (onset === 'acute')
38
+ points += 1;
39
+ if (symptoms.isOver65)
40
+ points += 1;
41
+ if (symptoms.immunocompromised)
42
+ points += 2;
43
+ if (symptoms.isPregnant)
44
+ points += 1;
45
+ if (symptoms.confusedNotSelf)
46
+ points += 2;
47
+ const complaintPoints = {
48
+ fever: 2,
49
+ cough: 1,
50
+ stomach: 1,
51
+ pain: 2,
52
+ skin: 1,
53
+ mentalHealth: 1,
54
+ urinary: 1,
55
+ eyeEarDental: 1,
56
+ prescription: 0,
57
+ other: 1,
58
+ };
59
+ points += complaintPoints[symptoms.primaryComplaint] || 0;
60
+ let severity;
61
+ if (points >= 10) {
62
+ severity = 'high';
63
+ }
64
+ else if (points >= 6) {
65
+ severity = 'standard';
66
+ }
67
+ else {
68
+ severity = 'low';
69
+ }
70
+ if (symptoms.primaryComplaint === 'mentalHealth' && comfort >= 3 && severity === 'low') {
71
+ severity = 'standard';
72
+ reasons.push('Mental health + comfort ≥ 3 → minimum standard');
73
+ }
74
+ if ((symptoms.isOver65 || symptoms.immunocompromised) && severity === 'low') {
75
+ severity = 'standard';
76
+ reasons.push('Elderly/immunocompromised + low → escalated to standard');
77
+ }
78
+ if (symptoms.highFever && symptoms.isOver65 && severity === 'low') {
79
+ severity = 'standard';
80
+ reasons.push('Fever + elderly → at least standard');
81
+ }
82
+ return { severity, points, escalationReasons: reasons };
83
+ }
84
+ //# sourceMappingURL=general.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"general.js","sourceRoot":"","sources":["../../../src/core/classifiers/general.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { IntakeForm, ClassificationResult } from '../types';
2
+ import { checkRedFlags, severityToUrgency, baseSeverityScore } from './redFlags';
3
+ export declare function classifyPatient(intake: IntakeForm, age?: number): ClassificationResult;
4
+ export { checkRedFlags, severityToUrgency, baseSeverityScore };
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/classifiers/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,UAAU,EACV,oBAAoB,EAGrB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAuBjF,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,oBAAoB,CAkFtF;AAmCD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.baseSeverityScore = exports.severityToUrgency = exports.checkRedFlags = void 0;
4
+ exports.classifyPatient = classifyPatient;
5
+ const redFlags_1 = require("./redFlags");
6
+ Object.defineProperty(exports, "checkRedFlags", { enumerable: true, get: function () { return redFlags_1.checkRedFlags; } });
7
+ Object.defineProperty(exports, "severityToUrgency", { enumerable: true, get: function () { return redFlags_1.severityToUrgency; } });
8
+ Object.defineProperty(exports, "baseSeverityScore", { enumerable: true, get: function () { return redFlags_1.baseSeverityScore; } });
9
+ const diabetes_1 = require("./diabetes");
10
+ const cholesterol_1 = require("./cholesterol");
11
+ const bloodPressure_1 = require("./bloodPressure");
12
+ const general_1 = require("./general");
13
+ const clinicalMultiplier_1 = require("../clinicalMultiplier");
14
+ const queueConfig_1 = require("../queueConfig");
15
+ function classifyPatient(intake, age) {
16
+ const { queueType, comfort, onset, emergencySignals } = intake;
17
+ const redFlag = (0, redFlags_1.checkRedFlags)(emergencySignals, comfort);
18
+ if (redFlag.triggered && redFlag.level === 'critical') {
19
+ return buildCrisisResult(queueType, redFlag.reasons);
20
+ }
21
+ let severity;
22
+ let symptomPattern = 'unknown';
23
+ let escalationReasons = [];
24
+ switch (queueType) {
25
+ case 'diabetes': {
26
+ if (!intake.diabetesSymptoms)
27
+ throw new Error('Diabetes symptoms required for diabetes queue');
28
+ const result = (0, diabetes_1.classifyDiabetes)(intake.diabetesSymptoms, comfort, onset);
29
+ severity = result.severity;
30
+ symptomPattern = result.pattern;
31
+ escalationReasons = result.escalationReasons;
32
+ break;
33
+ }
34
+ case 'cholesterol': {
35
+ if (!intake.cholesterolSymptoms)
36
+ throw new Error('Cholesterol symptoms required for cholesterol queue');
37
+ const result = (0, cholesterol_1.classifyCholesterol)(intake.cholesterolSymptoms, comfort, onset);
38
+ severity = result.severity;
39
+ symptomPattern = result.pattern;
40
+ escalationReasons = result.escalationReasons;
41
+ break;
42
+ }
43
+ case 'bloodPressure': {
44
+ if (!intake.bloodPressureSymptoms)
45
+ throw new Error('BP symptoms required for blood pressure queue');
46
+ const result = (0, bloodPressure_1.classifyBloodPressure)(intake.bloodPressureSymptoms, comfort, onset, emergencySignals);
47
+ severity = result.severity;
48
+ symptomPattern = result.pattern;
49
+ escalationReasons = result.escalationReasons;
50
+ break;
51
+ }
52
+ case 'general': {
53
+ if (!intake.generalSymptoms)
54
+ throw new Error('General symptoms required for general queue');
55
+ const result = (0, general_1.classifyGeneral)(intake.generalSymptoms, comfort, onset);
56
+ severity = result.severity;
57
+ symptomPattern = `points:${result.points}`;
58
+ escalationReasons = result.escalationReasons;
59
+ break;
60
+ }
61
+ }
62
+ if (redFlag.triggered && redFlag.level === 'high') {
63
+ if (severity === 'low' || severity === 'standard') {
64
+ severity = 'high';
65
+ escalationReasons.push(...redFlag.reasons);
66
+ }
67
+ }
68
+ if (severity === 'critical') {
69
+ return buildCrisisResult(queueType, escalationReasons);
70
+ }
71
+ const multiplier = computeMultiplier(queueType, intake, symptomPattern, severity, age);
72
+ const base = (0, redFlags_1.baseSeverityScore)(severity);
73
+ const clinicalScore = base * multiplier;
74
+ const threshold = (0, queueConfig_1.getStarvationThreshold)(queueType, severity, symptomPattern);
75
+ const duration = (0, queueConfig_1.getDurationPrediction)(queueType, severity, symptomPattern);
76
+ return {
77
+ severity,
78
+ clinicalMultiplier: multiplier,
79
+ symptomPattern,
80
+ baseSeverityScore: base,
81
+ finalScore: clinicalScore,
82
+ starvationThreshold: threshold,
83
+ estimatedDuration: duration,
84
+ escalationReasons,
85
+ queueType,
86
+ };
87
+ }
88
+ function buildCrisisResult(queueType, reasons) {
89
+ return {
90
+ severity: 'critical',
91
+ clinicalMultiplier: 1,
92
+ symptomPattern: 'crisis',
93
+ baseSeverityScore: 9999,
94
+ finalScore: 9999,
95
+ starvationThreshold: 0,
96
+ estimatedDuration: 30,
97
+ escalationReasons: reasons,
98
+ queueType,
99
+ };
100
+ }
101
+ function computeMultiplier(queueType, intake, pattern, severity, age) {
102
+ switch (queueType) {
103
+ case 'diabetes':
104
+ return (0, clinicalMultiplier_1.computeDiabetesMultiplier)(intake.diabetesSymptoms, intake.onset, severity, age);
105
+ case 'cholesterol':
106
+ return (0, clinicalMultiplier_1.computeCholesterolMultiplier)(intake.cholesterolSymptoms, pattern);
107
+ case 'bloodPressure':
108
+ return (0, clinicalMultiplier_1.computeBPMultiplier)(intake.bloodPressureSymptoms, pattern, age);
109
+ case 'general':
110
+ return (0, clinicalMultiplier_1.computeGeneralMultiplier)(intake.generalSymptoms, pattern, intake.onset);
111
+ }
112
+ }
113
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/classifiers/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { EmergencySignals, ComfortLevel, SeverityLevel } from '../types';
2
+ export interface RedFlagResult {
3
+ triggered: boolean;
4
+ level: 'critical' | 'high' | 'none';
5
+ reasons: string[];
6
+ }
7
+ export declare function checkRedFlags(signals: EmergencySignals, comfort: ComfortLevel): RedFlagResult;
8
+ export declare function severityToUrgency(severity: SeverityLevel): 'CRITICAL' | 'HIGH' | 'STANDARD' | 'LOW';
9
+ export declare function baseSeverityScore(severity: SeverityLevel): number;
10
+ //# sourceMappingURL=redFlags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redFlags.d.ts","sourceRoot":"","sources":["../../../src/core/classifiers/redFlags.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACd,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;IACpC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAMD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,YAAY,GACpB,aAAa,CA+Cf;AAKD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,aAAa,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,KAAK,CAOnG;AAGD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAOjE"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkRedFlags = checkRedFlags;
4
+ exports.severityToUrgency = severityToUrgency;
5
+ exports.baseSeverityScore = baseSeverityScore;
6
+ function checkRedFlags(signals, comfort) {
7
+ const reasons = [];
8
+ if (signals.chestPain && signals.breathingDifficulty) {
9
+ reasons.push('Chest pain + breathing difficulty → possible MI');
10
+ return { triggered: true, level: 'critical', reasons };
11
+ }
12
+ if (signals.severeHeadache && (signals.confusion || signals.visionLoss || signals.limbWeakness)) {
13
+ reasons.push('Severe headache + neurological signs → possible stroke');
14
+ return { triggered: true, level: 'critical', reasons };
15
+ }
16
+ if (signals.confusion && comfort >= 3) {
17
+ reasons.push('Confusion + comfort ≥ 3 → altered mental status');
18
+ return { triggered: true, level: 'critical', reasons };
19
+ }
20
+ if (signals.visionLoss) {
21
+ reasons.push('Sudden vision loss → possible stroke/retinal emergency');
22
+ return { triggered: true, level: 'critical', reasons };
23
+ }
24
+ if (signals.limbWeakness) {
25
+ reasons.push('One-sided limb/face weakness → possible stroke');
26
+ return { triggered: true, level: 'critical', reasons };
27
+ }
28
+ const highReasons = [];
29
+ if (signals.fainting) {
30
+ highReasons.push('Fainting → vasovagal/cardiac syncope risk');
31
+ }
32
+ if (signals.chestPain) {
33
+ highReasons.push('Chest pain → cardiac evaluation needed');
34
+ }
35
+ if (signals.breathingDifficulty) {
36
+ highReasons.push('Breathing difficulty at rest → respiratory compromise');
37
+ }
38
+ if (highReasons.length > 0) {
39
+ return { triggered: true, level: 'high', reasons: highReasons };
40
+ }
41
+ return { triggered: false, level: 'none', reasons: [] };
42
+ }
43
+ function severityToUrgency(severity) {
44
+ switch (severity) {
45
+ case 'critical': return 'CRITICAL';
46
+ case 'high': return 'HIGH';
47
+ case 'standard': return 'STANDARD';
48
+ case 'low': return 'LOW';
49
+ }
50
+ }
51
+ function baseSeverityScore(severity) {
52
+ switch (severity) {
53
+ case 'critical': return 9999;
54
+ case 'high': return 150;
55
+ case 'standard': return 75;
56
+ case 'low': return 25;
57
+ }
58
+ }
59
+ //# sourceMappingURL=redFlags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redFlags.js","sourceRoot":"","sources":["../../../src/core/classifiers/redFlags.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { DiabetesSymptoms, CholesterolSymptoms, BloodPressureSymptoms, GeneralSymptoms, OnsetType } from './types';
2
+ export declare function computeDiabetesMultiplier(symptoms: DiabetesSymptoms, onset: OnsetType, severity: string, age?: number): number;
3
+ export declare function computeCholesterolMultiplier(symptoms: CholesterolSymptoms, pattern: string): number;
4
+ export declare function computeBPMultiplier(symptoms: BloodPressureSymptoms, pattern: string, age?: number): number;
5
+ export declare function computeGeneralMultiplier(symptoms: GeneralSymptoms, pattern: string, onset: OnsetType): number;
6
+ //# sourceMappingURL=clinicalMultiplier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clinicalMultiplier.d.ts","sourceRoot":"","sources":["../../src/core/clinicalMultiplier.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,EACf,SAAS,EACV,MAAM,SAAS,CAAC;AAMjB,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,gBAAgB,EAC1B,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,MAAM,EAChB,GAAG,CAAC,EAAE,MAAM,GACX,MAAM,CAyCR;AAMD,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,EAAE,MAAM,GACd,MAAM,CAkCR;AAMD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,MAAM,GACX,MAAM,CAwBR;AAcD,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,SAAS,GACf,MAAM,CA6BR"}