目 录
四、Django智能城乡社区医疗站服务系统详细设计与实现 42
在目前的形势下,科技力量已成为我国的主要竞争力。而在科学技术领域,计算机的使用逐渐达到成熟,无论是从国家到企业再到家庭,计算机都发挥着其不可替代的作用,可以说计算机的可用领域遍及生活、工作的各个方面。随着大型医院挂号难、就诊难的常态问题,发展城乡社区医疗服务是解决人民群众看病问题的有效途径,城乡社区医疗服务在整个医疗体系中起着基础保障的作用,提高城乡社区医疗服务的水平对于提高居民的健康水平、降低医疗费用起着至关重要的作用。在社区医疗服务中,充分发挥网络信息技术的优势,做到信息和数据高效便捷的管理及共享,可以低成本、高效地推广和展开相应的服务,提高总体医疗服务水平,缓解我国医疗资源相对不足的情况。
本次软件设计中,以用户的实际操作感作为整体开发的出发点,结合Python开发语言对软件开发原理,本次软件的开发以实际运用作为出发点,以城乡社区医疗站的痛点作为开始,使用Django框架技术整体开发源程序,最终实现一个智能城乡社区医疗站服务系统。在整体软件的开发过程中,第一步就是去了解患者和医生的需要,分析城乡社区医疗站的具体工作流程,参考成熟的智能城乡社区医疗站服务系统、进行开发,最终实现智能城乡社区医疗站服务系统。智能城乡社区医疗站服务系统总体可以分为医疗站使用的管理端和普通用户使用的客户端,管理端主要是包括对公共管理、用户管理、资讯管理、权限管理、医生信息、挂号信息、病历档案等数据的维护和管理,维护用户意见模块和用户进行留言回复,综合管理医疗资讯信息,系统开发完成之后,就是对系统进行运行测试,在测试中分析其应用的优势与不足,形成分析不告,对于不足,及时想办法去进行改进,希望可以得出最优,便于以后的系统维护,也为之后类似的系统提供一些帮助。
关键词:城乡社区医疗站;MySQL数据库;Django框架
BSTRACT
Under the current situation, technological strength has become China's main competitiveness. In the field of science and technology, the use of computers has gradually reached maturity. Whether from the country to enterprises and even to households, computers play an irreplaceable role. It can be said that the available fields of computers cover all aspects of life and work. With the common problem of difficulty in registering and seeking medical treatment in large hospitals, the development of urban and rural community medical services is an effective way to solve the problem of medical treatment for the people. Urban and rural community medical services play a basic guarantee role in the entire medical system, and improving the level of urban and rural community medical services plays a crucial role in improving the health level of residents and reducing medical costs. In community medical services, fully leveraging the advantages of network information technology, achieving efficient and convenient management and sharing of information and data, can promote and carry out corresponding services at low cost and high efficiency, improve the overall level of medical services, and alleviate the relative shortage of medical resources in China.
In this software design, the user's actual sense of operation is taken as the starting point for overall development, combined with Python development language for software development principles. The software development is based on practical application, starting from the pain points of urban and rural community medical stations, using Django framework technology to develop the source program as a whole, and finally achieving an intelligent urban and rural community medical station service system. In the overall software development process, the first step is to understand the needs of patients and doctors, analyze the specific workflow of urban and rural community medical stations, refer to mature intelligent urban and rural community medical station service systems for development, and ultimately achieve an intelligent urban and rural community medical station service system. The intelligent urban and rural community medical station service system can be divided into a management end for medical station use and a client end for ordinary users. The management end mainly includes the maintenance and management of public management, user management, information management, permission management, doctor information, registration information, medical record files and other data. The maintenance of user feedback module and user message replies comprehensively manage medical information information. After the system development is completed, It is to conduct operational testing on the system, analyze the advantages and disadvantages of its application during testing, form an analysis without reporting, and promptly find ways to improve the shortcomings, hoping to find the optimal solution for future system maintenance and provide some assistance for similar systems in the future.
Keywords:Urban and rural community medical stations; MySQL database; Django Framework
摘要:智能城乡社区医疗站服务系统是党中央、国务院为改革城市卫生服务体系而推行的一项“民心"工程。在新型卫生服务体系中起到了综合、连续、经济、方便、有效的基本卫生服务作用。目前,我国的城乡社区医疗服务还处于初级阶段,社区全科医生的专业水平、业务能力还不能满足社区服务的要求,尤其是城乡社区医疗信息资料的收集统计工作还很落后,因此,有必要建立一整套城乡社区医疗服务系统,针对我国城乡社区医疗服务的实际情况与管理特点,利用先进的IT技术,设计开发出以患者病历档案为中心,以城乡社区医疗服务的医疗资讯、挂号就诊等功能的计算机管理系统为体系。
关键词:城乡社区医疗站;Diango框架;智能医疗
由于计算机软硬件技术在近些年来的飞速发展,促进了管理信息系统的快速提高。而管理信息系统的产生和发展又极大地推动了生产力的发展。应用计算机信息管理系统能 有效的提高医疗服务的业务处理效率。这是医疗信息化管理发展的必然趋势。本文将从以下几个章节阐述如何基于Django技术开发一个完善的智能城乡社区医疗站服务系统。
我国城乡的社区医疗服务是社区建设的重要组成部分,是在政府领导、上级卫生机构指导、社区参与下,以基层医疗机构为主体、全科医师为骨干、合理使用社区资源和适宜技术,以人的健康为中心、家庭为单位、社区为范围、需求为导向,以妇女、儿童、老年人、慢性病人、残疾人等为重点,以解决社区主要医疗问题.满足基本医疗服务需求为目的,融预防、医疗、保健、康复、健康教育、计划生育技术服务等为一体的,有效、经济、方便、综合、连续的基层医疗服务川。开展社区医疗服务事业是“三个代表”重要思想的具体体现,对于坚持党的基本群众路线和新时期卫生工作方针,深化卫生体制改革,努力满足人民群众卫生服务需求,维护社会稳定,促进经济全面协调发展具有重要意义。
发展城乡社区医疗卫生服务,对于解决群众“挂号难、就诊难”问题,为群众提供实惠、便捷的医疗保健服务,提高全社会疾病预防控制水平,具有重要意义。社区医疗卫生服务是实现“人人享有卫生保健”的基础,是国际卫生服务的大趋势。目前,全国95%的地级以上城市、86%市辖区和一批县级市开展了城乡社区医疗卫生服务,全国已设置社区卫生服务中心3400多个,社区卫生服务站近12000个。一个以社区卫生服务中心为主,社区卫生服务站为辅,医疗诊所、医务室为补充的社区卫生服务体系框架正在形成。社区卫生服务方便群众,节省费用,有着强盛的生命力和广阔的发展前景。
随着信息技术的快速发展,国内越来越多的医院正加速实施基于信息化平台的整体建设,以提高医院的服务水平与核心竞争力。信息化不仅提升了医生的工作效率,使医生有更多的时间为患者服务,更提高了患者满意度和信任度。社会信息化的发展,我国的医院进入了数字信息化时代,大型数字化医疗设备在医院中得到了广泛的使用,各种医院信息管理系统和临床医疗信息系统正在快速地普及。医院信息化使得医院的工作流程得到了简化和效率的提高,并促进了医院的全面发展。我国由于医疗卫生行业信息化发展起步较晚,在整体IT投资规模上,目前国内医疗行业每年实际的投入只占医院年收入的 0.3-0.5%,而发达国家和地区是 3-5%,两者存在10倍的差距。由于受经济条件的限制,国内医疗生行业信息化是从国内少数大型综合医院开始发展,逐步向中小型医院市场普及从医院等级上来看,三级医院的投入显著高于三级以下医院,乡镇医院及农村卫生系统的信息化建设相对落后;从地域分布来看,经济发达地区的医院信息化投资也明显高于经济中等发达及经济欠发达地区。信息化程度的差异对全国范围内的医疗体制改革、新农合等政策的实施及全民医疗卫生水平的提高带来了一定的困难。
在过去几年,美国医疗服务信息化行业取得了发展。谷歌公司与美国的医疗卫生部门合作,给数百万的社区病人建立了电子健康档案,医生可以通过网络进行远程监控。微软公司也推出了医疗信息化管理平台,帮助医生、病人及病人的家属实时的了解病人最新的情况。英特尔也推出了自己的数字化医疗服务平台通过IT技术帮助病人和医生建立起互动。IBM公司也在这方面有很大的努力,美国总统欧巴马当选后就承诺实施健康信息化计划,即在五年内,通过对全民的健康信息系统实施标准化和电子化,彻底改革美国医疗卫生体系,实现提高医疗质量,降低医疗成本的目标。
本文共分为六章,章节内容安排如下:
第一章为绪论,主要介绍系统的研究背景和意义,同时进行了论文整体框架的结构的简要介绍。
第二章为系统需求分析,章节所做的主要的工作是对系统进行了技术、经济和法律方面可行性的分析;对系统实行了总体功能的需求、用例分析。
第三章为系统的设计,主要是对系统的功能结构进行设计,并对系统数据库的概念结构以及物理结构的设计进行了分析。
第四章就是对系统的实现,根据系统功能的划分,分别的对系统所需要实现的用户功能和管理员功能进行了分析和说明。
第五章:系统测试。主要对系统的部分界面进行展示并对主要功能进行测试。
第六章:总结。
系统分析是开发一个项目的先决条件,通过系统分析可以很好的了解系统的主体用户的基本需求情况,同时这也是项目的开发的原因。进而对系统开发进行可行性分析,通常包括技术可行性、经济可行性和法律可行性分析,可行性分析同时也是从项目整体角度进行的分析。然后就是对项目的具体需求进行分析,分析的手段一般都是通过用户的用例图来实现。
系统可行性分析是对系统可行性进行一个探讨。在探讨系统的可行性上我们主要从技术上的可行性和经济上的可行性以及法律可行性进行分析,如果三个层面都通过,则认为系统是比较可行的。
1.技术可行性分析
本校园兼职系统采用Django技术、Python编程语言和MySQL数据库进行开发设计,作为计算机专业学生,在学校期间就接触到许多关于编程方面的知识,当然也包括各种编程软件,所以从技术上是可行的。
2.经济可行性分析
从经济可行性上看项目在开发阶段需要一定的投资成本,在生产阶段需要web服务器和数据库服务器及后期的维护需要一定的成本,但是相对于其带来的经济效益和社会效益而言,其投资成本低值得的。通过系统可以提高校园兼职管理效率和管理水平,降低管理成本。在经济层面上是可行的。
3.法律可行性分析
系统从法律层面上来没有对第三方法律层面的问题,系统数据库采用的MySQL开源社区数据库、框架采用的是开源的Django。系统资讯和相关内容也是符合法律层面的。在源码的管理上采用git开源进行管理,所以在法律可行性上是成立的。
业务流程是用一些特定的符合和线条来进行演示用户在使用系统时的过程,在进行系统分析的时候,业务流程可以帮助开发人员更好的理解业务,发现错误,完善系统。
1.数据增加流程
用户成功登入系统后就能够实现增加数据的操作,增加数据的编号是特定的,系统生成,用户不能随意填写,除了编号以外,其他增加信息用户自己填写,填写后的信息经过系统验证,验证合法通过就显示增加数据成功了,相反的话,就没有增加成功,图2-1显示的就是在增加数据时的流程。

图2-1 数据增加流程图
2.数据修改流程
数据修改时的流程和上面介绍的数据增加时的流程差不多,如图2-2所示。

图2-2 数据修改流程图
3.数据删除流程
如果系统里面存在一些没有用的数据的话,相关的管理人员还可以对这些数据进行删除,图2-3就是数据删除时的流程图。

图2-3 数据删除流程图
1.功能性分析
按照智能城乡社区医疗站服务系统的角色,我划分为了患者用户、医生用户、维护员用户和管理员四大部分。
患者用户模块:
(1)用户注册登录:游客可以随时进入到系统中,对系统中的信息浏览,但是想要实现挂号预约,就必须有这个系统的账号,如果没有账号的话,可以注册成员用户进行相关的操作,同时用户还可以通过“我的”这一按钮对个人信息以及操作的信息进行管控。
(2)查看智能城乡社区医疗站服务系统的首页信息:智能城乡社区医疗站服务系统的首页信息包含了首页、公告信息、医疗资讯、用户意见、医生信息、我的账户、个人中心等。
(3)公告信息:在前台点击“公告信息”这一菜单按钮以后就会进入到公告信息界面。
(4)医疗资讯:在前台点击“医疗资讯”按钮进入医疗资讯列表,可以输入关键词进行查询医疗资讯信息,并且可以对查看的医疗资讯进行评论、收藏、点赞操作。
(5)用户意见:在前台点击“用户意见”按钮会跳转到用户意见填写页面,根据页面提示输入用户意见的内容,点击“提交”进行提交用户意见。
(6)医生信息:用户可以查看医生推荐信息,在查询到自己想要了解的医生信息的时候,可以进入查看详细的介绍,点击“挂号”这一按钮以后会跳转到挂号信息填写的界面,根据提示填写好挂号的信息,点击“提交”以后挂号就完成了,在医生信息详情这个界面,同时支持用户对喜欢的医生信息进行收藏、点赞以及评论的功能。
(7)我的账户:在前台点击“用户名称”下面的“我的账户”可以对个人资料+密码修改+自己收藏的信息进行管控。
(8)个人中心:用户进入用户“个人中心”页面可以管理个人首页、挂号信息、病历档案、收藏等信息,能够查看个人挂号信息及医生给出的病历档案信息等。
医生用户模块:
(1)用户注册登录:医生用户登录系统后台,可以对个人信息和密码进行修改维护。
(2)查看智能城乡社区医疗站服务系统的首页信息:智能城乡社区医疗站服务系统的首页信息包含了首页、公告信息、医疗资讯、医生信息、我的账户、个人中心等。
(3)医生信息:医生点击后台“医生信息”菜单可以对医生信息列表进行查看,并进行增删改查。如果想要添加新的医生信息,点击“添加”按钮,输入医生信息详情信息,点击“提交”按钮就可以添加了。也可以对用户提交的评论信息进行回复管控。
(4)挂号信息:医生点击后台“挂号信息”菜单可以对用户的挂号信息列表进行详情查看,点击“病历信息”按钮对患者用户进行病历档案添加。
(5)病历档案:医生点击后台“病历档案”菜单可以对用户的病历档案列表进行详情查看,并进行增删改查。
维护员模块:
(1)用户注册登录:维护员用户在后台可以输入用户名+密码进行登录,可以对个人信息和密码进行修改维护。
(2)用户管理:维护员用户可以对智能城乡社区医疗站服务系统中的患者用户和医生用户进行管理,增删改查。
管理员管理模块:
(1)登录:管理员在后台可以输入用户名+密码进行登录,管理员的用户名和密码是在数据库中直接设定好的。
(2)公共管理:管理员点击“公共管理”菜单可以对首页展示的轮播图、公告信息和留言板进行管理。其中管理员可以对留言板的内容信息进行回复管控。
(3)用户管理:管理员可以对智能城乡社区医疗站服务系统中的患者用户、医生用户和维护员用户进行增删改查。
(4)资讯管理:管理员可以对智能城乡社区医疗站服务系统前台展示的医疗资讯以及医疗资讯所属的分类进行管控。
(5)权限管理:管理员可以对系统的患者用户、医生用户和维护员用户的使用权限进行管控。
(6)医生信息:管理员点击“医生信息管理”菜单可以对医生信息列表进行查看,并进行增删改查。如果想要添加新的医生信息,点击“添加”按钮,输入医生信息详情信息,点击“提交”按钮就可以添加了。
(7)挂号信息:管理员点击“挂号信息列表”会显示出所有的挂号信息,支持输入科室名称或预约时间对挂号信息进行查询,可以选择某一条挂号信息,点击“删除”进行删除。
(8)病历档案:管理员点击“病历档案列表”菜单可以查看病历档案列表,进行增删改查。
2.非功能性分析
智能城乡社区医疗站服务系统的非功能性需求,比如智能城乡社区医疗站服务系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下3-1表格中:
表2—1 智能城乡社区医疗站服务系统非功能需求表
安全性 | 主要指智能城乡社区医疗站服务系统数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 | 可靠性是指智能城乡社区医疗站服务系统能够按照用户提交的指示进行操作,经过测试,可靠性90%以上。 |
性能 | 性能是影响智能城乡社区医疗站服务系统占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 | 用户只要跟着智能城乡社区医疗站服务系统的页面展示内容进行操作,就可以了。 |
可维护性 | 智能城乡社区医疗站服务系统开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
3.系统用例分析
智能城乡社区医疗站服务系统+的完整UML用例图分别如下图所示。
患者用户角色用例图如下图所示。

图2-4 患者用户角色用例图
医生用户角色用例图如下图所示。

图2-5 医生用户角色用例图
维护员用户角色用例图如下图所示。

图2-6 维护员用户角色用例图
管理员用户角色用例图如下图所示。

图2-7 管理员用户角色用例图
本章主要通过对智能城乡社区医疗站服务系统的可行性分析、功能需求分析、系统用例分析、系统流程分析,确定整个智能城乡社区医疗站服务系统要实现的功能。同时也为智能城乡社区医疗站服务系统的代码实现和测试提供了标准。
三、Django智能城乡社区医疗站服务系统总体设计
本章主要讨论的内容包括智能城乡社区医疗站服务系统的功能模块设计、数据库系统设计。
1.整体功能模块设计
在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本智能城乡社区医疗站服务系统中的用例。那么接下来就要开始对本智能城乡社区医疗站服务系统的架构、主要功能和数据库开始进行设计。智能城乡社区医疗站服务系统根据前面章节的需求分析得出,其总体设计模块图如图3-1所示。

图3-1 智能城乡社区医疗站服务系统功能模块图
2.用户模块设计
本系统的用户包括后台管理员和前台用户,两个模块的功能基本是相同的,用户比管理员多了一个注册功能,所以以前台用户模块的结构图为例进行分析,用户模块结构图为例进行分析,如下图:

图3-2用户模块结构图
3.评论管理模块设计
智能城乡社区医疗站服务系统是一个交流性质的公开平台,用户在平台上提交评论,增加用户之间的互动性。但是同时也为了更好的规范评论的内容,给予管理员删除不合适的评论的功能,所以需要专门设计一个评论管理模块,具体的结构图如下:

图3-3评论管理模块结构图
4.医生信息管理模块设计
智能城乡社区医疗站服务系统是中需要存储不少医生信息,其模块功能结构,具体的结构图如下:

图3-4医生信息模块结构图
5.挂号信息管理模块设计
智能城乡社区医疗站服务系统最重要的一个功能就是挂号信息,其模块功能结构,具体的结构图如下:

图3-5挂号信息模块结构图
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
1.数据库概念结构设计
下面是整个智能城乡社区医疗站服务系统中主要的数据库表总E-R实体关系图。

图3-6 智能城乡社区医疗站服务系统总E-R关系图
2.数据库逻辑结构设计
通过上一小节中校园社团信息管理系统中总E-R关系图上得出一共需要创建很多个数据表。
表access_token (登陆访问时长)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | token_id | int | 10 | 0 | N | Y | 临时访问牌ID | |
2 | token | varchar | 64 | 0 | Y | N | 临时访问牌 | |
3 | info | text | 65535 | 0 | Y | N | ||
4 | maxage | int | 10 | 0 | N | N | 2 | 最大寿命:默认2小时 |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户编号: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | article_id | mediumint | 8 | 0 | N | Y | 文章id:[0,8388607] | |
2 | title | varchar | 125 | 0 | N | Y | 标题:[0,125]用于文章和html的title标签中 | |
3 | type | varchar | 64 | 0 | N | N | 0 | 文章分类:[0,1000]用来搜索指定类型的文章 |
4 | hits | int | 10 | 0 | N | N | 0 | 点击数:[0,1000000000]访问这篇文章的人次 |
5 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
6 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
8 | source | varchar | 255 | 0 | Y | N | 来源:[0,255]文章的出处 | |
9 | url | varchar | 255 | 0 | Y | N | 来源地址:[0,255]用于跳转到发布该文章的网站 | |
10 | tag | varchar | 255 | 0 | Y | N | 标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 | |
11 | content | longtext | 2147483647 | 0 | Y | N | 正文:文章的主体内容 | |
12 | img | varchar | 255 | 0 | Y | N | 封面图 | |
13 | description | text | 65535 | 0 | Y | N | 文章描述 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000]决定分类显示的先后顺序 |
3 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
4 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
5 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
6 | icon | text | 65535 | 0 | Y | N | 分类图标: | |
7 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | auth_id | int | 10 | 0 | N | Y | 授权ID: | |
2 | user_group | varchar | 64 | 0 | Y | N | 用户组: | |
3 | mod_name | varchar | 64 | 0 | Y | N | 模块名: | |
4 | table_name | varchar | 64 | 0 | Y | N | 表名: | |
5 | page_title | varchar | 255 | 0 | Y | N | 页面标题: | |
6 | path | varchar | 255 | 0 | Y | N | 路由路径: | |
7 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | collect_id | int | 10 | 0 | N | Y | 收藏ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
3 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
4 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
5 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
6 | title | varchar | 255 | 0 | Y | N | 标题: | |
7 | img | varchar | 255 | 0 | Y | N | 封面: | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | doctor_information_id | int | 10 | 0 | N | Y | 医生信息ID | |
2 | doctor_user | int | 10 | 0 | Y | N | 0 | 医生用户 |
3 | doctor_no | varchar | 64 | 0 | Y | N | 医生工号 | |
4 | doctors_name | varchar | 64 | 0 | Y | N | 医生姓名 | |
5 | department_name | varchar | 64 | 0 | Y | N | 科室名称 | |
6 | doctor_position | varchar | 64 | 0 | Y | N | 医生职位 | |
7 | doctors_photo | varchar | 255 | 0 | Y | N | 医生照片 | |
8 | registration_fees | varchar | 64 | 0 | Y | N | 挂号费用 | |
9 | proficient_in_areas_of_expertise | text | 65535 | 0 | Y | N | 擅长领域 | |
10 | sitting_time | text | 65535 | 0 | Y | N | 坐诊时间 | |
11 | career_history | text | 65535 | 0 | Y | N | 从业履历 | |
12 | visiting_experience | text | 65535 | 0 | Y | N | 就诊经验 | |
13 | personal_introduction | text | 65535 | 0 | Y | N | 个人介绍 | |
14 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
15 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
16 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
17 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | doctor_users_id | int | 10 | 0 | N | Y | 医生用户ID | |
2 | doctor_no | varchar | 64 | 0 | N | N | 医生工号 | |
3 | doctors_name | varchar | 64 | 0 | Y | N | 医生姓名 | |
4 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
5 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
表maintenance_personnel_user (维护员用户)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | maintenance_personnel_user_id | int | 10 | 0 | N | Y | 维护员用户ID | |
2 | maintain_employee_id | varchar | 64 | 0 | N | N | 维护员工号 | |
3 | name_of_maintenance_personnel | varchar | 64 | 0 | Y | N | 维护员姓名 | |
4 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
5 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | medical_records_id | int | 10 | 0 | N | Y | 病历档案ID | |
2 | doctor_user | int | 10 | 0 | Y | N | 0 | 医生用户 |
3 | doctor_no | varchar | 64 | 0 | Y | N | 医生工号 | |
4 | doctors_name | varchar | 64 | 0 | Y | N | 医生姓名 | |
5 | department_name | varchar | 64 | 0 | Y | N | 科室名称 | |
6 | doctor_position | varchar | 64 | 0 | Y | N | 医生职位 | |
7 | registered_patients | int | 10 | 0 | Y | N | 0 | 挂号患者 |
8 | patient_name | varchar | 64 | 0 | Y | N | 患者姓名 | |
9 | patient_gender | varchar | 64 | 0 | Y | N | 患者性别 | |
10 | patient_age | varchar | 64 | 0 | Y | N | 患者年龄 | |
11 | symptom_self_description | text | 65535 | 0 | Y | N | 症状自述 | |
12 | visit_date | datetime | 19 | 0 | Y | N | 就诊日期 | |
13 | main_complaint_content | text | 65535 | 0 | Y | N | 主诉内容 | |
14 | present_medical_history | text | 65535 | 0 | Y | N | 现病史 | |
15 | past_history | text | 65535 | 0 | Y | N | 既往史 | |
16 | physical_examination | text | 65535 | 0 | Y | N | 查体情况 | |
17 | specialized_situation | text | 65535 | 0 | Y | N | 专科情况 | |
18 | inspection_results | text | 65535 | 0 | Y | N | 检查结果 | |
19 | diagnosis_situation | text | 65535 | 0 | Y | N | 诊断情况 | |
20 | medical_record_attachment | varchar | 255 | 0 | Y | N | 病历附件 | |
21 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
22 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | message_id | int | 10 | 0 | N | Y | 留言板ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 用户ID: |
3 | title | varchar | 64 | 0 | Y | N | 标题: | |
4 | content | longtext | 2147483647 | 0 | N | N | 内容: | |
5 | nickname | varchar | 32 | 0 | N | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像: | |
7 | | varchar | 125 | 0 | Y | N | 留言者邮箱 | |
8 | phone | varchar | 11 | 0 | Y | N | 留言者手机号码 | |
9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
11 | reply | longtext | 2147483647 | 0 | Y | N | 回复 | |
12 | reply_state | tinyint | 4 | 0 | Y | N | 0 | 回复状态 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | notice_id | mediumint | 8 | 0 | N | Y | 公告id: | |
2 | title | varchar | 125 | 0 | N | N | 标题: | |
3 | content | longtext | 2147483647 | 0 | Y | N | 正文: | |
4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | patient_users_id | int | 10 | 0 | N | Y | 患者用户ID | |
2 | patient_name | varchar | 64 | 0 | Y | N | 患者姓名 | |
3 | patient_gender | varchar | 64 | 0 | Y | N | 患者性别 | |
4 | patient_age | varchar | 64 | 0 | Y | N | 患者年龄 | |
5 | id_number | varchar | 255 | 0 | Y | N | 身份证号 | |
6 | patient_phone_number | varchar | 16 | 0 | Y | N | 患者电话 | |
7 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
8 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | praise_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |
表registration_information (挂号信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | registration_information_id | int | 10 | 0 | N | Y | 挂号信息ID | |
2 | doctor_user | int | 10 | 0 | Y | N | 0 | 医生用户 |
3 | doctor_no | varchar | 64 | 0 | Y | N | 医生工号 | |
4 | doctors_name | varchar | 64 | 0 | Y | N | 医生姓名 | |
5 | department_name | varchar | 64 | 0 | Y | N | 科室名称 | |
6 | doctor_position | varchar | 64 | 0 | Y | N | 医生职位 | |
7 | registration_fees | varchar | 64 | 0 | Y | N | 挂号费用 | |
8 | registered_patients | int | 10 | 0 | Y | N | 0 | 挂号患者 |
9 | patient_name | varchar | 64 | 0 | Y | N | 患者姓名 | |
10 | patient_gender | varchar | 64 | 0 | Y | N | 患者性别 | |
11 | patient_age | varchar | 64 | 0 | Y | N | 患者年龄 | |
12 | appointment_time | datetime | 19 | 0 | Y | N | 预约时间 | |
13 | symptom_self_description | text | 65535 | 0 | Y | N | 症状自述 | |
14 | pay_state | varchar | 16 | 0 | N | N | 未支付 | 支付状态 |
15 | pay_type | varchar | 16 | 0 | Y | N | 支付类型: 微信、支付宝、网银 | |
16 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
17 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | sensitive_vocabulary_id | int | 10 | 0 | N | Y | 敏感词汇ID | |
2 | sensitive_vocabulary | varchar | 64 | 0 | Y | N | 敏感词汇 | |
3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | slides_id | int | 10 | 0 | N | Y | 轮播图ID: | |
2 | title | varchar | 64 | 0 | Y | N | 标题: | |
3 | content | varchar | 255 | 0 | Y | N | 内容: | |
4 | url | varchar | 255 | 0 | Y | N | 链接: | |
5 | img | varchar | 255 | 0 | Y | N | 轮播图: | |
6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | upload_id | int | 10 | 0 | N | Y | 上传ID | |
2 | name | varchar | 64 | 0 | Y | N | 文件名 | |
3 | path | varchar | 255 | 0 | Y | N | 访问路径 | |
4 | file | varchar | 255 | 0 | Y | N | 文件路径 | |
5 | display | varchar | 255 | 0 | Y | N | 显示顺序 | |
6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
7 | dir | varchar | 255 | 0 | Y | N | 文件夹 | |
8 | type | varchar | 32 | 0 | Y | N | 文件类型 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | mediumint | 8 | 0 | N | Y | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
3 | user_group | varchar | 32 | 0 | Y | N | 所在用户组:[0,32767]决定用户身份和权限 | |
4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
5 | phone | varchar | 11 | 0 | Y | N | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
7 | username | varchar | 16 | 0 | N | N | 用户名:[0,16]用户登录时所用的账户名称 | |
8 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
9 | password | varchar | 64 | 0 | N | N | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
10 | | varchar | 64 | 0 | Y | N | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
12 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
13 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | group_id | mediumint | 8 | 0 | N | Y | 用户组ID:[0,8388607] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000] |
3 | name | varchar | 16 | 0 | N | N | 名称:[0,16] | |
4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该用户组的特点或权限范围 | |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | register | smallint | 5 | 0 | Y | N | 0 | 注册位置: |
9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
整个智能城乡社区医疗站服务系统的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。
四、Django智能城乡社区医疗站服务系统详细设计与实现
智能城乡社区医疗站服务系统的详细设计与实现主要是根据前面的智能城乡社区医疗站服务系统的需求分析和智能城乡社区医疗站服务系统的总体设计来设计页面并实现业务逻辑。主要从智能城乡社区医疗站服务系统界面实现、业务逻辑实现这两部分进行介绍。
1.前台首页界面
当进入智能城乡社区医疗站服务系统的时候,系统以上中下的布局进行展示,首先映入眼帘的是系统的导航栏,下面是轮播图,其次是公告信息,其主界面展示如下图4-1所示。

图4-1 前台首页界面图
2.用户注册界面
智能城乡社区医疗站服务系统的游客和普通用户时可以进行注册登录,当用户右上角“注册”按钮的时候,当填写上自己的账号+密码+确认密码+昵称+邮箱+手机号等后再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可用户注册成功。其用用户注册界面展示如下图4-2所示。

图4-2注册界面图
注册关键代码如下所示。
/**
* 注册
* @param user
* @return
*/
@PostMapping("register")
public Map<String, Object> signUp(@RequestBody User user) {
// 查询用户
Map<String, String> query = new HashMap<>();
Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user));
query.put("username",user.getUsername());
List list = service.selectBaseList(service.select(query, new HashMap<>()));
if (list.size()>0){
return error(30000, "用户已存在");
}
map.put("password",service.encryption(String.valueOf(map.get("password"))));
service.insert(map);
return success(1);
}
3.用户登录界面
智能城乡社区医疗站服务系统中的前台上注册后的用户是可以通过自己的账户名和密码进行登录的,当普通用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到智能城乡社区医疗站服务系统的首页中;否则将会提示相应错误信息,用户登录界面如下图4-3所示。

图4-3用户登录界面图
登录的逻辑代码如下所示。
/**
* 登录
* @param data
* @param httpServletRequest
* @return
*/
@PostMapping("login")
public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
log.info("[执行登录接口]");
String username = data.get("username");
String email = data.get("email");
String phone = data.get("phone");
String password = data.get("password");
List resultList = null;
Map<String, String> map = new HashMap<>();
if(username != null && "".equals(username) == false){
map.put("username", username);
resultList = service.select(map, new HashMap<>()).getResultList();
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.select(map, new HashMap<>()).getResultList();
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.select(map, new HashMap<>()).getResultList();
}else{
return error(30000, "账号或密码不能为空");
}
if (resultList == null || password == null) {
return error(30000, "账号或密码不能为空");
}
//判断是否有这个用户
if (resultList.size()<=0){
return error(30000,"用户不存在");
}
User byUsername = (User) resultList.get(0);
Map<String, String> groupMap = new HashMap<>();
groupMap.put("name",byUsername.getUserGroup());
List groupList = userGroupService.select(groupMap, new HashMap<>()).getResultList();
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();
String res = String.valueOf(service.runCountSql(sql).getSingleResult());
if (res==null){
return error(30000,"用户不存在");
}
if (!res.equals("已通过")){
return error(30000,"该用户审核未通过");
}
}
//查询用户状态
if (byUsername.getState()!=1){
return error(30000,"用户非可用状态,不能登录");
}
String md5password = service.encryption(password);
if (byUsername.getPassword().equals(md5password)) {
// 存储Token到数据库
AccessToken accessToken = new AccessToken();
accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
accessToken.setUser_id(byUsername.getUserId());
tokenService.save(accessToken);
// 返回用户信息
JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
user.put("token", accessToken.getToken());
JSONObject ret = new JSONObject();
ret.put("obj",user);
return success(ret);
} else {
return error(30000, "账号或密码不正确");
}
}
4.医疗资讯界面
当访客点击智能城乡社区医疗站服务系统中导航栏上的“医疗资讯”后将会进入到该“医疗资讯”列表的界面,然后选择想要看的医疗资讯,点击进入到详细界面,在详细界面可以收藏+赞+评论等操作。医疗资讯界面如下图4-4所示。

图4-4医疗资讯界面图
5.用户意见界面
点击导航栏上的“用户意见”,可以填写标题、用户名、留言内容,然后点击“提交”按钮进行提交用户意见,用户意见界面如下图4-5所示。

图4-5用户意见界面图
6.医生信息界面
当访客点击“医生信息”后就可以看到所有的医生信息,可以输入医生姓名或者科室名称进行搜索查询,选择你想要了解的医生信息后将会进入该医生信息的详情界面,可以了解到该医生信息的医生工号、医生姓名、科室名称、医生职位、挂号费用、点赞数等,同时可以对点击下方的“挂号”、“点赞”、“收藏”进行相关操作,也可以在下方评论区输入想要评论的内容进行评论,医生信息详情展示页面如图4-6所示。

图4-6 医生信息详情界面图
7.我的账户界面
当用户点击右上角“我的”这个按钮,会出现子菜单,点击“我的账户”可以对个人的资料、登录系统的密码以及自己收藏的信息进行设置管理。用户个人资料管理界面如下图4-7所示。

图4-7 用户个人资料管理界面图
8.挂号信息界面
当用户点击右上角“我的”这个按钮,会出现子菜单,点击“个人中心”可以对个人首页、挂号信息、病历档案、收藏进行设置管理。用户提交挂号信息界面如下图4-8所示。

图4-8用户提交挂号信息界面图
医生查看并回复挂号信息,建立病历档案。界面如下图4-9所示。

图4-9 医生回复挂号信息建立病历档案界面图
1.公共管理界面
管理员点击“公共管理”这一按钮,对其子菜单轮播图、公告信息、留言板进行管理。进行增删改查,并对用户意见的留言信息进行回复管控。留言板管理界面如下图4-10所示。

图4-10用户管理界面图
2.用户管理界面
智能城乡社区医疗站服务系统中的管理人员在“用户管理”这一菜单是中可以对注册的患者用户、医生用户、维护员用户以及管理员进行管控。这里以患者用户为例,患者用户管理界面如下图4-11所示。

图4-11用户管理界面图
用户管理关键代码如下:
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
3.资讯管理界面
管理员点击“资讯管理”菜单能够对其下子菜单医疗资讯和医疗资讯的分类进行增删改查。界面如下图4-12所示。

图4-12 资讯管理界面图
资讯管理关键代码如下:
@PostMapping("/set")
@Transactional
public Map<String, Object> set(HttpServletRequest request) throws IOException {
service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));
return success(1);
}
4.权限管理界面
管理员点击“权限管理”菜单能够对系统的患者用户、医生用户、维护员用户和管理员的权限进行分组设置。界面如下图4-13所示。

图4-13 权限管理界面图
五、系统测试
系统测试包括:用户登录功能测试、医疗资讯展示功能测试、医生信息添加、医生信息搜索、密码修改、挂号信息功能测试,如表5-1、5-2、5-3、5-4、5-5、5-6所示:
表5-1 用户登录功能测试表
用例名称 | 用户登录系统 |
目的 | 测试用户通过正确的用户名和密码可否登录功能 |
前提 | 未登录的情况下 |
测试流程 | 1) 进入登录页面 2) 输入正确的用户名和密码 |
预期结果 | 用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入 |
实际结果 | 实际结果与预期结果一致 |
医疗资讯查看功能测试:
表5-2 医疗资讯查看功能测试表
用例名称 | 医疗资讯查看 |
目的 | 测试医疗资讯查看功能 |
前提 | 用户登录 |
测试流程 | 点击医疗资讯列表 |
预期结果 | 可以查看到所有医疗资讯信息 |
实际结果 | 实际结果与预期结果一致 |
管理员添加医生信息界面测试:
表5-3 管理员添加医生信息界面测试表
用例名称 | 添加医生信息测试用例 |
目的 | 测试医生信息添加功能 |
前提 | 管理员用户正常登录情况下 |
测试流程 | 1)管理员点击医生信息,然后点击添加后并填写信息。 2)点击进行提交。 |
预期结果 | 提交以后,页面首页会显示新的医生信息 |
实际结果 | 实际结果与预期结果一致 |
医生信息搜索功能测试:
表5-4医生信息搜索功能测试表
用例名称 | 医生信息搜索测试 |
目的 | 测试医生信息搜索功能 |
前提 | 无 |
测试流程 | 1)在搜索框填入搜索关键字。 2)点击搜索按钮。 |
预期结果 | 页面显示包含有搜索关键字的医生信息 |
实际结果 | 实际结果与预期结果一致 |
密码修改搜索功能测试:
表5-5 密码修改功能测试表
用例名称 | 密码修改测试用例 |
目的 | 测试管理员密码修改功能 |
前提 | 管理员用户正常登录情况下 |
测试流程 | 1)管理员密码修改并完成填写。 2)点击进行提交。 |
预期结果 | 使用新的密码可以登录 |
实际结果 | 实际结果与预期结果一致 |
挂号信息功能测试:
表5-6挂号信息功能测试表
用例名称 | 挂号信息测试用例 |
目的 | 测试用户挂号信息功能 |
前提 | 用户正常登录情况下 |
测试流程 | 1)搜索查看医生信息,点击挂号信息。 2)填写挂号信息信息,点击进行提交。 |
预期结果 | 预约成功 |
实际结果 | 实际结果与预期结果一致 |
通过编写智能城乡社区医疗站服务系统的测试用例,已经检测完毕用户登录模块、医疗资讯展示模块、医生信息添加模块、医生信息搜索模块、密码修改模块、挂号信息模块功能测试,通过这6大模块为智能城乡社区医疗站服务系统的后期推广运营提供了强力的技术支撑。
六、结论
本次智能城乡社区医疗站服务系统利用了Web应用同现实社区医疗服务管理工作进行相结合,在系统功能开始编码之前,作者花费了大量时间在图书馆内进行资料文献的收集和总结,通过大量文献的分析,能够发现,社区医疗服务管理的方式在看病就诊中扮演的位置是越来越重要,而使用的方式也是越来越多元化,也正是因为这个原因,作者深深的希望能够开发出一种专门针对城乡社区的智能城乡社区医疗站服务系统,以满足城乡社区用户的需求。
在本次开发智能城乡社区医疗站服务系统中,利用了目前市场上普遍使用的Python技术,以及数据库管理功能MySQL,和目前比较流行的Django框架,最后配合使用到了VUE页面布局技术进行系统界面的布置,以现实生活的社区医疗服务管理过程为标准,设计实现了公告信息、医疗资讯、用户意见、医生信息、挂号信息、病历档案、收藏等功能,并维护好后台的信息和整体系统的稳定性。
但是由于作者受到了技术水平的限制,在有限的时间,只能够将系统功能模拟时的功能实现,在许多功能方面仍然存在很大的弊端,而这些弊端需要不断的测试,不断的总结,不断的改进。例如本次系统设计中,在数据储存的方面并不够全面,很容易出现信息泄露的风险;例如针对用户权限的设置同样不够全面完整,没有考虑权限在实际情况的运用是否能够完美执行。而在这之后的日子里,作者将会继续学习Python技术和相关的信息技术,对系统功能进行更加完整的,详细的分析,将系统功能一一进行完善,帮助使用者完成相应的操作。
[1]Bo L ,Juan C .Barriers to community healthcare delivery in urban China: a nurse perspective.[J].International journal of qualitative studies on health and well-being,2023,18(1):2220524-2220524.
[2]David C ,Ulla G ,Sarah B , et al.Calculating the Costs of Implementing Integrated Packages of Community Health Services: Methods, Experiences, and Results From 6 sub-Saharan African Countries.[J].Global health, science and practice,2023,11(5):
[3]赵建,吕若汐.高水准医疗网惠及城乡社区[N].河北日报,2023-09-27(002).DOI:10.28326/n.cnki.nhbrb.2023.005401
[4]汪苗,潘庆.我国失能老年人对社区上门医疗服务需求的城乡差异及影响因素分析[J].现代预防医学,2023,50(17):3173-3178+3185.DOI:10.20043/j.cnki.MPM.202304083
[5]高文昕.基于服务系统的社区老人移动医疗设计探究[J].大众文艺,2023,(11):34-36.DOI:10.20112/j.cnki.ISSN1007-5828.2023.11.012
[6]王煜琳,胡鸿.疫情常态化下居家老人突发疾病数字信息化医疗服务系统设计[J].设计,2023,36(11):1-5.DOI:10.20055/j.cnki.1003-0069.000820
[7]杨蕾.社区医疗服务可及性对居民健康的影响——基于城乡差异视角[J].管理研究,2021,(01):15-31.
[8]Chao H L ,Fa S S .Construction of College Students’ Physical Health Data Sharing System Based on Django Framework[J].Journal of Sensors,2021,2021
[9]赵静茹,杨联安,田婷钰等.城乡接合部社区基础医疗设施可达性分析——以西安市长安区为例[J].西安文理学院学报(自然科学版),2021,24(04):72-78.
[10]胡彧,黄湘渝,靳文奎.智慧健康社区下产品服务系统设计研究[J].设计,2021,34(18):130-132.
[11]邱红丽,张舒雅.基于Django框架的web项目开发研究[J].科学技术创新,2021,(27):97-98.
[12]刘长龙.Python高效开发实战[M].电子工业出版社:202108.521.
[13]杨芳萍.基于数字化社区的医疗卫生服务平台研究[J].物联网技术,2021,11(07):118-119+122.DOI:10.16667/j.issn.2095-1302.2021.07.034
[14]赵振宇.基于GIS的农村社区医疗便利性评价与服务系统研发[D].山东农业大学,2021.DOI:10.27277/d.cnki.gsdnu.2021.000622
[15]谭雯.智慧医疗背景下城市社区医院服务体验的优化设计研究[J].设计,2021,34(09):58-62.
[16]汪洋,姜新通.MVC框架在Python与Django下的设计研究[J].电脑与信息技术,2021,29(01):55-57+63.DOI:10.19414/j.cnki.1005-1228.2021.01.017
[17]Manikanta K V ,P. L ,Neha K R , et al.Visualization of Real World Enterprise Data using Python Django Framework[J].IOP Conference Series: Materials Science and Engineering,2021,1042(1):012019-.
[18]王伟伟,孟丹妮,巩丽娜.智能社区的健康医疗服务模式设计研究[J].工业设计,2020,(09):112-113.
[19]葛航,智慧社区医疗与健康服务系统研发与应用.浙江省,创业慧康科技股份有限公司,2020-09-01.
[20]曾爱群.社区医院云平台的建设与应用研究[J].信息记录材料,2020,21(05):102-103.DOI:10.16009/j.cnki.cn13-1295/tq.2020.05.067
我首先要向我的论文指导老师表示深深的感谢。在整个论文的创作过程中,导师的悉心指导和无微不至的关怀,对我起到了巨大的推动作用。导师的耐心教诲和建设性的意见,都对我有着莫大的帮助。他们的严谨的学术态度、敬业的精神和高超的教学技艺,都为我树立了追求卓越的典范。这些无价的品质,不仅影响了我现在的生活,也激励着我持续向前。
同时,我要向我的一同求学的同学们表示感激,他们既是我的学习伙伴,也是我生活中的良师。在大学的生涯中,他们给予了我无微不至的关怀和支持。有了他们的帮助,我才能顺利完成学业。在这里,我要向所有给予我援手的老师和同学们表示感谢,是你们陪我度过了这段珍贵的大学时光。
我也要向我敬爱的父母表达感谢,是他们用辛勤的付出和深深的爱,将我抚养成人。我永远不会忘记他们为我付出的辛勤努力和深深的爱。在成长的道路上,他们始终是我前进的动力和信念。为了回报他们的养育之恩,我一定会努力学习,用我未来的成就让他们感到更加骄傲。
在这里,我要向所有关心我、支持我、帮助过我的人表示深深的感谢,是你们陪我走过了人生的曲折与坎坷。我会将大家的支持和关爱转化为前进的动力,努力成为更好的我。
免费领取源码,请点赞关注私信博主