//Used for Chain Reference Searching public string[] GetResourceFhirIdByReferanceIndex(IEnumerable <string> FhirIdArray, string ResourceName, int SearchParameterIdArray) { LinqKit.ExpressionStarter <ResCurrentType> ResCurrentTypePredicate = null; ResCurrentTypePredicate = ResourceCurrentPredicateGeneratorByRefereneNoPaging <ResCurrentType, ResIndexStringType, ResIndexTokenType, ResIndexUriType, ResIndexReferenceType, ResIndexQuantityType, ResIndexDateTimeType>(FhirIdArray, ResourceName, SearchParameterIdArray); var Query = DbGetAll <ResCurrentType, ResIndexStringType, ResIndexTokenType, ResIndexUriType, ResIndexReferenceType, ResIndexQuantityType, ResIndexDateTimeType>(ResCurrentTypePredicate); var Result = Query.Select(x => x.FhirId).ToArray(); return(Result); }
//Used for _include and _Revinclude public string[] GetResourceFhirIdByResourceIdAndIndexReferance(int ResourceId, int[] SearchParameterIdArray, string ResourceName = "") { LinqKit.ExpressionStarter <ResIndexReferenceType> RefPredicate = null; if (string.IsNullOrWhiteSpace(ResourceName)) { RefPredicate = IndexRefPredicateGenerator <ResCurrentType, ResIndexStringType, ResIndexTokenType, ResIndexUriType, ResIndexReferenceType, ResIndexQuantityType, ResIndexDateTimeType>(ResourceId, SearchParameterIdArray); } else { RefPredicate = IndexRefPredicateGenerator <ResCurrentType, ResIndexStringType, ResIndexTokenType, ResIndexUriType, ResIndexReferenceType, ResIndexQuantityType, ResIndexDateTimeType>(ResourceId, SearchParameterIdArray, ResourceName); } var IndexQuery = DbGetIndexAll <ResCurrentType, ResIndexStringType, ResIndexTokenType, ResIndexUriType, ResIndexReferenceType, ResIndexQuantityType, ResIndexDateTimeType>(RefPredicate); var IndexResult = IndexQuery.Select(x => x.ReferenceFhirId).ToArray(); return(IndexResult); }