浏览代码

推模式采集

hzp 9 年之前
父节点
当前提交
6511db9d09

+ 33 - 23
Hos-resource/src/main/java/com/yihu/ehr/datacollect/service/DatapushService.java

@ -84,40 +84,50 @@ public class DatapushService implements IDatapushService {
            List<AdapterMetadataResultDetailModel> list = stdService.getDatacolByScheme(version,datasetId);
            if(list!=null && list.size()>0)
            {
                JSONObject data = new JSONObject(dataString);
                JSONObject obj = new JSONObject();
                //标准转换
                for(AdapterMetadataResultDetailModel metadata : list)
                JSONArray array = new JSONArray(dataString);
                List<JSONObject> dataList = new ArrayList<>();
                if(array!=null && array.length()>0)
                {
                    String stdColName = metadata.getStdMetadataCode();
                    String adapterColName = metadata.getAdapterMetadataCode();
                    if(data.has(adapterColName))
                    for (int i=0;i<array.length();i++)
                    {
                        String val = data.optString(adapterColName);
                        String newValue =val;
                        //判断是否字典
                        if(metadata.getAdapterDictId()!=null&&metadata.getAdapterDictId()!=0)
                        JSONObject obj = new JSONObject();
                        JSONObject data = (JSONObject)array.get(i);
                        //标准转换
                        for(AdapterMetadataResultDetailModel metadata : list)
                        {
                            //获取字典列表
                            List dictString = stdService.getDictByScheme(version,metadata.getAdapterDictId().toString());
                            JSONArray dictAdapterArray = new JSONArray(dictString);
                            String type = "";
                            if(metadata.getAdapterDataType()!=null)
                            String stdColName = metadata.getStdMetadataCode();
                            String adapterColName = metadata.getAdapterMetadataCode();
                            if(data.has(adapterColName))
                            {
                                type = metadata.getAdapterDataType().toString();
                                String val = data.optString(adapterColName);
                                String newValue =val;
                                //判断是否字典
                                if(metadata.getAdapterDictId()!=null&&metadata.getAdapterDictId()!=0)
                                {
                                    //获取字典列表
                                    List dictString = stdService.getDictByScheme(version,metadata.getAdapterDictId().toString());
                                    JSONArray dictAdapterArray = new JSONArray(dictString);
                                    String type = "";
                                    if(metadata.getAdapterDataType()!=null)
                                    {
                                        type = metadata.getAdapterDataType().toString();
                                    }
                                    newValue = translateDictValue(val,type,dictAdapterArray);
                                }
                                obj.put(stdColName,newValue);
                            }
                            newValue = translateDictValue(val,type,dictAdapterArray);
                        }
                        obj.put(stdColName,newValue);
                        //org_code字段
                        obj.put("RSCOM_ORG_CODE",orgCode);
                        dataList.add(obj);
                    }
                }
                //org_code字段
                obj.put("RSCOM_ORG_CODE",orgCode);
                //MongoDB入库
                boolean b = mongo.insert(datasetCode,obj);
                boolean b = mongo.insert(datasetCode,dataList);
                if(!b)
                {

+ 10 - 6
Hos-resource/src/main/java/com/yihu/ehr/resource/service/impl/StdService.java

@ -88,7 +88,7 @@ public class StdService implements IStdService {
     */
    public List<AdapterDictEntryModel> getDictByScheme(String schemeVersion, String dictId) {
        Map<String,Object> map = new HashMap<String,Object>();
        map.put("adapterDictId", dictId);
        map.put("stdDictId", dictId);
        AdapterVersion version = new AdapterVersion(schemeVersion);
        return dictentryService.getList(AdapterDictEntryModel.class, version.getDictEntryTableName(), net.sf.json.JSONObject.fromObject(map).toString(), null, null, null);
    }
@ -99,7 +99,7 @@ public class StdService implements IStdService {
    public DictionaryResult getDictResultByVersion(String schemeVersion, String dictId) throws Exception {
        DictionaryResult re = new DictionaryResult();
        Map<String,Object> map = new HashMap<String,Object>();
        map.put("adapterDictId", dictId);
        map.put("stdDictId", dictId);
        AdapterVersion version = new AdapterVersion(schemeVersion);
        List<AdapterDictEntryModel> dictentryList =  dictentryService.getList(AdapterDictEntryModel.class, version.getDictEntryTableName(), net.sf.json.JSONObject.fromObject(map).toString(), null, null, null);
@ -108,10 +108,14 @@ public class StdService implements IStdService {
        if(!CollectionUtil.isEmpty(dictentryList)) {
            for(AdapterDictEntryModel adapterDictEntryModel : dictentryList)
            {
                DictItem dict = new  DictItem();
                dict.setCode(adapterDictEntryModel.getAdapterEntryCode());
                dict.setValue(adapterDictEntryModel.getAdapterEntryValue());
                list.add(dict);
                String code = adapterDictEntryModel.getAdapterEntryCode();
                if(code!=null)
                {
                    DictItem dict = new  DictItem();
                    dict.setCode(code);
                    dict.setValue(adapterDictEntryModel.getAdapterEntryValue());
                    list.add(dict);
                }
            }
        }
        re.setDetailModelList(list);