Java语言程序设计:医院简易挂号管理系统华科Java实验alm

为了减少编程工作量,T_KSXX、T_BRXX、T_KSYS、T_HZXX的信息手工录入数据库,每个表至少录入6条记录,所有类型为CHAR(6)的字段数据从“000001”开始,连续编码且中间不得空缺。为病人开发的桌面应用程序要实现的主要功能具体如下:

功能(2)的界面如下所示,在光标停在“科室名称”输入栏时,可在输入栏下方弹出下拉列表框,显示所有科室的“科室编号”、“科室名称”和“拼音字首”,此时可通过鼠标点击或输入科室名称的拼音字首两种输入方式获得“科室编号”,用于插入T_GHXX表。注意,采用拼音字首输入时可同时完成下拉列表框的科室过滤,使得下拉列表框中符合条件的科室越来越少,例如,初始为“内一科”和“内二课”。其它输入栏,如“医生姓名”、“号种类别”、“号种名称”也可同时支持两种方式混合输入。

每种号种挂号限定当日人次,挂号人数超过规定数量不得挂号。一个数据一致的程序要保证:挂号总人数等于当日各号种的挂号人次之和,病人的账务应保证开支平衡。已退号码不得用于重新挂号,每个号重的GHRC数据应连续不间断,GHRC从1开始。若病人有预存金额则直接扣除挂号费,此时“交款金额”和“找零金额”处于灰色不可操作状态。

为医生开发的桌面应用程序要实现的主要功能具体如下:

挂号编号

号种类别

000001

章紫衣

2018-12-3011:52:26

专家号

000003

范冰冰

2018-12-3011:53:26

普通号

000004

刘德华

2018-12-3011:54:28

挂号人次

收入合计

感染科

李时珍

24

48

10

内一科

000002

扁鹊

23

保健科

华佗

20

病人应用程序和医生应用程序可采用主窗口加菜单的方式实现。例如,医生应用程序有三个菜单项,分别为“病人列表”、“收入列表”和“退出系统”等。

挂号时锁定票号可能导致死锁,为了防止死锁或系统响应变慢,建议大家不要锁死数据库表或者字段。程序编写完成后,同时启动两个挂号程序进行单步调试,以便测试两个病人是否会抢到同一个号、或者有号码不连续或丢号的现象。

思考题:当病人晚上11:59:59秒取得某号种的挂号价格10元,当他确定保存时价格在第2天00:00:00已被调整为20元,在编程时如何保证挂号费用与当天价格相符?

2.需求分析

一、系统设计

1.概要设计

介绍设计思路、原理。将一个复杂系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等。

要有总体结构、总体流程(图)。

图2.1总体流程图

图2.2医生查询流程图

图2.4病人挂号界面流程图

1.详细设计

图形用户界面用JavaFx来实现,使用intellijIDEA编辑器编辑代码,图形界面用JavaFXSceneBuilder1.1来设计,设计完成后绑定对应控件的id,然后在controller里面定义对应的控件,并使用即可,具体实现如下:

首先有一个全局的Stage,是总的舞台,其他的页面花在这个舞台上面。

1publicclassFXMLTestextendsApplication{2privateStagestage;3privatefinaldoubleMINIMUM_WINDOW_WIDTH=700.0;4privatefinaldoubleMINIMUM_WINDOW_HEIGHT=370.0;5privatestaticFXMLLoadermyloader=null;6publicStringBR_name;78@Override9publicvoidstart(StageprimaryStage)throwsException{1011}12publicstaticvoidmain(String[]args){13launch(args);14}1516}

继承自Application,重写start方法,在main方法里面调用就好。

Start方法里面启动舞台stage:

1@Override2publicvoidstart(StageprimaryStage)throwsException{3stage=primaryStage;4stage.setTitle("登陆界面");5stage.setMinWidth(MINIMUM_WINDOW_WIDTH);6stage.setMinHeight(MINIMUM_WINDOW_HEIGHT);7gotologin();8stage.setResizable(false);9stage.show();10}

publicvoidgotologin(){try{LoginControllerlogin=(LoginController)replaceSceneContent("登陆界面","FXML_LOGIN.fxml","Login.css",MINIMUM_WINDOW_WIDTH,MINIMUM_WINDOW_HEIGHT,0);login.setApp(this);}catch(Exceptionex){Logger.getLogger(FXMLTest.class.getName()).log(Level.SEVERE,null,ex);}}

为了提高开发效率,获取界面controller并加载到stage的部分功能统一用一个函数replaceSceneContent(),再把此application传入到controller,为了在界面控制类controller里面调用或者返回到总的application类,加载其他的页面。

1privateInitializablereplaceSceneContent(Stringtitle,Stringfxml,Stringcss,doublewidth,doubleheight,inttype)throwsException{2FXMLLoaderloader=newFXMLLoader();3InputStreamin=FXMLTest.class.getResourceAsStream(fxml);4loader.setBuilderFactory(newJavaFXBuilderFactory());5loader.setLocation(FXMLTest.class.getResource(fxml));6SplitPaneSpage;7AnchorPaneApage;8if(type==0){9Apage=(AnchorPane)loader.load(in);10Scenescene=newScene(Apage,width,height);11scene.getStylesheets().add(FXMLTest.class.getResource(css).toExternalForm());12stage.setTitle(title);13stage.setScene(scene);14stage.sizeToScene();15}elseif(type==1){16Spage=(SplitPane)loader.load(in);17Scenescene=newScene(Spage,width,height);18scene.getStylesheets().add(FXMLTest.class.getResource(css).toExternalForm());19stage.setTitle(title);20stage.setScene(scene);21stage.sizeToScene();22}else{2324}25myloader=loader;26return(Initializable)loader.getController();27}

使用界面设计器实现的界面如下:

启动之后的界面如下:

显然,使用了css样式文件之后界面变得更精美。

@FXMLpublicvoidLOGIN_M(ActionEventevent){inttype=choiceBox.getSelectionModel().getSelectedIndex();application.userlogin(account.getText(),password.getText(),type);}

调用父类的userlogin方法:

为了代码的简洁性,把数据库查询方法一律统一管理。

从上述代码可知,当用户信息匹配成功以后,界面需要重新加载,gotoYSmain()是加载医生界面,gotoMain()是加载病人挂号界面。

1.病人挂号模块

挂号模块提供给病人进行挂号,业务逻辑简单,用户只需要选择科室、科室医生、号种类别以及使用余额或者交款的方式进行付费以后即可得到挂号号码。输入框有自动过滤输入内容的功能,当用户输入科室名称或名称的大写下拉框会过滤显示对应的内容,也可以点击后根据下拉框的值来选择科室。科室选择完毕后,该科室的医生姓名会实时从数据库查询后,等待用户选择或输入,同样有过滤功能。下一步选择号种类别,有专家号和普通号,是根据医生是否专家来确定号种类别,医生是专家时,可以选择专家和普通号,当医生非专家时,只能选择普通号,输入框的值会在用户选择了医生之后会实时查询数据库在显示。此时,号中名称会显示出来,等待用户点击确定按钮,进行非空检查以后,根据票价从用户的余额去扣费,如果余额足够,则扣费完成后显示挂号号码,否则要求用户输入交款金额,再进行挂号。

第一步,启动挂号界面:

1publicvoidgotomain(){2try{3MainControllermain=(MainController)replaceSceneContent("医院挂号系统","FXML_MAIN.fxml","main.css",700,450,1);4main.setApp(this);5}catch(Exceptionex){6Logger.getLogger(FXMLTest.class.getName()).log(Level.SEVERE,null,ex);7}8}

在controller里面用到的数据类型有:

1privateHashMapKSYSinfo=null;2HashMapKSinfo=null;3HashMapHZinfo=null;4privatedoubleBrYuCun=0;5privateStringBRBH;6privateFXMLTestapplication;7publicStringText_KSMC;//科室名称8publicStringText_KSYS;//科室医生9publicStringText_HZLB;//号中类别

在initialize()方法里面对科室信息、医生信息以及病人余额等信息初始化,并对输入框的输入内容进行监听,当有变化时,进行数据更新:

根据医生名称设置号种类别:

1privatevoidsetHZLB_combo_Box(StringKSYS){2intisZJ=DataBaseUtil.isZJ(KSYS);3if(isZJ==1){4comboBox_HZLB.getItems().addAll("专家号","普通号");5}else{6comboBox_HZLB.getItems().addAll("普通号");7}8}

设置医生信息下拉框的值:

1privatevoidsetKSYScomboxInfo(){2KSYSinfo=DataBaseUtil.getKSYSinfo(KSinfo.get(Text_KSMC).trim());3Setset1=KSYSinfo.keySet();4Iteratoriter1=set1.iterator();5while(iter1.hasNext()){6Stringkey=(String)iter1.next();7comboBox_YSMC.getItems().addAll(key);8}9}

当点击确定按钮时,进行非空检查以及查询扣费等:

用到的一些小的工具方法:

病人登陆成功之后,获取名称以及预存金额,利用HASHMAP来保存得到的数据,方便处理:

获取科室信息:

获取科室医生信息:

根据号种获取票价:

开始挂号,根据数据库当前最新的挂号号码计算新的号码并返回:

根据号种名称获取号种编号:

判断医生是否专家:

最后挂号成功,并显示挂号号码,界面如下:

3.医生界面

1publicvoidgotoYSmain(){2try{3YiShengControllermain=(YiShengController)replaceSceneContent("医生治疗系统","FXML_YISHENG.fxml","main.css",700,450,0);4main.setApp(this);5}catch(Exceptionex){6Logger.getLogger(FXMLTest.class.getName()).log(Level.SEVERE,null,ex);7}8}

privateStringYSBH_in_Controller;privateObservableListdata=FXCollections.observableArrayList();privateObservableListSrdata=FXCollections.observableArrayList();privateFXMLTestapplication;@FXMLTableColumnGHBH_1,BRMC_1,GhTime_1,HzType_1;@FXMLTableColumnKSMC_2,YSBH_2,YSMC_2,HZLB_2,GHRC_2,SRHJ_2;@FXMLTableViewBrTableView;@FXMLTableViewSrTableView;@FXMLprivateLabellabel_user_name;

1@Override2publicvoidinitialize(URLlocation,ResourceBundleresources){3DatePicer_start.setValue(LocalDate.now());4DatePicer_end.setValue(DatePicer_start.getValue().plusDays(1));56for(inti=0;i<24;i++){7ComboBox_S_1.getItems().addAll(i+"点");8ComboBox_E_1.getItems().addAll(i+"点");9}10ComboBox_S_1.getSelectionModel().select(0);11ComboBox_E_1.getSelectionModel().select(0);1213for(inti=0;i<60;i++){14ComboBox_S_2.getItems().addAll(i+"分");15ComboBox_E_2.getItems().addAll(i+"分");16}17ComboBox_S_2.getSelectionModel().select(0);18ComboBox_E_2.getSelectionModel().select(0);192021}

当医生界面加载完成的同时,病人列表会自动加载到表格里面,当点击刷新按钮时,会更新病人列表:

1@FXML2publicvoidsetTableData(){3GHBH_1.setCellValueFactory(newPropertyValueFactory("GHBH"));4BRMC_1.setCellValueFactory(newPropertyValueFactory("BRMC"));5GhTime_1.setCellValueFactory(newPropertyValueFactory("GHTime"));6HzType_1.setCellValueFactory(newPropertyValueFactory("HZLB"));7data=DataBaseUtil.getBrLieBiao(YSBH_in_Controller);8BrTableView.setItems(data);9}

获取病人列表使用的是ObservableList,从数据库获取该医生对应数据的代码如下:

ObservableList需要适配器来实现数据的显示,需要一个类:

1packagesample;2publicclassBrColumn{3privateStringGHBH;4privateStringBRMC;5privateStringGHTime;6privateStringHZLB;78publicBrColumn(StringGHBH,StringBRMC,StringGHTime,StringHZLB){9this.GHBH=GHBH;10this.BRMC=BRMC;11this.GHTime=GHTime;12this.HZLB=HZLB;13}1415//get16publicStringgetGHBH(){17returnGHBH;18}1920publicStringgetBRMC(){21returnBRMC;22}2324publicStringgetGHTime(){25returnGHTime;26}2728publicStringgetHZLB(){29returnHZLB;30}3132//set33publicvoidsetGHBH(StringGHBH){34this.GHBH=GHBH;35}3637publicvoidsetBRMC(StringBRMC){38this.GHBH=BRMC;39}4041publicvoidsetGHTime(StringGHTime){42this.GHBH=GHTime;43}4445publicvoidsetHZLB(StringHZLB){46this.GHBH=HZLB;47}48}

数据库的查询有点复杂,因为需要嵌套查询,因此效率并不是想象中那么快,在学习了数据库课程以后,继续优化。适配器类如下:

一、软件测试

对照题目要求,构造测试例,给出程序界面截图,举证题目要求的功能(以及自行补充的功能)已实现。

THE END
1.网上医院预约挂号系统设计与实现开题报告1. 背景介绍:介绍医院预约挂号系统的需求和意义。 2. 研究目的:阐述本论文的研究目的和内容。 3. 研究方法:简述本论文的研究方法和实现思路。 二、系统设计 1. 系统架构设计:采用分层架构,包括表现层、业务逻辑层、数据访问层和数据库。 2. 模块划分:将系统划分为以下几个模块:用户管理模块、医生管理模块、预约https://wenku.baidu.com/view/0eaf58d3383567ec102de2bd960590c69fc3d824.html
2.医院网络预约挂号系统的设计与实现本文描述了基于.NET技术医院网络预约挂号系统的需求分析、系统设计、系统实现的过程。在对系统的需求分析过程中,首先对医院门诊管理系统的发展现状进行了简单介绍,并重点对目前医院门诊挂号模式进行了分析、比较,从而确定了本文的研究对象为网络预约挂号模式。在对医院门诊挂号的调研基础上,分析了用户对业务流程、系统功能https://wap.cnki.net/touch/web/Dissertation/Article/-2008188057.html
3.网上医疗挂号系统的设计与实现1闫凤玲;钟肖肖;黄雪;陈曦;张涵;唐智贤;一种基于文本分析的智能预挂号系统[J];中国科技信息;2022年04期 2宗金运;芦立华;姬庆;石静;金彦;医院智能挂号系统的设计和实现[J];福建电脑;2020年08期 3许敏;医院门诊自助挂号系统对医疗服务的改善情况研究[J];中国管理信息化;2017年06期 https://cdmd.cnki.com.cn/Article/CDMD-10145-1018074072.htm
4.基于Java的医院挂号就诊系统设计与实现(源码+lw+部署文档+讲解等主要功能有:个人中心、用户管理、挂号管理、医生信息管理、轮播图管理、交易订单管理、公告信息管理、资讯管理、系统管理等功能。 论文参考 代码参考 @IgnoreAuth @PostMapping(value = "/login") public R login(String username, String password, String captcha, HttpServletRequest request) { UsersEntity user =https://www.ctyun.cn/zhishi/p-430610
5.Java微信小程序医院挂号系统java本系统实现了医生的在线预约挂号与管理,方便了用户和管理员、医生三方的利益,提高医生预约的效率,更符合现代人生活。 二、系统功能分析 本人参考大量的预约挂号管理软件以及充分调查需要医生的用户和管理员需求,设计出的本微信小程序医院挂号系统使用角色为用户、管理员、医生。框架界面分为用户操作界面、管理员操作界面https://www.jb51.net/article/278737.htm
6.信息与计算机工程系优秀毕业设计作品毕业设计5.医院就诊预约挂号系统的设计与实现 2019级计算机科学与技术 徐学淋 随着科技的发展和人口增长,越来越多的人开始重视健康并寻求医疗服务。但现场挂号已难以满足人们的需求,尤其是在我国这种人口众多的国家。政府鼓励自我诊断治疗,但只能缓解医疗服务压力,而不能根本解决问题。为解决患者预约挂号难的问题,越来越多的https://www.cdutetc.cn/c/4c068411-751b-4f12-b725-f69e34c010a3.html
7.基于Java医院网上预约挂号系统设计与实现(含源代码)可以实现: 管理员角色包含以下功能:管理员登录,添加科室,科室增删改查,医生管理,查看预约信息,查看医生预约状态,反馈查看,公告发布等功能。 医生角色包含以下功能:登录界面,医生首页,提交挂号信息,个人信息修改,查看个人预约信息等功能。 用了技术框架: HTML+CSS+JavaScript+Spring+mybatis等 https://blog.csdn.net/yy1656724967/article/details/104042285
8.大型三甲医院基础集成信息平台架构设计案例51CTO博客医院未来的发展方向是建设集团化医院,信息化必将成为重要的支撑手段。通过基于电子病历的医院集成平台,构建满足区域医疗协作需求的如区域医疗一卡通、预约挂号系统、医技预约系统、双向转诊信息、远程医疗等系统,实现集团医院和远程会诊访问端与医院之间的医疗业务协同。 https://blog.51cto.com/u_15127582/2748726
9.医院预约挂号系统设计与实现测试毕业设计论文经医院预约挂号系统设计与实现测试毕业设计论文 https://bbs.pinggu.org/thread-13148071-1-1.html
10.医院信息系统的作用结构组成分类标准使患者足不出户可完成问诊、检查、药品加工、邮寄等环节。大大提高患者看病就医的效率,使患者小病可以在家看,再也不必经历为看一点小病费时费力去医院排队挂号的尴尬。 7、外部接口功能 提供了医院信息系统与新农合系统的接口,并将逐步实现与医疗保险系统、双向诊疗系统、远程医疗咨询系统、妇幼保健系统等的接口,解决https://www.cnpp.cn/focus/28849.html
11.2023年4月自考《管理系统中计算机应用》考试真题(更新中)自考5.超市收银系统的基本功能模块包含条码扫描、前台收银、钱箱管理、小票打印、业务数据汇总、报表制作等,其中,条码扫描实现的信息系统功能属于 A.信息存储 B.信息采集 C.信息处理 D.信息输出 6.按信息系统支持的对象和组织的层级划分,医院的挂号系统属于 https://www.educity.cn/chengkao/5036952.html
12.医院规章制度在医院系统中,医疗设备运行及医疗服务实践实际上是一个动态过程,所有人员、设备、服务都存在着风险[7]。例如:手术时使用的电切刀、电极板灼伤病人;呼叫系统突然故障而延误病人抢救;地面湿滑致病人跌倒等。针对人为因素和系统因素的风险,应采取相应措施,减少护理过程中的风险,确保安全。https://www.jy135.com/zhidu/781897.html
13.医院信息系统与医疗电子票据管理平台的接口开发与实现为了实现医院HIS系统与电子票据平台的无缝对接,我们对医院HIS系统中门诊挂号、门诊收费、门诊退号、门诊退费、住院结算、住院结算召回等模块进行了系统改造,自行研发了电子票据接口程序,实现了HIS系统与电子票据平台的无缝衔接,并自主研发了批量开具门诊电子票据和批量开具住院电子票据功能,同时实现了电子票据实时监管功能,大http://zl.hxyjw.com/arc_39851
14.质量体系管理工作计划(精选12篇)各部门要根据本部门工作特点组织内部人员对B版体系文件进行系统学习、做好学习记录,提高岗位人员素质,以确保质量管理体系的有效运行。具体来讲,就医院的经营性特点来说,报表统计工作的精细化管理可以从以下几个途径实现。 1、挂号管理 医院门诊挂号室每天都需要记录门诊挂号量的数量,还要做https://www.yuwenmi.com/fanwen/jihua/1753818.html
15.科技赋能医疗发展智慧护航降中国实际上,智慧医疗在医院里的应用最多是门诊挂号系统,现在的病人根本不用跑到去排队,非常方便;第二个是送药上门;第三个是远程医疗系统。 王金山 医院科室与健康管理已进入智慧医疗时代 其实互联网和智能化医疗带来的便利性,已经深入到每一个人,每一个家庭,每一个医疗机构健康管理的方方面面,而基本上所有的医院的http://www.cq.xinhuanet.com/2018/dhmq/index.htm
16.管理系统系列医院门诊管理系统是一种用于优化和提高医院门诊服务效率、质量以及患者满意度的信息系统。以下是该系统的详细介绍: 1. 系统设计: - 医院门诊管理系统旨在通过电子化手段,整合医疗资源,提供预约挂号、病历管理、医嘱执行等功能。 - 系统设计包括总体设计和详细设计,开发完成后将部署到服务器上进行测试和上线发布。 - https://www.coder100.com/index/index/content/id/4321315
17.分诊排队叫号系统解决方案解决方案l采用B/S架构,方便医院管理维护。 l能够实时接收HIS系统传来的患者挂号信息、预约信息,并生成排队队列。 l可对各分诊区域内患者的就诊状态查询、修改、调号等操作,根据需要调整患者排队队列顺序。 l通过医生工作站上的虚拟叫号器软件,实现叫号、完成就诊、选呼、重呼、过号等操作。 https://www.feilingcall.com/fagnan-detail/BQa02ewB
18.1.3整体规划设计本次信息化建设将构建智慧医院服务体系,医院将不良事件管理平台,合理用药系统,医院感染控制系统等等,这些系统满足了业务和管理的 需求,但尚缺少信息化顶层设计和统筹规划,随着我院信息化逐步迈向精细化管理并从院内逐步延伸到院 外,我院需要对目前的以收费为核心的医院信息管理系统转变为以电子病历为核心的医院临床服务系统, 构建医院信息平台http://ggzy.zhenjiang.gov.cn/TPFrame/zjcgdownAttachAction.action?cmd=download&AttachGuid=b390bbd7-ff37-4a75-a847-415a4ba93853
19.基于SSM的医院门诊预约挂号系统的设计与实现(文末附源码论文现在的城镇人口飞速增加,看病的人也越来越多,医院挂号窗口一般都是排成长龙一样,这样对一些时间比较赶的或者有事情要忙的人来说这无疑是个棘手的问题,所以为了减轻医院的挂号窗口的压力,能够在网上挂号看病。 这篇论文就是讲一个基于SSM框架的一个医院门诊预约挂号的设计与实现。这个系统使用layui作为前端的框架https://cloud.tencent.com/developer/article/1974024
20.分诊排队叫号系统银医自助服务缴费系统掌上医院重庆银之鑫科技有限公司是一家专业生产研发医院门诊排队叫号系统的厂家,专注于便民服务的建设,如智慧医院的预约管理平台、掌上医院、分诊排队叫号管理系统、自助医疗服务系统、病床呼叫系统等;智慧政务的排队叫号管理系统、多功能自助终端一体机、多媒体查询及信息发布系https://www.cqyzx.com/
21.国际国内公共卫生情报信息2023年第14期目前,通过北京114预约挂号平台挂号无需缴费,百姓可到医院取号时进行缴费。 秦洋透露,114预约挂号平台目前正在持续迭代升级中。比如,针对老年人群体,平台已推出了适合老年人使用的“关怀版”,字体更大,菜单更简洁。“下一步,我们将结合用户需求做更好的设计,包括升级智能检索功能,开发家属替老人查询检验检查https://www.pzhcdc.com/Article/View?id=7199