API Definition & Example


Following is an example of an API definition. It serves as a starting point for implementers to understand what they may wish to publish to vendors in order to integrate. Additional custom HTTP request and response headers may be added.. A trace number or other sender/source details may also be desired.


Claim/$submit and Claim/$reversal

This is an example of a FHIR defined Operation that can be used to support Claim Related Requests, which are the Claim Request - Dispense and Professional Services as well as the Claim Reversal Transaction.



Overview Detail
API Type REST
Verb POST
Request Content Type JSON: application/fhir+json
Response Content Type JSON: application/fhir+json
Required Request Headers Accept: application/fhir+json; fhirVersion= 4.0.1
Description Service to process FHIR Dispense claim, Professional Services claim or Claim Reversal request

This is a message bundle, with a Message Header.focus=claim. The exact transaction will be determined by the Message Header.event id which is used to specify the transaction type. This is a Request-reply pattern that returns a claim or reversal response.
Request Profiles Claim/$submit
Claim/$reversal

Production Endpoint URL
eg https://EnvironmentSpecificHost/EnvironmentPath/api/xml/eClaimsRequest/claim/$submit
Endpoint will be published by each implementer and will be specific to the Claims Switch or Adjudicator and Environment (Production or Test)
Service Response HTTP Code header and Payload HTTP 200 for success + response payload as FHIR bundle
HTTP 400 for bad requests + payload as OperationOutcome bad request format or FHIR request message validation failure or processing faliure due to bad data
HTTP 401 for authentication failure
HTTP 500 for any backend errors + payload as OperationOutcome with error level issue
Service Response HTTP Header Values may include reference numbers or other key data as defined by the implementer
FHIR Header Values:
fhir-message-bundle-id: An identifier that specifies the version of the application that processed the request. For example,
fhir-message-request-id: The FHIR message header ID of the request. This may not be defined if the input FHIR request is not valid.
fhir-message-response-id: The HL7 response ID. This may not be defined if the HL7 response does not contain an ID.
Authentication Header Values - example only: authentication-username: The username that was authenticated.
authentication-token: The token that was authenticated. This may be different than the one passed into the request if the authenticator is configured to generate a new token for each request.
authentication-state: The authentication state. SERVER_ERROR, ACCOUNT_LOCKED_TEMP__TRY_AGAIN_LATER, AUTHENTICATED, AUTHENTICATION_FAILED, USERNAME_TOKEN_MISSING, USERNAME_MISSING, TOKEN_MISSING, USERNAME_TOKEN_MISMATCH, TOKEN_INVALID, TOKEN_EXPIRED
authentication-details: If more details are required such as for state ACCOUNT_LOCKED_TEMP_TRY_AGAIN_LATER, this contains them.
authentication-tokenCreationDate: The creation date of the token, in ms since EPOCH.
authentication-tokenExpiryDate: The expiry date of the token, in ms since EPOCH

fhir-message-response-status: The status of the response. The option are SUCCESS or FAILURE.

Detected Issues Header Value
detectedIssue-errorCode: The ERROR_CODE that denotes the issue.
detectedIssue-errorMessage: If an issue is detected, this will be the message to describe the issue.
detectedIssue-userReason_#: If an issue is detected, and if there are more detailed reasons for an error, they will be provided in the header. Each reason will be in its own HEADER value.
Example:
detectedIssue-userReason_1: bad format of FHIR request
detectedIssue-userReason_2: FHIR request is missing fields


$daily-totals


This capability is invoked using the $daily-totals* Operation. The operation is invoked using an HTTP POST and the result set with either be an OperationOutcome (if there were errors) or a Bundle, Message Header + Parameters:Out instance containing the result set.
Overview Details
API Type REST
Verb POST
Request Content Type: JSON: application/fhir+json
Response Content Type: JSON: application/fhir+json
Required Request Headers Accept: application/fhir+json; fhirVersion= 4.0
Description Service to process FHIR request for Daily Totals, including a Parameters resource. This is a Request for the Accumulated Totals for a specific adjudication date, and if specified, a list of Carriers and/or Group ID's to be included or excluded, as indicated in the request.
Endpoint URL
https://EnvironmentSpecificHost/EnvironmentSpecificPath/api/xml/eClaimsRequest/[base]/$daily-totals

*NOTE: Endpoint will be published by each implementer prior to vendor testing and will be specific to the Claims Processor/Switch/Adjudicator
Service Response HTTP Code header and Payload HTTP 200 for success + response as FHIR Parameters resource
HTTP 400 for bad requests + payload as OperationOutcome bad request format or FHIR request message validation failure or processing faliure due to bad data
HTTP 401 for authentication failure
HTTP 500 for any backend errors + payload as OperationOutcome with error level issue
Service Response HTTP Header Values all to be discussed as per above Operation


$adjudication-details

**Insert Content TBD, after review of the above.

ADD STUFF HERE

HTTP Headers - supporting info only, can be removed after review


The FHIR specification makes use of several HTTP headers to change the processing or format of requests or results, (https://build.fhir.org/http.html#Http-Headers). Following are the HTTP Headers that will be used within this specification, as seenin the API Definitons above.

As above - once review is complete the content will be extended here as well