老年人
// 综合评估
class AssessmentEngine {
private final DailyLivingActivity dailyLiving;
private final MentalStatus mentalStatus;
private boolean hasCognitiveImpairment;
private boolean hasMentalIllness;
private int recentAccidents;
public AbilityLevel evaluate() {
Grade dailyGrade = dailyLiving.determineGrade();
Grade mentalGrade = mentalStatus.determineGrade();
// 获取其他两项分级...
// 基础判定逻辑
AbilityLevel level = basicJudgment(dailyGrade, mentalGrade /*, 其他分级 */);
// 特殊情况处理
if (hasCognitiveImpairment || hasMentalIllness || recentAccidents >= 2) {
level = upgradeLevel(level);
}
return level;
}
private AbilityLevel basicJudgment(Grade daily, Grade mental, Grade sensory, Grade social) {
// 实现表6的判定逻辑
if (daily == Grade.GRADE_3) return AbilityLevel.SEVERE_LOSS;
if (daily == Grade.GRADE_0 && mental == Grade.GRADE_0
&& sensory == Grade.GRADE_0 && (social == Grade.GRADE_0 || social == Grade.GRADE_1)) {
return AbilityLevel.INTACT;
}
// 其他判定条件...
return AbilityLevel.MILD_LOSS; // 示例返回值
}
private AbilityLevel upgradeLevel(AbilityLevel original) {
if (original == AbilityLevel.SEVERE_LOSS) return original;
return AbilityLevel.values()[original.ordinal() + 1];
}
}
// 使用示例
public class Main {
public static void main(String[] args) {
DailyLivingActivity daily = new DailyLivingActivity();
daily.setEating(10); // 假设完全独立进食
// 设置其他项...
AssessmentEngine engine = new AssessmentEngine(daily, new MentalStatus(),
/* 其他评估项 */ false, false, 0);
AbilityLevel finalLevel = engine.evaluate();
System.out.println("最终能力等级: " + finalLevel);
@Test
void testSevereLoss() {
DailyLivingActivity daily = new DailyLivingActivity();
daily.setTotalScore(35); // 重度受损
AssessmentEngine engine = new AssessmentEngine(daily, ...);
assertEquals(AbilityLevel.SEVERE_LOSS, engine.evaluate());
}
部分

浙公网安备 33010602011771号