Example #1
0
        private void OnSaveInfo()
        {
            try
            {
                MethodInvoker method = delegate
                {
                    _toaThuoc.MaToaThuoc = txtMaToaThuoc.Text;
                    _toaThuoc.NgayKeToa  = DateTime.Now;
                    _toaThuoc.NgayKham   = dtpkNgayKham.Value;

                    if (chkNgayTaiKham.Checked)
                    {
                        _toaThuoc.NgayTaiKham = dtpkNgayTaiKham.Value;
                    }
                    else
                    {
                        _toaThuoc.NgayTaiKham = null;
                    }

                    _toaThuoc.BacSiKeToa = Guid.Parse(cboBacSi.SelectedValue.ToString());
                    _toaThuoc.BenhNhan   = Guid.Parse(txtTenBenhNhan.Tag.ToString());
                    _toaThuoc.ChanDoan   = txtChanDoan.Text;
                    _toaThuoc.Note       = txtGhiChu.Text;
                    _toaThuoc.Status     = (byte)Status.Actived;
                    _toaThuoc.Loai       = raToaChung.Checked ? (byte)LoaiToaThuoc.Chung : (byte)LoaiToaThuoc.SanKhoa;

                    if (_isNew)
                    {
                        _toaThuoc.CreatedDate = DateTime.Now;
                        _toaThuoc.CreatedBy   = Guid.Parse(Global.UserGUID);
                    }
                    else
                    {
                        _toaThuoc.UpdatedDate = DateTime.Now;
                        _toaThuoc.UpdatedBy   = Guid.Parse(Global.UserGUID);
                    }

                    DataTable dt = dgChiTiet.DataSource as DataTable;
                    List <ChiTietToaThuoc> addedList = new List <ChiTietToaThuoc>();
                    foreach (DataRow row in dt.Rows)
                    {
                        ChiTietToaThuoc cttt = new ChiTietToaThuoc();
                        if (row["ChiTietToaThuocGUID"] != null && row["ChiTietToaThuocGUID"] != DBNull.Value)
                        {
                            cttt.ChiTietToaThuocGUID = Guid.Parse(row["ChiTietToaThuocGUID"].ToString());
                            cttt.UpdatedDate         = DateTime.Now;
                            cttt.UpdatedBy           = Guid.Parse(Global.UserGUID);
                        }
                        else
                        {
                            cttt.CreatedDate = DateTime.Now;
                            cttt.CreatedBy   = Guid.Parse(Global.UserGUID);
                        }

                        if (row["ThuocGUID"] != null && row["ThuocGUID"] != DBNull.Value)
                        {
                            cttt.ThuocGUID = Guid.Parse(row["ThuocGUID"].ToString());
                        }
                        else
                        {
                            cttt.TenThuocNgoai = row["TenThuoc"].ToString();
                        }

                        cttt.SoLuong             = Convert.ToInt32(row["SoLuong"]);
                        cttt.LieuDung            = row["LieuDung"].ToString();
                        cttt.Note                = row["Note"].ToString();
                        cttt.Sang                = Convert.ToBoolean(row["Sang"]);
                        cttt.SangNote            = row["SangNote"].ToString();
                        cttt.Trua                = Convert.ToBoolean(row["Trua"]);
                        cttt.TruaNote            = row["TruaNote"].ToString();
                        cttt.Chieu               = Convert.ToBoolean(row["Chieu"]);
                        cttt.ChieuNote           = row["ChieuNote"].ToString();
                        cttt.Toi                 = Convert.ToBoolean(row["Toi"]);
                        cttt.ToiNote             = row["ToiNote"].ToString();
                        cttt.TruocAn             = Convert.ToBoolean(row["TruocAn"]);
                        cttt.TruocAnNote         = row["TruocAnNote"].ToString();
                        cttt.SauAn               = Convert.ToBoolean(row["SauAn"]);
                        cttt.SauAnNote           = row["SauAnNote"].ToString();
                        cttt.Khac_TruocSauAn     = Convert.ToBoolean(row["Khac_TruocSauAn"]);
                        cttt.Khac_TruocSauAnNote = row["Khac_TruocSauAnNote"].ToString();
                        cttt.Uong                = Convert.ToBoolean(row["Uong"]);
                        cttt.UongNote            = row["UongNote"].ToString();
                        cttt.Boi                 = Convert.ToBoolean(row["Boi"]);
                        cttt.BoiNote             = row["BoiNote"].ToString();
                        cttt.Dat                 = Convert.ToBoolean(row["Dat"]);
                        cttt.DatNote             = row["DatNote"].ToString();
                        cttt.Khac_CachDung       = Convert.ToBoolean(row["Khac_CachDung"]);
                        cttt.Khac_CachDungNote   = row["Khac_CachDungNote"].ToString();

                        cttt.Status = (byte)Status.Actived;
                        addedList.Add(cttt);
                    }

                    Result result = KeToaBus.InsertToaThuoc(_toaThuoc, addedList, _deletedKeys);

                    if (!result.IsOK)
                    {
                        MsgBox.Show(this.Text, result.GetErrorAsString("KeToaBus.InsertToaThuoc"), IconType.Error);
                        Utility.WriteToTraceLog(result.GetErrorAsString("KeToaBus.InsertToaThuoc"));
                        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);
            }
        }
Example #2
0
        public static Result InsertToaThuoc(ToaThuoc toaThuoc, List <ChiTietToaThuoc> addedList, List <string> deletedKeys)
        {
            Result     result = new Result();
            MMOverride db     = null;

            try
            {
                db = new MMOverride();
                string desc = string.Empty;
                using (TransactionScope tnx = new TransactionScope(TransactionScopeOption.RequiresNew))
                {
                    //Insert
                    if (toaThuoc.ToaThuocGUID == null || toaThuoc.ToaThuocGUID == Guid.Empty)
                    {
                        toaThuoc.ToaThuocGUID = Guid.NewGuid();
                        toaThuoc.IsWarning    = true;
                        db.ToaThuocs.InsertOnSubmit(toaThuoc);
                        db.SubmitChanges();

                        string ngayTaiKhamStr = string.Empty;
                        if (toaThuoc.NgayTaiKham != null && toaThuoc.NgayTaiKham.HasValue)
                        {
                            ngayTaiKhamStr = toaThuoc.NgayTaiKham.Value.ToString("dd/MM/yyyy HH:mm:ss");
                        }

                        desc += string.Format("- Toa thuốc: GUID: '{0}', Mã toa thuốc: '{1}', Ngày khám: '{2}', Ngày tái khám: '{3}', Bác sĩ kê toa: '{4}', Bệnh nhân: '{5}', Chẩn đoán: '{6}', Lời dặn: '{7}'\n",
                                              toaThuoc.ToaThuocGUID.ToString(), toaThuoc.MaToaThuoc, toaThuoc.NgayKham.Value.ToString("dd/MM/yyyy HH:mm:ss"), ngayTaiKhamStr,
                                              toaThuoc.DocStaff.Contact.FullName, toaThuoc.Patient.Contact.FullName, toaThuoc.ChanDoan, toaThuoc.Note);

                        if (addedList != null && addedList.Count > 0)
                        {
                            desc += "- Chi tiết toa thuốc được thêm:\n";

                            //Chi tiet toa thuoc
                            foreach (ChiTietToaThuoc cttt in addedList)
                            {
                                cttt.ChiTietToaThuocGUID = Guid.NewGuid();
                                cttt.ToaThuocGUID        = toaThuoc.ToaThuocGUID;
                                db.ChiTietToaThuocs.InsertOnSubmit(cttt);
                                db.SubmitChanges();

                                string tenThuoc = string.Empty;
                                if (cttt.Thuoc != null)
                                {
                                    tenThuoc = cttt.Thuoc.TenThuoc;
                                }
                                else
                                {
                                    tenThuoc = cttt.TenThuocNgoai;
                                }

                                desc += string.Format("  + GUID: '{0}', Thuốc: '{1}', Số lượng: '{2}'\n", cttt.ChiTietToaThuocGUID.ToString(),
                                                      tenThuoc, cttt.SoLuong);
                            }
                        }

                        //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.Add;
                        tk.Action       = "Thêm thông tin toa thuốc";
                        tk.Description  = desc;
                        tk.TrackingType = (byte)TrackingType.None;
                        tk.ComputerName = Utility.GetDNSHostName();
                        db.Trackings.InsertOnSubmit(tk);

                        db.SubmitChanges();
                    }
                    else //Update
                    {
                        ToaThuoc tt = db.ToaThuocs.SingleOrDefault <ToaThuoc>(o => o.ToaThuocGUID.ToString() == toaThuoc.ToaThuocGUID.ToString());
                        if (tt != null)
                        {
                            tt.MaToaThuoc  = toaThuoc.MaToaThuoc;
                            tt.NgayKeToa   = toaThuoc.NgayKeToa;
                            tt.NgayKham    = toaThuoc.NgayKham;
                            tt.NgayTaiKham = toaThuoc.NgayTaiKham;
                            tt.BacSiKeToa  = toaThuoc.BacSiKeToa;
                            tt.BenhNhan    = toaThuoc.BenhNhan;
                            tt.ChanDoan    = toaThuoc.ChanDoan;
                            tt.Note        = toaThuoc.Note;
                            tt.Loai        = toaThuoc.Loai;
                            tt.CreatedDate = toaThuoc.CreatedDate;
                            tt.CreatedBy   = toaThuoc.CreatedBy;
                            tt.UpdatedDate = toaThuoc.UpdatedDate;
                            tt.UpdatedBy   = toaThuoc.UpdatedBy;
                            tt.DeletedDate = toaThuoc.DeletedDate;
                            tt.DeletedBy   = toaThuoc.DeletedBy;
                            tt.Status      = toaThuoc.Status;
                            db.SubmitChanges();

                            string ngayTaiKhamStr = string.Empty;
                            if (tt.NgayTaiKham != null && tt.NgayTaiKham.HasValue)
                            {
                                ngayTaiKhamStr = tt.NgayTaiKham.Value.ToString("dd/MM/yyyy HH:mm:ss");
                            }

                            desc += string.Format("- Toa thuốc: GUID: '{0}', Mã toa thuốc: '{1}', Ngày khám: '{2}', Ngày tái khám: '{3}', Bác sĩ kê toa: '{4}', Bệnh nhân: '{5}', Chẩn đoán: '{6}', Lời dặn: '{7}'\n",
                                                  tt.ToaThuocGUID.ToString(), tt.MaToaThuoc, tt.NgayKham.Value.ToString("dd/MM/yyyy HH:mm:ss"), ngayTaiKhamStr,
                                                  tt.DocStaff.Contact.FullName, tt.Patient.Contact.FullName, tt.ChanDoan, toaThuoc.Note);

                            //Delete chi tiet toa thuoc
                            if (deletedKeys != null && deletedKeys.Count > 0)
                            {
                                desc += "- Chi tiết toa thuốc được xóa:\n";
                                foreach (string key in deletedKeys)
                                {
                                    ChiTietToaThuoc cttt = db.ChiTietToaThuocs.SingleOrDefault <ChiTietToaThuoc>(c => c.ChiTietToaThuocGUID.ToString() == key);
                                    if (cttt != null)
                                    {
                                        cttt.DeletedDate = DateTime.Now;
                                        cttt.DeletedBy   = Guid.Parse(Global.UserGUID);
                                        cttt.Status      = (byte)Status.Deactived;

                                        string tenThuoc = string.Empty;
                                        if (cttt.Thuoc != null)
                                        {
                                            tenThuoc = cttt.Thuoc.TenThuoc;
                                        }
                                        else
                                        {
                                            tenThuoc = cttt.TenThuocNgoai;
                                        }

                                        desc += string.Format("  + GUID: '{0}', Thuốc: '{1}', Số lượng: '{2}'\n", cttt.ChiTietToaThuocGUID.ToString(),
                                                              tenThuoc, cttt.SoLuong);
                                    }
                                }

                                db.SubmitChanges();
                            }


                            //Add chi tiet toa thuoc
                            if (addedList != null && addedList.Count > 0)
                            {
                                desc += "- Chi tiết toa thuốc được thêm:\n";
                                foreach (ChiTietToaThuoc cttt in addedList)
                                {
                                    cttt.ToaThuocGUID = tt.ToaThuocGUID;
                                    if (cttt.ChiTietToaThuocGUID == Guid.Empty)
                                    {
                                        cttt.ChiTietToaThuocGUID = Guid.NewGuid();
                                        db.ChiTietToaThuocs.InsertOnSubmit(cttt);
                                        db.SubmitChanges();

                                        string tenThuoc = string.Empty;
                                        if (cttt.Thuoc != null)
                                        {
                                            tenThuoc = cttt.Thuoc.TenThuoc;
                                        }
                                        else
                                        {
                                            tenThuoc = cttt.TenThuocNgoai;
                                        }

                                        desc += string.Format("  + GUID: '{0}', Thuốc: '{1}', Số lượng: '{2}'\n", cttt.ChiTietToaThuocGUID.ToString(),
                                                              tenThuoc, cttt.SoLuong);
                                    }
                                    else
                                    {
                                        ChiTietToaThuoc chiTietToaThuoc = db.ChiTietToaThuocs.SingleOrDefault <ChiTietToaThuoc>(c => c.ChiTietToaThuocGUID == cttt.ChiTietToaThuocGUID);
                                        if (chiTietToaThuoc != null)
                                        {
                                            chiTietToaThuoc.ThuocGUID           = cttt.ThuocGUID;
                                            chiTietToaThuoc.TenThuocNgoai       = cttt.TenThuocNgoai;
                                            chiTietToaThuoc.SoLuong             = cttt.SoLuong;
                                            chiTietToaThuoc.LieuDung            = cttt.LieuDung;
                                            chiTietToaThuoc.Note                = cttt.Note;
                                            chiTietToaThuoc.Sang                = cttt.Sang;
                                            chiTietToaThuoc.Trua                = cttt.Trua;
                                            chiTietToaThuoc.Chieu               = cttt.Chieu;
                                            chiTietToaThuoc.Toi                 = cttt.Toi;
                                            chiTietToaThuoc.TruocAn             = cttt.TruocAn;
                                            chiTietToaThuoc.SauAn               = cttt.SauAn;
                                            chiTietToaThuoc.Khac_TruocSauAn     = cttt.Khac_TruocSauAn;
                                            chiTietToaThuoc.Uong                = cttt.Uong;
                                            chiTietToaThuoc.Boi                 = cttt.Boi;
                                            chiTietToaThuoc.Dat                 = cttt.Dat;
                                            chiTietToaThuoc.Khac_CachDung       = cttt.Khac_CachDung;
                                            chiTietToaThuoc.SangNote            = cttt.SangNote;
                                            chiTietToaThuoc.TruaNote            = cttt.TruaNote;
                                            chiTietToaThuoc.ChieuNote           = cttt.ChieuNote;
                                            chiTietToaThuoc.ToiNote             = cttt.ToiNote;
                                            chiTietToaThuoc.TruocAnNote         = cttt.TruocAnNote;
                                            chiTietToaThuoc.SauAnNote           = cttt.SauAnNote;
                                            chiTietToaThuoc.Khac_TruocSauAnNote = cttt.Khac_TruocSauAnNote;
                                            chiTietToaThuoc.UongNote            = cttt.UongNote;
                                            chiTietToaThuoc.BoiNote             = cttt.BoiNote;
                                            chiTietToaThuoc.DatNote             = cttt.DatNote;
                                            chiTietToaThuoc.Khac_CachDungNote   = cttt.Khac_CachDungNote;
                                            chiTietToaThuoc.Status              = (byte)Status.Actived;
                                            chiTietToaThuoc.UpdatedDate         = cttt.UpdatedDate;
                                            chiTietToaThuoc.UpdatedBy           = cttt.UpdatedBy;
                                            db.SubmitChanges();

                                            string tenThuoc = string.Empty;
                                            if (cttt.Thuoc != null)
                                            {
                                                tenThuoc = cttt.Thuoc.TenThuoc;
                                            }
                                            else
                                            {
                                                tenThuoc = cttt.TenThuocNgoai;
                                            }

                                            desc += string.Format("  + GUID: '{0}', Thuốc: '{1}', Số lượng: '{2}'\n",
                                                                  chiTietToaThuoc.ChiTietToaThuocGUID.ToString(), tenThuoc, chiTietToaThuoc.SoLuong);
                                        }
                                    }
                                }
                            }

                            //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.Edit;
                            tk.Action       = "Sửa thông tin toa thuốc";
                            tk.Description  = desc;
                            tk.TrackingType = (byte)TrackingType.None;
                            tk.ComputerName = Utility.GetDNSHostName();
                            db.Trackings.InsertOnSubmit(tk);

                            db.SubmitChanges();
                        }
                    }

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