Annotation Type Operation


RESTful method annotation used for a method which provides FHIR "operations".
  • Required Element Summary

    Required Elements
    Modifier and Type
    Required Element
    Description
    The name of the operation, e.g.
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    If this operation returns a bundle, this parameter can be used to specify the bundle type to set in the bundle.
    boolean
    If this is set to true, this method will be a global operation meaning that it applies to all resource types.
    boolean
    If a given operation method is idempotent (meaning roughly that it does not modify any data or state on the server) then this flag should be set to true (default is false).
    boolean
    If this is set to true (default is false and this is almost always the right choice), the framework will not attempt to parse the request body, but will instead delegate it to the @Operation method.
    boolean
    If this is set to true (default is false and this is almost always the right choice), the framework will not attempt to generate a response to this method.
    This parameter may be used to specify the parts which will be found in the response to this operation.
    Class<? extends IBaseResource>
    This value may be populated with the resource type that the operation applies to.
    This value may be populated with the resource type that the operation applies to.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static String
    This constant is a special return value for name().
  • Field Details

    • NAME_MATCH_ALL

      static final String NAME_MATCH_ALL
      This constant is a special return value for name(). If this name is used, the given operation method will match all operation calls. This is generally not desirable, but can be useful if you have a server that should dynamically match any FHIR operations that are requested.
      See Also:
      Constant Field Values
  • Element Details

    • name

      The name of the operation, e.g. "$everything"

      This may be specified with or without a leading '$'. (If the leading '$' is omitted, it will be added internally by the API).

    • type

      This value may be populated with the resource type that the operation applies to. If set to IBaseResource (which is the default) than the operation applies to the server and not to a specific resource type.

      This attribute should not be used a resource provider implementing IResourceProvider since the type can be inferred from the resource provider type.

      See Also:
      may also be used to specify a value as a String
      Default:
      org.hl7.fhir.instance.model.api.IBaseResource.class
    • typeName

      This value may be populated with the resource type that the operation applies to. If set to IBaseResource (which is the default) than the operation applies to the server and not to a specific resource type.

      This attribute should not be used a resource provider implementing IResourceProvider since the type can be inferred from the resource provider type.

      See Also:
      may also be used to specify a value for this setting as a class type
      Default:
      ""
    • idempotent

      boolean idempotent
      If a given operation method is idempotent (meaning roughly that it does not modify any data or state on the server) then this flag should be set to true (default is false).

      One the server, setting this to true means that the server will allow the operation to be invoked using an HTTP GET (on top of the standard HTTP POST)

      Default:
      false
    • returnParameters

      This parameter may be used to specify the parts which will be found in the response to this operation.
      Default:
      {}
    • bundleType

      If this operation returns a bundle, this parameter can be used to specify the bundle type to set in the bundle.
      Default:
      COLLECTION
    • manualResponse

      If this is set to true (default is false and this is almost always the right choice), the framework will not attempt to generate a response to this method.

      This is useful if you want to include an javax.servlet.http.HttpServletResponse in your method parameters and create a response yourself directly from your @Operation method.

      Note that this will mean that interceptor methods will not get fired for the response, so there are security implications to using this flag.

      Default:
      false
    • manualRequest

      boolean manualRequest
      If this is set to true (default is false and this is almost always the right choice), the framework will not attempt to parse the request body, but will instead delegate it to the @Operation method.

      This is useful if you want to include an javax.servlet.http.HttpServletRequest in your method parameters and parse the request yourself.

      Default:
      false
    • global

      boolean global
      If this is set to true, this method will be a global operation meaning that it applies to all resource types. Operations with this flag set should be placed in Plain Providers (i.e. they don't need to be placed in a resource-type-specific IResourceProvider instance) and should have a parameter annotated with IdParam.
      Default:
      false