当前位置: 首页 > news >正文

【项目精选】病历管理系统设计与实现(源码+视频)


点击下载源码

企业财务管理系统主要用于电子病历来提高医院各项工作的效率和质量,促进医学科研、教学;减轻各类事务性工作的劳动强度,使他们腾出更多的精力和时间来服务于病人。本系统结构如下:
电子病例系统:
病人登记;
病人就诊;
病例查询;
病例修改;
病例删除;
修改密码

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

今天和一个朋友共同完成了一个基于javaweb的病历信息管理系统项目,我们在开发时选用的框架是SSM(MYECLIPSE)框架。我这个朋友知识有限,只会这个框架,哈哈,都是为了方便他。和往常一样选用简单又便捷的MYECLIPSE作为开发工具,基于javaweb的病历信息管理系统是一个 后台项目。基于javaweb的病历信息管理系统的介绍是这样的:指出传统病案管理模式存在的问题,从新旧病案归档整理、电子病案的使用等方面介绍电子病案管理系统的实施,阐明实施电子病案管理的意义,包括节省存储空间,提高检索效率、病案质量与规范管理等。采用当前非常流行的B/S体系结构,以JAVA作为开发技术,主要依赖SSM技术框架,mysql数据库建立本系统。

关键词,javaweb信息管理系统,javaweb信息管理系统源码,javaweb管理系统,一个基于javaweb的病历信息管理系统应包含用户角色有管理员、病人、医生。为了能让用户顺利登陆系统完成相关操作,需要为每种登陆角色设置账户和密码字段。

病历联系了医生,通过关联使得医生之间建立了联系,加强了系统的实用性和便捷性。增强了用户体验。他们之间的关联关系是病历的医生与医生的mingzi字段对应、病历的医生id与医生的id字段对应

总结得出基于javaweb的病历信息管理系统项目所有数据为:管理员(admin)、病人(bingren)、病历(bingli)、医生(yisheng)

基于javaweb的病历信息管理系统之管理员表

字段名 | 类型 | 属性 | 描述

id | int(11) | PRIMARY KEY | 管理员id

username | varchar(255) | | 账号

password | varchar(255) | | 密码

基于javaweb的病历信息管理系统之病人表

字段名 | 类型 | 属性 | 描述

id | int(11) | PRIMARY KEY | 病人id

username | varchar(255) | | 账号

password | varchar(255) | | 密码

mingzi | varchar(255) | | 名字

基于javaweb的病历信息管理系统之病历表

字段名 | 类型 | 属性 | 描述

id | int(11) | PRIMARY KEY | 病历id

biaoti | varchar(255) | | 标题

neirong | varchar(255) | | 内容

shijian | varchar(255) | | 时间

yisheng | varchar(255) | | 医生

yishengid | varchar(255) | | 医生id

基于javaweb的病历信息管理系统之医生表

字段名 | 类型 | 属性 | 描述

id | int(11) | PRIMARY KEY | 医生id

mingzi | varchar(255) | | 名字

username | varchar(255) | | 账号

password | varchar(255) | | 密码

keshi | varchar(255) | | 科室

jianjie | varchar(255) | | 简介

sql建表语句如下:

[cc]SET FOREIGN_KEY_CHECKS=0;



– Table structure for ggjyjavawebdblxxglxt


DROP TABLE IF EXISTS t_admin;

CREATE TABLE t_admin (id int(11) NOT NULL AUTO_INCREMENT COMMENT ‘管理员id’,username varchar(255) DEFAULT NULL COMMENT ‘账号’,password varchar(255) DEFAULT NULL COMMENT ‘密码’,PRIMARY KEY (id)

) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT=‘管理员’;


DROP TABLE IF EXISTS t_bingren;

CREATE TABLE t_bingren (id int(11) NOT NULL AUTO_INCREMENT COMMENT ‘病人id’,username varchar(255) DEFAULT NULL COMMENT ‘账号’,password varchar(255) DEFAULT NULL COMMENT ‘密码’,mingzi varchar(255) DEFAULT NULL COMMENT ‘名字’,PRIMARY KEY (id)

) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT=‘病人’;


DROP TABLE IF EXISTS t_bingli;

CREATE TABLE t_bingli (id int(11) NOT NULL AUTO_INCREMENT COMMENT ‘病历id’,biaoti varchar(255) DEFAULT NULL COMMENT ‘标题’,neirong varchar(500) DEFAULT NULL COMMENT ‘内容’,shijian varchar(255) DEFAULT NULL COMMENT ‘时间’,yisheng varchar(255) DEFAULT NULL COMMENT ‘医生’,yishengid int(11) DEFAULT NULL COMMENT ‘医生id’,PRIMARY KEY (id)

) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT=‘病历’;


DROP TABLE IF EXISTS t_yisheng;

CREATE TABLE t_yisheng (id int(11) NOT NULL AUTO_INCREMENT COMMENT ‘医生id’,mingzi varchar(255) DEFAULT NULL COMMENT ‘名字’,username varchar(255) DEFAULT NULL COMMENT ‘账号’,password varchar(255) DEFAULT NULL COMMENT ‘密码’,keshi varchar(255) DEFAULT NULL COMMENT ‘科室’,jianjie varchar(500) DEFAULT NULL COMMENT ‘简介’,PRIMARY KEY (id)

) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT=‘医生’;

[/cc]

添加医生模块:

在yishengController中定义addyishengact接收页面传入的医生参数,定义为yisheng。其中yisheng包含字段:名字,账号,密码,科室,简介,使用addyishengact将该医生对象存入数据库中,在yishengMapper中定义了insert方法,匹配数据库中的insert into yisheng语句实现将医生数据存入数据库的操作。该部分核心代码如下:

   通过yishengdao的insert方法将页面传输的医生添加到数据库中yishengdao.insert(yisheng);将添加医生成功信息,保存到request的message中,在页面中给出用户提示request.setAttribute("message", "添加医生成功");返回医生管理界面

return “forward:/addyisheng.action”;

修改医生模块:

点击修改按钮,可以跳转到医生修改页面。在医生修改页面中,将初始化该医生的所有信息,并将信息一一对应填充到对应编辑栏中。编辑完医生信息后,页面通过post方法将数据封装为一个医生实体,传入到yishengController中。在updateyisheng中进行接收,接收完毕后,调用yishengMapper中的updateByPrimaryKeySelective方法进行修改。该部分代码如下:

   通过yishengdao的修改方法根据id修改对应的医生yishengdao.updateByPrimaryKeySelective(yisheng);将修改医生成功信息,保存到request的message中,在页面中给出用户提示request.setAttribute("message", "修改医生信息成功");返回医生管理界面

return “forward:/yishengmanage.action”;

删除医生模块:

在页面中通过a标签,deleteyisheng?id=将id传入到后台中,通过deleteyisheng接收医生id。使用deleteByid的方法

删除该医生,完成删除操作。定义删除成功提示信息,删除医生成功,并保存到request中,该部分代码如下:

   通过yishengdao的删除方法根据id删除对应的医生yishengdao.deleteByPrimaryKey(id);将删除医生成功信息,保存到request的message中,在页面中给出用户提示request.setAttribute("message", "删除医生成功");返回医生管理界面

return “forward:/yishengmanage.action”;

医生控制层:

[cc]package org.mypro.front;

import java.io.File;

import java.io.IOException;

import java.math.BigDecimal;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Calendar;

import java.util.Collections;

import java.util.Date;

import java.util.List;

import javax.jms.Session;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

import org.apache.commons.lang3.StringUtils;

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

import org.mypro.service.YishengServiceImp;

import org.mypro.entity.Yisheng;

import org.mypro.entity.YishengExample;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.multipart.MultipartFile;

@Controller

@RequestMapping(value = “/”)

public class YishengController {

private static final Log logger = LogFactory.getLog(YishengController.class);

@Autowired

private YishengServiceImp yishengservice;

@RequestMapping(value = “addyisheng”)

public String addyisheng(HttpServletRequest request, HttpServletResponse response,HttpSession session,String backurl) {logger.debug("YishengController.addyisheng ......");yishengservice.addyisheng(request,session);    if(backurl !=  && backurl.indexOf("addyisheng.action") == -1){

return “forward:/” + backurl;}

return "addyisheng";}

@RequestMapping(value = “addyishengact”)

public String addyishengact(HttpServletRequest request,HttpSession session, HttpServletResponse response,Yisheng yisheng,String backurl) throws IOException {

logger.debug(“YishengController.addyishengact …”);

   yishengservice.addyishengact(request,session,yisheng);if(backurl !=  && backurl.indexOf("addyishengact.action") == -1){

return “forward:/” + backurl;}

return “forward:/yishengmanage.action”;

}

@RequestMapping(value = “yishengmanage”)

public String yishengmanage(HttpServletRequest request,HttpSession session, HttpServletResponse response,String backurl) {

logger.debug(“YishengController.yishengmanage …”);

   yishengservice.yishengmanage(request,session);if(backurl !=  && backurl.indexOf("yishengmanage.action") == -1){

return “forward:/” + backurl;}

return “yishengmanage”;

}

@RequestMapping(value = “yishengview”)

public String yishengview(HttpServletRequest request,HttpSession session, HttpServletResponse response,String backurl) {

logger.debug(“YishengController.yishengview …”);

   yishengservice.yishengview(request,session);if(backurl !=  && backurl.indexOf("yishengview.action") == -1){

return “forward:/” + backurl;}

return “yishengview”;

}

@RequestMapping(value = “updateyisheng”)

public String updateyisheng(HttpServletRequest request, HttpServletResponse response,HttpSession session,int id,String backurl){

logger.debug(“YishengController.updateyisheng …”);

   yishengservice.updateyisheng(request,session,id);if(backurl !=  && backurl.indexOf("updateyisheng.action") == -1){

return “forward:/” + backurl;}

return “updateyisheng”;

}

@RequestMapping(value = “updateyishengact”)

public String updateyishengact(HttpServletRequest request, HttpServletResponse response,Yisheng yisheng,HttpSession session,String backurl) throws IOException {

logger.debug(“YishengController.updateyishengact …”);

   yishengservice.updateyishengact(request,yisheng,session);if(backurl !=  && backurl.indexOf("updateyishengact.action") == -1){

return “forward:/” + backurl;}

return “forward:/yishengmanage.action”;

}

@RequestMapping(value = “deleteyisheng”)

public String deleteyisheng(HttpServletRequest request, HttpServletResponse response,HttpSession session,int id,String backurl){

logger.debug(“YishengController.deleteyisheng …”);

   yishengservice.deleteyisheng(request,session,id);if(backurl !=  && backurl.indexOf("deleteyisheng.action") == -1){

return “forward:/” + backurl;}

return “forward:/yishengmanage.action”;

}

@RequestMapping(value = “searchyisheng”)

public String searchyisheng(HttpServletRequest request, HttpServletResponse response,HttpSession session,String search,String backurl) {

logger.debug(“YishengController.searchyisheng …”);

   yishengservice.searchyisheng(request,session,search);if(backurl !=  && backurl.indexOf("searchyisheng.action") == -1){

return “forward:/” + backurl;}

return “searchyisheng”;

}

@RequestMapping(value = “yishengdetails”)

public String yishengdetails(HttpServletRequest request,HttpSession session, HttpServletResponse response,int id,String backurl) {

logger.debug(“YishengController.yishengdetails …”);

   yishengservice.yishengdetails(request,session,id);if(backurl !=  && backurl.indexOf("yishengdetails.action") == -1){

return “forward:/” + backurl;}

return “yishengdetails”;

}

}[/cc]

相关文章:

【项目精选】病历管理系统设计与实现(源码+视频)

点击下载源码 企业财务管理系统主要用于电子病历来提高医院各项工作的效率和质量,促进医学科研、教学;减轻各类事务性工作的劳动强度,使他们腾出更多的精力和时间来服务于病人。本系统结构如下: 电子病例系统: 病人登…...

如何用Python把篮球和鸡联系起来

文章目录画个球让球转起来画个球 不管篮球和不和鸡联系起来,都首先得有个球,或者说要有一个球面,用参数方程可以表示为 xrcos⁡ϕcos⁡θyrcos⁡ϕsin⁡θzrsin⁡ϕ\begin{aligned} x & r\cos\phi\cos\theta\\ y & r\cos\phi\sin\th…...

【RocketMQ】消息的刷盘机制

刷盘策略 CommitLog的asyncPutMessage方法中可以看到在写入消息之后&#xff0c;调用了submitFlushRequest方法执行刷盘策略&#xff1a; public class CommitLog {public CompletableFuture<PutMessageResult> asyncPutMessage(final MessageExtBrokerInner msg) {// …...

AMBA-AXI(一)burst 传输-INCR/WRAP/Fixed

&#x1f4a1;Note&#xff1a;本文是根据AXI协议IHI0022F_b_amba_axi_protocol_spec.pdf&#xff08;issue F&#xff09;整理的。主要是分享AXI3.0和4.0部分。如果内容有问题请大家在评论区中指出&#xff0c;有补充或者疑问也可以发在评论区&#xff0c;互相学习&#x1f64…...

Java知识复习(八)Spring基础

1、什么是Spring框架&#xff1f; Spring &#xff1a;是一款开源的轻量级 Java 开发框架&#xff0c;旨在提高开发人员的开发效率以及系统的可维护性 2、Spring、SpringMVC和SpringBoot的区别 Spring主要指Spring Framework&#xff0c;就是指如上图所示的各项功能模块Spr…...

WuThreat身份安全云-TVD每日漏洞情报-2023-02-27

漏洞名称:OTFCC 缓冲区错误漏洞 漏洞级别:中危 漏洞编号:CVE-2022-35060,CNVD-2023-11996,CNNVD-202209-1527 相关涉及:OTFCC OTFCC 漏洞状态:EXP 参考链接:https://tvd.wuthreat.com/#/listDetail?TVD_IDTVD-2022-23648 漏洞名称:MuYucms 存在任意代码执行漏洞 漏洞级别:高危…...

上海交大陈海波教授、夏虞斌教授领衔巨作上市:《操作系统:原理与实现》

❤️作者主页&#xff1a;小虚竹 ❤️作者简介&#xff1a;大家好,我是小虚竹。2022年度博客之星评选TOP 10&#x1f3c6;&#xff0c;Java领域优质创作者&#x1f3c6;&#xff0c;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;掘金年度人气作…...

dpi数据接入shell脚

原文&#xff1a;dpi数据接入shell脚本_weixin_34416754的博客-CSDN博客 ##############从ftp服务器拿数据文件 #!/bin/bash #获取感知优良率DPI数据 #DCN服务器信息 uSichuan pS988188# ip137.192.5.53 #获取日期&#xff0c;根据日期抓取文件 Tdate -d "3 days ago&…...

Easyrecovery数据恢复软件工作原理及使用介绍教程

Easyrecovery是一款强大的数据恢复软件&#xff0c;它专门解决磁盘数据恢复问题。在计算机世界里&#xff0c;数据丢失经常是一件令人头疼的事情&#xff0c;但是有了Easyrecovery&#xff0c;您可以放心大胆地享受数据备份和恢复的乐趣。EasyRecovery使用Ontrack公司复杂的模式…...

【面试题】社招中级前端笔试面试题总结

大厂面试题分享 面试题库后端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★地址&#xff1a;前端面试题库typeof null 的结果是什么&#xff0c;为什么&#xff1f;typeof null 的结果是Object。在 JavaScript 第一个版本中&#xff0c;所有值都存储在…...

设备运行状况不能远程手机查看。难道就妥协吗?为何不试试这个办法

一、背景 随着国家经济结构逐步调整&#xff0c;纺织行业自动化、智能化水平逐步提高&#xff0c;业内竞争程度也将加大&#xff1b;整个市场变化快&#xff0c;并呈现出智能化、通用化、网络化、复杂化的新发展趋势。客户订单小批量、个性化、快速交货的特点越来越明显&#…...

重新认识 Java 中的内存映射(mmap)

mmap 基础概念 mmap 是一种内存映射文件的方法&#xff0c;即将一个文件映射到进程的地址空间&#xff0c;实现文件磁盘地址和一段进程虚拟地址的映射。实现这样的映射关系后&#xff0c;进程就可以采用指针的方式读写操作这一段内存&#xff0c;而系统会自动回写脏页到对应的文…...

224. 基本计算器

224. 基本计算器给你一个字符串表达式 s &#xff0c;请你实现一个基本计算器来计算并返回它的值。注意:不允许使用任何将字符串作为数学表达式计算的内置函数&#xff0c;比如 eval() 。 示例 1&#xff1a;输入&#xff1a;s "1 1"输出&#xff1a;2示例 2&#…...

微信小程序通过 node 连接 mysql——方法,简要原理,及一些常见问题

前言 博主自己在22年夏天根据课程要求做了一个小程序连接阿里云服务器的案例&#xff0c;在最近又碰到了相应的需求。 原参考文章&#xff1a;微信小程序 Node连接本地MYSQL_微信小程序nodejs连接数据库_JJJenny0607的博客-CSDN博客 ,还请多多支持原作者&#xff01; 第二次…...

uni-app项目搭建和代码托管

文章目录一、项目搭建步骤一、HBuilder X 创建uniapp项目步骤二、开启微信小程序服务端口步骤三、把项目运行到微信小程序步骤四、解决警告二、使用Git管理项目2-1、本地管理2-2、托管到码云一、项目搭建 步骤一、HBuilder X 创建uniapp项目 步骤二、开启微信小程序服务端口 步…...

win10+python3.6+cuda9+pytorch1.1.0安装

为了让torch可以使用显卡GPU加速&#xff0c;需要安装对应版本的cudatoolkit和pytorch。这里我的nvidia显卡驱动是9.1版本&#xff0c;只能安装cudatoolkit9。 一般支持gpu加速的显卡大部分都是英伟达nvidia系列&#xff0c;都自带了nvidia驱动&#xff0c;所以不需要安装nvidi…...

【2023】某python语言程序设计跟学第二周内容

本文说明&#xff1a; 案例内容为北理工python语言程序设计课程&#xff0c;如有不妥请联系&#xff01; 目录蟒蛇绘制案例&#xff1a;执行结果&#xff1a;代码分析&#xff1a;举一反三&#xff1a;绘制一个五角星图案执行结果&#xff1a;turtle库根据案例简单说明&#xf…...

spring源码篇——BeanDefinition的注册

spring-framework 版本&#xff1a;v5.3.19 文章目录注解方式&#xff08;AnnotationConfigApplicationContext&#xff09;AnnotationConfigApplicationContext#registerAnnotatedBeanDefinitionReader#doRegisterBeanBeanDefinitionRegistry#registerBeanDefinitionAnnotatio…...

virtualbox7虚拟机中安装苹果macOS big sur系统详细教程

第1步&#xff0c;在 Windows 10/11 PC 上启用虚拟化。 现在的电脑一般都默认开启虚拟化技术了。 如果你遇到一些报错&#xff0c;比如收到错误消息“无法在虚拟机上打开会话”&#xff0c;可以查看 如果没有遇到问题&#xff0c;可以直接进入到第二步。 第2步&#xff0c;在…...

用spectralayers 简单去一下人声做个伴奏

最近有个同事说有个工作要一个歌的伴奏不会下载问我能不能给下一个。问题是我五音不全&#xff0c;也不咋关注伴奏这方面的事儿&#xff0c;然后巧了&#xff0c;当天晚上就有个网上的大哥在群里聊天的时候说有个去人声比较给力的软件&#xff0c;我马上给要来了。 软件叫啥sp…...

5分钟搞定Mac Boot Camp驱动部署:Brigadier全攻略

5分钟搞定Mac Boot Camp驱动部署&#xff1a;Brigadier全攻略 【免费下载链接】brigadier Fetch and install Boot Camp ESDs with ease. 项目地址: https://gitcode.com/gh_mirrors/bri/brigadier 还在为Mac安装Windows系统时繁琐的驱动匹配而烦恼吗&#xff1f;每次重…...

观察不同时段通过Taotoken调用大模型的延迟稳定性表现

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 观察不同时段通过Taotoken调用大模型的延迟稳定性表现 在项目开发与线上服务中&#xff0c;API调用的响应延迟是影响开发者体验和系…...

模拟工程师必备:口袋参考指南的实战价值与核心应用

1. 为什么每个硬件工程师都需要一本“口袋参考书”&#xff1f;前几天整理书桌&#xff0c;翻出来一本2016年从TI官网下载打印的《模拟工程师口袋参考指南》&#xff0c;纸张已经有点发黄&#xff0c;边角也卷了。但就是这么一本薄薄的小册子&#xff0c;从毕业到现在&#xff…...

ROS2导航SLAM建图实战:从Gazebo仿真到真实地图构建

1. 环境准备与基础配置 第一次接触ROS2导航和SLAM建图的朋友可能会觉得配置环境很复杂&#xff0c;其实只要跟着步骤一步步来&#xff0c;半小时就能搞定。我用的是一台装了Ubuntu 20.04的笔记本&#xff0c;ROS2版本选择Foxy&#xff0c;这个组合最稳定。记得先更新系统&#…...

外科医生AI认知变迁:从技术好奇到价值驱动的全球调查

1. 项目概述&#xff1a;一场关于外科医生与AI认知变迁的全球对话作为一名长期关注技术与医疗交叉领域的从业者&#xff0c;我始终对一个问题抱有浓厚兴趣&#xff1a;当一项颠覆性技术从实验室走向临床&#xff0c;真正使用它的医生们究竟在想什么&#xff1f;他们的期待、困惑…...

Hermes Agent 可视化监控与文档生成工具 hermes-dashboard 详解

1. 项目概述与核心价值如果你正在使用 Hermes Agent 进行 AI 智能体开发&#xff0c;或者对 Agent 的内部运行状态感到好奇&#xff0c;那么你很可能需要一个“上帝视角”。hermes-dashboard正是这样一个工具&#xff0c;它为你提供了一个实时的监控仪表盘和一个自动生成的、可…...

别再只用欧氏距离了!用Python手写曼哈顿距离,搞定KNN和聚类中的特征选择难题

曼哈顿距离实战&#xff1a;用Python优化KNN与聚类算法特征选择 在机器学习项目中&#xff0c;我们常常默认使用欧氏距离作为度量标准&#xff0c;却忽略了其他距离函数的独特价值。曼哈顿距离&#xff08;Manhattan Distance&#xff09;作为L1范数的典型代表&#xff0c;在处…...

别再死记硬背了!用MIDI键盘和DAW软件(如FL Studio/Cubase)5分钟搞懂钢琴音区划分

别再死记硬背了&#xff01;用MIDI键盘和DAW软件5分钟搞懂钢琴音区划分 第一次打开DAW的钢琴卷帘窗时&#xff0c;那些密密麻麻的C3、C4编号是否让你一头雾水&#xff1f;作为从乐队吉他手转型音乐制作的过来人&#xff0c;我完全理解这种困惑。传统教材里"小字组"&q…...

PDPI Spec:规格驱动开发协议,让AI编程告别“氛围编码”

1. 项目概述&#xff1a;从“感觉对了”到“规格对了”在软件开发的江湖里&#xff0c;我们可能都经历过这样的场景&#xff1a;产品经理丢过来一个模糊的需求&#xff0c;开发同学凭着一腔热血和“感觉对了”的直觉&#xff0c;一头扎进代码里。几周后&#xff0c;功能上线了&…...

从平面到立体:基于OpenLayers与Cesium的无缝地图维度切换实践

1. 二维与三维地图融合的必要性 在现代WebGIS开发中&#xff0c;单纯依赖二维地图已经难以满足用户对空间数据展示的需求。想象一下&#xff0c;当你查看一个城市规划系统时&#xff0c;平面地图能告诉你道路走向&#xff0c;但只有切换到三维视图才能直观看到建筑高度、地形起…...