/// <summary>
        /// 增加一个医院组合项目
        /// </summary>
        public void AddComplexItemByHospital(ComplexItem complexItem)
        {
            if (complexItem.Details.Count == 0)
            {
                throw new CustomException("组合项目的子项目不能为空");
            }
            Model.BASE_COMPLEX_ITEM base_complex_item = new HIS.Model.BASE_COMPLEX_ITEM( );

            base_complex_item.COMPLEX_NAME  = complexItem.ITEM_NAME;
            base_complex_item.ITEM_UNIT     = complexItem.ITEM_UNIT;
            base_complex_item.PRICE         = complexItem.PRICE;
            base_complex_item.PY_CODE       = complexItem.PY_CODE;
            base_complex_item.WB_CODE       = complexItem.WB_CODE;
            base_complex_item.STATITEM_CODE = complexItem.STATITEM_CODE;
            base_complex_item.VALID_FLAG    = complexItem.VALID_FLAG;
            try
            {
                oleDb.BeginTransaction( );
                base_complex_item.COMPLEX_ID = BindEntity <Model.BASE_COMPLEX_ITEM> .CreateInstanceDAL(oleDb).Add(base_complex_item);

                decimal cost = 0;
                foreach (ComplexDetailItem detail in complexItem.Details)
                {
                    if (detail.ITEM_ID == 0) //2010-06-03 组合项目增加明细时,名称为空时,数据库里会增加一条空的记录  heyan
                    {
                        continue;
                    }
                    Model.BASE_COMPLEX_DETAIL base_complex_detail = new HIS.Model.BASE_COMPLEX_DETAIL( );
                    base_complex_detail.COMPLEX_ID      = base_complex_item.COMPLEX_ID;
                    base_complex_detail.NUM             = detail.Num;
                    base_complex_detail.SERVICE_ITEM_ID = detail.ITEM_ID;
                    cost += base_complex_detail.NUM * detail.PRICE;

                    BindEntity <Model.BASE_COMPLEX_DETAIL> .CreateInstanceDAL(oleDb).Add(base_complex_detail);
                }
                //if ( complexItem.PRICE > cost )
                //{
                //    throw new CustomException( "定义的价格不能高于明细总价" );
                //}

                Model.BASE_HOSPITAL_ITEMS base_hospital_items = new HIS.Model.BASE_HOSPITAL_ITEMS( );
                base_hospital_items.COMPLEX_ID = base_complex_item.COMPLEX_ID;
                base_hospital_items.ITEM_ID    = base_complex_item.COMPLEX_ID;
                BindEntity <Model.BASE_HOSPITAL_ITEMS> .CreateInstanceDAL(oleDb).Add(base_hospital_items);

                oleDb.CommitTransaction( );
            }
            catch (CustomException ce)
            {
                oleDb.RollbackTransaction( );
                throw ce;
            }
            catch (Exception err)
            {
                oleDb.RollbackTransaction( );
                throw new CustomException("新增组合项目发生错误!");
            }
        }
        /// <summary>
        /// 更新组合项目
        /// </summary>
        /// <param name="complexItem"></param>
        public void UpdateComplexItemByHospital(ComplexItem complexItem)
        {
            if (complexItem.Details.Count == 0)
            {
                throw new CustomException("组合项目的子项目不能为空");
            }
            Model.BASE_COMPLEX_ITEM base_complex_item = null;

            base_complex_item = BindEntity <Model.BASE_COMPLEX_ITEM> .CreateInstanceDAL(oleDb).GetModel(Tables.base_complex_item.COMPLEX_ID + oleDb.EuqalTo( ) + complexItem.ITEM_ID);

            if (base_complex_item == null)
            {
                throw new CustomException("读取组合项目失败!");
            }

            base_complex_item.COMPLEX_NAME  = complexItem.ITEM_NAME;
            base_complex_item.ITEM_UNIT     = complexItem.ITEM_UNIT;
            base_complex_item.PRICE         = complexItem.PRICE;
            base_complex_item.PY_CODE       = complexItem.PY_CODE;
            base_complex_item.WB_CODE       = complexItem.WB_CODE;
            base_complex_item.STATITEM_CODE = complexItem.STATITEM_CODE;
            base_complex_item.VALID_FLAG    = complexItem.VALID_FLAG;
            try
            {
                oleDb.BeginTransaction( );
                BindEntity <Model.BASE_COMPLEX_ITEM> .CreateInstanceDAL(oleDb).Update(Tables.base_complex_item.COMPLEX_ID + oleDb.EuqalTo( ) + complexItem.ITEM_ID,
                                                                                      Tables.base_complex_item.COMPLEX_NAME + oleDb.EuqalTo( ) + "'" + complexItem.ITEM_NAME + "'",
                                                                                      Tables.base_complex_item.ITEM_UNIT + oleDb.EuqalTo( ) + "'" + complexItem.ITEM_UNIT + "'",
                                                                                      Tables.base_complex_item.PRICE + oleDb.EuqalTo( ) + complexItem.PRICE,
                                                                                      Tables.base_complex_item.PY_CODE + oleDb.EuqalTo( ) + "'" + complexItem.PY_CODE + "'",
                                                                                      Tables.base_complex_item.STATITEM_CODE + oleDb.EuqalTo( ) + "'" + complexItem.STATITEM_CODE + "'",
                                                                                      Tables.base_complex_item.VALID_FLAG + oleDb.EuqalTo( ) + complexItem.VALID_FLAG,
                                                                                      Tables.base_complex_item.WB_CODE + oleDb.EuqalTo( ) + "'" + complexItem.WB_CODE + "'");

                decimal cost = 0;
                BindEntity <Model.BASE_COMPLEX_DETAIL> .CreateInstanceDAL(oleDb).Delete(Tables.base_complex_item.COMPLEX_ID + oleDb.EuqalTo( ) + complexItem.ITEM_ID);

                foreach (ComplexDetailItem detail in complexItem.Details)
                {
                    if (detail.ITEM_ID == 0) //2010-06-03 组合项目增加明细时,名称为空时,数据库里会增加一条空的记录  heyan
                    {
                        continue;
                    }
                    Model.BASE_COMPLEX_DETAIL base_complex_detail = new HIS.Model.BASE_COMPLEX_DETAIL( );
                    base_complex_detail.COMPLEX_ID      = base_complex_item.COMPLEX_ID;
                    base_complex_detail.NUM             = detail.Num;
                    base_complex_detail.SERVICE_ITEM_ID = detail.ITEM_ID;
                    cost += base_complex_detail.NUM * detail.PRICE;

                    BindEntity <Model.BASE_COMPLEX_DETAIL> .CreateInstanceDAL(oleDb).Add(base_complex_detail);
                }
                //if ( complexItem.PRICE > cost )
                //{
                //    throw new CustomException( "定义的价格不能高于明细总价" );
                //}

                oleDb.CommitTransaction( );
            }
            catch (CustomException ce)
            {
                oleDb.RollbackTransaction( );
                throw ce;
            }
            catch
            {
                oleDb.RollbackTransaction( );
                throw new CustomException("更新组合项目发生错误!");
            }
        }