in src/router/handlers/resourceHandler.ts [68:114]
async typeSearch(
resourceType: string,
queryParams: any,
userIdentity: KeyValueMap,
requestContext: RequestContext,
serverUrl: string,
tenantId?: string,
) {
const allowedResourceTypes = await this.authService.getAllowedResourceTypesForOperation({
operation: 'search-type',
userIdentity,
requestContext,
});
const searchFilters = await this.authService.getSearchFilterBasedOnIdentity({
userIdentity,
requestContext,
operation: 'search-type',
resourceType,
fhirServiceBaseUrl: serverUrl,
});
const searchResponse = await this.searchService.typeSearch({
resourceType,
queryParams,
baseUrl: serverUrl,
allowedResourceTypes,
searchFilters,
tenantId,
sessionId: hash(userIdentity),
});
const bundle = BundleGenerator.generateBundle(
serverUrl,
queryParams,
searchResponse.result,
'searchset',
resourceType,
);
return this.authService.authorizeAndFilterReadResponse({
operation: 'search-type',
userIdentity,
requestContext,
readResponse: bundle,
fhirServiceBaseUrl: serverUrl,
});
}