Przeglądaj źródła

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

zhanghang 3 lat temu
rodzic
commit
6a16b42b5c

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

@@ -74,4 +74,10 @@ public class GetColumnResultPageDTO implements Serializable {
 
     @ApiModelProperty(value = "最近一次人工核查时间")
     private Date auditTime;
+
+    @ApiModelProperty(value = "记录修改时间")
+    private Date gmtModified;
+
+    @ApiModelProperty(value = "记录创建时间")
+    private Date gmtCreate;
 }

+ 6 - 0
daqe-center/src/main/java/com/lantone/daqe/dto/GetTableColumnInfoDTO.java

@@ -46,5 +46,11 @@ public class GetTableColumnInfoDTO implements Serializable {
     @ApiModelProperty(value = "模块名称")
     private String modeName;
 
+    @ApiModelProperty(value = "文书编号")
+    private String recId;
+
+    @ApiModelProperty(value = "文书标题")
+    private String recTitle;
+
 
 }

+ 69 - 24
daqe-center/src/main/java/com/lantone/daqe/facade/ColumnResultManagementFacade.java

@@ -262,6 +262,8 @@ public class ColumnResultManagementFacade {
             hospitalId=SysUserUtils.getCurrentHospitalId();
             principleId=SysUserUtils.getCurrentPrincipleId();
         }
+        //获取所有包含rec_id的表名
+        List<String> recColumnTable = getRecColumnTable();
         dataCheckVO.setHospitalId(hospitalId);
         String behospitalCode = dataCheckVO.getBehospitalCode();
         //传入BehospitalCode 只针对单个病历进行校验
@@ -276,7 +278,7 @@ public class ColumnResultManagementFacade {
             }
             behospitalCodeList.add(behospitalCode);
             //对于集合病历所有校验规则校验其表信息字段
-            checkTableColumnVal(behospitalCodeList,hospitalId,principleId);
+            checkTableColumnVal(behospitalCodeList,hospitalId,principleId,recColumnTable);
         }
         //对于只传时间不传病历的情况
         //创建一个病历集合
@@ -290,7 +292,7 @@ public class ColumnResultManagementFacade {
                 behospitalCodeList.add(behospitalInfo.getBehospitalCode());
             }
             //对于集合病历所有校验规则校验其表信息字段
-            checkTableColumnVal(behospitalCodeList,hospitalId,principleId);
+            checkTableColumnVal(behospitalCodeList,hospitalId,principleId,recColumnTable);
         }
         return true;
     }
@@ -302,23 +304,23 @@ public class ColumnResultManagementFacade {
      * @param behospitalCodeList
      * @return: 具体数据
      */
-    public void checkTableColumnVal(List<String> behospitalCodeList,Long hospitalId,Long principleId) {
+    public void checkTableColumnVal(List<String> behospitalCodeList,Long hospitalId,Long principleId,List<String> recColumnTable) {
         //先获取非空的所有字段校验规则
         List<NonnullInfo> nonnullInfos = getNonnullInfo();
         if (ListUtil.isNotEmpty(nonnullInfos)) {
             //调用校验非空规则方法
-            checkNonnull(nonnullInfos, behospitalCodeList, hospitalId,principleId);
+            checkNonnull(nonnullInfos, behospitalCodeList, hospitalId,principleId,recColumnTable);
         }
         //获取正则所有字段校验规则
         List<GetRegular> regularMappings = getRegularMapping();
         if (ListUtil.isNotEmpty(regularMappings)) {
             //调用校验正则规则
-            checkRegular(regularMappings, behospitalCodeList, hospitalId,principleId);
+            checkRegular(regularMappings, behospitalCodeList, hospitalId,principleId,recColumnTable);
         }
         //获取字段校验的标准值规则
         List<GetStandardvalueInfoDTO> standardvalueInfo = getStandardvalueInfo();
         if (ListUtil.isNotEmpty(standardvalueInfo)) {
-            checkStandardvalue(standardvalueInfo, behospitalCodeList, hospitalId,principleId);
+            checkStandardvalue(standardvalueInfo, behospitalCodeList, hospitalId,principleId,recColumnTable);
         }
     }
 
@@ -389,22 +391,44 @@ public class ColumnResultManagementFacade {
                 }
             }
         }
+        //获取所有包含rec_id的表名
+        List<String> recColumnTable = getRecColumnTable();
         //非空校验规则今天有修改
         if (ListUtil.isNotEmpty(nonnullInfoList) && ListUtil.isNotEmpty(behospitalCodeList)) {
             //调用校验非空规则方法
-            checkNonnull(nonnullInfos, behospitalCodeList, hospitalId,principleId);
+            checkNonnull(nonnullInfos, behospitalCodeList, hospitalId,principleId,recColumnTable);
         }
         //正则校验规则今天有修改
         if (ListUtil.isNotEmpty(regularList) && ListUtil.isNotEmpty(behospitalCodeList)) {
             //调用校验正则规则
-            checkRegular(regularMappings, behospitalCodeList, hospitalId,principleId);
+            checkRegular(regularMappings, behospitalCodeList, hospitalId,principleId,recColumnTable);
         }
         //标准值校验规则今天有修改
         if (ListUtil.isNotEmpty(standardvalueList) && ListUtil.isNotEmpty(behospitalCodeList)) {
             //调用校验正则规则
-            checkStandardvalue(standardvalueInfo, behospitalCodeList, hospitalId,principleId);
+            checkStandardvalue(standardvalueInfo, behospitalCodeList, hospitalId,principleId,recColumnTable);
         }
     }
+    /**
+     *
+     *获取所有包含rec_id的表名
+     * @param
+     * @return:
+     */
+    public List<String> getRecColumnTable(){
+        //获取所有包含rec_id的表名
+        List<ColumnInfo> columnInfoList = columnInfoFacade.getBaseMapper().selectList(new QueryWrapper<ColumnInfo>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("column_ename", "rec_id")
+        );
+        List<String> recColumnTable = new ArrayList<>();
+        if(ListUtil.isNotEmpty(columnInfoList)) {
+            for (ColumnInfo columnInfo : columnInfoList) {
+                recColumnTable.add(columnInfo.getTableEname());
+            }
+        }
+        return recColumnTable;
+    }
 
     /**
      * 获取时间段内所有病历
@@ -464,7 +488,7 @@ public class ColumnResultManagementFacade {
      * @param hospitalId
      * @return:
      */
-    public void checkNonnull(List<NonnullInfo> nonnullInfos, List<String> behospitalCodeList, Long hospitalId,Long principleId) {
+    public void checkNonnull(List<NonnullInfo> nonnullInfos, List<String> behospitalCodeList, Long hospitalId,Long principleId,List<String> recColumnTable) {
         for (NonnullInfo nonnullInfo : nonnullInfos) {
             Long columnId = nonnullInfo.getColumnId();
             ColumnInfo columnInfo = columnInfoFacade.getBaseMapper().selectById(columnId);
@@ -478,7 +502,7 @@ public class ColumnResultManagementFacade {
             getTableColumnInfoVO.setHospitalId(hospitalId);
             String columnNumber = getColumnNumber(columnInfo.getTableCname());
             getTableColumnInfoVO.setNumberColumnCname(columnNumber);
-            List<GetTableColumnInfoDTO> tableColumnVal = getTableColumnVal(getTableColumnInfoVO);
+            List<GetTableColumnInfoDTO> tableColumnVal = getTableColumnVal(getTableColumnInfoVO,recColumnTable);
             //枚举获取模块信息
             String modeId = ModeEnum.valueOf(columnInfo.getTableEname()).getKey();
             String modeName = ModeEnum.valueOf(columnInfo.getTableEname()).getName();
@@ -504,8 +528,12 @@ public class ColumnResultManagementFacade {
                     nonnullResult.setBehospitalCode(getTableColumnInfoDTO.getBehospitalCode());
                     nonnullResult.setModeId(getTableColumnInfoDTO.getModeId());
                     nonnullResult.setModeName(getTableColumnInfoDTO.getModeName());
-                    nonnullResult.setHosptialDatatmpCode(modeId);
-                    nonnullResult.setHosptialDatatmpName(modeName);
+                    if(StringUtil.isNotEmpty(getTableColumnInfoDTO.getRecId())) {
+                        nonnullResult.setHosptialDatatmpCode(getTableColumnInfoDTO.getRecId());
+                    }
+                    if(StringUtil.isNotEmpty(getTableColumnInfoDTO.getRecTitle())) {
+                        nonnullResult.setHosptialDatatmpName(getTableColumnInfoDTO.getRecTitle());
+                    }
                     nonnullResult.setColumnId(nonnullInfo.getColumnId());
                     nonnullResult.setBehospitalDate(getTableColumnInfoDTO.getBehospitalDate());
                     nonnullResult.setTableCname(columnInfo.getTableCname());
@@ -540,7 +568,7 @@ public class ColumnResultManagementFacade {
      * @param hospitalId
      * @return:
      */
-    public void checkRegular(List<GetRegular> regularMappings, List<String> behospitalCodeList, Long hospitalId,Long principleId) {
+    public void checkRegular(List<GetRegular> regularMappings, List<String> behospitalCodeList, Long hospitalId,Long principleId,List<String> recColumnTable) {
         for (GetRegular getRegular : regularMappings) {
             Long columnId = getRegular.getColumnId();
             ColumnInfo columnInfo = columnInfoFacade.getBaseMapper().selectById(columnId);
@@ -553,7 +581,7 @@ public class ColumnResultManagementFacade {
             getTableColumnInfoVO.setHospitalId(hospitalId);
             String columnNumber = getColumnNumber(columnInfo.getTableCname());
             getTableColumnInfoVO.setNumberColumnCname(columnNumber);
-            List<GetTableColumnInfoDTO> tableColumnVal = getTableColumnVal(getTableColumnInfoVO);
+            List<GetTableColumnInfoDTO> tableColumnVal = getTableColumnVal(getTableColumnInfoVO,recColumnTable);
             String modeId = ModeEnum.valueOf(columnInfo.getTableEname()).getKey();
             String modeName = ModeEnum.valueOf(columnInfo.getTableEname()).getName();
             String regular = getRegular.getVal();
@@ -582,8 +610,12 @@ public class ColumnResultManagementFacade {
                     regularResult.setTableEname(columnInfo.getTableEname());
                     regularResult.setColumnCname(columnInfo.getColumnCname());
                     regularResult.setColumnEname(columnInfo.getColumnEname());
-                    regularResult.setHosptialDatatmpCode(modeId);
-                    regularResult.setHosptialDatatmpName(modeName);
+                    if(StringUtil.isNotEmpty(getTableColumnInfoDTO.getRecId())) {
+                        regularResult.setHosptialDatatmpCode(getTableColumnInfoDTO.getRecId());
+                    }
+                    if(StringUtil.isNotEmpty(getTableColumnInfoDTO.getRecTitle())) {
+                        regularResult.setHosptialDatatmpName(getTableColumnInfoDTO.getRecTitle());
+                    }
                     regularResult.setBehospitalDate(getTableColumnInfoDTO.getBehospitalDate());
                     regularResult.setHospitalDataCode(getTableColumnInfoDTO.getNumberId());
                     regularResult.setRegularId(getRegular.getId());
@@ -617,7 +649,7 @@ public class ColumnResultManagementFacade {
      * @param hospitalId
      * @return:
      */
-    public void checkStandardvalue(List<GetStandardvalueInfoDTO> standardvalueInfos, List<String> behospitalCodeList, Long hospitalId,Long principleId) {
+    public void checkStandardvalue(List<GetStandardvalueInfoDTO> standardvalueInfos, List<String> behospitalCodeList, Long hospitalId,Long principleId,List<String> recColumnTable) {
         for (GetStandardvalueInfoDTO standardvalueInfo : standardvalueInfos) {
             Long columnId = standardvalueInfo.getColumnId();
             ColumnInfo columnInfo = columnInfoFacade.getBaseMapper().selectById(columnId);
@@ -630,7 +662,7 @@ public class ColumnResultManagementFacade {
             getTableColumnInfoVO.setHospitalId(hospitalId);
             String columnNumber = getColumnNumber(columnInfo.getTableCname());
             getTableColumnInfoVO.setNumberColumnCname(columnNumber);
-            List<GetTableColumnInfoDTO> tableColumnVal = getTableColumnVal(getTableColumnInfoVO);
+            List<GetTableColumnInfoDTO> tableColumnVal = getTableColumnVal(getTableColumnInfoVO,recColumnTable);
             String standardvalue = standardvalueInfo.getStandardvalue();
             String modeId = ModeEnum.valueOf(columnInfo.getTableEname()).getKey();
             String modeName = ModeEnum.valueOf(columnInfo.getTableEname()).getName();
@@ -658,9 +690,13 @@ public class ColumnResultManagementFacade {
                     standardvalueResult.setModeName(getTableColumnInfoDTO.getModeName());
                     standardvalueResult.setColumnId(columnId);
                     standardvalueResult.setMappings(standardvalueMapping);
-                    standardvalueResult.setHosptialDatatmpCode(modeId);
                     standardvalueResult.setBehospitalDate(getTableColumnInfoDTO.getBehospitalDate());
-                    standardvalueResult.setHosptialDatatmpName(modeName);
+                    if(StringUtil.isNotEmpty(getTableColumnInfoDTO.getRecId())) {
+                        standardvalueResult.setHosptialDatatmpCode(getTableColumnInfoDTO.getRecId());
+                    }
+                    if(StringUtil.isNotEmpty(getTableColumnInfoDTO.getRecTitle())) {
+                        standardvalueResult.setHosptialDatatmpName(getTableColumnInfoDTO.getRecTitle());
+                    }
                     standardvalueResult.setTableCname(columnInfo.getTableCname());
                     standardvalueResult.setBehospitalDate(getTableColumnInfoDTO.getBehospitalDate());
                     standardvalueResult.setTableEname(columnInfo.getTableEname());
@@ -691,7 +727,12 @@ public class ColumnResultManagementFacade {
      * @param getTableColumnInfoVO
      * @return: 具体数据
      */
-    public List<GetTableColumnInfoDTO> getTableColumnVal(GetTableColumnInfoVO getTableColumnInfoVO) {
+    public List<GetTableColumnInfoDTO> getTableColumnVal(GetTableColumnInfoVO getTableColumnInfoVO,List<String> recColumnTable) {
+        //判断此规则是否包含rec_id
+        if(ListUtil.isNotEmpty(recColumnTable) && recColumnTable.contains(getTableColumnInfoVO.getColumnEname())){
+            List<GetTableColumnInfoDTO> tableColumnVal = columnResultFacade.getBaseMapper().getRecSpecialTableColumnVal(getTableColumnInfoVO);
+            return tableColumnVal;
+        }
         List<GetTableColumnInfoDTO> tableColumnVal = columnResultFacade.getBaseMapper().getSpecialTableColumnVal(getTableColumnInfoVO);
         return tableColumnVal;
     }
@@ -818,8 +859,12 @@ public class ColumnResultManagementFacade {
         columnResult.setBehospitalCode(getTableColumnInfoDTO.getBehospitalCode());
         columnResult.setModeId(getTableColumnInfoDTO.getModeId());
         columnResult.setModeName(getTableColumnInfoDTO.getModeName());
-        columnResult.setHosptialDatatmpCode(getTableColumnInfoDTO.getModeId().toString());
-        columnResult.setHosptialDatatmpName(getTableColumnInfoDTO.getModeName());
+        if(StringUtil.isNotEmpty(getTableColumnInfoDTO.getRecId())) {
+            columnResult.setHosptialDatatmpCode(getTableColumnInfoDTO.getRecId());
+        }
+        if(StringUtil.isNotEmpty(getTableColumnInfoDTO.getRecTitle())) {
+            columnResult.setHosptialDatatmpName(getTableColumnInfoDTO.getRecTitle());
+        }
         columnResult.setHospitalDataCode(getTableColumnInfoDTO.getNumberId());
         columnResult.setColumnId(columnId);
         if(principleId!=null) {

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

@@ -20,4 +20,6 @@ public interface ColumnResultMapper extends BaseMapper<ColumnResult> {
 
 
     List<GetTableColumnInfoDTO> getSpecialTableColumnVal(@Param("getTableColumnInfoVO") GetTableColumnInfoVO getTableColumnInfoVO);
+
+    List<GetTableColumnInfoDTO> getRecSpecialTableColumnVal(@Param("getTableColumnInfoVO") GetTableColumnInfoVO getTableColumnInfoVO);
 }

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

@@ -60,4 +60,45 @@
         AND sdd.is_deleted = 'N'
         AND a.hospital_id = sdd.hospital_id
     </select>
+
+
+    <select id="getRecSpecialTableColumnVal" resultType="com.lantone.daqe.dto.GetTableColumnInfoDTO">
+        SELECT
+        a.behospital_code,
+        a.hospital_id,
+        sdd.id tableId,
+        a.behospital_date,
+        mmr.rec_id,
+        mmr.rec_title,
+        sdd.${getTableColumnInfoVO.columnEname} val,
+        sdd.${getTableColumnInfoVO.numberColumnCname} numberId
+        FROM
+        (
+        SELECT
+        behospital_code,
+        hospital_id,
+        behospital_date
+        FROM
+        med_behospital_info
+        WHERE
+        is_deleted = 'N'
+        <if test="getTableColumnInfoVO.hospitalId != null and getTableColumnInfoVO.hospitalId != ''">
+            AND hospital_id = #{getTableColumnInfoVO.hospitalId}
+        </if>
+        AND behospital_code in
+        <foreach collection="getTableColumnInfoVO.behospitalCodeList" item="behospitalCode" open="(" separator=","
+                 close=")">
+            #{behospitalCode}
+        </foreach>
+        ) a,
+        med_medical_record mmr ,
+        ${getTableColumnInfoVO.tableEname} sdd
+        where
+        a.behospital_code = mmr.behospital_code
+        and sdd.behospital_code = a.behospital_code
+        and sdd.rec_id=mmr.rec_id
+        AND sdd.is_deleted = 'N'
+        AND mmr.is_deleted = 'N'
+        AND a.hospital_id = sdd.hospital_id
+    </select>
 </mapper>