Переглянути джерело

档案入库,重新解析失败的影像,非结构化,补传的档案包等

chenyongxing 6 роки тому
батько
коміт
043104395e

+ 8 - 0
src/main/java/com/yihu/ehr/resolve/job/PackageResolveJob.java

@ -12,7 +12,9 @@ import com.yihu.ehr.model.packs.EsSimplePackage;
import com.yihu.ehr.profile.exception.IllegalJsonDataException;
import com.yihu.ehr.profile.exception.IllegalJsonFileException;
import com.yihu.ehr.resolve.model.stage1.OriginalPackage;
import com.yihu.ehr.resolve.model.stage1.StandardPackage;
import com.yihu.ehr.resolve.model.stage2.ResourceBucket;
import com.yihu.ehr.resolve.service.profile.JsonArchivesService;
import com.yihu.ehr.resolve.service.resource.stage1.ResolveService;
import com.yihu.ehr.resolve.service.resource.stage2.*;
import com.yihu.ehr.resolve.log.PackResolveLogger;
@ -136,6 +138,12 @@ public class PackageResolveJob implements InterruptableJob {
        map.put("delay", delay % DAY > 0 ? delay / DAY + 1 : delay / DAY);
        map.put("re_upload_flg", String.valueOf(originalPackage.isReUploadFlg()));
        statusReportService.reportStatus(pack.get_id(), ArchiveStatus.Finished, 0, "resolve success",  map);
        //非结构化,影像档案,结构化补传等,入库失败,重新进行质控,入库等
        if(originalPackage instanceof StandardPackage && !originalPackage.isReUploadFlg()){
            JsonArchivesService jsonArchivesService = SpringContext.getService("jsonArchivesService");
            jsonArchivesService.reloadData(pack,resourceBucket,originalPackage);
        }
        //回填解析数据
        pack.setRowkey(resourceBucket.getId());
        pack.setPatient_id(originalPackage.getPatientId());

+ 61 - 0
src/main/java/com/yihu/ehr/resolve/service/profile/JsonArchivesService.java

@ -0,0 +1,61 @@
package com.yihu.ehr.resolve.service.profile;
import com.yihu.ehr.elasticsearch.ElasticSearchUtil;
import com.yihu.ehr.model.packs.EsSimplePackage;
import com.yihu.ehr.resolve.model.stage1.OriginalPackage;
import com.yihu.ehr.resolve.model.stage2.ResourceBucket;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.sql.ResultSet;
import java.util.*;
/**
 * 档案关联
 * @author progr1mmer
 * @date Created on 2018/4/11.
*/
@Service
public class JsonArchivesService {
    private static final String INDEX = "json_archives";
    private static final String TYPE = "info";
    @Autowired
    private ElasticSearchUtil elasticSearchUtil;
    public void reloadData(EsSimplePackage pack,ResourceBucket resourceBucket, OriginalPackage originalPackage) throws Exception {
        String id = pack.get_id();
        //查找包
        Map<String, Object> esPack = elasticSearchUtil.findById(INDEX, TYPE, id);
        String profileId = originalPackage.getProfileId().toString();
        String receiveDate = esPack.get("receive_date").toString();
        List<Map<String, Object>> updateSourceList = new ArrayList<>();
        try {
            ResultSet resultSet = elasticSearchUtil.findBySql("select * from json_archives where receive_date>'" + receiveDate + "' and fail_count=3 and archive_status=2 and message like '%" + profileId + "%'");
            while (resultSet.next()) {
                String _id = resultSet.getString("_id");
                Map<String, Object> updateSource = new HashMap<>();
                updateSource.put("_id", _id);
                updateSource.put("analyze_status", 0);
                updateSource.put("analyze_fail_count", 0);
                updateSource.put("fail_count",0);
                updateSource.put("archive_status",0);
                updateSourceList.add(updateSource);
            }
        } catch (Exception e) {
            if (!"Error".equals(e.getMessage())) {
                e.printStackTrace();
            }
        }
        if(CollectionUtils.isNotEmpty(updateSourceList)){
            elasticSearchUtil.bulkUpdate(INDEX, TYPE, updateSourceList);
        }
    }
}

+ 0 - 3
src/main/java/com/yihu/ehr/resolve/service/resource/stage2/ResourceService.java

@ -10,8 +10,6 @@ import com.yihu.ehr.resolve.service.profile.ArchiveRelationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
@ -60,7 +58,6 @@ public class ResourceService {
            LinkPackage pack = (LinkPackage) originalPackage;
            ftpFileService.deleteFile(pack);
        }
    }
}