Browse Source

mini项目采集、下载标准包线程bug调试与修改

hzp 9 years ago
parent
commit
6e58e025f6

File diff suppressed because it is too large
+ 6 - 6
Hos-Resource-Mini/src/main/java/com.yihu.ehr/controller/SystemController.java


+ 1 - 0
Hos-Resource-Mini/src/main/java/com.yihu.ehr/model/entity/adapter/AdapterDict.java

@ -34,6 +34,7 @@ public class AdapterDict extends BaseEntity {
        if (json == null || json.isNull("std_dict_item_code")) {
            return new String(INVALID_ADAPTER_DICT);
        }
        return json.getString("std_dict_item_code");
    }

+ 1 - 1
Hos-Resource-Mini/src/main/java/com.yihu.ehr/model/entity/adapter/AdapterMetaData.java

@ -65,7 +65,7 @@ public class AdapterMetaData extends BaseEntity {
                if (!json.isNull("dict_code")) {
                    stdMetaDataT.setDictCode(json.getString("dict_code"));
                }
                if (!json.isNull("dict_value_type")) {
                if (!json.isNull("dict_value_type") && json.getString("dict_value_type").length()>0) {
                    stdMetaDataT.setDictValueType(json.getInt("dict_value_type"));
                }
            }

+ 6 - 4
Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/crawler/DataCollectDispatcher.java

@ -56,6 +56,12 @@ public class DataCollectDispatcher {
                    if (jsonObject == null) {
                        continue;
                    }
                    if (jsonObject != null && !StringUtil.isEmpty(jsonObject)) {
                        dataSetMap.put(adapterDataSet.getAdapterDataSetT().getStdDatasetCode(), adapterDataSet);
                        dataList.add(jsonObject);
                    }
                    //注册病人
                    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()))) {
@ -63,10 +69,6 @@ public class DataCollectDispatcher {
                            }
                        }
                    }
                    if (jsonObject != null && !StringUtil.isEmpty(jsonObject)) {
                        dataSetMap.put(adapterDataSet.getAdapterDataSetT().getStdDatasetCode(), adapterDataSet);
                        dataList.add(jsonObject);
                    }
                }
            }
            LogUtil.info("采集病人成功,patient_id:" + patient.getPatientId() + ", event_no:" + patient.getEventNo());

+ 7 - 1
Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/patient/PatientCDAUpload.java

@ -68,7 +68,13 @@ public class PatientCDAUpload {
            String filePath = patientCDAIndex.createIndex(PatientCDAIndex.IndexType.ZIP, PatientCDAIndex.FileType.ZIP);
            UUID uuidPwd = UUID.randomUUID();
            String pwd = uuidPwd.toString();
            Key key = RSA.genPublicKey(SysConfig.getInstance().getPublicKey());
            String PublicKey = SysConfig.getInstance().getPublicKey();
            if(PublicKey== null ||  PublicKey.length() == 0) {
                PublicKey = EsbHttp.getPublicKey();
                SysConfig.getInstance().setPublicKey(PublicKey);
            }
            Key key = RSA.genPublicKey(PublicKey);
            if (key == null) {
                LogUtil.fatal("压缩文件错误,获取公钥错误.");
                return null;

+ 8 - 3
Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/standard/StandardManager.java

@ -165,9 +165,8 @@ public class StandardManager {
                if (re.has("password")&&re.has("url")) {
                    String encryptPwd = re.getString("password");
                    String zipContent = re.getString("url");
                    byte[] decode = Base64.decode(zipContent);
                    String downloadFilePath = SysConfig.getInstance().getTempFile() + "/" + Constants.STANDARD_ZIP;
                    boolean writeFile = FileUtil.writeFile(downloadFilePath, decode, "UTF-8");
                    boolean writeFile = FileUtil.writeFile(downloadFilePath, zipContent, "UTF-8");
                    if (!writeFile) {
                        LogUtil.fatal("下载标准包失败,生成本地临时文件错误.");
                        return null;
@ -192,7 +191,13 @@ public class StandardManager {
    private boolean unpack(String encryptPwd) {
        try {
            Key key = RSA.genPublicKey(sysConfig.getPublicKey());
            String publicKey = sysConfig.getPublicKey();
            if(publicKey==null ||publicKey.length()==0)
            {
                publicKey = EsbHttp.getPublicKey();
                sysConfig.setPublicKey(publicKey);
            }
            Key key = RSA.genPublicKey(publicKey);
            if (key == null) {
                LogUtil.fatal("解压文件错误,获取公钥错误.");
                return false;

+ 37 - 25
Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/httpclient/EsbHttp.java

@ -226,34 +226,46 @@ public class EsbHttp {
     */
    public static Boolean register(Patient patient, String data, String token) {
        try {
            String idCord = patient.getIdCard();
            if(StringUtil.isEmpty(idCord))
            JSONObject json = new JSONObject(data);
            String colName = SysConfig.registerIdCardNo;
            if(json!=null && json.has("data"))
            {
                LogUtil.info("注册病人信息请求失败:病人无身份证,patient_id=" + patient.getPatientId() + ", event_no=" + patient.getEventNo());
                return false;
            }
            String registerMethod = HttpHelper.defaultHttpUrl + "/patients/"+idCord;
            if (StringUtil.isEmpty(data)) {
                LogUtil.info("注册病人信息请求失败:无具体病人信息,patient_id=" + patient.getPatientId() + ", event_no=" + patient.getEventNo());
                return false;
            }
            Map<String, Object> paramMap = new HashMap<>();
            paramMap.put("demographic_id", idCord);
            paramMap.put("json", data);
            paramMap.put("token", token);
            Response response = HttpHelper.post(registerMethod, paramMap);
                JSONObject p = (JSONObject)json.getJSONArray("data").get(0);
                if(p.has(colName) && p.getString(colName).length()>0)
                {
                    String idCord = p.getString(colName);
                    String registerMethod = HttpHelper.defaultHttpUrl + "/patients/"+idCord;
                    if (StringUtil.isEmpty(data)) {
                        LogUtil.info("注册病人信息请求失败:无具体病人信息,patient_id=" + patient.getPatientId() + ", event_no=" + patient.getEventNo());
                        return false;
                    }
                    Map<String, Object> paramMap = new HashMap<>();
                    paramMap.put("demographic_id", idCord);
                    paramMap.put("json", data);
                    paramMap.put("token", token);
                    Response response = HttpHelper.post(registerMethod, paramMap);
            if (response != null && response.getStatusCode() == HttpStatus.SC_OK) {
                LogUtil.info("注册病人信息成功。patient_id:" + patient.getPatientId() + ", event_no:" + patient.getEventNo());
                return true;
                    if (response != null && response.getStatusCode() == HttpStatus.SC_OK) {
                        LogUtil.info("注册病人信息成功。patient_id:" + patient.getPatientId() + ", event_no:" + patient.getEventNo());
                        return true;
                    }
                    else{
                        String msg = "注册病人信息请求失败。patient_id:" + patient.getPatientId() + ", event_no:" + patient.getEventNo();
                        if(response != null)
                        {
                            msg +="(错误代码:"+ response.getStatusCode() + ",错误信息:"+response.getBody()+")";
                        }
                        LogUtil.info(msg);
                        return false;
                    }
                }
                else{
                    LogUtil.info("注册病人信息请求失败:身份证号码为空,patient_id=" + patient.getPatientId() + ", event_no=" + patient.getEventNo());
                    return false;
                }
            }
            else{
                String msg = "注册病人信息请求失败。patient_id:" + patient.getPatientId() + ", event_no:" + patient.getEventNo();
                if(response != null)
                {
                    msg +="(错误代码:"+ response.getStatusCode() + ",错误信息:"+response.getBody()+")";
                }
                LogUtil.info(msg);
                LogUtil.info("注册病人信息请求失败:传入数据无效,patient_id=" + patient.getPatientId() + ", event_no=" + patient.getEventNo());
                return false;
            }
        }
@ -269,7 +281,7 @@ public class EsbHttp {
     */
    public static boolean upload(Patient patient, File file, String encryptPwd, String token) {
        try {
            String uploadMethod = HttpHelper.defaultHttpUrl + "/json_package";
            String uploadMethod = HttpHelper.defaultHttpUrl + "/packages";
            String fileMd5= MD5.getMd5ByFile(file);
            Map<String, Object> paramMap = new HashMap<>();
            List<NameValuePair> formParams = new ArrayList<>();