[经管营销]病房管理系统.doc

上传人:sccc 文档编号:4560641 上传时间:2023-04-27 格式:DOC 页数:30 大小:504.83KB
返回 下载 相关 举报
[经管营销]病房管理系统.doc_第1页
第1页 / 共30页
[经管营销]病房管理系统.doc_第2页
第2页 / 共30页
[经管营销]病房管理系统.doc_第3页
第3页 / 共30页
[经管营销]病房管理系统.doc_第4页
第4页 / 共30页
[经管营销]病房管理系统.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《[经管营销]病房管理系统.doc》由会员分享,可在线阅读,更多相关《[经管营销]病房管理系统.doc(30页珍藏版)》请在三一办公上搜索。

1、软件工程导论课程设计病房管理系统学生:王东明(200805070417) 赵腾飞(200805070415)白全林(2008050704)周勇江(200805070416)负责编码部分:王东明,周勇江负责可行性研究,需求分析部分:赵腾飞负责总体,详细设计部分:王东明,白全林负责测试与维护部分:赵腾飞,白全林指导老师:胡文艺目录一.可行性研究1.可行性研究2.项目背景:3可行性研究前提:4对现有系统的分析:5技术可行性分析6经济可行性7操作可行性:二.需求分析:3.系统环境需求:4.其他需求:三.总体设计:1.系统结构图2模块介绍四.详细设计:1.部分简单代码2.流程图3数据表4 系统界面图五.

2、测试1. 测试方案六程序实现1.头文件12头文件23.主体CPP文件七结论八参考资料病房管理系统一.可行性研究1.可行性研究1.编写目的:为医院的病房管理制作一个系统监视病人的各种生理信息,能够使管理护士医生工作更加顺畅和高效。2.项目背景:项目名称:病房管理系统;项目提出者:四川省医院项目开发者:王东明,赵腾飞等人项目实现单位:四川省医院:现在在各大医院病房数是越来越多,但是护士医生数量却远远没有能跟得上现在疾病扩展速度,未来更好的高效地实现护士医生的工作,决定开发一个病房监护系统,能够做到在一个前台就能很好的调度医生护士对病人实施监护。与其他软件的关系:这个系统能很好的在windows平台

3、上运行,由电脑一端建立服务器端,然后每个病床建立一个客服端获取病人生理信号。3可行性研究前提:要求:主要功能:能够监视病人的生理信号:包括脉搏、体温、血压、心电图,还能定时记录病人情况一形成患者日志,并且在某种生理信号超过某个限定值时能够通知服务器端的值班护士,使病人能够更好的接受医治,最后当需要时还能够打印出来病人的病情报告。性能要求:能够做到每间隔1秒钟刷新一次病人生理信息;当变化情况很快速时发出预警信号,当超出限定值时,发出警告通知医护人员。正常情况时每隔10分钟存储一次生理信号,当超出限定值时没30秒存储一次生理信号;1.录入信息系统:能够初始化病人的信息,包括病历,身份.以及所在病房

4、等信息.2.监视系统:能够对病人的生理情况进行检测。主要包括血压,体温,脉搏,心电图。3.警告系统:能够对已经捕获的生理信号进行分析,做到通知值班人员。4.结算系统:能够对治疗的费用进行统计,然后存入个人信息系统。以备查证4.打印系统:能够对病人的信息进行归档;还能打印出新的病历,为以后的治疗提供方法。目标:能够具备完善的病人管理系统;减轻大部分护士巡查病房的时间,并能调剂好工作安排做到高效,是病人管理成为人性化的呵护。条件假定限制软件使用期:5年;硬件条件:服务端电脑,客服端监测器运行环境:windows;数据库:Microsoft Acces;编译系统:VC+20054对现有系统的分析:现

5、在是一个很简单的管理系统,护士会定时巡查,病房有能呼叫护士的呼叫器,但是在使用中有很大缺陷,时常会出现护士到位不迅速,护士不能及时知道病人的情况,当有时候病人的情况恶化时不能自主通知医生,而且护士没有发现时容易造成病人生理危险。5技术可行性分析在现在的编译系统中实现病房管理这样简单的消息响应系统已经很成熟,运用VC+2005和MicrosoftAccess数据库已经能够处理病人的信息,做到实时存储,监测报告的能力。病人报告系统流程图监视系统病人信息处理系统病人病人信息3定义:病人信息:描述:对需要住院的病人的姓名+性别+联系电话+病房的号码+治疗费用+主治医生,定义:姓名=2字符4性别=男|女

6、;年龄=11|2|3|4|5|6|7|8|9|03;联系电话=70|1|2|3|4|5|6|7|8|97|110|1|2|3|4|5|6|7|8|911;病房号码=30|1|2|3|4|5|6|7|8|93;病人编号=30|1|2|3|4|5|6|7|8|93;治疗费用=00|1|2|3|4|5|6|7|8|99;信号=血压+温度+心率+心电;6经济可行性:支出:监测控件1000*500=50万;服务器电脑2台6000*2=1.2万;打印机一台:2万其他一次性支出:5万;经常性支出:2000*5=1万效益:一次性收益 0 ;(银行利率1%不计复利)减少护士数量15人,2000*(1.05+1.

7、04+1.04+1.03+1.02+1.01)*10*12=148万,由于效率大大提高收益投资比极大。不深究。7操作可行性: 数据流图病人1接受症状生理信号病人信息D2比较症状报 警3医生4结算费用5打印信息信号报警信号信号治疗费用费用信息病人信息表 二.需求分析:1.系统的目的通过数据库对病人信息,医疗费用进行记录也对病人的生理信息进行记录使医院的管理能够简单,减少护士医生的工作量,使能达到高效率的工作,提高医院效益,改善服务质量,做到更人性化的服务。2.系统功能分析通过的获取信号系统获取病人的生理信息,然后进行系统正常生理信息和获取到的信息进行匹配判断是否满足发出警告的条件,如果是则发出警

8、告呼叫医生护士,然后连同生理信号和资料费用一起存储到病人信息数据库里面最后当需要时候进行打印病人信息。医生身份信息系统功能模块图:录入病人身份信息录入医生身份信息病人身份信息功能分析:身份系统:主要对即将入院的病人进行初始的信息登记,主要有姓名,性别,家人联系电话,即将安排得病房号,信息获取系统:主要是对病床的病人的生理信息进行获去区,主要有心率,血压,心电图,温度。呼叫系统:通过对获取的生理信息和正常的生理信息进行匹配,如果不符合这个范围则发出报警信号,呼叫值班医生和护士。记录信息系统:主要是对各种获取的生理信息和医生处理信息,医药费等信息进行记录到病人的信息中;打印系统:对病人在住院中的生

9、理变化信息和个人信息按要求进行打印;3.系统环境需求:操作系统:Windows 2000、Windows 2003或Windows XP,windows vista。内存:至少512MB RAM,推荐使用1GB RAM内存。数据库:Microsoft Access 2007IPO 表示例系统:病房管理 作者:王东明模块:信号监测模块 日期:2010,01,15编号: 局部数据元素:4.其他需求:兼容性需求:本软件由VC+2005编译而成能很好对于当前系统兼容出错处理需求在系统出错的时候可以回滚到上次的操作中,尽量将损失降到最小。接口需求硬件接口:无特别要求网络硬件接口要求:实现内部网络通信。软

10、件接口要求:无特殊需求安全需求对于操作系统,网络系统以及数据库都有比较高的安全需求。可支持需求可测试性、可扩展性、可适应性、可维护性、兼容性、可配置性、可服务性、可安装性,可本地化。约束条件:酒店工资制度约束,见附表实施需求软件环境名称版本语种操作系统Windows vista/xpSp1/sp3简体中文数据库平台MicrosoftAccess2007简体中文硬件环境服务器最低配置推荐配置应用和数据库服务器1CPU:P4 2.0G1CPU:P4 2.8GMem:512MMem:2GHD:40GHD:120G三.总体设计:1.系统结构图2模块介绍在整体设计中,系统分为四个模块:病人管理模块:包括

11、身份系统和信息获取系统,身份系统包括添加姓名,改写性别,添加联系方式,分配病房号;信息获取包括获取心率信号,获取血压信号,获取体温信号,获取心电图;判定模块:包括信息比较:对获取到的信息和正常信息比较,要是不符合则转向发出信号系统,想呼叫模块发出信号;呼叫模块:收到信号后发出呼叫信息,呼叫值班医生和值班护士对病人进行治疗。记录信息模块:最后记录病人的生理,身份信息进行记录,并且还能记录治疗费用然后在情况需要的时候进行打印出病人的信息。四.详细设计:1.部分简单代码病人管理:身份系统:F BINGRENXINXI 输入病人姓名,性别,联系电话,主治医生,病房编号保存到对应数据文件中;END F

12、BINGRENHUOQU 输入病人心率,血压,心电图,体温THEN 保存到病人信息文件中;ENDF PANDINGXITONG 输入病人生理信息;IF 生理信息正常信号|生理信息正常信号 RETURN 1;Else RETURN 0;ENDF HUJIAO IF 调用判定系统返回值 输出报警信号呼叫值班护士,值班医生;ENDF JILU 输入病人治疗费用到病人信息文件中,输入命令获取病人信息;END2.流程图3.数据表设计字段名 描述数据类型 数据长度说明Num0病房号码int3不为空Id0病人姓名Char5不为空Fm病人性别Char20不为空tel联系电话Char11重要doctor主治医生

13、Char5不为空Mone治疗费用Double重要Heart心率Double不为空HP心电图不为空Tem温度Double不为空hpre血压Double不为空医生信息字段名描述数据类型长度说明Id1医生姓名Char5不为空way主治方向Char20paitent主治病人char20重要Num1编号Int5不为空class科室Char10不为空护士信息字段名描述数据类型长度说明Id护士名字Char5不为空Num2护士编号Int 5不为空局部数据元素:说明:总共建立一个类,存放只要的信息,然后泛化后面三个表,这三个边都是病房管理系统的信息所在,对病人住院和管理都是需要此表作为联系,如果病人出现异常,则

14、通病人信息中的在发出警告后能找到对应一致人员,也能够表现在医患纠纷责任上做出一点依据。4.主程序界面:4(1)医生信息录入本部分模块为医院初次登陆系统或者有新医务工作者进入该医院工作时人工录入医生详细信息。包括姓名,性别,年龄,联系电话,主要医治方向描述等详细信息。4.(2)病人信息录入本部分模块作为病人入院时登陆该系统进行患者详细信息录入。包括姓名,性别,年龄,联系电话,对应主治医生,医疗费用等信息。4.(3)监控界面本部分模块为病人生理信息实时监控,包括体温,血压(收缩压,舒张压)脉搏等信息,系统实行5秒钟刷新一次的监控频率,一旦两项及其以上指数发生异常,即发出警报通知医生及时到场进行医护

15、。4(4)系统检测到病人生理信息异常,发出警报4(5)出院患者信息管理界面本部分模块打印出痊愈患者出院后详细结算清单。五.测试1.测试方案 考虑到各种因素和条件的限制,我们决定采用黑盒测试方案。即我们不考虑所编写程序的具体结构, 而是根据软件所需要的输入数据的格式以及应该完成的功能,设计一些合法的测试用例和不合法的测试用例,特别是根据边界条件设计一些边界测试用例。以检查系统是否能正确的完成预订功能,得到希望的输出。或者是对不合法的输入和操作能够正确的识别和防御。 对于这些难以人工控制的信息,我们进行模拟,想监测端输入血压,心率,心电图温度的不同值,通过报警的结果来判定死否满足需求;信息项特征组

16、值心率血压心电温度1高正常正常正常2正常正常正常正常3正常正常正常4正常正常正常5低正常正常正常6正常低正常正常正常正常正常正常正常正常低正常正常正常正常在以上测试中均正常。六程序实现头文件1:#ifndef LINKLIST_H#define LINKLIST_H#include#include#include#include listnode.h#include #include #include/ifstream indata;/ofstream outdata;using namespace std;class LinkList/链表类定义 private: ListNode *hea

17、d; /链表的头指针public:LinkList()head=new ListNode();/构造函数建立带头结点的空链表LinkList(LinkList&List);/复制构造函数LinkList()LinkListClear();delete head;/析构函数删除单链表void LinkListClear();/将单链表设置为空表int LinkListLength()const;/秋链表的长度ListNode*ListLocateElem(int e)const;/用病人编号查找病人信息,并返回地址ListNode *ListLocatename(string na);/根据姓名

18、查找信息返回病人地址/int ListLocatedrdata(ListNode *p,LinkList seqlist);/根据病人地址在医生信息表中返回医生地址int ListLocatedrdata(int p,LinkList seqlist);/根据病人编号查找并输出医生信息ListNode*ListGetElem(int i)const;/返回单链表的第I个节点的地址ListNode*ListGet(int i)const;int LinkListInsert(int &data,string &name,string &sex,int &eage,int &tel,string

19、inf,int &drdata,int &money);/将数据元素E插到单链表的第I个节点之前int LinkListInsertdr(int &data,string &name,string &sex,int &eage,int &tel,string inf);int LinkListInsertAfter(int i,int &e);/将数据元素E插到单链表第I个节点之后int LinkListDelete();/根据病人信息地址删除对应病人的信息,ListNode*LinkListRemove(int i);/将单链表的第I个节点冲链表中取下,将其地址返回int ReplaceEl

20、em(int i,int&e);/用元素替代单链表中的第I个元素ListNode*ListPriorElem(int i);/求单链表中第I个节点的直接前驱ListNode*ListNextElem(int i);/求单链表中的第I个节点的直接后继bool LinkListEmpty(void);/若单链表空则返回1,否则返回0LinkList&operator=(LinkList &List);/重载赋值运算符 int LinkListshuchu();/输出元素int LinkListoutput(ListNode *p);/输出对应地址的病人信息int LinkListoutputdr(

21、ListNode *p);/输出病人对应医生的信息 int LinkListMove(int i);int LinkListMove1(int i);int Listzhiliao(ListNode *p);/治疗病人信息,输入病人地址按提示输入药品 价格并答打印在病人信息中int Listjianshi(ListNode *p,int timehigh);/监视对应地址的病人生理信息,并输出到文件中 ;/用元素替代单链表中的第I个元素int LinkList:ReplaceElem(int i,int &e)ListNode *p;p=ListGetElem(i);p-data=e;retu

22、rn 0;/输出对应地址的病人信息值;int LinkList:LinkListoutput(ListNode *p)if(!p)cout失败endl;exit(0);else coutsetw(8)编号setw(8)姓名setw(8)性别setw(8)年龄setw(12)联系电话setw(12)医生编号setw(12)医疗费用endl;coutsetw(8)datasetw(8)namesetw(8)sexsetw(8)eagesetw(12)telsetw(12)drdatasetw(12)moneyendl;cout附加信息:endl;coutinfoendl;return 1;/输出对

23、应医生地址的信息值int LinkList:LinkListoutputdr(ListNode *p)if(!p)cout失败endl;exit(0);elsecoutsetw(8)医生编号setw(8)姓名setw(8)性别setw(8)年龄setw(12)联系电话setw(12)endl;coutsetw(8)datasetw(8)namesetw(8)sexsetw(8)eagesetw(12)telsetw(12)endl;cout附加信息:endl;coutinfonext; while(p!=0&p!=head) coutsetw(8)编号setw(8)姓名setw(8)性别set

24、w(8)年龄setw(12)联系电话setw(12)医生编号setw(12)医疗费用endl;coutsetw(8)datasetw(8)namesetw(8)sexsetw(8)eagesetw(12)telsetw(12)drdatasetw(12)moneyendl;cout附加信息:endl;coutinfonext; coutendl; coutnext;int l=LinkListLength(); int m=i%l; for(int g=1;gnext; p1-next=p2-next;for(int c=1;cnext;/将头结点放在第I个位置的前面p2=head;for(i

25、nt g=1;gnext;p2=0;coutdatanext=ListGetElem(1);p1 =ListGetElem(l-i);head-next=ListGetElem(l-i+1);p1-next=head;LinkListshuchu();return 0; /复制构造函数的实现方法:LinkList:LinkList(LinkList &List)head=new ListNode();ListNode*p=List.head-next,*q=head,*s;while(p)s=new ListNode;s-data=p-data,s-name=p-name,s-sex=p-se

26、x,s-eage=p-eage;s-tel=p-tel,s-drdata=p-drdata,s-money=p-money;q-next=s;q=s;p=p-next;q-next=0;/将线性链表置为空。void LinkList:LinkListClear() ListNode*p;while (head-next!=0)p=head-next;head-next=p-next;delete p;/返回单链表第i个结点的值。ListNode*LinkList:ListGetElem(int i)const if(inext;int j=1;while(p&jnext;+j;return p

27、;ListNode*LinkList:ListGet(int i)const if(inext;int j=1;while(p&jnext;+j;coutdata name sex eage tel ;coutdrdata moneynext;+count=0;while(p&p!=head)p=p-next;+count;return count;/重载赋值运算符。LinkList&LinkList:operator=(LinkList&List) if(this=&List)return *this;LinkListClear();ListNode*p=List.head-next,*q=

28、head,*s;while(p) s=new ListNode;s-data=p-data,s-name=p-name,s-sex=p-sex,s-eage=p-eage;s-tel=p-tel,s-drdata=p-drdata,s-money=p-money,s-info=p-info;q-next=s;q=s;p=p-next;q-next=0;return *this;/将病人信息插入到当前病人表中int LinkList:LinkListInsert(int &data,string &name,string &sex,int &eage,int &tel,string inf,in

29、t &drdata,int &money)/cout创建病人信息文件next=p-next;p-next=s; coutendl;LinkListoutput(s);cout插入数据在本地硬盘完成endl;coutendl;return 1;/将病人信息插入到当前病人表中int LinkList:LinkListInsertdr(int &data,string &name,string &sex,int &eage,int &tel,string inf)/cout创建医生信息文件next=p-next;p-next=s; coutendl;LinkListoutputdr(s);cout插

30、入数据在本地硬盘完成endl;return 1;/将数据元素e插在线性表第i哥结点之后int LinkList:LinkListInsertAfter(int i,int &e)return 0;/删除病人信息int LinkList:LinkListDelete()/根据对应地址删除病人信息即出院手续cout输入准备出院的病人编号:biaohao;ListNode *p;p=head-next;cout打印中信息中.;Sleep(5000);coutbiaohao号的病人出院,打印此病人的信息如下endl;LinkListoutput(ListLocateElem(biaohao);cout

31、请交纳住院治疗费用: moneyendl;cout恭喜你健康出院endl;/coutnum号的病人出院,是否打印此病人的信息endl;/cout打印请输入Y否则输入Nda;/if(da=y|da=Y)/LinkListoutput(ListLocateElem(num);while(p-data!=biaohao)p=p-next; ListNode *s; s=p;s-next=ListLocateElem(biaohao)-next; /delete ListLocateElem(num); return 1;/删除对应地址的病人信息/按编号查找病人信息并返回地址ListNode *Lin

32、kList:ListLocateElem(int e) constListNode *p;p=head-next;int i=0;if(head-next-data=e)return p;while(i=0&p-data!=e)+i;p=p-next;if(iLinkListLength()+1)return p;else cout没有对应编号的病人next;int i=0;if(head-next-name=na)return p;while(i=0&p-name!=na)+i;p=p-next;if(iLinkListLength()+1)return p;else cout没有对应姓名的

33、病人drdata;LinkListoutputdr(ListLocateElem(q-drdata);/coutsetw(8)医生编号setw(8)姓名setw(8)性别setw(8)年龄setw(12)联系电话setw(30)附加信息endl;/coutsetw(8)datasetw(8)namesetw(8)sexsetw(8)eagesetw(12)telsetw(30)infoendl;return 0;int LinkList:Listzhiliao(ListNode *p)int chu=1;cout当前病人需要治疗,请录入病人治疗的药品和对应总价价格价格和药品之间以空格隔开dat

34、a); /产生123 stringfile=file1+file2+file3;constchar *str = file.c_str();outdata.open(str,ios:app);/outdatasetw(8)编号setw(8)姓名setw(8)性别setw(8)年龄setw(12)联系电话setw(12)医生编号setw(12)医疗费用endl;/outdatasetw(8)dasetw(8)nasetw(8)sesetw(8)easetw(12)tesetw(12)drsetw(12)moendl;/outdata附加信息:endl;/outdatainfinfmoney;sprintf_s(file2, %d, money);p-info=p-info+inf;p-money=p-money+money;outdata.用药信息.endl;outdata药品setw(40)价格endl;outdatasetw(30)infsetw(5)moneyendl;outdata.close();coutendl;return 0;int LinkLi

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

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号