File size: 1,765 Bytes
27e706d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
export type RiskLevel = "LOW" | "MODERATE" | "HIGH" | "EMERGENCY";

export interface RiskFactor {
  id: string;
  name: string;
  description: string;
  points: number;
  recommendations: string[];
}

export interface RiskThreshold {
  level: RiskLevel;
  minPoints: number;
  maxPoints: number | null;
}

export interface RiskDetectionResult {
  riskLevel: RiskLevel;
  score: number;
  reasons: string[];
  contributingFactors: RiskFactor[];
  recommendations: string[];
  isRedFlag: boolean;
  redFlagReasons?: string[];
}

export interface PatientDataForRiskAssessment {
  age?: number;
  bmi?: number;
  gravidity?: number;
  parity?: number;
  previousCaesareans?: number;
  previousStillbirths?: number;
  previousIufd?: boolean;
  previousPreeclampsia?: boolean;
  previousEclampsia?: boolean;
  gestationalHypertension?: boolean;
  chronicHypertension?: boolean;
  chronicHypertensionBeforePregnancy?: boolean;
  diabetesMellitus?: boolean;
  previousGestationalDiabetes?: boolean;
  kidneyDisease?: boolean;
  heartDisease?: boolean;
  previousPlacentalAbruption?: boolean;
  previousPlacentaPrevia?: boolean;
  previousMultiplePregnancy?: boolean;
  familyHypertension?: boolean;
  familyPreeclampsia?: boolean;
  previousPretermBirth?: boolean;
  previousLowBirthWeight?: boolean;
  previousPostpartumHemorrhage?: boolean;
  smokingStatus?: "NEVER" | "CURRENT" | "FORMER";
  alcoholUse?: "NEVER" | "OCCASIONAL" | "REGULAR";
  substanceUse?: "NEVER" | "CURRENT" | "FORMER";
  bloodPressureSystolic?: number;
  bloodPressureDiastolic?: number;
  urineProtein?: "NEGATIVE" | "TRACE" | "PLUS_1" | "PLUS_2" | "PLUS_3";
  hasConvulsions?: boolean;
  hasHeavyVaginalBleeding?: boolean;
  hasLossOfConsciousness?: boolean;
  hasAbsentFetalMovement?: boolean;
}