private void f_UpdateMedicalCards() { try { var patientID = Cl_SessionFacade.f_GetInstance().p_Patient.p_UserID; var medicalCards = Cl_MedicalCardsFacade.f_GetInstance().f_GetMedicalCardsByPatient(patientID); if (medicalCards.Count() > 0) { BindingSource bs = new BindingSource(); var list = new BindingList <Cl_MedicalCard>(medicalCards); ctrl_TMedicalCards.AutoGenerateColumns = false; ctrl_TMedicalCards.DataSource = list; } else { ctrl_TMedicalCards.DataSource = null; } if (ctrl_TMedicalCards.Rows.Count > 0) { ctrl_TMedicalCards.Rows[ctrl_TMedicalCards.Rows.Count - 1].Selected = true; } } catch (Exception er) { MonitoringStub.Error("Error_Editor", "Не удалось обновить список медкарт", er, null, null); } }
public void f_Init(Cl_Template a_Template) { if (a_Template != null) { Text = string.Format("Выбор паттерна для записи v{0}", ConfigurationManager.AppSettings["Version"]); InitializeComponent(); var userId = Cl_SessionFacade.f_GetInstance().p_Doctor.p_UserID; ctrlTablePatterns.Columns.Clear(); var patternsDb = Cl_App.m_DataContext.p_RecordsPatterns.Include(p => p.p_Template).Include(p => p.p_CategoryClinic).Include(p => p.p_CategoryTotal) .Include(p => p.p_Values).Include(r => r.p_Values.Select(v => v.p_Params)).Where(p => p.p_DoctorID == userId); if (a_Template != null) { patternsDb = patternsDb.Where(p => p.p_TemplateID == a_Template.p_ID); } m_Patterns = patternsDb.ToList(); var patterns = m_Patterns.Select(p => new { p.p_ID, p.p_Name, p_TemplateName = p.p_Template.p_Name }).ToList(); ctrlTablePatterns.DataSource = patterns; ctrlTablePatterns.Columns[0].Visible = false; ctrlTablePatterns.Columns[1].Width = p_Name.Width; ctrlTablePatterns.Columns[1].HeaderText = p_Name.HeaderText; ctrlTablePatterns.Columns[2].Width = p_TemplateName.Width; ctrlTablePatterns.Columns[2].HeaderText = p_TemplateName.HeaderText; } }
private void ctrlAdd_Click(object sender, EventArgs e) { var dlg = new Dlg_RecordPatternSelectSource(); if (dlg.ShowDialog(this) == DialogResult.OK) { if (dlg.p_SelectedTemplate != null) { try { Cl_RecordPattern pattern = new Cl_RecordPattern(); pattern.p_ClinicName = Cl_SessionFacade.f_GetInstance().p_Doctor.p_ClinicName; pattern.f_SetDoctor(Cl_SessionFacade.f_GetInstance().p_Doctor); pattern.f_SetTemplate(dlg.p_SelectedTemplate); var dlgPattern = new Dlg_RecordPattern(); dlgPattern.p_RecordPattern = pattern; dlgPattern.e_Save += DlgPattern_e_Save; dlgPattern.ShowDialog(this); } catch (Exception er) { MonitoringStub.Error("Error_Editor", "Не удалось добавить новый патерн", er, null, null); } } } }
public void LoadHistory(bool onlyThisSesion, E_EntityTypes eType, int LoadForID = 1) { IOrderedQueryable <Cl_Log> logs = null; if (onlyThisSesion) { if (eType == E_EntityTypes.RecordsPatterns) { logs = Cl_App.m_DataContext.p_Logs.Where(l => l.p_SessionID == Cl_SessionFacade.f_GetInstance().p_SessionID&& l.p_EntityType == eType).OrderByDescending(d => d.p_ChangeTime); } else { logs = Cl_App.m_DataContext.p_Logs.Where(l => l.p_SessionID == Cl_SessionFacade.f_GetInstance().p_SessionID&& l.p_ElementID == LoadForID && l.p_EntityType == eType).OrderByDescending(d => d.p_ChangeTime); } } else { if (eType == E_EntityTypes.RecordsPatterns) { logs = Cl_App.m_DataContext.p_Logs.Where(l => l.p_EntityType == eType).OrderByDescending(d => d.p_ChangeTime); } else { logs = Cl_App.m_DataContext.p_Logs.Where(l => l.p_ElementID == LoadForID && l.p_EntityType == eType).OrderByDescending(d => d.p_ChangeTime); } } f_FillLogs(logs); }
private void ctrlBReportAddRecord_Click(object sender, System.EventArgs e) { var dlg = new Dlg_RecordSelectSource(); if (dlg.ShowDialog(this) == DialogResult.OK) { try { if (dlg.p_SelectedTemplate != null) { Cl_Record record = new Cl_Record(); record.p_DateCreate = DateTime.Now; record.p_DateLastChange = record.p_DateCreate; record.f_SetTemplate(dlg.p_SelectedTemplate); record.p_MedicalCard = Cl_SessionFacade.f_GetInstance().p_MedicalCard; record.p_MedicalCardID = record.p_MedicalCard.p_ID; record.p_ClinicName = Cl_SessionFacade.f_GetInstance().p_Doctor.p_ClinicName; record.f_SetDoctor(Cl_SessionFacade.f_GetInstance().p_Doctor); var dlgRecord = new Dlg_Record(); dlgRecord.e_Save += DlgRecord_e_Save; dlgRecord.p_Record = record; Cl_EntityLog.f_CustomMessageLog(E_EntityTypes.UIEvents, string.Format("Создание новой записи. Шаблон {0}", record.p_Template.p_Name)); dlgRecord.ShowDialog(this); } } catch (Exception er) { MonitoringStub.Error("Error_Editor", "Не удалось добавить запись", er, null, null); } } }
private void M_WebBrowserPrint_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { if (m_SelectedRecord != null) { if (Cl_SessionFacade.f_GetInstance().p_SettingsPrintWithParams) { m_WebBrowserPrint.ShowPrintPreviewDialog(); } else { m_WebBrowserPrint.Print(); } if (p_IsPrintDoctor) { if (!m_SelectedRecord.p_IsPrintDoctor) { m_SelectedRecord.p_DatePrintDoctor = DateTime.Now; Cl_App.m_DataContext.SaveChanges(); } } else { if (!m_SelectedRecord.p_IsPrintPatient) { m_SelectedRecord.p_DatePrintPatient = DateTime.Now; Cl_App.m_DataContext.SaveChanges(); } } } }
public UC_Records() { Tag = string.Format("Записи клиента v{0}", ConfigurationManager.AppSettings["Version"]); InitializeComponent(); ctrlPDFViewer.setShowToolbar(false); ctrlPDFViewer.setPageMode("none"); ctrlPDFViewer.setView("FitH"); ctrlPDFViewer.Dock = DockStyle.Fill; p_DateForming.ValueType = typeof(DateTime); ctrlLPatientName.Text = Cl_SessionFacade.f_GetInstance().p_Patient.p_FIO; m_Permission = Cl_SessionFacade.f_GetInstance().p_Doctor.p_Permission; ctrlBReportAddRecordByFile.Visible = !Cl_SessionFacade.f_GetInstance().p_MedicalCard.p_IsDelete&& !Cl_SessionFacade.f_GetInstance().p_MedicalCard.p_IsArchive && (m_Permission.p_IsEditAllRecords || m_Permission.p_IsEditSelfRecords || m_Permission.p_IsEditArchive || m_Permission.p_IsEditAssistantRecords); ctrlBReportAddRecord.Visible = ctrlBReportAddPattern.Visible = !Cl_SessionFacade.f_GetInstance().p_MedicalCard.p_IsDelete&& !Cl_SessionFacade.f_GetInstance().p_MedicalCard.p_IsArchive && (m_Permission.p_IsEditAllRecords || m_Permission.p_IsEditSelfRecords || m_Permission.p_IsEditAssistantRecords); ctrlBAddRecordFromRecord.Visible = false; ctrlBReportFormatPattern.Visible = false; m_WebBrowserPrint.Parent = this; m_WebBrowserPrint.DocumentCompleted += M_WebBrowserPrint_DocumentCompleted; f_UpdateRecords(); }
/// <summary> /// Записывает индивидуальное сообщение лога для переданного объекта /// </summary> /// <param name="obj">Объект логирования</param> /// <param name="message">Сообщение лога</param> public static void f_CustomMessageLog(I_ELog obj, string message) { if (Cl_App.m_DataContext == null) { return; } Cl_ELogClassAttribute classAtr = Cl_EntityLog.f_GetClassAttribute <Cl_ELogClassAttribute>(obj); if (classAtr == null) { return; } Cl_Log outEvent = new Cl_Log { p_SessionID = Cl_SessionFacade.f_GetInstance().p_SessionID, p_ElementID = obj.p_GetLogEntityID, p_Version = obj.p_Version, p_EntityType = classAtr.p_EntityType, p_ChangeTime = DateTime.Now, p_Event = message, p_UserName = Cl_SessionFacade.f_GetInstance().p_Doctor.p_FIO }; Cl_App.m_DataContext.p_Logs.Add(outEvent); Cl_App.m_DataContext.SaveChanges(); }
public UC_MedicalCards() { Tag = string.Format("Медицинские карты v{0}", ConfigurationManager.AppSettings["Version"]); InitializeComponent(); ctrlLPatientName.Text = Cl_SessionFacade.f_GetInstance().p_Patient.p_FIO; f_UpdateMedicalCards(); }
public F_Main(string[] args) { try { this.FormClosing += F_Main_FormClosing; Tag = string.Format("Мегашаблон v{0}", ConfigurationManager.AppSettings["Version"]); if (Cl_App.Initialize()) { if (f_InitSession(args)) { Cl_SessionFacade sess = Cl_SessionFacade.f_GetInstance(); Cl_EntityLog.f_CustomMessageLog(E_EntityTypes.AppEvents, string.Format("Запуск ЭМК. Пользователь: {0}/({1}). Пациент: {2}/({3})", sess.p_Doctor.f_GetInitials(), sess.p_Doctor.p_UserID, sess.p_Patient.f_GetInitials(), sess.p_Patient.p_UserID)); this.Font = new System.Drawing.Font(ConfigurationManager.AppSettings["FontFamily"], float.Parse(ConfigurationManager.AppSettings["FontSize"]), (System.Drawing.FontStyle) int.Parse(ConfigurationManager.AppSettings["FontStyle"]), System.Drawing.GraphicsUnit.Point, ((byte)(204))); InitializeComponent(); string rolesVal = ""; var role = Cl_SessionFacade.f_GetInstance().p_Doctor.p_Permission.p_Role; var memInfo = typeof(E_Roles).GetMember(typeof(E_Roles).GetEnumName(role)); var descriptionAttributes = memInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false); if (descriptionAttributes.Length > 0) { rolesVal = ((DescriptionAttribute)descriptionAttributes[0]).Description; } ctrlSessionInfo.Text = string.Format("Пользователь: {0}, {1} | Расположение: {2}", Cl_SessionFacade.f_GetInstance().p_Doctor.p_FIO, rolesVal, Cl_SessionFacade.f_GetInstance().p_Doctor.p_ClinicName); p_PanelManager = new UI_PanelManager(ctrl_CustomControls); bool visibleEditor = false; visibleEditor |= menuMegaTemplate.Visible = Cl_SessionFacade.f_GetInstance().p_Doctor.p_Permission.p_IsEditMegaTemplates; visibleEditor |= menuTemplate.Visible = Cl_SessionFacade.f_GetInstance().p_Doctor.p_Permission.p_IsEditTemplates; visibleEditor |= menuMegaTemplateDeleted.Visible = Cl_SessionFacade.f_GetInstance().p_Doctor.p_Permission.p_IsShowDeleted; visibleEditor |= menuCatalogs.Visible = Cl_SessionFacade.f_GetInstance().p_Doctor.p_Permission.p_IsEditCatalogs; visibleEditor |= menuPatterns.Visible = Cl_SessionFacade.f_GetInstance().p_Doctor.p_Permission.p_IsEditAllRecords || Cl_SessionFacade.f_GetInstance().p_Doctor.p_Permission.p_IsEditSelfRecords; ctrlMIEditor.Visible = visibleEditor; ctrlMISettingsPrint.Checked = Cl_SessionFacade.f_GetInstance().p_SettingsPrintWithParams; f_SetControl <UC_Records>(); } else { Application.Exit(); } } else { Application.Exit(); } } catch (Exception er) { MonitoringStub.Error("Error_App", "В приложении возникла ошибка", er, null, null); } }
public F_RecordsPatterns() { this.Font = new System.Drawing.Font(ConfigurationManager.AppSettings["FontFamily"], float.Parse(ConfigurationManager.AppSettings["FontSize"]), (System.Drawing.FontStyle) int.Parse(ConfigurationManager.AppSettings["FontStyle"]), System.Drawing.GraphicsUnit.Point, ((byte)(204))); InitializeComponent(); ctrlTablePatterns.Columns.Clear(); m_UserId = Cl_SessionFacade.f_GetInstance().p_Doctor.p_UserID; f_Refresh(); }
private void ctrlBSave_Click(object sender, EventArgs e) { if (ctrlTBComment.Text == "" && MessageBox.Show("Поле \"Комментарий\" не заполенено.\nСохранить оценку без комментария?", "Сохранение оценки", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) != DialogResult.Yes) { return; } if (this.curRecord == null) { MessageBox.Show("Запись еще не сохранена!\nУстановка оценки невозможна.", "Оценка записи", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } Cl_Rating rating = new Cl_Rating(); rating.p_RecordID = this.curRecord.p_RecordID; rating.p_Time = DateTime.Now; rating.p_Comment = ctrlTBComment.Text; rating.p_UserID = Cl_SessionFacade.f_GetInstance().p_Doctor.p_UserID; rating.p_UserName = Cl_SessionFacade.f_GetInstance().p_Doctor.f_GetInitials(); if (ctrlRBValue_1.Checked) { rating.p_Value = 1; } if (ctrlRBValue_2.Checked) { rating.p_Value = 2; } if (ctrlRBValue_3.Checked) { rating.p_Value = 3; } if (ctrlRBValue_4.Checked) { rating.p_Value = 4; } if (ctrlRBValue_5.Checked) { rating.p_Value = 5; } Cl_App.m_DataContext.p_Ratings.Add(rating); Cl_App.m_DataContext.SaveChanges(); Cl_EntityLog.f_CustomMessageLog(E_EntityTypes.Rating, string.Format("Выставлена оценка {0} для записи: {1}, дата записи: {2}, клиника: {3}", rating.p_Value, this.curRecord.p_Title, this.curRecord.p_DateCreate, this.curRecord.p_ClinicName), this.curRecord.p_RecordID); f_LoadRatingTable(rating.p_RecordID); selfRating = rating; if (firstRating == null) { firstRating = rating; } }
public Dlg_Record() { this.Font = new System.Drawing.Font(ConfigurationManager.AppSettings["FontFamily"], float.Parse(ConfigurationManager.AppSettings["FontSize"]), (System.Drawing.FontStyle) int.Parse(ConfigurationManager.AppSettings["FontStyle"]), System.Drawing.GraphicsUnit.Point, ((byte)(204))); InitializeComponent(); ctrlBFormatByPattern.Visible = Cl_SessionFacade.f_GetInstance().p_Doctor.p_Permission.p_IsEditAllRecords || Cl_SessionFacade.f_GetInstance().p_Doctor.p_Permission.p_IsEditSelfRecords; ctrlBMKB.Visible = Cl_SessionFacade.f_GetInstance().p_Doctor.p_Permission.p_Role != Core.Permision.E_Roles.Archivarius; this.Load += Dlg_Record_Load; }
private bool f_GetEdited(Cl_Record a_Record) { if (a_Record != null) { var perm = Cl_SessionFacade.f_GetInstance().p_Doctor.p_Permission; return(!a_Record.p_IsAutomatic && !Cl_SessionFacade.f_GetInstance().p_MedicalCard.p_IsDelete&& !Cl_SessionFacade.f_GetInstance().p_MedicalCard.p_IsArchive && ((perm.p_IsEditAllRecords || (perm.p_IsEditSelfRecords && a_Record.p_DoctorID == Cl_SessionFacade.f_GetInstance().p_Doctor.p_UserID) || (perm.p_IsEditAssistantRecords && a_Record.p_DoctorID == Cl_SessionFacade.f_GetInstance().p_Doctor.p_ParentUser?.p_UserID)) || (perm.p_IsEditArchive && a_Record.p_Type == E_RecordType.FinishedFile))); } else { return(false); } }
/// <summary> /// Возвращает сформированный объект сообщения лога для текущего объекта /// </summary> private Cl_Log f_CreateEvent(I_ELog obj, string message) { Cl_Log outEvent = new Cl_Log { p_SessionID = Cl_SessionFacade.f_GetInstance().p_SessionID, p_ElementID = obj.p_GetLogEntityID, p_Version = obj.p_Version, p_EntityType = this.entityLogType, p_ChangeTime = DateTime.Now, p_Event = message, p_UserName = Cl_SessionFacade.f_GetInstance().p_Doctor.p_FIO }; return(outEvent); }
private bool f_InitSession(string[] args) { Cl_User user = new Cl_User(); user.p_ClinicName = args[0]; user.p_UserID = int.Parse(args[1]); user.p_UserSurName = args[2]; user.p_UserName = args[3]; user.p_UserLastName = args[4]; user.p_Permission = new Cl_UserPermission(args[5]); int patientId = 0; if (int.TryParse(args[7], out patientId)) { var medCard = Cl_MedicalCardsFacade.f_GetInstance().f_GetMedicalCard(args[6], patientId); if (medCard != null) { if (user.p_Permission.p_Role == E_Roles.Assistant) { user.p_ParentUser = new Cl_User(); user.p_ParentUser.p_ClinicName = user.p_ClinicName; user.p_ParentUser.p_UserID = int.Parse(args[10]); user.p_ParentUser.p_UserSurName = args[11]; user.p_ParentUser.p_UserName = args[12]; user.p_ParentUser.p_UserLastName = args[13]; } if (user.p_Permission.p_Role == E_Roles.Inspector) { return(Cl_SessionFacade.f_GetInstance().f_Init(user, medCard, DateTime.Parse(args[8]), DateTime.Parse(args[9]))); } else { return(Cl_SessionFacade.f_GetInstance().f_Init(user, medCard)); } } else { MonitoringStub.Error("Error_AppInit", "Не найдена медицинская карта", null, null, null); return(false); } } else { MonitoringStub.Error("Error_AppInit", "Не верно указан Id пациента", null, null, null); return(false); } }
public void f_LoadRating(Cl_Record p_Record) { this.curRecord = p_Record; int userID = Cl_SessionFacade.f_GetInstance().p_Doctor.p_UserID; selfRating = Cl_App.m_DataContext.p_Ratings.Where(l => l.p_RecordID == p_Record.p_RecordID && l.p_UserID == userID).OrderByDescending(l => l.p_Time).FirstOrDefault(); firstRating = Cl_App.m_DataContext.p_Ratings.Where(l => l.p_RecordID == p_Record.p_RecordID && l.p_UserID == userID).OrderBy(l => l.p_Time).FirstOrDefault(); // Значения по умолчанию ctrlLAuthor.Text = Cl_SessionFacade.f_GetInstance().p_Doctor.f_GetInitials(); ctrlLDate.Text = DateTime.Now.ToString(); f_FillRating(selfRating); f_LoadRatingTable(p_Record.p_RecordID); }
private void InitRating() { double rate = 0; int total = 0; if (p_Record == null) { return; } ctrlBRating.Visible = Cl_SessionFacade.f_GetInstance().p_Doctor.p_Permission.p_IsEditAllRatings&& p_Record != null && p_Record.p_Version > 0; try { IQueryable <Cl_Rating> ratings = Cl_App.m_DataContext.p_Ratings.Where(l => l.p_RecordID == p_Record.p_RecordID); Dictionary <int, Cl_Rating> result = new Dictionary <int, Cl_Rating>(); foreach (Cl_Rating item in ratings) { if (!result.ContainsKey(item.p_UserID)) { result.Add(item.p_UserID, item); continue; } if (result[item.p_UserID].p_Time < item.p_Time) { result[item.p_UserID] = item; } } foreach (KeyValuePair <int, Cl_Rating> item in result) { rate = rate + item.Value.p_Value; total++; } if (rate > 0) { this.Text += " Оценка: " + Math.Round(rate / total, 1).ToString(); } } catch (Exception er) { MonitoringStub.Error("Error_Editor", "Не удалось инициализировать оценку", er, null, null); } }
private void f_UpdateRateEditingState(Cl_Rating rating) { bool allowEdit = true; bool visibleReRate = true; //allowEdit &= (rating == null); allowEdit &= (rating != null && Cl_SessionFacade.f_GetInstance().p_Doctor.p_UserID == rating.p_UserID); allowEdit &= (rating != null && firstRating != null && firstRating.p_Time.AddDays(1) > DateTime.Now); allowEdit &= (rating != null && selfRating != null && rating.p_Time >= selfRating.p_Time); allowEdit |= rating == null; visibleReRate &= (selfRating != null && allowEdit == false); visibleReRate &= (selfRating != null && firstRating != null && firstRating.p_Time.AddDays(1) > DateTime.Now); visibleReRate &= (selfRating != null && Cl_SessionFacade.f_GetInstance().p_Doctor.p_UserID == selfRating.p_UserID); visibleReRate |= selfRating == null && allowEdit == false; f_SetVisibleElements(allowEdit); ctrlBReRate.Visible = visibleReRate; }
internal void FormatPaternFromRecord(Cl_Record a_Record) { if (a_Record == null) { return; } try { m_SourceRecord = a_Record; Cl_TemplatesFacade.f_GetInstance().f_LoadTemplatesElements(a_Record.p_Template); Cl_RecordPattern pattern = Cl_RecordsFacade.f_GetInstance().f_GetNewRecordPattern(a_Record); pattern.p_ClinicName = Cl_SessionFacade.f_GetInstance().p_Doctor.p_ClinicName; pattern.f_SetDoctor(Cl_SessionFacade.f_GetInstance().p_Doctor); this.p_RecordPattern = pattern; } catch (Exception er) { MonitoringStub.Error("Error_Editor", "Не удалось сформировать паттерн записей по записи", er, null, null); } }
private void f_FillRating(Cl_Rating rating) { ctrlLAuthor.Text = Cl_SessionFacade.f_GetInstance().p_Doctor.f_GetInitials(); ctrlLDate.Text = DateTime.Now.ToString(); ctrlTBComment.Text = ""; if (rating == null) { return; } ctrlLAuthor.Text = rating.p_UserName; ctrlLDate.Text = rating.p_Time.ToString(); ctrlTBComment.Text = rating.p_Comment; ctrlRBValue_1.Checked = rating.p_Value == 1; ctrlRBValue_2.Checked = rating.p_Value == 2; ctrlRBValue_3.Checked = rating.p_Value == 3; ctrlRBValue_4.Checked = rating.p_Value == 4; ctrlRBValue_5.Checked = rating.p_Value == 5; }
/// <summary> /// Записывает индивидуальное сообщение лога для переданного объекта /// </summary> /// <param name="obj">Объект логирования</param> /// <param name="message">Сообщение лога</param> public static void f_CustomMessageLog(E_EntityTypes entityType, string message, int id = 1, int version = 0) { if (Cl_App.m_DataContext == null) { return; } Cl_Log outEvent = new Cl_Log { p_SessionID = Cl_SessionFacade.f_GetInstance().p_SessionID, p_ElementID = id, p_Version = version, p_EntityType = entityType, p_ChangeTime = DateTime.Now, p_Event = message, p_UserName = Cl_SessionFacade.f_GetInstance().p_Doctor.p_FIO }; Cl_App.m_DataContext.p_Logs.Add(outEvent); Cl_App.m_DataContext.SaveChanges(); }
private void ctrlBReportAddRecordByFile_Click(object sender, EventArgs e) { Cl_Record record = new Cl_Record(); record.p_DateCreate = DateTime.Now; record.p_Type = E_RecordType.FinishedFile; record.p_DateLastChange = record.p_DateCreate; record.p_MedicalCard = Cl_SessionFacade.f_GetInstance().p_MedicalCard; record.p_MedicalCardID = record.p_MedicalCard.p_ID; record.p_ClinicName = Cl_SessionFacade.f_GetInstance().p_Doctor.p_ClinicName; record.p_Title = "Новая запись с готовым файлом"; //record.p_CategoryTotalID = category.p_ID; //record.p_CategoryTotal = category; record.f_SetDoctor(Cl_SessionFacade.f_GetInstance().p_Doctor); var dlgRecord = new Dlg_Record(); dlgRecord.e_Save += DlgRecord_e_Save; dlgRecord.p_Record = record; Cl_EntityLog.f_CustomMessageLog(E_EntityTypes.UIEvents, "Создание новой записи с готовым файлом"); dlgRecord.ShowDialog(this); }
private void ctrlMISettingsPrint_CheckedChanged(object sender, EventArgs e) { Cl_SessionFacade.f_GetInstance().p_SettingsPrintWithParams = ctrlMISettingsPrint.Checked; }
private void f_OnSelectRow(DataGridViewRow row) { m_SelectedRecord = null; m_SelectedRow = null; if (row != null && row is OutlookGridRow && !((OutlookGridRow)row).IsGroupRow && row.Tag != null) { try { var record = m_SelectedRecord = m_Records.FirstOrDefault(r => r.p_ID == ((Cl_Record)row.Tag).p_ID); if (record != null) { m_SelectedRow = row; Cl_EntityLog.f_CustomMessageLog(E_EntityTypes.UIEvents, string.Format("Просмотр записи: {0}, дата записи: {1}, клиника: {2}", record.p_Title, record.p_DateCreate, record.p_ClinicName), record.p_RecordID); ctrlPRecordInfo.Visible = true; ctrlRecordInfo.Text = string.Format("{0} {1} [{2}, {3}]", record.p_DateCreate.ToShortDateString(), record.p_Title, record.p_DateLastChange, record.p_DoctorFIO); ctrlCMViewer.Enabled = true; ctrlBAddRecordFromRecord.Visible = ctrlBReportFormatPattern.Visible = !record.p_IsAutomatic && !Cl_SessionFacade.f_GetInstance().p_MedicalCard.p_IsDelete&& !Cl_SessionFacade.f_GetInstance().p_MedicalCard.p_IsArchive&& (m_Permission.p_IsEditAllRecords || m_Permission.p_IsEditSelfRecords); ctrlBReportEdit.Visible = ctrlMIEdit.Visible = f_GetEdited(record); ctrlBReportDelete.Visible = ctrlMIDelete.Visible = Cl_SessionFacade.f_GetInstance().p_Doctor.p_Permission.p_IsEditAllRecords || ((m_Permission.p_IsEditArchive || Cl_SessionFacade.f_GetInstance().p_Doctor.p_Permission.p_IsEditSelfRecords) && record.p_DoctorID == Cl_SessionFacade.f_GetInstance().p_Doctor.p_UserID); ctrlBReportRating.Visible = ctrlMIRating.Visible = m_Permission.p_IsEditAllRatings; ctrlBReportSyncBMK.Visible = ctrlMISyncBMK.Visible = !record.p_IsSyncBMK && record.p_IsPrintDoctor && m_Permission.p_IsEditArchive; ctrlBReportPrintDoctor.Visible = ctrlBReportPrintPatient.Visible = ctrlMIPrint.Visible = m_Permission.p_IsPrint; if (record.p_Type == E_RecordType.FinishedFile) { if (record.p_FileType == E_RecordFileType.HTML) { ctrlHTMLViewer.DocumentText = record.f_GetDocumentTextDoctor(Application.StartupPath); ctrlHTMLViewer.Visible = true; ctrlPDFViewer.Visible = false; } else if (record.p_FileType == E_RecordFileType.PDF) { var path = string.Format("{0}medicalChartTemp.pdf", Path.GetTempPath()); record.p_FileBytes = Cl_RecordsFacade.f_GetInstance().f_GetFileFromSql(record); File.WriteAllBytes(path, record.p_FileBytes); ctrlPDFViewer.src = path; ctrlPDFViewer.Show(); ctrlHTMLViewer.Visible = false; ctrlPDFViewer.Visible = true; } else if (record.p_FileType == E_RecordFileType.JFIF || record.p_FileType == E_RecordFileType.JIF || record.p_FileType == E_RecordFileType.JPE || record.p_FileType == E_RecordFileType.JPEG || record.p_FileType == E_RecordFileType.JPG || record.p_FileType == E_RecordFileType.PNG || record.p_FileType == E_RecordFileType.GIF) { ctrlHTMLViewer.DocumentText = record.f_GetDocumentTextDoctor(Application.StartupPath); ctrlHTMLViewer.Visible = true; ctrlPDFViewer.Visible = false; } } else { if (record.p_HTMLDoctor != null) { ctrlHTMLViewer.DocumentText = record.f_GetDocumentTextDoctor(Application.StartupPath); ctrlHTMLViewer.Visible = true; ctrlPDFViewer.Visible = false; } else { ctrlHTMLViewer.Visible = false; ctrlPDFViewer.Visible = false; } } } else { ctrlPRecordInfo.Visible = false; } } catch (Exception er) { MonitoringStub.Error("Error_Editor", "Не удалось отобразить запись", er, null, null); } } if (m_SelectedRecord == null) { ctrlCMViewer.Enabled = false; ctrlPRecordInfo.Visible = false; ctrlBReportFormatPattern.Visible = false; ctrlBReportEdit.Visible = false; ctrlBReportRating.Visible = false; ctrlBReportPrintDoctor.Visible = ctrlBReportPrintPatient.Visible = false; } }
private void f_UpdateRecords(Cl_Record selectedRecord = null) { try { var patientID = Cl_SessionFacade.f_GetInstance().p_Patient.p_UserID; var patientUID = Cl_SessionFacade.f_GetInstance().p_Patient.p_UserUID; var records = Cl_App.m_DataContext.p_Records.Include(r => r.p_MedicalCard).AsQueryable(); if (Cl_SessionFacade.f_GetInstance().p_Doctor.p_Permission.p_IsReadSelectedRecords) { if (Cl_SessionFacade.f_GetInstance().p_DateStart != null && Cl_SessionFacade.f_GetInstance().p_DateEnd != null) { var dateStart = Cl_SessionFacade.f_GetInstance().p_DateStart; var dateEnd = Cl_SessionFacade.f_GetInstance().p_DateEnd; records = records.Where(r => r.p_DateLastChange >= dateStart && r.p_DateLastChange <= dateEnd); } else { MonitoringStub.Error("Error_Editor", "Для проверяющего С/К не указан период", null, null, null); } } records = records.Where(r => p_IsShowDeleted ? true : !r.p_IsDelete && r.p_MedicalCard != null && (r.p_MedicalCard.p_PatientUID == patientUID || r.p_MedicalCard.p_PatientID == patientID)); m_Records = records.GroupBy(e => e.p_RecordID).Select(grp => grp .OrderByDescending(v => v.p_Version).FirstOrDefault()) .Include(r => r.p_CategoryTotal).Include(r => r.p_CategoryClinic).Include(r => r.p_Values).Include(r => r.p_Template).Include(r => r.p_Values.Select(v => v.p_Params)).ToArray(); m_SelectedRecordBlock = true; ctrl_TRecords.BindData(null, null); ctrl_TRecords.Columns.AddRange(p_MedicalCardNumber, p_ClinikName, p_DateForming, p_CategoryTotal, p_Title, p_DoctorFIO); foreach (var record in m_Records) { OutlookGridRow row = new OutlookGridRow(); row.CreateCells(ctrl_TRecords, record.p_MedicalCardNumber, record.p_ClinicName, record.p_DateReception.ToString("dd.MM.yyyy HH:mm"), record.p_CategoryTotal != null ? record.p_CategoryTotal.p_Name : "", record.p_Title, record.p_DoctorFIO); row.Tag = record; ctrl_TRecords.Rows.Add(row); } ctrl_TRecords.Columns[0].Visible = false; ctrl_TRecords.GroupTemplate.Column = ctrl_TRecords.Columns[0]; ctrl_TRecords.Sort(ctrl_TRecords.Columns[2], System.ComponentModel.ListSortDirection.Descending); m_SelectedRecordBlock = false; if (selectedRecord != null) { foreach (OutlookGridRow row in ctrl_TRecords.Rows) { if (!row.IsGroupRow && ((Cl_Record)row.Tag).p_ID == selectedRecord.p_ID) { row.Selected = true; break; } } } } catch (Exception er) { MonitoringStub.Error("Error_Editor", "Не удалось обновить записи", er, null, null); } }
private void ctrlBSave_Click(object sender, System.EventArgs e) { if (string.IsNullOrWhiteSpace(ctrlTitle.Text)) { MonitoringStub.Message("Заполните поле \"Заголовок\"!"); return; } if (ctrlDTPDateReception.Value == null) { MonitoringStub.Message("Заполните поле \"Дата приема\"!"); return; } if (ctrlDTPTimeReception.Value == null) { MonitoringStub.Message("Заполните поле \"Время приема\"!"); return; } if (m_Record != null) { Cl_Record record = null; if (m_Record.p_Type == E_RecordType.ByTemplate && m_ControlTemplate != null) { record = m_ControlTemplate.f_GetNewRecord(); } else if (m_Record.p_Type == E_RecordType.FinishedFile && m_ControlRecordByFile != null) { record = m_ControlRecordByFile.f_GetNewRecord(); if (record?.p_FileBytes == null) { MonitoringStub.Message("Заполните поле \"Файл записи\"!"); return; } } if (record != null) { using (var transaction = Cl_App.m_DataContext.Database.BeginTransaction()) { try { if (m_Log.f_IsChanged(record) == false && record.p_Title == ctrlTitle.Text) { MonitoringStub.Message("Элемент не изменялся!"); transaction.Rollback(); return; } record.p_Title = ctrlTitle.Text; record.p_DateReception = new DateTime(ctrlDTPDateReception.Value.Year, ctrlDTPDateReception.Value.Month, ctrlDTPDateReception.Value.Day, ctrlDTPTimeReception.Value.Hour, ctrlDTPTimeReception.Value.Minute, 0); if (Cl_SessionFacade.f_GetInstance().p_Doctor.p_Permission.p_Role == Core.Permision.E_Roles.Assistant) { record.f_SetDoctor(Cl_SessionFacade.f_GetInstance().p_Doctor.p_ParentUser); } Cl_App.m_DataContext.p_Records.Add(record); Cl_App.m_DataContext.SaveChanges(); if (m_Record.p_Type == E_RecordType.FinishedFile) { record.p_FilePath = Cl_RecordsFacade.f_GetInstance().f_GetLocalResourcesRelativeFilePath(record); Cl_RecordsFacade.f_GetInstance().f_SaveFileFromSql(record); } else { record.p_HTMLDoctor = record.f_GetHTMLDoctor(); record.p_HTMLPatient = record.f_GetHTMLPatient(); } if (record.p_Version == 1) { record.p_RecordID = record.p_ID; } Cl_App.m_DataContext.SaveChanges(); Cl_EntityLog.f_CustomMessageLog(E_EntityTypes.UIEvents, string.Format("Сохранение записи: {0}, дата записи: {1}, клиника: {2}", record.p_Title, record.p_DateCreate, record.p_ClinicName), record.p_RecordID); m_Log.f_SaveEntity(record, record.p_ParentRecord != null ? $"Создана новая запись на основе {record.p_ParentRecord.p_Title}" : "Создана новая запись"); transaction.Commit(); f_SetRecord(record); e_Save?.Invoke(this, new Cl_Record.Cl_EventArgs() { p_Record = record }); this.Close(); } catch (Exception ex) { transaction.Rollback(); try { Cl_RecordsFacade.f_GetInstance().f_DeleteFileFromSql(record); } catch { }; MonitoringStub.Error("Error_Editor", "При сохранении изменений записи произошла ошибка", ex, null, null); } } } } }