ソースを参照

Merge branch 'dev/20200713_1.3.7.3' into test

gaodm 5 年 前
コミット
a95788bc7f

ファイルの差分が大きいため隠しています
+ 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;
+}

+ 7 - 7
src/main/java/com/diagbot/facade/AlgorithmFacade.java

@@ -146,17 +146,17 @@ public class AlgorithmFacade {
      */
     private String getLevel(BigDecimal score) {
         String level = "甲";
-        //得分90分为甲级
-        if (BigDecimalUtil.gt(score, new BigDecimal(90))) {
+        //得分90分为甲级
+        if (BigDecimalUtil.ge(score, new BigDecimal(90))) {
             level = "甲";
         }
-        //得分≤90分且得分>80分为乙级
-        if (BigDecimalUtil.le(score, new BigDecimal(90))
-                && BigDecimalUtil.gt(score, new BigDecimal(80))) {
+        //得分<90分且得分≥80分为乙级
+        if (BigDecimalUtil.lt(score, new BigDecimal(90))
+                && BigDecimalUtil.ge(score, new BigDecimal(80))) {
             level = "乙";
         }
-        //得分80分为丙级
-        if (BigDecimalUtil.le(score, new BigDecimal(80))) {
+        //得分<80分为丙级
+        if (BigDecimalUtil.lt(score, new BigDecimal(80))) {
             level = "丙";
         }
 

+ 2 - 0
src/main/java/com/diagbot/facade/BehospitalInfoFacade.java

@@ -495,6 +495,8 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         if (recordMap.get(16L) != null) {
             recordDTOList.addAll(recordMap.get(16L)); // 手术知情同意书
         }
+        // 医嘱信息
+        pageMap.put("医嘱信息", null);
         // 知情同意书 = 【知情同意书】 + 【手术知情同意书】
         pageMap.put("知情同意书", recordDTOList);
         pageMap.put("谈话告知书", recordMap.get(54L));

+ 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;
+
+}

+ 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));
+    }
+}

+ 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=";">

+ 1 - 0
src/main/resources/mapper/MedicalRecordMapper.xml

@@ -30,6 +30,7 @@
         and t1.rec_id = t3.rec_id
         and t1.hospital_id = #{hospitalId}
         and t1.behospital_code = #{behospitalCode}
+        and t3.xml_text != ''
     </select>
 
     <update id="updateBatchByKey">