- 开发工具:IDEA /Webstrom
- 数据库:MYSQL5.7
- 使用框架springboot+vue
- 数据库:MYSQL5.7
本系统以医护端流程业务为基本需求,深入研究如何有效提高就诊效率,为医生书写病历、开药品提供便利化操作。在提高效率的同时兼顾医疗信息系统该有的网络权限以及安全机制,对输入的数据进行限制以及规范化处理,能减少医护人员失误操作带来的危害,也能主动对信息进行安全校验,减少医生、收费员人为进行校验的时间。优化患者的就医流程,有效减少患者在就诊时等待的时间。
项目分为门诊医生,门诊收费处,门诊药房三个模块。
模块功能:在系统中实现中病人门诊信息注册,医生登记、修改病人病历,在系统中对病人信息的读取。
医生可以在医生职能页面进行书写病历、注册病人、修改病人信息、开设医嘱。收费处可以在收费模块进行预交金充值、预交金管理、门诊药品扣费、单据作废、退预交金。药房可以在摆药界面进行扣费、摆药。
病人注册界面
病人信息查看界面
诊断录入辅助
开药弹窗显示
预交金充值图
预交金管理图
药房模块
药品扣费
通过idea打开后端项目hisSystem点击运行,
前端项目hisvue在控制终端中输入npm run dev等项目启动成功后
在浏览器输入http://localhost:8080/#/login即可访问本项目。
2.1前端依赖
前端使用依赖如下,可以在package.json中修改依赖配置。
2.2后端依赖
通过使用maven管理依赖,本系统使用依赖如下。可在pom.xml中修改依赖配置。
2.3数据库
将文件中的sql文件导入到MySQL数据库,数据库名称为hismdb,在后端项目中的application.properties文件中更改数据库配置。
为提升检索速率,结合诊疗项目的字典名以及拼音码在后端进行模糊查询。其主要代码如下:
searchDict(){ this.pageParam.current=1; this.selectDict(); //获取项目名称数据 }, //后端代码 @PostMapping("select") @ResponseBody public Result selectDiagnosis(@RequestBody com.zhaoshaoyu.hisSystem.entity.Page page){ System.out.println(page.getCurrent()); System.out.println(page.getQuery()); String query =page.getQuery(); Page diagnosisDictPage = new Page<>(page.getCurrent(),10); QueryWrapper wrapper = new QueryWrapper<>(); if (!StringUtils.isEmpty(query)) { wrapper.like("ICD10_NAME", query) .or() .like("SPELL_CODE",query); } diagnosisDictService.page(diagnosisDictPage, wrapper); long total = diagnosisDictPage.getTotal(); List list = diagnosisDictPage.getRecords(); return Result.success().data("list", list).data("total",total); }
计算药品价格代码如图下所示:
//根据输入的剂量、频次、天数自动计算预计发药量
calculateDrug(item,index){
if(Utils.isNullOrEmpty(item.days) || Utils.isNullOrEmpty(item.dose) || Utils.isNullOrEmpty(item.outpFreqCode)){
return
}
let estimatedDosage = Math.ceil((item.days * item.outpFreqCode * item.dose)/item.packageUnit)
let totalPrice ;
if(!Utils.isNullOrEmpty(estimatedDosage)){
totalPrice = (estimatedDosage * item.referenceRetailPrice)
}
this.$refs.table.editRow(index,{estimatedDosage:estimatedDosage})
this.$refs.table.editRow(index,{totalPrice:totalPrice})
},
收费代码如下
public Result insertAndUpdate(@RequestBody OutpConRecord outpConRecord) throws Exception {
OutpConRecord outpConRecordBefore = this.outpConRecordService.selectBalance(String.valueOf(outpConRecord.getPatientId()));
if(outpConRecord.getPaymentNo()==null){
outpConRecord.setBeforeBalance("0") ;
}
else {
outpConRecord.setBeforeBalance(outpConRecordBefore.getAfterBalance()) ;
}
Integer amount = null;
Integer beforeBalande = null;
if(outpConRecord.getAmount()!=null&&outpConRecord.getBeforeBalance()!=null){
amount = Integer.valueOf(outpConRecord.getAmount());
beforeBalande = Integer.valueOf(outpConRecord.getBeforeBalance());
}
Integer operationCode = null;
operationCode = Integer.valueOf(outpConRecord.getOperationCode());
if(operationCode==1 || operationCode==2){
outpConRecord.setAfterBalance(String.valueOf(beforeBalande+amount));
}else if(operationCode==3 || operationCode==4){
//退预交金 扣费
outpConRecord.setAfterBalance(String.valueOf(beforeBalande-amount));
}
boolean save = outpConRecordService.save(outpConRecord);
if (save) {
return Result.success().data("back", true);
} else {
return Result.error();
}
}



