Procházet zdrojové kódy

质控核查接口

zhanghang před 3 roky
rodič
revize
3839ff0d70

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

@@ -272,6 +272,8 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/qcView/data/*").permitAll()
                 .antMatchers("/medDefectFeedback/*").permitAll()
                 .antMatchers("/medNewsNotice/**").permitAll()
+                .antMatchers("/checkDistributionScheme/**").permitAll()
+                .antMatchers("/checkRecord/**").permitAll()
                 .antMatchers("/**").authenticated();
         //                .antMatchers("/**").permitAll();
     }

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

@@ -374,6 +374,8 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/qcView/data/*", request)
                 || matchers("/medDefectFeedback/*", request)
                 || matchers("/medNewsNotice/**", request)
+                || matchers("/checkDistributionScheme/**", request)
+                || matchers("/checkRecord/**", request)
                 || matchers("/", request)) {
             return true;
         }

+ 72 - 0
src/main/java/com/diagbot/dto/GetCheckRecordPageDTO.java

@@ -0,0 +1,72 @@
+package com.diagbot.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description:
+ * @author: zhanghang
+ * @time: 2022/5/19 11:17
+ */
+@Data
+public class GetCheckRecordPageDTO implements Serializable {
+
+    private static final long serialVersionUID = 8293787268000187792L;
+    @ApiModelProperty(value = "分配日期")
+    private Date jobDistributionTime;
+
+    @ApiModelProperty(value = "截止日期")
+    private Date jobEndTime;
+
+    @ApiModelProperty(value = "核查日期")
+    private Date checkTime;
+
+    @ApiModelProperty(value = "核查状态(0待核查,1已核查)")
+    private String status;
+
+    @ApiModelProperty(value = "核查人姓名")
+    private String checkName;
+
+    @ApiModelProperty(value = "病历等级")
+    private String level;
+
+    @ApiModelProperty(value = "病人住院序号")
+    private String behospitalCode;
+
+    @ApiModelProperty(value = "病人姓名")
+    private String name;
+
+    @ApiModelProperty(value = "病案号")
+    private String fileCode;
+
+    @ApiModelProperty(value = "性别")
+    private String sex;
+
+    @ApiModelProperty(value = "年龄")
+    private String age;
+
+    @ApiModelProperty(value = "科室")
+    private String behDeptName;
+
+    @ApiModelProperty(value = "入院时间")
+    private Date behospitalDate;
+
+    @ApiModelProperty(value = "出院时间")
+    private Date leaveHospitalDate;
+
+    @ApiModelProperty(value = "住院天数")
+    private String hospitalizationDays;
+
+    @ApiModelProperty(value = "医生姓名")
+    private String directorDoctorName;
+
+    @ApiModelProperty(value = "主诊断")
+    private String diagnose;
+
+    @ApiModelProperty(value = "病历类型")
+    private String behospitalType;
+
+}

+ 65 - 0
src/main/java/com/diagbot/facade/CheckDistributionSchemeFacade.java

@@ -0,0 +1,65 @@
+package com.diagbot.facade;
+
+
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.TypeReference;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.entity.SysTaskCron;
+import com.diagbot.service.impl.CheckDistributionSchemeServiceImpl;
+import com.diagbot.util.StringUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @Description:
+ * @author: zhanghang
+ * @time: 2022/5/18 16:48
+ */
+@Component
+public class CheckDistributionSchemeFacade extends CheckDistributionSchemeServiceImpl {
+    @Autowired
+    private SysTaskCronFacade sysTaskCronFacade;
+
+    @Autowired
+    private SysDictionaryFacade sysDictionaryFacade;
+
+    /**
+     * 新增获取病历类型接口
+     *
+     * @param
+     * @return:
+     */
+    public Map<String, String> getAddRecordType() {
+        //条件暂时不加是否删除
+        SysTaskCron sysTaskCron = sysTaskCronFacade.getBaseMapper().selectOne(new QueryWrapper<SysTaskCron>()
+                .eq("cron_code", "TASK019")
+        );
+        Map<String, String> params = new HashMap<>();
+        if (sysTaskCron != null) {
+            String param = sysTaskCron.getParam();
+            if (StringUtil.isNotEmpty(param)) {
+                JSONObject paramJson = JSONObject.parseObject(param);
+                JSONObject typeName = paramJson.getJSONObject("typeName");
+                params = JSONObject.parseObject(typeName.toJSONString(), new TypeReference<Map<String, String>>() {
+                });
+            }
+        }
+        return params;
+    }
+
+
+    /**
+     * 获取分配方案接口
+     *
+     * @param
+     * @return:
+     */
+    public Map<String, String> getDistributionType() {
+        Map<String, Map<String, String>> dictionaryWithKey = sysDictionaryFacade.getDictionaryWithKey();
+        Map<String, String> stringMap = dictionaryWithKey.get("48");
+        return stringMap;
+    }
+}

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

@@ -0,0 +1,29 @@
+package com.diagbot.facade;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.GetCheckRecordPageDTO;
+import com.diagbot.service.impl.CheckRecordServiceImpl;
+import com.diagbot.vo.GetCheckRecordPageVO;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * @Description:
+ * @author: zhanghang
+ * @time: 2022/5/18 16:48
+ */
+@Component
+public class CheckRecordFacade extends CheckRecordServiceImpl {
+
+    /**
+     * 获取病历核查分页接口
+     *
+     * @param
+     * @return:
+     */
+    public IPage<GetCheckRecordPageDTO> getCheckRecordPage(GetCheckRecordPageVO getCheckRecordPagevo) {
+        return this.baseMapper.getCheckRecordPage(getCheckRecordPagevo);
+    }
+
+}

+ 5 - 1
src/main/java/com/diagbot/mapper/CheckRecordMapper.java

@@ -1,7 +1,11 @@
 package com.diagbot.mapper;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.GetCheckRecordPageDTO;
 import com.diagbot.entity.CheckRecord;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.vo.GetCheckRecordPageVO;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -12,5 +16,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @since 2022-05-18
  */
 public interface CheckRecordMapper extends BaseMapper<CheckRecord> {
-
+    IPage<GetCheckRecordPageDTO>  getCheckRecordPage(@Param("getCheckRecordPagevo") GetCheckRecordPageVO getCheckRecordPagevo);
 }

+ 64 - 0
src/main/java/com/diagbot/vo/GetCheckRecordPageVO.java

@@ -0,0 +1,64 @@
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description:
+ * @author: zhanghang
+ * @time: 2022/5/19 10:54
+ */
+@Data
+public class GetCheckRecordPageVO extends Page implements Serializable {
+
+    private static final long serialVersionUID = -790951997817612690L;
+    @ApiModelProperty(value = "医院id", required = true)
+    private Long hospitalId;
+
+    @ApiModelProperty(value = "用户id",hidden = true)
+    private String userId;
+
+    @ApiModelProperty(value = "核查任务分配开始时间")
+    private Date jobDistributionTimeStart;
+
+    @ApiModelProperty(value = "核查任务分配结束时间")
+    private Date jobDistributionTimeEnd;
+
+    @ApiModelProperty(value = "病人姓名")
+    private String name;
+
+    @ApiModelProperty(value = "病人住院序号")
+    private String behospitalCode;
+
+    @ApiModelProperty(value = "科室名称")
+    private String deptName;
+
+    @ApiModelProperty(value = "住院天数")
+    private String hospitalizationDays;
+
+    @ApiModelProperty(value = "医生姓名")
+    private String doctorName;
+
+    @ApiModelProperty(value = "主诊断")
+    private String diagnoseName;
+
+    @ApiModelProperty(value = "病历等级")
+    private String level;
+
+    @ApiModelProperty(value = "病历类型")
+    private String recordType;
+
+    @ApiModelProperty(value = "核查状态")
+    private String status;
+
+    @ApiModelProperty(value = "核查任务类型(0-科室任务 1-质控科 2-院级)")
+    private String jobType;
+
+    @ApiModelProperty(value = "是否归档(0:未归档,1:已归档)")
+    private String isPlacefile;
+
+}

+ 33 - 2
src/main/java/com/diagbot/web/CheckDistributionSchemeController.java

@@ -1,9 +1,19 @@
 package com.diagbot.web;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.RespDTO;
 
+import com.diagbot.facade.CheckDistributionSchemeFacade;
+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.RequestMapping;
 import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RestController;
+
+
+import java.util.Map;
 
 /**
  * <p>
@@ -13,8 +23,29 @@ import org.springframework.stereotype.Controller;
  * @author songxl
  * @since 2022-05-18
  */
-@Controller
+@RestController
 @RequestMapping("/checkDistributionScheme")
 public class CheckDistributionSchemeController {
 
+    @Autowired
+    private CheckDistributionSchemeFacade checkDistributionSchemeFacade;
+
+    @ApiOperation(value = "新增获取病历类型接口[by:zhanghang]",
+            notes = "新增获取病历类型接口")
+    @PostMapping("/getAddRecordType")
+    @SysLogger("getAddRecordType")
+    public RespDTO<Map<String, String>> getAddRecordType() {
+        Map<String, String> addRecordType = checkDistributionSchemeFacade.getAddRecordType();
+        return RespDTO.onSuc(addRecordType);
+    }
+
+
+    @ApiOperation(value = "获取分配方案接口[by:zhanghang]",
+            notes = "获取分配方案接口")
+    @PostMapping("/getDistributionType")
+    @SysLogger("getDistributionType")
+    public RespDTO<Map<String, String>> getDistributionType() {
+        return RespDTO.onSuc(checkDistributionSchemeFacade.getDistributionType());
+    }
+
 }

+ 31 - 2
src/main/java/com/diagbot/web/CheckRecordController.java

@@ -1,9 +1,23 @@
 package com.diagbot.web;
 
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.GetCheckRecordPageDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.CheckRecordFacade;
+import com.diagbot.util.StringUtil;
+import com.diagbot.util.SysUserUtils;
+import com.diagbot.vo.GetCheckRecordPageVO;
+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.stereotype.Controller;
+
+import org.springframework.web.bind.annotation.RestController;
+
 
 /**
  * <p>
@@ -13,8 +27,23 @@ import org.springframework.stereotype.Controller;
  * @author songxl
  * @since 2022-05-18
  */
-@Controller
+@RestController
 @RequestMapping("/checkRecord")
 public class CheckRecordController {
 
+    @Autowired
+    private CheckRecordFacade checkRecordFacade;
+
+    @ApiOperation(value = "获取病历核查分页接口[by:zhanghang]",
+            notes = "获取病历核查分页接口")
+    @PostMapping("/getCheckRecordPage")
+    @SysLogger("getCheckRecordPage")
+    public RespDTO<IPage<GetCheckRecordPageDTO>> getCheckRecordPage(@RequestBody GetCheckRecordPageVO getCheckRecordPagevo) {
+     /*   String userId = SysUserUtils.getCurrentPrincipleID();
+        if(StringUtil.isNotEmpty(userId)) {
+            getCheckRecordPagevo.setUserId(userId);
+        }*/
+        return RespDTO.onSuc(checkRecordFacade.getCheckRecordPage(getCheckRecordPagevo));
+    }
+
 }

+ 125 - 18
src/main/resources/mapper/CheckRecordMapper.xml

@@ -4,24 +4,131 @@
 
     <!-- 通用查询映射结果 -->
     <resultMap id="BaseResultMap" type="com.diagbot.entity.CheckRecord">
-        <id column="id" property="id" />
-        <result column="hospital_id" property="hospitalId" />
-        <result column="behospital_code" property="behospitalCode" />
-        <result column="check_type" property="checkType" />
-        <result column="job_creator" property="jobCreator" />
-        <result column="job_creator_name" property="jobCreatorName" />
-        <result column="job_create_time" property="jobCreateTime" />
-        <result column="job_type" property="jobType" />
-        <result column="job_distributor" property="jobDistributor" />
-        <result column="job_distribution_name" property="jobDistributionName" />
-        <result column="job_distribution_time" property="jobDistributionTime" />
-        <result column="work_flow_node_id" property="workFlowNodeId" />
-        <result column="is_deleted" property="isDeleted" />
-        <result column="gmt_create" property="gmtCreate" />
-        <result column="gmt_modified" property="gmtModified" />
-        <result column="creator" property="creator" />
-        <result column="modifier" property="modifier" />
-        <result column="remark" property="remark" />
+        <id column="id" property="id"/>
+        <result column="hospital_id" property="hospitalId"/>
+        <result column="behospital_code" property="behospitalCode"/>
+        <result column="check_type" property="checkType"/>
+        <result column="job_creator" property="jobCreator"/>
+        <result column="job_creator_name" property="jobCreatorName"/>
+        <result column="job_create_time" property="jobCreateTime"/>
+        <result column="job_type" property="jobType"/>
+        <result column="job_distributor" property="jobDistributor"/>
+        <result column="job_distribution_name" property="jobDistributionName"/>
+        <result column="job_distribution_time" property="jobDistributionTime"/>
+        <result column="work_flow_node_id" property="workFlowNodeId"/>
+        <result column="is_deleted" property="isDeleted"/>
+        <result column="gmt_create" property="gmtCreate"/>
+        <result column="gmt_modified" property="gmtModified"/>
+        <result column="creator" property="creator"/>
+        <result column="modifier" property="modifier"/>
+        <result column="remark" property="remark"/>
     </resultMap>
 
+    <select id="getCheckRecordPage" resultType="com.diagbot.dto.GetCheckRecordPageDTO">
+        SELECT
+        t2.* ,
+        mhp.age
+        FROM
+        (
+        SELECT
+        t1.*,
+        mbi.name,
+        mbi.sex,
+        mbi.file_code fileCode,
+        mbi.beh_dept_name behDeptName,
+        mbi.behospital_date behospitalDate,
+        mbi.leave_hospital_date leaveHospitalDate,
+        CASE WHEN ISNULL(mbi.leave_hospital_date) THEN '-' ELSE (SELECT
+        TIMESTAMPDIFF(DAY,mbi.behospital_date,mbi.leave_hospital_date)) END hospitalizationDays,
+        mbi.director_doctor_id directorDoctorId,
+        mbi.director_doctor_name directorDoctorName,
+        mbi.diagnose,
+        mbt.behospital_type behospitalType,
+        mqc.`level`
+        FROM
+        (
+        SELECT
+        mcr.id,
+        mcr.hospital_id hospitalId,
+        mcr.behospital_code behospitalCode,
+        mcr.check_type checkType,
+        mcr.job_creator jobCreator,
+        mcr.job_creator_name jobCreatorName,
+        mcr.job_create_time jobCreateTime,
+        mcr.job_type jobType,
+        mcr.job_distributor jobDistributor,
+        mcr.job_distribution_name jobDistributionName,
+        mcr.job_distribution_time jobDistributionTime,
+        mcr.work_flow_node_id workFlowNodeId,
+        mcr.job_end_time jobEndTime,
+        mcre.check_record checkRecord,
+        mcre.check_id checkId,
+        mcre.check_name checkName,
+        mcre.check_time checkTime,
+        mcre. STATUS
+        FROM
+        (
+        SELECT * from
+        med_check_record mc
+        where
+         mc.is_deleted = 'N'
+        <if test="getCheckRecordPagevo.jobDistributionTimeStart != null and getCheckRecordPagevo.jobDistributionTimeStart != ''">
+            <![CDATA[ and mc.job_distribution_time >= #{getCheckRecordPagevo.jobDistributionTimeStart}]]>
+        </if>
+        <if test="getCheckRecordPagevo.jobDistributionTimeEnd != null and getCheckRecordPagevo.jobDistributionTimeEnd != ''">
+            <![CDATA[ and mc.job_distribution_time <= #{getCheckRecordPagevo.jobDistributionTimeEnd}]]>
+        </if>
+        <if test="getCheckRecordPagevo.behospitalCode != null and getCheckRecordPagevo.behospitalCode != ''">
+            AND mc.behospital_code = #{getCheckRecordPagevo.behospitalCode}
+        </if>
+        <if test="getCheckRecordPagevo.jobType != null and getCheckRecordPagevo.jobType != ''">
+            AND mc.job_type = #{getCheckRecordPagevo.jobType}
+        </if>
+        <if test="getCheckRecordPagevo.userId != null and getCheckRecordPagevo.userId != ''">
+            AND ( mc.job_creator = #{getCheckRecordPagevo.userId} or ISNULL(mc.job_creator) or mc.job_distributor = #{getCheckRecordPagevo.userId})
+        </if>
+        ) mcr
+        LEFT JOIN med_check_record_examine mcre ON mcr.id = mcre.check_record
+        AND mcre.is_deleted = 'N'
+        ) t1 LEFT JOIN med_behospital_info mbi on t1.behospitalCode=mbi.behospital_code
+        and mbi.is_deleted='N'
+        <if test="getCheckRecordPagevo.name != null and getCheckRecordPagevo.name!=''">
+            AND mbi.name like concat('%', #{getCheckRecordPagevo.name}, '%')
+        </if>
+        <if test="getCheckRecordPagevo.isPlacefile != null and getCheckRecordPagevo.isPlacefile!=''">
+            AND mbi.is_placefile = #{getCheckRecordPagevo.isPlacefile}
+        </if>
+        <if test="getCheckRecordPagevo.recordType != null and getCheckRecordPagevo.recordType!=''">
+            AND t1.behospital_type = #{getCheckRecordPagevo.recordType}
+        </if>
+        <if test="getCheckRecordPagevo.status != null and getCheckRecordPagevo.status!=''">
+            AND t1.status = #{getCheckRecordPagevo.status}
+        </if>
+        <if test="getCheckRecordPagevo.level != null and getCheckRecordPagevo.level!=''">
+            AND t1.level = #{getCheckRecordPagevo.level}
+        </if>
+        <if test="getCheckRecordPagevo.deptName != null and getCheckRecordPagevo.deptName != ''">
+            AND t1.beh_dept_name = #{getCheckRecordPagevo.deptName}
+        </if>
+        LEFT JOIN med_behospital_type mbt on t1.behospitalCode=mbt.behospital_code
+        and mbt.is_deleted='N'
+        LEFT JOIN med_qcresult_info mqc on t1.behospitalCode=mqc.behospital_code
+        and mqc.is_deleted='N'
+
+        )t2 LEFT JOIN med_home_page mhp on t2.behospitalCode=mhp.behospital_code
+        <if test="getCheckRecordPagevo.hospitalizationDays != null and getCheckRecordPagevo.hospitalizationDays != ''">
+            <![CDATA[ and t2.days <= #{getCheckRecordPagevo.hospitalizationDays}]]>
+        </if>
+        <if test="getCheckRecordPagevo.hospitalizationDays != null and getCheckRecordPagevo.hospitalizationDays != ''">
+            <![CDATA[ and t2.days >= #{getCheckRecordPagevo.hospitalizationDays}]]>
+        </if>
+        <if test="getCheckRecordPagevo.doctorName != null and getCheckRecordPagevo.doctorName != ''">
+            AND t2.directorDoctorName like concat('%', #{getCheckRecordPagevo.doctorName}, '%')
+        </if>
+        <if test="getCheckRecordPagevo.diagnoseName != null and getCheckRecordPagevo.diagnoseName != ''">
+            AND t2.diagnose like concat('%', #{getCheckRecordPagevo.diagnoseName}, '%')
+        </if>
+
+    </select>
+
 </mapper>