基于b_s模式的医院门诊预约挂号系统的设计与实现毕业论文内容摘要:

领域层和数据源层。 作为领域驱动设计的先驱Eric Evans,对业务逻辑层作了更细致地划分,细分为应用层与领域层,通过分层进一步将领域逻辑与领域逻辑的解决方案分离。 业务逻辑层在体系架构中的位置很关键,它处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。 由于层是一种弱耦合结构,层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有任何影响。 如果在分层设计时,遵循了面向接口设计的思想,那么这种向下的依赖也应该是一种弱依赖关系。 因而在不改变接口定义的前提下,理想的分层式架构,应该是一个支持可抽取、可替换的“抽屉”式架构。 正因为如此,业务逻辑层的设计对于一个支持可扩展的架构尤为关键,因为它扮演了两个不同的角色。 对于数据访问层而言,它是调用者;对于表示层而言,它却是被调用者。 依赖与被依赖的关系都纠结在业务逻辑层上,如何实现依赖关系的解耦,则是除了实现业务逻辑之外留给设计师的任务。 数据层   数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问,可以访问数据库系统、二进制文件、文本文档或是XML文档。 简单的说法就是实现对数据表的Select,Insert,Update,Delete的操作。 如果要加入ORM的元素,那么就会包括对象和数据表之间的mapping,以及对象实体的持久化。 优点  开发人员可以只关注整个结构中的其中某一层;   可以很容易的用新的实现来替换原有层次的实现;   可以降低层与层之间的依赖;   有利于标准化;   利于各层逻辑的复用。 缺点  降低了系统的性能。 这是不言而喻的。 如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。 有时会导致级联的修改。 这种修改尤其体现在自上而下的方向。 如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。 规则  三层结构的程序不是说把项目分成DAL, BLL, WebUI三个模块就叫三层了, 下面几个问题在你的项目里面:   1. UILayer里面只有少量(或者没有)的SQL语句或者存储过程调用, 并且这些语句保证不会修改数据?   2. 如果把UILayer拿掉, 你的项目还能在Interface/API的层次上提供所有功能吗?   3. 你的DAL可以移植到其他类似环境的项目吗?   4. 三个模块, 可以分别运行于不同的服务器吗?   如果不是所有答案都为YES, 那么你的项目还不能算是严格意义上的三层程序. 三层程序有一些需要约定遵守的规则:   1. 最关键的, UI层只能作为一个外壳, 不能包含任何BizLogic的处理过程   2. 设计时应该从BLL出发, 而不是UI出发. BLL层在API上应该实现所有BizLogic, 以面向对象的方式   3. 不管数据层是一个简单的SqlHelper也好, 还是带有Mapping过的Classes也好, 应该在一定的抽象程度上做到系统无关   4. 不管使用COM+(Enterprise Service), 还是Remoting, 还是WebService之类的远程对象技术, 不管部署的时候是不是真的分别部署到不同的服务器上, 最起码在设计的时候要做这样的考虑, 更远的, 还得考虑多台服务器通过负载均衡作集群   所以考虑一个项目是不是应该应用三层/多层设计时, 先得考虑下是不是真的需要? 实际上大部分程序就开个WebApplication就足够了, 完全没必要作的这么复杂. 而多层结构, 是用于解决真正复杂的项目需求的。 与MVC的区别  MVC(模型Model视图View控制器Controller)是一种设计模式,我们可以用它来创建在域对象和UI表示层对象之间的区分。 同样是架构级别的,相同的地方在于他们都有一个表现层,但是他们不同的地方在于其他的两个层。 在三层架构中没有定义Controller的概念。 这是我认为最不同的地方。 而MVC也没有把业务的逻辑访问看成两个层,这是采用三层架构或MVC搭建程序最主要的区别。 当然了。 在三层中也提到了Model,但是三层架构中Model的概念与MVC中Model的概念是不一样的,“三层”中典型的Model层是以实体类构成的,而MVC里,则是由业务逻辑与访问数据组成的。 第三章 系统分析实施医院信息化建设以后,我们要通过互联网和通讯系统选择医院、选择医生,进行网上挂号、预约就诊,从而减少病人的排队候诊时间;通过屏幕显示病人就诊、检查和取药的时间,病人可以坐着等候;通过自动划价收费系统和电子查询系统,使病人对医院收费放心等等。 据了解,广东卫生信息化建设令人关注,目前正积极推行“电子病历”医院试点工作。 以后老百姓到医院看病,可望告别反复填资料、跑上跑下递药方、排队等化验单结果的奔波劳累,只需“e网”轻松搞定。 在具体的需求驱动下,我们采用计算机技术开发网上预约挂号系统。 系统功能描述通过对用户需求的分析,本系统的功能主要包括两块,前台用户操作及后台管理。 操作流程如下图:门诊预约挂号日期用户时间地址证件注册时间电话性别登陆名姓名密码门诊医生名诊名称姓名年龄性别证件健康证电话地址照片登陆注册管理员后台ER图管理员门诊专家管理门诊管理用户管理预约管理系统管理查看专家信息删除专家信息修改专业信息新增专家信息查看门诊信息删除门诊信息修改门诊信息新增门诊信息用户查看专家预约记录预约记录查看预约查看公告版块挂号须知数据库设计与实现管理员表设计:专家医生表:公告和须知表:门诊表:用户表:预约表:祥细功能与实现如下:用户操作界面功能主要有:在线预约、预约查询、用户信息修改、密码修改等功能设置。 后台操作界面主要功能有:用户管理,预约查询,专家管理,门诊管理,公告版和挂号简介管理在线预约预约须分为五个步骤来完成全程都用的Session来保存用户所选择的数据,第一步选择预约门诊,如下图一:图一第二步对日期的选择如下图二图二第三步专家选择,此步会根据之前选择的门诊来查询该门诊下面所有的专业,非本门诊的专家不会显示在内,如图三图三第四步选择预约时间,为了解决同一时间同时存在同一个专家预约问题,本步骤在显示时间的同时经过一系列数据库的查询,同一时间同一专家的时间为禁用状态,并显示“已约”字样,如下图四图四主要实现代码如下:/// summary /// 时间绑定 /// /summary protected void Bind() { DataTable dt = new DataTable()。 DataColumn dc = new DataColumn()。 = time。 (dc)。 DateTime swstart = (({0} {1}, sql[Date], 08:00))。 //上班时间 DateTime swend = (({0} {1}, sql[Date], 11:30))。 //午休时间 DateTime xwstart = (({0} {1}, sql[Date], 13:00))。 //下午上班时间 DateTime xwend = (({0} {1}, sql[Date], 17:30))。 //下班时间 for (Date。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。