Esempio n. 1
0
        public OperationForm(PatientViewForm patientViewForm, DbEngine dbEngine, PatientClass patientInfo)
        {
            _stopSaveParameters = true;
            InitializeComponent();

            _patientInfo     = patientInfo;
            _dbEngine        = dbEngine;
            _patientViewForm = patientViewForm;

            Text = "Список операций для " + _patientInfo.GetFullName();
        }
Esempio n. 2
0
        /// <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);
            }
        }
Esempio n. 3
0
        /// <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);
        }