package com.yihu.ehr.model.entity.adapter; import com.yihu.ehr.dbhelper.jdbc.DBHelper; import com.yihu.ehr.model.PatientIdentity; import com.yihu.ehr.model.entity.BaseEntity; import com.yihu.ehr.model.entity.standard.StdMetaDataT; import com.yihu.ehr.util.operator.CollectionUtil; import org.json.JSONObject; import java.util.*; /** * @author Air * @version 1.0 * @created 2015.08.11 11:29 */ public class AdapterDataSet extends BaseEntity { private List adapterMetaDataList; private AdapterDataSetT adapterDataSetT; private Map adapterMetaDataMap; private List stdMetaDataList; private Map stdMetaDataMap; private String eventNoCode; public AdapterDataSet(AdapterDataSetT adapterDataSetT, DBHelper db) { setDBHelper(db); this.adapterDataSetT = adapterDataSetT; getAdapterMetaDataList(); getAdapterMetaDataMap(); getStdMetaDataList(); getStdMetaDataMap(); } public AdapterDataSetT getAdapterDataSetT() { return adapterDataSetT; } public List getAdapterMetaDataList() { if (CollectionUtil.isEmpty(adapterMetaDataList)) { adapterMetaDataList = new ArrayList<>(); List adapterMetaDataTList = db.query( "select id, std_metadata_id, std_metadata_code, org_metadata_code from adapter_metadata where adapter_dataset_id = ?", adapterDataSetT.getId()); if (!CollectionUtil.isEmpty(adapterMetaDataTList)) { for (JSONObject json : adapterMetaDataTList) { AdapterMetaDataT adapterMetaDataT = new AdapterMetaDataT(); adapterMetaDataT.setId(json.getInt("id")); adapterMetaDataT.setStdMetadataId(json.getInt("std_metadata_id")); adapterMetaDataT.setStdMetadataCode(json.getString("std_metadata_code")); if (!json.isNull("org_metadata_code")) { adapterMetaDataT.setOrgMetadataCode(json.getString("org_metadata_code")); } adapterMetaDataList.add(new AdapterMetaData(adapterMetaDataT, db)); } } } return adapterMetaDataList; } public List getStdMetaDataList() { if (CollectionUtil.isEmpty(stdMetaDataList)) { stdMetaDataList = new ArrayList<>(); List stdMetaDataTList = db.query( "select id, code, dict_code from std_metadata where dataset_id = ?", adapterDataSetT.getStdDatasetId()); if (!CollectionUtil.isEmpty(stdMetaDataTList)) { for (JSONObject json : stdMetaDataTList) { StdMetaDataT stdMetaDataT = new StdMetaDataT(); stdMetaDataT.setId(json.getInt("id")); stdMetaDataT.setCode(json.getString("code")); if (!json.isNull("dict_code")) { stdMetaDataT.setDictCode(json.getString("dict_code")); } stdMetaDataList.add(stdMetaDataT); } } } return stdMetaDataList; } public Map getAdapterMetaDataMap() { if (CollectionUtil.isEmpty(adapterMetaDataList)) { getAdapterMetaDataList(); } if (!CollectionUtil.isEmpty(adapterMetaDataList)) { if (adapterMetaDataMap == null) { adapterMetaDataMap = new HashMap<>(); for (AdapterMetaData adapterMetaData : adapterMetaDataList) { adapterMetaDataMap.put(adapterMetaData.getAdapterMetaDataT().getStdMetadataCode(), adapterMetaData); } } } return adapterMetaDataMap; } public Map getStdMetaDataMap() { if (CollectionUtil.isEmpty(stdMetaDataList)) { getStdMetaDataList(); } if (!CollectionUtil.isEmpty(stdMetaDataList)) { if (stdMetaDataMap == null) { stdMetaDataMap = new HashMap<>(); for (StdMetaDataT stdMetaDataT : stdMetaDataList) { stdMetaDataMap.put(stdMetaDataT.getCode(), stdMetaDataT); } } } return stdMetaDataMap; } public StdMetaDataT getStdMetaData(String code) { if (getStdMetaDataMap() != null) { return getStdMetaDataMap().get(code); } return null; } public boolean isHavePatientID() { return findPatientIdentity(PatientIdentity.getPatientIDCode()); } public boolean isHaveEventNo() { Set eventNoSet = PatientIdentity.getEventNoSet(); for (String eventNo : eventNoSet) { if (findPatientIdentity(eventNo)) { eventNoCode = eventNo; return true; } } return false; } public boolean isHaveLocalCardNo() { return findPatientIdentity(PatientIdentity.getLocalCardNoCode()); } public boolean isHaveIdCard() { return findPatientIdentity(PatientIdentity.getIdCardCode()); } public boolean findPatientIdentity(String code) { if (getStdMetaData(code) == null) { return false; } return true; } public String getEventNoCode() { return eventNoCode; } }