/// <summary>
        /// 保存处方信息
        /// </summary>
        /// <param name="patListId">处方头id</param>
        /// <param name="list">处方数据</param>
        /// <param name="presType">处方类型</param>
        /// <returns>true成功</returns>
        public bool SavePrescriptionData(int patListId, List <Prescription> list, int presType)
        {
            //List<CardDataSourceFrequency> FrequencyList = GetFrequency();
            List <OPD_PresMouldDetail> detailList = new List <OPD_PresMouldDetail>();

            //构造处方明细表
            foreach (Prescription pres in list)
            {
                OPD_PresMouldDetail detailModel = new OPD_PresMouldDetail();
                detailModel.PresMouldDetailID = pres.PresListId; //?
                detailModel.PresMouldHeadID   = patListId;       //?  //处方头ID
                detailModel.PresNO            = pres.PresNo;
                detailModel.GroupID           = pres.Group_Id;
                detailModel.GroupSortNO       = pres.GroupSortNO;//?
                detailModel.ItemID            = pres.Item_Id;
                detailModel.ItemName          = pres.Item_Name;
                detailModel.StatID            = ConvertDataExtend.ToInt32(pres.StatItem_Code, 0);//?
                detailModel.Spec         = pres.Standard;
                detailModel.Dosage       = pres.Usage_Amount;
                detailModel.DosageUnit   = pres.Usage_Unit;
                detailModel.Factor       = pres.Usage_Rate;
                detailModel.ChannelID    = pres.Usage_Id;
                detailModel.FrequencyID  = pres.Frequency_Id;
                detailModel.Entrust      = pres.Entrust;
                detailModel.DoseNum      = pres.Dosage;
                detailModel.ChargeAmount = pres.Amount;
                detailModel.ChargeUnit   = pres.Unit;
                detailModel.Price        = pres.Sell_Price;
                detailModel.Days         = pres.Days;

                detailModel.PresAmount     = pres.Item_Amount;
                detailModel.PresAmountUnit = pres.Item_Unit;
                detailModel.PresFactor     = pres.Item_Rate;

                detailModel.ExecDeptID = pres.Dept_Id;

                detailList.Add(detailModel);
            }

            Action <ClientRequestData> requestAction = ((ClientRequestData request) =>
            {
                request.AddData(detailList);
            });
            ServiceResponseData retData = InvokeWcfService("OPProject.Service", "PresTemplateController", "SavePresTemplateData", requestAction);
            bool bRtn = retData.GetData <bool>(0);

            return(bRtn);
        }
        /// <summary>
        /// 更改处方号和组号
        /// </summary>
        /// <param name="data">处方列表</param>
        /// <returns>true成功</returns>
        public bool  UpdatePresNoAndGroupId(List <Prescription> data)
        {
            List <OPD_PresMouldDetail> list = new List <OPD_PresMouldDetail>();

            for (int i = 0; i < data.Count; i++)
            {
                OPD_PresMouldDetail model = new OPD_PresMouldDetail();
                model.PresMouldDetailID = data[i].PresListId;
                model.PresNO            = data[i].PresNo;
                model.GroupID           = data[i].Group_Id;
                list.Add(model);
            }

            Action <ClientRequestData> requestAction = ((ClientRequestData request) =>
            {
                request.AddData(list);
            });
            ServiceResponseData retData = InvokeWcfService("OPProject.Service", "PresTemplateController", "UpdatePresNoAndGroupId", requestAction);
            bool bRtn = retData.GetData <bool>(0);

            return(bRtn);
        }
        /// <summary>
        /// 处方模板另存为
        /// </summary>
        /// <param name="newMould">处方模板头信息</param>
        /// <param name="presList">处方明细信息</param>
        /// <returns>true成功</returns>
        public bool AsSavePresTemplate(OPD_PresMouldHead newMould, List <OPD_PresDetail> presList)
        {
            BindDb(newMould);
            int mouId = newMould.save();

            foreach (OPD_PresDetail pres in presList)
            {
                OPD_PresMouldDetail newDetail  = new OPD_PresMouldDetail();
                OPD_PresDetail      presDetail = NewDao <IOPDDao>().GetPresDetail(pres.PresDetailID);
                newDetail.PresMouldHeadID = mouId;
                newDetail.PresNO          = 1;
                newDetail.Price           = presDetail.Price;
                newDetail.ChargeAmount    = presDetail.ChargeAmount;
                newDetail.ChannelID       = presDetail.ChannelID;
                newDetail.Days            = presDetail.Days;
                newDetail.Dosage          = presDetail.Dosage;
                newDetail.DosageUnit      = presDetail.DosageUnit;
                newDetail.DoseNum         = presDetail.DoseNum;
                newDetail.Entrust         = presDetail.Entrust;
                newDetail.ExecDeptID      = presDetail.ExecDeptID;
                newDetail.Factor          = presDetail.Factor;
                newDetail.FrequencyID     = presDetail.FrequencyID;
                newDetail.GroupID         = presDetail.GroupID;
                newDetail.GroupSortNO     = presDetail.GroupSortNO;
                newDetail.ItemID          = presDetail.ItemID;
                newDetail.ItemName        = presDetail.ItemName;
                newDetail.PresAmount      = presDetail.PresAmount;
                newDetail.PresAmountUnit  = presDetail.PresAmountUnit;
                newDetail.PresFactor      = presDetail.PresFactor;
                newDetail.Spec            = presDetail.Spec;
                newDetail.StatID          = presDetail.StatID;
                BindDb(newDetail);
                newDetail.save();
            }

            return(true);
        }
Пример #4
0
        /// <summary>
        /// 保存事件
        /// </summary>
        /// <param name="sender">控件对象</param>
        /// <param name="e">事件参数</param>
        private void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                DataTable dt = dgFee.DataSource as DataTable;
                if (dt == null || dt.Rows.Count == 0)
                {
                    MessageBoxEx.Show("没有可保存的数据");
                    return;
                }

                List <OPD_PresMouldDetail> mouldList = new List <OPD_PresMouldDetail>();
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    if (dt.Rows[i]["ItemID"] == DBNull.Value)
                    {
                        continue;
                    }

                    DataRow             dr           = dTShowCard.Select("ItemID=" + dt.Rows[i]["ItemID"].ToString()).FirstOrDefault();
                    OPD_PresMouldDetail mouldDetatil = new OPD_PresMouldDetail();
                    if (!string.IsNullOrEmpty(dt.Rows[i]["PresMouldDetailID"].ToString()))
                    {
                        mouldDetatil.PresMouldDetailID = Convert.ToInt32(dt.Rows[i]["PresMouldDetailID"].ToString());
                    }

                    mouldDetatil.ChannelID       = 0;
                    mouldDetatil.ChargeAmount    = Convert.ToDecimal(dt.Rows[i]["PresAmount"]);
                    mouldDetatil.ChargeUnit      = dt.Rows[i]["PresAmountUnit"].ToString();
                    mouldDetatil.StatID          = 1;
                    mouldDetatil.Price           = Convert.ToDecimal(dt.Rows[i]["Price"]);
                    mouldDetatil.PresNO          = 1;
                    mouldDetatil.PresMouldHeadID = Convert.ToInt32(treWestDrug.SelectedNode.Name);
                    mouldDetatil.PresFactor      = 1;
                    mouldDetatil.PresAmountUnit  = dt.Rows[i]["PresAmountUnit"].ToString();
                    mouldDetatil.PresAmount      = Convert.ToDecimal(dt.Rows[i]["PresAmount"]);
                    mouldDetatil.GroupID         = 1;
                    mouldDetatil.GroupSortNO     = 1;
                    mouldDetatil.ItemID          = Convert.ToInt32(dt.Rows[i]["ItemID"].ToString());
                    mouldDetatil.ItemName        = dt.Rows[i]["ItemName"].ToString();
                    mouldDetatil.Days            = 1;
                    mouldDetatil.DosageUnit      = dt.Rows[i]["PresAmountUnit"].ToString();
                    mouldDetatil.DoseNum         = 0;
                    mouldDetatil.Dosage          = Convert.ToDecimal(dt.Rows[i]["PresAmount"]);
                    mouldDetatil.Spec            = string.Empty;
                    if (dr != null)
                    {
                        mouldDetatil.ExecDeptID = Convert.ToInt32(dr["ExecDeptId"]);
                    }

                    mouldList.Add(mouldDetatil);
                }

                InvokeController("SaveDetail", mouldList);
                InvokeController("LoadFee", treWestDrug.SelectedNode.Name);
                SetGridEdit(1);
            }
            catch (Exception ex)
            {
                MessageBoxEx.Show(ex.Message);
            }
        }