Browse Source

会诊记录代码修改

shiyue 4 years ago
parent
commit
c4143ebad3

+ 467 - 0
src/main/java/com/diagbot/entity/MedConsultationRecord.java

@@ -0,0 +1,467 @@
+package com.diagbot.entity;
+
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 会诊记录
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-11-13
+ */
+public class MedConsultationRecord implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 记录编号
+     */
+    private String recId;
+
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+
+    /**
+     * 病历号
+     */
+    private String behospitalCode;
+
+    /**
+     * 姓名
+     */
+    private String name;
+
+    /**
+     * 性别
+     */
+    private String sex;
+
+    /**
+     * 年龄
+     */
+    private String age;
+
+    /**
+     * 床号
+     */
+    private String bedNo;
+
+    /**
+     * 科别
+     */
+    private String deptName;
+
+    /**
+     * 病历日期
+     */
+    private Date recordDate;
+
+    /**
+     * 标题
+     */
+    private String recTitle;
+
+    /**
+     * 入院日期
+     */
+    private Date behospitalDate;
+
+    /**
+     * 申请科室
+     */
+    private String applyDept;
+
+    /**
+     * 申请医生
+     */
+    private String applyDoctor;
+
+    /**
+     * 申请日期
+     */
+    private Date applyDate;
+
+    /**
+     * 会诊类别
+     */
+    private String inviteType;
+
+    /**
+     * 会诊科室
+     */
+    private String inviteDept;
+
+    /**
+     * 会诊医生
+     */
+    private String inviteDoctor;
+
+    /**
+     * 简要病情
+     */
+    private String briefNote;
+
+    /**
+     * 当前诊断
+     */
+    private String currentDiagnosis;
+
+    /**
+     * 诊疗情况
+     */
+    private String treatmentSituation;
+
+    /**
+     * 会诊时间
+     */
+    private Date consultationDate;
+
+    /**
+     * 会诊目的
+     */
+    private String consultationPurpose;
+
+    /**
+     * 会诊意见
+     */
+    private String consultationOpinions;
+
+    /**
+     * 记录医生
+     */
+    private String recDoctor;
+
+    /**
+     * 记录时间
+     */
+    private Date recDate;
+
+    /**
+     * 审核医生
+     */
+    private String auditDoctor;
+
+    /**
+     * 审核时间
+     */
+    private Date auditDate;
+
+    /**
+     * 结构化数据
+     */
+    private String wholeData;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 是否删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间
+     */
+    private Date gmtModified;
+
+    /**
+     * 创建人
+     */
+    private String creator;
+
+    /**
+     * 修改人
+     */
+    private String modifier;
+
+    public String getRecId() {
+        return recId;
+    }
+
+    public void setRecId(String recId) {
+        this.recId = recId;
+    }
+    public Long getHospitalId() {
+        return hospitalId;
+    }
+
+    public void setHospitalId(Long hospitalId) {
+        this.hospitalId = hospitalId;
+    }
+    public String getBehospitalCode() {
+        return behospitalCode;
+    }
+
+    public void setBehospitalCode(String behospitalCode) {
+        this.behospitalCode = behospitalCode;
+    }
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+    public String getSex() {
+        return sex;
+    }
+
+    public void setSex(String sex) {
+        this.sex = sex;
+    }
+    public String getAge() {
+        return age;
+    }
+
+    public void setAge(String age) {
+        this.age = age;
+    }
+    public String getBedNo() {
+        return bedNo;
+    }
+
+    public void setBedNo(String bedNo) {
+        this.bedNo = bedNo;
+    }
+    public String getDeptName() {
+        return deptName;
+    }
+
+    public void setDeptName(String deptName) {
+        this.deptName = deptName;
+    }
+    public Date getRecordDate() {
+        return recordDate;
+    }
+
+    public void setRecordDate(Date recordDate) {
+        this.recordDate = recordDate;
+    }
+    public String getRecTitle() {
+        return recTitle;
+    }
+
+    public void setRecTitle(String recTitle) {
+        this.recTitle = recTitle;
+    }
+    public Date getBehospitalDate() {
+        return behospitalDate;
+    }
+
+    public void setBehospitalDate(Date behospitalDate) {
+        this.behospitalDate = behospitalDate;
+    }
+    public String getApplyDept() {
+        return applyDept;
+    }
+
+    public void setApplyDept(String applyDept) {
+        this.applyDept = applyDept;
+    }
+    public String getApplyDoctor() {
+        return applyDoctor;
+    }
+
+    public void setApplyDoctor(String applyDoctor) {
+        this.applyDoctor = applyDoctor;
+    }
+    public Date getApplyDate() {
+        return applyDate;
+    }
+
+    public void setApplyDate(Date applyDate) {
+        this.applyDate = applyDate;
+    }
+    public String getInviteType() {
+        return inviteType;
+    }
+
+    public void setInviteType(String inviteType) {
+        this.inviteType = inviteType;
+    }
+    public String getInviteDept() {
+        return inviteDept;
+    }
+
+    public void setInviteDept(String inviteDept) {
+        this.inviteDept = inviteDept;
+    }
+    public String getInviteDoctor() {
+        return inviteDoctor;
+    }
+
+    public void setInviteDoctor(String inviteDoctor) {
+        this.inviteDoctor = inviteDoctor;
+    }
+    public String getBriefNote() {
+        return briefNote;
+    }
+
+    public void setBriefNote(String briefNote) {
+        this.briefNote = briefNote;
+    }
+    public String getCurrentDiagnosis() {
+        return currentDiagnosis;
+    }
+
+    public void setCurrentDiagnosis(String currentDiagnosis) {
+        this.currentDiagnosis = currentDiagnosis;
+    }
+    public String getTreatmentSituation() {
+        return treatmentSituation;
+    }
+
+    public void setTreatmentSituation(String treatmentSituation) {
+        this.treatmentSituation = treatmentSituation;
+    }
+    public Date getConsultationDate() {
+        return consultationDate;
+    }
+
+    public void setConsultationDate(Date consultationDate) {
+        this.consultationDate = consultationDate;
+    }
+    public String getConsultationPurpose() {
+        return consultationPurpose;
+    }
+
+    public void setConsultationPurpose(String consultationPurpose) {
+        this.consultationPurpose = consultationPurpose;
+    }
+    public String getConsultationOpinions() {
+        return consultationOpinions;
+    }
+
+    public void setConsultationOpinions(String consultationOpinions) {
+        this.consultationOpinions = consultationOpinions;
+    }
+    public String getRecDoctor() {
+        return recDoctor;
+    }
+
+    public void setRecDoctor(String recDoctor) {
+        this.recDoctor = recDoctor;
+    }
+    public Date getRecDate() {
+        return recDate;
+    }
+
+    public void setRecDate(Date recDate) {
+        this.recDate = recDate;
+    }
+    public String getAuditDoctor() {
+        return auditDoctor;
+    }
+
+    public void setAuditDoctor(String auditDoctor) {
+        this.auditDoctor = auditDoctor;
+    }
+    public Date getAuditDate() {
+        return auditDate;
+    }
+
+    public void setAuditDate(Date auditDate) {
+        this.auditDate = auditDate;
+    }
+    public String getWholeData() {
+        return wholeData;
+    }
+
+    public void setWholeData(String wholeData) {
+        this.wholeData = wholeData;
+    }
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+    public String getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(String isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+    public Date getGmtCreate() {
+        return gmtCreate;
+    }
+
+    public void setGmtCreate(Date gmtCreate) {
+        this.gmtCreate = gmtCreate;
+    }
+    public Date getGmtModified() {
+        return gmtModified;
+    }
+
+    public void setGmtModified(Date gmtModified) {
+        this.gmtModified = gmtModified;
+    }
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+    public String getModifier() {
+        return modifier;
+    }
+
+    public void setModifier(String modifier) {
+        this.modifier = modifier;
+    }
+
+    @Override
+    public String toString() {
+        return "MedConsultationRecord{" +
+            "recId=" + recId +
+            ", hospitalId=" + hospitalId +
+            ", behospitalCode=" + behospitalCode +
+            ", name=" + name +
+            ", sex=" + sex +
+            ", age=" + age +
+            ", bedNo=" + bedNo +
+            ", deptName=" + deptName +
+            ", recordDate=" + recordDate +
+            ", recTitle=" + recTitle +
+            ", behospitalDate=" + behospitalDate +
+            ", applyDept=" + applyDept +
+            ", applyDoctor=" + applyDoctor +
+            ", applyDate=" + applyDate +
+            ", inviteType=" + inviteType +
+            ", inviteDept=" + inviteDept +
+            ", inviteDoctor=" + inviteDoctor +
+            ", briefNote=" + briefNote +
+            ", currentDiagnosis=" + currentDiagnosis +
+            ", treatmentSituation=" + treatmentSituation +
+            ", consultationDate=" + consultationDate +
+            ", consultationPurpose=" + consultationPurpose +
+            ", consultationOpinions=" + consultationOpinions +
+            ", recDoctor=" + recDoctor +
+            ", recDate=" + recDate +
+            ", auditDoctor=" + auditDoctor +
+            ", auditDate=" + auditDate +
+            ", wholeData=" + wholeData +
+            ", remark=" + remark +
+            ", isDeleted=" + isDeleted +
+            ", gmtCreate=" + gmtCreate +
+            ", gmtModified=" + gmtModified +
+            ", creator=" + creator +
+            ", modifier=" + modifier +
+        "}";
+    }
+}

+ 2 - 1
src/main/java/com/diagbot/enums/CacheKeyEnum.java

@@ -24,7 +24,8 @@ public enum CacheKeyEnum implements KeyedString {
     LEAVE_HOSPITAL("出院小结", "medLeaveHospital"),
     CONSULTATION_APPLY("会诊申请单", "medConsultationApply"),
     CONSULTATION_RESULT("会诊结果单", "medConsultationResult"),
-    CONSULTATION_NOTE("会诊单", "medConsultationNote");
+    CONSULTATION_NOTE("会诊单", "medConsultationNote"),
+    CONSULTATION_RECORD("会诊记录","medConsultationRecord");
     /*
     FIRST_RECORD(2, "aMedFirstRecordFacade"),
     HOME_PAGE(6, "病案首页"),

+ 92 - 0
src/main/java/com/diagbot/facade/data/AMedConsultationRecordFacade.java

@@ -0,0 +1,92 @@
+package com.diagbot.facade.data;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.data.ColumnZhAndChDTO;
+import com.diagbot.entity.MedConsultationNote;
+import com.diagbot.entity.MedConsultationRecord;
+import com.diagbot.service.impl.MedConsultationRecordServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.MapUtil;
+import com.diagbot.vo.data.AMedConsultationNoteVO;
+import com.diagbot.vo.data.AMedConsultationResultVO;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+@Component
+public class AMedConsultationRecordFacade extends MedConsultationRecordServiceImpl {
+
+
+    @Autowired
+    private ColumnFacade columnFacade;
+    @Autowired
+    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+
+    public void getColumnZhAndCh(){
+        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
+        list.forEach(s->{
+            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
+        });
+
+        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
+        Boolean flag=columnFacade.createColumn(columnMap,"medConsultationRecord");
+
+        //Map<String, String> map=columnFacade.getColumn("medConsultationNote");
+        if(!flag){
+            return;
+        }
+    }
+
+    //会诊记录
+    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
+        MedConsultationRecord medConsultationRecord=new MedConsultationRecord();
+        try {
+            AMedConsultationResultVO aMedConsultationNoteVO=(AMedConsultationResultVO) MapUtil.mapToObject(entityMap, AMedConsultationNoteVO.class);
+            BeanUtils.copyProperties(aMedConsultationNoteVO,medConsultationRecord);
+            medConsultationRecord.setHospitalId(hospitalId);//医院编码
+
+            medConsultationRecord.setRecordDate(DateUtil.parseDateTime(aMedConsultationNoteVO.getRecordDate()));//病历日期recordDate
+            medConsultationRecord.setBehospitalDate(DateUtil.parseDateTime(aMedConsultationNoteVO.getBehospitalDate()));//入院日期behospital_date
+            medConsultationRecord.setApplyDate(DateUtil.parseDateTime(aMedConsultationNoteVO.getApplyDate()));//申请日期apply_date
+            medConsultationRecord.setConsultationDate(DateUtil.parseDate(aMedConsultationNoteVO.getConsultationArriveDate()));//会诊时间consultation_date
+            medConsultationRecord.setRecDate(DateUtil.parseDateTime(aMedConsultationNoteVO.getRecDate()));//记录时间rec_date
+            medConsultationRecord.setAuditDate(DateUtil.parseDateTime(aMedConsultationNoteVO.getAuditDate()));//审核时间audit_date
+
+            medConsultationRecord.setWholeData(columnMap);
+            //判断数据库中是否存在,不存在insert
+            if(isExist(medConsultationRecord)){
+                medConsultationRecord.setGmtCreate(new Date());//记录创建时间
+                this.save(medConsultationRecord);
+            }else{
+                medConsultationRecord.setGmtModified(new Date());//记录修改时间
+                this.update(medConsultationRecord,new QueryWrapper<MedConsultationRecord>()
+                        .eq("rec_id", medConsultationRecord.getRecId())
+                        .eq("hospital_id", medConsultationRecord.getHospitalId())
+                        .eq("behospital_code", medConsultationRecord.getBehospitalCode()));
+            }
+
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("会诊记录)",medConsultationRecord.getRecId(), JSON.toJSONString(entityMap),"",e.getMessage());
+        }
+
+    }
+
+    public Boolean isExist(MedConsultationRecord medConsultationRecord){
+        Boolean flag=true;
+        int count = this.baseMapper.selectCount(new QueryWrapper<MedConsultationRecord>()
+                .eq("rec_id", medConsultationRecord.getRecId())
+                .eq("hospital_id", medConsultationRecord.getHospitalId())
+                .eq("behospital_code", medConsultationRecord.getBehospitalCode()));
+        if(count>0){
+            flag=false;
+        }
+        return flag;
+    }
+}

+ 5 - 1
src/main/java/com/diagbot/facade/data/ColumnFacade.java

@@ -103,7 +103,9 @@ public class ColumnFacade extends ColumnServiceImpl {
                 aMedConsultationResultFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
             }else if("会诊单".equals(modelName)){
                 aMedConsultationNoteFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
-            }else if("阶段小结".equals(modelName)){
+            }else if ("会诊记录".equals(modelName)){
+                aMedConsultationRecordFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
+            } else if("阶段小结".equals(modelName)){
                 aMedPeriodConclusionFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
             }
             log.info(modelName+"---- 解析完成!");
@@ -157,4 +159,6 @@ public class ColumnFacade extends ColumnServiceImpl {
     private AMedConsultationResultFacade aMedConsultationResultFacade;
     @Autowired
     private AMedConsultationNoteFacade aMedConsultationNoteFacade;
+    @Autowired
+    private AMedConsultationRecordFacade aMedConsultationRecordFacade;
 }

+ 23 - 0
src/main/java/com/diagbot/mapper/MedConsultationRecordMapper.java

@@ -0,0 +1,23 @@
+package com.diagbot.mapper;
+
+import com.diagbot.dto.data.ColumnZhAndChDTO;
+import com.diagbot.entity.MedConsultationNote;
+import com.diagbot.entity.MedConsultationRecord;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 会诊记录 Mapper 接口
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-11-13
+ */
+public interface MedConsultationRecordMapper extends BaseMapper<MedConsultationRecord> {
+
+    void updateBatchByKey(List<MedConsultationNote> list);
+
+    List<ColumnZhAndChDTO> getColumnZhAndCh();
+}

+ 16 - 0
src/main/java/com/diagbot/service/MedConsultationRecordService.java

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.MedConsultationRecord;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 会诊记录 服务类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-11-13
+ */
+public interface MedConsultationRecordService extends IService<MedConsultationRecord> {
+
+}

+ 20 - 0
src/main/java/com/diagbot/service/impl/MedConsultationRecordServiceImpl.java

@@ -0,0 +1,20 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.MedConsultationRecord;
+import com.diagbot.mapper.MedConsultationRecordMapper;
+import com.diagbot.service.MedConsultationRecordService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 会诊记录 服务实现类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-11-13
+ */
+@Service
+public class MedConsultationRecordServiceImpl extends ServiceImpl<MedConsultationRecordMapper, MedConsultationRecord> implements MedConsultationRecordService {
+
+}

+ 4 - 0
src/main/java/com/diagbot/util/ColumnCacheUtil.java

@@ -40,6 +40,8 @@ public class ColumnCacheUtil implements ApplicationRunner {
             aMedConsultationApplyFacade.getColumnZhAndCh();
             aMedConsultationResultFacade.getColumnZhAndCh();
             aMedConsultationNoteFacade.getColumnZhAndCh();
+            aMedConsultationRecordFacade.getColumnZhAndCh();
+
 
             log.info("列名和注释缓存初始化完成!");
         }catch (Exception e){
@@ -90,4 +92,6 @@ public class ColumnCacheUtil implements ApplicationRunner {
     private AMedConsultationResultFacade aMedConsultationResultFacade;
     @Autowired
     private AMedConsultationNoteFacade aMedConsultationNoteFacade;
+    @Autowired
+    private AMedConsultationRecordFacade aMedConsultationRecordFacade;
 }

+ 45 - 0
src/main/resources/mapper/MedConsultationRecordMapper.xml

@@ -39,5 +39,50 @@
         <result column="creator" property="creator" />
         <result column="modifier" property="modifier" />
     </resultMap>
+    <update id="updateBatchByKey">
+        <foreach collection="list" item="item"  separator=";">
+            update med_consultation_note
+            <set>
+                name = #{item.name},
+                sex = #{item.sex},
+                age = #{item.age},
+                bed_no = #{item.bedNo},
+                dept_name = #{item.deptName},
+                record_date = #{item.recordDate},
+                rec_title = #{item.recTitle},
+                behospital_date = #{item.behospitalDate},
+                apply_dept = #{item.applyDept},
+                apply_doctor = #{item.applyDoctor},
+                apply_date = #{item.applyDate},
+                invite_type = #{item.inviteType},
+                invite_dept = #{item.inviteDept},
+                invite_doctor = #{item.inviteDoctor},
+                brief_note = #{item.briefNote},
+                current_diagnosis = #{item.currentDiagnosis},
+                treatment_situation = #{item.treatmentSituation},
+                consultation_date = #{item.consultationDate},
+                consultation_purpose = #{item.consultationPurpose},
+                consultation_opinions = #{item.consultationOpinions},
+                rec_doctor = #{item.recDoctor},
+                audit_doctor = #{item.auditDoctor},
+                audit_date = #{item.auditDate},
+                whole_data = #{item.wholeData},
+                remark = #{item.remark},
+                <if test="item.gmtModified != null">
+                    gmt_modified = #{item.gmtModified},
+                </if>
+                <if test="item.modifier != null">
+                    modifier = #{item.modifier},
+                </if>
+            </set>
+            where rec_id = #{item.recId} and hospital_id = #{item.hospitalId} and behospital_code = #{item.behospitalCode}
+        </foreach>
+    </update>
+
+
+    <select id="getColumnZhAndCh" resultType="com.diagbot.dto.data.ColumnZhAndChDTO">
+        select COLUMN_NAME as en,column_comment as ch from INFORMATION_SCHEMA.Columns where table_name='med_consultation_record'
+    </select>
+
 
 </mapper>

+ 2 - 2
src/test/java/com/diagbot/CodeGeneration.java

@@ -49,14 +49,14 @@ public class CodeGeneration {
         dsc.setDriverName("com.mysql.cj.jdbc.Driver");
         dsc.setUsername("root");
         dsc.setPassword("lantone");
-        dsc.setUrl("jdbc:mysql://192.168.2.236:3306/qc?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8");
+        dsc.setUrl("jdbc:mysql://192.168.2.241:3306/qc?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8");
         mpg.setDataSource(dsc);
 
         // 策略配置
         StrategyConfig strategy = new StrategyConfig();
 //        strategy.setTablePrefix(new String[] { "med_" });// 此处可以修改为您的表前缀
         strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略
-        strategy.setInclude(new String[] { "sys_hospital_set"}); // 需要生成的表
+        strategy.setInclude(new String[] { "med_consultation_record"}); // 需要生成的表
 
         strategy.setSuperServiceClass(null);
         strategy.setSuperServiceImplClass(null);