部分代码
`
import java.util.HashMap;
import java.util.Map;
public class ElderlyAbilityAssessment {
// 定义日常生活活动评估项及分数
private static final Map<String, Integer> dailyActivityScores = new HashMap<>();
// 定义精神状态评估项及分数
private static final Map<String, Integer> mentalStatusScores = new HashMap<>();
// 定义感知觉与沟通评估项及分数
private static final Map<String, Integer> sensoryAndCommunicationScores = new HashMap<>();
// 定义社会参与评估项及分数
private static final Map<String, Integer> socialInvolvementScores = new HashMap<>();
static {// 初始化日常生活活动评估项分数dailyActivityScores.put("进食", 10);dailyActivityScores.put("洗澡", 5);dailyActivityScores.put("修饰", 5);// 其他日常生活活动项及分数初始化// 初始化精神状态评估项分数mentalStatusScores.put("认知功能", 0);mentalStatusScores.put("攻击行为", 0);mentalStatusScores.put("抑郁症状", 0);// 初始化感知觉与沟通评估项分数sensoryAndCommunicationScores.put("意识水平", 0);sensoryAndCommunicationScores.put("视力", 0);sensoryAndCommunicationScores.put("听力", 0);sensoryAndCommunicationScores.put("沟通交流", 0);// 初始化社会参与评估项分数socialInvolvementScores.put("生活能力", 0);socialInvolvementScores.put("工作能力", 0);socialInvolvementScores.put("时间/空间定向", 0);socialInvolvementScores.put("人物定向", 0);socialInvolvementScores.put("社会交往能力", 0);
}// 计算一级指标得分
private static int calculateScore(Map<String, Integer> scores) {return scores.values().stream().mapToInt(Integer::intValue).sum();
}// 获取一级指标分级
private static int getGrade(int score, int[] thresholds) {if (score <= thresholds[0]) {return 0;} else if (score <= thresholds[1]) {return 1;} else if (score <= thresholds[2]) {return 2;} else {return 3;}
}// 获取老年人能力等级
public static String getAbilityLevel() {int dailyActivityScore = calculateScore(dailyActivityScores);int mentalStatusScore = calculateScore(mentalStatusScores);int sensoryAndCommunicationScore = calculateScore(sensoryAndCommunicationScores);int socialInvolvementScore = calculateScore(socialInvolvementScores);int[] dailyActivityThresholds = {100, 95, 60};int[] mentalStatusThresholds = {0, 1, 3};int[] sensoryAndCommunicationThresholds = {0, 1, 2};int[] socialInvolvementThresholds = {2, 7, 13};int dailyActivityGrade = getGrade(dailyActivityScore, dailyActivityThresholds);int mentalStatusGrade = getGrade(mentalStatusScore, mentalStatusThresholds);int sensoryAndCommunicationGrade = getGrade(sensoryAndCommunicationScore, sensoryAndCommunicationThresholds);int socialInvolvementGrade = getGrade(socialInvolvementScore, socialInvolvementThresholds);// 根据标准确定老年人能力等级if (dailyActivityGrade == 0 && mentalStatusGrade == 0 && sensoryAndCommunicationGrade == 0&& (socialInvolvementGrade == 0 || socialInvolvementGrade == 1)) {return "能力完好";} else if (dailyActivityGrade == 0&& (mentalStatusGrade >= 1 || sensoryAndCommunicationGrade >= 1 || socialInvolvementGrade == 2)|| (dailyActivityGrade == 1&& (mentalStatusGrade == 0 || mentalStatusGrade == 1 || sensoryAndCommunicationGrade == 0|| sensoryAndCommunicationGrade == 1 || socialInvolvementGrade == 0 || socialInvolvementGrade == 1))) {return "轻度失能";} else if (dailyActivityGrade == 1&& (mentalStatusGrade == 2 || mentalStatusGrade == 3 || sensoryAndCommunicationGrade == 2|| sensoryAndCommunicationGrade == 3 || socialInvolvementGrade == 2 || socialInvolvementGrade == 3)|| (dailyActivityGrade == 2&& (mentalStatusGrade == 1 || mentalStatusGrade == 2 || sensoryAndCommunicationGrade == 1|| sensoryAndCommunicationGrade == 2 || socialInvolvementGrade == 1 || socialInvolvementGrade == 2))) {return "中度失能";} else if (dailyActivityGrade == 3|| (dailyActivityGrade == 2&& (mentalStatusGrade == 3 || sensoryAndCommunicationGrade == 3 || socialInvolvementGrade == 3))|| (dailyActivityGrade == 2 && mentalStatusGrade == 2 && sensoryAndCommunicationGrade == 2 && socialInvolvementGrade == 2)) {return "重度失能";} else {return "未知等级";}
}public static void main(String[] args) {// 示例:修改评估项分数模拟不同情况dailyActivityScores.put("进食", 5);mentalStatusScores.put("认知功能", 1);System.out.println("老年人能力等级: " + getAbilityLevel());
}
}
`