课程设计(论文)-linux下处方跟踪系统的开发.doc_第1页
课程设计(论文)-linux下处方跟踪系统的开发.doc_第2页
课程设计(论文)-linux下处方跟踪系统的开发.doc_第3页
课程设计(论文)-linux下处方跟踪系统的开发.doc_第4页
课程设计(论文)-linux下处方跟踪系统的开发.doc_第5页
免费预览已结束,剩余22页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录1 引 言11.1 课程设计的意义11.2 课程设计的目的12 mysql的安装和数据库创建.22.1 linux平台下mysql的安装22.2程序与数据库设计23处方跟踪系统的需求分析43. 1 系统的功能与需求分析43. 2 系统的使用者54系统功能模块设计64.1 系统功能规划64.2 建立系统uml图65数据库逻辑结构设计85.1 数据表的设计86 数据库访问与操作106.1 数据库的建立与连接106.2 创建数据库和数据表107 程序的运行与测试137.1 测试系统138 结束语16参考文献17附录a 处方跟踪系统的主要源代码18 linux下的处方跟踪系统开发 第26页 共27页 1 引 言1.1 课程设计的意义随着计算机科学的迅速发展,计算机已深入到社会的各个领域,它的应用已不再局限于科学计算,以解决一些数学问题,而且可以解决一些抽象化的具体问题,更多地用于控制,管理及数据处理等非数值计算的处理工作,这便为我们的日常生活提供了很多的方便,譬如说火车售票系统,学生成绩管理,车厢调度等实际问题。本系统就是针对处方跟踪而设计的。如果用手工记录,数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。基于这此问题,我认为有必要建立一个处方跟踪系统,使病人处方的信息,系统化,程序化,避免处方存储的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改处方信息。既提高了工作效率又为客户的人生安全做到最大的提供保障。1.2 课程设计的目的对于该课程设计,目的有三个:(1) 学习在linux平台下对mysql进行安装和配置(2) 熟悉并掌握jdk在linux下的安装和配置(3) 掌握eclipse+java语言+mysql在linux环境下的相关开发2 mysql的安装和数据库创建2.1 linux平台下mysql的安装本课程设计采用的linux版本是ubuntu版本,mysql数据库管理系统不需要下载,直接在linux平台下直接安装就行,由于mysql已经安装(同时此安装命令也就是更新命令),故显示的是更新信息。安装命令如图2-1下:图2-1 mysql的安装2.2程序与数据库设计数据库设计应该与应用系统设计相结合。也就是说,整个设计过程作用要把数据库结构设计和对数据的处理设计密切结合起来。早期的数据库应用系统开发过程中,常常把数据库设计和应用系统的设计分离开来,如图2-2所示。由于数据库设计有它专门的技术和理论,但并不等于数据库设计和数据库应用系统开发是相互分离的。相反,数据库设计和应用程序设计应密切结合,并作为数据库设计的重要特点,下面是关于如何把实际应用转化为数据库设计的逻辑结构的过程步骤。图2-2 结构和行为分离的设计3处方跟踪系统的需求分析3. 1 系统的功能与需求分析需求分析的任务是通过详细条差现实世界要处理的对象,充分了解原系统工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。调查的重点是“数据”和“处理”。经过初步调查,基本确认处方跟随系统(pts)的需求如下: 系统用于跟踪每个用户的以下信息 客户名称 电话号码 出生日期 承保公司 保单号 处方历史记录,详情如下。 每个客户的处方历史记录会记录每个处方的以下信息: 药房制订的唯一处方id号 处方开出的药物 开处方的医生名称和电话 处方日期 处方终止日期 批准的再次给药次数 每次按照药方抓药的“单位”数量,其中“单位”可能是丸、茶匙、毫升等 如果某种药物没有,是否可以用通用替代药物。 对药房库存的每种药物,系统需要记录以下信息: 名称 处方中的给药“单位”(丸、茶匙、毫升,等等) 哪些药物可以作为其他药物的替代品。 服用药物的任何副作用。 系统需要支持以下查询: 指定用户请求的处方历史记录也就是说,所有曾经开给指定客户的处方报表。 某种药物的所有副作用的报表,将附在每一个处方上。 特定药物的通用替代药物清单 给定的处方是否可以再次给药,即是否还有再次给药余量,以及处方是否过期。上述所有功能都可以通过安全的web站点被各个客户以及药房的药剂师访问。3. 2 系统的使用者处方跟踪系统的使用者情况: customer(用户):查询某个用户自己的处方信息,并通过处方到药房(pharmacy)取药。physician(医生):给customer开处方,查询自己的开方记录。4系统功能模块设计4.1 系统功能规划根据以上对系统的功能需求的分析,了解到本系统的两个基本操作就是录入数据和查询数据,根据使用者的不同需求,可将系统的功能图如下: 录入处方信息此模块的作用主要是把客户的处方信息记录到计算机中,以方便管理和查询。依次输入客户的处方相关信息,不能有任何一项为空,否则会弹出消息对话框进行提示。录入成功,就把相关数据保存到数据表中。 处方信息查询模块的功能是查询数据库中已录入的处方记录。本系统中是查询的方式是根据客户的处方编号来查询。操作者输入要查询的用户处方编号进行查询。在输入处方编号时前面不能有空格符合否则查询不成功,并提示相关信息。查询成功则把相应信息在操作界面上显示出来。 药品查询模块的功能是查询已有的药品信息记录。对应的是数据库中drugs数据表,本系统中是查询的方式是根据药品名称来查询。查询成功则把相应信息在界面上显示出来。查询失败则弹出对话框并提示相关信息。 显示所有处方信息显示所有数据表中所有数据记录,对应的是数据库中的prescription数据表。以表格的形式显示同时也方便做打印报表。 退出系统本模块为退出模块。当系统管理员操作完成后所操作的功能模块。4.2 建立系统uml图人对复杂问题的理解能力是有限的,通过建模,缩小说研究问题的范围,一次只着重研究一个方面,这样就通过解决一系列小问题从而解决整体的大问题3。通过对系统需求分析和概述以及功能规划,得到如图4-1所示的uml图,这是制作系统的基础。图4-1 处方管理系统的uml图5数据库逻辑结构设计5.1 数据表的设计在确定了数据表及其表头字段后,在此基础上把数据表的基本属性登记成手册,方便以后的修改和并作为实际的创建数据表时的依据。处方(prescription):表5-1 prescription记录表 字段名称数据类型长度是否主键字段描述备注说明clientnamevarchar25no客户姓名非空clientelevarchar25no客户电话非空clientbirthvarchar20no客户出生非空insurecmpvarchar50no投保公司非空insurenumvarchar20no保单号非空prescriptionidvarchar25yes处方编号非空drugsvarchar50no药品非空doctornamevarchar50no医生姓名非空doctortelevarchar15no医生电话非空begindatevarchar20no处方日期非空enddatevarchar20no处方结束日期非空redrugsnumint4no再次给药次数非空drugsunitvarchar10no药品单位非空药物(drugs):表5-2 drugs信息表字段名称数据类型长度是否主键字段描述备注说明drugsnamevarchar50no药物名称非空drugsunitvarchar20no药物单位非空tidaidrugsvarchar50no替代药品非空fuzuoyongdrugsvarchar100no副作用允许空6 数据库访问与操作6.1 数据库的建立与连接数据库在物理设备上的存储结构与存储方法称为数据库的物理结构,它依赖于选定的数据库管理系统。为一个给定的逻辑数据模型选取一个最合适应用要求的物理结构的过程,就是数据库的物理设计。本系统选择由瑞典mysql ab公司首先开发,现在为sun公司运营的mysql数据库管理系统。鉴于本系统选择使用java语言进行系统的开发,java应用程序连接dbms。jdbc作为一种数据库访问技术,具有简单易用的优点。考虑到配置和移植的方便性,本系统采用jdbc方式访问数据库。try class.forname(com.mysql.jdbc.driver); system.out.println(driver load); connection connection = drivermanager.getconnection(jdbc:mysql:/ +01946ae88d54409/java,system,system); system.out.println(database connected); /用来测试数据库连接是否成功 statement stmt = connection.createstatement(); stmt.close(); /关闭数据库连接 connection.close();/关闭数据库连接 catch(exception e) e.printstacktrace(); 6.2 创建数据库和数据表(1)创建数据库java图6-1 linux下数据库创建代码(2)创建数据表prescription 图6-2 linux下在mysql数据库中创建处方表创建数据表drugs图6-3 linux下在mysql数据库中创建药品表7 程序的运行与测试7.1 测试系统(1) 导入数据表后,调用测试系统。系统启动界面图7-1所示图7-1 处方跟踪系统主界面(2) 选择菜单栏【insert_prescription】,进行处方录入操作,返回结果如图7-2所示图7-2 录入处方信息界面(3) 选择菜单栏【search_prescripion】,进行处方查询,返回结果如图7-4所示。图7-3 查询处方成功(4) 选择菜单栏【search_drugs】,查询药品信息,返回结果如图7-6所示。图7-4 查询的药品信息(5) 选择菜单栏【show_prescripion】,显示所有处方的信息,返回结果如图7-8所示。图7-5显示所有处方的药物信息8 结束语通过网络系统课程设计,使我对linux操作系统有了一定的了解,同时我也总结出了一些分析问题和解决问题的方法及技巧。本文探讨的是一个基于linux下的用java语言+eclipse+mysql数据库开发处方跟踪系统。这也是我第一次在linux操作系统下进行系统开发,在linux操作系统下开发系统软件难度比较大。首先我们要了解linux的操作命令,它和windows有着本质上的不同。其次,在知道并熟悉掌握linux操作命令之后,还要安装并配置mysql数据库,并且创建数据库。同时在完成系统过程中也遇到一些问题,如:在linux操作系统下的eclipse开发环境下编码方式不同,就不能显示中文,必须要改编码方式为:gbk编码方式。在这一过程中我翻阅了大量的相关书籍来完成我的课程设计。本次课程设计是邓江沙老师指导的,首先我的感谢指导老师的严格要求,否则我不会那样的努力去学习相关知识。其次我要感谢我的同学,在学习和翻阅资料的时候,大家所发表的言论给我很大的启示。再次,我要感谢我的任课老师,细心的教学,给我很大的鼓励。在此,我要再次感谢在本次课程设计中帮助过我的同学和老师,正是由于你们的帮助和支持,我才能克服一个一个的困难和疑惑,直至本课程设计的顺利完成。参考文献1 王珊,萨师煊. 数据库系统概论m . 北京:高等教育出版社,20062 张海藩.软件工程导论(第四版)m.北京:清华大学出版社,20033 王晓悦著.java jdk、数据库系统开发、web开发m.北京:人民邮电出版社,20064 y.daniel liang著,万波、郑海红、潘蓉等译.java语言程序设计进阶篇m.北京:机械工业出版社,20075mysql_维基百科. 维基百科,/w/index.php?title=mysql&variant=zh-cn:2009-01-02附录a 处方跟踪系统的主要源代码源代码如下:package majorproject;import java.sql.*;import javax.swing.table.*;import java.util.*;import javax.swing.*;import majorproject.searchmodule;import majorproject.client;import majorproject.prescription;import majorproject.medicine;import majorproject.insertmodule;public class dataclassprivate client c = new client();public int column; /定义处方记录表中列的个数public resultset rset; /定义resultset变量 protected string name; /定义客户名字protected string tele; /定义客户电话号码protected string birth; / 定义客户出生日期protected string cmp; /定义客户投保公司protected string sureid; /定义客户保单号protected string id; /定义客户处方编号protected string drugsname; / 定义客户所需药品名称protected string docname; / 定义医生姓名protected string doctele; / 定义医生电话号码protected string begindate; / 定义开处方日期protected string enddate; / 定义处方结束日期protected int enblenum; / 定义再次给药次数 protected string unit; /定义药品单位 vector rowvectors = new vector(); /定义一个vector 数据结构的变量 vector columnheadervector = new vector(); defaulttablemodel tablemodel = new defaulttablemodel(); private jtable table1; protected string sclientname; protected string sclienttele; protected string sclientbirth; protected string scmp; protected string sinsureid; protected string sid; protected string sdrugs; protected string sdocname; protected string sdoctele; protected string sbegindate; protected string senddate; protected int senblenum; protected string sunit; protected string drugname; protected string drugunit; protected string replacedrugs; protected string sideeffect; protected string drug_name; protected string drug_unit; protected string replace_drugs; protected string side_effect; /* * * /显示所有处方信息的自定义方法函数 */public void dataconnection() try class.forname(com.mysql.jdbc.driver); system.out.println(driver load); connection connection = drivermanager.getconnection(jdbc:mysql:/ +01946ae88d54409/java,system,system); system.out.println(database connected); /用来测试数据库连接是否成功 statement stmt = connection.createstatement(); rowvectors.clear(); columnheadervector.clear(); string querystring = select * from prescription; rset = stmt.executequery(querystring); column = rset.getmetadata().getcolumncount(); while(rset.next() vector singlerow = new vector(); for(int i=0;icolumn;i+) singlerow.addelement(rset.getobject(i+1); rowvectors.addelement(singlerow); for(int i=1;i=column;i+) columnheadervector.addelement(rset.getmetadata().getcolumnname(i); stmt.close(); /关闭数据库连接 connection.close();/关闭数据库连接 catch(exception e) e.printstacktrace(); /* * * /根据处方编号来查询处方记录的自定义方法 */public void search(string prescriptionid) try class.forname(com.mysql.jdbc.driver); system.out.println(driver load); connection connection = drivermanager.getconnection(jdbc:mysql:/ +01946ae88d54409/java,system,system); system.out.println(database connected);/用来测试数据库连接是否成功 statement stmt = connection.createstatement(); string querystring = select * from prescription where 处方编号 = + prescriptionid+; rset = stmt.executequery(querystring); if(rset.next() sclientname = rset.getstring(1);/获取数据表信息 sclienttele = rset.getstring(2); sclientbirth = rset.getstring(3); scmp = rset.getstring(4); sinsureid = rset.getstring(5); sid = rset.getstring(6); sdrugs = rset.getstring(7); sdocname = rset.getstring(8); sdoctele = rset.getstring(9); sbegindate = rset.getstring(10); senddate = rset.getstring(11); senblenum = rset.getint(12); sunit = rset.getstring(13); client c = new client(sclientname,sclienttele,sclientbirth,scmp,sinsureid); name = c.getclientname(); tele = c.getclienttele(); birth = c.getclientbirth(); cmp = c.getinsurecmp(); sureid = c.getinsurenum(); prescription p = new prescription(sid,sdrugs,sdocname,sdoctele,sbegindate, senddate,senblenum); id = p.getid(); drugsname = p.getdrugsname(); docname = p.getdoctorname(); doctele = p.getdoctortele(); begindate = p.getbegindate(); enddate = p.getenddate(); enblenum = p.getdrugsnum(); stmt.close(); connection.close(); else joptionpane.showmessagedialog(null, 对不起!没有你要查询的处方记录, + 请重新输入处方编号); catch(exception e) e.printstacktrace(); /* * * 定义录入处方记录方法 */public void insert(string cname,string ctele ,string cbirth,string inscmp,string insnum,string pid,string drug,string dname,string dtele,string bdate,string edate,string rnums,string ulist)try class.forname(com.mysql.jdbc.driver); system.out.println(driver load); connection connection = drivermanager.getconnection(jdbc:mysql:/ +01946ae88d54409/java,system,system); system.out.println(database connected); /用来测试数据库连接是否成功 statement stmt = connection.createstatement(); string querystring = insert into prescription values(+cname+,+ctele+, + +cbirth+,+inscmp+,+insnum+,+pid+,+drug+, + +dname+,+dtele+,+bdate+, +edate+,+rnums+,+ulist+); if(cname.length() =0) |(ctele.length() = 0)/判断录入记录不能为空 |(cbirth.length() =0) |(inscmp.length() =0)|(insnum.length()=0) |(pid.length() = 0) |(drug .length()= 0) | (dname .length()= 0)|(dtele.length() = 0) | (bdate .length()=0)| (edate.length() = 0) | (rnums.length() = 0)| (ulist.length() = 0) joptionpane.showmessagedialog(null, 录入内容中不能有空,请重新输入!); else stmt.executeupdate(querystring); connection.co

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论