소스 검색

手术安排初步能用了

lighter 2 년 전
부모
커밋
02a80542fe

+ 25 - 7
src/main/java/thyyxxk/webserver/controller/surgicalmanagement/SurgeryArrangementController.java

@@ -3,33 +3,51 @@ package thyyxxk.webserver.controller.surgicalmanagement;
 import org.springframework.web.bind.annotation.*;
 import thyyxxk.webserver.entity.ResultVo;
 import thyyxxk.webserver.entity.datamodify.GetDropdownBox;
+import thyyxxk.webserver.entity.dictionary.CodeName;
 import thyyxxk.webserver.entity.surgeryarrangement.ShouShuChaXun;
 import thyyxxk.webserver.entity.zhuyuanyisheng.shoushu.OpRecord;
-import thyyxxk.webserver.service.surgicalmanagement.SurgeryArrangementServer;
+import thyyxxk.webserver.service.surgicalmanagement.SurgeryArrangementService;
 
 import java.util.List;
 
 @RestController
 @RequestMapping("/surgeryArrangement")
 public class SurgeryArrangementController {
-    private final SurgeryArrangementServer server;
+    private final SurgeryArrangementService service;
 
-    public SurgeryArrangementController(SurgeryArrangementServer server) {
-        this.server = server;
+    public SurgeryArrangementController(SurgeryArrangementService server) {
+        this.service = server;
     }
 
     @GetMapping("/getASurgicalWard")
     public ResultVo<List<GetDropdownBox>> getASurgicalWard() {
-        return server.getASurgicalWard();
+        return service.getASurgicalWard();
     }
 
     @PostMapping("/huoQuShouShuAnPaiXinXi")
     public ResultVo<List<OpRecord>> huoQuShouShuAnPaiXinXi(@RequestBody ShouShuChaXun param) {
-        return server.huoQuShouShuAnPaiXinXi(param);
+        return service.selectSurgeryArrangements(param);
     }
 
     @PostMapping("/modifySurgeryTime")
     public ResultVo<String> modifySurgeryTime(@RequestBody OpRecord param) {
-        return server.modifySurgeryTime(param);
+        return service.modifySurgeryTime(param);
+    }
+
+    @GetMapping("/getSurgeryRooms")
+    public ResultVo<List<CodeName>> getSurgeryRooms() {
+        return service.getSurgeryRooms();
+    }
+
+    @GetMapping("/cancelSurgery")
+    public ResultVo<String> cancelSurgery(@RequestParam("recordId") Integer recordId) {
+        return service.cancelSurgery(recordId);
+    }
+
+    @GetMapping("/updateArrangement")
+    public ResultVo<String> updateArrangement(@RequestParam("recordId") Integer recordId,
+                                              @RequestParam("key") String key,
+                                              @RequestParam("value") String value) {
+        return service.updateArrangement(recordId, key, value);
     }
 }

+ 17 - 0
src/main/java/thyyxxk/webserver/controller/surgicalmanagement/SurgeryRecordController.java

@@ -0,0 +1,17 @@
+package thyyxxk.webserver.controller.surgicalmanagement;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import thyyxxk.webserver.service.surgicalmanagement.SurgeryRecordService;
+
+@RestController
+@RequestMapping("/surgeryRecord")
+public class SurgeryRecordController {
+    private final SurgeryRecordService service;
+
+    @Autowired
+    public SurgeryRecordController(SurgeryRecordService service) {
+        this.service = service;
+    }
+}

+ 40 - 111
src/main/java/thyyxxk/webserver/dao/his/surgicalmanagement/SurgeryArrangementDao.java

@@ -7,6 +7,7 @@ import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.Update;
 import thyyxxk.webserver.entity.datamodify.GetDropdownBox;
+import thyyxxk.webserver.entity.dictionary.CodeName;
 import thyyxxk.webserver.entity.zhuyuanyisheng.shoushu.OpRecord;
 
 import java.util.List;
@@ -19,119 +20,47 @@ public interface SurgeryArrangementDao {
             "order by dept_code, ward_code")
     List<GetDropdownBox> getASurgicalWard();
 
-    @Select("SELECT record_id=a.record_id," +
-            "       op_start_date, " +
-            "       op_end_date, " +
-            "       anst_start_date," +
-            "       anst_end_date, " +
-            "       req_date = a.req_date, " +
-            "       zy_serial_no=a.zy_serial_no, " +
-            "       op_times=a.op_times, " +
-            "       patient_name=a.patient_name, " +
-            "       dept_code=a.dept_code, " +
-            "       ward_code=a.ward_code, " +
-            "       apply_date=a.apply_date, " +
-            "       apply_user=a.apply_user, " +
-            "       apply_doc=a.apply_doc, " +
-            "       schedule_date=a.schedule_date, " +
-            "       schedule_user=a.schedule_user, " +
-            "       status=a.status, " +
-            "       patient_type=a.patient_type, " +
-            "       act_order_no=a.act_order_no, " +
-            "       op_code=a.op_code, " +
-            "       op_name=a.op_name, " +
-            "       op_datetime=a.op_datetime, " +
-            "       room_code=a.room_code, " +
-            "       room_name=(select rtrim(name) from op_zd_room where op_zd_room.code = a.room_code), " +
-            "       op_group_code=a.op_group_code, " +
-            "       hocus_code=a.hocus_code, " +
-            "       hocus_name = (select rtrim(name) from zd_anaesthesia where zd_anaesthesia.code = a.hocus_code), " +
-            "       diag_before_op=a.diag_before_op, " +
-            "       diag_after_op=a.diag_after_op, " +
-            "       infection_flag=a.infection_flag, " +
-            "       urgent_clinic_flag=a.urgent_clinic_flag, " +
-            "       avocation_flag=a.avocation_flag, " +
-            "       blood_amount=a.blood_amount, " +
-            "       blood_type=a.blood_type, " +
-            "       op_stastics_id=a.op_stastics_id, " +
-            "       isolation_indicator=a.isolation_indicator, " +
-            "       op_scale=a.op_scale, " +
-            "       op_endtime=a.op_endtime, " +
-            "       diag_before_code=a.diag_before_code, " +
-            "       diag_after_code=a.diag_after_code, " +
-            "       hbsag=a.hbsag, " +
-            "       body_code=a.body_code, " +
-            "       part_code=a.part_code, " +
-            "       specialreq_code=a.specialreq_code, " +
-            "       instrument_code=a.instrument_code, " +
-            "       aspesis_scale=a.aspesis_scale, " +
-            "       remark=a.remark, " +
-            "       op_dept=a.op_dept, " +
-            "       input_id=a.input_id, " +
-            "       input_date=a.input_date, " +
-            "       req_id=a.req_id, " +
-            "       req_date=a.req_date, " +
-            "       last_modify_id=a.last_modify_id, " +
-            "       arrange_id=a.arrange_id, " +
-            "       arrange_date=a.arrange_date, " +
-            "       inpatient_no=a.inpatient_no, " +
-            "       admiss_times=a.admiss_times, " +
-            "       cancel_id=a.cancel_id, " +
-            "       cancel_time=a.cancel_time, " +
-            "       doctor_zd=b.doctor_zd, " +
-            "       doctor_zd_name = (select rtrim(name) from a_employee_mi where a_employee_mi.code = doctor_zd), " +
-            "       doctor_mz=b.doctor_mz, " +
-            "       doctor_1 =b.doctor_1, " +
-            "       doctor_2 =b.doctor_2, " +
-            "       nurse_xh =b.nurse_xh, " +
-            "       nurse_xh_name = (select rtrim(name) from a_employee_mi where a_employee_mi.code = nurse_xh), " +
-            "       nurse_qx =b.nurse_qx, " +
-            "       nurse_qx_name = (select rtrim(name) from a_employee_mi where a_employee_mi.code = nurse_qx), " +
-            "       bed_no=a.bed_no, " +
-            "       sex = case when isnull(c.sex, '') = '' then '' when c.sex = '1' then '男' else '女' end, " +
-            "       sstc=a.sstc, " +
-            "       age=case " +
-            "               when c.birth_date is null then ' ' " +
-            "               when datediff(year, c.birth_date, a.op_datetime) > 14 then " +
-            "                       convert(char(2), datediff(year, c.birth_date, a.op_datetime)) + '岁' " +
-            "               when datediff(dd, c.birth_date, a.op_datetime) >= 365 then " +
-            "                       convert(char(2), datediff(dd, c.birth_date, a.op_datetime) / 365) + '岁' + " +
-            "                       convert(char(2), ((datediff(dd, c.birth_date, a.op_datetime) / 30) % 12)) + '月' " +
-            "               when datediff(dd, c.birth_date, a.op_datetime) < 30 then " +
-            "                       convert(char(2), case datediff(dd, c.birth_date, a.op_datetime) " +
-            "                                            when 0 then 1 " +
-            "                                            else datediff(dd, c.birth_date, a.op_datetime) end) + '天' " +
-            "               else convert(char(2), datediff(dd, c.birth_date, a.op_datetime) / 30) + '月' end, " +
-            "       tw_flag=a.tw_flag, " +
-            "       doctor_mz_ys=b.doctor_mz_ys, " +
-            "       doctor_mz_ys_name=(select rtrim(name) from a_employee_mi where a_employee_mi.code = b.doctor_mz_ys), " +
-            "       doctor_mz_hs=b.doctor_mz_hs, " +
-            "       doctor_mz_hs_name=(select rtrim(name) from a_employee_mi where a_employee_mi.code = b.doctor_mz_hs), " +
-            "       ssbc=a.ssbc, " +
-            "       pd=(select max(e.admiss_times) " +
-            "           from zy_detail_charge e " +
-            "           where e.inpatient_no = a.inpatient_no " +
-            "             and e.admiss_times = a.admiss_times " +
-            "             and exec_unit = '1300000' " +
-            "             and e.charge_date >= a.op_datetime " +
-            "           group by e.inpatient_no, e.admiss_times), " +
-            "       doctor_zd_sj=b.doctor_zd_sj " +
-            "FROM op_record a, " +
-            "     op_record_join b, " +
-            "     a_patient_mi c " +
-            "where a.record_id = b.record_id " +
-            "  and a.inpatient_no = c.inpatient_no and " +
-            " ${ew.sqlSegment} " +
-            " order by a.urgent_clinic_flag desc ")
+    @Select("select a.record_id,op_start_date,op_end_date,anst_start_date,anst_end_date,a.sstc,a.req_date, " +
+            "a.zy_serial_no,a.op_times,a.patient_name,a.dept_code,a.ward_code,a.apply_date,a.apply_user,a.apply_doc, " +
+            "a.schedule_date,a.schedule_user,a.status,a.patient_type,a.act_order_no,a.op_code,a.op_name,a.op_datetime, " +
+            "a.room_code,room_name=(select rtrim(d.name) from op_zd_room d where d.code=a.room_code),a.op_group_code, " +
+            "a.hocus_code,hocus_name=(select rtrim(d.name) from zd_anaesthesia d where d.code=a.hocus_code), " +
+            "a.diag_before_op,a.diag_after_op,a.infection_flag,a.urgent_clinic_flag,a.avocation_flag,a.blood_amount, " +
+            "a.blood_type,a.op_stastics_id,a.isolation_indicator,a.op_scale,a.op_endtime,a.diag_before_code, " +
+            "a.diag_after_code,a.hbsag,a.body_code,a.part_code,a.specialreq_code,a.instrument_code,a.aspesis_scale, " +
+            "a.remark,a.op_dept,a.input_id,a.input_date,a.req_id,a.req_date,a.last_modify_id,a.arrange_id, " +
+            "a.arrange_date,a.inpatient_no,a.admiss_times,a.cancel_id,a.cancel_time,b.doctor_zd,b.doctor_mz, " +
+            "b.doctor_1,b.doctor_2,b.nurse_xh,b.nurse_qx,a.bed_no," +
+            "chargeSum=(select sum(d.charge_amount) from zy_detail_charge d where " +
+            "d.inpatient_no=a.inpatient_no and d.ss_code=a.record_id), " +
+            "sex=case when c.sex='1' then '男' else '女' end, " +
+            "age=case when c.birth_date is null then '' " +
+            "when datediff(year, c.birth_date, a.op_datetime) > 14 then  " +
+            "convert(varchar(2), datediff(year, c.birth_date, a.op_datetime)) + '岁' " +
+            "when datediff(dd, c.birth_date, a.op_datetime) >= 365 then " +
+            "convert(varchar(2), datediff(dd, c.birth_date, a.op_datetime) / 365) + '岁' + " +
+            "convert(varchar(2), ((datediff(dd, c.birth_date, a.op_datetime) / 30) % 12)) + '月' " +
+            "when datediff(dd, c.birth_date, a.op_datetime) < 30 then " +
+            "convert(varchar(2), case datediff(dd, c.birth_date, a.op_datetime) " +
+            "when 0 then 1 else datediff(dd, c.birth_date, a.op_datetime) end) + '天'  " +
+            "else convert(varchar(2), datediff(dd, c.birth_date, a.op_datetime) / 30) + '月' end, " +
+            "a.tw_flag,b.doctor_mz_ys,b.doctor_mz_hs,rtrim(a.ssbc) as ssbc,b.doctor_zd_sj " +
+            "FROM op_record a,op_record_join b,a_patient_mi c " +
+            "where a.record_id=b.record_id and a.inpatient_no=c.inpatient_no and " +
+            " ${ew.sqlSegment} order by a.urgent_clinic_flag desc")
     List<OpRecord> huoQuShouShuAnPaiXinXi(@Param(Constants.WRAPPER) QueryWrapper<?> queryWrapper);
 
+    @Select("select code,name,status_flag from op_zd_room")
+    List<CodeName> selectSurgeryRooms();
 
-    @Update("update op_record " +
-            "set op_start_date   = #{opStartDate}, " +
-            "    op_end_date     = #{opEndDate}, " +
-            "    anst_start_date = #{anstStartDate}, " +
-            "    anst_end_date   = #{anstEndDate} " +
-            "where record_id = #{recordId} " +
-            "  and inpatient_no = #{inpatientNo}")
+    @Update("update op_record set op_start_date=#{opStartDate},op_end_date=#{opEndDate}, " +
+            "anst_start_date=#{anstStartDate},anst_end_date=#{anstEndDate} " +
+            "where record_id=#{recordId} and inpatient_no=#{inpatientNo}")
     void modifySurgeryTime(OpRecord pojo);
+
+    @Update("update op_record set status='d' where record_id=#{recordId}")
+    void cancelSurgery(Integer recordId);
+
+    @Update("update ${table} set ${column}=#{value} where record_id=#{id}")
+    void updateArrangement(String table, String column, String value, Integer id);
 }

+ 6 - 11
src/main/java/thyyxxk/webserver/entity/surgeryarrangement/ShouShuChaXun.java

@@ -16,23 +16,18 @@ public class ShouShuChaXun {
     private String patNo;
 
     /**
-     * {code: 1, name: '申请'},
-     * {code: 2, name: '安排'},
-     * {code: 3, name: '取消'},
-     * {code: 4, name: '全部'},
+     *   { code: '0', name: '全部'},
+     *   { code: '1', name: '申请' },
+     *   { code: '2', name: '安排' },
+     *   { code: '3', name: '确认' },
+     *   { code: 'd', name: '取消' },
      */
-    private int status;
+    private String status;
 
     private String startTime;
 
     private String endTime;
 
-    /**
-     * opDatetime 手术
-     * applyDate 申请
-     */
-    private String dateType;
-
     /**
      * 急诊
      */

+ 6 - 2
src/main/java/thyyxxk/webserver/entity/zhuyuanyisheng/shoushu/OpRecord.java

@@ -108,7 +108,7 @@ public class OpRecord implements Serializable {
      * 麻醉方式
      */
     private String hocusCode;
-    private String hocusCodeName;
+    private String hocusName;
     /**
      * 术后诊断
      */
@@ -260,7 +260,7 @@ public class OpRecord implements Serializable {
     /**
      * statusFlag
      */
-    private Integer statusFlag;
+    private String statusFlag;
     /**
      * wardDept
      */
@@ -356,6 +356,10 @@ public class OpRecord implements Serializable {
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date anstEndDate;
 
+    /**
+     * 是否有收费,chargeSum>0:有, 其他无
+     * */
+    private Integer chargeSum;
 
     public String getStatusName() {
         if (this.status == null) {

+ 37 - 10
src/main/java/thyyxxk/webserver/service/surgicalmanagement/SurgeryArrangementServer.java → src/main/java/thyyxxk/webserver/service/surgicalmanagement/SurgeryArrangementService.java

@@ -1,6 +1,5 @@
 package thyyxxk.webserver.service.surgicalmanagement;
 
-import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -8,9 +7,11 @@ import thyyxxk.webserver.config.exception.ExceptionEnum;
 import thyyxxk.webserver.dao.his.surgicalmanagement.SurgeryArrangementDao;
 import thyyxxk.webserver.entity.ResultVo;
 import thyyxxk.webserver.entity.datamodify.GetDropdownBox;
+import thyyxxk.webserver.entity.dictionary.CodeName;
 import thyyxxk.webserver.entity.surgeryarrangement.ShouShuChaXun;
 import thyyxxk.webserver.entity.zhuyuanyisheng.shoushu.OpRecord;
 import thyyxxk.webserver.service.PublicServer;
+import thyyxxk.webserver.service.redislike.RedisLikeService;
 import thyyxxk.webserver.utils.ListUtil;
 import thyyxxk.webserver.utils.ResultVoUtil;
 import thyyxxk.webserver.utils.StringUtil;
@@ -19,25 +20,27 @@ import java.util.List;
 
 @Service
 @Slf4j
-public class SurgeryArrangementServer {
+public class SurgeryArrangementService {
     private final SurgeryArrangementDao dao;
+    private final RedisLikeService redis;
 
-    public SurgeryArrangementServer(SurgeryArrangementDao dao) {
+    public SurgeryArrangementService(SurgeryArrangementDao dao, RedisLikeService redis) {
         this.dao = dao;
+        this.redis = redis;
     }
 
     public ResultVo<List<GetDropdownBox>> getASurgicalWard() {
         return ResultVoUtil.success(dao.getASurgicalWard());
     }
 
-    public ResultVo<List<OpRecord>> huoQuShouShuAnPaiXinXi(ShouShuChaXun param) {
+    public ResultVo<List<OpRecord>> selectSurgeryArrangements(ShouShuChaXun param) {
         QueryWrapper<?> qw = new QueryWrapper<>();
-        qw.ge(param.getDateType(), param.getStartTime());
-        qw.le(param.getDateType(), param.getEndTime());
+        qw.ge("op_datetime", param.getStartTime());
+        qw.le("op_datetime", param.getEndTime());
         if (param.getJzFlag()) {
             qw.eq("urgent_clinic_flag", "1");
         }
-        if (param.getStatus() != 4) {
+        if (!param.getStatus().equals("0")) {
             qw.eq("a.status", param.getStatus());
         }
         if (StringUtil.notBlank(param.getPatNo())) {
@@ -47,10 +50,23 @@ public class SurgeryArrangementServer {
             qw.eq("a.ward_code", param.getWard());
         }
         List<OpRecord> list = dao.huoQuShouShuAnPaiXinXi(qw);
-        if (ListUtil.notBlank(list)) {
-            return ResultVoUtil.success(list);
+        if (ListUtil.isBlank(list)) {
+            return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST);
         }
-        return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST);
+        list.forEach(item -> {
+            item.setWardName(redis.getDeptName(item.getWardCode()));
+            item.setApplyDocName(redis.getEmployeeName(item.getApplyDoc()));
+            item.setDoctorZdName(redis.getEmployeeName(item.getDoctorZd()));
+            item.setNurseXhName(redis.getEmployeeName(item.getNurseXh()));
+            item.setNurseQxName(redis.getEmployeeName(item.getNurseQx()));
+            item.setDoctorMzYsName(redis.getEmployeeName(item.getDoctorMzYs()));
+            item.setDoctorMzHsName(redis.getEmployeeName(item.getDoctorMzHs()));
+        });
+        return ResultVoUtil.success(list);
+    }
+
+    public ResultVo<List<CodeName>> getSurgeryRooms() {
+        return ResultVoUtil.success(dao.selectSurgeryRooms());
     }
 
     public ResultVo<String> modifySurgeryTime(OpRecord param) {
@@ -58,4 +74,15 @@ public class SurgeryArrangementServer {
         dao.modifySurgeryTime(param);
         return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION);
     }
+
+    public ResultVo<String> cancelSurgery(Integer recordId) {
+        dao.cancelSurgery(recordId);
+        return ResultVoUtil.success("操作成功。");
+    }
+
+    public ResultVo<String> updateArrangement(Integer recordId, String key, String value) {
+        String table = key.equals("room_code") ? "op_record" : "op_record_join";
+        dao.updateArrangement(table, key, value, recordId);
+        return ResultVoUtil.success();
+    }
 }

+ 7 - 0
src/main/java/thyyxxk/webserver/service/surgicalmanagement/SurgeryRecordService.java

@@ -0,0 +1,7 @@
+package thyyxxk.webserver.service.surgicalmanagement;
+
+import org.springframework.stereotype.Service;
+
+@Service
+public class SurgeryRecordService {
+}