/// <summary> /// 更新医嘱项目 /// </summary> /// <param name="order"></param> public void UpdateOrderItem(OrderItem order) { try { oleDb.BeginTransaction(); string strWhere = Tables.base_order_items.ORDER_ID + oleDb.EuqalTo() + order.ORDER_ID; Base_Order_Items base_order_item = BindEntity <Base_Order_Items> .CreateInstanceDAL(oleDb).GetModel(strWhere); if (base_order_item == null) { throw new Exception("无效的医嘱标识!"); } base_order_item.Book_Date = order.BOOK_DATE; base_order_item.Bz = order.BZ; base_order_item.D_Code = order.D_CODE; base_order_item.Default_Usage = order.DEFAULT_USAGE; base_order_item.Del_Date = order.DEL_DATE; base_order_item.Delete_Bit = order.DELETE_BIT; base_order_item.Item_Id = order.ITEM_ID; if (order.ORDER_TYPE == 7) //说明类医嘱不关联收费项目 { base_order_item.Item_Id = 0; } if (order.MEDICAL_CLASS != 0) { base_order_item.Medical_Class = order.MEDICAL_CLASS; } else { base_order_item.Medical_Class = GetMedicalClass(order.ORDER_TYPE); } base_order_item.Order_Name = order.ORDER_NAME; base_order_item.Order_Type = order.ORDER_TYPE; base_order_item.Order_Unit = order.ORDER_UNIT; base_order_item.Py_Code = order.PY_CODE; base_order_item.Tc_Flag = order.TC_FLAG; base_order_item.Wb_Code = order.WB_CODE; if (order.TC_FLAG == 1) { AddComplexDetail(order); } BindEntity <Base_Order_Items> .CreateInstanceDAL(oleDb).Update(base_order_item); oleDb.CommitTransaction(); } catch (Exception err) { oleDb.RollbackTransaction(); ErrorController.Instance().LogEvent(err); throw new Exception("保存医嘱项目发生错误!"); } }
/// <summary> /// 检查组合项目明细是否已应用 /// </summary> /// <param name="item"></param> /// <returns></returns> private bool CheckItem(Base_Order_Items item) { object obj = null; //string strWhere=Tables.base_order_items.ORDER_NAME+oleDb.EuqalTo()+"'"+item.Order_Name+"'" + // oleDb.And()+Tables.base_order_items.ORDER_TYPE+oleDb.EuqalTo()+ item.Order_Type+ // oleDb.And()+Tables.base_order_items.ITEM_ID+oleDb.EuqalTo()+item.Item_Id; string strWhere = Tables.base_order_items.ITEM_ID + oleDb.EuqalTo() + item.Item_Id; obj = BindEntity <Base_Order_Items> .CreateInstanceDAL(oleDb).GetModel(strWhere); if (obj == null) { return(false); } else { return(true); } }
/// <summary> /// 移除本院医疗服务项目前的引用检查 /// </summary> /// <param name="Item"></param> /// <param name="message"></param> public bool CheckServiceItemReferencedBeforeRemove(ServiceItem Item, out string message) { string strWhere = ""; //1、检查是否被组合项目引用 strWhere = Tables.base_complex_detail.SERVICE_ITEM_ID + oleDb.EuqalTo() + Item.ITEM_ID; BASE_COMPLEX_DETAIL base_complex_detail = BindEntity <BASE_COMPLEX_DETAIL> .CreateInstanceDAL(oleDb).GetModel(strWhere); if (base_complex_detail != null) { strWhere = Tables.base_complex_item.COMPLEX_ID + oleDb.EuqalTo() + base_complex_detail.COMPLEX_ID; BASE_COMPLEX_ITEM base_complex_item = BindEntity <BASE_COMPLEX_ITEM> .CreateInstanceDAL(oleDb).GetModel(strWhere); message = "【" + Item.ITEM_NAME + "】正在被组合项目【" + base_complex_item.COMPLEX_NAME + "】所引用"; return(false); } //2、检查是否被医嘱项目引用 strWhere = Tables.base_order_items.ITEM_ID + oleDb.EuqalTo() + Item.ITEM_ID + oleDb.And() + Tables.base_order_items.TC_FLAG + oleDb.EuqalTo() + "0"; Base_Order_Items base_order_item = BindEntity <Base_Order_Items> .CreateInstanceDAL(oleDb).GetModel(strWhere); if (base_order_item != null) { message = "【" + Item.ITEM_NAME + "】正在被医嘱项目【" + base_order_item.Order_Name + "】所引用"; return(false); } //3、检查是否被用法引用 strWhere = "HSITEM_ID = " + Item.ITEM_ID; DataTable tb = BindEntity <object> .CreateInstanceDAL(oleDb, "BASE_USEAGE_FEE").GetList(strWhere); if (tb.Rows.Count > 0) { message = "【" + Item.ITEM_NAME + "】正在被用法【" + tb.Rows[0]["USE_NAME"].ToString().Trim() + "】联动"; return(false); } message = null; return(true); }
// * 20100604.2.03 组合项目应用到医嘱项目时,组合项目明细也自动应用。 /// <summary> /// 如果是组合项目,自动把组合项目明细应用到医嘱项目。医嘱类型和医技类型和组合项目一样,如果已经存在,则不修改, /// </summary> /// <param name="order"></param> private void AddComplexDetail(OrderItem order) { string strWhere = Tables.base_complex_detail.COMPLEX_ID + oleDb.EuqalTo() + order.ITEM_ID; List <Model.BASE_COMPLEX_DETAIL> details = BindEntity <Model.BASE_COMPLEX_DETAIL> .CreateInstanceDAL(oleDb).GetListArray(strWhere); try { foreach (Model.BASE_COMPLEX_DETAIL detail in details) { Base_Order_Items item = new Base_Order_Items(); item.Book_Date = order.BOOK_DATE; item.Bz = order.BZ; item.Default_Usage = order.DEFAULT_USAGE; item.Medical_Class = order.MEDICAL_CLASS; item.Order_Type = order.ORDER_TYPE; Model.BASE_SERVICE_ITEMS seveice = BindEntity <Model.BASE_SERVICE_ITEMS> .CreateInstanceDAL(oleDb).GetModel(Tables.base_service_items.ITEM_ID + oleDb.EuqalTo() + detail.SERVICE_ITEM_ID); item.Item_Id = seveice.ITEM_ID; item.Order_Name = seveice.ITEM_NAME; item.Order_Unit = seveice.ITEM_UNIT; item.Py_Code = seveice.PY_CODE; item.Wb_Code = seveice.WB_CODE; item.Tc_Flag = 0; if (CheckItem(item)) { continue; } BindEntity <Base_Order_Items> .CreateInstanceDAL(oleDb).Add(item); } } catch (Exception err) { throw new Exception("新增医嘱组合项目明细发生错误!"); } }