陈昶聿
4 小时以前 6e397c664037b898b5e9d9955da1d953089e679e
【市一】手术随访对接
已修改8个文件
230 ■■■■■ 文件已修改
ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/resources/mapper/quartz/CollectHISMapper.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/PatMedOperation.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/PatArchiveMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/PatMedOperationItemMapper.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/PatArchiveMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/PatMedOperationItemMapper.xml 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/PatMedOperationMapper.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java
@@ -334,9 +334,22 @@
        patMedOperation.setLastStartTime(startTime);
        patMedOperation.setLastEndTime(endTime);
        List<PatMedOperation> patMedOperations = chMapper.selectOperList(patMedOperation);
        Map<String, Long> patIdHisMap = buildOperationPatIdHisMap(patMedOperations);
        log.info("同步手术信息数量" + patMedOperations.size());
        for (PatMedOperation operation : patMedOperations) {
            try {
                Long patId = patIdHisMap.get(operation.getPatidHis());
                if (patId == null) {
                    patId = syncSinglePatient(operation.getPatidHis());
                    if (patId != null) {
                        patIdHisMap.put(operation.getPatidHis(), patId);
                    }
                }
                if (patId != null) {
                    operation.setPatid(patId);
                }
                PatMedOperation oper = new PatMedOperation();
                oper.setOpid(operation.getOpid());
                List<PatMedOperation> patMedOperations1 = patMedOperationMapper.selectPatMedOperationList(oper);
@@ -389,9 +402,68 @@
                    log.info("同步手术详情信息:" + ex.getMessage());
                }
            }
//            try {
//                patMedOperationItemMapper.deleteHardPatMedOperationItemByOpId(operation.getOpid());
//                count += patMedOperationItemMapper.insertPatMedOperationItems(patMedOperationItems);
//            }catch (Exception ex) {
//                log.info("同步手术详情信息:" + ex.getMessage());
//            }
        }
        return count;
    }
    private Map<String, Long> buildOperationPatIdHisMap(List<PatMedOperation> operations) {
        List<String> patidHiss = operations.stream()
                .map(PatMedOperation::getPatidHis)
                .filter(StringUtils::isNotEmpty)
                .distinct()
                .collect(Collectors.toList());
        if (CollectionUtils.isEmpty(patidHiss)) {
            return new HashMap<>();
        }
        return patArchiveMapper.selectPatArchiveByPatidHiss(patidHiss).stream()
                .filter(item -> StringUtils.isNotEmpty(item.getPatidHis()) && item.getId() !=
                        null)
                .collect(Collectors.toMap(
                        PatArchive::getPatidHis,
                        PatArchive::getId,
                        (a, b) -> a
                ));
    }
    private Long syncSinglePatient(String patidHis) {
        if (StringUtils.isEmpty(patidHis)) {
            return null;
        }
        PatArchive hisQuery = new PatArchive();
        hisQuery.setPatidHis(patidHis);
        hisQuery.setPageSize(5);
        List<PatArchive> hisArchives = chMapper.selectPatArchiveList(hisQuery);
        if (CollectionUtils.isEmpty(hisArchives)) {
            return null;
        }
        PatArchive localQuery = new PatArchive();
        localQuery.setPatidHis(patidHis);
        List<PatArchive> localArchives = patArchiveMapper.selectPatArchiveList(localQuery);
        PatArchive hisArchive = hisArchives.get(0);
        if (CollectionUtils.isNotEmpty(localArchives)) {
            hisArchive.setId(localArchives.get(0).getId());
            hisArchive.setUpdateTime(new Date());
            patArchiveMapper.updatePatArchive(hisArchive);
            return localArchives.get(0).getId();
        } else {
            hisArchive.setCreateTime(new Date());
            patArchiveMapper.insertPatArchiveSingle(hisArchive);
            return hisArchive.getId();
        }
    }
    @Override
    public Integer selectPatMedInhospList(PatMedInhosp patMedInhosp) {
        List<PatMedInhosp> patMedInhospList = chMapper.selectPatMedInhospList(patMedInhosp);
ruoyi-quartz/src/main/resources/mapper/quartz/CollectHISMapper.xml
@@ -226,7 +226,7 @@
    <resultMap type="com.smartor.domain.PatMedOuthosp" id="PatMedOuthospResult">
        <result property="id" column="id"/>
        <result property="serialnum" column="serialnum"/>
        <result property="patid" column="patid"/>
        <result property="patidHis" column="patid"/>
        <result property="hospitalname" column="hospitalname"/>
        <result property="hospitalcode" column="hospitalcode"/>
        <result property="icd10code" column="icd10code"/>
@@ -338,7 +338,7 @@
    <resultMap type="com.smartor.domain.PatMedOperation" id="PatMedOperationResult">
        <result property="id" column="id"/>
        <result property="patid" column="patid"/>
        <result property="patidHis" column="patid_his"/>
        <result property="patcode" column="patcode"/>
        <result property="paname" column="paname"/>
        <result property="opreqid" column="opreqid"/>
@@ -817,7 +817,7 @@
    <select id="selectOperList" parameterType="com.smartor.domain.PatMedOperation"
            resultMap="PatMedOperationResult">
        select
        o.patid,
        o.patid_his,
        o.patcode,
        o.paname,
        o.opreqid,
smartor/src/main/java/com/smartor/domain/PatMedOperation.java
@@ -35,6 +35,12 @@
    private Long patid;
    /**
     * his系统ID
     */
    @ApiModelProperty("his系统ID")
    private String patidHis;
    /**
     * 病人编号
     */
    @ApiModelProperty("病人编号")
smartor/src/main/java/com/smartor/mapper/PatArchiveMapper.java
@@ -26,6 +26,8 @@
    List<PatArchive> selectPatArchiveByPatnos(@Param("patnos") List<String> patnos);
    List<PatArchive> selectPatArchiveByPatidHiss(@Param("patidHiss") List<String> patidHiss);
    /**
     * 查询患者档案列表
     *
smartor/src/main/java/com/smartor/mapper/PatMedOperationItemMapper.java
@@ -38,6 +38,13 @@
    public int insertPatMedOperationItem(PatMedOperationItem patMedOperationItem);
    /**
     * 新增患者检查检验记录子
     *
     * @param patMedOperationItems 患者检查检验记录子
     * @return 结果
     */
    public int insertPatMedOperationItems(List<PatMedOperationItem> patMedOperationItems);
    /**
     * 修改患者检查检验记录子
     *
     * @param patMedOperationItem 患者检查检验记录子
@@ -60,4 +67,12 @@
     * @return 结果
     */
    public int deletePatMedOperationItemByIds(Long[] ids);
    /**
     * 删除患者检查检验记录子
     *
     * @param opid 患者检查检验记录子主键
     * @return 结果
     */
    public int deleteHardPatMedOperationItemByOpId(String opid);
}
smartor/src/main/resources/mapper/smartor/PatArchiveMapper.xml
@@ -283,6 +283,15 @@
        </foreach>
    </select>
    <select id="selectPatArchiveByPatidHiss" resultMap="PatArchiveResult">
        SELECT id, patid_his
        FROM pat_archive
        WHERE patid_his IN
        <foreach item="patidHis" collection="patidHiss" open="(" separator="," close=")">
            #{patidHis}
        </foreach>
    </select>
    <insert id="insertPatArchiveSingle" parameterType="com.smartor.domain.PatArchive" useGeneratedKeys="true"
            keyProperty="id">
        insert into pat_archive
smartor/src/main/resources/mapper/smartor/PatMedOperationItemMapper.xml
@@ -96,11 +96,9 @@
            where id = #{id}
    </select>
    <insert id="insertPatMedOperationItem" parameterType="com.smartor.domain.PatMedOperationItem">
    <insert id="insertPatMedOperationItem" parameterType="com.smartor.domain.PatMedOperationItem" useGeneratedKeys="true" keyProperty="id">
        insert into pat_med_operation_item
        <trim prefix="(" suffix=")" suffixOverrides=",">
                    <if test="id != null">id,
                    </if>
                    <if test="operationid != null">operationid,
                    </if>
                    <if test="opid != null">opid,
@@ -149,8 +147,6 @@
                    </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
                    <if test="id != null">#{id},
                    </if>
                    <if test="operationid != null">#{operationid},
                    </if>
                    <if test="opid != null">#{opid},
@@ -276,6 +272,109 @@
        where id = #{id}
    </update>
    <insert id="insertPatMedOperationItems">
        insert into pat_med_operation_item
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="operationid != null">operationid,
            </if>
            <if test="opid != null">opid,
            </if>
            <if test="opcode != null">opcode,
            </if>
            <if test="opdesc != null">opdesc,
            </if>
            <if test="mainFlag != null">main_flag,
            </if>
            <if test="incitypecode != null">incitypecode,
            </if>
            <if test="incitypedesc != null">incitypedesc,
            </if>
            <if test="oplevelcode != null">oplevelcode,
            </if>
            <if test="opleveldesc != null">opleveldesc,
            </if>
            <if test="opposition != null">opposition,
            </if>
            <if test="delFlag != null">del_flag,
            </if>
            <if test="updateBy != null">update_by,
            </if>
            <if test="updateTime != null">update_time,
            </if>
            <if test="createBy != null">create_by,
            </if>
            <if test="createTime != null">create_time,
            </if>
            <if test="isupload != null">isupload,
            </if>
            <if test="uploadTime != null">upload_time,
            </if>
            <if test="orgid != null">orgid,
            </if>
            <if test="pguid != null">pguid,
            </if>
            <if test="guid != null">guid,
            </if>
            <if test="pid != null">pid,
            </if>
            <if test="opercheckFlag != null">opercheck_flag,
            </if>
            <if test="longTaskReason != null">long_task_reason,
            </if>
        </trim>
        values
        <foreach item="item" index="index" collection="list" separator=",">
            <trim prefix="(" suffix=")" suffixOverrides=",">
                <if test="operationid != null">#{item.operationid},
                </if>
                <if test="opid != null">#{item.opid},
                </if>
                <if test="opcode != null">#{item.opcode},
                </if>
                <if test="opdesc != null">#{item.opdesc},
                </if>
                <if test="mainFlag != null">#{item.mainFlag},
                </if>
                <if test="incitypecode != null">#{item.incitypecode},
                </if>
                <if test="incitypedesc != null">#{item.incitypedesc},
                </if>
                <if test="oplevelcode != null">#{item.oplevelcode},
                </if>
                <if test="opleveldesc != null">#{item.opleveldesc},
                </if>
                <if test="opposition != null">#{item.opposition},
                </if>
                <if test="delFlag != null">#{item.delFlag},
                </if>
                <if test="updateBy != null">#{item.updateBy},
                </if>
                <if test="updateTime != null">#{item.updateTime},
                </if>
                <if test="createBy != null">#{item.createBy},
                </if>
                <if test="createTime != null">#{item.createTime},
                </if>
                <if test="isupload != null">#{item.isupload},
                </if>
                <if test="uploadTime != null">#{item.uploadTime},
                </if>
                <if test="orgid != null">#{item.orgid},
                </if>
                <if test="pguid != null">#{item.pguid},
                </if>
                <if test="guid != null">#{item.guid},
                </if>
                <if test="pid != null">#{item.pid},
                </if>
                <if test="opercheckFlag != null">#{item.opercheckFlag},
                </if>
                <if test="longTaskReason != null">#{item.longTaskReason},
                </if>
            </trim>
        </foreach>
    </insert>
                <update id="deletePatMedOperationItemById" parameterType="Long">
        update pat_med_operation_item
        <trim prefix="SET" suffixOverrides=",">
@@ -295,7 +394,10 @@
        </foreach>
    </update>
    <delete id="deleteHardPatMedOperationItemByOpId" parameterType="String">
        delete from pat_med_operation_item
               where opid = #{opid}
    </delete>
</mapper>
smartor/src/main/resources/mapper/smartor/PatMedOperationMapper.xml
@@ -364,11 +364,9 @@
        where id = #{id}
    </select>
    <insert id="insertPatMedOperation" parameterType="com.smartor.domain.PatMedOperation">
    <insert id="insertPatMedOperation" parameterType="com.smartor.domain.PatMedOperation" useGeneratedKeys="true" keyProperty="id">
        insert into pat_med_operation
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null">id,
            </if>
            <if test="patid != null">patid,
            </if>
            <if test="patcode != null">patcode,
@@ -511,8 +509,6 @@
            </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="id != null">#{id},
            </if>
            <if test="patid != null">#{patid},
            </if>
            <if test="patcode != null">#{patcode},