浏览代码

增加婴儿信息

lihong 1 年之前
父节点
当前提交
a1f767a0f8

+ 44 - 0
src/main/java/thyyxxk/webserver/controller/medicaladvice/patientinfo/BaByInfoController.java

@@ -0,0 +1,44 @@
+package thyyxxk.webserver.controller.medicaladvice.patientinfo;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import thyyxxk.webserver.config.exception.ExceptionEnum;
+import thyyxxk.webserver.entity.ResultVo;
+import thyyxxk.webserver.entity.medicaladvice.medicamanage.patientinfo.BabyInfoVo;
+import thyyxxk.webserver.service.medicaladvice.patientinfo.BaByInfoService;
+import thyyxxk.webserver.utils.ResultVoUtil;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:lihong
+ * @Date: 2023/12/19
+ */
+@RestController
+@RequestMapping("/medicalAdvice/addBabyInfo/")
+public class BaByInfoController {
+    @Autowired
+    private BaByInfoService service;
+    @PostMapping("queryInfo")
+    public ResultVo<List<BabyInfoVo>> queryInfo(@RequestBody BabyInfoVo query){
+        return ResultVoUtil.success(service.queryInfo(query));
+    }
+
+    @PostMapping("deleteBaby")
+    public ResultVo<String> deleteBaby(@RequestBody BabyInfoVo query){
+        service.deleteBaby(query);
+        return ResultVoUtil.success();
+    }
+
+    @PostMapping("saveBabyInfo")
+    public ResultVo<String> saveBabyInfo(@RequestBody BabyInfoVo query){
+        service.saveBabyInfo(query);
+        return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION,"保存成功");
+    }
+
+
+}

+ 49 - 0
src/main/java/thyyxxk/webserver/dao/his/medicaladvice/patientinfo/BaByInfoDao.java

@@ -0,0 +1,49 @@
+package thyyxxk.webserver.dao.his.medicaladvice.patientinfo;
+
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Insert;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+import thyyxxk.webserver.entity.medicaladvice.medicamanage.patientinfo.BabyInfoVo;
+
+import java.util.List;
+
+/**
+ * @Description: 婴儿信息
+ * @Author:lihong
+ * @Date: 2023/12/19
+ */
+@Mapper
+public interface BaByInfoDao {
+
+    @Select(" select distinct a.admiss_times, a.inpatient_no,a.name,a.sex,b.birth_date,case when a.sex = 1 then '男' when a.sex = 2 then '女' else '未知' end sex_name,1 as flag  from zy_actpatient a left join  a_patient_mi b " +
+            "      on a.inpatient_no = b.inpatient_no " +
+            "     where a.inpatient_no like #{inpatientNo}   ")
+    List<BabyInfoVo> selectInfo(@Param("inpatientNo") String inpatientNo);
+    @Delete(" delete from a_patient_mi where inpatient_no =#{inpatientNo}  ")
+    void deleteAPatientMi(String inpatientNo);
+    @Delete(" delete from zy_actpatient where inpatient_no =#{inpatientNo} and admiss_times =#{admissTimes}   ")
+    void deletezyActpatient(@Param("inpatientNo") String inpatientNo, @Param("admissTimes") Integer admissTimes);
+    @Insert(" INSERT INTO a_patient_mi ( outpatient_no, inpatient_no, name, birth_date, sex ) VALUES ( #{inpatientNo}, #{inpatientNo}, #{name}, #{birthDate}, #{sex} ) ")
+    void insertAPatientMi(BabyInfoVo query);
+     @Insert("  INSERT INTO zy_actpatient (admiss_times, name, outpatient_no, charge_type, visit_type, admiss_date, admiss_status, " +
+             "                           clinic_diag, inpatient_no, admiss_physician, refer_physician, consult_physician, " +
+             "                           dept_director, admiss_dept, admiss_ward, responce_type, times_billed, balance, total_charge, " +
+             "                           charge1, charge2, charge3, charge4, charge5, charge6, charge7, charge8, charge9, charge10, " +
+             "                           charge11, charge12, charge13, charge14, charge15, charge16, charge17, charge18, charge19, " +
+             "                           charge20, charge21, charge22, charge24, charge23, charge25, charge27, charge26, charge28, " +
+             "                           charge29, charge30, ward, bed_no, dept, sex, op_id_code, intern_code, admiss_diag_str, " +
+             "                           yb_jzlb, zk_ward, zy_serial_no, mz_no, clinic_diag_str, bed_status, room, small_dept, " +
+             "                           own_flag, own_time) " +
+             " select admiss_times, #{query.name}, outpatient_no, charge_type, visit_type, #{query.birthDate}, admiss_status, " +
+             "       clinic_diag, #{query.inpatientNo}, admiss_physician, refer_physician, consult_physician, " +
+             "       dept_director, admiss_dept, admiss_ward, responce_type, times_billed, balance, total_charge, " +
+             "       charge1, charge2, charge3, charge4, charge5, charge6, charge7, charge8, charge9, charge10, " +
+             "       charge11, charge12, charge13, charge14, charge15, charge16, charge17, charge18, charge19, " +
+             "       charge20, charge21, charge22, charge24, charge23, charge25, charge27, charge26, charge28, " +
+             "       charge29, charge30, ward, bed_no, dept, #{query.sex}, op_id_code, intern_code, admiss_diag_str, " +
+             "       yb_jzlb, zk_ward, zy_serial_no, mz_no, clinic_diag_str, bed_status, room, small_dept, " +
+             "       own_flag, own_time from  zy_actpatient where inpatient_no = #{inpatientNo}")
+    void insertZyActpatient(@Param("query") BabyInfoVo query,@Param("inpatientNo") String inpatientNo);
+}

+ 27 - 0
src/main/java/thyyxxk/webserver/entity/medicaladvice/medicamanage/patientinfo/BabyInfoVo.java

@@ -0,0 +1,27 @@
+package thyyxxk.webserver.entity.medicaladvice.medicamanage.patientinfo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * @Description:
+ * @Author:lihong
+ * @Date: 2023/12/19
+ */
+@Data
+public class BabyInfoVo {
+    private String inpatientNo;
+    private String name;
+    private String sex;
+    private String sexName;
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    private Date birthDate;
+    private Integer admissTimes;
+    /**是否是数据库查出来的数据 0 否 1 是*/
+    private Integer flag;
+
+}

+ 64 - 0
src/main/java/thyyxxk/webserver/service/medicaladvice/patientinfo/BaByInfoService.java

@@ -0,0 +1,64 @@
+package thyyxxk.webserver.service.medicaladvice.patientinfo;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.convert.Convert;
+import cn.hutool.core.util.StrUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import thyyxxk.webserver.dao.his.medicaladvice.patientinfo.BaByInfoDao;
+import thyyxxk.webserver.entity.medicaladvice.medicamanage.patientinfo.BabyInfoVo;
+import thyyxxk.webserver.utils.AssertUtil;
+import thyyxxk.webserver.utils.CommonUtil;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:lihong
+ * @Date: 2023/12/19
+ */
+@Slf4j
+@Service
+public class BaByInfoService {
+    @Autowired
+    private BaByInfoDao dao;
+    /**
+     * @description: 查询婴儿信息
+     * @author: lihong
+     * @date: 2023/12/19 10:37
+     * @param: query
+     * @return: thyyxxk.webserver.entity.medicaladvice.medicamanage.patientinfo.BabyInfoVo
+     **/
+    public List<BabyInfoVo> queryInfo(BabyInfoVo query) {
+        AssertUtil.isnotBlank(query.getInpatientNo(), "住院号不能为空");
+        query.setInpatientNo(query.getInpatientNo()+"$%");
+        List<BabyInfoVo> list = dao.selectInfo(query.getInpatientNo());
+        CommonUtil.BeanTrim(list);
+        return list;
+    }
+    @Transactional(rollbackFor = Exception.class)
+    public void deleteBaby(BabyInfoVo query) {
+        dao.deleteAPatientMi(query.getInpatientNo());
+        dao.deletezyActpatient(query.getInpatientNo(), query.getAdmissTimes());
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    public void saveBabyInfo(BabyInfoVo query) {
+        AssertUtil.isnotBlank(query.getBirthDate(), "出生日期不能为空");
+        AssertUtil.isnotBlank(query.getSex(), "性别不能为空");
+        String inpatientNo = query.getInpatientNo();
+        List<BabyInfoVo> list = dao.selectInfo(inpatientNo+"$%");
+        if(CollUtil.isNotEmpty(list)){
+            Integer num = list.stream().map(item -> Convert.toInt(item.getInpatientNo().trim().split("\\$")[1])).max(Integer::compareTo).get();
+            query.setInpatientNo(StrUtil.format("{}${}",inpatientNo,(num+1)));
+            query.setName(StrUtil.format("(婴{}){}",(num+1),query.getName()));
+        }else {
+            query.setInpatientNo(query.getInpatientNo()+"$1");
+            query.setName(StrUtil.format("(婴1){}",query.getName()));
+        }
+        dao.insertAPatientMi(query);
+        dao.insertZyActpatient(query,inpatientNo);
+    }
+}