/// <summary> /// 初始化科室对应病区数据 /// </summary> /// <param name="sqlExecutor"></param> public void InitializeCorrespondingWards(IDataAccess sqlExecutor) { if ((_correspondingWards == null) || (_correspondingWards.Count == 0)) { _correspondingWards = new Collection <string>(); // 查找对应病区 DataRow[] rows = sqlExecutor.GetRecords( PersistentObjectFactory.GetQuerySentenceByName("SelectDepartmentWardMappings") , String.Format(CultureInfo.CurrentCulture, "DeptID = '{0}'", Code) , true); foreach (DataRow row in rows) { _correspondingWards.Add(row["WardID"].ToString()); } } }
/// <summary> /// 取药品默认的用法、频次、数量及单位 /// </summary> /// <param name="systemFlag">系统标志(区分门诊还是住院)</param> /// <param name="sqlExecutor"></param> /// <returns></returns> public DruggeryOrderContent GetDefaultUsageFrequency(SystemApplyRange systemFlag, IDataAccess sqlExecutor) { if (sqlExecutor == null) { throw new ArgumentNullException(MessageStringManager.GetString("ParameterIsNull", "SQLHelper")); } DataRow dr = sqlExecutor.GetRecord(PersistentObjectFactory.GetQuerySentenceByName("SelectDefUsageOfDruggery") , String.Format(CultureInfo.CurrentCulture, " PlaceID = {0} and Mark in (1400, {1:D})", ProductSerialNo, systemFlag) , true); DruggeryOrderContent result = new DruggeryOrderContent(); if (dr != null) { result.Initialize(dr); } return(result); }
/// <summary> /// 初始化药品默认用法集合(根据剂型) /// </summary> /// <param name="sqlExecutor"></param> public void InitializeDefaultUsageRange(IDataAccess sqlExecutor) { if (sqlExecutor == null) { return; } DataRow dr = sqlExecutor.GetRecord(PersistentObjectFactory.GetQuerySentenceByName("SelectDefUsageRangeByDruggeryForm") , String.Format(CultureInfo.CurrentCulture, " DosageID = '{0}'", Form.Code) , true); if (dr != null) { _defaultUsageRange = dr["UseageID"].ToString(); } else { _defaultUsageRange = ""; } }
/// <summary> /// 克隆对象 /// </summary> /// <returns></returns> internal Object Clone() { return(PersistentObjectFactory.CloneEopBaseObject(this)); }
/// <summary> /// 用传入的DataRow初始化属性(DataRow不需要与对象的结构完全匹配,内部只初始化字段名匹配的属性) /// </summary> /// <param name="sourceRow">包含初始数据的DataRow</param> public void Initialize(DataRow sourceRow) { PersistentObjectFactory.InitializeObjectProperty(this, sourceRow); }
/// <summary> /// /// </summary> /// <param name="sqlName"></param> /// <returns></returns> protected static string GetQuerySentenceFromXml(string sqlName) { return(PersistentObjectFactory.GetQuerySentenceByName(sqlName)); }
/// <summary> /// 以传入对象为母版克隆对象 /// </summary> /// <param name="sourceObj"></param> /// <returns></returns> public static object CloneEopBaseObject(object sourceObj) { if (sourceObj == null) { return(null); } Type objType = sourceObj.GetType(); if (objType.IsValueType) { return(null); } object newObj = Activator.CreateInstance(objType); // 复制属性值 // 取出所有Public属性,如果有Set方法,则赋值 // 如果是Class则递归调用,如果是结构体,则要用默认构造创建 // 获取类所有Public属性 PropertyInfo[] properties = GetProperties(objType); // 如果有BeginInit方法则调用 MethodInfo beginInitMethod = GetMethod(objType, "BeginInit"); if (beginInitMethod != null) { beginInitMethod.Invoke(newObj, null); } object objValue; foreach (PropertyInfo prop in properties) { if (!prop.CanWrite) { continue; } objValue = prop.GetValue(sourceObj, null); if ((prop.PropertyType.IsValueType) || (prop.PropertyType == typeof(string))) { prop.SetValue(newObj, objValue, null); } else if (prop.PropertyType.IsClass) { if (prop.PropertyType.BaseType == typeof(MulticastDelegate)) { prop.SetValue(newObj, objValue, null); } else { object obj = PersistentObjectFactory.CloneEopBaseObject(objValue); prop.SetValue(newObj, obj, null); } } } // 如果有EndInit方法则调用 MethodInfo endInitMethod = GetMethod(objType, "EndInit"); if (endInitMethod != null) { endInitMethod.Invoke(newObj, null); } return(newObj); }