Class FHIRResource

    • Field Detail

      • HTTP_DATETIME_FORMATTER

        public static final java.time.format.DateTimeFormatter HTTP_DATETIME_FORMATTER
      • AUDIT_LOGGING_ERR_MSG

        protected static final java.lang.String AUDIT_LOGGING_ERR_MSG
        See Also:
        Constant Field Values
      • context

        @Context
        protected javax.servlet.ServletContext context
      • httpServletRequest

        @Context
        protected javax.servlet.http.HttpServletRequest httpServletRequest
      • uriInfo

        @Context
        protected javax.ws.rs.core.UriInfo uriInfo
        UriInfo injected by the JAXRS framework.

        Use getRequestUri() instead to get the original request URI when constructing URIs that will be sent back to the end user.

      • securityContext

        @Context
        protected javax.ws.rs.core.SecurityContext securityContext
    • Constructor Detail

      • FHIRResource

        public FHIRResource()
                     throws java.lang.Exception
        Throws:
        java.lang.Exception
    • Method Detail

      • checkInitComplete

        protected void checkInitComplete()
                                  throws FHIROperationException
        This method will do a quick check of the "initCompleted" flag in the servlet context. If the flag is FALSE, then we'll throw an error to short-circuit the current in-progress REST API invocation.
        Throws:
        FHIROperationException
      • checkType

        protected void checkType​(java.lang.String type)
                          throws FHIROperationException
        This method will do a quick check of the {type} URL parameter. If the type is not a valid FHIR resource type, then we'll throw an error to short-circuit the current in-progress REST API invocation.
        Throws:
        FHIROperationException
      • parseIfModifiedSince

        protected long parseIfModifiedSince()
      • buildOperationOutcomeIssue

        protected OperationOutcome.Issue buildOperationOutcomeIssue​(IssueSeverity severity,
                                                                    IssueType type,
                                                                    java.lang.String msg)
        Builds an OperationOutcomeIssue with the respective values for some of the fields.
      • buildAbsoluteUri

        protected java.lang.String buildAbsoluteUri​(java.lang.String baseUri,
                                                    java.lang.String relativeUri)
        This function will build an absolute URI from the specified base URI and relative URI.
        Parameters:
        baseUri - the base URI to be used; this will be of the form ://:/
        relativeUri - the path and query parts
        Returns:
        the full URI value as a String
      • addETagAndLastModifiedHeaders

        protected javax.ws.rs.core.Response.ResponseBuilder addETagAndLastModifiedHeaders​(javax.ws.rs.core.Response.ResponseBuilder rb,
                                                                                          Resource resource)
        Adds the Etag and Last-Modified headers to the response from the specified resource (if possible).
        Parameters:
        rb -
        resource -
        Returns:
      • addHeaders

        protected javax.ws.rs.core.Response.ResponseBuilder addHeaders​(javax.ws.rs.core.Response.ResponseBuilder rb,
                                                                       int fallbackETagVersion)
        Adds the Etag header to the specified response object.
        Parameters:
        rb -
        fallbackETagVersion -
        Returns:
      • addHeaders

        protected javax.ws.rs.core.Response.ResponseBuilder addHeaders​(javax.ws.rs.core.Response.ResponseBuilder rb,
                                                                       java.net.URI locationURI)
        Add the etag header using the version obtained from the locationURI
        Parameters:
        rb -
        locationURI -
        Returns:
      • exceptionResponse

        protected javax.ws.rs.core.Response exceptionResponse​(FHIROperationException e,
                                                              javax.ws.rs.core.Response.Status status)
      • exceptionResponse

        protected javax.ws.rs.core.Response exceptionResponse​(java.lang.Exception e,
                                                              javax.ws.rs.core.Response.Status status)
      • exceptionResponse

        protected javax.ws.rs.core.Response exceptionResponse​(OperationOutcome oo,
                                                              javax.ws.rs.core.Response.Status status)
      • getSearchHelper

        protected SearchHelper getSearchHelper()
        Retrieves the shared persistence helper object from the servlet context.
      • isUpdateCreateEnabled

        protected java.lang.Boolean isUpdateCreateEnabled()
      • getRequestUri

        protected java.lang.String getRequestUri()
                                          throws java.lang.Exception
        Get the original request URI from either the HttpServletRequest or a configured Header (in case of re-writing proxies).

        When the 'fhirServer/core/originalRequestUriHeaderName' property is empty, this method returns the equivalent of uriInfo.getRequestUri().toString(), except that uriInfo.getRequestUri() will throw an IllegalArgumentException when the query string portion contains a vertical bar | character. The vertical bar is one known case of a special character causing the exception. There could be others.

        Returns:
        String The complete request URI
        Throws:
        java.lang.Exception - if an error occurs while reading the config
      • toUri

        protected java.net.URI toUri​(java.lang.String uriString)
                              throws java.net.URISyntaxException
        This method simply returns a URI object containing the specified URI string.
        Parameters:
        uriString - the URI string for which the URI object will be created
        Throws:
        java.net.URISyntaxException
      • buildUnsupportedResourceTypeException

        protected FHIROperationException buildUnsupportedResourceTypeException​(java.lang.String resourceTypeName)
      • getFhirVersion

        protected FHIRVersionParam getFhirVersion()
        The FHIRVersion to use for the current request
        Returns:
        the corresponding FHIRVersion for the org.linuxforhealth.fhir.server.fhirVersion request context attribute