public CPatientView(CPatient patientInfo, CWorkersKeeper workersKeeper) { Id = patientInfo.Id.ToString(CultureInfo.InvariantCulture); Nosology = patientInfo.Nosology; FullName = patientInfo.GetFullName(); HospitalizationCnt = workersKeeper.HospitalizationWorker.GetCountByPatientId(patientInfo.Id).ToString(CultureInfo.InvariantCulture); VisitCnt = workersKeeper.VisitWorker.GetCountByPatientId(patientInfo.Id).ToString(CultureInfo.InvariantCulture); COperation[] operations = workersKeeper.OperationWorker.GetListByPatientId(patientInfo.Id); OperationCnt = operations.Length.ToString(CultureInfo.InvariantCulture); Age = CConvertEngine.GetAge(patientInfo.Birthday); var operationTypeSB = new StringBuilder(); foreach (COperation operation in operations) { foreach (string operationType in operation.OperationTypes) { if (!operationTypeSB.ToString().Contains(operationType)) { operationTypeSB.Append(operationType + ", "); } } } OperationTypes = operationTypeSB.Length > 0 ? operationTypeSB.ToString().Substring(0, operationTypeSB.Length - 2) : operationTypeSB.ToString(); int hospitalizationCnt = Convert.ToInt32(HospitalizationCnt); int visitCnt = Convert.ToInt32(VisitCnt); CVisit lastVisit = null; if (visitCnt > 0) { lastVisit = workersKeeper.VisitWorker.GetListByPatientId(patientInfo.Id)[visitCnt - 1]; } CHospitalization lastHospitalization = null; if (hospitalizationCnt > 0) { lastHospitalization = workersKeeper.HospitalizationWorker.GetListByPatientId(patientInfo.Id)[hospitalizationCnt - 1]; } if (lastHospitalization != null) { DeliveryDateString = CConvertEngine.DateTimeToString(lastHospitalization.DeliveryDate, true); ReleaseDateString = CConvertEngine.DateTimeToString(lastHospitalization.ReleaseDate, false); KD = lastHospitalization.KD; if (lastVisit == null) { Diagnose = lastHospitalization.DiagnoseOneLine; } } if (lastVisit != null) { VisitDateString = CConvertEngine.DateTimeToString(lastVisit.VisitDate, true); } if (lastHospitalization == null && lastVisit != null) { Diagnose = lastVisit.DiagnoseOneLine; } else if (lastHospitalization != null && lastVisit != null) { int dateCompareResult = CCompareEngine.CompareDateTime(lastHospitalization.DeliveryDate, lastVisit.VisitDate); Diagnose = dateCompareResult >= 0 ? lastHospitalization.DiagnoseOneLine : lastVisit.DiagnoseOneLine; } }