public OperationForm(PatientViewForm patientViewForm, DbEngine dbEngine, PatientClass patientInfo) { _stopSaveParameters = true; InitializeComponent(); _patientInfo = patientInfo; _dbEngine = dbEngine; _patientViewForm = patientViewForm; Text = "Список операций для " + _patientInfo.GetFullName(); }
/// <summary> /// Удалить выделенного пациента /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void buttonDelete_Click(object sender, EventArgs e) { try { int currentNumber = PatientList.CurrentCellAddress.Y; if (currentNumber < 0) { MessageBox.Show("Нет выделенных записей", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } PatientClass patientInfo = GetSelectedPatient(); if (patientInfo.OpenedPatientViewForm != null && !patientInfo.OpenedPatientViewForm.IsDisposed) { MessageBox.Show("Данный пациент заблокирован для удаления,\r\nтак как он в данный момент редактируется.\r\nЗакройте окно просмотра информации по данному пациенту\r\nи попробуйте ещё раз.", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (DialogResult.Yes == MessageBox.Show("Вы уверены, что хотите удалить все данные о пациенте " + patientInfo.GetFullName() + "?\r\nДанная операция необратима.", "Вопрос", MessageBoxButtons.YesNo, MessageBoxIcon.Question)) { _dbEngine.RemovePatient(patientInfo.Id); } ShowPatients(); } catch (Exception ex) { MessageBox.Show(ex.ToString(), "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Проверить, удовлетворяет ли переданный пациент условиям фильтра /// </summary> /// <param name="patientInfo">Информация про пациента</param> /// <returns></returns> private bool IsThisPatientSatisfyFilterOptions(PatientClass patientInfo) { // Проверка ФИО if (!string.IsNullOrEmpty(textBoxFilterFIO.Text)) { if (!patientInfo.GetFullName().ToLower().Contains(textBoxFilterFIO.Text.ToLower())) { return(false); } } // Проверка даты поступления if ((dateTimePickerFilterDeliveryDateStart.Checked && DateTime.Compare(dateTimePickerFilterDeliveryDateStart.Value.Date, patientInfo.DeliveryDate.Date) > 0) || (dateTimePickerFilterDeliveryDateEnd.Checked && DateTime.Compare(dateTimePickerFilterDeliveryDateEnd.Value.Date, patientInfo.DeliveryDate.Date) < 0)) { return(false); } // Проверка даты выписки if (dateTimePickerFilterReleaseDateStart.Checked && (!patientInfo.ReleaseDate.HasValue || DateTime.Compare(dateTimePickerFilterReleaseDateStart.Value.Date, patientInfo.ReleaseDate.Value.Date) > 0)) { return(false); } if (dateTimePickerFilterReleaseDateEnd.Checked && (!patientInfo.ReleaseDate.HasValue || DateTime.Compare(dateTimePickerFilterReleaseDateEnd.Value.Date, patientInfo.ReleaseDate.Value.Date) < 0)) { return(false); } // Проверка даты последней операции int operationsCount = patientInfo.Operations.Count; if (dateTimePickerFilterOperationDateStart.Checked && (operationsCount == 0 || DateTime.Compare(dateTimePickerFilterOperationDateStart.Value.Date, patientInfo.Operations[operationsCount - 1].DataOfOperation) > 0)) { return(false); } if (dateTimePickerFilterOperationDateEnd.Checked && (operationsCount == 0 || DateTime.Compare(dateTimePickerFilterOperationDateEnd.Value.Date, patientInfo.Operations[operationsCount - 1].DataOfOperation) < 0)) { return(false); } // Проверка нозологии if (!string.IsNullOrEmpty(textBoxFilterNosology.Text)) { if (!patientInfo.Nosology.ToLower().Contains(textBoxFilterNosology.Text.ToLower())) { return(false); } } // Проверка диагноза if (!string.IsNullOrEmpty(textBoxFilterDiagnose.Text)) { if (!patientInfo.Diagnose.ToLower().Contains(textBoxFilterDiagnose.Text.ToLower())) { return(false); } } // Проверка количества операций if (!CheckFilterWithMode(comboBoxFilterOperationCntMode.Text, textBoxFilterOperationCnt.Text, patientInfo.Operations.Count.ToString())) { return(false); } // Проверка Д/Н if (!string.IsNullOrEmpty(textBoxFilterDN.Text)) { if (string.IsNullOrEmpty(patientInfo.GetDN()) || !patientInfo.GetDN().ToLower().Contains(textBoxFilterDN.Text.ToLower())) { return(false); } } // Проверка к/д if (!CheckFilterWithMode(comboBoxFilterKDMode.Text, textBoxFilterKD.Text, patientInfo.GetKD())) { return(false); } // Проверка врача if (!string.IsNullOrEmpty(textBoxFilterDoctor.Text)) { if (string.IsNullOrEmpty(patientInfo.DoctorInChargeOfTheCase) || !patientInfo.DoctorInChargeOfTheCase.ToLower().Contains(textBoxFilterDoctor.Text.ToLower())) { return(false); } } return(true); }