4.1登录模块 3
结论 36
科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代。在现实运用中,应用软件的工作规则和开发步骤,采用ASP.NET技术建设病历管理系统。
本设计主要实现集人性化、高效率、便捷等优点于一身的病历管理系统,完成用户管理(管理员、医生、护士)模块管理(科室、患者病历、药品仓库、处方信息、捡药信息、患者管理)等功能模块。系统通过浏览器与服务器进行通信,实现数据的交互与变更。本系统通过科学的管理方式、便捷的服务提高了工作效率,减少了数据存储上的错误和遗漏。病历管理系统使用C#语言,采用基于MVVM模式的搜ASP.NET技术进行开发,使用visual编译器编写,数据方面主要采用的是微软的SQL Server关系型数据库来作为数据存储媒介,配合ASP.NET技术完成系统的开发。
关键词:ASP.NET技术;SQL Server;病历管理系统
Abstract
The rapid development of technology has caused tremendous changes in people's daily lives, and the rapid development of electronic information technology has popularized and applied the application level of electronic information technology in various fields. The arrival of the information age has become an unstoppable fashion trend, and the history of human development is entering a new era. In practical applications, the working rules and development steps of the application software are constructed using ASP. NET technology to build a medical record management system.
This design mainly implements a medical record management system that combines the advantages of humanization, efficiency, and convenience, and completes functional modules such as user management (administrator, doctor, nurse) module management (department, patient medical record, drug warehouse, prescription information, drug picking information, and patient management). The system communicates with the server through a browser to achieve data interaction and changes. This system improves work efficiency and reduces errors and omissions in data storage through scientific management and convenient services. The medical record management system uses C # language, adopts the search ASP.NET technology based on MVVM mode for development, and uses the visual compiler to compile. In terms of data, Microsoft's SQL Server relational database is mainly used as the data storage medium, and the system development is completed with ASP.NET technology.
Keywords:ASP. NET technology; SQL Server; Medical Record Management System
1 绪论
1.1研究背景
在临床诊断、医学保健、预防疾病、控制病源以及卫生监督等多个医疗技术应用场景中,病历作为病人整个生命周期内就医过程的医疗信息载体,一直以来都发挥着无可取代的重要作用。信息技术在二十一世纪得到了充分的发展,并通过和传统行业相结合全面改变和颠覆着人们的生活,传统行业也适应着时代的要求,加入了信息化、自动化发展的洪流。病历这一医疗信息载体的存储形式也逐渐从传统的纸质、胶片转变为了电子信息。除此之外,病历还存在着类型复杂、内容繁多庞杂、关联程度高、数据量巨大等多个特点,传统电子信息存储方式已远远不能满足需要,在临床实际工作中引入更符合现状的病历管理系统的需求变得格外迫切。
而随着《关于深化医药卫生体制改革的意见》(以下简称《意见》)和《2009-2011年深化医药卫生体制改革实施方案》等新型医疗改革方案的出台,我国也正式开始对医疗领域进行改革。其中医疗机构的信息化改革更是此次新型医疗改革的八个配套支撑体系之一。在《意见》中,国家明确提出了要求医疗机构对每天产生的大量医疗数据实现信息化的管理和信息共享。医疗信息化为我国医药卫生体制改革,促进医疗技术的发展奠定了基础。
对医疗体系实现标准化和信息化管理需要使用先进的技术,从而达到提升医疗水平、降低医疗成本、健全医疗体系的目的。国外的一些发达国家已经率先提出了相关改革政策并完成了落实,因此其政策和应对方针也为我国医疗体系改革提供了一定参考。对于而言,便可以基于国外的先验研究成果,并将中国国情与研究成果相结合,最终实现具有中国特色的医疗体系的标准化和信息化。通过信息化的发展能够有效提高我国医疗的整体水平,无论是对患者、对医疗机构还是对国家都具有重大的战略意义。
当前,我国医院已经相继建立了能够极大地提升医疗人员的病历管理效率、减少不必要的人力消耗的病历管理系统,在某种程度上实现了医院发展的信息化建设。但是,随着经济的发展,人们对医疗服务的质量要求也逐渐.上升,医院业务种类及数量也与之俱增,从而导致当下医院的许多病历管理系统已无法承载病历相关数据的收集、整理及存储等重大任务,对资源的利用也逐渐脱离了时代需求和相关标准。为了使信息资源的利用重回正轨,相关研究人员及医疗机构就必须根据医院实际情况及现代用户的实际需求,设计并实现出合理的病历管理系统来支持医疗事业的健康稳定发展,提升医疗机构服务患者的质量及效率。
1.2研究意义
病历管理系统的研究意义不仅是因为国家政策向临床诊疗提出了新要求,同时为了提升国家整体医疗水准、提升医疗人员的病历管理效率、为病患提供更加科学合理的医疗服务以及实现医疗机构的全面信息化。病历管理系统作为医院信息化建设环节中不可缺少的一环,对于全民全社会以及国家未来发展而言都意义深远重大,具体来说可以分为以下四点:
(1)提高工作效率及服务质量。病历管理系统的推广能够为医护人员日常工作提供有力的支持,如通过规范的病历输入功能模块规范化和统一化病历的格式;通过病历自动共享的功能模块将病历转抄差错率降低至接近于零;无纸化办公的施行,能够提高医疗申请、检查以及回馈的传递效率;与网络空间的结合能够辅助医生对患者进行诊断,并在医生制定治疗方案时提供合理建议。
(2)实现信息共享。ASP.NET技术的病历管理系统具有良好的大数据存储能力,并且能轻易、迅速地传递和共享患者的全部治疗信息,除此之外,ASP.NET技术的病历管理系统兼容性较好,便于在各大医疗机构中进行推广,从而达到信息统--化的作用,有望在后续的医疗信息管理过程中发挥出更大的作用,帮助患者将其医疗信息无缝转入患者新医院的病历管理系统中,为患者争取宝贵的治疗时间。
(3)提高医院整体管理水平。传统的病历管理过程分为环节管理和终末管理,也即是说,医务处需要将出院病历在七日内归档、时常对在架病历进行质量检查,并在每个月对质量检查的结果进行汇总报告。可以看出,以上流程造成了极大的人力成本浪费。因此引入可以及时实现对各种历史数据进行采集、反馈的病历管理系统,将有望将病历管理规范化和统一化,实现标准化的系统管理,从而提高所有医疗机构的病历管理水平。
(4)辅助国家医疗宏观管理。病历管理系统的推广有望为国家医疗宏观管理提供更加丰富的信息资源,从而促进国家相关部门制定出更合理科学、可持续化发展的管理政策,实现将数据转化为信息的价值提取过程。通过积累的病人数据,能够有效的对病人进行预防、预测诊断,帮助提高我国医疗数据化、信息化的水平,通过结合数据挖掘、人工智能等最新的研究,提升我国医疗管理的水平,进一步提升我国医药资源的效率。
1.3B/S体系结构介绍
B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器,如Chrome、Safari、Microsoft Edge、Netscape Navigator或Internet Explorer,服务器安装SQL Server、Oracle、SQL Server等数据库。浏览器通过Web Server同数据库进行数据交互。
1.4ASP.NET框架介绍
ASP.NET又称为ASP+,不仅仅是ASP的简单升级,而是微软公司推出的新一代脚本语言。ASP.NET基于.NET Framework的Web开发平台,不但吸收了ASP以前版本的最大优点并参照Java、VB语言的开发优势加入了许多新的特色,同时也修正了以前的ASP版本的运行错误。
ASP.NET具备开发网站应用程序的一切解决方案,包括验证、缓存、状态管理、调试和部署等全部功能。在代码撰写方面特色是将页面逻辑和业务逻辑分开,它分离程序代码与显示的内容,让丰富多彩的网页更容易撰写。同时使程序代码看起来更洁净、更简单。
1.8.1硬件环境
.NET平台的的运行对硬件有如下要求:
①计算机/处理器。
建议配置:装有450 MHz Pentium Ⅱ级别处理器的PC。
最低配置:装有300 MHz Pentium Ⅱ级别处理器的PC,否则编译过程运行异常缓慢。
②RAM的最小要求。
Windows XP Professional:160 MB RAM。
Windows 2000 Professional:96 MB RAM。
Windows 2000 Server:192 MB RAM。
Windows NT 4.0 Workstation:64 MB RAM。
Windows NT 4.0 Server:160 MB RAM。
③硬盘:标准版在安装驱动器上需要有2.5GB,包括系统驱动器上的500MB。
Professional和Enterprise版在安装驱动器上需要有.5GB,包括系统驱动器上的500MB。如果不需要Microsoft Visual Studio.NET中的参考文档,而且只需要支持C#开发的话,最少需要700M左右的空间。
④驱动器:CD-ROM或DVD-ROM驱动器,用以使用光盘,安装开发平台程序。当然,这不是绝对的,完全可以选择网络安装方式。
⑤显示器:SuperVGA(800×600)或更高分辨率的256色显示器,其实建议使用1024×768以上的分辨率,否则开发过程会因为可视范围过小而不方便开发。
⑥输入设备:MjcrosoR鼠标或兼容的指针设备。
当然这里指出的硬件需要也并非绝对的,,如果有条件,应该选择配置更高的机器,这对开发是很有帮助的。
①操作系统:MicrosoR Windows NT 4.O或更高版本的操作系统,包括Microsoft windows2000系列,Microsoft windows 2003系列,不支持Microsoft Windows 95,Microsoft windows 98,Microsoft windows Me等操作系统。
注意:对于Microsoft Windows NT 4.0需要升级到SP6以上的版本。对于Windows 2000以上的操作系统,需要将Windows 2000升级到SP3以后的版本。
②Framework:Framework是.NET的支撑基础。它包含.NET平台的运行库与公用语言运行时,所有的.NET平台下的程序都需要基于它的类库来建立程序,而所有的程序也需要先编译为中间语言(IL)然后由公用语言运行时管理执行。可以说没有Framework就没有.NET平台。
针对.NET的开发,微软还为开发人员准备了很多开发工具,它们被集中到Framework SDK中,要进行.NET的开发,这些开发、调试工具是不可少的。因此,要进行,NET开发,最好安装Framework SDK。
不过需要注意的是,Microsoft Windows 2003系列已经集成Framework(但不包含Framework SDK),除非有新的版本,一般不需要再安装。另外在Linux下与Framework对应的是Mono。
③MDAC:有了上面讲述的这些之后,就已经具有最基本的.NET开发平台,可以进行一些简单程序的开发。但是,当要使用数据库、XML等对象时,编写的程序可能无法执行。
因为.NET还有基本的需要——MDAC(Microsoft Data Access CompHDnents),翻译为中文是微软数据访问组件。这是一整套的微软的数据访问组件,几乎所有的windows平台下的数据库访问都是由这些组件来完成的,因此,对于.NET的数据库开发来说,MDAC是不可缺少的部分。
AdobeDreamweaver
MicrosoftExpression Web
MicrosoftWebMatrix
Notepad++
EditPlus
2 病历管理系统分析
系统分析是开发一个项目的先决条件,通过系统分析可以很好的了解系统的主体用户的基本需求情况,同时这也是项目的开发的原因。进而对系统开发进行可行性分析,通常包括技术可行性、经济可行性等,可行性分析同时也是从项目整体角度进行的分析。然后就是对项目的具体需求进行分析,分析的手段一般都是通过用户的用例图来实现。下面是详细的介绍。
2.1 可行性分析
(1)技术可行性分析
病历管理系统存储所使用的是SQL Server数据库以及开发中所使用的是visual这些开发工具的使用,能够给我们的编写工作带来许多的便利。系统使用ASP.NET框架进行开发,使系统的可扩展性和维护性更佳,减少ASP.NET配置代码,简化编程代码,目前ASP.NET框架也是很多企业选择的框架之一。
(2)经济可行性分析
在开发病历管理系统中所使用的开发软件像visual开发工具、Tomcat8.0服务器、SQL Server5.7数据库、Photoshop图片处理软件等,这些都是开源免费的,这些环境在学校都进行了系统的学习,自己能够独立操作完成,不需要额外花费,而且系统的开发工具从网上都可以直接下载,因此在经济方面是可行的。
(3)操作可行性分析
此次项目设计的时候我参考了很多类似系统的成功案例,对它们的操作界面以及功能都进行了系统的分析,将众多案例结合在一起,突出以人为本简化操作,所以具有基本计算机知识的人都会操作本项目。因此操作可行性也没有问题。
2.2系统流程分析
业务流程是用一些特定的符合和线条来进行演示用户在使用系统时的过程,在进行系统分析的时候,业务流程可以帮助开发人员更好的理解业务,发现错误,完善系统。
2.2.1 数据增加流程
用户成功登入系统后就能够实现增加数据的操作,增加数据的编号是特定的,系统生成,用户不能随意填写,除了编号以外,其他增加信息用户自己填写,填写后的信息经过系统验证,验证合法通过就显示增加数据成功了,相反的话,就没有增加成功,图2-1显示的就是在增加数据时的流程。
图2-1 数据增加流程图
数据修改时的流程和上面介绍的数据增加时的流程差不多,如图2-2所示。
图2-2 数据修改流程图
如果系统里面存在一些没有用的数据的话,相关的管理人员还可以对这些数据进行删除,图2-3就是数据删除时的流程图。
图2-3 数据删除流程图
2.3 系统功能分析
病历管理系统的设计与实现是为了让使用者更加方便的进行管理员工相关联的一些信息,使用者查找管理的时候能够节省大量的时间和精力,有效减少不必要的查找时间。系统在功能上划分为管理员、护士以及医生这三大部分。
护士:
(1)登录:用户在后台可以通过账号和密码进行登录,用户的账号和密码是由管理员添加的,如果忘记密码可以点击“忘记密码”进行密码找回;
(2)处方信息:点击“处方信息”这个菜单,可以查看到系统中所有添加的处方信息,支持通过处方号或者药品编号或者药品名称对处方信息进行查询,如果想要了解某一处方的详细信息,点击后面的“详情”会进入详情界面,如果想要选择某一处方,点击“开药”按钮,根据提示填写对应的信息,点击“提交”按钮,信息没有错题在数据库就会提交成功,开药成功;
(3)药品仓库:点击“药品仓库”这个按钮可以查看到自己提交的药品仓库,支持通过药品编号或者药品名称或者药品类型进行查询药品仓库,如果想要了解某一药品的详细信息,点击后面的“查看”会进入详情界面;
(4)患者管理:点击“患者管理”这个按钮可以查看到自己提交的所有的患者管理信息,支持通过患者姓名或者患者年龄进行查询患者信息,如果想要添加新的患者信息,点击“添加”按钮然后根据提示输入患者信息,点击“提交”后,在患者管理界面就会显示新增的患者信息,可以点击某一患者管理查看患者信息的详情;
管理员:
(1)登录:管理员在后台可以通过账号和密码进行登录,管理员的账号和密码是在数据库中直接设定的,如果忘记密码可以点击“忘记密码”进行密码找回;
(2)系统用户:管理员可以对系统中所有的用户角色进行管控,包含了管理员以及护士、医生这三种角色,如果需要添加新的用户,点击页面中的“添加”按钮根据提示输入上用户信息,点击“提交”以后在对应的用户界面就可以查看到了,可以点击用户后面的“删除”按钮直接删除某一用户。
(3)患者管理:管理员点击“患者管理”会显示出所有的患者信息,支持输入患者姓名或者患者年龄对患者进行查询,如果想要添加新的患者,点击“添加”按钮,输入相关信息,点击“提交”按钮就可以添加了,同时可以选择某一条患者信息,点击“删除”进行删除,也可以点击后面的“建立病历”按钮对患者的建立病历信息进行维护;
(4)药品仓库:点击“药品仓库”这一按钮可以查看到系统当中所有的药品仓库,支持通过药品编号或者药品名称进行查询药品仓库,如果想要添加新的药品仓库,点击“添加”按钮,然后根据提示填写好药品仓库的具体信息,点击提交所添加的药品仓库在数据库就保存下来了,同时可以点击“开药”按钮,输入开药的医生信息进行提交,也可以选择要删除的药品仓库直接点击“删除按钮”进行药品仓库删除。
(5)患者病历:点击“患者病历”这个按钮可以查看到系统中所有的患者病历信息,支持通过病历号或者患者年龄进行查询患者病历信息,如果想要添加新的患者病历信息,点击“添加”按钮然后根据提示输入患者病历信息,点击“提交”后,在患者病历界面就会显示新增的患者病历信息,可以点击某一患者病历信息查看患者病历信息的详情,也可以直接点击“删除”进行删除患者病历;
(6)处方信息:点击“处方信息”这个按钮可以查看到系统中所有的处方信息,支持通过药品编号或者药品名称或者药品类型进行查询处方信息,如果想要添加新的处方信息,点击“添加”按钮然后根据提示输入处方信息,点击“提交”后,在处方信息界面就会显示新增的处方信息,可以点击某一处方信息查看处方信息的详情,也可以直接点击“删除”进行删除处方信息;
(7)捡药信息:点击“捡药信息”这个按钮可以查看到系统中所有的捡药信息,支持通过处方号或者药品编号进行查询捡药信息,如果想要添加新的捡药信息,点击“添加”按钮然后根据提示输入捡药信息,点击“提交”后,在捡药信息界面就会显示新增的捡药信息,可以点击某一捡药信息查看捡药信息的详情,也可以直接点击“删除”进行删除捡药信息;
2.3.2 非功能性分析
病历管理系统的非功能性需求比如病历管理系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下3-1表格中:
表3-1病历管理系统非功能需求表
安全性 | 主要指病历管理系统数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 | 可靠性是指病历管理系统能够安装用户的指示进行操作,经过测试,可靠性90%以上。 |
性能 | 性能是影响病历管理系统占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 | 用户只要跟着病历管理系统的页面展示内容进行操作,就可以了。 |
可维护性 | 病历管理系统开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
2.4 系统用例分析
通过2.3功能的分析,得出了本病历管理系统的用例图:
护士角色用例如图2-3所示。
图2-3 病历管理系统护士角色用例图
web后台管理上的管理员是维护整个病历管理系统中所有数据信息的。管理员角色用例如图2-4所示。
本章主要通过对病历管理系统的可行性分析、流程分析、功能需求分析、系统用例分析,确定整个病历管理系统要实现的功能。同时也为病历管理系统的代码实现和测试提供了标准。
本章主要讨论的内容包括病历管理系统的功能模块设计、数据库系统设计。
3.1 系统架构设计
本病历管理系统从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。
图3-1病历管理系统架构设计图
表现层(UI):又称UI层,主要完成本病历管理系统的UI交互功能,一个良好的UI可以打打提高用户的用户体验,增强用户使用本病历管理系统时的舒适度。UI的界面设计也要适应不同版本的病历管理系统以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用户进行交互操作时必须要得到与之相符的交互结果,这就要求表现层要与业务逻辑层进行良好的对接。
业务逻辑层(BLL):主要完成本病历管理系统的数据处理功能。用户从表现层传输过来的数据经过业务逻辑层进行处理交付给数据层,系统从数据层读取的数据经过业务逻辑层进行处理交付给表现层。
数据层(DL):由于本病历管理系统的数据是放在服务端的SQL Server数据库中,因此本属于服务层的部分可以直接整合在业务逻辑层中,所以数据层中只有数据库,其主要完成本病历管理系统的数据存储和管理功能。
3.2 系统功能模块设计
在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本病历管理系统中的用例。那么接下来就要开始对本病历管理系统的架构、主要功能和数据库开始进行设计。病历管理系统根据前面章节的需求分析得出,其总体设计模块图如图3-2所示。
图3-2 病历管理系统功能模块图
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
3.3.1 数据库概念结构设计
下面是整个病历管理系统中主要的数据库表总E-R实体关系图。
图3-6 病历管理系统总E-R关系图
通过前面E-R关系图可以看到项目需要创建很多个数据表。以下是项目中的主要数据库表的关系模型:
表department (科室)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | department_id | int | 10 | 0 | N | Y | 科室ID | |
2 | department | varchar | 64 | 0 | Y | N | 科室 | |
3 | department_introduction | longtext | 2147483647 | 0 | Y | N | 科室介绍 | |
4 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
5 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表doctor (医生)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | doctor_id | int | 10 | 0 | N | Y | 医生ID | |
2 | doctors_name | varchar | 64 | 0 | Y | N | 医生姓名 | |
3 | department | varchar | 64 | 0 | Y | N | 科室 | |
4 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
5 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表drug_warehouse (药品仓库)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | drug_warehouse_id | int | 10 | 0 | N | Y | 药品仓库ID | |
2 | drug_no | varchar | 64 | 0 | N | N | 药品编号 | |
3 | drug_name | varchar | 64 | 0 | Y | N | 药品名称 | |
4 | drug_type | varchar | 64 | 0 | Y | N | 药品类型 | |
5 | drug_specifications | varchar | 64 | 0 | Y | N | 药品规格 | |
6 | inventory_quantity | int | 10 | 0 | Y | N | 0 | 库存数量 |
7 | sales_unit_price | int | 10 | 0 | Y | N | 0 | 销售单价 |
8 | drug_details | longtext | 2147483647 | 0 | Y | N | 药品详情 | |
9 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表hits (用户点击)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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: |
表medication_picking_information (捡药信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | medication_picking_information_id | int | 10 | 0 | N | Y | 捡药信息ID | |
2 | prescription_number | varchar | 64 | 0 | N | N | 处方号 | |
3 | drug_no | varchar | 64 | 0 | Y | N | 药品编号 | |
4 | drug_name | varchar | 64 | 0 | Y | N | 药品名称 | |
5 | drug_type | varchar | 64 | 0 | Y | N | 药品类型 | |
6 | drug_specifications | varchar | 64 | 0 | Y | N | 药品规格 | |
7 | sales_unit_price | int | 10 | 0 | Y | N | 0 | 销售单价 |
8 | doctor | int | 10 | 0 | Y | N | 0 | 医生 |
9 | responsible_nurse | int | 10 | 0 | Y | N | 0 | 负责护士 |
10 | number_of_prescriptions | int | 10 | 0 | Y | N | 0 | 开药数量 |
11 | drug_amount | varchar | 64 | 0 | Y | N | 药品金额 | |
12 | prescription_date | date | 10 | 0 | Y | N | 开药日期 | |
13 | medical_record_number | varchar | 64 | 0 | Y | N | 病历号 | |
14 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
16 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表nurse (护士)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | nurse_id | int | 10 | 0 | N | Y | 护士ID | |
2 | name_of_nurse | varchar | 64 | 0 | Y | N | 护士姓名 | |
3 | department | varchar | 64 | 0 | Y | N | 科室 | |
4 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
5 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表patient_management (患者管理)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | patient_management_id | int | 10 | 0 | N | Y | 患者管理ID | |
2 | patient_name | varchar | 64 | 0 | Y | N | 患者姓名 | |
3 | patient_age | int | 10 | 0 | Y | N | 0 | 患者年龄 |
4 | patient_gender | varchar | 64 | 0 | Y | N | 患者性别 | |
5 | patient_medical_history | varchar | 64 | 0 | Y | N | 患者病史 | |
6 | contact_number | varchar | 16 | 0 | Y | N | 联系号码 | |
7 | patients_address | varchar | 64 | 0 | Y | N | 患者住址 | |
8 | patient_condition | text | 65535 | 0 | Y | N | 患者状况 | |
9 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表patient_medical_record (患者病历)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | patient_medical_record_id | int | 10 | 0 | N | Y | 患者病历ID | |
2 | medical_record_number | varchar | 64 | 0 | N | N | 病历号 | |
3 | patient_name | varchar | 64 | 0 | Y | N | 患者姓名 | |
4 | patient_age | int | 10 | 0 | Y | N | 0 | 患者年龄 |
5 | patient_gender | varchar | 64 | 0 | Y | N | 患者性别 | |
6 | contact_number | varchar | 16 | 0 | Y | N | 联系号码 | |
7 | patient_medical_history | varchar | 64 | 0 | Y | N | 患者病史 | |
8 | patient_medical_record | varchar | 255 | 0 | Y | N | 患者病历 | |
9 | medication_record | longtext | 2147483647 | 0 | Y | N | 用药记录 | |
10 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表prescription_information (处方信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | prescription_information_id | int | 10 | 0 | N | Y | 处方信息ID | |
2 | prescription_number | varchar | 64 | 0 | Y | N | 处方号 | |
3 | drug_no | varchar | 64 | 0 | Y | N | 药品编号 | |
4 | drug_name | varchar | 64 | 0 | Y | N | 药品名称 | |
5 | drug_type | varchar | 64 | 0 | Y | N | 药品类型 | |
6 | drug_specifications | varchar | 64 | 0 | Y | N | 药品规格 | |
7 | sales_unit_price | int | 10 | 0 | Y | N | 0 | 销售单价 |
8 | doctor | int | 10 | 0 | Y | N | 0 | 医生 |
9 | responsible_nurse | int | 10 | 0 | Y | N | 0 | 负责护士 |
10 | number_of_prescriptions | int | 10 | 0 | Y | N | 0 | 开药数量 |
11 | drug_amount | varchar | 64 | 0 | Y | N | 药品金额 | |
12 | prescription_date | date | 10 | 0 | Y | N | 开药日期 | |
13 | medical_record_number | varchar | 64 | 0 | Y | N | 病历号 | |
14 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
16 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表upload (文件上传)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 文件类型 |
表user (用户账户:用于保存用户登录信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 创建时间: |
表user_group (用户组:用于用户前端身份和鉴权)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
3.4本章小结
整个病历管理系统的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。
4.1登录模块
管理员、医生和护士在登录界面输入账号+密码,点击“登录”按钮,系统在用户数据库表中会对管理员和护士的账号进行匹配,账号+密码正确的话,就会登录到系统中各个用户的主管理界面,否则提示对应的信息,返回到登录的界面,其主界面展示如下图4.1所示。
图4.1 登录界面图
4.2科室模块
管理员和护士点击“科室”这个按钮可以查看到系统中的科室信息,支持通过科室进行查询科室信息,如果想要添加新的科室信息,点击“添加”按钮然后根据提示输入科室信息,点击“提交”后,在科室界面就会显示新增的科室信息,可以点击某一科室信息查看科室信息的详情,也可以直接点击“删除”进行删除科室。界面如下图4.2所示。
图4.2科室界面图
4.3患者管理模块
点击“患者管理”这个按钮可以查看到自己提交的患者管理,支持通过患者姓名或者患者性别进行查询患者管理,如果想要了解某一患者的详细信息,点击后面的“查看”会进入详情界面,也支持对自己选择的患者进行删除;医生和管理员可以对护士提交的患者进行病历添加,选择某一患者,点击后面的“病历”按钮,根据提示输入对应的信息,点击“提交”后,病历就录入成功了。界面如下图4.3所示。
图4.3 患者管理界面图
4.4药品仓库模块
点击“药品仓库”这个菜单,可以查看到系统中所有添加的药品仓库,支持通过药品编号或者药品名称或者药品类型对药品仓库进行查询,如果想要了解某一药品的详细信息,点击后面的“详情”会进入详情界面,医生和管理员如果想要选择某一药品仓库,点击“开药”按钮,根据提示填写对应的信息,点击“提交”按钮,信息没有错误在数据库就会提交成功,开药成功。界面如下图4.4所示。
图4.4 药品仓库界面图
4.5患者病历模块
点击“患者病历”这个按钮可以查看到系统中的患者病历信息,支持通过病历号或者患者姓名或者患者年龄进行查询患者病历信息,如果想要添加新的患者病历信息,点击“添加”按钮然后根据提示输入患者病历信息,点击“提交”后,在患者病历界面就会显示新增的患者病历信息,可以点击某一患者病历信息查看患者病历信息的详情,也可以直接点击“删除”进行删除患者病历。界面如下图4.4所示。
图4.5患者病历界面图
4.6捡药信息模块
点击“捡药信息”这个菜单,可以查看到系统中所有添加的捡药信息,支持通过处方号或者药品编号或者药品名称对捡药信息进行查询,只有管理员用户可以添加新的捡药信息,点击“添加”按钮,根据提示输入捡药信息,点击“提交”按钮,新的捡药信息就在系统中显示出来了,也可以对添加的捡药信息进行删除。界面如下图4.6所示。
4.7处方信息模块
点击“处方信息”这个菜单,可以查看到系统中所有添加的处方信息,支持通过处方号或者药品编号或者药品名称或者药品类型对处方信息进行查询,只有管理员用户可以添加新的处方信息,点击“添加”按钮,根据提示输入处方信息,点击“提交”按钮,新的处方信息就在系统中显示出来了,也可以对添加的处方信息进行删除。界面如下图4.7所示。
图4.7 处方信息界面图
5系统测试
系统开发的最后一个步骤就是系统测试,系统测试也是整个系统十分重要的一个环节,测试的好坏关系到产品的发展。用户对软件的质量、性能和可靠性等需求就要通过测试来实现。测试过程要必须遵循严谨性、完善性、规范性的原则,测试的主要目的就是看看在系统运行中,是否会出现bug,然后对出现的bug进行调试,直到程序完美运行。但是软件的测试只能尽可能的减少bug,理论上来说是无法达到消除bug。但是bug越少,系统出错的几率就越低,用户使用起来也更方便、更安全。
近年来,软件包含测试从现在的检验当中来看,系统接近预期目标可能出现的问题,并对这些错误做出相应的修正,假如我们不进行早期的测试错误就会延续下去,最后所做出的成品就会有很大的困难。
我们要在这个测试的过程当中找出错误。测试成软件开发的主要一部分,自从有了程序的设计那天开始,它就成为了重要的组成部分。经过统计来看,软件测试可以占据这个系统45%的工作量,而在软件开发的成本当中,对于测试成本来说它包含了很多的测试工作。每个程序测试时都会出现和遇到错误。在整个程序的开发过程当中,人为去查找错误是非常复杂和困难的,所以我们一般都会找一些测试的工具来进行测试。
5.1系统测试的意义
随着现代信息的快速发展,在社会各大领域中已经都开始应用网络信息技术,在应用网络技术的同时人们也开始把软件的质量问题作为了一个重要焦点来关注,因为一个软件的好与坏它决定着这个系统在市场上的生存,所以我们必须要把软件质量来做好,这样才有一定的生存能力。对于用户来说它们首先选用的都是保证这个系统软件的质量问题,因为一个系统的软件质量决定着用户在后期上成本经济的问题。
5.2 测试方法
黑盒测试又被人们称作为功能测试,通常是在程序的接口来做一些测试的方法,它一般包括对程序的功能和使用的方法来做出一些数据的接受和输出,同时还可以做出正确的输出信息,并保证与外部信息的完整性。
白盒测试通常被人们称作为结构测试,在整个程序的结构和处理当中它是由程序当中的逻辑测试和检验程序来完成一些正确的工作。
具体的功能测试它是包括:系统的适用性、准确性、安全性等功能测试。
5.3测试分析
基于病历管理系统满足相关信息的管理需求,在设计时借鉴了国内外优秀网站的优点,从界面到系统设计都保证了管理员以及用户能够方便操作。系统的主要特点和优点归纳如下:
(1)本系统用的移置性和针对性都比较高,因为针对性高可以提供更好的服务而移置性可以在多个系统上运行,更给用户带来了极大的方便。
(2)该基于病历管理系统内容全面,管理方便可以及时的全面的处理各种错误,异常,这样避免了很多因用户的马虎操作而出现的失误,其操作方便,用户界面友好,能够上网的人都可以很好的进行操作。
经过对上述的测试结果分析,所有基本功能齐全,操作简单,系统运行性能良好,系统安全可靠,能促进基于病历管理系统的发展,发展前景广阔。
结论
至此,病历管理系统已经结束,在开发前做了许多的准备,在本系统的设计和开发过程中阅览和学习了许多文献资料,从中我也收获了很多宝贵的方法和设计思路,对系统的开发也起到了很重要的作用,系统的开发技术选用的都是自己比较熟悉的,比如Web、ASP.NET、C#技术、SQL Server,这些技术都是在以前的学习中学到了,其中许多的设计思路和方法都是在以前不断地学习中摸索出来的经验,其实对于我们来说工作量还是比较大的,但是正是由于之前的积累与准备,才能顺利的完成这个项目,由此看来,积累经验跟做好准备是十分重要的事情。
当然在该系统的设计与实现的过程中也离不开老师以及同学们的帮助,正是因为他们的指导与帮助,我才能够成功的在预期内完成了这个系统。同时在这个过程当中我也收获了很多东西,此系统也有需要改进的地方,但是由于专业知识的浅薄,并不能做到十分完美,希望以后有机会可以让其真正的投入到使用之中。
[1]李冰.基于电子病历的医疗质量管理系统设计与应用[J].电子元器件与信息技术,2023,7(01):208-212+216.DOI:10.19772/j.cnki.2096-4455.2023.1.048.
[2]严卫萍.电子病历管理系统的优势及发展对策[J].中国卫生标准管理,2023,14(01):11-14.
[3]邹贵朋,马建荣,白利军,孙会明. 基于人工智能的电子病历管理系统[P]. 陕西省:CN115565633A,2023-01-03.
[4]刘菽群.基于云计算技术的电子病历管理系统设计[J].无线互联科技,2022,19(03):61-62.
[5]刘卫兰.基于J2EE的医院病历信息管理系统研究[J].电脑编程技巧与维护,2021(12):79-80+96.DOI:10.16184/j.cnki.comprg.2021.12.029.
[6]马中红, 祥和盛院前急救病历数据电子管理分析系统V3.0. 河南省,郑州祥和盛电子技术有限公司,2021-10-18.
[7]涂银莹.基于结构化电子病历的医疗质量管理系统建设成效[J].电子技术与软件工程,2021(18):172-173.
[8]陈颖.门诊麻醉药品电子专用病历管理系统的建立与应用[J].中医药管理杂志,2021,29(17):166-167.DOI:10.16690/j.cnki.1007-9203.2021.17.080.
[9]闫鸣飞.关于医院信息管理系统中电子病历系统的应用分析[J].电脑知识与技术,2021,17(18):43-44.DOI:10.14004/j.cnki.ckt.2021.1654.
[10]宁海涛.基于ASP.NET技术的高校办公室文档自动化管理方法[J].信息与电脑(理论版),2020,32(19):10-11.
[11]王德安,刘雁南.基于jQuery+ASP.NET技术的数据表基本操作方法研究与实现[J].电脑编程技巧与维护,2020(07):72-74+79.DOI:10.16184/j.cnki.comprg.2020.07.025.
[12]. A Development of Medical Records Management System to Health Care Decision Makers using Cloud Technologies[J]. International Journal of Engineering and Advanced Technology,2020,9(4).
[13]石磊.基于ASP.NET技术的教工考评系统[J].计算机与网络,2020,46(06):70-72.
[14]Joseph Bitrus,A. Wadzani,Maigana Ngubdo,E. Agu. Design and Implementation of a Secured Web based Medical Record Management System: A Case Study of Federal University Wukari (FUW) Clinic[J]. International Journal of Computer Applications,2020,177(41).
[15]苏峰, 内科专业电子病历管理系统. 河南省,中国人民解放军陆军第八十三集团军医院,2019-10-22.
[16]祁由波. 某医院病历管理系统的设计与实现[D].电子科技大学,2019.DOI:10.27005/d.cnki.gdzku.2019.000379.
[17]Muhammad Nabil Mohd Warid,Eko Supriyanto,Azli Yahya,Mohd Nizam Mat Bah,Ngim Chin Fang. Online framework for thalassemia medical record management system[J]. AIP Conference Proceedings,2019,2092(1).
[18]马超,沙金涛.基于ASP.NET技术的数值风洞实验平台开发[J].教育教学论坛,2018(35):277-278.
[19]严春风.基于asp.net技术的医院预约挂号系统的实现[J].电脑知识与技术,2018,14(12):72-73.DOI:10.14004/j.cnki.ckt.2018.1324.
致 谢
逝者如斯夫,不舍昼夜。转眼间,大用户用户活便已经接近尾声,人面对着离别与结束,总是充满着不舍与茫然,我亦如此,仍记得那年秋天,我迫不及待的提前一天到了学校,面对学校巍峨的大门,我心里充满了期待:这里,就是我新生活的起点吗?那天,阳光明媚,学校的欢迎仪式很热烈,我面对着一个个对着我微笑的同学,仿佛一缕缕阳光透过胸口照进了我心里,同时,在那天我认识可爱的室友,我们携手共同度过了这难忘的两年。如今,我望着这篇论文的致谢,不禁又要问自己:现在,我们就要说再见了吗?
感慨莫名,不知所言。遥想当初刚来学校的时候,心里总是想着工科学校会过于板正,会缺乏一些柔情,当时心里甚至有一点点排斥,但是随着我对学校的慢慢认识与了解,我才认识到了她的美丽,她的柔情,并且慢慢的喜欢上了这个校园,但是时间太快了,快到我还没有好好体会她的美丽便要离开了,但是她带给我的回忆,永远不会离开我,也许真正离开那天我的眼里会满含泪水,我不是因为难过,我只是想将她的样子映在我的泪水里,刻在我的心里。最后,感谢我的老师们,是你们教授了我们知识与做人的道理;感谢我的室友们,是你们陪伴了我如此之久;感谢每位关心与支持我的人。
少年,追风赶月莫停留,平荒尽处是春山。
请点赞❤关注+私信博主,免费领取项目源码