Преглед изворни кода

温附一甲级以下病历统计接口实现

wangsy пре 3 година
родитељ
комит
efc6303614

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

@@ -196,6 +196,7 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/qc/data/getColumnZhAndCh").permitAll()
                 .antMatchers("/qc/data/analyseRec").permitAll()
                 .antMatchers("/qc/data/hisDataDeal").permitAll()
+                .antMatchers("/qc/data/belowHospitalList").permitAll()
                 .antMatchers("/qc/data_str/*").permitAll()
                 .antMatchers("/qc/doctoradvice/getPage").permitAll()
                 .antMatchers("/qc/medPacsInfo/getCheckPage").permitAll()

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

@@ -248,6 +248,7 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/qc/data/getColumnZhAndCh", request)
                 || matchers("/qc/data/analyseRec", request)
                 || matchers("/qc/data/hisDataDeal", request)
+                || matchers("/qc/data/belowHospitalList", request)
                 || matchers("/qc/data_str/sendAdmissionNote", request)
                 || matchers("/qc/data_str/sendBloodResult", request)
                 || matchers("/qc/data_str/sendBloodTransfusion", request)

+ 25 - 0
src/main/java/com/diagbot/dto/data/ABelowDTO.java

@@ -0,0 +1,25 @@
+package com.diagbot.dto.data;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Setter
+@Getter
+public class ABelowDTO {
+
+    /**
+     * 病人住院ID
+     */
+    private String behospitalCode;
+
+    /**
+     * 档案号
+     */
+    private String fileCode;
+
+    /**
+     * 驳回状态
+     */
+    private String exampleStatus;
+
+}

+ 89 - 60
src/main/java/com/diagbot/facade/data/ABehospitalInfoFacade.java

@@ -5,18 +5,15 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.ABehospitalInfoDTO;
-import com.diagbot.entity.BehospitalInfo;
-import com.diagbot.entity.MedicalRecord;
-import com.diagbot.entity.QcType;
+import com.diagbot.dto.data.ABelowDTO;
+import com.diagbot.entity.*;
 import com.diagbot.enums.IsDeleteEnum;
-import com.diagbot.facade.QcAbnormalFacade;
+import com.diagbot.facade.MedAppealInfoManagementFacade;
 import com.diagbot.facade.QcTypeFacade;
 import com.diagbot.service.impl.BehospitalInfoServiceImpl;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.StringUtil;
-import com.diagbot.util.TZDBConn;
+import com.diagbot.util.*;
 import com.diagbot.vo.data.ABehospitalInfoVO;
+import com.diagbot.vo.data.ABelowVO;
 import com.diagbot.vo.data.ADeleteFlagVO;
 import com.diagbot.vo.data.APlaceFileVO;
 import com.google.common.collect.Lists;
@@ -25,6 +22,7 @@ import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -37,6 +35,9 @@ public class ABehospitalInfoFacade extends BehospitalInfoServiceImpl {
     private QcTypeFacade qcTypeFacade;
     @Autowired
     private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+    @Autowired
+    private MedAppealInfoManagementFacade appealInfoManagementFacade;
+
     @Value("${log_switch.enable}")
     private boolean logSwitch;
 
@@ -47,7 +48,7 @@ public class ABehospitalInfoFacade extends BehospitalInfoServiceImpl {
      */
     public void executeBehospital() {
         //String sql="select * from br_inpatientinfo where cjcxrq>=dateadd(day,-2,getdate()) and cjcxrq<=getdate()";
-        String sql="select * from br_inpatientinfo where cjcxrq>=(select CONVERT(varchar,GETDATE()-2,23)) and cjcxrq<(select CONVERT(varchar,GETDATE(),23)) ORDER BY cjcxrq DESC";
+        String sql = "select * from br_inpatientinfo where cjcxrq>=(select CONVERT(varchar,GETDATE()-2,23)) and cjcxrq<(select CONVERT(varchar,GETDATE(),23)) ORDER BY cjcxrq DESC";
         List<BehospitalInfo> behospitalInfoList = tzDBConn.getBehospitalInfo(sql);
         execute(behospitalInfoList);
     }
@@ -56,7 +57,7 @@ public class ABehospitalInfoFacade extends BehospitalInfoServiceImpl {
      * 同步前一天的入院记录
      */
     public void executeBehospitalPast() {
-        String sql="select * from br_inpatientinfo where cjcxrq>=dateadd(day,-2,getdate()) and cjcxrq<=getdate()";
+        String sql = "select * from br_inpatientinfo where cjcxrq>=dateadd(day,-2,getdate()) and cjcxrq<=getdate()";
         List<BehospitalInfo> behospitalInfoList = tzDBConn.getBehospitalInfo(sql);
         execute(behospitalInfoList);
     }
@@ -64,39 +65,40 @@ public class ABehospitalInfoFacade extends BehospitalInfoServiceImpl {
 
     /**
      * 通过接口更新病人住院记录信息
+     *
      * @param list
      * @return
      */
     public RespDTO<List<ABehospitalInfoDTO>> executeBehospital(List<ABehospitalInfoVO> list) {
         try {
-            if(list!=null && list.size()>0) {
+            if (list != null && list.size() > 0) {
                 //循环验证数据有效性
-                for (ABehospitalInfoVO behospitalInfo:list) {
-                    if("".equals(behospitalInfo.getBehospitalCode())) {
+                for (ABehospitalInfoVO behospitalInfo : list) {
+                    if ("".equals(behospitalInfo.getBehospitalCode())) {
                         return RespDTO.onError("请输入病人住院编码!");
-                    }else if(behospitalInfo.getHospitalId()==null){
+                    } else if (behospitalInfo.getHospitalId() == null) {
                         return RespDTO.onError("请输入医院编码!");
-                    }else if("".equals(behospitalInfo.getBehDeptId())){
+                    } else if ("".equals(behospitalInfo.getBehDeptId())) {
                         return RespDTO.onError("请输入住院科室编码!");
-                    }else if("".equals(behospitalInfo.getBehDeptName())){
+                    } else if ("".equals(behospitalInfo.getBehDeptName())) {
                         return RespDTO.onError("请输入住院科室名称!");
                     }
                 }
 
                 List<BehospitalInfo> behospitalInfoList = Lists.newArrayList();
-                list.stream().forEach(s->{
-                    BehospitalInfo behospitalInfo=new BehospitalInfo();
-                    BeanUtil.copyProperties(s,behospitalInfo);
-                    if(StringUtil.isNotBlank(s.getBirthday())) {
+                list.stream().forEach(s -> {
+                    BehospitalInfo behospitalInfo = new BehospitalInfo();
+                    BeanUtil.copyProperties(s, behospitalInfo);
+                    if (StringUtil.isNotBlank(s.getBirthday())) {
                         behospitalInfo.setBirthday(DateUtil.parseDate(s.getBirthday()));
                     }
-                    if(StringUtil.isNotBlank(s.getLeaveHospitalDate())) {
+                    if (StringUtil.isNotBlank(s.getLeaveHospitalDate())) {
                         behospitalInfo.setLeaveHospitalDate(DateUtil.parseDateTime(s.getLeaveHospitalDate()));
                     }
-                    if(StringUtil.isNotBlank(s.getBehospitalDate())){
+                    if (StringUtil.isNotBlank(s.getBehospitalDate())) {
                         behospitalInfo.setBehospitalDate(DateUtil.parseDateTime(s.getBehospitalDate()));
                     }
-                    if(StringUtil.isNotBlank(s.getPlacefileDate())){
+                    if (StringUtil.isNotBlank(s.getPlacefileDate())) {
                         behospitalInfo.setPlacefileDate(DateUtil.parseDateTime(s.getPlacefileDate()));
                     }
                     behospitalInfoList.add(behospitalInfo);
@@ -104,30 +106,30 @@ public class ABehospitalInfoFacade extends BehospitalInfoServiceImpl {
                 });
 
                 execute(behospitalInfoList);
-                if(logSwitch){
-                    behospitalInfoList.forEach(s->{
-                        aMedAbnormalInfoFacade.saveAbnormalInfo("病人住院登记-正常","", JSON.toJSONString(list),"","");
+                if (logSwitch) {
+                    behospitalInfoList.forEach(s -> {
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("病人住院登记-正常", "", JSON.toJSONString(list), "", "");
                     });
                 }
                 return RespDTO.onSuc("操作正常!");
-            }else{
+            } else {
                 return RespDTO.onError("未接收到数据!");
             }
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("病人住院登记-异常","", JSON.toJSONString(list),"",e.getMessage());
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("病人住院登记-异常", "", JSON.toJSONString(list), "", e.getMessage());
             return RespDTO.onError("数据处理异常,详情查看日志表");
         }
     }
 
-    public void execute(List<BehospitalInfo> behospitalInfoList){
+    public void execute(List<BehospitalInfo> behospitalInfoList) {
         List<BehospitalInfo> addE = Lists.newLinkedList();
         List<BehospitalInfo> updateE = Lists.newLinkedList();
         behospitalInfoList.stream().forEach(s -> {
             BehospitalInfo behospitalInfo = this.getOne(new QueryWrapper<BehospitalInfo>()
                     .eq("behospital_code", s.getBehospitalCode())
                     .eq("hospital_id", s.getHospitalId())
-                    .eq("is_deleted",IsDeleteEnum.N), false);
+                    .eq("is_deleted", IsDeleteEnum.N), false);
             if (behospitalInfo != null) {
                 s.setGmtModified(new Date());
                 s.setQcTypeId(initQcTypeId(s));
@@ -138,16 +140,17 @@ public class ABehospitalInfoFacade extends BehospitalInfoServiceImpl {
                 addE.add(s);
             }
         });
-        if(addE.size()>0){
+        if (addE.size() > 0) {
             behospitalInfoService.saveBatch(addE);
         }
-        if(updateE.size()>0){
+        if (updateE.size() > 0) {
             behospitalInfoService.updateBatchByKey(updateE);
         }
     }
 
     /**
      * 初始化QcTypeId
+     *
      * @param s
      * @return
      */
@@ -158,71 +161,97 @@ public class ABehospitalInfoFacade extends BehospitalInfoServiceImpl {
                 .eq("beh_dept_id", s.getBehDeptId())
                 .eq("hospital_id", s.getHospitalId())
                 .eq("default_module", 0)
-                .eq("sex",s.getSex())
+                .eq("sex", s.getSex())
                 .eq("is_deleted", IsDeleteEnum.N));
-        if(qcTypeList == null){
+        if (qcTypeList == null) {
             //无质控类型时,新增后初始化
             QcType qcType = qcTypeFacade.getOne(new QueryWrapper<QcType>()
                     .eq("default_module", 1)
                     .eq("hospital_id", s.getHospitalId())
-                    .eq("sex",s.getSex())
+                    .eq("sex", s.getSex())
                     .eq("is_deleted", IsDeleteEnum.N));
-            if(qcType!=null){
+            if (qcType != null) {
                 qcTypeId = qcType.getId();
             }
-        }else {
+        } else {
             qcTypeId = qcTypeList.getId();
         }
         return qcTypeId;
     }
 
-    public RespDTO deleteFlag(ADeleteFlagVO aDeleteFlagVO){
+    public RespDTO deleteFlag(ADeleteFlagVO aDeleteFlagVO) {
         try {
             //验证数据是否存在
-            if(StringUtil.isEmpty(aDeleteFlagVO.getBehospitalCode())){
+            if (StringUtil.isEmpty(aDeleteFlagVO.getBehospitalCode())) {
                 return RespDTO.onError("请输入病人住院编码!");
-            }else if(aDeleteFlagVO.getHospitalId()==null){
+            } else if (aDeleteFlagVO.getHospitalId() == null) {
                 return RespDTO.onError("请输入医院编码!");
-            }else {
-                UpdateWrapper<BehospitalInfo> updateWrapper=new UpdateWrapper<>();
+            } else {
+                UpdateWrapper<BehospitalInfo> updateWrapper = new UpdateWrapper<>();
                 updateWrapper.eq("behospital_code", aDeleteFlagVO.getBehospitalCode())
                         .eq("hospital_id", aDeleteFlagVO.getHospitalId())
-                        .eq("is_deleted",IsDeleteEnum.N)
-                        .set("is_deleted",IsDeleteEnum.Y)
+                        .eq("is_deleted", IsDeleteEnum.N)
+                        .set("is_deleted", IsDeleteEnum.Y)
                         .set("gmt_modified", DateUtil.now());
 
-                Boolean flag=update(new BehospitalInfo(),updateWrapper);
+                Boolean flag = update(new BehospitalInfo(), updateWrapper);
                 //aMedAbnormalInfoFacade.saveAbnormalInfo("病人住院登记-删除",JSON.toJSONString(aDeleteFlagVO),"","删除成功!");
                 return RespDTO.onSuc(flag);
             }
-        }catch (Exception e){
-            aMedAbnormalInfoFacade.saveAbnormalInfo("病人住院登记-删除","",JSON.toJSONString(aDeleteFlagVO),"",e.getMessage());
+        } catch (Exception e) {
+            aMedAbnormalInfoFacade.saveAbnormalInfo("病人住院登记-删除", "", JSON.toJSONString(aDeleteFlagVO), "", e.getMessage());
             return RespDTO.onError(e.getMessage());
         }
     }
 
-    public RespDTO placeFileFlag(APlaceFileVO aPlaceFileVO){
+    public RespDTO placeFileFlag(APlaceFileVO aPlaceFileVO) {
         try {
             //验证数据是否存在
-            if(StringUtil.isBlank(aPlaceFileVO.getBehospitalCode())){
+            if (StringUtil.isBlank(aPlaceFileVO.getBehospitalCode())) {
                 return RespDTO.onError("请输入病人住院编码!");
-            }else if(aPlaceFileVO.getHospitalId()==null){
+            } else if (aPlaceFileVO.getHospitalId() == null) {
                 return RespDTO.onError("请输入医院编码!");
-            }else{
-                UpdateWrapper<BehospitalInfo> updateWrapper=new UpdateWrapper<>();
+            } else {
+                UpdateWrapper<BehospitalInfo> updateWrapper = new UpdateWrapper<>();
                 updateWrapper.eq("behospital_code", aPlaceFileVO.getBehospitalCode())
                         .eq("hospital_id", aPlaceFileVO.getHospitalId())
-                        .eq("is_deleted",IsDeleteEnum.N)
-                        .set("is_placefile","1")
-                        .set("placefile_date",aPlaceFileVO.getPlaceFileDate().isEmpty()?DateUtil.formatDateTime(DateUtil.now()):DateUtil.parseDateTime(aPlaceFileVO.getPlaceFileDate()))
+                        .eq("is_deleted", IsDeleteEnum.N)
+                        .set("is_placefile", "1")
+                        .set("placefile_date", aPlaceFileVO.getPlaceFileDate().isEmpty() ? DateUtil.formatDateTime(DateUtil.now()) : DateUtil.parseDateTime(aPlaceFileVO.getPlaceFileDate()))
                         .set("gmt_modified", DateUtil.now());
 
-                Boolean flag=update(new BehospitalInfo(),updateWrapper);
+                Boolean flag = update(new BehospitalInfo(), updateWrapper);
                 return RespDTO.onSuc(flag);
             }
-        }catch (Exception e){
-            aMedAbnormalInfoFacade.saveAbnormalInfo("病人住院登记-归档","",JSON.toJSONString(aPlaceFileVO),"",e.getMessage());
+        } catch (Exception e) {
+            aMedAbnormalInfoFacade.saveAbnormalInfo("病人住院登记-归档", "", JSON.toJSONString(aPlaceFileVO), "", e.getMessage());
             return RespDTO.onError(e.getMessage());
         }
     }
+
+    public List<ABelowDTO> belowHospitalList(ABelowVO aBelowVO) {
+        //查询甲级以下病历
+        List<ABelowDTO> belowHospitalList = getBelowHospital(aBelowVO);
+
+        if (ListUtil.isEmpty(belowHospitalList)) {
+            return belowHospitalList;
+        }
+        List<String> behospitalCodeList = new ArrayList<>();
+        belowHospitalList.forEach(behospitalCode -> {
+            behospitalCodeList.add(behospitalCode.getBehospitalCode());
+        });
+        //查询是否存在被驳回情况
+        List<ABelowDTO> exampleStatusList = appealInfoManagementFacade.getBaseMapper().getExampleStatus(behospitalCodeList);
+        //同步驳回状态
+        if (ListUtil.isNotEmpty(exampleStatusList)) {
+            exampleStatusList.forEach(exampleStatus -> {
+                for (ABelowDTO aBelowDTO : belowHospitalList) {
+                    if (aBelowDTO.getBehospitalCode().equals(exampleStatus.getBehospitalCode())) {
+                        aBelowDTO.setExampleStatus(exampleStatus.getExampleStatus());
+                    }
+                }
+            });
+        }
+        return belowHospitalList;
+    }
 }

+ 4 - 0
src/main/java/com/diagbot/mapper/BehospitalInfoMapper.java

@@ -3,8 +3,10 @@ package com.diagbot.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.dto.*;
+import com.diagbot.dto.data.ABelowDTO;
 import com.diagbot.entity.BehospitalInfo;
 import com.diagbot.vo.*;
+import com.diagbot.vo.data.ABelowVO;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -28,6 +30,8 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
 
     public List<MsgDTO> getMsgByEntryCode(AnalyzeCodeVO analyzeCodeVO);
 
+    public List<ABelowDTO> getBelowHospital(ABelowVO aBelowVO);
+
     /**
      * 各科室缺陷占比-全院-首页
      *

+ 11 - 0
src/main/java/com/diagbot/mapper/MedAppealInfoMapper.java

@@ -1,7 +1,11 @@
 package com.diagbot.mapper;
 
+import com.diagbot.dto.data.ABelowDTO;
 import com.diagbot.entity.MedAppealInfo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -12,5 +16,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @since 2022-01-20
  */
 public interface MedAppealInfoMapper extends BaseMapper<MedAppealInfo> {
+    /**
+     * 条目缺陷质控评分详情页导出到excel-湘雅
+     *
+     * @param
+     * @return
+     */
+    public List<ABelowDTO> getExampleStatus(@Param("behospitalCodeList")List<String> behospitalCodeList);
 
 }

+ 7 - 4
src/main/java/com/diagbot/service/impl/BehospitalInfoServiceImpl.java

@@ -3,17 +3,15 @@ package com.diagbot.service.impl;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.diagbot.dto.*;
+import com.diagbot.dto.data.ABelowDTO;
 import com.diagbot.entity.BehospitalInfo;
-import com.diagbot.entity.FilterRecordVO;
 import com.diagbot.mapper.BehospitalInfoMapper;
 import com.diagbot.service.BehospitalInfoService;
-import com.diagbot.util.ListUtil;
 import com.diagbot.vo.*;
+import com.diagbot.vo.data.ABelowVO;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Service;
 
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
 import java.util.*;
 
 /**
@@ -42,6 +40,10 @@ public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper,
         return baseMapper.getMsgByEntryCode(analyzeCodeVO);
     }
 
+    public List<ABelowDTO> getBelowHospital(ABelowVO aBelowVO) {
+        return baseMapper.getBelowHospital(aBelowVO);
+    }
+
     /**
      * 各科室缺陷占比-全院-首页
      *
@@ -1154,4 +1156,5 @@ public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper,
     public List<Map<String,String>> malignancy(@Param("filterVO") FilterVO filterVO){
         return  baseMapper.malignancy(filterVO);
     }
+
 }

+ 37 - 0
src/main/java/com/diagbot/vo/data/ABelowVO.java

@@ -0,0 +1,37 @@
+package com.diagbot.vo.data;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class ABelowVO {
+    /**
+     * 医院编码
+     */
+    private Long hospitalId;
+    /**
+     * 住院科室ID
+     */
+    @ApiModelProperty("住院科室ID")
+    private String behDeptId;
+
+    /**
+     * 住院科室名称
+     */
+    @ApiModelProperty("住院科室名称")
+    private String behDeptName;
+
+    /**
+     * 入院时间
+     */
+    @ApiModelProperty("入院时间")
+    private String behospitalDate;
+
+    /**
+     * 出院时间
+     */
+    @ApiModelProperty("出院时间")
+    private String leaveHospitalDate;
+}

+ 38 - 31
src/main/java/com/diagbot/web/DataController.java

@@ -18,7 +18,7 @@ import java.util.Map;
 
 @RestController
 @RequestMapping("/qc/data")
-@Api(value = "对接接口API", tags = { "对接接口API" })
+@Api(value = "对接接口API", tags = {"对接接口API"})
 public class DataController {
     @Autowired
     private ABasDoctorInfoFacade aBasDoctorInfoFacade;
@@ -54,115 +54,115 @@ public class DataController {
     @ApiOperation(value = "数据引擎-获取医院所有在职医生的基本信息")
     @PostMapping("/sendDoctorInfos")
     @SysLogger("sendDoctorInfos")
-    public RespDTO sendDoctorInfos(@RequestBody List<ABasDoctorInfoVO> list){
+    public RespDTO sendDoctorInfos(@RequestBody List<ABasDoctorInfoVO> list) {
         return aBasDoctorInfoFacade.executeDoctor(list);
     }
 
     @ApiOperation(value = "数据引擎-获取医院所有有效科室的基本信息")
     @PostMapping("/sendDeptInfos")
     @SysLogger("sendDeptInfos")
-    public RespDTO<List<ABasDeptInfoDTO>> sendDeptInfos(@RequestBody List<ABasDeptInfoVO> list){
+    public RespDTO<List<ABasDeptInfoDTO>> sendDeptInfos(@RequestBody List<ABasDeptInfoVO> list) {
         return aBasDeptInfoFacade.executeDept(list);
     }
 
     @ApiOperation(value = "数据引擎-获取医院所有文书模板基本信息")
     @PostMapping("/sendRecordTypes")
     @SysLogger("sendRecordTypes")
-    public RespDTO<List<AMedicalRecordTypeDTO>> sendRecordTypes(@RequestBody List<AMedicalRecordTypeVO> list){
+    public RespDTO<List<AMedicalRecordTypeDTO>> sendRecordTypes(@RequestBody List<AMedicalRecordTypeVO> list) {
         return aMedRecordTypeFacade.executeMRType(list);
     }
 
     @ApiOperation(value = "运行质控-评分-文书信息")
     @PostMapping("/sendMrRecordIng")
     @SysLogger("sendMrRecordIng")
-    public RespDTO<Map<String, Object>> sendMrRecordIng(@Valid @RequestBody AMrContentVO aMrContentVO){
+    public RespDTO<Map<String, Object>> sendMrRecordIng(@Valid @RequestBody AMrContentVO aMrContentVO) {
         return aMedicalRecordFacade.executeMrRecordIng(aMrContentVO);
     }
 
     @ApiOperation(value = "终末质控-文书信息")
     @PostMapping("/sendMrRecord")
     @SysLogger("sendMrRecord")
-    public RespDTO<List<AMedicalRecordDTO>> sendMrRecord(@RequestBody List<AMedicalRecordVO> list){
+    public RespDTO<List<AMedicalRecordDTO>> sendMrRecord(@RequestBody List<AMedicalRecordVO> list) {
         return aMedicalRecordFacade.executeMrRecord(list);
     }
 
     @ApiOperation(value = "终末质控-文书详情")
     @PostMapping("/sendMrContent")
     @SysLogger("sendMrContent")
-    public RespDTO<List<AMedicalRecordContentDTO>> sendMrContent(@RequestBody List<AMedicalRecordContentVO> list){
+    public RespDTO<List<AMedicalRecordContentDTO>> sendMrContent(@RequestBody List<AMedicalRecordContentVO> list) {
         return aMedicalRecordContentFacade.executeMrRecordContent(list);
     }
 
     @ApiOperation(value = "数据引擎-获取医院病人住院记录信息")
     @PostMapping("/sendPatientInfo")
     @SysLogger("sendPatientInfo")
-    public RespDTO<List<ABehospitalInfoDTO>> sendPatientInfo(@RequestBody List<ABehospitalInfoVO> list){
+    public RespDTO<List<ABehospitalInfoDTO>> sendPatientInfo(@RequestBody List<ABehospitalInfoVO> list) {
         return aBehospitalInfoFacade.executeBehospital(list);
     }
 
     @ApiOperation(value = "数据引擎-获取医院医生医嘱信息")
     @PostMapping("/sendDoctorAdvice")
     @SysLogger("sendDoctorAdvice")
-    public RespDTO<List<ADoctorAdviceDTO>> sendDoctorAdvice(@RequestBody List<ADoctorAdviceVO> list){
+    public RespDTO<List<ADoctorAdviceDTO>> sendDoctorAdvice(@RequestBody List<ADoctorAdviceVO> list) {
         return aDoctorAdviceFacade.executeDoctorAdvice(list);
     }
 
     @ApiOperation(value = "运行质控-获取病案首页")
     @PostMapping("/sendHomePageIng")
     @SysLogger("sendHomePageIng")
-    public RespDTO<Map<String, Object>> sendHomePageIng(@Valid @RequestBody AHomePageIngVO aHomePageIngVO){
+    public RespDTO<Map<String, Object>> sendHomePageIng(@Valid @RequestBody AHomePageIngVO aHomePageIngVO) {
         return aHomePageFacade.executeHomePageIng(aHomePageIngVO);
     }
 
     @ApiOperation(value = "终末质控-获取病案首页")
     @PostMapping("/sendHomePage")
     @SysLogger("sendHomePage")
-    public RespDTO<List<AHomePageDTO>> sendHomePage(@RequestBody List<AHomePageVO> list){
+    public RespDTO<List<AHomePageDTO>> sendHomePage(@RequestBody List<AHomePageVO> list) {
         return aHomePageFacade.executeHomePage(list);
     }
 
     @ApiOperation(value = "终末质控-获取病案首页诊断")
     @PostMapping("/sendHomeDiagnose")
     @SysLogger("sendHomeDiagnose")
-    public RespDTO<List<AHomeDiagnoseDTO>> sendHomeDiagnose(@RequestBody List<AHomeDiagnoseVO> list){
+    public RespDTO<List<AHomeDiagnoseDTO>> sendHomeDiagnose(@RequestBody List<AHomeDiagnoseVO> list) {
         return aHomeDiagnoseInfoFacade.executeHomeDiagnose(list);
     }
 
     @ApiOperation(value = "终末质控-获取病案首页手术")
     @PostMapping("/sendHomeOperation")
     @SysLogger("sendHomeOperation")
-    public RespDTO<List<AHomeOperationDTO>> sendHomeOperation(@RequestBody List<AHomeOperationVO> list){
+    public RespDTO<List<AHomeOperationDTO>> sendHomeOperation(@RequestBody List<AHomeOperationVO> list) {
         return RespDTO.onSuc(aHomeOperationInfoFacade.executeHomeOperation(list));
     }
 
     @ApiOperation(value = "数据引擎-获取危急值")
     @PostMapping("/sendCrisis")
     @SysLogger("sendCrisis")
-    public RespDTO<List<AMedCrisisDTO>> sendCrisis(@RequestBody List<AMedCrisisVO> list){
+    public RespDTO<List<AMedCrisisDTO>> sendCrisis(@RequestBody List<AMedCrisisVO> list) {
         return aMedCrisisFacade.executeMedCrisis(list);
     }
 
     @ApiOperation(value = "数据引擎-删除标识")
     @PostMapping("/deleteFlag")
     @SysLogger("deleteFlag")
-    public RespDTO deleteFlag(@RequestBody ADeleteFlagVO aDeleteFlagVO){
-        if("brzyxx".equals(aDeleteFlagVO.getModeType())){
+    public RespDTO deleteFlag(@RequestBody ADeleteFlagVO aDeleteFlagVO) {
+        if ("brzyxx".equals(aDeleteFlagVO.getModeType())) {
             return aBehospitalInfoFacade.deleteFlag(aDeleteFlagVO);
-        }else if("bryz".equals(aDeleteFlagVO.getModeType())){
+        } else if ("bryz".equals(aDeleteFlagVO.getModeType())) {
             return aDoctorAdviceFacade.deleteFlag(aDeleteFlagVO);
-        }else if("basyxx".equals(aDeleteFlagVO.getModeType())){
+        } else if ("basyxx".equals(aDeleteFlagVO.getModeType())) {
             return aHomePageFacade.deleteFlag(aDeleteFlagVO);
-        }else if("basyzd".equals(aDeleteFlagVO.getModeType())){
+        } else if ("basyzd".equals(aDeleteFlagVO.getModeType())) {
             return aHomeDiagnoseInfoFacade.deleteFlag(aDeleteFlagVO);
-        }else if("basyss".equals(aDeleteFlagVO.getModeType())){
+        } else if ("basyss".equals(aDeleteFlagVO.getModeType())) {
             return aHomeOperationInfoFacade.deleteFlag(aDeleteFlagVO);
-        }else if("wsxx".equals(aDeleteFlagVO.getModeType())){
+        } else if ("wsxx".equals(aDeleteFlagVO.getModeType())) {
             return aMedicalRecordFacade.deleteFlag(aDeleteFlagVO);
-        }else if("wsnr".equals(aDeleteFlagVO.getModeType())){
+        } else if ("wsnr".equals(aDeleteFlagVO.getModeType())) {
             return aMedicalRecordContentFacade.deleteFlag(aDeleteFlagVO);
-        }else if("hyjg".equals(aDeleteFlagVO.getModeType())){
+        } else if ("hyjg".equals(aDeleteFlagVO.getModeType())) {
             return aMedLisResultFacade.deleteFlag(aDeleteFlagVO);
-        }else if("jcjg".equals(aDeleteFlagVO.getModeType())){
+        } else if ("jcjg".equals(aDeleteFlagVO.getModeType())) {
             return aMedPacsResultFacade.deleteFlag(aDeleteFlagVO);
         }
         return RespDTO.onSuc(true);
@@ -171,45 +171,45 @@ public class DataController {
     @ApiOperation(value = "数据引擎-归档标识")
     @PostMapping("/placeFile")
     @SysLogger("placeFile")
-    public RespDTO placeFileFlag(@RequestBody APlaceFileVO aPlaceFileVO){
+    public RespDTO placeFileFlag(@RequestBody APlaceFileVO aPlaceFileVO) {
         return aBehospitalInfoFacade.placeFileFlag(aPlaceFileVO);
     }
 
     @ApiOperation(value = "检查结果")
     @PostMapping("/sendPacsResults")
     @SysLogger("sendPacsResults")
-    public RespDTO<List<AMedPacsResultVO>> sendPacsResults(@RequestBody List<AMedPacsResultVO> list){
+    public RespDTO<List<AMedPacsResultVO>> sendPacsResults(@RequestBody List<AMedPacsResultVO> list) {
         return aMedPacsResultFacade.executeMedPacsResult(list);
     }
 
     @ApiOperation(value = "化验结果")
     @PostMapping("/sendLisResults")
     @SysLogger("sendLisResults")
-    public RespDTO<List<AMedLisResultVO>> sendLisResults(@RequestBody List<AMedLisResultVO> list){
+    public RespDTO<List<AMedLisResultVO>> sendLisResults(@RequestBody List<AMedLisResultVO> list) {
         return aMedLisResultFacade.executeMedLisResult(list);
     }
 
     @ApiOperation(value = "检查信息")
     @PostMapping("/sendPacsInfos")
     @SysLogger("sendPacsInfos")
-    public RespDTO sendPacsInfos(@RequestBody List<AMedPacsInfoVO> list){
+    public RespDTO sendPacsInfos(@RequestBody List<AMedPacsInfoVO> list) {
         return aMedPacsInfoFacade.dealData(list);
     }
 
     @ApiOperation(value = "化验信息")
     @PostMapping("/sendLisInfos")
     @SysLogger("sendLisInfos")
-    public RespDTO sendLisInfos(@RequestBody List<AMedLisInfoVO> list){
+    public RespDTO sendLisInfos(@RequestBody List<AMedLisInfoVO> list) {
         return aMedLisInfoFacade.dealData(list);
     }
 
     @ApiOperation(value = "数据引擎-历史数据结构化处理")
     @PostMapping("/hisDataDeal")
     @SysLogger("hisDataDeal")
-    public RespDTO<List<AMedCrisisDTO>> hisDataDeal(@RequestBody HisDataDealVO hisDataDealVO){
+    public RespDTO<List<AMedCrisisDTO>> hisDataDeal(@RequestBody HisDataDealVO hisDataDealVO) {
         boolean b = true;
         try {
-             b = aMedicalRecordFacade.hisDataDeal(hisDataDealVO);
+            b = aMedicalRecordFacade.hisDataDeal(hisDataDealVO);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -233,4 +233,11 @@ public class DataController {
         columnFacade.analyseRec(aColumnVO.getHospitalId(),aColumnVO.getModeId(),aColumnVO.getContent());
         return RespDTO.onSuc(true);
     }*/
+
+    @ApiOperation(value = "甲级以下病历统计")
+    @PostMapping("/belowHospitalList")
+    @SysLogger("belowHospitalList")
+    public RespDTO<List<ABelowDTO>> belowHospitalList(@RequestBody ABelowVO aBelowVO) {
+        return RespDTO.onSuc(aBehospitalInfoFacade.belowHospitalList(aBelowVO));
+    }
 }

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

@@ -19763,4 +19763,32 @@
             </foreach>
         </if>
     </select>
+
+
+    <select id="getBelowHospital" resultType="com.diagbot.dto.data.ABelowDTO">
+        SELECT
+        m1.behospital_code,
+        m1.file_code,
+        m2.`level`
+        FROM med_behospital_info m1
+        LEFT JOIN med_qcresult_info m2
+        ON
+        m2.is_deleted='N' AND `level` != '甲'
+        WHERE
+        m1.is_deleted = 'N'
+        AND m1.is_placefile='1'
+        <if test="hospitalId != null and hospitalId !=''">
+            AND m1.hospital_id=#{hospitalId}
+        </if>
+        <if test="behDeptName != null and behDeptName !=''">
+            AND m1.beh_dept_name=#{behDeptName}
+        </if>
+        <if test="behospitalDate != null and behospitalDate !=''">
+            <![CDATA[ AND m1.behospital_date >= #{behospitalDate}]]>
+        </if>
+        <if test="leaveHospitalDate != null and leaveHospitalDate !=''">
+            <![CDATA[ AND m1.leave_hospital_date <= #{leaveHospitalDate}]]>
+        </if>
+        AND m1.behospital_code = m2.behospital_code
+    </select>
 </mapper>

+ 40 - 25
src/main/resources/mapper/MedAppealInfoMapper.xml

@@ -4,31 +4,46 @@
 
     <!-- 通用查询映射结果 -->
     <resultMap id="BaseResultMap" type="com.diagbot.entity.MedAppealInfo">
-        <id column="id" property="id" />
-        <result column="hospital_id" property="hospitalId" />
-        <result column="behospital_code" property="behospitalCode" />
-        <result column="qcresult_detail_id" property="qcresultDetailId" />
-        <result column="qcresult_detail_msg" property="qcresultDetailMsg" />
-        <result column="qcresult_detai_value" property="qcresultDetaiValue" />
-        <result column="cases_entry_id" property="casesEntryId" />
-        <result column="cases_entry_name" property="casesEntryName" />
-        <result column="cases_entry_msg" property="casesEntryMsg" />
-        <result column="value" property="value" />
-        <result column="mode_id" property="modeId" />
-        <result column="mode_name" property="modeName" />
-        <result column="defect_content" property="defectContent" />
-        <result column="claimant_id" property="claimantId" />
-        <result column="appeal_type" property="appealType" />
-        <result column="appeal_operation_type" property="appealOperationType" />
-        <result column="appeal_explain" property="appealExplain" />
-        <result column="check_id" property="checkId" />
-        <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="qcresult_detail_id" property="qcresultDetailId"/>
+        <result column="qcresult_detail_msg" property="qcresultDetailMsg"/>
+        <result column="qcresult_detai_value" property="qcresultDetaiValue"/>
+        <result column="cases_entry_id" property="casesEntryId"/>
+        <result column="cases_entry_name" property="casesEntryName"/>
+        <result column="cases_entry_msg" property="casesEntryMsg"/>
+        <result column="value" property="value"/>
+        <result column="mode_id" property="modeId"/>
+        <result column="mode_name" property="modeName"/>
+        <result column="defect_content" property="defectContent"/>
+        <result column="claimant_id" property="claimantId"/>
+        <result column="appeal_type" property="appealType"/>
+        <result column="appeal_operation_type" property="appealOperationType"/>
+        <result column="appeal_explain" property="appealExplain"/>
+        <result column="check_id" property="checkId"/>
+        <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="getExampleStatus" resultType="com.diagbot.dto.data.ABelowDTO">
+        SELECT DISTINCT
+	    mai.behospital_code,
+	    maei.example_status
+        FROM
+	    med_appeal_info mai
+        LEFT JOIN med_appeal_examine_info maei ON maei.is_deleted = 'N' AND maei.example_status='1'
+        WHERE
+	    mai.is_deleted = 'N'
+        AND mai.id = maei.appeal_info_id
+        AND mai.behospital_code IN
+        <foreach collection="behospitalCodeList" item="item" open="(" close=")" separator=",">
+            #{item}
+        </foreach>
+    </select>
 
 </mapper>