Interface FHIRResourceHelpers

  • All Known Implementing Classes:
    FHIRRestHelper

    public interface FHIRResourceHelpers
    This interface describes the set of helper methods from the FHIR REST layer that are used by custom operation implementations.
    • Method Detail

      • doCreate

        default FHIRRestOperationResponse doCreate​(String type,
                                                   Resource resource,
                                                   String ifNoneExist,
                                                   Map<String,​String> requestProperties)
                                            throws Exception
        Performs the heavy lifting associated with a 'create' interaction. Validates the resource.
        Parameters:
        type - the resource type specified as part of the request URL
        resource - the Resource to be stored.
        ifNoneExist - whether to create the resource if none exists
        requestProperties - additional request properties which supplement the HTTP headers associated with this request
        Returns:
        a FHIRRestOperationResponse object containing the results of the operation
        Throws:
        Exception
      • doCreate

        FHIRRestOperationResponse doCreate​(String type,
                                           Resource resource,
                                           String ifNoneExist,
                                           Map<String,​String> requestProperties,
                                           boolean doValidation)
                                    throws Exception
        Performs the heavy lifting associated with a 'create' interaction.
        Parameters:
        type - the resource type specified as part of the request URL
        resource - the Resource to be stored.
        ifNoneExist - whether to create the resource if none exists
        requestProperties - additional request properties which supplement the HTTP headers associated with this request
        doValidation - if true, validate the resource; if false, assume the resource has already been validated
        Returns:
        a FHIRRestOperationResponse object containing the results of the operation
        Throws:
        Exception
      • doUpdate

        default FHIRRestOperationResponse doUpdate​(String type,
                                                   String id,
                                                   Resource newResource,
                                                   String ifMatchValue,
                                                   String searchQueryString,
                                                   Map<String,​String> requestProperties)
                                            throws Exception
        Performs an update operation (a new version of the Resource will be stored). Validates the resource.
        Parameters:
        type - the type of the resource to be updated
        id - the id of the Resource being updated
        newResource - the new resource to be stored
        ifMatchValue - an optional "If-Match" header value to request a version-aware update
        searchQueryString - an optional search query string to request a conditional update
        Returns:
        a FHIRRestOperationResponse that contains the results of the operation
        Throws:
        Exception
      • doUpdate

        FHIRRestOperationResponse doUpdate​(String type,
                                           String id,
                                           Resource newResource,
                                           String ifMatchValue,
                                           String searchQueryString,
                                           Map<String,​String> requestProperties,
                                           boolean doValidation)
                                    throws Exception
        Performs an update operation (a new version of the Resource will be stored).
        Parameters:
        type - the type of the resource to be updated
        id - the id of the Resource being updated
        newResource - the new resource to be stored
        ifMatchValue - an optional "If-Match" header value to request a version-aware update
        searchQueryString - an optional search query string to request a conditional update
        doValidation - if true, validate the resource; if false, assume the resource has already been validated
        Returns:
        a FHIRRestOperationResponse that contains the results of the operation
        Throws:
        Exception
      • doPatch

        FHIRRestOperationResponse doPatch​(String type,
                                          String id,
                                          FHIRPatch patch,
                                          String ifMatchValue,
                                          String searchQueryString,
                                          Map<String,​String> requestProperties)
                                   throws Exception
        Performs a patch operation (a new version of the Resource will be stored).
        Parameters:
        type - the type of the resource to be updated
        id - the id of the Resource being updated
        patch - the patch to apply
        ifMatchValue - an optional "If-Match" header value to request a version-aware update
        searchQueryString - an optional search query string to request a conditional update
        Returns:
        a FHIRRestOperationResponse that contains the results of the operation
        Throws:
        Exception
      • doDelete

        FHIRRestOperationResponse doDelete​(String type,
                                           String id,
                                           String searchQueryString,
                                           Map<String,​String> requestProperties)
                                    throws Exception
        Performs a 'delete' operation on the specified resource.
        Parameters:
        type - the resource type associated with the Resource to be deleted
        id - the id of the Resource to be deleted
        Returns:
        a FHIRRestOperationResponse that contains the results of the operation
        Throws:
        Exception
      • doRead

        Resource doRead​(String type,
                        String id,
                        boolean throwExcOnNull,
                        boolean includeDeleted,
                        Map<String,​String> requestProperties,
                        Resource contextResource,
                        javax.ws.rs.core.MultivaluedMap<String,​String> queryParameters)
                 throws Exception
        Performs a 'read' operation to retrieve a Resource.
        Parameters:
        type - the resource type associated with the Resource to be retrieved
        id - the id of the Resource to be retrieved
        queryParameters - for supporting _elements and _summary for resource read
        Returns:
        the Resource
        Throws:
        Exception
      • doRead

        Resource doRead​(String type,
                        String id,
                        boolean throwExcOnNull,
                        boolean includeDeleted,
                        Map<String,​String> requestProperties,
                        Resource contextResource)
                 throws Exception
        Performs a 'read' operation to retrieve a Resource.
        Parameters:
        type - the resource type associated with the Resource to be retrieved
        id - the id of the Resource to be retrieved
        Returns:
        the Resource
        Throws:
        Exception
      • doVRead

        Resource doVRead​(String type,
                         String id,
                         String versionId,
                         Map<String,​String> requestProperties,
                         javax.ws.rs.core.MultivaluedMap<String,​String> queryParameters)
                  throws Exception
        Performs a 'vread' operation by retrieving the specified version of a Resource.
        Parameters:
        type - the resource type associated with the Resource to be retrieved
        id - the id of the Resource to be retrieved
        versionId - the version id of the Resource to be retrieved
        requestProperties - additional request properties which supplement the HTTP headers associated with this request
        queryParameters - for supporting _elements and _summary for resource vread
        Returns:
        the Resource
        Throws:
        Exception
      • doVRead

        Resource doVRead​(String type,
                         String id,
                         String versionId,
                         Map<String,​String> requestProperties)
                  throws Exception
        Performs a 'vread' operation by retrieving the specified version of a Resource.
        Parameters:
        type - the resource type associated with the Resource to be retrieved
        id - the id of the Resource to be retrieved
        versionId - the version id of the Resource to be retrieved
        requestProperties - additional request properties which supplement the HTTP headers associated with this request
        Returns:
        the Resource
        Throws:
        Exception
      • doHistory

        Bundle doHistory​(String type,
                         String id,
                         javax.ws.rs.core.MultivaluedMap<String,​String> queryParameters,
                         String requestUri,
                         Map<String,​String> requestProperties)
                  throws Exception
        Performs the work of retrieving versions of a Resource.
        Parameters:
        type - the resource type associated with the Resource to be retrieved
        id - the id of the Resource to be retrieved
        queryParameters - a Map containing the query parameters from the request URL
        requestUri -
        requestProperties -
        Returns:
        a Bundle containing the history of the specified Resource
        Throws:
        Exception
      • doHistory

        Bundle doHistory​(javax.ws.rs.core.MultivaluedMap<String,​String> queryParameters,
                         String requestUri,
                         Map<String,​String> requestProperties)
                  throws Exception
        Implement the system level history operation to obtain a list of changes to resources
        Parameters:
        queryParameters - a Map containing the query parameters from the request URL
        requestUri -
        requestProperties -
        Returns:
        a Bundle containing the history of the specified Resource
        Throws:
        Exception
      • doSearch

        Bundle doSearch​(String type,
                        String compartment,
                        String compartmentId,
                        javax.ws.rs.core.MultivaluedMap<String,​String> queryParameters,
                        String requestUri,
                        Map<String,​String> requestProperties,
                        Resource contextResource)
                 throws Exception
        Performs heavy lifting associated with a 'search' operation.
        Parameters:
        type - the resource type associated with the search
        queryParameters - a Map containing the query parameters from the request URL
        Returns:
        a Bundle containing the search result set
        Throws:
        Exception
      • doInvoke

        Resource doInvoke​(FHIROperationContext operationContext,
                          String resourceTypeName,
                          String logicalId,
                          String versionId,
                          String operationName,
                          Resource resource,
                          javax.ws.rs.core.MultivaluedMap<String,​String> queryParameters,
                          Map<String,​String> requestProperties)
                   throws Exception
        Helper method which invokes a custom operation.
        Parameters:
        operationContext - the FHIROperationContext associated with the request
        resourceTypeName - the resource type associated with the request
        logicalId - the resource logical id associated with the request
        versionId - the resource version id associated with the request
        operationName - the name of the custom operation to be invoked
        resource - the input resource associated with the custom operation to be invoked
        queryParameters - query parameters may be passed instead of a Parameters resource for certain custom operations invoked via GET
        requestProperties - additional request properties which supplement the HTTP headers associated with this request
        Returns:
        a Resource that represents the response to the custom operation
        Throws:
        Exception
      • doBundle

        Bundle doBundle​(Bundle bundle,
                        Map<String,​String> requestProperties)
                 throws Exception
        Processes a bundled request (batch or transaction type).
        Parameters:
        bundle - the request Bundle
        Returns:
        the response Bundle
        Throws:
        Exception
      • doReindex

        int doReindex​(FHIROperationContext operationContext,
                      OperationOutcome.Builder operationOutcomeResult,
                      Instant tstamp,
                      String resourceLogicalId)
               throws Exception
        Invoke the FHIR persistence reindex operation for a randomly chosen resource which was last reindexed before the given date
        Parameters:
        operationContext -
        operationOutcomeResult -
        tstamp -
        resourceLogicalId - a reference to a resource e.g. "Patient/abc123". Can be null
        Returns:
        number of resources reindexed (0 if no resources were found to reindex)
        Throws:
        Exception