Browse Source

上传档案,机构公钥获取问题,和版本号错误问题修复

huangzhiyong 7 years ago
parent
commit
b09bd5423c

+ 1 - 1
hos-rest/src/main/java/com/yihu/hos/rest/controllers/CrawlerController.java

@ -126,7 +126,7 @@ public class CrawlerController {
    }
    @RequestMapping(value = "patientList", method = RequestMethod.POST)
    @ApiOperation(value = "采集病人健康档案", produces = "application/json", notes = "采集病人健康档案")
    @ApiOperation(value = "上传病人健康档案", produces = "application/json", notes = "采集病人健康档案")
    @ResponseBody
    public Result crawlerPatientList(
            @ApiParam(name = "jobId", value = "任务jobId", required = true)

+ 2 - 0
hos-rest/src/main/java/com/yihu/hos/rest/models/crawler/config/SysConfig.java

@ -126,6 +126,7 @@ public class SysConfig {
            this.initCrawler(rootElement);
            this.initEventNo(rootElement);
            this.initVersion(rootElement);
            String tempFile = rootElement.elementTextTrim("temp_file");
//            this.initPatientIndex(rootElement);
        } catch (Exception e) {
            logger.error(e.getCause().toString());
@ -146,6 +147,7 @@ public class SysConfig {
            if (obj instanceof Element) {
                Element element = (Element) obj;
                String dataSetCode = element.attributeValue("code");
                orgcode = element.attributeValue("code");
                String version = element.elementTextTrim("version");
                String ehrVersion=new String(version);

+ 6 - 1
hos-rest/src/main/java/com/yihu/hos/rest/services/crawler/CrawlerFlowManager.java

@ -135,7 +135,12 @@ public class CrawlerFlowManager {
                 */
                String datasetCode = crawlerFlowHeadModel.getDatasetCode();
                AdapterDataSet adapterDataSet = adapterDataSetMap.get(datasetCode);
                JsonNode data = dispatch.fecthData(patient, adapterDataSet);
                String stdVersion = adapterDatasetService.getStdVersionByAdapterDataSet(this.schemeVersion);
                JsonNode data = null;
                if (!StringUtil.isEmpty(stdVersion)){
                    data = dispatch.fecthData(patient, adapterDataSet,stdVersion);
                }
                if (StringUtil.isEmpty(data)) {
                    continue;
                }

+ 19 - 10
hos-rest/src/main/java/com/yihu/hos/rest/services/crawler/CrawlerManager.java

@ -194,7 +194,11 @@ public class CrawlerManager {
                 * 获取数据
                 */
                AdapterDataSet adapterDataSet = adapterDataSetMap.get(key);
                JsonNode jsonObject = dispatch.fecthData(patient, adapterDataSet);
                String stdVersion = adapterDatasetService.getStdVersionByAdapterDataSet(this.schemeVersion);
                JsonNode jsonObject = null;
                if (!StringUtil.isEmpty(stdVersion)){
                    jsonObject = dispatch.fecthData(patient, adapterDataSet,stdVersion);
                }
                if (StringUtil.isEmpty(jsonObject)) {
                    continue;
                }
@ -203,14 +207,14 @@ public class CrawlerManager {
                /**
                 * 注册病人
                 */
                if (SysConfig.getInstance().getRegisterDataSet().equals(adapterDataSet.getAdapterDataSetT().getStdDatasetCode())) {
                    if (!StringUtil.isEmpty(jsonObject.get("data")) && !StringUtil.isEmpty(jsonObject.get("data").get(0))) {
                        if (!StringUtil.isEmpty(jsonObject.get("data").get(0).get(SysConfig.getInstance().getRegisterIdCardNo()))) {
                            logger.info("注册病人");
                            dispatch.register(patient, jsonObject.toString());
                        }
                    }
                }
//                if (SysConfig.getInstance().getRegisterDataSet().equals(adapterDataSet.getAdapterDataSetT().getStdDatasetCode())) {
//                    if (!StringUtil.isEmpty(jsonObject.get("data")) && !StringUtil.isEmpty(jsonObject.get("data").get(0))) {
//                        if (!StringUtil.isEmpty(jsonObject.get("data").get(0).get(SysConfig.getInstance().getRegisterIdCardNo()))) {
//                            logger.info("注册病人");
//                            dispatch.register(patient, jsonObject.toString());
//                        }
//                    }
//                }
            }
            logger.info("上传-采集病人信息成功,patient_id:" + patient.getPatientId() + ", event_no:" + patient.getEventNo());
            //上传档案
@ -274,7 +278,11 @@ public class CrawlerManager {
                 * 获取数据
                 */
                AdapterDataSet adapterDataSet = adapterDataSetMap.get(key);
                JsonNode jsonObject = dispatch.fecthData(patient, adapterDataSet);
                String stdVersion = adapterDatasetService.getStdVersionByAdapterDataSet(this.schemeVersion);
                JsonNode jsonObject = null;
                if (!StringUtil.isEmpty(stdVersion)){
                    jsonObject = dispatch.fecthData(patient, adapterDataSet,stdVersion);
                }
                if (StringUtil.isEmpty(jsonObject)) {
                    continue;
                }
@ -410,6 +418,7 @@ public class CrawlerManager {
            stdFlg = true;
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

+ 2 - 2
hos-rest/src/main/java/com/yihu/hos/rest/services/crawler/DataCollectDispatcher.java

@ -229,7 +229,7 @@ public class DataCollectDispatcher {
     * @param adapterDataSet
     * @return
     */
    public JsonNode fecthData(Patient patient, AdapterDataSet adapterDataSet) {
    public JsonNode fecthData(Patient patient, AdapterDataSet adapterDataSet,String stdVersion) {
        try {
            ObjectMapper mapper = new ObjectMapper();
            List<EhrCondition> queryParams = new ArrayList<>();
@ -276,7 +276,7 @@ public class DataCollectDispatcher {
                jsonObject.put("event_no", patient.getEventNo());
                String agencyCode = patient.getOrgCode();
                jsonObject.put("org_code", agencyCode);
                jsonObject.put("inner_version", SysConfig.getInstance().getVersionMap().get(patient.getOrgCode()));
                jsonObject.put("inner_version", stdVersion);
                jsonObject.put("create_date", DateUtil.getUtcDate(new Date()));
                jsonObject.put("event_time", DateUtil.getUtcDate(patient.getReferenceTime(),DateUtil.DEFAULT_YMDHMSDATE_FORMAT));//DateUtil.toString(patient.getReferenceTime(), DateUtil.DEFAULT_YMDHMSDATE_FORMAT)
                if (StringUtil.isEmpty(patient.getReUploadFlg())) {

+ 2 - 2
hos-rest/src/main/java/com/yihu/hos/rest/services/crawler/EsbHttp.java

@ -177,11 +177,11 @@ public class EsbHttp {
                    SysConfig.getInstance().getPublicKeyMap().put(orgCode, publicKey);
                    return publicKey;
                } else {
                    logger.info("获取公钥失败,返回未包含publicKey。");
                    logger.info("获取公钥失败,返回未包含publicKey。机构代码:"+orgCode);
                    return null;
                }
            } else {
                String msg = "获取公钥失败。";
                String msg = "获取公钥失败。机构代码:"+orgCode;
                if (response != null) {
                    msg += "(错误代码:" + response.getStatusCode() + ",错误信息:" + response.getBody() + ")";

+ 5 - 1
hos-rest/src/main/java/com/yihu/hos/rest/services/crawler/PatientCDAUpload.java

@ -73,7 +73,11 @@ public class PatientCDAUpload {
            String pwd = uuidPwd.toString();
            String publicKey = SysConfig.getInstance().getPublicKeyMap().get(patient.getOrgCode());
            if(publicKey== null ||  publicKey.length() == 0) {
                publicKey = EsbHttp.getPublicKey(patient.getOrgCode());
                publicKey = EsbHttp.getPublicKey(SysConfig.orgcode);
                if (publicKey==null){
                    System.out.println("接口获取到的publicKey为空,orgCode:"+SysConfig.orgcode);
                    return null;
                }
                SysConfig.getInstance().getPublicKeyMap().put(patient.getOrgCode(), publicKey);
            }

+ 17 - 1
hos-rest/src/main/java/com/yihu/hos/rest/services/standard/adapter/AdapterDatasetService.java

@ -8,6 +8,7 @@ import com.yihu.hos.core.datatype.StringUtil;
import com.yihu.hos.rest.models.standard.adapter.AdapterDatasetModel;
import com.yihu.hos.rest.models.standard.adapter.AdapterDictModel;
import com.yihu.hos.rest.models.standard.adapter.AdapterMetadataModel;
import com.yihu.hos.rest.models.standard.adapter.AdapterSchemeModel;
import com.yihu.hos.rest.models.standard.bo.AdapterVersion;
import com.yihu.hos.rest.models.standard.bo.StandardVersion;
import com.yihu.hos.rest.models.standard.standard.StdDataSetModel;
@ -24,7 +25,6 @@ import com.yihu.hos.web.framework.util.sql.SqlCreator;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
@Service("AdapterDatasetService")
@ -604,4 +604,20 @@ public class AdapterDatasetService extends SQLGeneralDAO {
        }
    }
    public String  getStdVersionByAdapterDataSet(String adapterVersion) {
        try {
            SqlCreator sqlCreator = new SqlCreator(AdapterSchemeModel.class);
            String sql = "select a.* from adapter_scheme a " +
                    "WHERE a.id =(SELECT b.scheme_id from adapter_scheme_version b WHERE b.version='"+ adapterVersion +"');";
            AdapterSchemeModel model = super.queryObjBySql(sql,AdapterSchemeModel.class);
//            query.setParameter(0,adapterVersion);
//            List<String> list = query.list();
            return model.getStdVersion();
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
}

+ 1 - 1
hos-rest/src/main/resources/config/http.properties

@ -6,7 +6,7 @@ httpCouldUrl = http://192.168.1.221:10400/api/v1.0
  #https://172.19.103.73:443/api/v1.0
sslKeystore = D:/tomcat.keystore
sslKeystore = /usr/local/esb/tomcat.keystore
sslPassword = 123456
clientId = zkGuSIm2Fg
clientKey = emtHdVNJbTJGZzpnUGR2VFJBWVVoc2tjaHht

+ 7 - 0
hos-rest/src/test/java/com/yihu/hos/rest/HosRestApplicationTests.java

@ -1,18 +1,25 @@
package com.yihu.hos.rest;
import com.yihu.hos.rest.services.standard.adapter.AdapterDatasetService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import javax.annotation.Resource;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = HosRestApplication.class)
@WebAppConfiguration
public class HosRestApplicationTests {
	@Resource(name = AdapterDatasetService.BEAN_ID)
	private AdapterDatasetService adapterDatasetService;
	@Test
	public void contextLoads() {
		String stdVersionByAdapterDataSet = adapterDatasetService.getStdVersionByAdapterDataSet("592fe4e5be63");
		System.out.println(stdVersionByAdapterDataSet);
	}
}