async typeSearch()

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,
        });
    }