PTS_医院处方管理系统.docx
设计流程I、系统分析处方跟踪系统(PTS)参加者为CUSIOmcr,ClZOmCr可实现三个操作,住询客户信息,查询处方信息,告询药物信息.PTS系统的用例图如图4.1所示:H4.1PTS系统用例图说明:该系统分为:查询处方信息模块、查询药物信息模块及用户信息模块。其中杳询药物信息模块实现了处方跟踪系统要求实现的包询药物信息及其是否可以替代及相应替代药物的功能。查询处方信息模块实现了处方跟踪系统要求实现的查询处方信息及处方运用时间的功能。2、系统设计本系统涉及3个类:分别是CustomersMedicine和Prescriptiont,图4.2为PTS系统类图:图4.2PTS系统类图3、数据字典PTS处方跟踪系统:类 用户(Cusiomer):具有查询本系统中各项项信息的人,是本系统的参加者。 药物(Mcdicinc):客户所运用处方中的一系列药物。 处方(Prescription):客户所用的一系列处方。属性 CUSIomer.name:每个用户的用户名。 CUSlomer.TeIephcneNumber:每个用户相对应的用户号码. CustonwEbirthday:每个用户的生日。 CUSIOmCrjnSUmnCCPrOVidCr:每个用户投保的医疗保险公司。 CUSlomer.lnsurancePolicyNumber:每个用户的保单号。 Medicine.nane:每种药物的药物名称. MCdiCinC.Unit:每种药物的单位。 MediCine.Number:每种药物的数量。 MediCine.Effect:每种药物的副作用。 PrescriptionJD:处方ID号 Prewripiion.Dale:开处方H期 Prescription.EndDatc:处方完毕“期 Prescription.PhysicianName:开处方医生的姓名 Prescription-Custonier:开给处方的客户 Precrition.Nunber:己给药次数Prcscriptioiuolal:处方方约总数方法 方法:displayPrescription() 所属类:Customer 首3J:publicvoiddisplayPrcscription() 描述:对记录做推断,假如record中记录为空,那么提示没有该用户。假如有,那么打印输出用户信息和处方的历史。 方法:rccord() 所属类:CUStomer 首部:publicvoidrecord(Prescripionp) 描述:保持客户类与处方类关联的一样性. 方法:isGiveMedicine() 所屈类:PreSCriPliOn 首部:PubliCbooleanisGivcd11g(intn) 描述:n为给药的次数,而gctnum。是总共给药的次数.通过推断总共给药的次数是否大于给药的次数。假如大于,那么条件允许再安排剩余的次数。否那么,那么不允许。 方法:isExtimc 所属类:PreSCriPtiOn 首部:publicbooleanisExtime() 描述:通过推断处方所给出的完毕日期与当前日期的先后依次得出是否过期。五、程序清单importjava,uti1.Array1.ist;importjava.util.Date:/*处方类/publicclassPrescription(privateStringID;处方ID号privateDatedate;/开处方日期privateDateenddale;/处方完毕11期privateintnumber;/已给药次数privateinttotal;处方给药总数privateCustomerCUStO*er:开给处方的客户privateArray1.ist<Medicine>pm:publicPrescription(Stringid.Datedate,Dateenddate,intnumber,inttotal)this.ID=id:this.date=date;this.enddate=enddate:this,number=nu三ber;this,total三total;PB=newArray1.ist<Medicine>();)publicArray1.ist<Me<licine>getPmO(returnpm;)publicvoidsetPn(Medicinem)(pn.add(m):)publicvoidSetNumber(intnumber)this,number三nunber;)publicintgetNmber()returnnumber;)publicDategeDate()returndate;)publicvoidsetl)ate(l)atedate),.this.date=date;)publicvoidSetTotal(inttotal)this,total=total:)publicintRCITolaIoreturntotal;)publicDategeEnddate<)'returnenddate;publicvoidsetEnddate(Dateenddate)(this.enddate=enddate;)publicStringgetID()returnID;)publicvoidSetlD(Stringid)(ID=id;)publicCustomergetCusto三*r()returncustomer:)publicvoidsetCusto三er(Customercustomer)this.customer=customer;pub!icbooleanisGivemedicine()tSystem.out.println(*t以给药次数:this.getNunberO):returnIrUo;/处方是否已过期publicbooleanisExtime()(Datenw=newDate(System.CurrenlTimeMi11is();if(nov.after(this,enddate)(/Syste<11.ont.print("处方已过期”);returntrue;elsereturnfalse;)/显示处方信息publicvoiddisplay()System.out.print(*t处方ID号:*+this.gelIDO);Systei1.out.print(t处方日期:w+this.getDateOtoString():System,out.print(,t处方终止U期"+this.getEnddateO.toString();System.out.println(*t批准的再次绐药次数:”+(this.getTotal()-this.nu三ber);for(Medicinem:pa)System,out.Println("t"m.getName()+”*+m.getNua()+三.getunit()+*-*m.getEffect0);*PTS驱动类/importjava.sql.Date:importjava.Uti1.Array1.ist;publicclassPTSpublicstaticrray1.ist<Prcscrition>prescriptionrecord;publicstaticvoidmain(Stringargs)(/TODOAUtO-generatedmethodstubCUStOeercl.c2,c3,c4;定义四个客户:Medicineml,m2,m3,-1.11>5;定义五种药物:Prescriptionp1,2,p3;定义三个处方。初始化cl=newCustmerC张艺","06/12","长沙移动",c2=newCustgerf李景普","","07/12-,”郴州移动","12”);c3=newCuslscrC王明",",-0812"商丘移动,"13"):c4=newCUStger("赵虎".飞9/12'"湖南移动"14");ml=newYediCiner为碳素”富升100,”可能会出现抽搐,皮肤播痒等病症;m2=newMCdiCinCC1阿司贝林”盒M1可能会出现皮肤红肿等病瘠”);m3-newMCdiCiner钙片片二5,"可能会出现痉索病症”):m4=neMedicine("筋荀糖亲升,700,可能会出现头虻病症");m5=newMediCiner三株口服液","精",9,"可能会出现头疼等病症”):/添加药物的替代药物ml.addreMedicine(m3);ml.addreMedicinel);2.addreMedicine(m5);m4.addroMedicine(m2);11>4.addreMedicine(m3):ml.addreMedicine(m1);Datedate!=Date.value()f(*2007-02-01*);Dateenddate1=Date.valueOfC2007-02-15*);pl=newPrescription(*1datel,enddate1»5,5);pl.setF(ml);pl.seth11(m3);pl,setPm(m5);Datedate2二Date.valuef(*20070228*);DateCnddale2=Date.value()f(*2007-03-05*);p2=newPrescription(*2date2,enddate2,3,6);p2.SCtPm(m2);p2.setPtt(m4);Datedate3=Date,valef(*2007-06-07*);Dateenddale3=Date,valucf(*2007-06-11*):p3-newPrescription(*3*tdate3,enddate3,4.5);p3.seth11(ml);p3.setPm(m2);添加处方记录cl.record(pl);cl.record(p3):c2.record(p2);c2.record(pl):c3.record(pl);c3,record(p2):c3.record(p3);c4.record(p2):/显示某客户的处方历史记录Systc三.out.rintln(*);Systea.out.printing客户的处方历史记录;Systes.out.printIn(>Q);C1.diSPlay():cl.JisplayPrcscription();/c2.disPlayO:c2.disp1ayPrescription():/c3.display();c3.(IisplayPrescriptionO;/c4.(IisPlayO:c*l.displayPrescription():显示特定药物的通用替代药物济维Sys