package com.yihu.ehr.model.entity.adapter; import com.yihu.ehr.common.constants.DictDataType; import com.yihu.ehr.common.constants.MetaDataType; import com.yihu.ehr.dbhelper.jdbc.DBHelper; import com.yihu.ehr.model.entity.BaseEntity; import com.yihu.ehr.model.entity.standard.StdMetaDataT; import com.yihu.ehr.util.operator.StringUtil; import org.json.JSONObject; /** * @author Air * @version 1.0 * @created 2015.08.11 11:31 */ public class AdapterMetaData extends BaseEntity { private AdapterMetaDataT adapterMetaDataT; private AdapterDict adapterDict; private StdMetaDataT stdMetaDataT; public AdapterMetaData(AdapterMetaDataT adapterMetaDataT, DBHelper db) { setDBHelper(db); this.adapterMetaDataT = adapterMetaDataT; } public AdapterMetaDataT getAdapterMetaDataT() { return adapterMetaDataT; } public AdapterDict getAdapterDict() { if (adapterDict == null) { StdMetaDataT metaDataT = getStdMetaDataT(); if (!StringUtil.isEmpty(metaDataT.getDictCode())) { JSONObject json = db.load("select id, std_dict_code, std_dict_id, org_dict_code,org_dict_id from adapter_dict where std_dict_code = ?", metaDataT.getDictCode()); if (json != null) { AdapterDictT adapterDictT = new AdapterDictT(); adapterDictT.setId(json.getInt("id")); adapterDictT.setStdDictCode(json.getString("std_dict_code")); if (!json.isNull("org_dict_code")) { adapterDictT.setOrgDictCode(json.getString("org_dict_code")); } adapterDictT.setStdDictId(json.getInt("std_dict_id")); if (!json.isNull("org_dict_id")) { adapterDictT.setOrgDictId(json.getInt("org_dict_id")); } adapterDict = new AdapterDict(adapterDictT, db); } } } return adapterDict; } public StdMetaDataT getStdMetaDataT() { if (stdMetaDataT == null) { JSONObject json = db.load("select id, code, dict_code, dict_value_type, type from std_metadata where id = ?", adapterMetaDataT.getStdMetadataId()); if (json != null) { stdMetaDataT = new StdMetaDataT(); stdMetaDataT.setId(json.getInt("id")); if (!json.isNull("code")) { stdMetaDataT.setCode(json.getString("code")); } if (!json.isNull("type")) { stdMetaDataT.setType(json.getString("type")); } if (!json.isNull("dict_code")) { stdMetaDataT.setDictCode(json.getString("dict_code")); } if (!json.isNull("dict_value_type") && json.getString("dict_value_type").length()>0) { stdMetaDataT.setDictValueType(json.getInt("dict_value_type")); } } return stdMetaDataT; } return stdMetaDataT; } public DictDataType getOrgDictDataType() { Integer orgDictDataType = adapterMetaDataT.getOrgDictDataType(); if (orgDictDataType == null){ return DictDataType.VALUE; } return DictDataType.values()[orgDictDataType]; } public DictDataType getStdDictDataType() { if (stdMetaDataT == null) { getStdMetaDataT(); } String dictCode = stdMetaDataT.getDictCode(); String type = stdMetaDataT.getType(); int dictValueType; if (!StringUtil.isEmpty(dictCode) && (type.equals(MetaDataType.S2.name()) || type.equals(MetaDataType.S3.name()))) { dictValueType = DictDataType.CODE.ordinal(); } else { dictValueType = DictDataType.VALUE.ordinal(); } return DictDataType.values()[dictValueType]; } }