private void OnSaveInfo()
        {
            try
            {
                MethodInvoker method = delegate
                {
                    List <BenhNhanNgoaiGoiKham> benhNhanNgoaiGoiKhamList = new List <BenhNhanNgoaiGoiKham>();
                    DataTable dt = dgBenhNhanNgoaiGoiKham.DataSource as DataTable;
                    foreach (DataRow row in dt.Rows)
                    {
                        BenhNhanNgoaiGoiKham bnngk    = new BenhNhanNgoaiGoiKham();
                        DateTime             ngayKham = DateTime.Now;
                        if (row["NgayKham"] != null && row["NgayKham"] != DBNull.Value)
                        {
                            ngayKham = Convert.ToDateTime(row["NgayKham"]);
                        }

                        bnngk.NgayKham    = ngayKham;
                        bnngk.PatientGUID = Guid.Parse(row["PatientGUID"].ToString());
                        bnngk.ServiceGUID = Guid.Parse(row["ServiceGUID"].ToString());
                        string lanDauStr = row["LanDauStr"].ToString();
                        bnngk.LanDau      = lanDauStr == "Lần đầu" ? (byte)0 : (byte)1;
                        bnngk.CreatedBy   = Guid.Parse(Global.UserGUID);
                        bnngk.CreatedDate = DateTime.Now;
                        benhNhanNgoaiGoiKhamList.Add(bnngk);
                    }

                    Result result = BenhNhanNgoaiGoiKhamBus.InsertBenhNhanNgoaiGoiKham(benhNhanNgoaiGoiKhamList);
                    if (!result.IsOK)
                    {
                        MsgBox.Show(this.Text, result.GetErrorAsString("BenhNhanNgoaiGoiKhamBus.InsertBenhNhanNgoaiGoiKham"), IconType.Error);
                        Utility.WriteToTraceLog(result.GetErrorAsString("BenhNhanNgoaiGoiKhamBus.InsertBenhNhanNgoaiGoiKham"));
                        this.DialogResult = System.Windows.Forms.DialogResult.Cancel;
                    }
                };

                if (InvokeRequired)
                {
                    BeginInvoke(method);
                }
                else
                {
                    method.Invoke();
                }
            }
            catch (Exception e)
            {
                MsgBox.Show(this.Text, e.Message, IconType.Error);
                Utility.WriteToTraceLog(e.Message);
            }
        }
예제 #2
0
        public static Result DeleteBenhNhanNgoaiGoiKham(List <string> keys)
        {
            Result     result = new Result();
            MMOverride db     = null;

            try
            {
                db = new MMOverride();
                using (TransactionScope t = new TransactionScope(TransactionScopeOption.RequiresNew))
                {
                    string desc = string.Empty;
                    foreach (string key in keys)
                    {
                        BenhNhanNgoaiGoiKham bnngk = db.BenhNhanNgoaiGoiKhams.SingleOrDefault <BenhNhanNgoaiGoiKham>(b => b.BenhNhanNgoaiGoiKhamGUID.ToString() == key);
                        if (bnngk != null)
                        {
                            bnngk.DeletedDate = DateTime.Now;
                            bnngk.DeletedBy   = Guid.Parse(Global.UserGUID);
                            bnngk.Status      = (byte)Status.Deactived;

                            desc += string.Format("- GUID: '{0}', Ngày khám: '{1}', Bệnh nhân: '{2}', Dịch vụ: '{3}', Lần đầu: '{4}'\n",
                                                  bnngk.BenhNhanNgoaiGoiKhamGUID.ToString(), bnngk.NgayKham.ToString("dd/MM/yyyy HH:mm:ss"),
                                                  bnngk.Patient.Contact.FullName, bnngk.Service.Name, bnngk.LanDau == 0 ? "Lần đầu" : "Tái khám");
                        }
                    }

                    //Tracking
                    desc = desc.Substring(0, desc.Length - 1);
                    Tracking tk = new Tracking();
                    tk.TrackingGUID = Guid.NewGuid();
                    tk.TrackingDate = DateTime.Now;
                    tk.DocStaffGUID = Guid.Parse(Global.UserGUID);
                    tk.ActionType   = (byte)ActionType.Delete;
                    tk.Action       = "Xóa bệnh nhân ngoài gói khám";
                    tk.Description  = desc;
                    tk.TrackingType = (byte)TrackingType.None;
                    tk.ComputerName = Utility.GetDNSHostName();
                    db.Trackings.InsertOnSubmit(tk);

                    db.SubmitChanges();
                    t.Complete();
                }
            }
            catch (System.Data.SqlClient.SqlException se)
            {
                result.Error.Code        = (se.Message.IndexOf("Timeout expired") >= 0) ? ErrorCode.SQL_QUERY_TIMEOUT : ErrorCode.INVALID_SQL_STATEMENT;
                result.Error.Description = se.ToString();
            }
            catch (Exception e)
            {
                result.Error.Code        = ErrorCode.UNKNOWN_ERROR;
                result.Error.Description = e.ToString();
            }
            finally
            {
                if (db != null)
                {
                    db.Dispose();
                    db = null;
                }
            }

            return(result);
        }