寒假web开发7

表六: Mental
sql

点击查看代码
CREATE TABLE tb_mental (
    AssessmentID CHAR(8) PRIMARY KEY,  -- 评估编号(主键,关联到 tb_older 表的 AssessmentID)
    CognitiveTestScore INT,            -- B.2.1 认知功能测验(0分、1分、2分)
    AggressiveBehaviorScore INT,      -- B.2.2 攻击行为(0分、1分、2分)
    DepressiveSymptomsScore INT,      -- B.2.3 抑郁症状(0分、1分、2分)
    TotalScore INT,                   -- B.2.4 精神状态总分
    MentalStatusLevel INT            -- B.2 精神状态分级(0: 能力完好, 1: 轻度受损, 2: 中度受损, 3: 重度受损)
);

MentalMapper

点击查看代码
package com.QixunQiu.mapper;

import com.QixunQiu.pojo.Daily;
import com.QixunQiu.pojo.Mental;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

public interface MentalMapper {
    @Select("select * from tb_mental where AssessmentID = #{AssessmentID} ")
    List<Mental> select(@Param("AssessmentID") String AssessmentID);

    void addMental(Mental mental);
}

Mental的pojo

点击查看代码
package com.QixunQiu.pojo;

public class Mental {
    private String assessmentID;
    private Integer cognitiveTestScore;
    private Integer aggressiveBehaviorScore;
    private Integer depressiveSymptomsScore;
    private Integer totalScore;
    private Integer mentalStatusLevel;

    // Getter 和 Setter 方法
    public String getAssessmentID() {
        return assessmentID;
    }

    public void setAssessmentID(String assessmentID) {
        this.assessmentID = assessmentID;
    }

    public Integer getCognitiveTestScore() {
        return cognitiveTestScore;
    }

    public void setCognitiveTestScore(Integer cognitiveTestScore) {
        this.cognitiveTestScore = cognitiveTestScore;
    }

    public Integer getAggressiveBehaviorScore() {
        return aggressiveBehaviorScore;
    }

    public void setAggressiveBehaviorScore(Integer aggressiveBehaviorScore) {
        this.aggressiveBehaviorScore = aggressiveBehaviorScore;
    }

    public Integer getDepressiveSymptomsScore() {
        return depressiveSymptomsScore;
    }

    public void setDepressiveSymptomsScore(Integer depressiveSymptomsScore) {
        this.depressiveSymptomsScore = depressiveSymptomsScore;
    }

    public Integer getTotalScore() {
        return totalScore;
    }

    public void setTotalScore(Integer totalScore) {
        this.totalScore = totalScore;
    }

    public Integer getMentalStatusLevel() {
        return mentalStatusLevel;
    }

    public void setMentalStatusLevel(Integer mentalStatusLevel) {
        this.mentalStatusLevel = mentalStatusLevel;
    }

    @Override
    public String toString() {
        return "MentalStatusAssessment{" +
                "assessmentID='" + assessmentID + '\'' +
                ", cognitiveTestScore=" + cognitiveTestScore +
                ", aggressiveBehaviorScore=" + aggressiveBehaviorScore +
                ", depressiveSymptomsScore=" + depressiveSymptomsScore +
                ", totalScore=" + totalScore +
                ", mentalStatusLevel=" + mentalStatusLevel +
                '}';
    }
}

MentalService

点击查看代码
package com.QixunQiu.service;

import com.QixunQiu.mapper.MentalMapper;
import com.QixunQiu.pojo.Mental;
import com.QixunQiu.util.SqlSessionFactoryUtils;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;

import java.util.List;

public class MentalService {
    SqlSessionFactory sqlSessionFactory = SqlSessionFactoryUtils.getSqlSessionFactory();
    public List<Mental> selectAllMental(String AssessmentID) {
        SqlSession sqlSession = sqlSessionFactory.openSession();
        MentalMapper mentalMapper = sqlSession.getMapper(MentalMapper.class);
        List<Mental> mentals = mentalMapper.select(AssessmentID);
        sqlSession.commit();
        sqlSession.close();
        return mentals;
    }

    public void add(Mental mental) {
        SqlSession sqlSession = sqlSessionFactory.openSession();
        MentalMapper mentalMapper = sqlSession.getMapper(MentalMapper.class);
        mentalMapper.addMental(mental);
        sqlSession.commit();
        sqlSession.close();
    }
}

AddMentalServlet

点击查看代码
package com.QixunQiu.web;

import com.QixunQiu.pojo.Mental;
import com.QixunQiu.service.MentalService;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;

@WebServlet("/AddMentalServlet")
public class AddMentalServlet extends HttpServlet {
    private MentalService mentalService = new MentalService();
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");
        String assessmentID=request.getParameter("assessmentID");
        int cognitiveTestScore=Integer.parseInt(request.getParameter("cognitiveTestScore"));
        int aggressiveBehaviorScore=Integer.parseInt(request.getParameter("aggressiveBehaviorScore"));
        int depressiveSymptomsScore=Integer.parseInt(request.getParameter("depressiveSymptomsScore"));

        // 计算总分
        int totalScore = cognitiveTestScore + aggressiveBehaviorScore + depressiveSymptomsScore;

        // 计算精神状态分级
        int mentalStateLevel;
        if (totalScore == 0) {
            mentalStateLevel = 0;
        } else if (totalScore == 1) {
            mentalStateLevel = 1;
        } else if (totalScore >= 2 && totalScore <= 3) {
            mentalStateLevel = 2;
        } else {
            mentalStateLevel = 3;
        }

        Mental mental=new Mental();
        mental.setAssessmentID(assessmentID);
        mental.setCognitiveTestScore(cognitiveTestScore);
        mental.setAggressiveBehaviorScore(aggressiveBehaviorScore);
        mental.setDepressiveSymptomsScore(depressiveSymptomsScore);
        mental.setTotalScore(totalScore);
        mental.setMentalStatusLevel(mentalStateLevel);

        mentalService.add(mental);

    }


    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }
}

selectMentalServlet

点击查看代码
package com.QixunQiu.web;

import com.QixunQiu.pojo.Daily;
import com.QixunQiu.pojo.Mental;
import com.QixunQiu.pojo.Older;
import com.QixunQiu.pojo.User;
import com.QixunQiu.service.MentalService;
import com.QixunQiu.service.OlderService;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

@WebServlet("/selectMentalServlet")
public class selectMentalServlet extends HttpServlet {
    private OlderService olderService = new OlderService();
    private MentalService mentalService = new MentalService();
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=utf-8");
        HttpSession session = request.getSession();
        User user = (User) session.getAttribute("user");
        Older older=olderService.selectOlderById(user.getUserID());
        List<Mental> mentals=mentalService.selectAllMental(older.getAssessmentID());
        PrintWriter writer = response.getWriter();
        if(!mentals.isEmpty()){
            // 登陆成功
            writer.write("登陆成功");
            session.setAttribute("mentals", mentals);
            request.getRequestDispatcher("/mental.jsp").forward(request,response);

        }else {
            // 登陆失败
            writer.write("登陆失败");
            request.getRequestDispatcher("/addMental.jsp").forward(request,response);
        }
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }
}

MentalMapper.xml

点击查看代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.QixunQiu.mapper.MentalMapper">

    <insert id="addMental" parameterType="com.QixunQiu.pojo.Mental">
        INSERT INTO tb_mental (
            AssessmentID,
            CognitiveTestScore,
            AggressiveBehaviorScore,
            DepressiveSymptomsScore,
            TotalScore,
            MentalStatusLevel
        ) VALUES (
                     #{assessmentID},
                     #{cognitiveTestScore},
                     #{aggressiveBehaviorScore},
                     #{depressiveSymptomsScore},
                     #{totalScore},
                     #{mentalStatusLevel}
                 )
    </insert>
</mapper>

addMental.jsp

点击查看代码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>添加精神状态评估</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 20px;
        }
        .form-group {
            margin-bottom: 15px;
        }
        label {
            display: block;
            margin-bottom: 5px;
            font-weight: bold;
        }
        input[type="text"], select {
            width: 100%;
            padding: 8px;
            box-sizing: border-box;
        }
        .submit-btn {
            background-color: #4CAF50;
            color: white;
            padding: 10px 20px;
            border: none;
            cursor: pointer;
        }
        .submit-btn:hover {
            background-color: #45a049;
        }
    </style>
</head>
<body>
<h1>添加精神状态评估</h1>
<form action="${pageContext.request.contextPath}/AddMentalServlet" method="post">
    <!-- 评估编号 -->
    <div class="form-group">
        <label for="assessmentID">评估编号:</label>
        <input type="text" id="assessmentID" name="assessmentID" required>
    </div>

    <!-- 认知功能测验 -->
    <div class="form-group">
        <label for="cognitiveTestScore">认知功能测验:</label>
        <select id="cognitiveTestScore" name="cognitiveTestScore" required>
            <option value="0">0分 - 画钟正确,且能回忆出2-3个词</option>
            <option value="1">1分 - 画钟错误,或只回忆出0-1个词</option>
            <option value="2">2分 - 已确诊为认知障碍,如老年痴呆</option>
        </select>
    </div>

    <!-- 攻击行为 -->
    <div class="form-group">
        <label for="aggressiveBehaviorScore">攻击行为:</label>
        <select id="aggressiveBehaviorScore" name="aggressiveBehaviorScore" required>
            <option value="0">0分 - 无身体攻击行为和语言攻击行为</option>
            <option value="1">1分 - 每月有几次身体攻击行为,或每周有几次语言攻击行为</option>
            <option value="2">2分 - 每周有几次身体攻击行为,或每日有语言攻击行为</option>
        </select>
    </div>

    <!-- 抑郁症状 -->
    <div class="form-group">
        <label for="depressiveSymptomsScore">抑郁症状:</label>
        <select id="depressiveSymptomsScore" name="depressiveSymptomsScore" required>
            <option value="0">0分 - 无</option>
            <option value="1">1分 - 情绪低落、不爱说话、不爱梳洗、不爱活动</option>
            <option value="2">2分 - 有自杀念头或自杀行为</option>
        </select>
    </div>

    <!-- 提交按钮 -->
    <div class="form-group">
        <input type="submit" class="submit-btn" value="提交">
    </div>
</form>
</body>
</html>

mental.jsp

点击查看代码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>精神状态评估列表</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 20px;
        }
        h1 {
            text-align: center;
        }
        table {
            width: 100%;
            border-collapse: collapse;
            margin-top: 20px;
        }
        table, th, td {
            border: 1px solid #ddd;
        }
        th, td {
            padding: 10px;
            text-align: left;
        }
        th {
            background-color: #f2f2f2;
        }
        tr:hover {
            background-color: #f5f5f5;
        }
    </style>
</head>
<body>
<h1>精神状态评估列表</h1>
<table>
    <thead>
    <tr>
        <th>评估编号</th>
        <th>认知功能测验</th>
        <th>攻击行为</th>
        <th>抑郁症状</th>
        <th>总分</th>
        <th>精神状态分级</th>
    </tr>
    </thead>
    <tbody>
    <c:forEach var="mental" items="${mentals}">
        <tr>
            <td>${mental.assessmentID}</td>
            <td>
                <c:choose>
                    <c:when test="${mental.cognitiveTestScore == 0}">0分 - 画钟正确,且能回忆出2-3个词</c:when>
                    <c:when test="${mental.cognitiveTestScore == 1}">1分 - 画钟错误,或只回忆出0-1个词</c:when>
                    <c:when test="${mental.cognitiveTestScore == 2}">2分 - 已确诊为认知障碍,如老年痴呆</c:when>
                    <c:otherwise>未知</c:otherwise>
                </c:choose>
            </td>
            <td>
                <c:choose>
                    <c:when test="${mental.aggressiveBehaviorScore == 0}">0分 - 无身体攻击行为和语言攻击行为</c:when>
                    <c:when test="${mental.aggressiveBehaviorScore == 1}">1分 - 每月有几次身体攻击行为,或每周有几次语言攻击行为</c:when>
                    <c:when test="${mental.aggressiveBehaviorScore == 2}">2分 - 每周有几次身体攻击行为,或每日有语言攻击行为</c:when>
                    <c:otherwise>未知</c:otherwise>
                </c:choose>
            </td>
            <td>
                <c:choose>
                    <c:when test="${mental.depressiveSymptomsScore == 0}">0分 - 无</c:when>
                    <c:when test="${mental.depressiveSymptomsScore == 1}">1分 - 情绪低落、不爱说话、不爱梳洗、不爱活动</c:when>
                    <c:when test="${mental.depressiveSymptomsScore == 2}">2分 - 有自杀念头或自杀行为</c:when>
                    <c:otherwise>未知</c:otherwise>
                </c:choose>
            </td>
            <td>${mental.totalScore}</td>
            <td>
                <c:choose>
                    <c:when test="${mental.mentalStatusLevel == 0}">0 - 能力完好</c:when>
                    <c:when test="${mental.mentalStatusLevel == 1}">1 - 轻度受损</c:when>
                    <c:when test="${mental.mentalStatusLevel == 2}">2 - 中度受损</c:when>
                    <c:when test="${mental.mentalStatusLevel == 3}">3 - 重度受损</c:when>
                    <c:otherwise>未知</c:otherwise>
                </c:choose>
            </td>
        </tr>
    </c:forEach>
    </tbody>
</table>
</body>
</html>
posted @   QixunQiu  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
点击右上角即可分享
微信分享提示