コード例 #1
0
        public async Task <IActionResult> Create([Bind("Index, SearchCriteria, SearchClass, Field, SearchValue, AndOr")]
                                                 PatientSearchViewModel[] patientSearchViewModel)
        {
            for (var index = 0; index < patientSearchViewModel.Count(); index++)
            {
                var criteria = patientSearchViewModel[index];
                criteria.Index = index.ToString();
                if (index == 0)
                {
                    criteria.AndOr     = "AND";
                    criteria.Predicate = PredicateBuilder.True <Patient>();
                }
                else
                {
                    criteria.AndOr = Request.Query["PatientSearchViewModel[" + index + "].AndOr"];
                    if (criteria.AndOr == "AND")
                    {
                        criteria.Predicate = PredicateBuilder.True <Patient>();
                    }
                    else
                    {
                        criteria.Predicate = PredicateBuilder.False <Patient>();
                    }
                }
            }
            var patients = await _aspergillosisContext.Patients
                           .Include(p => p.PatientDiagnoses).
                           ThenInclude(d => d.DiagnosisType)
                           .Include(p => p.PatientDrugs).
                           ThenInclude(d => d.Drug)
                           .Include(p => p.PatientDiagnoses)
                           .ThenInclude(d => d.DiagnosisCategory)
                           .Include(p => p.PatientDrugs)
                           .ThenInclude(d => d.SideEffects)
                           .ThenInclude(se => se.SideEffect)
                           .Include(p => p.PatientStatus)
                           .Include(p => p.STGQuestionnaires)
                           .Include(p => p.PatientSurgeries)
                           .Include(p => p.PatientAllergicIntoleranceItems)
                           .Where(PatientSearchViewModel.BuildPredicate(patientSearchViewModel))
                           .ToListAsync();

            return(Json(patients));
        }