/// <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); }