Commit eeca824721cdd15093d3178897b65cf450750e72

Authored by yangfei
1 parent 07a58c853b

住院管理系统

Showing 9 changed files with 181 additions and 44 deletions

platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/PatientMarkHospitalMapper.java View file @ eeca824
... ... @@ -2,6 +2,7 @@
2 2  
3 3 import com.lyms.platform.permission.model.PatientMarkHospital;
4 4 import com.lyms.platform.permission.model.PatientMarkHospitalQuery;
  5 +import com.lyms.platform.permission.model.ReportMakeHosptail;
5 6  
6 7 import java.util.List;
7 8  
... ... @@ -17,6 +18,8 @@
17 18 public int queryPatientMarkHospitalCount(PatientMarkHospitalQuery query);
18 19  
19 20 public List<PatientMarkHospital> queryPatientMarkHospital(PatientMarkHospitalQuery query);
  21 +
  22 + public List<ReportMakeHosptail> reportPatMarkHospByMakeDoctor(PatientMarkHospitalQuery query);
20 23  
21 24 }
platform-biz-service/src/main/java/com/lyms/platform/permission/model/PatientService.java View file @ eeca824
... ... @@ -18,6 +18,10 @@
18 18 */
19 19 private Integer serType;
20 20 /**
  21 + * 服务类型(1-高危精准指导、2-体重、3-血糖、4-血压、5-专家咨询)
  22 + */
  23 + private String serTypes;
  24 + /**
21 25 * 指定医生
22 26 */
23 27 private String serDoct;
... ... @@ -77,6 +81,14 @@
77 81 * 退款人
78 82 */
79 83 private String backUser;
  84 +
  85 + public String getSerTypes() {
  86 + return serTypes;
  87 + }
  88 +
  89 + public void setSerTypes(String serTypes) {
  90 + this.serTypes = serTypes;
  91 + }
80 92  
81 93 public Date getBackDate() {
82 94 return backDate;
platform-biz-service/src/main/java/com/lyms/platform/permission/model/ReportMakeHosptail.java View file @ eeca824
  1 +package com.lyms.platform.permission.model;
  2 +
  3 +/**
  4 + * @auther yangfei
  5 + * @createTime 2017年09月25日 17时08分
  6 + * @discription 住院预约统计
  7 + */
  8 +public class ReportMakeHosptail {
  9 + //住院预约数
  10 + private int num;
  11 + //医生Id
  12 + private String doctorId;
  13 + //医生名称
  14 + private String doctorName;
  15 + //预约占比
  16 + private int occupCompar;
  17 +
  18 + public String getDoctorName() {
  19 + return doctorName;
  20 + }
  21 +
  22 + public void setDoctorName(String doctorName) {
  23 + this.doctorName = doctorName;
  24 + }
  25 +
  26 + public int getOccupCompar() {
  27 + return occupCompar;
  28 + }
  29 +
  30 + public void setOccupCompar(int occupCompar) {
  31 + this.occupCompar = occupCompar;
  32 + }
  33 +
  34 + public int getNum() {
  35 + return num;
  36 + }
  37 +
  38 + public void setNum(int num) {
  39 + this.num = num;
  40 + }
  41 +
  42 + public String getDoctorId() {
  43 + return doctorId;
  44 + }
  45 +
  46 + public void setDoctorId(String doctorId) {
  47 + this.doctorId = doctorId;
  48 + }
  49 +}
platform-biz-service/src/main/java/com/lyms/platform/permission/service/PatientMarkHospitalService.java View file @ eeca824
... ... @@ -2,6 +2,7 @@
2 2  
3 3 import com.lyms.platform.permission.model.PatientMarkHospital;
4 4 import com.lyms.platform.permission.model.PatientMarkHospitalQuery;
  5 +import com.lyms.platform.permission.model.ReportMakeHosptail;
5 6  
6 7 import java.util.List;
7 8  
... ... @@ -17,6 +18,8 @@
17 18 public int queryPatientMarkHospitalCount(PatientMarkHospitalQuery query);
18 19  
19 20 public List<PatientMarkHospital> queryPatientMarkHospital(PatientMarkHospitalQuery query);
  21 +
  22 + public List<ReportMakeHosptail> reportPatMarkHospByMakeDoctor(PatientMarkHospitalQuery query);
20 23  
21 24 }
platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/PatientMarkHospitalServiceImpl.java View file @ eeca824
... ... @@ -3,6 +3,7 @@
3 3 import com.lyms.platform.permission.dao.master.PatientMarkHospitalMapper;
4 4 import com.lyms.platform.permission.model.PatientMarkHospital;
5 5 import com.lyms.platform.permission.model.PatientMarkHospitalQuery;
  6 +import com.lyms.platform.permission.model.ReportMakeHosptail;
6 7 import com.lyms.platform.permission.service.PatientMarkHospitalService;
7 8 import org.springframework.beans.factory.annotation.Autowired;
8 9 import org.springframework.stereotype.Service;
... ... @@ -46,6 +47,11 @@
46 47 query.mysqlBuild(patientMarkHospitalMapper.queryPatientMarkHospitalCount(query));
47 48 }
48 49 return patientMarkHospitalMapper.queryPatientMarkHospital(query);
  50 + }
  51 +
  52 + @Override
  53 + public List<ReportMakeHosptail> reportPatMarkHospByMakeDoctor(PatientMarkHospitalQuery query) {
  54 + return patientMarkHospitalMapper.reportPatMarkHospByMakeDoctor(query);
49 55 }
50 56  
51 57 }
platform-biz-service/src/main/resources/mainOrm/master/PatientMarkHospital.xml View file @ eeca824
... ... @@ -261,6 +261,13 @@
261 261 </where>
262 262 </sql>
263 263  
  264 + <select id="reportPatMarkHospByMakeDoctor" resultType="com.lyms.platform.permission.model.ReportMakeHosptail"
  265 + parameterType="com.lyms.platform.permission.model.PatientMarkHospitalQuery">
  266 + select count(*) num,make_doctor as doctorId from patient_mark_hospital
  267 + <include refid="PatientMarkHospitalCondition"/>
  268 + GROUP BY make_doctor;
  269 + </select>
  270 +
264 271  
265 272 <select id="queryPatientMarkHospital" resultMap="PatientMarkHospitalResultMap"
266 273 parameterType="com.lyms.platform.permission.model.PatientMarkHospitalQuery">
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PatientServiceController.java View file @ eeca824
... ... @@ -169,8 +169,8 @@
169 169 return baseResponse;
170 170 }
171 171 //serType服务类型(1-高危精准指导、2-体重、3-血糖、4-血压、5-专家咨询)
172   - if(ps.getSerType()==null){
173   - baseResponse.setErrormsg("请传入serType");
  172 + if(ps.getSerTypes()==null){
  173 + baseResponse.setErrormsg("请传入serTypes");
174 174 baseResponse.setErrorcode(ErrorCodeConstants.PARAMETER_ERROR);
175 175 return baseResponse;
176 176 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientMarkHospServiceFacade.java View file @ eeca824
... ... @@ -10,10 +10,7 @@
10 10 import com.lyms.platform.common.utils.DateUtil;
11 11 import com.lyms.platform.operate.web.request.PatientMarkRequest;
12 12 import com.lyms.platform.operate.web.result.PatienMarkHospResult;
13   -import com.lyms.platform.permission.model.PatientMarkHospital;
14   -import com.lyms.platform.permission.model.PatientMarkHospitalLog;
15   -import com.lyms.platform.permission.model.PatientMarkHospitalQuery;
16   -import com.lyms.platform.permission.model.Users;
  13 +import com.lyms.platform.permission.model.*;
17 14 import com.lyms.platform.permission.service.PatientMarkHospitalLogService;
18 15 import com.lyms.platform.permission.service.PatientMarkHospitalService;
19 16 import com.lyms.platform.permission.service.UsersService;
... ... @@ -48,6 +45,62 @@
48 45 private LlfyHisService llfyHisService;
49 46  
50 47 /**
  48 + * 住院预约统计
  49 + * @param patientMarkRequest
  50 + * @param id
  51 + * @return
  52 + */
  53 + public BaseListResponse reportHospit(PatientMarkRequest patientMarkRequest, Integer id){
  54 + PatientMarkHospitalQuery query = new PatientMarkHospitalQuery();
  55 + //根据用户id获取医院ID
  56 + String hospitalId = autoMatchFacade.getHospitalId(id);
  57 + PatientMarkHospitalQuery patientMarkHospQuery = new PatientMarkHospitalQuery();
  58 + patientMarkHospQuery.setHospitalId(hospitalId);
  59 + PatientsQuery patientsQuery = new PatientsQuery();
  60 + List<Patients> patientses = null;
  61 + //根据查询号、当前孕周进行查询
  62 + if (null != patientMarkRequest.getcDueWeekStart() || null != patientMarkRequest.getcDueWeekEnd()) {
  63 + if (null != patientMarkRequest.getcDueWeekStart()) {
  64 + patientsQuery.setLastMensesEnd(DateUtil.addDay(DateUtil.parseYMD(DateUtil.getyyyy_MM_dd(new Date())), -(patientMarkRequest.getcDueWeekStart() * 7)));
  65 + }
  66 + if (null != patientMarkRequest.getcDueWeekEnd()) {
  67 + patientsQuery.setLastMensesStart(DateUtil.addDay(DateUtil.parseYMD(DateUtil.getyyyy_MM_dd(new Date())), -(patientMarkRequest.getcDueWeekEnd() * 7) - 6));
  68 + }
  69 + patientsQuery.setHospitalId(hospitalId);
  70 + patientses = patientsService.queryPatient1(patientsQuery, "modpatientsQueryified");
  71 + }
  72 +
  73 + if (CollectionUtils.isNotEmpty(patientses)) {
  74 + List<String> parentIds = new LinkedList<>();
  75 + for (Patients pa : patientses) {
  76 + parentIds.add(pa.getId());
  77 + }
  78 + patientMarkHospQuery.setPatientIds((String[]) parentIds.toArray(new String[parentIds.size()]));
  79 + } else if (null != patientMarkRequest.getcDueWeekStart() || null != patientMarkRequest.getcDueWeekEnd()) {
  80 + return new BaseListResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功");
  81 + }
  82 +
  83 + //统计数据
  84 + List<ReportMakeHosptail> reportMakeHosptails = patientMarkHospitalService.reportPatMarkHospByMakeDoctor(query);
  85 + //总数据
  86 + int count = patientMarkHospitalService.queryPatientMarkHospitalCount(query);
  87 + for(ReportMakeHosptail rm:reportMakeHosptails){
  88 + Users users = usersService.getUsers(Integer.parseInt(rm.getDoctorId()));
  89 + if (users != null) {
  90 + rm.setDoctorName(users.getName());
  91 + } else {
  92 + rm.setDoctorName("产检医生");
  93 + }
  94 + rm.setOccupCompar(rm.getNum()/count);
  95 + }
  96 + return new BaseListResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(reportMakeHosptails);
  97 + }
  98 +
  99 +
  100 +
  101 +
  102 +
  103 + /**
51 104 * 初始化接口
52 105 *
53 106 * @return
... ... @@ -184,8 +237,6 @@
184 237 * @param ps
185 238 * @return
186 239 */
187   - ;
188   -
189 240 public PatienMarkHospResult convertToResult(PatientMarkHospital ps) {
190 241 if (ps == null) {
191 242 return null;
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientServiceFacade.java View file @ eeca824
... ... @@ -117,45 +117,51 @@
117 117 public BaseResponse addPatientService(PatientService ps, Integer id) {
118 118 //根据用户id获取医院ID
119 119 String hospitalId = autoMatchFacade.getHospitalId(id);
  120 + String [] serTypes = ps.getSerTypes().split(",");
  121 + for (String psType : serTypes) {
120 122  
121   - //先根据孕妇id和开通服务类型、开通医生进行查询,如果已经开通过则开通失败
122   - PatientServiceQuery patientQuery = new PatientServiceQuery();
123   - patientQuery.setHospitalId(hospitalId);
124   - patientQuery.setParentid(ps.getParentid());
125   - patientQuery.setSerType(ps.getSerType());
126   - patientQuery.setSerDoct(ps.getSerDoct());
  123 + //先根据孕妇id和开通服务类型、开通医生进行查询,如果已经开通过则开通失败
  124 + PatientServiceQuery patientQuery = new PatientServiceQuery();
  125 + patientQuery.setHospitalId(hospitalId);
  126 + patientQuery.setParentid(ps.getParentid());
  127 + patientQuery.setSerType(Integer.parseInt(psType));
  128 + patientQuery.setSerDoct(ps.getSerDoct());
127 129  
128   - List<PatientService> patientServices = patientServiceService.queryPatientService(patientQuery);
129   - if (CollectionUtils.isNotEmpty(patientServices)) {
130   - BaseResponse baseResponse = new BaseResponse();
131   - baseResponse.setErrorcode(ErrorCodeConstants.DATA_EXIST);
132   - String serType = PatientSerEnums.SerTypeEnums.getTitle(ps.getSerType());
133   - String serDoct = "产检医生";
134   - Users users = usersService.getUsers(Integer.parseInt(ps.getSerDoct()));
135   - if (users != null) {
136   - serDoct = users.getName();
  130 + List<PatientService> patientServices = patientServiceService.queryPatientService(patientQuery);
  131 + if (CollectionUtils.isNotEmpty(patientServices)) {
  132 + continue;
  133 + // BaseResponse baseResponse = new BaseResponse();
  134 + // baseResponse.setErrorcode(ErrorCodeConstants.DATA_EXIST);
  135 + // String serType = PatientSerEnums.SerTypeEnums.getTitle(ps.getSerType());
  136 + // String serDoct = "产检医生";
  137 + // Users users = usersService.getUsers(Integer.parseInt(ps.getSerDoct()));
  138 + // if (users != null) {
  139 + // serDoct = users.getName();
  140 + // }
  141 + // baseResponse.setErrormsg("该孕妇已开通" + serDoct + "医生的" + serType + "服务,请勿重复开通");
  142 + // return baseResponse;
137 143 }
138   - baseResponse.setErrormsg("该孕妇已开通" + serDoct + "医生的" + serType + "服务,请勿重复开通");
139   - return baseResponse;
140   - }
141 144  
142   - Patients patients = patientsService.findOnePatientById(ps.getParentid());
143   - if(patients!=null){
144   - ps.setPid(patients.getPid());
  145 + Patients patients = patientsService.findOnePatientById(ps.getParentid());
  146 + if (patients != null) {
  147 + ps.setPid(patients.getPid());
  148 + }
  149 + ps.setId(UUID.randomUUID().toString().replace("-", ""));
  150 + ps.setHospitalId(hospitalId);
  151 + ps.setCreateDate(new Date());
  152 + ps.setCreateUser(String.valueOf(id));
  153 + //默认开通状态
  154 + ps.setSerStatus(PatientSerEnums.SerStatusEnums.kt.getId());
  155 + //服务类型
  156 + ps.setSerType(Integer.parseInt(psType));
  157 + //默认已经领取
  158 + ps.setStatus(2);
  159 + //领取时间
  160 + ps.setReceiveDate(new Date());
  161 + //领取操作医生id
  162 + ps.setReceiveUser(String.valueOf(id));
  163 + patientServiceService.addPatientService(ps);
145 164 }
146   - ps.setId(UUID.randomUUID().toString().replace("-", ""));
147   - ps.setHospitalId(hospitalId);
148   - // ps.setCreateDate(new Date());
149   - // ps.setCreateUser(String.valueOf(id));
150   - //默认开通状态
151   - ps.setSerStatus(PatientSerEnums.SerStatusEnums.kt.getId());
152   - //默认已经领取
153   - ps.setStatus(2);
154   - //领取时间
155   - ps.setReceiveDate(new Date());
156   - //领取操作医生id
157   - ps.setReceiveUser(String.valueOf(id));
158   - patientServiceService.addPatientService(ps);
159 165  
160 166 BaseResponse baseResponse = new BaseResponse();
161 167 baseResponse.setObject(ps.getId());