Bläddra i källkod

Merge branch 'dev/20220228_v3.0.1通用版_渠道管理第一期' into debug

songxinlu 3 år sedan
förälder
incheckning
a9b090a8ca
35 ändrade filer med 956 tillägg och 60 borttagningar
  1. 1 1
      daqe-center/src/main/java/com/lantone/daqe/dto/ExportImportDrugErrDTO.java
  2. 46 0
      daqe-center/src/main/java/com/lantone/daqe/dto/GetColumnResultNumberDTO.java
  3. 74 0
      daqe-center/src/main/java/com/lantone/daqe/dto/GetColumnResultPageDTO.java
  4. 46 0
      daqe-center/src/main/java/com/lantone/daqe/dto/GetDiseaseInfoByIdDTO.java
  5. 49 0
      daqe-center/src/main/java/com/lantone/daqe/dto/GetDrugByIdDTO.java
  6. 1 1
      daqe-center/src/main/java/com/lantone/daqe/dto/GetMatchingDrugPageDTO.java
  7. 43 0
      daqe-center/src/main/java/com/lantone/daqe/dto/GetOperationByIdDTO.java
  8. 31 0
      daqe-center/src/main/java/com/lantone/daqe/dto/UpBlockLossByIdVO.java
  9. 21 0
      daqe-center/src/main/java/com/lantone/daqe/facade/BlockLossManagementFacade.java
  10. 90 0
      daqe-center/src/main/java/com/lantone/daqe/facade/ColumnResultManagementFacade.java
  11. 6 2
      daqe-center/src/main/java/com/lantone/daqe/facade/ColumnVerifyManagementFacade.java
  12. 74 8
      daqe-center/src/main/java/com/lantone/daqe/facade/DiseaseManagementFacade.java
  13. 57 12
      daqe-center/src/main/java/com/lantone/daqe/facade/DrugManagementFacade.java
  14. 60 7
      daqe-center/src/main/java/com/lantone/daqe/facade/OperationManagementFacade.java
  15. 2 1
      daqe-center/src/main/java/com/lantone/daqe/mapper/BlocklossResultMapper.java
  16. 4 0
      daqe-center/src/main/java/com/lantone/daqe/mapper/ColumnResultMapper.java
  17. 6 6
      daqe-center/src/main/java/com/lantone/daqe/vo/AddColumnVerifyVO.java
  18. 3 0
      daqe-center/src/main/java/com/lantone/daqe/vo/GetBlockLossPageVO.java
  19. 24 0
      daqe-center/src/main/java/com/lantone/daqe/vo/GetColumnResultNumberVO.java
  20. 53 0
      daqe-center/src/main/java/com/lantone/daqe/vo/GetColumnResultPageVO.java
  21. 29 0
      daqe-center/src/main/java/com/lantone/daqe/vo/GetDiseaseInfoByIdVO.java
  22. 28 0
      daqe-center/src/main/java/com/lantone/daqe/vo/GetDrugByIdVO.java
  23. 28 0
      daqe-center/src/main/java/com/lantone/daqe/vo/GetOperationByIdVO.java
  24. 1 1
      daqe-center/src/main/java/com/lantone/daqe/vo/ImportDrugVO.java
  25. 1 1
      daqe-center/src/main/java/com/lantone/daqe/vo/MatchingDrugVO.java
  26. 30 0
      daqe-center/src/main/java/com/lantone/daqe/vo/UpdateColumnResultVO.java
  27. 6 6
      daqe-center/src/main/java/com/lantone/daqe/vo/UpdateColumnVerifyVO.java
  28. 9 0
      daqe-center/src/main/java/com/lantone/daqe/web/BlockLossManagementController.java
  29. 51 0
      daqe-center/src/main/java/com/lantone/daqe/web/ColumnResultManagmentController.java
  30. 1 1
      daqe-center/src/main/java/com/lantone/daqe/web/ColumnVerifyManagementController.java
  31. 8 0
      daqe-center/src/main/java/com/lantone/daqe/web/DiseaseManagementController.java
  32. 8 0
      daqe-center/src/main/java/com/lantone/daqe/web/DrugManagementController.java
  33. 8 0
      daqe-center/src/main/java/com/lantone/daqe/web/OperationManagementController.java
  34. 40 13
      daqe-center/src/main/resources/mapper/BlocklossResultMapper.xml
  35. 17 0
      daqe-center/src/main/resources/mapper/ColumnResultMapper.xml

+ 1 - 1
daqe-center/src/main/java/com/lantone/daqe/dto/ExportImportDrugErrDTO.java

@@ -27,7 +27,7 @@ public class ExportImportDrugErrDTO implements Serializable {
     private String standard;
 
     @ApiModelProperty(value = "药品剂型")
-    private String form;
+    private String dosageForm;
 
     @ApiModelProperty(value = "国药准字")
     private String approvalNum;

+ 46 - 0
daqe-center/src/main/java/com/lantone/daqe/dto/GetColumnResultNumberDTO.java

@@ -0,0 +1,46 @@
+package com.lantone.daqe.dto;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 获取字段校验问题明细数量-接口出参
+ * @author: zhanghang
+ * @time: 2022/3/8 14:48
+ */
+@ApiModel(value = "获取字段校验问题明细数量-接口出参")
+@Getter
+@Setter
+public class GetColumnResultNumberDTO implements Serializable {
+
+
+    @ApiModelProperty(value = "已解决")
+    private Long resolved;
+
+    @ApiModelProperty(value = "未解决")
+    private Long notSolved;
+
+    @ApiModelProperty(value = "已解决数据缺失")
+    private Long resolvedNonnull;
+
+    @ApiModelProperty(value = "已解决非标准值")
+    private Long resolvedStandardvalue;
+
+    @ApiModelProperty(value = "已解决正则校验失败")
+    private Long resolvedRegular;
+
+    @ApiModelProperty(value = "未解决数据缺失")
+    private Long notSolvedNonnull;
+
+    @ApiModelProperty(value = "未解决非标准值")
+    private Long notSolvedStandardvalue;
+
+    @ApiModelProperty(value = "未解决正则校验失败")
+    private Long notSolvedRegular;
+
+}

+ 74 - 0
daqe-center/src/main/java/com/lantone/daqe/dto/GetColumnResultPageDTO.java

@@ -0,0 +1,74 @@
+package com.lantone.daqe.dto;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: 获取字段校验问题明细数据-接口出参
+ * @author: zhanghang
+ * @time: 2022/3/8 14:48
+ */
+@ApiModel(value = "获取字段校验问题明细数据-接口出参")
+@Getter
+@Setter
+public class GetColumnResultPageDTO implements Serializable {
+
+    private static final long serialVersionUID = -1792570403179263964L;
+
+    @ApiModelProperty(value = "主键ID")
+    private Long id;
+
+    @ApiModelProperty(value = "表的列信息ID")
+    private Long columnId;
+
+    @ApiModelProperty(value = "住院序号")
+    private String behospitalCode;
+
+    @ApiModelProperty(value = "文书编号")
+    private String hosptialDatatmpCode;
+
+    @ApiModelProperty(value = "文书标题")
+    private String hosptialDatatmpName;
+
+    @ApiModelProperty(value = "模块名称")
+    private String modeName;
+
+    @ApiModelProperty(value = "表名称(中文)")
+    private String tableCname;
+
+    @ApiModelProperty(value = "表名称(英文)")
+    private String tableEname;
+
+    @ApiModelProperty(value = "字段名称(中文)")
+    private String columnCname;
+
+    @ApiModelProperty(value = "字段名称(英文)")
+    private String columnEname;
+
+    @ApiModelProperty(value = "表字段的值")
+    private String tableVal;
+
+    @ApiModelProperty(value = "备注描述")
+    private String description;
+
+    @ApiModelProperty(value = "字段问题类型,1-数据缺失,2-非标准值,3-正则校验失败")
+    private String type;
+
+    @ApiModelProperty(value = "最近一次机器比对时间")
+    private Date solveTime;
+
+    @ApiModelProperty(value = "是否已解决,0:未解决,1:已解决")
+    private String isSolved;
+
+    @ApiModelProperty(value = "是否通过了人工核查,0:未通过,1:已通过")
+    private String isAudited;
+
+    @ApiModelProperty(value = "最近一次人工核查时间")
+    private Date auditTime;
+}

+ 46 - 0
daqe-center/src/main/java/com/lantone/daqe/dto/GetDiseaseInfoByIdDTO.java

@@ -0,0 +1,46 @@
+package com.lantone.daqe.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 已匹配诊断信息查看-接口出参
+ * @author: songxl
+ * @time: 2022/2/28 11:15
+ */
+@ApiModel(value = "已匹配诊断信息查看-接口出参")
+@Getter
+@Setter
+public class GetDiseaseInfoByIdDTO implements Serializable {
+
+    private static final long serialVersionUID = -1129177776572833627L;
+
+    @ApiModelProperty(value = "主键")
+    private Long id;
+
+    @ApiModelProperty(value = "组织机构ID")
+    private Long hospitalId;
+
+    @ApiModelProperty(value = "医院诊断代码")
+    private String code;
+
+    @ApiModelProperty(value = "医院诊断名称")
+    private String name;
+
+    @ApiModelProperty(value = "ICD-10编码")
+    private String icd10;
+
+    @ApiModelProperty(value = "标准诊断名称")
+    private String standard;
+
+    @ApiModelProperty(value = "同义词")
+    private String synonym;
+
+    @ApiModelProperty(value = "已/未匹配")
+    private String isMapping;
+
+}

+ 49 - 0
daqe-center/src/main/java/com/lantone/daqe/dto/GetDrugByIdDTO.java

@@ -0,0 +1,49 @@
+package com.lantone.daqe.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 已匹配药品信息查看-接口出参
+ * @author: songxl
+ * @time: 2022/2/28 11:15
+ */
+@ApiModel(value = "已匹配药品信息查看-接口出参")
+@Getter
+@Setter
+public class GetDrugByIdDTO implements Serializable {
+
+    private static final long serialVersionUID = -3423432863909470619L;
+
+    @ApiModelProperty(value = "主键")
+    private Long id;
+
+    @ApiModelProperty(value = "组织机构ID")
+    private Long hospitalId;
+
+    @ApiModelProperty(value = "医院药品代码")
+    private String code;
+
+    @ApiModelProperty(value = "医院药品名称")
+    private String name;
+
+    @ApiModelProperty(value = "国药准字")
+    private String approvalNum;
+
+    @ApiModelProperty(value = "标准药品名称")
+    private String standard;
+
+    @ApiModelProperty(value = "同义词")
+    private String synonym;
+
+    @ApiModelProperty(value = "药品剂型")
+    private String dosageForm;
+
+    @ApiModelProperty(value = "已/未匹配")
+    private String isMapping;
+
+}

+ 1 - 1
daqe-center/src/main/java/com/lantone/daqe/dto/GetMatchingDrugPageDTO.java

@@ -21,7 +21,7 @@ public class GetMatchingDrugPageDTO implements Serializable {
 
 
     @ApiModelProperty(value = "药品剂型")
-    private String form;
+    private String dosageForm;
 
     @ApiModelProperty(value = "标准诊断名称")
     private String standard;

+ 43 - 0
daqe-center/src/main/java/com/lantone/daqe/dto/GetOperationByIdDTO.java

@@ -0,0 +1,43 @@
+package com.lantone.daqe.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 获取手术分页列表-接口出参
+ * @author: songxl
+ * @time: 2022/2/28 11:15
+ */
+@ApiModel(value = "获取手术分页列表-接口出参")
+@Getter
+@Setter
+public class GetOperationByIdDTO implements Serializable {
+
+    private static final long serialVersionUID = -4850779079703241414L;
+
+    @ApiModelProperty(value = "主键")
+    private Long id;
+
+    @ApiModelProperty(value = "组织机构ID")
+    private Long hospitalId;
+
+    @ApiModelProperty(value = "医院手术名称")
+    private String name;
+
+    @ApiModelProperty(value = "手术代码")
+    private String code;
+
+    @ApiModelProperty(value = "标准手术名称")
+    private String standard;
+
+    @ApiModelProperty(value = "同义词")
+    private String synonym;
+
+    @ApiModelProperty(value = "已/未匹配")
+    private String isMapping;
+
+}

+ 31 - 0
daqe-center/src/main/java/com/lantone/daqe/dto/UpBlockLossByIdVO.java

@@ -0,0 +1,31 @@
+package com.lantone.daqe.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 通过id修改病历数据块丢失明细-接口出参
+ * @author: songxl
+ * @time: 2022/3/4 10:39
+ */
+@ApiModel(value = "通过id修改病历数据块丢失明细-接口出参")
+@Getter
+@Setter
+public class UpBlockLossByIdVO implements Serializable {
+
+    private static final long serialVersionUID = 2135752709548682595L;
+
+    @ApiModelProperty(value = "编号")
+    private Long id;
+
+    @ApiModelProperty(value = "丢失原因")
+    private String lossCause;
+
+    @ApiModelProperty(value = "核查结果 0:未通过,1:已通过,2:未核查")
+    private String isAudited;
+
+}

+ 21 - 0
daqe-center/src/main/java/com/lantone/daqe/facade/BlockLossManagementFacade.java

@@ -3,8 +3,11 @@ package com.lantone.daqe.facade;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.lantone.daqe.dto.GetBlockLossPageDTO;
+import com.lantone.daqe.dto.UpBlockLossByIdVO;
+import com.lantone.daqe.entity.BlocklossResult;
 import com.lantone.daqe.facade.base.BlocklossResultFacade;
 import com.lantone.daqe.vo.GetBlockLossPageVO;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -19,7 +22,25 @@ public class BlockLossManagementFacade {
     private BlocklossResultFacade blocklossResultFacade;
 
 
+    /**
+     * 获取病历数据丢失明细分页列表
+     *
+     * @param getBlockLossPageVO
+     * @Return com.baomidou.mybatisplus.core.metadata.IPage<com.lantone.daqe.dto.GetBlockLossPageDTO>
+     */
     public IPage<GetBlockLossPageDTO> getBlockLossPage(GetBlockLossPageVO getBlockLossPageVO) {
         return blocklossResultFacade.getBaseMapper().getBlockLossPage(getBlockLossPageVO);
     }
+
+    /**
+     * 通过id修改病历数据块丢失明细
+     *
+     * @param upBlockLossByIdVO
+     * @Return java.lang.Boolean
+     */
+    public Boolean upBlockLossById(UpBlockLossByIdVO upBlockLossByIdVO) {
+        BlocklossResult blocklossResult = new BlocklossResult();
+        BeanUtils.copyProperties(upBlockLossByIdVO, blocklossResult);
+        return blocklossResultFacade.updateById(blocklossResult);
+    }
 }

+ 90 - 0
daqe-center/src/main/java/com/lantone/daqe/facade/ColumnResultManagementFacade.java

@@ -0,0 +1,90 @@
+package com.lantone.daqe.facade;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.lantone.common.enums.IsDeleteEnum;
+import com.lantone.common.util.BeanUtil;
+import com.lantone.common.util.StringUtil;
+import com.lantone.daqe.dto.GetColumnResultNumberDTO;
+import com.lantone.daqe.dto.GetColumnResultPageDTO;
+import com.lantone.daqe.entity.ColumnResult;
+import com.lantone.daqe.facade.base.ColumnResultFacade;
+import com.lantone.daqe.vo.GetColumnResultNumberVO;
+import com.lantone.daqe.vo.GetColumnResultPageVO;
+import com.lantone.daqe.vo.UpdateColumnResultVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * @Description: 字段校验问题明细维护API
+ * @author: zhanghang
+ * @time: 2022/3/8 14:49
+ */
+@Component
+public class ColumnResultManagementFacade {
+    @Autowired
+    ColumnResultFacade columnResultFacade;
+
+    /**
+     * 获取字段校验问题明细分页列表数据
+     *
+     * @param getColumnResultPageVO
+     * @return: 字段校验问题明细分页列表数据
+     */
+    public IPage<GetColumnResultPageDTO> getColumnResultPage(GetColumnResultPageVO getColumnResultPageVO) {
+        Page<GetColumnResultPageDTO> getColumnResultPageDTOPage = new Page<>();
+
+        QueryWrapper<ColumnResult> columnResultQueryWrapper = new QueryWrapper<>();
+        columnResultQueryWrapper.eq(getColumnResultPageVO.getHospitalId() != null, "hospital_id", getColumnResultPageVO.getHospitalId());
+        columnResultQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
+        columnResultQueryWrapper.eq(StringUtil.isNotBlank(getColumnResultPageVO.getType()), "type", getColumnResultPageVO.getType());
+        columnResultQueryWrapper.eq(StringUtil.isNotBlank(getColumnResultPageVO.getIsSolved()), "is_solved", getColumnResultPageVO.getIsSolved());
+        columnResultQueryWrapper.ge("solve_time", getColumnResultPageVO.getSolveTimeStart());
+        columnResultQueryWrapper.le("solve_time", getColumnResultPageVO.getSolveTimeEnd());
+        columnResultQueryWrapper.like(StringUtil.isNotBlank(getColumnResultPageVO.getBehospitalCode()), "behospital_code", getColumnResultPageVO.getBehospitalCode());
+        columnResultQueryWrapper.like(StringUtil.isNotBlank(getColumnResultPageVO.getHosptialDatatmpCode()), "hosptial_datatmp_code", getColumnResultPageVO.getHosptialDatatmpCode());
+        columnResultQueryWrapper.like(StringUtil.isNotBlank(getColumnResultPageVO.getHosptialDatatmpName()), "hosptial_datatmp_name", getColumnResultPageVO.getHosptialDatatmpName());
+        columnResultQueryWrapper.like(StringUtil.isNotBlank(getColumnResultPageVO.getModeName()), "mode_name", getColumnResultPageVO.getModeName());
+
+        Page<ColumnResult> columnResultPage = new Page<>(getColumnResultPageVO.getCurrent(), getColumnResultPageVO.getSize());
+        columnResultFacade.page(columnResultPage, columnResultQueryWrapper);
+        BeanUtil.copyProperties(columnResultPage, getColumnResultPageDTOPage);
+        List<GetColumnResultPageDTO> getRecordTemplatePageDTOList = BeanUtil.listCopyTo(columnResultPage.getRecords(), GetColumnResultPageDTO.class);
+
+        getColumnResultPageDTOPage.setRecords(getRecordTemplatePageDTOList);
+        return getColumnResultPageDTOPage;
+    }
+
+    /**
+     * 获取字段校验问题明细数量
+     *
+     * @param getColumnResultNumberVO
+     * @return: 字段校验问题明细数量
+     */
+    public GetColumnResultNumberDTO getColumnResultNumber(GetColumnResultNumberVO getColumnResultNumberVO) {
+        return columnResultFacade.getBaseMapper().getColumnResultNumber(getColumnResultNumberVO);
+    }
+
+    /**
+     * 修改字段校验问题明细
+     *
+     * @param updateColumnResultVO
+     * @return: 是否成功
+     */
+    public Boolean updateColumnResult(UpdateColumnResultVO updateColumnResultVO) {
+        return columnResultFacade.update(new UpdateWrapper<ColumnResult>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("id", updateColumnResultVO.getId())
+                .set("description", updateColumnResultVO.getDescription())
+                .set("audit_time", new Date())
+                .set("is_audited", 1)
+        );
+    }
+}

+ 6 - 2
daqe-center/src/main/java/com/lantone/daqe/facade/ColumnVerifyManagementFacade.java

@@ -42,7 +42,7 @@ import java.util.Date;
 import java.util.List;
 
 /**
- * @Description: 字段校验规则维护AIP
+ * @Description: 字段校验规则维护API
  * @author: zhanghang
  * @time: 2022/3/1 10:14
  */
@@ -361,7 +361,7 @@ public class ColumnVerifyManagementFacade {
         }
         if (ListUtil.isNotEmpty(columnInfoAdd)) {
             addColumnVerifyVO.setHospitalId(updateColumnVerifyVO.getHospitalId());
-            addColumnVerifyVO.setColumnList(updateColumnVerifyVO.getColumnList());
+            addColumnVerifyVO.setColumnList(columnInfoAdd);
             addColumnVerifyVO.setIsRequired(updateColumnVerifyVO.getIsRequired());
             addColumnVerifyVO.setRegularId(updateColumnVerifyVO.getRegularId());
             addColumnVerifyVO.setRegularName(updateColumnVerifyVO.getRegularName());
@@ -402,6 +402,8 @@ public class ColumnVerifyManagementFacade {
                                 .eq("type", ColumnVerifyTypeEnum.REGULAR_TYPE.getKey())
                                 .eq("verify_id", mappingId)
                                 .set("verify_val", updateColumnVerifyVO.getRegularName())
+                                .set("description", updateColumnVerifyVO.getDescription())
+                                .set("gmt_modified", new Date())
                         );
                     } else {
                         //未关联正则走新增
@@ -450,6 +452,8 @@ public class ColumnVerifyManagementFacade {
                                 .eq("type", ColumnVerifyTypeEnum.NONNULL_TYPE.getKey())
                                 .eq("verify_id", mappingId)
                                 .set("verify_val", updateColumnVerifyVO.getIsRequired())
+                                .set("description", updateColumnVerifyVO.getDescription())
+                                .set("gmt_modified", new Date())
                         );
                     } else {
                         NonnullInfo nonnullInfo = new NonnullInfo();

+ 74 - 8
daqe-center/src/main/java/com/lantone/daqe/facade/DiseaseManagementFacade.java

@@ -5,11 +5,15 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.lantone.common.api.CommonResult;
+import com.lantone.common.enums.IsDeleteEnum;
 import com.lantone.common.exception.Asserts;
 import com.lantone.common.util.BeanUtil;
+import com.lantone.common.util.DateUtil;
 import com.lantone.common.util.ListUtil;
 import com.lantone.common.util.StringUtil;
+import com.lantone.common.util.SysUserUtils;
 import com.lantone.daqe.dto.ExportImportDiseaseErrDTO;
+import com.lantone.daqe.dto.GetDiseaseInfoByIdDTO;
 import com.lantone.daqe.dto.GetDiseasePageDTO;
 import com.lantone.daqe.dto.GetMatchingDiseasePageDTO;
 import com.lantone.daqe.entity.DiseaseInfo;
@@ -18,6 +22,7 @@ import com.lantone.daqe.service.impl.DiseaseInfoServiceImpl;
 import com.lantone.daqe.util.ExcelUtils;
 import com.lantone.daqe.vo.AddDiseaseVO;
 import com.lantone.daqe.vo.DelDiseaseByIdVO;
+import com.lantone.daqe.vo.GetDiseaseInfoByIdVO;
 import com.lantone.daqe.vo.GetDiseasePageVO;
 import com.lantone.daqe.vo.GetMatchingDiseasePageVO;
 import com.lantone.daqe.vo.ImportDiseaseVO;
@@ -49,6 +54,11 @@ public class DiseaseManagementFacade {
     @Autowired
     private DiseaseInfoServiceImpl diseaseInfoServiceImpl;
 
+    //医院诊断名称长度限制
+    private int diseaseNameLength = 30;
+    //ICD-10编码长度限制
+    private int icd10Length = 30;
+
     public IPage<GetDiseasePageDTO> getDiseasePage(GetDiseasePageVO getDiseasePageVO) {
         Page<GetDiseasePageDTO> getDiseasePageDTOPage = new Page<>();
 
@@ -140,9 +150,10 @@ public class DiseaseManagementFacade {
         if (ListUtil.isEmpty(diagnoseExcelVOS)) {
             Asserts.fail("Excel文件为空");
         }
+        Long hospitalId = SysUserUtils.getCurrentHospitalId();
         //数据规范校验
         List<ExportImportDiseaseErrDTO> errExports = new ArrayList<>();
-        if (checkData(diagnoseExcelVOS, errExports)) {
+        if (checkData(diagnoseExcelVOS, errExports, hospitalId)) {
             String fileName = "诊断标准词匹配信息导入异常.xls";
             ExcelUtils.exportExcelUser(errExports, null, "sheet1", ExportImportDiseaseErrDTO.class, fileName, response);
         } else {
@@ -150,6 +161,13 @@ public class DiseaseManagementFacade {
             List<ImportDiseaseVO> temp = delRepeat(diagnoseExcelVOS);
             //导入
             List<DiseaseInfo> insert = BeanUtil.listCopyTo(temp, DiseaseInfo.class);
+            //拼装 医院id、创建时间、更新时间
+            insert.stream().forEach(diseaseInfo -> {
+                diseaseInfo.setHospitalId(hospitalId != null ? hospitalId : 0);
+                diseaseInfo.setGmtCreate(DateUtil.now());
+                diseaseInfo.setCreator(SysUserUtils.getCurrentPrincipleId() != null ? SysUserUtils.getCurrentPrincipleId() + "" : "0");
+                diseaseInfo.setGmtModified(DateUtil.now());
+            });
             boolean out = diseaseInfoServiceImpl.saveBatch(insert);
             CommonResult<String> outMsg = null;
             response.setContentType("text/html;charset=utf-8");
@@ -175,35 +193,83 @@ public class DiseaseManagementFacade {
      * @param errExports       导出异常
      * @Return java.lang.Boolean
      */
-    private Boolean checkData(List<ImportDiseaseVO> diagnoseExcelVOS, List<ExportImportDiseaseErrDTO> errExports) {
+    private Boolean checkData(List<ImportDiseaseVO> diagnoseExcelVOS, List<ExportImportDiseaseErrDTO> errExports, Long hospitalId) {
         AtomicBoolean errorFlog = new AtomicBoolean(false);
+        //获取数据库数据 判断医院诊断名称和ICD-10编码值用于重复校验
+        List<DiseaseInfo> diseaseInfos = diseaseInfoFacade.list(new QueryWrapper<DiseaseInfo>()
+                .eq(hospitalId != null, "hospital_id", hospitalId)
+                .eq("is_deleted", IsDeleteEnum.N.getKey()));
+        List<String> diseaseNames = diseaseInfos.stream().map(DiseaseInfo::getName).collect(Collectors.toList());
+        List<String> icd10s = diseaseInfos.stream().map(DiseaseInfo::getIcd10).collect(Collectors.toList());
         diagnoseExcelVOS.stream().forEach(importDiseaseVO -> {
             ExportImportDiseaseErrDTO exportImportDiseaseErrDTO = new ExportImportDiseaseErrDTO();
             BeanUtil.copyProperties(importDiseaseVO, exportImportDiseaseErrDTO);
             StringBuffer errMsg = new StringBuffer();
-            //数据校验
+            //数据校验(非空和过长、库中已存在)
+            //name
             if (StringUtil.isEmpty(importDiseaseVO.getName())) {
-                errMsg.append("医院诊断名称为空").append(";");
+                errMsg.append("【医院诊断名称】未填写").append(";");
                 errorFlog.set(true);
-            }
-            if (StringUtil.isEmpty(importDiseaseVO.getStandard())) {
-                errMsg.append("标准诊断名称为空").append(";");
+            } else if (importDiseaseVO.getName().length() > diseaseNameLength) {
+                errMsg.append("【医院诊断名称】过长").append(";");
+                errorFlog.set(true);
+            } else if (diseaseNames.contains(importDiseaseVO.getName())) {
+                errMsg.append("该诊断已存在,无法重复导入。").append(";");
                 errorFlog.set(true);
             }
+
+            //icd10
+            if (StringUtil.isNotEmpty(importDiseaseVO.getIcd10())) {
+                if (importDiseaseVO.getIcd10().length() > icd10Length) {
+                    errMsg.append("【ICD-10编码】过长").append(";");
+                    errorFlog.set(true);
+                } else if (icd10s.contains(importDiseaseVO.getIcd10())) {
+                    errMsg.append("该ICD-10编码已存在,无法重复导入。").append(";");
+                    errorFlog.set(true);
+                }
+            }
             exportImportDiseaseErrDTO.setErrMsg(errMsg.toString());
             errExports.add(exportImportDiseaseErrDTO);
+
         });
         return errorFlog.get();
     }
 
+    /**
+     * 通过医院诊断名称去重
+     *
+     * @param diagnoseExcelVOS
+     * @Return java.util.List<com.lantone.daqe.vo.ImportDiseaseVO>
+     */
     private List<ImportDiseaseVO> delRepeat(List<ImportDiseaseVO> diagnoseExcelVOS) {
-        //通过标准词去重
+
+        //通过医院诊断名称去重
         LinkedHashMap<String, ImportDiseaseVO> tempMap = diagnoseExcelVOS.stream()
                 .collect(Collectors.toMap(ImportDiseaseVO::getName, ImportDiseaseVO -> ImportDiseaseVO, (k1, k2) -> k1, LinkedHashMap::new));
         return tempMap.values().stream().collect(Collectors.toList());
     }
 
+    /**
+     * 匹配诊断信息列表
+     *
+     * @param getMatchingDiseasePageVO
+     * @Return com.baomidou.mybatisplus.core.metadata.IPage<com.lantone.daqe.dto.GetMatchingDiseasePageDTO>
+     */
     public IPage<GetMatchingDiseasePageDTO> getMatchingDiseasePage(GetMatchingDiseasePageVO getMatchingDiseasePageVO) {
+
         return diseaseInfoFacade.getBaseMapper().getMatchingDiseasePage(getMatchingDiseasePageVO);
     }
+
+    /**
+     * 已匹配信息查看
+     *
+     * @param getDiseaseInfoByIdVO
+     * @Return com.lantone.daqe.dto.GetDiseaseInfoByIdDTO
+     */
+    public GetDiseaseInfoByIdDTO getDiseaseInfoById(GetDiseaseInfoByIdVO getDiseaseInfoByIdVO) {
+        GetDiseaseInfoByIdDTO out = new GetDiseaseInfoByIdDTO();
+        BeanUtils.copyProperties(diseaseInfoFacade.getById(getDiseaseInfoByIdVO.getId()), out);
+        out.setIsMapping(StringUtil.isBlank(out.getStandard()) ? "未匹配" : "已匹配");
+        return out;
+    }
 }

+ 57 - 12
daqe-center/src/main/java/com/lantone/daqe/facade/DrugManagementFacade.java

@@ -7,9 +7,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.lantone.common.api.CommonResult;
 import com.lantone.common.exception.Asserts;
 import com.lantone.common.util.BeanUtil;
+import com.lantone.common.util.DateUtil;
 import com.lantone.common.util.ListUtil;
 import com.lantone.common.util.StringUtil;
+import com.lantone.common.util.SysUserUtils;
 import com.lantone.daqe.dto.ExportImportDrugErrDTO;
+import com.lantone.daqe.dto.GetDrugByIdDTO;
 import com.lantone.daqe.dto.GetDrugPageDTO;
 import com.lantone.daqe.dto.GetMatchingDrugPageDTO;
 import com.lantone.daqe.entity.DrugInfo;
@@ -18,6 +21,7 @@ import com.lantone.daqe.service.impl.DrugInfoServiceImpl;
 import com.lantone.daqe.util.ExcelUtils;
 import com.lantone.daqe.vo.AddDrugVO;
 import com.lantone.daqe.vo.DelDrugByIdVO;
+import com.lantone.daqe.vo.GetDrugByIdVO;
 import com.lantone.daqe.vo.GetDrugPageVO;
 import com.lantone.daqe.vo.GetMatchingDrugPageVO;
 import com.lantone.daqe.vo.ImportDrugVO;
@@ -49,6 +53,10 @@ public class DrugManagementFacade {
 
     @Autowired
     private DrugInfoServiceImpl drugInfoServiceImpl;
+    //医院药品名称长度
+    private int drugNameLength = 30;
+    //国药准字长度
+    private int approvalNumLength = 30;
 
     public IPage<GetDrugPageDTO> getDrugPage(GetDrugPageVO getDrugPageVO) {
         Page<GetDrugPageDTO> getDrugPageDTOPage = new Page<>();
@@ -129,7 +137,7 @@ public class DrugManagementFacade {
 
         DrugInfo drugInfo = new DrugInfo();
         BeanUtils.copyProperties(matchingDrugVO, drugInfo);
-        drugInfo.setStandard(matchingDrugVO.getStandard() + "_" + matchingDrugVO.getForm());
+        drugInfo.setStandard(matchingDrugVO.getStandard() + "_" + matchingDrugVO.getDosageForm());
         return drugInfoFacade.updateById(drugInfo);
     }
 
@@ -146,20 +154,27 @@ public class DrugManagementFacade {
         if (ListUtil.isEmpty(operationExcelVOS)) {
             Asserts.fail("Excel文件为空");
         }
+        Long hospitalId = SysUserUtils.getCurrentHospitalId();
         //数据规范校验
         List<ExportImportDrugErrDTO> errExports = new ArrayList<>();
-        if (checkData(operationExcelVOS, errExports)) {
+        if (checkData(operationExcelVOS, errExports, hospitalId)) {
             String fileName = "药品匹配信息导入异常.xls";
             ExcelUtils.exportExcelUser(errExports, null, "sheet1", ExportImportDrugErrDTO.class, fileName, response);
         } else {
             //去重
             List<ImportDrugVO> temp = delRepeat(operationExcelVOS);
-            List<DrugInfo> insert = new ArrayList<>();
             //导入数据转换
             temp.stream().forEach(importDrugVO -> {
                 DrugInfo drugInfo = new DrugInfo();
                 BeanUtils.copyProperties(importDrugVO, drugInfo);
-                drugInfo.setStandard(importDrugVO.getStandard() + "_" + importDrugVO.getForm());
+                drugInfo.setStandard(importDrugVO.getStandard() + "_" + importDrugVO.getDosageForm());
+            });
+            List<DrugInfo> insert = BeanUtil.listCopyTo(temp, DrugInfo.class);
+            insert.stream().forEach(drugInfo -> {
+                drugInfo.setHospitalId(hospitalId != null ? hospitalId : 0);
+                drugInfo.setGmtCreate(DateUtil.now());
+                drugInfo.setCreator(SysUserUtils.getCurrentPrincipleId() != null ? SysUserUtils.getCurrentPrincipleId() + "" : "0");
+                drugInfo.setGmtModified(DateUtil.now());
             });
             boolean out = drugInfoServiceImpl.saveBatch(insert);
             CommonResult<String> outMsg = null;
@@ -183,24 +198,39 @@ public class DrugManagementFacade {
      * 数据校验
      *
      * @param importDrugVOS 导入数据
-     * @param errExports    导出异常i
+     * @param errExports    导出异常
      * @Return java.lang.Boolean
      */
-    private Boolean checkData(List<ImportDrugVO> importDrugVOS, List<ExportImportDrugErrDTO> errExports) {
+    private Boolean checkData(List<ImportDrugVO> importDrugVOS, List<ExportImportDrugErrDTO> errExports, Long hospitalId) {
         AtomicBoolean errorFlog = new AtomicBoolean(false);
+        //获取数据库数据 判断医院药品名称和医院药品代码用于重复校验
+//        List<DrugInfo> drugInfos = drugInfoFacade.list(new QueryWrapper<DrugInfo>()
+//                .eq("hospital_id", hospitalId)
+//                .eq("is_deleted", IsDeleteEnum.N.getKey()));
+//        List<String> names = drugInfos.stream().map(DrugInfo::getName).collect(Collectors.toList());
+//        List<String> codes = drugInfos.stream().map(DrugInfo::getCode).collect(Collectors.toList());
+
         importDrugVOS.stream().forEach(importDrugVO -> {
             ExportImportDrugErrDTO exportImportDrugErrDTO = new ExportImportDrugErrDTO();
             BeanUtil.copyProperties(importDrugVO, exportImportDrugErrDTO);
             StringBuffer errMsg = new StringBuffer();
-            //数据校验
+            //数据校验(非空和过长、库中已存在)
+            //name
             if (StringUtil.isEmpty(importDrugVO.getName())) {
-                errMsg.append("医院手术/操作名称为空").append(";");
+                errMsg.append("【医院药品名称】未填写").append(";");
                 errorFlog.set(true);
-            }
-            if (StringUtil.isEmpty(importDrugVO.getStandard())) {
-                errMsg.append("标准手术/操作名称为空").append(";");
+            } else if (importDrugVO.getName().length() > drugNameLength) {
+                errMsg.append("【医院诊断名称】过长").append(";");
                 errorFlog.set(true);
             }
+
+            //approvalNum
+            if (StringUtil.isNotEmpty(importDrugVO.getApprovalNum())) {
+                if (importDrugVO.getApprovalNum().length() > approvalNumLength) {
+                    errMsg.append("【国药准字】过长").append(";");
+                    errorFlog.set(true);
+                }
+            }
             exportImportDrugErrDTO.setErrMsg(errMsg.toString());
             errExports.add(exportImportDrugErrDTO);
         });
@@ -234,9 +264,24 @@ public class DrugManagementFacade {
         IPage<GetMatchingDrugPageDTO> drugPages = drugInfoServiceImpl.getBaseMapper().getMatchingDrugPage(getMatchingDrugPageVO);
         for (GetMatchingDrugPageDTO drug : drugPages.getRecords()) {
             //目前先按照_切割
-            drug.setForm(drug.getStandard().split("_")[1]);
+            drug.setDosageForm(drug.getStandard().split("_")[1]);
             getMatchingDrugPageDTOList.add(drug);
         }
         return drugPages.setRecords(getMatchingDrugPageDTOList);
     }
+
+    /**
+     * 已匹配药品信息查看
+     *
+     * @param getDrugByIdVO
+     * @Return com.lantone.daqe.dto.GetDrugByIdDTO
+     */
+    public GetDrugByIdDTO getDrugById(GetDrugByIdVO getDrugByIdVO) {
+        GetDrugByIdDTO out = new GetDrugByIdDTO();
+        BeanUtil.copyProperties(drugInfoFacade.getById(getDrugByIdVO.getId()), out);
+        //目前先按照_切割
+        out.setDosageForm(out.getStandard().split("_")[1]);
+        out.setIsMapping(StringUtil.isBlank(out.getStandard()) ? "未匹配" : "已匹配");
+        return out;
+    }
 }

+ 60 - 7
daqe-center/src/main/java/com/lantone/daqe/facade/OperationManagementFacade.java

@@ -5,12 +5,16 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.lantone.common.api.CommonResult;
+import com.lantone.common.enums.IsDeleteEnum;
 import com.lantone.common.exception.Asserts;
 import com.lantone.common.util.BeanUtil;
+import com.lantone.common.util.DateUtil;
 import com.lantone.common.util.ListUtil;
 import com.lantone.common.util.StringUtil;
+import com.lantone.common.util.SysUserUtils;
 import com.lantone.daqe.dto.ExportImportOperationDTO;
 import com.lantone.daqe.dto.GetMatchingOperationPageDTO;
+import com.lantone.daqe.dto.GetOperationByIdDTO;
 import com.lantone.daqe.dto.GetOperationPageDTO;
 import com.lantone.daqe.entity.OperationInfo;
 import com.lantone.daqe.facade.base.OperationInfoFacade;
@@ -19,6 +23,7 @@ import com.lantone.daqe.util.ExcelUtils;
 import com.lantone.daqe.vo.AddOperationVO;
 import com.lantone.daqe.vo.DelOperationByIdVO;
 import com.lantone.daqe.vo.GetMatchingOperationVO;
+import com.lantone.daqe.vo.GetOperationByIdVO;
 import com.lantone.daqe.vo.GetOperationPageVO;
 import com.lantone.daqe.vo.ImportOperationVO;
 import com.lantone.daqe.vo.MatchingOperationVO;
@@ -49,6 +54,10 @@ public class OperationManagementFacade {
 
     @Autowired
     private OperationInfoServiceImpl operationInfoServiceImpl;
+    //医院手术/操作名称长度
+    private int operationLength = 30;
+    //手术代码
+    private int codeLength = 30;
 
     public IPage<GetOperationPageDTO> getOperationPage(GetOperationPageVO getOperationPageVO) {
         Page<GetOperationPageDTO> getOperationPageDTOPage = new Page<>();
@@ -142,9 +151,10 @@ public class OperationManagementFacade {
         if (ListUtil.isEmpty(operationExcelVOS)) {
             Asserts.fail("Excel文件为空");
         }
+        Long hospitalId = SysUserUtils.getCurrentHospitalId();
         //数据规范校验
         List<ExportImportOperationDTO> errExports = new ArrayList<>();
-        if (checkData(operationExcelVOS, errExports)) {
+        if (checkData(operationExcelVOS, errExports, hospitalId)) {
             String fileName = "医院手术标准词匹配信息导入异常.xls";
             ExcelUtils.exportExcelUser(errExports, null, "sheet1", ExportImportOperationDTO.class, fileName, response);
         } else {
@@ -152,6 +162,14 @@ public class OperationManagementFacade {
             List<ImportOperationVO> temp = delRepeat(operationExcelVOS);
             //导入
             List<OperationInfo> insert = BeanUtil.listCopyTo(temp, OperationInfo.class);
+            //拼装 医院id、创建时间、更新时间
+            insert.stream().forEach(operationInfo -> {
+                operationInfo.setHospitalId(hospitalId != null ? hospitalId : 0);
+                operationInfo.setGmtCreate(DateUtil.now());
+                operationInfo.setCreator(SysUserUtils.getCurrentPrincipleId() != null ? SysUserUtils.getCurrentPrincipleId() + "" : "0");
+                operationInfo.setGmtModified(DateUtil.now());
+            });
+
             boolean out = operationInfoServiceImpl.saveBatch(insert);
             CommonResult<String> outMsg = null;
             response.setContentType("text/html;charset=utf-8");
@@ -177,21 +195,43 @@ public class OperationManagementFacade {
      * @param errExports         导出异常
      * @Return java.lang.Boolean
      */
-    private Boolean checkData(List<ImportOperationVO> importOperationVOS, List<ExportImportOperationDTO> errExports) {
+    private Boolean checkData(List<ImportOperationVO> importOperationVOS, List<ExportImportOperationDTO> errExports, Long hospitalId) {
         AtomicBoolean errorFlog = new AtomicBoolean(false);
+        //获取数据库数据 判断医院手术/操作名称和手术和操作代码用于重复校验
+        List<OperationInfo> operationInfos = operationInfoFacade.list(new QueryWrapper<OperationInfo>()
+                .eq("hospital_id", hospitalId)
+                .eq("is_deleted", IsDeleteEnum.N.getKey()));
+        List<String> operationNames = operationInfos.stream().map(OperationInfo::getName).collect(Collectors.toList());
+        List<String> codes = operationInfos.stream().map(OperationInfo::getCode).collect(Collectors.toList());
+
         importOperationVOS.stream().forEach(importOperationVO -> {
             ExportImportOperationDTO exportImportOperationDTO = new ExportImportOperationDTO();
             BeanUtil.copyProperties(importOperationVO, exportImportOperationDTO);
             StringBuffer errMsg = new StringBuffer();
-            //数据校验
+            //数据校验(非空和过长、库中已存在)
+            //name
             if (StringUtil.isEmpty(importOperationVO.getName())) {
-                errMsg.append("医院手术/操作名称为空").append(";");
+                errMsg.append("【医院手术/操作名称】未填写").append(";");
                 errorFlog.set(true);
-            }
-            if (StringUtil.isEmpty(importOperationVO.getStandard())) {
-                errMsg.append("标准手术/操作名称为空").append(";");
+            } else if (importOperationVO.getName().length() > operationLength) {
+                errMsg.append("【医院手术/操作名称】过长").append(";");
+                errorFlog.set(true);
+            } else if (operationNames.contains(importOperationVO.getName())) {
+                errMsg.append("【医院手术/操作名称】已存在,无法重复导入").append(";");
                 errorFlog.set(true);
             }
+
+            //code
+            if (StringUtil.isNotEmpty(importOperationVO.getCode())) {
+                if (importOperationVO.getCode().length() > codeLength) {
+                    errMsg.append("【手术/操作代码】过长").append(";");
+                    errorFlog.set(true);
+                } else if (codes.contains(importOperationVO.getCode())) {
+                    errMsg.append("【手术/操作代码】已存在,无法重复导入").append(";");
+                    errorFlog.set(true);
+                }
+            }
+
             exportImportOperationDTO.setErrMsg(errMsg.toString());
             errExports.add(exportImportOperationDTO);
         });
@@ -222,4 +262,17 @@ public class OperationManagementFacade {
 
         return operationInfoFacade.getBaseMapper().getMatchingOperationPage(getMatchingOperationVO);
     }
+
+    /**
+     * 手术匹配信息查看
+     *
+     * @param getOperationByIdVO
+     * @Return com.lantone.daqe.dto.GetOperationByIdDTO
+     */
+    public GetOperationByIdDTO getOperationById(GetOperationByIdVO getOperationByIdVO) {
+        GetOperationByIdDTO out = new GetOperationByIdDTO();
+        BeanUtils.copyProperties(operationInfoFacade.getById(getOperationByIdVO.getId()), out);
+        out.setIsMapping(StringUtil.isBlank(out.getStandard()) ? "未匹配" : "已匹配");
+        return out;
+    }
 }

+ 2 - 1
daqe-center/src/main/java/com/lantone/daqe/mapper/BlocklossResultMapper.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.lantone.daqe.dto.GetBlockLossPageDTO;
 import com.lantone.daqe.entity.BlocklossResult;
 import com.lantone.daqe.vo.GetBlockLossPageVO;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -13,5 +14,5 @@ import com.lantone.daqe.vo.GetBlockLossPageVO;
  */
 public interface BlocklossResultMapper extends BaseMapper<BlocklossResult> {
 
-    IPage<GetBlockLossPageDTO> getBlockLossPage(GetBlockLossPageVO getBlockLossPageVO);
+    IPage<GetBlockLossPageDTO> getBlockLossPage(@Param("getBlockLossPageVO") GetBlockLossPageVO getBlockLossPageVO);
 }

+ 4 - 0
daqe-center/src/main/java/com/lantone/daqe/mapper/ColumnResultMapper.java

@@ -1,7 +1,10 @@
 package com.lantone.daqe.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.lantone.daqe.dto.GetColumnResultNumberDTO;
 import com.lantone.daqe.entity.ColumnResult;
+import com.lantone.daqe.vo.GetColumnResultNumberVO;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -9,5 +12,6 @@ import com.lantone.daqe.entity.ColumnResult;
  * </p>
  */
 public interface ColumnResultMapper extends BaseMapper<ColumnResult> {
+    GetColumnResultNumberDTO getColumnResultNumber(@Param("getColumnResultNumberVO") GetColumnResultNumberVO getColumnResultNumberVO);
 
 }

+ 6 - 6
daqe-center/src/main/java/com/lantone/daqe/vo/AddColumnVerifyVO.java

@@ -28,22 +28,22 @@ public class AddColumnVerifyVO implements Serializable {
 
     @ApiModelProperty(value = "表字段信息", required = true)
     @NotNull(message = "表信息不能为空")
-    List<ColumnInfoVO> columnList;
+    private List<ColumnInfoVO> columnList;
 
     @ApiModelProperty(value = "是否必填,0:否,1:是")
-    String isRequired;
+    private String isRequired;
 
     @ApiModelProperty(value = "正则式ID")
-    Long regularId;
+    private Long regularId;
 
     @ApiModelProperty(value = "正则式名称")
-    String regularName;
+    private String regularName;
 
     @ApiModelProperty(value = "标准值")
-    List<String> standardValueList;
+    private List<String> standardValueList;
 
     @ApiModelProperty(value = "说明")
-    String description;
+    private String description;
 
 
 }

+ 3 - 0
daqe-center/src/main/java/com/lantone/daqe/vo/GetBlockLossPageVO.java

@@ -20,6 +20,9 @@ public class GetBlockLossPageVO extends Page {
 
     private static final long serialVersionUID = -7490180392492391778L;
 
+    @ApiModelProperty(value = "医院id")
+    private Long hospitalId;
+
     @ApiModelProperty(value = "开始日期")
     private Date startDate;
 

+ 24 - 0
daqe-center/src/main/java/com/lantone/daqe/vo/GetColumnResultNumberVO.java

@@ -0,0 +1,24 @@
+package com.lantone.daqe.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 获取字段校验问题明细数量-接口入参
+ * @author: zhanghang
+ * @time: 2022/3/8 16:02
+ */
+@ApiModel(value = "获取字段校验问题明细数量-接口入参")
+@Getter
+@Setter
+public class GetColumnResultNumberVO implements Serializable {
+
+    private static final long serialVersionUID = 6969154935606282123L;
+
+    @ApiModelProperty(value = "组织ID", required = true)
+    private String hospitalId;
+}

+ 53 - 0
daqe-center/src/main/java/com/lantone/daqe/vo/GetColumnResultPageVO.java

@@ -0,0 +1,53 @@
+package com.lantone.daqe.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * @Description: 获取字段校验问题明细数据-接口入参
+ * @author: zhanghang
+ * @time: 2022/3/9 10:30
+ */
+@ApiModel(value = "获取字段校验问题明细数据-接口入参")
+@Getter
+@Setter
+public class GetColumnResultPageVO extends Page {
+
+    private static final long serialVersionUID = -9174449428110548322L;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "开始时间", required = true)
+    private Date solveTimeStart;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "结束时间", required = true)
+    private Date solveTimeEnd;
+
+    @ApiModelProperty(value = "组织ID", required = true)
+    private String hospitalId;
+
+    @ApiModelProperty(value = "住院序号")
+    private String behospitalCode;
+
+    @ApiModelProperty(value = "文书编号")
+    private String hosptialDatatmpCode;
+
+    @ApiModelProperty(value = "文书标题")
+    private String hosptialDatatmpName;
+
+    @ApiModelProperty(value = "质控模块名称")
+    private String modeName;
+
+    @ApiModelProperty(value = "问题类型 1-数据缺失,2-非标准值,3-正则校验失败")
+    private String type;
+
+    @ApiModelProperty(value = "状态 0:未解决,1:已解决")
+    private String isSolved;
+
+}

+ 29 - 0
daqe-center/src/main/java/com/lantone/daqe/vo/GetDiseaseInfoByIdVO.java

@@ -0,0 +1,29 @@
+package com.lantone.daqe.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * @Description: 已匹配诊断信息查看-接口入参
+ * @author: songxl
+ * @time: 2022/2/28 11:15
+ */
+@ApiModel(value = "已匹配诊断信息查看-接口入参")
+@Getter
+@Setter
+public class GetDiseaseInfoByIdVO implements Serializable {
+
+    private static final long serialVersionUID = 3924264468986780478L;
+
+    @ApiModelProperty(value = "编号", required = true)
+    @NotNull(message = "诊断编号不能为空")
+    private Long id;
+
+
+}

+ 28 - 0
daqe-center/src/main/java/com/lantone/daqe/vo/GetDrugByIdVO.java

@@ -0,0 +1,28 @@
+package com.lantone.daqe.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * @Description: 已匹配药品信息查看-接口入参
+ * @author: songxl
+ * @time: 2022/2/28 11:15
+ */
+@ApiModel(value = "已匹配药品信息查看-接口入参")
+@Getter
+@Setter
+public class GetDrugByIdVO implements Serializable {
+
+    private static final long serialVersionUID = 200248999132272360L;
+
+    @ApiModelProperty(value = "编号", required = true)
+    @NotNull(message = "药品编号不能为空")
+    private Long id;
+
+
+}

+ 28 - 0
daqe-center/src/main/java/com/lantone/daqe/vo/GetOperationByIdVO.java

@@ -0,0 +1,28 @@
+package com.lantone.daqe.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * @Description: 手术匹配信息查看-接口入参
+ * @author: songxl
+ * @time: 2022/2/28 11:15
+ */
+@ApiModel(value = "手术匹配信息查看-接口入参")
+@Getter
+@Setter
+public class GetOperationByIdVO implements Serializable {
+
+    private static final long serialVersionUID = 1193944396228513754L;
+
+    @ApiModelProperty(value = "编号", required = true)
+    @NotNull(message = "手术编号不能为空")
+    private Long id;
+
+
+}

+ 1 - 1
daqe-center/src/main/java/com/lantone/daqe/vo/ImportDrugVO.java

@@ -29,7 +29,7 @@ public class ImportDrugVO implements Serializable {
     private String standard;
 
     @ApiModelProperty(value = "药品剂型")
-    private String form;
+    private String dosageForm;
 
     @ApiModelProperty(value = "国药准字")
     private String approvalNum;

+ 1 - 1
daqe-center/src/main/java/com/lantone/daqe/vo/MatchingDrugVO.java

@@ -25,7 +25,7 @@ public class MatchingDrugVO implements Serializable {
     private Long id;
 
     @ApiModelProperty(value = "药品剂型")
-    private String form;
+    private String dosageForm;
 
     @ApiModelProperty(value = "标准药品名称")
     private String standard;

+ 30 - 0
daqe-center/src/main/java/com/lantone/daqe/vo/UpdateColumnResultVO.java

@@ -0,0 +1,30 @@
+package com.lantone.daqe.vo;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotEmpty;
+import java.io.Serializable;
+
+/**
+ * @Description:
+ * @author: zhanghang
+ * @time: 2022/3/8 17:37
+ */
+@ApiModel(value = "修改字段校验问题明细-接口入参")
+@Getter
+@Setter
+public class UpdateColumnResultVO implements Serializable {
+
+
+    private static final long serialVersionUID = -2028582446581099262L;
+    @ApiModelProperty(value = "主键ID", required = true)
+    @NotEmpty(message = "主键id不能为空")
+    private Long id;
+
+    @ApiModelProperty(value = "备注说明")
+    private String description;
+}

+ 6 - 6
daqe-center/src/main/java/com/lantone/daqe/vo/UpdateColumnVerifyVO.java

@@ -28,22 +28,22 @@ public class UpdateColumnVerifyVO implements Serializable {
 
     @ApiModelProperty(value = "表字段信息", required = true)
     @NotNull(message = "表信息不能为空")
-    List<ColumnInfoVO> columnList;
+    private List<ColumnInfoVO> columnList;
 
     @ApiModelProperty(value = "是否必填,0:否,1:是")
-    String isRequired;
+    private String isRequired;
 
     @ApiModelProperty(value = "正则式ID")
-    Long regularId;
+    private Long regularId;
 
     @ApiModelProperty(value = "正则式名称")
-    String regularName;
+    private String regularName;
 
     @ApiModelProperty(value = "标准值")
-    List<String> standardValueList;
+    private List<String> standardValueList;
 
     @ApiModelProperty(value = "说明")
-    String description;
+    private String description;
 
 
 }

+ 9 - 0
daqe-center/src/main/java/com/lantone/daqe/web/BlockLossManagementController.java

@@ -3,6 +3,7 @@ package com.lantone.daqe.web;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.lantone.common.api.CommonResult;
 import com.lantone.daqe.dto.GetBlockLossPageDTO;
+import com.lantone.daqe.dto.UpBlockLossByIdVO;
 import com.lantone.daqe.facade.BlockLossManagementFacade;
 import com.lantone.daqe.vo.GetBlockLossPageVO;
 import io.swagger.annotations.Api;
@@ -13,6 +14,8 @@ 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: 病历数据丢失明细API
  * @author: songxl
@@ -32,4 +35,10 @@ public class BlockLossManagementController {
         return CommonResult.success(blockLossManagementFacade.getBlockLossPage(getBlockLossPageVO));
     }
 
+    @ApiOperation(value = "通过id修改病历数据块丢失明细 [by:songxl]", notes = "通过id修改病历数据块丢失明细")
+    @PostMapping("/upBlockLossById")
+    public CommonResult<Boolean> upBlockLossById(@RequestBody @Valid UpBlockLossByIdVO upBlockLossByIdVO) {
+        return CommonResult.success(blockLossManagementFacade.upBlockLossById(upBlockLossByIdVO));
+    }
+
 }

+ 51 - 0
daqe-center/src/main/java/com/lantone/daqe/web/ColumnResultManagmentController.java

@@ -0,0 +1,51 @@
+package com.lantone.daqe.web;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.lantone.common.api.CommonResult;
+import com.lantone.daqe.dto.GetColumnResultNumberDTO;
+import com.lantone.daqe.dto.GetColumnResultPageDTO;
+import com.lantone.daqe.facade.ColumnResultManagementFacade;
+import com.lantone.daqe.vo.GetColumnResultNumberVO;
+import com.lantone.daqe.vo.GetColumnResultPageVO;
+import com.lantone.daqe.vo.UpdateColumnResultVO;
+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;
+
+/**
+ * @Description: 字段校验问题明细API
+ * @author: zhanghang
+ * @time: 2022/3/8 14:24
+ */
+@RestController
+@Api(value = "字段校验问题明细API", tags = { "字段校验问题明细API" })
+@RequestMapping("/columnResultManagement")
+public class ColumnResultManagmentController {
+
+    @Autowired
+    private ColumnResultManagementFacade columnResultManagementFacade;
+
+
+    @ApiOperation(value = "获取字段校验问题明细分页列表 [by:zhanghang]")
+    @PostMapping("/getColumnResultPage")
+    public CommonResult<IPage<GetColumnResultPageDTO>> getColumnResultPage(@RequestBody GetColumnResultPageVO getColumnResultPageVO) {
+        return CommonResult.success(columnResultManagementFacade.getColumnResultPage(getColumnResultPageVO));
+    }
+
+    @ApiOperation(value = "获取字段校验问题明细数量 [by:zhanghang]")
+    @PostMapping("/getColumnResultNumber")
+    public CommonResult<GetColumnResultNumberDTO> getColumnResultNumber(@RequestBody GetColumnResultNumberVO getColumnResultNumberVO) {
+        return CommonResult.success(columnResultManagementFacade.getColumnResultNumber(getColumnResultNumberVO));
+    }
+
+    @ApiOperation(value = "修改字段校验问题明细 [by:zhanghang]")
+    @PostMapping("/updateColumnResult")
+    public CommonResult<Boolean> updateColumnResult(@RequestBody UpdateColumnResultVO updateColumnResultVO) {
+        return CommonResult.success(columnResultManagementFacade.updateColumnResult(updateColumnResultVO));
+    }
+}

+ 1 - 1
daqe-center/src/main/java/com/lantone/daqe/web/ColumnVerifyManagementController.java

@@ -33,7 +33,7 @@ import java.util.List;
 
 @RestController
 @Api(value = "字段校验规则维护API", tags = { "字段校验规则维护API" })
-@RequestMapping("/fieldCalibrationManagement")
+@RequestMapping("/columnVerifyManagement")
 public class ColumnVerifyManagementController {
 
     @Autowired

+ 8 - 0
daqe-center/src/main/java/com/lantone/daqe/web/DiseaseManagementController.java

@@ -2,11 +2,13 @@ package com.lantone.daqe.web;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.lantone.common.api.CommonResult;
+import com.lantone.daqe.dto.GetDiseaseInfoByIdDTO;
 import com.lantone.daqe.dto.GetDiseasePageDTO;
 import com.lantone.daqe.dto.GetMatchingDiseasePageDTO;
 import com.lantone.daqe.facade.DiseaseManagementFacade;
 import com.lantone.daqe.vo.AddDiseaseVO;
 import com.lantone.daqe.vo.DelDiseaseByIdVO;
+import com.lantone.daqe.vo.GetDiseaseInfoByIdVO;
 import com.lantone.daqe.vo.GetDiseasePageVO;
 import com.lantone.daqe.vo.GetMatchingDiseasePageVO;
 import com.lantone.daqe.vo.MatchingDiseaseVO;
@@ -78,4 +80,10 @@ public class DiseaseManagementController {
     public void importDisease(HttpServletResponse response, @RequestParam("file") MultipartFile file) {
         diseaseManagementFacade.importDisease(response, file);
     }
+
+    @ApiOperation(value = "已匹配诊断信息查看 [by:songxl]", notes = "已匹配诊断信息查看")
+    @PostMapping("/getDiseaseInfoById")
+    public CommonResult<GetDiseaseInfoByIdDTO> getDiseaseInfoById(@RequestBody GetDiseaseInfoByIdVO getDiseaseInfoByIdVO) {
+        return CommonResult.success(diseaseManagementFacade.getDiseaseInfoById(getDiseaseInfoByIdVO));
+    }
 }

+ 8 - 0
daqe-center/src/main/java/com/lantone/daqe/web/DrugManagementController.java

@@ -2,11 +2,13 @@ package com.lantone.daqe.web;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.lantone.common.api.CommonResult;
+import com.lantone.daqe.dto.GetDrugByIdDTO;
 import com.lantone.daqe.dto.GetDrugPageDTO;
 import com.lantone.daqe.dto.GetMatchingDrugPageDTO;
 import com.lantone.daqe.facade.DrugManagementFacade;
 import com.lantone.daqe.vo.AddDrugVO;
 import com.lantone.daqe.vo.DelDrugByIdVO;
+import com.lantone.daqe.vo.GetDrugByIdVO;
 import com.lantone.daqe.vo.GetDrugPageVO;
 import com.lantone.daqe.vo.GetMatchingDrugPageVO;
 import com.lantone.daqe.vo.MatchingDrugVO;
@@ -79,4 +81,10 @@ public class DrugManagementController {
         return CommonResult.success(drugManagementFacade.getMatchingDrugPage(getMatchingDrugPageVO));
     }
 
+    @ApiOperation(value = "已匹配药品信息查看 [by:songxl]")
+    @PostMapping("/getDrugById")
+    public CommonResult<GetDrugByIdDTO> getDrugById(@RequestBody GetDrugByIdVO getDrugByIdVO) {
+        return CommonResult.success(drugManagementFacade.getDrugById(getDrugByIdVO));
+    }
+
 }

+ 8 - 0
daqe-center/src/main/java/com/lantone/daqe/web/OperationManagementController.java

@@ -3,11 +3,13 @@ package com.lantone.daqe.web;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.lantone.common.api.CommonResult;
 import com.lantone.daqe.dto.GetMatchingOperationPageDTO;
+import com.lantone.daqe.dto.GetOperationByIdDTO;
 import com.lantone.daqe.dto.GetOperationPageDTO;
 import com.lantone.daqe.facade.OperationManagementFacade;
 import com.lantone.daqe.vo.AddOperationVO;
 import com.lantone.daqe.vo.DelOperationByIdVO;
 import com.lantone.daqe.vo.GetMatchingOperationVO;
+import com.lantone.daqe.vo.GetOperationByIdVO;
 import com.lantone.daqe.vo.GetOperationPageVO;
 import com.lantone.daqe.vo.MatchingOperationVO;
 import com.lantone.daqe.vo.UpOperationByIdVO;
@@ -79,4 +81,10 @@ public class OperationManagementController {
         return CommonResult.success(operationManagementFacade.getMatchingOperationPage(getMatchingOperationVO));
     }
 
+    @ApiOperation(value = "手术匹配信息查看 [by:songxl]")
+    @PostMapping("/getOperationById")
+    public CommonResult<GetOperationByIdDTO> getOperationById(@RequestBody GetOperationByIdVO getOperationByIdVO) {
+        return CommonResult.success(operationManagementFacade.getOperationById(getOperationByIdVO));
+    }
+
 }

+ 40 - 13
daqe-center/src/main/resources/mapper/BlocklossResultMapper.xml

@@ -9,23 +9,50 @@
         rec_id,
         rec_title,
         loss_cause,
-        loss_type,
-        loss_way,
+        CASE WHEN loss_type = '0' THEN '文书丢失'
+        WHEN loss_type = '1' THEN '病案首页丢失'
+        ELSE '患者信息丢失' END AS loss_type,
+        CASE WHEN loss_way = '0' THEN '外部丢失'
+        ELSE '内部丢失' END AS loss_way,
         gmt_modified,
-        `status`,
-        is_audited
+        CASE WHEN `status` = '0' THEN '已丢失'
+        ELSE '已恢复' END AS `status`,
+        CASE WHEN loss_type = '0' THEN '未通过'
+        WHEN loss_type = '1' THEN '已通过'
+        ELSE '未核查' END AS is_audited
         FROM
         `dc_blockloss_result`
         WHERE
         is_deleted = "N"
-<!--        AND gmt_create >= ""-->
-<!--        AND gmt_create < ""-->
-        AND behospital_code = ""
-        AND rec_id = ""
-        AND rec_title LIKE "%%"
-        AND loss_type = ""
-        AND loss_way = ""
-        AND is_audited = ""
-        AND `status` = ""
+        <if test="getBlockLossPageVO.hospitalId != null">
+            AND hospital_id = #{getBlockLossPageVO.hospitalId}
+        </if>
+        <if test="getBlockLossPageVO.startDate != null">
+            <![CDATA[AND gmt_create >= #{getBlockLossPageVO.startDate}]]>
+        </if>
+        <if test="getBlockLossPageVO.endDate != null">
+            <![CDATA[ AND gmt_create <= #{getBlockLossPageVO.endDate}]]>
+        </if>
+        <if test="getBlockLossPageVO.behospitalCode != null and getBlockLossPageVO.behospitalCode != ''">
+            AND behospital_code = #{getBlockLossPageVO.behospitalCode}
+        </if>
+        <if test="getBlockLossPageVO.recId != null and getBlockLossPageVO.recId != ''">
+            AND rec_id = #{getBlockLossPageVO.recId}
+        </if>
+        <if test="getBlockLossPageVO.recTitle != null and getBlockLossPageVO.recTitle != ''">
+            AND rec_title LIKE CONCAT('%',#{getBlockLossPageVO.recTitle},'%')
+        </if>
+        <if test="getBlockLossPageVO.recId != null and getBlockLossPageVO.recId != ''">
+            AND loss_type = #{getBlockLossPageVO.lossType}
+        </if>
+        <if test="getBlockLossPageVO.recId != null and getBlockLossPageVO.recId != ''">
+            AND loss_way = #{getBlockLossPageVO.lossWay}
+        </if>
+        <if test="getBlockLossPageVO.recId != null and getBlockLossPageVO.recId != ''">
+            AND is_audited = #{getBlockLossPageVO.isAudited}
+        </if>
+        <if test="getBlockLossPageVO.recId != null and getBlockLossPageVO.recId != ''">
+            AND `status` = #{getBlockLossPageVO.status}
+        </if>
     </select>
 </mapper>

+ 17 - 0
daqe-center/src/main/resources/mapper/ColumnResultMapper.xml

@@ -2,4 +2,21 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.lantone.daqe.mapper.ColumnResultMapper">
 
+    <select id="getColumnResultNumber" resultType="com.lantone.daqe.dto.GetColumnResultNumberDTO">
+		SELECT
+		sum(CASE dcr.is_solved WHEN 1 THEN 1 ELSE 0 END) resolved,
+		sum(CASE dcr.is_solved WHEN 0 THEN 1 ELSE 0 END) notSolved,
+		sum(CASE dcr.is_solved WHEN 1 THEN (CASE dcr.type WHEN 1 THEN 1 ELSE 0 END) ELSE 0 END) resolvedNonnull,
+		sum(CASE dcr.is_solved WHEN 1 THEN (CASE dcr.type WHEN 2 THEN 1 ELSE 0 END) ELSE 0 END) resolvedStandardvalue,
+		sum(CASE dcr.is_solved WHEN 1 THEN (CASE dcr.type WHEN 3 THEN 1 ELSE 0 END) ELSE 0 END) resolvedRegular,
+		sum(CASE dcr.is_solved WHEN 0 THEN (CASE dcr.type WHEN 1 THEN 1 ELSE 0 END) ELSE 0 END) notSolvedNonnull,
+		sum(CASE dcr.is_solved WHEN 0 THEN (CASE dcr.type WHEN 2 THEN 1 ELSE 0 END) ELSE 0 END) notSolvedStandardvalue,
+		sum(CASE dcr.is_solved WHEN 0 THEN (CASE dcr.type WHEN 3 THEN 1 ELSE 0 END) ELSE 0 END) notSolvedRegular
+	FROM
+		dc_column_result dcr
+	WHERE
+		dcr.is_deleted = 'N'
+	and hospital_id=#{getColumnResultNumberVO.hospitalId}
+
+    </select>
 </mapper>