linux下处方跟踪系统的开发.docx

上传人:b****2 文档编号:22795687 上传时间:2023-04-28 格式:DOCX 页数:26 大小:298.70KB
下载 相关 举报
linux下处方跟踪系统的开发.docx_第1页
第1页 / 共26页
linux下处方跟踪系统的开发.docx_第2页
第2页 / 共26页
linux下处方跟踪系统的开发.docx_第3页
第3页 / 共26页
linux下处方跟踪系统的开发.docx_第4页
第4页 / 共26页
linux下处方跟踪系统的开发.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

linux下处方跟踪系统的开发.docx

《linux下处方跟踪系统的开发.docx》由会员分享,可在线阅读,更多相关《linux下处方跟踪系统的开发.docx(26页珍藏版)》请在冰豆网上搜索。

linux下处方跟踪系统的开发.docx

linux下处方跟踪系统的开发

目录

1引言1

1.1课程设计的意义1

1.2课程设计的目的1

2MySQL的安装和数据库创建……………………………………………………………….2

2.1Linux平台下Mysql的安装2

2.2程序与数据库设计2

3处方跟踪系统的需求分析4

3.1系统的功能与需求分析4

3.2系统的使用者5

4系统功能模块设计6

4.1系统功能规划6

4.2建立系统UML图6

5数据库逻辑结构设计8

5.1数据表的设计8

6数据库访问与操作10

6.1数据库的建立与连接10

6.2创建数据库和数据表10

7程序的运行与测试13

7.1测试系统13

8结束语16

参考文献17

附录A处方跟踪系统的主要源代码18

1引言

1.1课程设计的意义

随着计算机科学的迅速发展,计算机已深入到社会的各个领域,它的应用已不再局限于科学计算,以解决一些数学问题,而且可以解决一些抽象化的具体问题,更多地用于控制,管理及数据处理等非数值计算的处理工作,这便为我们的日常生活提供了很多的方便,譬如说火车售票系统,学生成绩管理,车厢调度等实际问题。

本系统就是针对处方跟踪而设计的。

如果用手工记录,数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。

总的来说,缺乏系统,规范的信息管理手段。

基于这此问题,我认为有必要建立一个处方跟踪系统,使病人处方的信息,系统化,程序化,避免处方存储的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改处方信息。

既提高了工作效率又为客户的人生安全做到最大的提供保障。

1.2课程设计的目的

对于该课程设计,目的有三个:

(1)学习在Linux平台下对Mysql进行安装和配置

(2)熟悉并掌握JDK在Linux下的安装和配置

(3)掌握Eclipse+Java语言+Mysql在Linux环境下的相关开发

2MySQL的安装和数据库创建

2.1Linux平台下Mysql的安装

本课程设计采用的Linux版本是ubuntu版本,Mysql数据库管理系统不需要下载,直接在Linux平台下直接安装就行,由于Mysql已经安装(同时此安装命令也就是更新命令),故显示的是更新信息。

安装命令如图2-1下:

图2-1Mysql的安装

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-1Prescription记录表

字段名称

数据类型

长度

是否主键

字段描述

备注说明

clientname

varchar

25

NO

客户姓名

非空

clientele

varchar

25

NO

客户电话

非空

clientbirth

varchar

20

NO

客户出生

非空

insurecmp

varchar

50

NO

投保公司

非空

insurenum

varchar

20

NO

保单号

非空

prescriptionid

varchar

25

YES

处方编号

非空

drugs

varchar

50

NO

药品

非空

doctorname

varchar

50

NO

医生姓名

非空

doctortele

varchar

15

NO

医生电话

非空

begindate

varchar

20

NO

处方日期

非空

enddate

varchar

20

NO

处方结束日期

非空

redrugsnum

int

4

NO

再次给药次数

非空

drugsunit

varchar

10

NO

药品单位

非空

 

药物(drugs):

表5-2drugs信息表

字段名称

数据类型

长度

是否主键

字段描述

备注说明

drugsname

varchar

50

NO

药物名称

非空

drugsunit

varchar

20

NO

药物单位

非空

tidaidrugs

varchar

50

NO

替代药品

非空

fuzuoyongdrugs

varchar

100

NO

副作用

允许空

 

6数据库访问与操作

6.1数据库的建立与连接

数据库在物理设备上的存储结构与存储方法称为数据库的物理结构,它依赖于选定的数据库管理系统。

为一个给定的逻辑数据模型选取一个最合适应用要求的物理结构的过程,就是数据库的物理设计。

本系统选择由瑞典MySQLAB公司首先开发,现在为Sun公司运营的MySQL数据库管理系统。

鉴于本系统选择使用JAVA语言进行系统的开发,JAVA应用程序连接DBMS。

JDBC作为一种数据库访问技术,具有简单易用的优点。

考虑到配置和移植的方便性,本系统采用JDBC方式访问数据库。

try{

Class.forName("com.mysql.jdbc.Driver");

System.out.println("driverload");

Connectionconnection=DriverManager.getConnection("jdbc:

mysql:

//"+"@01946ae88d54409/java","system","system");

System.out.println("Databaseconnected");//用来测试数据库连接是否成功

Statementstmt=connection.createStatement();

stmt.close();//关闭数据库连接

connection.close();//关闭数据库连接

}

catch(Exceptione){

e.printStackTrace();

}

}

6.2创建数据库和数据表

(1)创建数据库java

图6-1Linux下数据库创建代码

(2)创建数据表prescription

图6-2Linux下在Mysql数据库中创建处方表

创建数据表drugs

图6-3Linux下在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].北京:

高等教育出版社,2006

[2]张海藩.软件工程导论(第四版)[M].北京:

清华大学出版社,2003

[3]王晓悦著.JavaJDK、数据库系统开发、Web开发[M].北京:

人民邮电出版社,2006

[4]Y.DanielLiang著,万波、郑海红、潘蓉等译.Java语言程序设计进阶篇[M].北京:

机械工业出版社,2007

[5]MySQL_维基百科.维基百科,

http:

//zh.wikipedia.org/w/index.php?

title=MySQL&variant=zh-cn:

2009-01-02

 

附录A处方跟踪系统的主要源代码

源代码如下:

packageMajorProject;

importjava.sql.*;

importjavax.swing.table.*;

importjava.util.*;

importjavax.swing.*;

importMajorProject.searchmodule;

importMajorProject.Client;

importMajorProject.Prescription;

importMajorProject.Medicine;

importMajorProject.insertmodule;

publicclassdataclass{

privateClientc=newClient();

publicintcolumn;//定义处方记录表中列的个数

publicResultSetrset;//定义ResultSet变量

protectedStringname;//定义客户名字

protectedStringtele;//定义客户电话号码

protectedStringbirth;//定义客户出生日期

protectedStringcmp;//定义客户投保公司

protectedStringsureid;//定义客户保单号

protectedStringid;//定义客户处方编号

protectedStringdrugsname;//定义客户所需药品名称

protectedStringdocname;//定义医生姓名

protectedStringdoctele;//定义医生电话号码

protectedStringbegindate;//定义开处方日期

protectedStringenddate;//定义处方结束日期

protectedintenblenum;//定义再次给药次数

protectedStringunit;//定义药品单位

Vectorrowvectors=newVector();//定义一个Vector数据结构的变量

VectorcolumnHeadervector=newVector();

DefaultTableModeltablemodel=newDefaultTableModel();

privateJTabletable1;

protectedStringsclientname;

protectedStringsclienttele;

protectedStringsclientbirth;

protectedStringscmp;

protectedStringsinsureid;

protectedStringsid;

protectedStringsdrugs;

protectedStringsdocname;

protectedStringsdoctele;

protectedStringsbegindate;

protectedStringsenddate;

protectedintsenblenum;

protectedStringsunit;

protectedStringdrugname;

protectedStringdrugunit;

protectedStringreplacedrugs;

protectedStringsideeffect;

protectedStringdrug_name;

protectedStringdrug_unit;

protectedStringreplace_drugs;

protectedStringside_effect;

/*

*

*//显示所有处方信息的自定义方法函数

*/

publicvoiddataconnection(){

try{

Class.forName("com.mysql.jdbc.Driver");

System.out.println("driverload");

Connectionconnection=DriverManager.getConnection("jdbc:

mysql:

//"+"@01946ae88d54409/java","system","system");

System.out.println("Databaseconnected");//用来测试数据库连接是否成功

Statementstmt=connection.createStatement();

rowvectors.clear();

columnHeadervector.clear();

Stringquerystring="select*fromprescription";

rset=stmt.executeQuery(querystring);

column=rset.getMetaData().getColumnCount();

while(rset.next()){

Vectorsinglerow=newVector();

for(inti=0;i

singlerow.addElement((rset.getObject(i+1)));

}

rowvectors.addElement(singlerow);

}

for(inti=1;i<=column;i++){

columnHeadervector.addElement(rset.getMetaData().getColumnName(i));

}

stmt.close();//关闭数据库连接

connection.close();//关闭数据库连接

}

catch(Exceptione){

e.printStackTrace();

}

}

/*

*

*//根据处方编号来查询处方记录的自定义方法

*/

publicvoidsearch(Stringprescriptionid){

try{

Class.forName("com.mysql.jdbc.Driver");

System.out.println("driverload");

Connectionconnection=DriverManager.getConnection("jdbc:

mysql:

//"+"@01946ae88d54409/java","system","system");

System.out.println("Databaseconnected");//用来测试数据库连接是否成功

Statementstmt=connection.createStatement();

Stringquerystring="select*fromprescriptionwhere处方编号='"+

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);

Clientc=newClient(sclientname,sclienttele,sclientbirth,scmp,sinsureid);

name=c.getclientname();

tele=c.getclienttele();

birth=c.getclientbirth();

cmp=c.getinsurecmp();

sureid=c.getinsurenum();

Prescriptionp=newPrescription(sid,sdrugs,sdocname,sdoctele,sbegindate,

senddate,senblenum);

id=p.getid();

drugsname=p.getdrugsname();

docname=p.getdoctorname();

doctele=p.getdoctortele();

begi

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 材料科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1