1、医院门诊预约挂号系统毕业论文 毕 业 论 文 基于B/S模式的医院门诊预约挂号系统的设计与实现Design and implementation of system which out-patient appointments registered by hospital based on B/S schema基于B/S模式的医院门诊预约挂号系统的设计与实现摘要 门诊挂号一直是困扰医院提高服务质量的一个重要环节,特别是医疗技术水平高、门诊量大的综合型大医院,门诊拥挤是一种普遍的现象。因此,本论文提出了医院网络预约挂号系统,求医者只需坐在家中,轻松的点几下鼠标,就可以挂上医院门诊号,可以做到“足
2、不出户选医生”,这样能够有效减少求医者的等待时间,使患者充分了解医院及相关医生的基本情况。该系统能利用有限的资源和空间为患者提供更优质的服务。 本文描述了基于.NET技术医院网络预约挂号系统的需求分析、系统设计、系统实现的过程。在对系统的需求分析过程中,首先对医院门诊管理系统的发展现状进行了简单介绍,并重点对目前医院门诊挂号模式进行了分析、比较,从而确定了本文的研究对象为网络预约挂号模式。在对医院门诊挂号的调研基础上,分析了用户对业务流程、系统功能等方面的需求。该系统采用ASP.NET技术、XML技术、ADO.NET数据库访问等技术,并对这些相关理论和技术,进行了详细描述。随后,本文详细叙述了
3、医院预约挂号系统的设计与实现,并对实现过程中的一些技术难点和关键技术做了深入的探讨。接着,从系统安全性出发,阐述了该系统的安全性设计,并给出了该系统的性能测试的方法。 本系统具有较强的实用性,已达到了预期的目标,取得了令人满意的效果,但仍存在一些不足和值得深入研究的地方。同时随着.NET技术的不断发展,许多新的设计思路将会在本系统中得到应用。关键词:ASP.NET, SQL Server, 门诊挂号AbstractHospital outpatient registration has been plagued improve service quality is an important p
4、art, especially the high level of medical technology, a comprehensive outpatient major hospitals in large, crowded clinics is a common phenomenon. Therefore, this paper proposes an appointment the hospital network registration system, doctor who just sit at home, relaxed a few mouse clicks to hospit
5、al out-patient number can be hung up, be able to stay at home election doctor, this can effective in reducing the doctors waiting time, so that patients fully understand the basic hospital and related medical conditions. The system can use the limited resources and space for patients to provide bett
6、er service. This paper describes on. NET technology hospital network appointment registration system needs analysis, system design, system implementation process. The demand on the system analysis process, the first hospital outpatient management system development status briefly, with emphasis on t
7、he hospital outpatient registration patterns are analyzed, compared, to determine the object of study in this paper for the network mode appointment registration. In the investigation of hospital out-patient registration based on the analysis of the users of business processes, system functions and
8、other needs. The system uses ASP.NET technology, XML technologies, ADO.NET database access and other technologies, and these theories and techniques are described in detail. Subsequently, the paper describes the hospital appointment system design and implementation of registration, and the realizati
9、on of some of the technical difficulties and the key technologies are discussed in depth. Then, starting from the security of the system, describes the security of the system design, and gives the performance of the system testing. The system is practical, has reached the expected goal and achieved
10、satisfactory results, but there are still some shortcomings and areas worthy of further study. At the same time as the. NET technology continues to evolve, many new design ideas will be applied in this system.朗读显示对应的拉丁字符的拼音字典 - 查看字典详细内容Key words: ASP.NET, SQLServer, Outpatient目录第一章 绪论61.1 论文研究背景与意义6
11、1.2 国内外发展现状71.3 本文结构安排7第二章 相关技术及工具介绍8概念简介9概述9表示层10业务逻辑层10数据层10优点11缺点11规则11与MVC的区别11第三章 系统分析12系统功能描述12在线预约17查看自己的预约信息21用户注册及信息修改22密码修改25安全退出25添加专家26门诊管理27用户查看30预约管理30网站公告版内容修改30第四章 结论31源码及文档下载地址:.Net信息交流平台系统第一章 绪论1.1 论文研究背景与意义随着经济与科学技术的高速发展,信息化的进程不断加快。随着计算机性能不断提高,价格不断下降,计算机已在医院医疗,教学,科研,管理的各个方面得到越来越广泛
12、的应用。然而,我国还有部分医院的信息处理停留在手工方式,劳动强度大且工作效率低,医师护士和管理人员的大量时间都消耗在事务性工作上,病人排队等候时间长,辗转过程多,影响了医疗的秩序。计算机化的医院信息系统已成为现代化医院运营必不可少的基础设施与技术支撑环境。门诊挂号系统是整个医院管理信息系统的第一个窗口,是病人到医院就诊要做的第一项工作。它用于收集病人的信息,协调科室医生管理,控制各科室的流量等等。12网上预约挂号系统是一种基于互联网的新型挂号系统,是卫生信息化建设的最基础项目之一。利用该预约挂号系统,用户就可以在网上预约医院的专家、专科号,而无须再受排队之苦。它能更好的改善就医环境,简化就医环
13、节,节约就医时间,真正体现了以病人为中心,一切从方便患者出发,符合当今医院人性化温馨服务的理念。目前,门诊一直是困扰医院提高服务质量的一个复杂环节,特别是医疗水平高、门诊量大的医院,而造成门诊质量难以提高的因素主要有两方面:一是集中式挂号(现在流行的分层挂号只是相对而言一个范围较小的集中式挂号),就诊人员流量不均、具有不确定性,有明显的就诊高峰和低谷(表现在整个医院不同门诊时间段及同科室的不同时间段)。高峰期病人挂号排队长,就诊时间长,医生熟人插号现象,环境拥挤混乱,医生问诊时间短、不仔细、态度差。而低谷期,医生无病人看、溜号,医院资源浪费。二是专家号(特别是名专家号)难挂,出现倒号、炒号现象
14、,严重损害病人利益,影响到医院的声誉。而采用网上预约挂号,可有效的解决这一现象,还通过有效的身份验证,杜绝倒、炒专家号的现象,提高医院门诊服务质量,取得良好的社会效益和经济效益。此外,病人到医院就诊前对医院的相关信息了解不多,对所要挂的专科医生的情况又不太了解,只能凭经验和印象进行选择,具有较大的盲目性。而当医院开通网上挂号预约服务以后,求医者只需坐在家中,轻点儿下鼠标,就可以挂上医院专家门诊号,可以做到“足不出户选医生”。网上预约正悄然改变着都市求医者的看病观念。拥有相对固定的个人医生和习惯。预约看病,将不再遥远,所以应用必将越来越广泛。1.2 国内外发展现状随着互联网络的迅猛发展,Inte
15、rnet用户已呈几何级数增长,目前已经有很多医院投入使用网上挂号系统。据了解,预约挂号在国外颇为普及。加拿大籍医务工作者张团女士告诉记者,在西方国家,病人看病都需要事先进行预约。随着预约挂号的深入推广,国内越来越多的医院也意识到预约服务在节约看病时间、分流患者、减轻医院压力上的作用。据了解,尽管存在很多困难,但全国各地的医院在尝试预约挂号的实践中还是提供了很多有益的做法。广东省人民医院早在2004年就采取了一套相对完整的预约挂号体系,其三种预约方式,按照受欢迎程度排名依此为:电话、现场、网络,分别占到了预约挂号中 50%、40%、10%。在福建,全省范围内拨打12320海西健康热线电话,即可预
16、约到福建省立医院等5家医院的专家号,只按市话费标准收费,不收取任何信息服务费。记者在北京地区通过拨打该电话,成功预约到福建省立医院一位内科专家。在北京,据解放军总医院办公室刘泉向记者介绍,解放军总医院(三一医院)于前不久专门开通了夜间门诊电话预约挂号66936619(不收预约费),可以毫不费力地约到各科室的专家,开通不久即见成效,目前已经成功分流了约1/3的患者。此外医院还开通手机挂号功能,患者只需要发送短信就可以进行预约挂号。患者根据系统提示,输入姓名、性别、年龄、住址、付费方式、就诊卡号、预约时间、预约科室、预约项目、预约医师等内容,系统就会根据各门诊科室提供的具体情况,安排给患者合适的就
17、诊排号位或挂号建议。在患者就诊前一天、就诊当天、就诊前一小时、就诊前5分钟,系统还会以短信的形式多次通知患者。患者如果有事无法就诊,通过发送短信,经过医师或护士同意,还可二次预约就诊时间。广东省卫生厅副厅长廖新波认为,预约是提高医院知名度、提高医生知名度、提高医院效益和符合就诊者意愿的工作,预约工作做得好,可以实现医患双方的共赢。对于目前预约和排队并存并出现矛盾的现状,他建议,医院要把每天的预约单按照诊室号夹在门口,目的是让就诊者知道自己处于这位医生接诊序列的什么位置,同时也宣示医院“公平对待每一个就诊者”的服务理念。医院管理者要确立预约是门诊挂号的主渠道的理念,开始从部分开放预约诊号到全面开
18、放,最后逐步实行全号源的免费预约。131.3 本文结构安排为了使您在短时间内了解该论文,特介绍论文内容如下:第一章 绪论 介绍论文的选题背景、发展现状、所做工作及论文的结构安排。第二章相关技术及工具介绍,介绍了本设计作品所使用到的技术,工具及数据库第三章 系统需求分析 主要对开发网站进行需求分析,逻辑模型设计,概念模型设计,数据库的建立与连接。及相关功能代码介绍第四章 总结 对整个设计过程的总结第二章 相关技术及工具介绍系统基于Windows平台,采用ASP.NET C#语言编程和SQLServer数据库技术,界面使用VS2008设计动态网页。系统包含前台操作与后台管理,前台用户可以进行专家查
19、看、预约查询与修改、个人信息修改、密码修改等操作。后台包括用户管理、专家管理、预约管理及系统管理等功能。界面简单,操作使用方便。硬件要求: 最低配置要求如下:386DX机型; 1GB硬盘容量;16MB内存;640480显示卡 及VGA 彩显; 中文Windows98操作系统。人机界面友好,适用于大部分人群,哪怕是计算机知识少的人群。工作人员只须按时对系统进行更新、维护便可保证预约的有效性、可靠性。本系统采用三层架构来设计的,如下图三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的
20、目的即为了“高内聚,低耦合”的思想。概念简介、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。 、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。 、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。概述在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层(又或成为领域层)、表示层。 三层结构原理: 3个层次中,系统主要功能和业务逻辑都在业务逻辑层进行处理。 所谓三层体系结构,是在客户端与数据库
21、之间加入了一个“中间层”,也叫组件层。这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才是三层体系结构,三层是指逻辑上的三层,即使这三个层放置到一台机器上。 三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交互。 表示层位于最外层(最上层),离用户最近。用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。 业务逻辑层业务逻辑层(Business Logic Layer)无疑是系统架构中体现
22、核心价值的部分。它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,也即是说它是与系统所应对的领域(Domain)逻辑有关,很多时候,也将业务逻辑层称为领域层。例如Martin Fowler在Patterns of Enterprise Application Architecture一书中,将整个架构分为三个主要的层:表示层、领域层和数据源层。作为领域驱动设计的先驱Eric Evans,对业务逻辑层作了更细致地划分,细分为应用层与领域层,通过分层进一步将领域逻辑与领域逻辑的解决方案分离。 业务逻辑层在体系架构中的位置很关键,它处于数据访问层与表示层中间,起到了数据交
23、换中承上启下的作用。由于层是一种弱耦合结构,层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有任何影响。如果在分层设计时,遵循了面向接口设计的思想,那么这种向下的依赖也应该是一种弱依赖关系。因而在不改变接口定义的前提下,理想的分层式架构,应该是一个支持可抽取、可替换的“抽屉”式架构。正因为如此,业务逻辑层的设计对于一个支持可扩展的架构尤为关键,因为它扮演了两个不同的角色。对于数据访问层而言,它是调用者;对于表示层而言,它却是被调用者。依赖与被依赖的关系都纠结在业务逻辑层上,如何实现依赖关系的解耦,则是除了实现业务逻辑之外留给设计师的任务。 数据层数据
24、访问层:有时候也称为是持久层,其功能主要是负责数据库的访问,可以访问数据库系统、二进制文件、文本文档或是XML文档。 简单的说法就是实现对数据表的Select,Insert,Update,Delete的操作。如果要加入ORM的元素,那么就会包括对象和数据表之间的mapping,以及对象实体的持久化。 优点1、开发人员可以只关注整个结构中的其中某一层; 2、可以很容易的用新的实现来替换原有层次的实现; 3、可以降低层与层之间的依赖; 4、有利于标准化; 5、利于各层逻辑的复用。 缺点1、降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却
25、必须通过中间层来完成。 2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。 规则三层结构的程序不是说把项目分成DAL, BLL, WebUI三个模块就叫三层了, 下面几个问题在你的项目里面: 1. UILayer里面只有少量(或者没有)的SQL语句或者存储过程调用, 并且这些语句保证不会修改数据? 2. 如果把UILayer拿掉, 你的项目还能在Interface/API的层次上提供所有功能吗? 3. 你的DAL可以移植到其他类似环境的项目吗? 4. 三个模块, 可以
26、分别运行于不同的服务器吗? 如果不是所有答案都为YES, 那么你的项目还不能算是严格意义上的三层程序. 三层程序有一些需要约定遵守的规则: 1. 最关键的, UI层只能作为一个外壳, 不能包含任何BizLogic的处理过程 2. 设计时应该从BLL出发, 而不是UI出发. BLL层在API上应该实现所有BizLogic, 以面向对象的方式 3. 不管数据层是一个简单的SqlHelper也好, 还是带有Mapping过的Classes也好, 应该在一定的抽象程度上做到系统无关 4. 不管使用COM+(Enterprise Service), 还是Remoting, 还是WebService之类的
27、远程对象技术, 不管部署的时候是不是真的分别部署到不同的服务器上, 最起码在设计的时候要做这样的考虑, 更远的, 还得考虑多台服务器通过负载均衡作集群 所以考虑一个项目是不是应该应用三层/多层设计时, 先得考虑下是不是真的需要? 实际上大部分程序就开个WebApplication就足够了, 完全没必要作的这么复杂. 而多层结构, 是用于解决真正复杂的项目需求的。 与MVC的区别MVC(模型Model-视图View-控制器Controller)是一种设计模式,我们可以用它来创建在域对象和UI表示层对象之间的区分。 同样是架构级别的,相同的地方在于他们都有一个表现层,但是他们不同的地方在于其他的两
28、个层。 在三层架构中没有定义Controller的概念。这是我认为最不同的地方。而MVC也没有把业务的逻辑访问看成两个层,这是采用三层架构或MVC搭建程序最主要的区别。当然了。在三层中也提到了Model,但是三层架构中Model的概念与MVC中Model的概念是不一样的,“三层”中典型的Model层是以实体类构成的,而MVC里,则是由业务逻辑与访问数据组成的。第三章 系统分析实施医院信息化建设以后,我们要通过互联网和通讯系统选择医院、选择医生,进行网上挂号、预约就诊,从而减少病人的排队候诊时间;通过屏幕显示病人就诊、检查和取药的时间,病人可以坐着等候;通过自动划价收费系统和电子查询系统,使病人
29、对医院收费放心等等。据了解,广东卫生信息化建设令人关注,目前正积极推行“电子病历”医院试点工作。以后老百姓到医院看病,可望告别反复填资料、跑上跑下递药方、排队等化验单结果的奔波劳累,只需“网”轻松搞定。在具体的需求驱动下,我们采用计算机技术开发网上预约挂号系统。系统功能描述通过对用户需求的分析,本系统的功能主要包括两块,前台用户操作及后台管理。操作流程如下图:门诊预约挂号日期用户时间地址证件注册时间电话性别登陆名姓名密码门诊医生名诊名称姓名年龄性别证件健康证电话地址照片登陆注册管理员后台ER图管理员门诊专家管理门诊管理用户管理预约管理系统管理查看专家信息删除专家信息修改专业信息新增专家信息查看
30、门诊信息删除门诊信息修改门诊信息新增门诊信息用户查看专家预约记录预约记录查看预约查看公告版块挂号须知数据库设计与实现管理员表设计:专家医生表:公告和须知表:门诊表:用户表:预约表:祥细功能与实现如下:用户操作界面功能主要有:在线预约、预约查询、用户信息修改、密码修改等功能设置。后台操作界面主要功能有:用户管理,预约查询,专家管理,门诊管理,公告版和挂号简介管理在线预约预约须分为五个步骤来完成全程都用的Session来保存用户所选择的数据,第一步选择预约门诊,如下图一:图一第二步对日期的选择如下图二图二第三步专家选择,此步会根据之前选择的门诊来查询该门诊下面所有的专业,非本门诊的专家不会显示在内
31、,如图三图三第四步选择预约时间,为了解决同一时间同时存在同一个专家预约问题,本步骤在显示时间的同时经过一系列数据库的查询,同一时间同一专家的时间为禁用状态,并显示“已约”字样,如下图四图四主要实现代码如下:/ / 时间绑定 / protected void Bind() DataTable dt = new DataTable(); DataColumn dc = new DataColumn(); dc.ColumnName = time; dt.Columns.Add(dc); DateTime swstart = Convert.ToDateTime(string.Format(0 1,
32、 sqlDate, 08:00);/上班时间 DateTime swend = Convert.ToDateTime(string.Format(0 1, sqlDate, 11:30);/午休时间 DateTime xwstart = Convert.ToDateTime(string.Format(0 1, sqlDate, 13:00);/下午上班时间 DateTime xwend = Convert.ToDateTime(string.Format(0 1, sqlDate, 17:30);/下班时间 for (DateTime time = swstart; time = swend
33、; time = time.AddMinutes(10)/逻辑每10分钟 DataRow dr = dt.NewRow(); dr0 = time.ToShortTimeString(); dt.Rows.Add(dr); for (DateTime time = xwstart; time 0) lbtn.Enabled = false;/禁用按钮 lbtn.Text = 已约;/改成字样 第五步,付款完成预约步骤如图五图五查看自己的预约信息此功能汇总了用户的预约信息,包括:门诊号、专家、预约日期,同时还可以对预约进行取消。主要代码如下:protected void Bind() strin
34、g key=User_ID=+PageBase.GetSession().Id; AspNetPager1.RecordCount = YuYueManager.GetCount(key); GridView1.DataSource = YuYueManager.Get(AspNetPager1.StartRecordIndex - 1, AspNetPager1.PageSize, key); GridView1.DataBind(); protected void Del(object sender, CommandEventArgs e) int id = Convert.ToInt32
35、(e.CommandArgument.ToString(); YuYueManager.Del(id); Bind(); protected void AspNetPager1_PageChanged(object sender, EventArgs e) Bind(); 用户注册及信息修改可以对自己的信息进行修改,如:姓名、密码、性别、身份证号、电话,地址等信息。本系统页面注册和修改资料调用的同一页面,并智能判断是修改还是删除,根据请求来显示不同的界面主要代码如下:int id = 0; protected void Page_Load(object sender, EventArgs e)
36、 id = PageBase.GetSession() = null ? 0 : PageBase.GetSession().Id; if (id != 0&!IsPostBack) reg.Visible = false; pass1.Visible = pass2.Visible =Button2.Visible= false; TextBox1.ReadOnly = TextBox4.ReadOnly = true; Button1.Text = 修改资料; User u=UserManager.Get(id); TextBox1.Text = u.LoginName; TextBox4
37、.Text = u.Name; TextBox5.Text = u.Mid; TextBox6.Text = u.Tel; TextBox7.Text = u.Address; if (u.Sex = 男) RadioButton1.Checked = true; else RadioButton2.Checked = true; / / 注册和修改个人信息 / / / protected void Button1_Click(object sender, EventArgs e) if (id = 0 & UserManager.Get(TextBox1.Text) != null) Pag
38、eBase.alert(Page, 该登陆名已经被使用); return; User u = new User(); u.LoginName = TextBox1.Text; u.Pass = TextBox2.Text; u.Name = TextBox4.Text; u.Mid = TextBox5.Text; u.Tel = TextBox6.Text; u.Address = TextBox7.Text; u.Sex = RadioButton1.Checked ? 男 : 女; string mgf = string.Empty; if (id = 0) UserManager.Ad
39、d(u, ref mgf); else UserManager.Edit(id, u, ref mgf); Page.ClientScript.RegisterClientScriptBlock(GetType(), key, string.Format(alert(0);location.href=1;, mgf, Default.aspx), true); return; protected void Button3_Click(object sender, EventArgs e) if (TextBox1.Text = ) PageBase.alert(Page, 请填写用户名); r
40、eturn; if (UserManager.Get(TextBox1.Text) != null) PageBase.alert(Page, 该登陆名已经被使用); return; else PageBase.alert(Page, 恭喜,该用户名可以使用); return; 密码修改输入一遍旧密码,两遍新密码即可成功修改密码,用户名文本框为只读不能修改(密码必须是6位或以上)。主要代码如下:User u = PageBase.GetSession(); if (TextBox2.Text != u.Pass) PageBase.alert(Page, 原始密码错误); return; bool b = UserManager.EditPass(u.Id, TextBox4.Text); string mgf = b ? 修改成功 : 修改失败; Session.Clear(); u.Pass = TextBox4.Text; Sessionuser = u;