Healthcare Financial Services IG Edition 1
0.3.0 - ci-build Saudi Arabia flag

Healthcare Financial Services IG Edition 1 - Local Development build (v0.3.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Polling

Overview

Under some circumstances messages may be queued at nphies rather than being delivered directly to the provider, such as:

  • where the payer cannot provide the final response in real-time, for example, due to using overnight adjudication or requiring human review;
  • where the target payer or Third Party Administrator’s system is currently offline; or,
  • where the payer issues a message which is not a direct response to a particular request message such as a request for supporting information or a payment reconciliation.

The provider may send a Poll Request to nphies which will return any pended messages in a Poll Response. nphies maintains a queue for all messages which could not be delivered to the provider as responses to real-time requests from the provider, see Store and Forward - Queue Management. This is likely to include deferred responses to claim adjudications, prior authorization adjudications, requests for additional information and payment reconciliations. The provider sends a Poll Request to the gateway which responds with the next response message(s) from the queue or with an indication that there are no further messages in the queue.

Workflow

Polling Workflow Diagram

  1. Provider sends an Poll Request Message to the nphies system.
  2. nphies validates the message and if not valid proceeds to Step 3 and returns errors, otherwise proceeds to Step 3 to extract and return queued messages.
  3. nphies retrieves any pended messages from the provider queue based on the request parameters and returns a Poll Response Message containing the requested messages, or errors to the provider.

This is a REAL TIME use case. In addition to returning the requested pended messages, and clearing them from the queue, nphies will provide the Meta Tag: queued-messages should any messages remain in the queue.

Message Structures

Poll Request Message

The key resources for the message are provided below and all require nphies-profiled resources as provided in the Artifacts. Note: the MessageHeader resource must be the first .entry in the bundle and any other resources may follow in any order.

Nphies Bundle (.type = message )
  Nphies MessageHeader (.eventCoding = poll-request)
  Nphies Task (.code.coding.code = poll)
  Nphies Organization (Provider)
  Nphies Organization (nphies)

Poll Response Message

The key resources for the message are provided below and all require nphies-profiled resources as provided in the Artifacts. Note: the MessageHeader resource must be the first .entry in the bundle and any other resources may follow in any order.

Nphies Bundle (.type = message )
  Nphies MessageHeader (.eventCoding = poll-response)
  Nphies Task (.code.coding.code = poll)
  Nphies Organization (Provider)
  Nphies Organization (nphies)
  [Message Bundle(s) referred to in the Poll Response (Task.output.valueReference) containing any queued messages]

Guidance

A Poll Request uses a Task resource to provide the parameters for retrieving pended mesages from the queue. The response to such a request is a Poll Response, which is also a Task resource, referring to: zero or more previously undelivered messages or errors in the request message. A simple Poll Request, one which doesn’t specify additional input parameters: include-message-type, exclude-message-type, period or count; would return any single pended message, if there is one in the queue. Specific types of business behaviors may be supported by providing values for the filtering elements in the .input element, for example:

  • Get any pended resource - no filters (parameters) specified;
  • Get deferred response to a Claim - specify the Claim in the .focus;
  • Get all requests for supporting information - specify ‘communication-request’ as an ‘include-message-type’;
  • Get up to 5 PaymentReconciliations – specify “payment-reconciliation” as an ‘include-message-type’ and 5 as a count;
  • Get any message except a PaymentReconciliation - specify ‘payment-reconciliation’ as an ‘exclude-message-type’;
  • Get a PaymentReconciliation message – specify a ‘period’ which contains the expected reconciliation creation date, and specify ‘payment-reconciliation’ as an ‘include-message-type’; or
  • Get up to 50 messages – specify a count of 50. Upon processing of the request, the Task may contain errors or a reference to the messages, Bundle resource(s), found.

Multiple include-message-type and exclude-message-type parameters may be specified, however, include-message-type and exclude-message-type parameters are mutually exclusive therefore either includes or excludes should be used at a time not both. A combination of parameters may be used and only the parameters necessary should be specified. To obtain responses to a given message, put the business identifier in Task.focus.identifier.

Task Input Type
ParameterCard.ElementDescription
count 0..1 valuePositiveInt Maximum number of messages to return from the queue to a limit of 100, 1 if not supplied
exclude-message-type 0..* valueCodeableConcept Filter: message event types to enclude by event code of the desired types of messages (MessageHeader.event.coding.code)
include-message-type 0..* valueCodeableConcept Filter: message event types to include by event code of the desired types of messages (MessageHeader.event.coding.code)
period 0..1 valuePeriod The date range to filter messages based on when the message was received by nphies

Full Message Examples

ExampleDescription
Example #1 Request Poll Request - simple request for next message from the queue, if any.
Example #1 Response Poll Response responding to request #1 for the next message from the queue.
Example #2 Request Poll Request - request up to 25 queued messages excluding PaymentReconciliations.
Example #3 Request Poll Request - request a response to a specific request message.

Error Handling

If nphies detects errors in the request message such that the request cannot be processed then the response message will contain an OperationOutcome resource rather than a business-level Poll Response message. Otherwise if nphies detects errors within the request it will return a Poll Response with errors (Task.output.type = ‘error’) and an extension indicating where the error occurred.

Like all other response messages the provider receives from nphies, if there are other messages queued at nphies which have not been delivered to the provider then this will be reflected in the presence of a MessageHeader.meta.tag.