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)); }