Bladeren bron

Merge branch 'develop' into dev/20200716_1.3.9

# Conflicts:
#	src/main/java/com/diagbot/facade/BehospitalInfoFacade.java
#	src/main/java/com/diagbot/vo/TaskVO.java
gaodm 4 jaren geleden
bovenliggende
commit
9427094439

+ 1 - 1
doc/015.20200714病案首页添加14个字段/qc_init_20200714.sql

@@ -6,7 +6,7 @@ INSERT INTO `qc`.`sys_dictionary_info` ( `is_deleted`, `gmt_create`, `gmt_modifi
 INSERT INTO `qc`.`sys_dictionary_info` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `group_type`, `name`, `val`, `return_type`, `order_no`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', 'isNosocomialInfection', '医院感染', '2', '0', '病案首页');
 INSERT INTO `qc`.`sys_dictionary_info` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `group_type`, `name`, `val`, `return_type`, `order_no`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', 'isIntoIcu', '入住ICU情况', '2', '0', '病案首页');
 INSERT INTO `qc`.`sys_dictionary_info` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `group_type`, `name`, `val`, `return_type`, `order_no`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', 'isComplications', '并发症情况', '2', '0', '病案首页');
-INSERT INTO `qc`.`sys_dictionary_info` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `group_type`, `name`, `val`, `return_type`, `order_no`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', 'isPressure_sore', '是否发生压疮', '2', '0', '病案首页');
+INSERT INTO `qc`.`sys_dictionary_info` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `group_type`, `name`, `val`, `return_type`, `order_no`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', 'isPressureSore', '是否发生压疮', '2', '0', '病案首页');
 INSERT INTO `qc`.`sys_dictionary_info` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `group_type`, `name`, `val`, `return_type`, `order_no`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', 'isBehospitalPressureSore', '是否住院期间发生压疮', '2', '0', '病案首页');
 INSERT INTO `qc`.`sys_dictionary_info` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `group_type`, `name`, `val`, `return_type`, `order_no`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', 'isUnplannedReoperation', '非计划再次手术', '2', '0', '病案首页');
 INSERT INTO `qc`.`sys_dictionary_info` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `group_type`, `name`, `val`, `return_type`, `order_no`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', 'treatmentResults', '治疗结果', '2', '0', '病案首页');

File diff suppressed because it is too large
+ 1 - 1
doc/016.20200715v1.3.7.2/qc_initv.1.3.7.2.sql


+ 3 - 0
doc/017.20200717v1.3.7.3/qc_initv1.3.7.3.sql

@@ -0,0 +1,3 @@
+use `qc`;
+
+UPDATE `qc`.`qc_mode` SET `id`='8', `name`='医嘱信息', `order_no`='255', `parent_id`='37', `is_deleted`='N', `gmt_create`='1970-01-01 12:00:00', `gmt_modified`='1970-01-01 12:00:00', `creator`='0', `modifier`='0', `remark`=NULL WHERE (`id`='8');

+ 1 - 0
src/main/java/com/diagbot/config/ResourceServerConfigurer.java

@@ -146,6 +146,7 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/qc/data/sendHomeDiagnose").permitAll()
                 .antMatchers("/qc/data/sendHomeOperation").permitAll()
                 .antMatchers("/qc/data/sendCrisis").permitAll()
+                .antMatchers("/qc/doctoradvice/getPage").permitAll()
                 .antMatchers("/**").authenticated();
         //                .antMatchers("/**").permitAll();
     }

+ 1 - 0
src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java

@@ -189,6 +189,7 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/qc/data/sendHomeDiagnose", request)
                 || matchers("/qc/data/sendHomeOperation", request)
                 || matchers("/qc/data/sendCrisis", request)
+                || matchers("/qc/doctoradvice/getPage", request)
                 || matchers("/", request)) {
             return true;
         }

+ 140 - 0
src/main/java/com/diagbot/dto/DoctorAdviceDTO.java

@@ -0,0 +1,140 @@
+package com.diagbot.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/7/13 15:00
+ */
+@Getter
+@Setter
+public class DoctorAdviceDTO {
+    private String doctorAdviceId;
+
+    /**
+     * 医院id
+     */
+    private Long hospitalId;
+
+    /**
+     * 病人ID
+     */
+    private String behospitalCode;
+
+//    /**
+//     * 医生开单判别
+//     */
+//    private String orderDoctorName;
+//
+//    /**
+//     * 医嘱频率判别
+//     */
+//    private String frequency;
+//
+//    /**
+//     * 父类医嘱ID
+//     */
+//    private String parentTypeId;
+
+    /**
+     * 医嘱类型判别(嘱托长嘱、长期医嘱等)
+     */
+    private String doctorAdviceType;
+
+//    /**
+//     * 一次使用数量
+//     */
+//    private String usageNum;
+//
+//    /**
+//     * 一次用量单位
+//     */
+//    private String usageUnit;
+//
+//    /**
+//     * 医嘱单次剂量
+//     */
+//    private String dose;
+//
+//    /**
+//     * 单次剂量单位
+//     */
+//    private String doseUnit;
+//
+//    /**
+//     * 给药方式
+//     */
+//    private String medModeType;
+//
+//    /**
+//     * 医嘱频率
+//     */
+//    private String daFrequency;
+//
+//    /**
+//     * 医嘱处理类型
+//     */
+//    private String daDealType;
+
+    /**
+     * 医嘱开始时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date daStartDate;
+
+    /**
+     * 医嘱项目名称
+     */
+    private String daItemName;
+
+//    /**
+//     * 医嘱状态判别
+//     */
+//    private String daStatus;
+
+    /**
+     * 医嘱结束时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date daStopDate;
+
+//    /**
+//     * 医嘱同组序号
+//     */
+//    private String daGroupNo;
+
+    /**
+     * 医嘱处方类型(检验、描述医嘱、膳食、西药、护理等)
+     */
+    private String daPrescriptionType;
+
+    /**
+     * 药品类型(0.普药 1.抗生素 2.激素)
+     */
+    private String medicineType;
+
+//    /**
+//     * 医嘱领药类型
+//     */
+//    private String daMedType;
+//
+//    /**
+//     * 医生嘱托
+//     */
+//    private String doctorNotice;
+//
+//    /**
+//     * 开单医生ID
+//     */
+//    private String doctorId;
+
+    /**
+     * 开单医生姓名
+     */
+    private String doctorName;
+}

+ 29 - 0
src/main/java/com/diagbot/facade/DoctorAdviceFacade.java

@@ -1,6 +1,13 @@
 package com.diagbot.facade;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.DoctorAdviceDTO;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.DoctorAdviceServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.SysUserUtils;
+import com.diagbot.vo.DoctorAdviceVO;
 import org.springframework.stereotype.Component;
 
 /**
@@ -10,4 +17,26 @@ import org.springframework.stereotype.Component;
  */
 @Component
 public class DoctorAdviceFacade extends DoctorAdviceServiceImpl {
+
+    /**
+     * 获取医嘱信息翻页
+     *
+     * @param doctorAdviceVO 获取医嘱信息入参
+     * @return 医嘱翻页信息
+     */
+    public IPage<DoctorAdviceDTO> getPageFac(DoctorAdviceVO doctorAdviceVO) {
+        doctorAdviceVO.setHospitalId(Long.valueOf(SysUserUtils.getCurrentHospitalID()));
+        if (null != doctorAdviceVO.getDaStartDateStart()) {
+            doctorAdviceVO.setDaStartDateStart(DateUtil.getFirstTimeOfDay(doctorAdviceVO.getDaStartDateStart()));
+        }
+        if (null != doctorAdviceVO.getDaStartDateEnd()) {
+            doctorAdviceVO.setDaStartDateEnd(DateUtil.getFirstTimeOfDay(DateUtil.addDay(doctorAdviceVO.getDaStartDateEnd(), 1)));
+        }
+        if (null != doctorAdviceVO.getDaStartDateStart() && null != doctorAdviceVO.getDaStartDateEnd()) {
+            if (DateUtil.after(doctorAdviceVO.getDaStartDateStart(), doctorAdviceVO.getDaStartDateEnd())) {
+                throw new CommonException(CommonErrorCode.PARAM_IS_ERROR, "开始时间必须小于结束时间!");
+            }
+        }
+        return this.getPage(doctorAdviceVO);
+    }
 }

+ 6 - 1
src/main/java/com/diagbot/mapper/DoctorAdviceMapper.java

@@ -1,7 +1,10 @@
 package com.diagbot.mapper;
 
-import com.diagbot.entity.DoctorAdvice;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.DoctorAdviceDTO;
+import com.diagbot.entity.DoctorAdvice;
+import com.diagbot.vo.DoctorAdviceVO;
 
 import java.util.List;
 
@@ -15,4 +18,6 @@ import java.util.List;
  */
 public interface DoctorAdviceMapper extends BaseMapper<DoctorAdvice> {
     public void updateBatchByKey(List<DoctorAdvice> list);
+
+    IPage<DoctorAdviceDTO> getPage(DoctorAdviceVO doctorAdviceVO);
 }

+ 4 - 0
src/main/java/com/diagbot/service/DoctorAdviceService.java

@@ -1,7 +1,10 @@
 package com.diagbot.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.DoctorAdviceDTO;
 import com.diagbot.entity.DoctorAdvice;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.vo.DoctorAdviceVO;
 
 /**
  * <p>
@@ -13,4 +16,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface DoctorAdviceService extends IService<DoctorAdvice> {
 
+    IPage<DoctorAdviceDTO> getPage(DoctorAdviceVO doctorAdviceVO);
 }

+ 7 - 0
src/main/java/com/diagbot/service/impl/DoctorAdviceServiceImpl.java

@@ -1,9 +1,12 @@
 package com.diagbot.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.DoctorAdviceDTO;
 import com.diagbot.entity.DoctorAdvice;
 import com.diagbot.mapper.DoctorAdviceMapper;
 import com.diagbot.service.DoctorAdviceService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.vo.DoctorAdviceVO;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -25,4 +28,8 @@ public class DoctorAdviceServiceImpl extends ServiceImpl<DoctorAdviceMapper, Doc
     public void updateBatchByKey(List<DoctorAdvice> list){
         this.baseMapper.updateBatchByKey(list);
     }
+
+    public IPage<DoctorAdviceDTO> getPage(DoctorAdviceVO doctorAdviceVO){
+        return this.baseMapper.getPage(doctorAdviceVO);
+    }
 }

+ 51 - 0
src/main/java/com/diagbot/vo/DoctorAdviceVO.java

@@ -0,0 +1,51 @@
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import java.util.Date;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/7/13 14:59
+ */
+@Getter
+@Setter
+public class DoctorAdviceVO extends Page {
+    /**
+     * 医院id
+     */
+    @ApiModelProperty(hidden = true)
+    private Long hospitalId;
+
+    /**
+     * 病历号
+     */
+    @NotBlank(message = "请输入病历号")
+    private String behospitalCode;
+
+    /**
+     * 医嘱类型判别(嘱托长嘱、长期医嘱等)
+     */
+    private String doctorAdviceType;
+
+    /**
+     * 医嘱项目名称
+     */
+    private String daItemName;
+
+    /**
+     * 医嘱开始时间开始
+     */
+    private Date daStartDateStart;
+
+    /**
+     * 医嘱开始时间结束
+     */
+    private Date daStartDateEnd;
+
+}

+ 3 - 0
src/main/java/com/diagbot/vo/TaskVO.java

@@ -3,6 +3,7 @@ package com.diagbot.vo;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -32,6 +33,8 @@ public class TaskVO {
     private Date endLeaveDate;
     // 是否使用CRF缓存
     private boolean useCrfCache;
+    // 指定编码列表
+    private List<String> behospitalCodeList = new ArrayList<>();
     /**
      * 是否归档(0:未归档,1:已归档)
      */

+ 2 - 1
src/main/java/com/diagbot/web/BehospitalInfoController.java

@@ -164,7 +164,8 @@ public class BehospitalInfoController {
                     "【个性化需求】——默认即可<br>" +
                     "filterFlag: 筛选病历数据:0:未评分的病历【推荐使用】;1:全部病历【谨慎使用】<br>" +
                     "individuation:【1:近3天不含当天的病历强制评分更新】<br>" +
-                    "type:【1:出院时间比当前时间早3天前的病历(例如:长兴病历)】)<br>")
+                    "type:【1:出院时间比当前时间早3天前的病历(例如:长兴病历)】)<br>" +
+                    "behospitalCodeList:指定病历号<br>")
     @PostMapping("/execule")
     @SysLogger("execule")
     public RespDTO<Boolean> execule(@RequestBody TaskVO taskVO) {

+ 45 - 0
src/main/java/com/diagbot/web/DoctorAdviceController.java

@@ -0,0 +1,45 @@
+package com.diagbot.web;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.DoctorAdviceDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.DoctorAdviceFacade;
+import com.diagbot.vo.DoctorAdviceVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+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 javax.validation.Valid;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/7/13 14:56
+ */
+@RestController
+@RequestMapping("/qc/doctoradvice")
+@SuppressWarnings("unchecked")
+@Api(value = "医嘱信息API", tags = { "医嘱信息API" })
+public class DoctorAdviceController {
+
+    @Autowired
+    private DoctorAdviceFacade doctorAdviceFacade;
+
+
+    @ApiOperation(value = "获取医嘱信息[by:gaodm]",
+            notes = "behospitalCode:病人住院序号<br>" +
+                    "doctorAdviceType:医嘱类型(模糊搜索)<br>" +
+                    "daItemName:医嘱项目名称(模糊搜索)<br>" +
+                    "daStartDateStart:医嘱开始时间<br>" +
+                    "daStartDateEnd:医嘱时间结束时间<br>")
+    @PostMapping("/getPage")
+    @SysLogger("getPage")
+    public RespDTO<IPage<DoctorAdviceDTO>> getPage(@RequestBody @Valid DoctorAdviceVO doctorAdviceVO) {
+        return RespDTO.onSuc(doctorAdviceFacade.getPageFac(doctorAdviceVO));
+    }
+}

+ 6 - 0
src/main/resources/mapper/BehospitalInfoMapper.xml

@@ -241,6 +241,12 @@
                 #{item}
             </foreach>
         </if>
+        <if test="behospitalCodeList != null and behospitalCodeList.size > 0 ">
+            and a.behospital_code in
+            <foreach collection="behospitalCodeList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
         <if test="individuation != null and individuation.contains(1)">
             union
             select * from med_behospital_info b

+ 26 - 0
src/main/resources/mapper/DoctorAdviceMapper.xml

@@ -36,6 +36,32 @@
         <result column="modifier" property="modifier" />
     </resultMap>
 
+    <select id="getPage" parameterType="com.diagbot.vo.DoctorAdviceVO" resultType="com.diagbot.dto.DoctorAdviceDTO">
+        SELECT
+            t.*
+        FROM
+            `med_doctor_advice` t
+        WHERE
+            t.is_deleted = 'N'
+        <if test="hospitalId != null">
+            and t.hospital_id = #{hospitalId}
+        </if>
+        <if test="behospitalCode != null and behospitalCode != ''">
+            and t.behospital_code = #{behospitalCode}
+        </if>
+        <if test="doctorAdviceType != null and doctorAdviceType != ''">
+            and t.doctor_advice_type like CONCAT('%',#{doctorAdviceType},'%')
+        </if>
+        <if test="daItemName != null and daItemName != ''">
+            and t.da_item_name like CONCAT('%',#{daItemName},'%')
+        </if>
+        <if test="daStartDateStart != null">
+            <![CDATA[ and t.da_start_date >= #{daStartDateStart}]]>
+        </if>
+        <if test="daStartDateEnd != null">
+            <![CDATA[ and t.da_start_date < #{daStartDateEnd}]]>
+        </if>
+    </select>
 
     <update id="updateBatchByKey">
         <foreach collection="list" item="item"  separator=";">