/// <summary>Удаление медкарты</summary> /// <param name="a_Number">Номер медкарта</param> /// <param name="a_PatientID">ID пациента</param> public bool f_DeleteMedicalCard(string a_Number, int a_PatientID) { if (m_DataContextMegaTemplate != null) { var medicalCard = f_GetMedicalCard(a_Number, a_PatientID); if (medicalCard != null) { if (m_DataContextMegaTemplate.p_Records.Include(r => r.p_MedicalCard).Any(r => r.p_MedicalCard.p_Number == a_Number && !r.p_IsDelete)) { MonitoringStub.Error("Error_CreateMedicalCard", $"Имеются не удаленные записи медкарты {a_Number}", null, null, null); return(false); } try { m_DataContextMegaTemplate.p_MedicalCards.Remove(medicalCard); return(true); } catch (Exception er) { MonitoringStub.Error("Error_CreateMedicalCard", "Не удалось удалить медкарту", er, null, null); return(false); } } else { MonitoringStub.Error("Error_DeleteMedicalCard", "Не удалось найти медкарту", null, null, null); return(false); } } else { MonitoringStub.Error("Error_MedicalCardsFacade", "Не инициализирован фасад", null, null, null); return(false); } }
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 Cl_Template f_UpSaveTemplate(Cl_Template curTemplate, I_Element[] elements, Cl_EntityLog m_Log) { Cl_Template newTemplate = curTemplate; if (this.f_IsActualElementsOnTemplate(curTemplate)) { return(f_SaveTemplate(curTemplate, elements, m_Log)); } using (var transaction = m_DataContextMegaTemplate.Database.BeginTransaction()) { try { newTemplate = f_UpdateTemplate(newTemplate); m_Log.f_SaveEntity(newTemplate); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); MonitoringStub.Error("Error_Editor", "При сохранении изменений произошла ошибка", ex, null, null); } } return(newTemplate); }
private void Ctrl_ElementNew_Click(object sender, EventArgs e) { using (var transaction = Cl_App.m_DataContext.Database.BeginTransaction()) { try { Cl_EntityLog eLog = new Cl_EntityLog(); Cl_Element newElement = (Cl_Element)Activator.CreateInstance(typeof(Cl_Element)); eLog.f_SetEntity(newElement); Cl_Group group = null; if (p_SelectedGroup != null && p_SelectedGroup.p_Group != null) { group = p_SelectedGroup.p_Group; } Dlg_EditorElement dlg = new Dlg_EditorElement(); dlg.Text = "Новый элемент"; if (group != null) { newElement.p_ParentGroup = p_SelectedGroup.p_Group; dlg.ctrl_LGroupValue.Text = p_SelectedGroup.p_Group.p_Name; } if (dlg.ShowDialog() != DialogResult.OK) { return; } newElement.p_Name = dlg.ctrl_TBName.Text; newElement.p_Comment = dlg.ctrl_TBDecs.Text; newElement.p_ElementType = (Cl_Element.E_ElementsTypes)dlg.ctrl_CB_ControlType.f_GetSelectedItem(); newElement.p_IsPartPre = true; if (dlg.ctrl_TBName.Text.Length > 0) { newElement.p_PartPre = dlg.ctrl_TBName.Text[0].ToString().ToUpper(); if (dlg.ctrl_TBName.Text.Length > 1) { newElement.p_PartPre += dlg.ctrl_TBName.Text.Substring(1, dlg.ctrl_TBName.Text.Length - 1); } } newElement.p_SymmetryParamLeft = "Слева"; newElement.p_SymmetryParamRight = "Справа"; Cl_App.m_DataContext.p_Elements.Add(newElement); Cl_App.m_DataContext.SaveChanges(); newElement.p_ElementID = newElement.p_ID; Cl_App.m_DataContext.SaveChanges(); eLog.f_SaveEntity(newElement); transaction.Commit(); Ctrl_TreeNodeElement newNode = new Ctrl_TreeNodeElement(group, newElement); SelectedNode.Nodes.Add(newNode); SelectedNode = newNode; e_AfterCreateElement?.Invoke(this, new TreeViewEventArgs(newNode)); } catch (Exception ex) { transaction.Rollback(); MonitoringStub.Error("Error_Tree", "При создании нового элемента произошла ошибка", ex, null, null); return; } } }
private void f_Refresh() { try { m_Patterns = 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 == m_UserId).ToList(); ctrlTablePatterns.DataSource = m_Patterns; foreach (DataGridViewColumn col in ctrlTablePatterns.Columns) { if (col.Name == p_Name.Name) { col.Width = p_Name.Width; col.HeaderText = p_Name.HeaderText; } else if (col.Name == "p_Template") { col.Width = p_TemplateName.Width; col.HeaderText = p_TemplateName.HeaderText; } else { col.Visible = false; } } } catch (Exception er) { MonitoringStub.Error("Error_Editor", "Не удалось обновить список патернов", er, null, null); } }
private void f_SyncBMK() { if (m_SelectedRecord != null) { if (!m_SelectedRecord.p_IsSyncBMK) { using (var transaction = Cl_App.m_DataContext.Database.BeginTransaction()) { try { m_SelectedRecord.p_DateSyncBMK = DateTime.Now; Cl_App.m_DataContext.SaveChanges(); Cl_EntityLog.f_CustomMessageLog(m_SelectedRecord, "Синхронизация записи с БМК"); transaction.Commit(); ctrlBReportSyncBMK.Visible = ctrlMISyncBMK.Visible = false; } catch { m_SelectedRecord.p_DateSyncBMK = null; transaction.Rollback(); MonitoringStub.Error("Error_Tree", "Не удалось синхронизировать запись с БМК", null, null, null); } } } } }
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 ctrlBSave_Click(object sender, EventArgs e) { if (string.IsNullOrWhiteSpace(ctrlName.Text)) { MonitoringStub.Message("Заполните поле \"Название\"!"); return; } if (m_ControlTemplate != null) { using (var transaction = Cl_App.m_DataContext.Database.BeginTransaction()) { try { var record = m_ControlTemplate.f_GetNewRecord(false); if (record != null) { if (m_SourceRecord == null && m_Log.f_IsChanged(record) == false) { MonitoringStub.Message("Паттерн не изменялся!"); transaction.Rollback(); return; } var recordPattern = Cl_RecordsFacade.f_GetInstance().f_GetNewRecordPattern(ctrlName.Text, record); if (recordPattern != null) { Cl_App.m_DataContext.p_RecordsPatterns.Add(recordPattern); Cl_App.m_DataContext.SaveChanges(); if (m_SourceRecord == null) { Cl_EntityLog.f_CustomMessageLog(E_EntityTypes.RecordsPatterns, string.Format("Создан новый патерн \"{0}\" по шаблону \"{1}\"", recordPattern.p_Name, recordPattern.p_Template.p_Name), recordPattern.p_Template.p_TemplateID); } else { Cl_EntityLog.f_CustomMessageLog(E_EntityTypes.RecordsPatterns, string.Format("Сформирован патерн по записи \"{0}\"", m_SourceRecord.p_Title), m_SourceRecord.p_RecordID); } transaction.Commit(); f_SetRecordPattern(recordPattern); e_Save?.Invoke(this, new EventArgs()); } else { transaction.Rollback(); return; } } else { return; } } catch (Exception ex) { transaction.Rollback(); MonitoringStub.Error("Error_Editor", "При сохранении изменений паттерна записей произошла ошибка", ex, null, null); } } } }
/// <summary>Обновление фасада</summary> public bool f_Update(Cl_User a_Doctor, Cl_MedicalCard a_MedCard, DateTime?a_DateStart = null, DateTime?a_DateEnd = null) { if (a_Doctor == null) { MonitoringStub.Error("Error_SessionFacade_Update", "Не указан доктор", null, null, null); return(false); } if (a_MedCard == null) { MonitoringStub.Error("Error_SessionFacade_Update", "Не указана медкарта", null, null, null); return(false); } p_Doctor = a_Doctor; p_Patient = new Cl_User(); p_Patient.p_UserID = a_MedCard.p_PatientID; p_Patient.p_UserSurName = a_MedCard.p_PatientSurName; p_Patient.p_UserName = a_MedCard.p_PatientName; p_Patient.p_UserLastName = a_MedCard.p_PatientLastName; p_Patient.p_Sex = a_MedCard.p_PatientSex; p_Patient.p_DateBirth = a_MedCard.p_PatientDateBirth; p_DateStart = a_DateStart; p_DateEnd = a_DateEnd; p_MedicalCard = a_MedCard; return(true); }
/// <summary>Объединение медкарт в одну действующую</summary> /// <param name="a_PatientID">ID пациента</param> public bool f_MergeMedicalCards(int a_PatientID) { if (m_DataContextMegaTemplate != null) { var medicalCards = m_DataContextMegaTemplate.p_MedicalCards.Where(m => m.p_DateArchive == null && m.p_PatientID == a_PatientID).ToList(); if (medicalCards != null && medicalCards.Count > 0) { if (medicalCards.Count > 1) { Cl_MedicalCard actualMedicalCard = null; foreach (var medicalCard in medicalCards) { if (actualMedicalCard == null || actualMedicalCard.p_DateCreate < medicalCard.p_DateCreate) { actualMedicalCard = medicalCard; } } medicalCards.Remove(actualMedicalCard); try { foreach (var medicalCard in medicalCards) { var records = Cl_RecordsFacade.f_GetInstance().f_GetRecords(medicalCard); if (records != null) { foreach (var record in records) { record.p_MedicalCardID = actualMedicalCard.p_ID; record.p_MedicalCard = actualMedicalCard; } } medicalCard.p_DateDelete = DateTime.Now; } actualMedicalCard.p_DateMerge = DateTime.Now; m_DataContextMegaTemplate.SaveChanges(); return(true); } catch (Exception er) { MonitoringStub.Error("Error_MergeMedicalCards", "Не удалось объединить медкарты в одну действующую", er, null, null); return(false); } } else { return(true); } } else { MonitoringStub.Error("Error_MergeMedicalCards", "Не удалось найти действующую медкарту", null, null, null); return(false); } } else { MonitoringStub.Error("Error_MedicalCardsFacade", "Не инициализирован фасад", null, null, null); return(false); } }
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 f_SetRecord(Cl_Record a_Record) { m_Record = a_Record; if (m_Record != null) { if (m_Record.p_MedicalCard != null) { ctrlPatientFIO.Text = string.Format("{0}, {1}, {2} ({3})", m_Record.p_MedicalCard.p_PatientFIO, m_Record.p_MedicalCard.p_PatientSex == Core.Permision.Cl_User.E_Sex.Man ? "М" : m_Record.p_MedicalCard.p_PatientSex == Core.Permision.Cl_User.E_Sex.Female ? "Ж" : "Нет данных", m_Record.p_MedicalCard.p_PatientDateBirth.ToShortDateString(), m_Record.p_MedicalCard.f_GetPatientAgeByMonthText(m_Record.p_DateCreate)); ctrlTitle.Text = m_Record.p_Title; if (m_Record.p_DateReception.Year >= 1980) { ctrlDTPDateReception.Value = m_Record.p_DateReception; ctrlDTPTimeReception.Value = m_Record.p_DateReception; } else { ctrlDTPDateReception.Value = DateTime.Now; ctrlDTPTimeReception.Value = DateTime.Now; } if (m_Record.p_Version == 0) { ctrl_Version.Text = "Черновик"; } else { ctrl_Version.Text = m_Record.p_Version.ToString(); } } if (m_Record.p_Template != null) { try { Cl_TemplatesFacade.f_GetInstance().f_LoadTemplatesElements(m_Record.p_Template); Text = string.Format("Запись \"{0}\" v{1}", m_Record.p_Template.p_Name, ConfigurationManager.AppSettings["Version"]); f_UpdateControls(); } catch (Exception er) { MonitoringStub.Error("Error_Editor", "Не удалось установить запись", er, null, null); } } else if (m_Record.p_Type == E_RecordType.FinishedFile) { try { Text = string.Format("Запись c готовым файлом v{0}", ConfigurationManager.AppSettings["Version"]); f_UpdateControls(); } catch (Exception er) { MonitoringStub.Error("Error_Editor", "Не удалось установить запись", er, null, null); } } m_Log.f_SetEntity(m_Record); } }
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); } }
private void ctrlDelete_Click(object sender, EventArgs e) { Cl_Category cat = null; if (ctrlCategoriesTab.SelectedTab == ctrlTabTotal) { cat = (Cl_Category)ctrlCategoriesTotal.SelectedRows[0].DataBoundItem; } else if (ctrlCategoriesTab.SelectedTab == ctrlTabClinik) { cat = (Cl_Category)ctrlCategoriesClinik.SelectedRows[0].DataBoundItem; } if (cat != null) { if (MessageBox.Show($"Удалить категорию \"{cat.p_Name}\"?", "Удаление категории", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) { return; } using (var transaction = Cl_App.m_DataContext.Database.BeginTransaction()) { try { if (ctrlCategoriesTab.SelectedTab == ctrlTabTotal) { if (ctrlCategoriesTotal.SelectedRows.Count == 1) { if (cat != null) { Cl_App.m_DataContext.p_Categories.Remove(cat); Cl_App.m_DataContext.SaveChanges(); transaction.Commit(); f_RefreshTotal(); } } } else if (ctrlCategoriesTab.SelectedTab == ctrlTabClinik) { if (ctrlCategoriesClinik.SelectedRows.Count == 1) { if (cat != null) { Cl_App.m_DataContext.p_Categories.Remove(cat); Cl_App.m_DataContext.SaveChanges(); transaction.Commit(); f_RefreshClinik(); } } } } catch { transaction.Rollback(); MonitoringStub.Error("Error_Tree", "Нельзя удалить категорию", null, null, null); } } } }
private void Ctrl_ElementDelete_Click(object sender, EventArgs e) { if (p_SelectedElement == null && p_SelectedElement.p_Element == null) { return; } if (MessageBox.Show($"Удалить элемент \"{p_SelectedElement.p_Element.p_Name}\"?", "Удаление элемента", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) { return; } using (var transaction = Cl_App.m_DataContext.Database.BeginTransaction()) { try { Cl_EntityLog eLog = new Cl_EntityLog(); var els = Cl_App.m_DataContext.p_Elements.Where(el => el.p_ElementID == p_SelectedElement.p_Element.p_ElementID).OrderByDescending(v => v.p_Version); if (els != null) { Cl_Element lastVersion = els.FirstOrDefault(); eLog.f_SetEntity(lastVersion); bool isChange = false; foreach (Cl_Element el in els) { el.p_IsDelete = true; isChange = true; } if (isChange) { Cl_App.m_DataContext.SaveChanges(); eLog.f_SaveEntity(lastVersion); transaction.Commit(); if (!p_IsShowDeleted) { SelectedNode.Remove(); } else { p_SelectedElement.p_Element = p_SelectedElement.p_Element; } } } else { MonitoringStub.Error("Error_Tree", "Не найдена элемент", new Exception("EX ERROR"), "p_SelectedElement.p_Element.p_ElementID = " + p_SelectedElement.p_Element.p_ElementID, null); } } catch (Exception ex) { transaction.Rollback(); MonitoringStub.Error("Error_Tree", "При удалении элемента произошла ошибка", ex, null, null); return; } } }
public object f_ConfirmChanges() { using (var transaction = Cl_App.m_DataContext.Database.BeginTransaction()) { try { Cl_Element el = null; if (p_EditingElement.p_Version == 0) { el = p_EditingElement; el.p_Version = 1; } else { el = new Cl_Element(); el.p_Version = p_EditingElement.p_Version + 1; el.p_ParentGroupID = p_EditingElement.p_ParentGroupID; el.p_ParentGroup = p_EditingElement.p_ParentGroup; Cl_App.m_DataContext.p_Elements.Add(el); } el.p_ElementType = E_ElementsTypes.Image; el.p_ElementID = p_EditingElement.p_ElementID; el.p_Name = ctrl_Name.Text; el.p_Tag = ctrlTag.Text; el.p_Image = ctrlImage.Image; el.p_Help = ctrl_Hint.Text; el.p_Comment = ctrl_Note.Text; Cl_App.m_DataContext.SaveChanges(); if (m_Log.f_IsChanged(el) == false) { if (el.Equals(p_EditingElement) && el.p_Version == 1) { el.p_Version = 0; } MonitoringStub.Message("Элемент не изменялся!"); transaction.Rollback(); return(null); } m_Log.f_SaveEntity(el); f_SetElement(el); transaction.Commit(); return(el); } catch (Exception ex) { transaction.Rollback(); MonitoringStub.Error("Error_Editor", "При сохранении изменений произошла ошибка", ex, null, null); return(null); } } }
/// <summary>Создание новой медкарты</summary> /// <param name="a_Number">Номер медкарта</param> /// <param name="a_PatientID">ID пациента</param> /// <param name="a_PatientSex">Пол пациента</param> /// <param name="a_PatientSurName">Фамиля пациента</param> /// <param name="a_PatientName">Имя пациента</param> /// <param name="a_PatientLastName">Отчество пациента</param> /// <param name="a_PatientDateBirth">Дата рождения пациента</param> /// <param name="a_Comment">Комментарий</param> /// <returns>Созданная медкарта</returns> public Cl_MedicalCard f_CreateMedicalCard(string a_Number, int a_PatientID, Cl_User.E_Sex a_PatientSex, string a_PatientSurName, string a_PatientName, string a_PatientLastName, DateTime a_PatientDateBirth, string a_Comment) { if (m_DataContextMegaTemplate != null) { if (string.IsNullOrWhiteSpace(a_Number)) { MonitoringStub.Error("Error_CreateMedicalCard", "Не указан номер медкарты", null, null, null); return(null); } if (string.IsNullOrWhiteSpace(a_PatientSurName)) { MonitoringStub.Error("Error_CreateMedicalCard", "Не указано фамилия пациента", null, null, null); return(null); } if (string.IsNullOrWhiteSpace(a_PatientName)) { MonitoringStub.Error("Error_CreateMedicalCard", "Не указано имя пациента", null, null, null); return(null); } if (string.IsNullOrWhiteSpace(a_PatientLastName)) { MonitoringStub.Error("Error_CreateMedicalCard", "Не указано отчество пациента", null, null, null); return(null); } var medicalCard = new Cl_MedicalCard(); try { medicalCard.p_Number = a_Number; medicalCard.p_DateCreate = DateTime.Now; medicalCard.p_PatientID = a_PatientID; medicalCard.p_PatientSex = a_PatientSex; medicalCard.p_PatientSurName = a_PatientSurName; medicalCard.p_PatientName = a_PatientName; medicalCard.p_PatientLastName = a_PatientLastName; medicalCard.p_PatientDateBirth = a_PatientDateBirth; medicalCard.p_Comment = a_Comment; m_DataContextMegaTemplate.p_MedicalCards.Add(medicalCard); m_DataContextMegaTemplate.SaveChanges(); return(medicalCard); } catch (Exception er) { m_DataContextMegaTemplate.p_MedicalCards.Remove(medicalCard); MonitoringStub.Error("Error_CreateMedicalCard", "Не удалось создать медкарту", er, null, null); return(null); } } else { MonitoringStub.Error("Error_MedicalCardsFacade", "Не инициализирован фасад", null, null, null); return(null); } }
/// <summary>Получение списка медкарт пациента</summary> /// <param name="a_PatientID">ID пациента</param> public List <Cl_MedicalCard> f_GetMedicalCardsByPatient(int a_PatientID) { if (m_DataContextMegaTemplate != null) { return(m_DataContextMegaTemplate.p_MedicalCards.Where(mc => mc.p_PatientID == a_PatientID).ToList()); } else { MonitoringStub.Error("Error_MedicalCardsFacade", "Не инициализирован фасад", null, null, null); return(null); } }
private void ctrlEdit_Click(object sender, EventArgs e) { var wEdit = new F_CategoryEdit(); try { if (ctrlCategoriesTab.SelectedTab == ctrlTabTotal) { if (ctrlCategoriesTotal.SelectedRows.Count == 1) { var cat = (Cl_Category)ctrlCategoriesTotal.SelectedRows[0].DataBoundItem; if (cat != null) { wEdit.Text = string.Format("Изменение категории \"{0}\"", cat.p_Name); wEdit.ctrlCategoryType.Text = "Общая категория"; wEdit.ctrlCategotyName.Text = cat.p_Name; if (wEdit.ShowDialog() == DialogResult.OK) { cat.p_Name = wEdit.ctrlCategotyName.Text; Cl_App.m_DataContext.SaveChanges(); m_SelectedTotal = cat; f_RefreshTotal(); } } } } else if (ctrlCategoriesTab.SelectedTab == ctrlTabClinik) { if (ctrlCategoriesClinik.SelectedRows.Count == 1) { var cat = (Cl_Category)ctrlCategoriesClinik.SelectedRows[0].DataBoundItem; if (cat != null) { wEdit.Text = string.Format("Изменение категории \"{0}\"", cat.p_Name); wEdit.ctrlCategoryType.Text = "Клиническая категория"; wEdit.ctrlCategotyName.Text = cat.p_Name; if (wEdit.ShowDialog() == DialogResult.OK) { cat.p_Name = wEdit.ctrlCategotyName.Text; Cl_App.m_DataContext.SaveChanges(); m_SelectedClinik = cat; f_RefreshClinik(); } } } } } catch (Exception er) { MonitoringStub.Error("Error_Editor", "Не удалось отредактировать категорию", er, null, null); } }
private void ctrlBRating_Click(object sender, EventArgs e) { try { Dlg_RatingViewer viewer = new Dlg_RatingViewer(); viewer.f_LoadRating(p_Record); viewer.ShowDialog(this); } catch (Exception er) { MonitoringStub.Error("Error_Editor", "Не удалось открыть оценку", er, null, null); } }
private void ctrlBHistory_Click(object sender, EventArgs e) { try { Dlg_HistoryViewer viewer = new Dlg_HistoryViewer(); viewer.LoadHistory(false, E_EntityTypes.Records, p_Record.p_RecordID); viewer.ShowDialog(this); } catch (Exception er) { MonitoringStub.Error("Error_Editor", "Не удалось открыть истории", er, null, null); } }
/// <summary>Присоединение медкарт</summary> /// <param name="a_SourceNumber">Номер источника медкарта</param> /// <param name="a_SourcePatientID">ID источника пациента</param> /// <param name="a_TargetNumber">Номер адресата медкарта</param> /// <param name="a_TargetPatientID">ID адресата пациента</param> public bool f_MergeMedicalCards(string a_SourceNumber, int a_SourcePatientID, string a_TargetNumber, int a_TargetPatientID) { if (m_DataContextMegaTemplate != null) { var sourceMedicalCard = f_GetMedicalCard(a_SourceNumber, a_SourcePatientID); if (sourceMedicalCard != null) { var targetMedicalCard = f_GetMedicalCard(a_TargetNumber, a_TargetPatientID); if (targetMedicalCard != null) { try { var records = Cl_RecordsFacade.f_GetInstance().f_GetRecords(sourceMedicalCard); if (records != null) { foreach (var record in records) { record.p_MedicalCardID = targetMedicalCard.p_ID; record.p_MedicalCard = targetMedicalCard; } } sourceMedicalCard.p_DateDelete = DateTime.Now; targetMedicalCard.p_DateMerge = DateTime.Now; m_DataContextMegaTemplate.SaveChanges(); return(true); } catch (Exception er) { MonitoringStub.Error("Error_MergeMedicalCards", "Не удалось присоединить медкарты", er, null, null); return(false); } } else { MonitoringStub.Error("Error_MergeMedicalCards", "Не удалось найти медкарту адресат", null, null, null); return(false); } } else { MonitoringStub.Error("Error_MergeMedicalCards", "Не удалось найти медкарту источник", null, null, null); return(false); } } else { MonitoringStub.Error("Error_MedicalCardsFacade", "Не инициализирован фасад", null, null, null); return(false); } }
public static bool Initialize() { if (!_IsInit) { string localResourcesPath = ""; try { Configuration config = ConfigurationManager.OpenExeConfiguration(Assembly.GetExecutingAssembly().Location); var con = config.ConnectionStrings.ConnectionStrings["MedicalChartDatabase"]; localResourcesPath = config.AppSettings.Settings["LocalResourcesPath"].Value; if (con == null) { MonitoringStub.Error("Error_AppInit", "Отсутствует настройка подключения к БД MedicalChartDatabase в конфигурационном фале", null, null, null); return(false); } m_DataContext = new Cl_DataContextMegaTemplate(con.ConnectionString); m_DataContext.Database.Connection.Open(); m_DataContext.f_Init(); } catch (Exception er) { MonitoringStub.Error("Error_AppInit", "Не удалось подключиться к базе данных", er, null, null); return(false); } if (!Cl_TemplatesFacade.f_GetInstance().f_Init(m_DataContext)) { MonitoringStub.Error("Error_AppInit", "Не удалось инициализировать фасад работы с шаблонами", null, null, null); return(false); } if (!Cl_RecordsFacade.f_GetInstance().f_Init(m_DataContext, localResourcesPath)) { MonitoringStub.Error("Error_AppInit", "Не удалось инициализировать фасад работы с записями", null, null, null); return(false); } if (!Cl_MedicalCardsFacade.f_GetInstance().f_Init(m_DataContext)) { MonitoringStub.Error("Error_AppInit", "Не удалось инициализировать фасад работы с медкартами", null, null, null); return(false); } if (!Cl_CatalogsFacade.f_GetInstance().f_Init(m_DataContext)) { MonitoringStub.Error("Error_AppInit", "Не удалось инициализировать фасад работы со справочниками", null, null, null); return(false); } _IsInit = true; } return(_IsInit); }
/// <summary>Получение медкарты</summary> /// <param name="a_Number">Номер медкарта</param> /// <param name="a_PatientUID">UID пациента</param> public Cl_MedicalCard f_GetMedicalCard(string a_Number, Guid a_PatientUID) { Cl_MedicalCard medicalCard = null; if (m_DataContextMegaTemplate != null) { return(m_DataContextMegaTemplate.p_MedicalCards.FirstOrDefault(m => m.p_Number == a_Number && m.p_PatientUID == a_PatientUID)); } else { MonitoringStub.Error("Error_MedicalCardsFacade", "Не инициализирован фасад", null, null, null); return(null); } }
private void Ctrl_ImageNew_Click(object sender, EventArgs e) { using (var transaction = Cl_App.m_DataContext.Database.BeginTransaction()) { try { Cl_EntityLog eLog = new Cl_EntityLog(); Cl_Element newElement = (Cl_Element)Activator.CreateInstance(typeof(Cl_Element)); eLog.f_SetEntity(newElement); Cl_Group group = null; if (p_SelectedGroup != null && p_SelectedGroup.p_Group != null) { group = p_SelectedGroup.p_Group; } Dlg_EditorImage dlg = new Dlg_EditorImage(); dlg.Text = "Новый рисунок"; if (group != null) { newElement.p_ParentGroup = p_SelectedGroup.p_Group; dlg.ctrl_LGroupValue.Text = p_SelectedGroup.p_Group.p_Name; } if (dlg.ShowDialog() != DialogResult.OK) { return; } newElement.p_Name = dlg.ctrl_TBName.Text; newElement.p_Comment = dlg.ctrl_TBDecs.Text; newElement.p_ElementType = Cl_Element.E_ElementsTypes.Image; Cl_App.m_DataContext.p_Elements.Add(newElement); Cl_App.m_DataContext.SaveChanges(); newElement.p_ElementID = newElement.p_ID; Cl_App.m_DataContext.SaveChanges(); eLog.f_SaveEntity(newElement); transaction.Commit(); Ctrl_TreeNodeElement newNode = new Ctrl_TreeNodeElement(group, newElement); SelectedNode.Nodes.Add(newNode); SelectedNode = newNode; e_AfterCreateElement?.Invoke(this, new TreeViewEventArgs(newNode)); } catch (Exception ex) { transaction.Rollback(); MonitoringStub.Error("Error_Tree", "При создании нового элемента произошла ошибка", ex, null, null); return; } } }
private void f_PopulateGroup() { try { Cl_Group[] groups = Cl_App.m_DataContext.p_Groups.Include(g => g.p_SubGroups).Where(g => g.p_Type == Cl_Group.E_Type.Elements && g.p_ParentID == null && (p_IsShowDeleted ? true : !g.p_IsDelete)).ToArray(); foreach (Cl_Group group in groups) { f_PopulateTreeGroup(group, ctrl_TreeElements.Nodes); } } catch (Exception er) { MonitoringStub.Error("Error_Editor", "Не удалось сформировать дерево элементов", er, null, null); } }
private void f_InitTreeView() { try { Cl_Group[] groups = Cl_App.m_DataContext.p_Groups.Include(g => g.p_SubGroups).Where(g => g.p_Type == Cl_Group.E_Type.Templates && g.p_ParentID == null && !g.p_IsDelete).ToArray(); foreach (Cl_Group group in groups) { f_PopulateTreeGroup(group, ctrl_TreeTemplates.Nodes); } } catch (Exception er) { MonitoringStub.Error("Error_Editor", "Не удалось инициализировать дерево шаблонов", er, null, null); } }
protected override void f_TreeView_DragDrop(object sender, DragEventArgs e, Ctrl_TreeNodeGroup a_TargetNodeGroup) { if (a_TargetNodeGroup != null) { using (var transaction = Cl_App.m_DataContext.Database.BeginTransaction()) { try { Ctrl_TreeNodeElement draggedNodeElement = (Ctrl_TreeNodeElement)e.Data.GetData(typeof(Ctrl_TreeNodeElement)); if (e.Effect == DragDropEffects.Move) { Cl_EntityLog eLog = new Cl_EntityLog(); eLog.f_SetEntity(draggedNodeElement.p_Element); var elsDraggeds = Cl_App.m_DataContext.p_Elements.Where(el => el.p_ElementID == draggedNodeElement.p_Element.p_ElementID); if (elsDraggeds != null) { bool isChange = false; foreach (Cl_Element el in elsDraggeds) { //el.p_ParentGroupID = a_TargetNodeGroup.p_Group.p_ID; el.p_ParentGroup = a_TargetNodeGroup.p_Group; isChange = true; } if (isChange) { Cl_App.m_DataContext.SaveChanges(); eLog.f_SaveEntity(draggedNodeElement.p_Element); transaction.Commit(); draggedNodeElement.Remove(); a_TargetNodeGroup.Nodes.Insert(f_GetFirstGroupInNode(a_TargetNodeGroup.Nodes), draggedNodeElement); } } else { MonitoringStub.Error("Error_Tree", "Не найдена элемент для шаблонов", new Exception("EX ERROR"), "elsDraggeds = null", null); } } } catch (Exception ex) { transaction.Rollback(); MonitoringStub.Error("Error_Tree", "При перемещении элемента произошла ошибка", ex, null, null); return; } } } }
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); } }
private void Ctrl_TreeView_DragDrop(object sender, DragEventArgs e) { Point targetPoint = PointToClient(new Point(e.X, e.Y)); Ctrl_TreeNodeGroup targetNodeGroup = GetNodeAt(targetPoint) as Ctrl_TreeNodeGroup; Ctrl_TreeNodeGroup draggedNodeGroup = (Ctrl_TreeNodeGroup)e.Data.GetData(typeof(Ctrl_TreeNodeGroup)); if (draggedNodeGroup != null) { if (!draggedNodeGroup.Equals(targetNodeGroup) && !f_ContainsNode(draggedNodeGroup, targetNodeGroup)) { if (e.Effect == DragDropEffects.Move) { Cl_Group groupDragged = Cl_App.m_DataContext.p_Groups.FirstOrDefault(g => g.p_ID == draggedNodeGroup.p_Group.p_ID); if (groupDragged != null) { if (targetNodeGroup == null) { groupDragged.p_ParentID = null; } else { groupDragged.p_ParentID = targetNodeGroup.p_Group.p_ID; } Cl_App.m_DataContext.SaveChanges(); draggedNodeGroup.Remove(); if (targetNodeGroup == null) { Nodes.Add(draggedNodeGroup); } else { targetNodeGroup.Nodes.Insert(f_GetFirstGroupInNode(targetNodeGroup.Nodes), draggedNodeGroup); } } else { MonitoringStub.Error("Error_Tree", "Не найдена группа шаблонов", new Exception("EX ERROR"), "groupDragged = null", null); } } } } else { f_TreeView_DragDrop(sender, e, targetNodeGroup); } }