public static Result GetLastKetQuaLamSang(string patientGUID, DateTime fromDate, DateTime toDate) { Result result = new Result(); MMOverride db = null; try { db = new MMOverride(); Hashtable htKetQuaLamSang = new Hashtable(); CoQuan[] coQuanList = (CoQuan[])Enum.GetValues(typeof(CoQuan)); foreach (CoQuan coQuan in coQuanList) { KetQuaLamSang kq = (from k in db.KetQuaLamSangs where k.PatientGUID.ToString() == patientGUID && k.NgayKham >= fromDate && k.NgayKham <= toDate && k.CoQuan == (byte)coQuan && k.Status == (byte)Status.Actived orderby k.NgayKham descending select k).FirstOrDefault <KetQuaLamSang>(); if (kq != null) { htKetQuaLamSang.Add(coQuan, kq); } } result.QueryResult = htKetQuaLamSang; } 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); }
public static Result DeleteKetQuaLamSang(List <String> ketQuaLamSangKeys) { 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 ketQuaLamSangKeys) { KetQuaLamSang kqls = db.KetQuaLamSangs.SingleOrDefault <KetQuaLamSang>(k => k.KetQuaLamSangGUID.ToString() == key); if (kqls != null) { kqls.DeletedDate = DateTime.Now; kqls.DeletedBy = Guid.Parse(Global.UserGUID); kqls.Status = (byte)Status.Deactived; string ketQua = string.Empty; if (kqls.Normal) { ketQua += "Bình thường, "; } if (kqls.Abnormal) { ketQua += "Bất thường, "; } if (ketQua != string.Empty) { ketQua = ketQua.Substring(0, ketQua.Length - 2); } if (kqls.CoQuan != (byte)CoQuan.KhamPhuKhoa) { desc += string.Format("- GUID: '{0}', Bệnh nhân: '{1}', Bác sĩ: '{2}', Cơ quan: '{3}', Kết quả: '{4}', Nhận xét: '{5}'\n", kqls.KetQuaLamSangGUID.ToString(), kqls.Patient.Contact.FullName, kqls.DocStaff.Contact.FullName, Utility.ParseCoQuanEnumToName((CoQuan)kqls.CoQuan), ketQua, kqls.Note); } else { if (kqls.NgayKinhChot.HasValue) { desc += string.Format("- GUID: '{0}', Bệnh nhân: '{1}', Bác sĩ: '{2}', Cơ quan: '{3}', PARA: '{4}', Ngày kinh chót: '{5}', Ghi chú: '{6}', Kết quả khám phụ khoa: '{7}', Soi tươi huyết trắng: '{8}', Kết quả Pap: '{9}'\n", kqls.KetQuaLamSangGUID.ToString(), kqls.Patient.Contact.FullName, kqls.DocStaff.Contact.FullName, Utility.ParseCoQuanEnumToName((CoQuan)kqls.CoQuan), kqls.PARA, kqls.NgayKinhChot.Value.ToString("dd/MM/yyyy"), kqls.PhuKhoaNote, kqls.Note, kqls.SoiTuoiHuyetTrang, ketQua); } else { desc += string.Format("- GUID: '{0}', Bệnh nhân: '{1}', Bác sĩ: '{2}', Cơ quan: '{3}', PARA: '{4}', Ghi chú: '{5}', Kết quả khám phụ khoa: '{6}', Soi tươi huyết trắng: '{7}', Kết quả Pap: '{8}'\n", kqls.KetQuaLamSangGUID.ToString(), kqls.Patient.Contact.FullName, kqls.DocStaff.Contact.FullName, Utility.ParseCoQuanEnumToName((CoQuan)kqls.CoQuan), kqls.PARA, kqls.PhuKhoaNote, kqls.Note, kqls.SoiTuoiHuyetTrang, ketQua); } } } } //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 thông tin khám lâm sàng"; 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); }
public static Result ChuyenBenhAn(string patientGUID, List <DataRow> rows) { Result result = new Result(); MMOverride db = null; try { db = new MMOverride(); using (TransactionScope t = new TransactionScope(TransactionScopeOption.RequiresNew)) { foreach (DataRow row in rows) { string ketQuaLamSangGUID = row["KetQuaLamSangGUID"].ToString(); KetQuaLamSang ketQuaLamSang = (from s in db.KetQuaLamSangs where s.KetQuaLamSangGUID.ToString() == ketQuaLamSangGUID select s).FirstOrDefault(); if (ketQuaLamSang == null) { continue; } //Tracking string desc = string.Format("- KetQuaLamSangGUID: '{0}': PatientGUID: '{1}' ==> '{2}' (KetQuaLamSang)", ketQuaLamSangGUID, ketQuaLamSang.PatientGUID.ToString(), patientGUID); ketQuaLamSang.PatientGUID = Guid.Parse(patientGUID); 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 = "Chuyển bệnh án"; 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); }