/// <summary> /// Executes a search, returning a list of hits. /// </summary> /// <param name="wisc"></param> /// <returns></returns> public override IList <WorklistItem> GetSearchResults(IWorklistItemSearchContext wisc) { var results = new List <WorklistItem>(); // the search criteria is broken up to gain performance. See #2416. var criteriaWithPatientConditions = SelectCriteriaWithPatientConditions(wisc.SearchCriteria); var criteriaWithoutPatientConditions = ExcludeCriteriaWithPatientConditions(wisc.SearchCriteria); if (criteriaWithPatientConditions.Length > 0) { results = UnionMerge(results, wisc.FindWorklistItems(criteriaWithPatientConditions), item => item.ProcedureRef); } if (criteriaWithoutPatientConditions.Length > 0) { results = UnionMerge(results, wisc.FindWorklistItems(criteriaWithoutPatientConditions), item => item.ProcedureRef); } // include procedure degenerate items if requested if (wisc.IncludeDegenerateProcedureItems) { // search for procedures if (criteriaWithPatientConditions.Length > 0) { results = UnionMerge(results, wisc.FindProcedures(criteriaWithPatientConditions), item => item.ProcedureRef); } if (criteriaWithoutPatientConditions.Length > 0) { results = UnionMerge(results, wisc.FindProcedures(criteriaWithoutPatientConditions), item => item.ProcedureRef); } } // include patient degenerate items if requested if (wisc.IncludeDegeneratePatientItems) { // search for patients if (criteriaWithPatientConditions.Length > 0) { // add any patients for which there is no result results = UnionMerge(results, wisc.FindPatients(criteriaWithPatientConditions), item => item.PatientRef); } } return(results); }
/// <summary> /// Executes a search, returning a list of hits. /// </summary> /// <param name="wisc"></param> /// <returns></returns> public override IList<WorklistItem> GetSearchResults(IWorklistItemSearchContext wisc) { var where = wisc.SearchCriteria; var results = new List<WorklistItem>(); results = UnionMerge(results, wisc.FindWorklistItems(where), item => item.ProcedureRef); // include degenerate procedure items if requested if (wisc.IncludeDegenerateProcedureItems) { // search for procedures results = UnionMerge(results, wisc.FindProcedures(where), item => item.ProcedureRef); } // include degenerate patient items if requested if (wisc.IncludeDegeneratePatientItems) { // add any patients for which there is no result results = UnionMerge(results, wisc.FindPatients(where), item => item.PatientRef); } return results; }
/// <summary> /// Executes a search, returning a list of hits. /// </summary> /// <param name="wisc"></param> /// <returns></returns> public override IList <WorklistItem> GetSearchResults(IWorklistItemSearchContext wisc) { var where = wisc.SearchCriteria; var results = new List <WorklistItem>(); results = UnionMerge(results, wisc.FindWorklistItems(where), item => item.ProcedureRef); // include degenerate procedure items if requested if (wisc.IncludeDegenerateProcedureItems) { // search for procedures results = UnionMerge(results, wisc.FindProcedures(where), item => item.ProcedureRef); } // include degenerate patient items if requested if (wisc.IncludeDegeneratePatientItems) { // add any patients for which there is no result results = UnionMerge(results, wisc.FindPatients(where), item => item.PatientRef); } return(results); }
/// <summary> /// Executes a search, returning a list of hits. /// </summary> /// <param name="wisc"></param> /// <returns></returns> public override IList<WorklistItem> GetSearchResults(IWorklistItemSearchContext wisc) { var results = new List<WorklistItem>(); // the search criteria is broken up to gain performance. See #2416. var criteriaWithPatientConditions = SelectCriteriaWithPatientConditions(wisc.SearchCriteria); var criteriaWithoutPatientConditions = ExcludeCriteriaWithPatientConditions(wisc.SearchCriteria); if (criteriaWithPatientConditions.Length > 0) { results = UnionMerge(results, wisc.FindWorklistItems(criteriaWithPatientConditions), item => item.ProcedureRef); } if (criteriaWithoutPatientConditions.Length > 0) { results = UnionMerge(results, wisc.FindWorklistItems(criteriaWithoutPatientConditions), item => item.ProcedureRef); } // include procedure degenerate items if requested if (wisc.IncludeDegenerateProcedureItems) { // search for procedures if (criteriaWithPatientConditions.Length > 0) { results = UnionMerge(results, wisc.FindProcedures(criteriaWithPatientConditions), item => item.ProcedureRef); } if (criteriaWithoutPatientConditions.Length > 0) { results = UnionMerge(results, wisc.FindProcedures(criteriaWithoutPatientConditions), item => item.ProcedureRef); } } // include patient degenerate items if requested if (wisc.IncludeDegeneratePatientItems) { // search for patients if (criteriaWithPatientConditions.Length > 0) { // add any patients for which there is no result results = UnionMerge(results, wisc.FindPatients(criteriaWithPatientConditions), item => item.PatientRef); } } return results; }