Exemple #1
0
        public static bool SavePrescriptionData(int patListId, List <Entity.Prescription> list, int presType)
        {
            if (PrescripttionDbHelper != null)
            {
                return(PrescripttionDbHelper.SavePrescriptionData(patListId, list, presType));
            }
            else
            {
                List <string> sqllist = new List <string>();

                string strsql = @"select ID from emrdb..DATA_PrescriptionList where PatientID ={0} AND OrderClass={1}";
                strsql = string.Format(strsql, patListId, presType);
                object ret    = MidDbHelper.ExecuteScalar(MidDbHelper.EmrHandle, strsql);
                int    headId = ret == DBNull.Value ? 0 : Convert.ToInt32(ret);

                if (headId == 0)//先插入处方头
                {
                    strsql = @"INSERT INTO emrdb..DATA_PrescriptionList
                            ( PatientID ,
                              OrderClass ,
                              OrderTime ,
                              OrderSign ,
                              IsPriority ,
                              ApplyID ,
                              DoctorID
                            )
                    VALUES  ( {0},{1},'{2}',0 ,0 ,0 ,{3})";
                    strsql = string.Format(strsql, patListId, presType, DateTime.Now, list[0].Pres_Doc);
                    headId = MidDbHelper.ExecuteIdentify(MidDbHelper.EmrHandle, strsql);
                }


                //先删除修改数据
                strsql = @"DELETE FROM emrdb..DATA_PrescriptionDetail WHERE ID IN({0})";
                string Ids = null;
                for (int i = 0; i < list.Count; i++)
                {
                    if (Ids == null)
                    {
                        Ids = list[i].PresListId.ToString();
                    }
                    else
                    {
                        Ids += "," + list[i].PresListId.ToString();
                    }
                }
                strsql = string.Format(strsql, Ids);
                //MidDbHelper.ExecuteNonQuery(MidDbHelper.EmrHandle, strsql);
                sqllist.Add(strsql);

                for (int i = 0; i < list.Count; i++)
                {
                    strsql = @"INSERT INTO emrdb..DATA_PrescriptionDetail(PrescriptionID ,ListNO ,GroupID ,FeeID ,FeeName ,Spec ,Dosage ,DosageUnit ,Factor ,ChannelID ,FrequencyID ,Num ,Amount ,Unit ,Price ,Days ,InjectTimes ,IsOtherFee ,IsAst ,AstResult ,IsTake ,Memo ,IsCharged ,IsCancel ,IsSend ,IsExec ,DoctorID ,DeptCode ,chargedTime ,sendTime ,CostID ,FavorFee ,DosageType ,AmountType ,PresAmount ,PresAmountUnit ,PresFactor ,ItemClass)
                            VALUES  ( {0} ,{1} ,{2} ,{3} ,'{4}' ,'{5}' ,{6} ,'{7}' ,{8} ,{9} ,{10},{11} ,{12} ,'{13}' ,{14} ,{15},0 ,0 ,{16} ,'' ,{17} ,'{18}' ,0 ,0 ,0 ,0 ,{19} ,'{20}' ,NULL ,NULL ,0 ,0 ,0 ,0 ,{21} ,'{22}' ,'{23}' ,1)";
                    strsql = string.Format(strsql, headId, list[i].PresNo, list[i].Group_Id, list[i].Item_Id, list[i].Item_Name, list[i].Standard, list[i].Usage_Amount, list[i].Usage_Unit, list[i].Usage_Rate,
                                           list[i].Usage_Id, list[i].Frequency_Id, list[i].Dosage, list[i].Amount, list[i].Unit, list[i].Sell_Price, list[i].Days
                                           , list[i].SkinTest_Flag, list[i].SelfDrug_Flag, list[i].Entrust, list[i].Pres_Doc, list[i].Pres_Dept, list[i].Item_Amount, list[i].Item_Unit, list[i].Item_Rate);

                    sqllist.Add(strsql);
                }

                MidDbHelper.ExecuteNonQuery(MidDbHelper.EmrSysID, sqllist);
                return(true);
            }
        }
 //保存处方
 public static bool SavePrescriptionData(int type, int patListId, List <Prescription> data)
 {
     return(PrescripttionDataSource.SavePrescriptionData(patListId, data, type));
 }