diff --git a/src/main/java/com/emr/controller/ObservationReportController.java b/src/main/java/com/emr/controller/ObservationReportController.java new file mode 100644 index 00000000..f7b6a72b --- /dev/null +++ b/src/main/java/com/emr/controller/ObservationReportController.java @@ -0,0 +1,51 @@ +package com.emr.controller; + +import com.emr.entity.Archive_Master_Vo; +import com.emr.entity.OffsetLimitPage; +import com.emr.service.Observation_ReportService; +import com.emr.util.ThreadExcelUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletResponse; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; + +@Controller +@RequestMapping("/observationReport") +public class ObservationReportController { + @Autowired + private Observation_ReportService observationReportService; + + @RequestMapping(value = "/observationReport") + public String inHospitals(Model model) { + //return "beHospitaledDir/beHospListNow"; + return "observationReport/observationReportList"; + } + + @ResponseBody + @RequestMapping(value = "/getObservationReportPage") + public OffsetLimitPage getObservationReportList(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit) { + OffsetLimitPage result = observationReportService.getObservationReportList(archiveMasterVo, offset, limit); + return result; + } + + @ResponseBody + @RequestMapping(value = "/exportExcel") + public void exportExcel(HttpServletResponse response, Archive_Master_Vo master) throws Exception { + response.setContentType("application/vnd.ms-excel;charset=UTF-8"); + String[] header = {"归档病历总数","迟交病历总数","已质控病历总数","退回急诊室总数","主管医生"}; + String[] fileNames = {"fileNum","delayNum","qualityNum","backNum","doctorInCharge"}; + //文件名 + String fileName = "急诊留观病历报表" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".xls"; + //构造excel的数据 + List list = observationReportService.getObservationReportList(master); + ThreadExcelUtils utils = new ThreadExcelUtils(fileName, "", header, fileNames); + utils.exportExcelToFilePath(response,utils.listConvert(list)); + } +} + diff --git a/src/main/java/com/emr/dao/Archive_MasterMapper.java b/src/main/java/com/emr/dao/Archive_MasterMapper.java index 128c4fd1..47986e9e 100644 --- a/src/main/java/com/emr/dao/Archive_MasterMapper.java +++ b/src/main/java/com/emr/dao/Archive_MasterMapper.java @@ -162,6 +162,12 @@ public interface Archive_MasterMapper { */ List getObservationRecordList(Archive_Master_Vo master); + /** + * 查询急诊留观病历报表 + * @param master + * @return + */ + ListgetObservationReportList(Archive_Master_Vo master); /** * 封存查询记录 diff --git a/src/main/java/com/emr/entity/Archive_Master_Vo.java b/src/main/java/com/emr/entity/Archive_Master_Vo.java index 550013e9..d135240c 100644 --- a/src/main/java/com/emr/entity/Archive_Master_Vo.java +++ b/src/main/java/com/emr/entity/Archive_Master_Vo.java @@ -166,6 +166,18 @@ public class Archive_Master_Vo { private String remark; + //归档总数 + private Integer fileNum; + + //迟交病历总数 + private Integer delayNum; + + //已质控病历总数 + private Integer qualityNum; + + //退回急诊室总数 + private Integer backNum; + public String getFaultDoctorNum() { return faultDoctorNum; } @@ -740,6 +752,38 @@ public class Archive_Master_Vo { public void setRemark(String remark) { this.remark = remark; } + + public Integer getFileNum() { + return fileNum; + } + + public void setFileNum(Integer fileNum) { + this.fileNum = fileNum; + } + + public Integer getDelayNum() { + return delayNum; + } + + public void setDelayNum(Integer delayNum) { + this.delayNum = delayNum; + } + + public Integer getQualityNum() { + return qualityNum; + } + + public void setQualityNum(Integer qualityNum) { + this.qualityNum = qualityNum; + } + + public Integer getBackNum() { + return backNum; + } + + public void setBackNum(Integer backNum) { + this.backNum = backNum; + } } diff --git a/src/main/java/com/emr/service/Observation_ReportService.java b/src/main/java/com/emr/service/Observation_ReportService.java new file mode 100644 index 00000000..1be78ddb --- /dev/null +++ b/src/main/java/com/emr/service/Observation_ReportService.java @@ -0,0 +1,33 @@ +/** + * Copyright (C), 2015-2019 + * Author: HJL + * Date: 2019/7/19 15:27 + * Description:患者住院信息主索引表 + */ +package com.emr.service; + +import com.emr.entity.Archive_Master_Vo; +import com.emr.entity.OffsetLimitPage; + +import java.util.List; + +public interface Observation_ReportService{ + + /** + * 根据条件查找急诊留观病历报表分页 + * + * @param archiveMasterVo + * @return + */ + OffsetLimitPage getObservationReportList(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit); + + /** + * 根据条件查找急诊留观病历报表 + * + * @param archiveMasterVo + * @return + */ + List getObservationReportList(Archive_Master_Vo archiveMasterVo); +} + + diff --git a/src/main/java/com/emr/service/ipml/Observation_ReportServiceImpl.java b/src/main/java/com/emr/service/ipml/Observation_ReportServiceImpl.java new file mode 100644 index 00000000..fa5bfa6a --- /dev/null +++ b/src/main/java/com/emr/service/ipml/Observation_ReportServiceImpl.java @@ -0,0 +1,68 @@ +package com.emr.service.ipml; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.emr.dao.Archive_MasterMapper; +import com.emr.entity.Archive_Master_Vo; +import com.emr.entity.OffsetLimitPage; +import com.emr.service.Observation_ReportService; +import com.emr.service.PowerUserService; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; +import com.google.common.base.Function; +import com.google.common.collect.Maps; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +@Slf4j +@Service +public class Observation_ReportServiceImpl implements Observation_ReportService { + @Autowired + private Archive_MasterMapper archiveMasterMapper; + + @Autowired + private PowerUserService powerUserService; + + @Override + public OffsetLimitPage getObservationReportList(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit) { + PageHelper.offsetPage(offset, limit); + List list=selectByCol(archiveMasterVo); + return new OffsetLimitPage((Page) list); + } + + @Override + public List getObservationReportList(Archive_Master_Vo archiveMasterVo) { + return selectByCol(archiveMasterVo); + } + + public List selectByCol(Archive_Master_Vo archiveMasterVo) { + List list=archiveMasterMapper.getObservationReportList(archiveMasterVo); + if(list!=null && list.size()>0) { + JSONArray powerUsers = powerUserService.getPowerUserList("1"); + List powerUserList = JSONArray.parseArray(powerUsers.toJSONString(), JSONObject.class); + if (powerUserList != null) { + Map mappedMovies = Maps.uniqueIndex(powerUserList, new Function() { + @Override + public String apply(JSONObject temp) { + return temp.getString("userName"); + } + }); + for (Archive_Master_Vo archiveMaster : list) { + //主管医生 + JSONObject userInfo = mappedMovies.get(archiveMaster.getDoctorInCharge()); + if (userInfo == null) { + archiveMaster.setDoctorInCharge(archiveMaster.getDoctorInCharge()); + } else { + archiveMaster.setDoctorInCharge(userInfo.getString("name")); + } + } + } + } + return list; + } + +} diff --git a/src/main/resources/mapper/Archive_MasterMapper.xml b/src/main/resources/mapper/Archive_MasterMapper.xml index e6d84761..a780fb9a 100644 --- a/src/main/resources/mapper/Archive_MasterMapper.xml +++ b/src/main/resources/mapper/Archive_MasterMapper.xml @@ -100,6 +100,10 @@ + + + + id, patient_id, inp_no, visit_id, name, sex, dept_name, discharge_date_time, ArchiveState, @@ -1789,6 +1793,101 @@ AND death_flag = #{deathFlag} + + + + + +
+ +
+ + - + +
+
+
+ + +
+
+ + +
+ + + + + + +
+
+
+
+ +
+ +
+
+ + + + + + \ No newline at end of file