Draft Provider Pricing Clause Integration Point

The process of adding/updating draft provider pricing clauses to a pricing worksheet is a long running operation that can be initiated by a HTTP POST request to: http://[hostName]:[portNumber]/[api-context-root]/draftproviderpricingclauses. More information on the behavior of long running operations can be found here**.

This request has the following structure:

{
 "dataFileSetCode" : "...",
 "pricingWorksheetCode"   : "...",
 "pricingWorksheetDescription"   : "..."
 "accessRestrictionCode" : "..."
 "responseDatafileSetCode" : "..."
}

Submitting an XML equivalent payload, contained by the root element: DraftProviderPricingClauseInput has the same effect.

In the above request the dataFileSetCode refers to the data file set that contains the datafile(s) with draft provider pricing clause records that needs to be imported.

This process supports the initial creation of and updates to pricing worksheets:

  • If the pricing worksheet code is unknown to the system then a new pricing worksheet is created.

  • If the pricing worksheet code is known then the system updates the existing pricing worksheet. The payload is interpreted as the current state of the pricing worksheet and appropriate changes are made to draft provider pricing clauses. See section processing details for more information.

  • The pricing worksheet description is used to describe the pricing worksheet.

  • The response data File Set Code refers to the data file set that contains the datafile(s) response with draft provider pricing clause records. It is used for data file set responsefile. If not provided the system generates a UUID based value as data file set code.

Note: The code and description are both mandatory.

Request

Because this service supports requests with a potentially significant volume, it relies on the data file set web service to import the draft provider pricing clause payload into the application before it reads and processes the data.

For more information about how to create a data file set please refer Data File Set Integration Point.

This XML shows the structure expected by the application:

<draftProviderPricingClauses>
 <draftProviderPricingClause
   code=""
   description=""
   groupingLabel=""
   individualProviderCode=""
   individualProviderDefinitionCode=""
   organizationProviderCode=""
   organizationProviderDefinitionCode=""
   providerGroupCode=""
   providerCategoryCode=""
   exempt=""
   quantifier=""
   quantifierCurrency=""
   priorityCode=""
   classificationSchemeUsage=""
   claimClassificationUsage=""
   claimLineClassificationUsage=""
   productCategoryCode=""
   locationTypeGroupUsage=""
   locationTypeGroupCode=""
   procedureGroupUsage=""
   procedureGroupCode=""
   procedureConditionUsage=""
   procedureConditionCode=""
   procedureGroup2Usage=""
   procedureGroup2Code=""
   procedureCondition2Usage=""
   procedureCondition2Code=""
   procedureGroup3Usage=""
   procedureGroup3Code=""
   procedureCondition3Usage=""
   procedureCondition3Code=""
   restrictToReimbursementMethodUsage=""
   contractReferenceCode=""
   ageFrom=""
   ageTo=""
   startDate=""
   endDate=""
   enabled=""
   messageCode=""
   elementId=""
   pricingRule=""
   pricingRuleSubtype=""
   reimbursementMethod=""
   reimbursementMethodSubtype= "">

    <draftProviderPricingClauseDynLogicList>
     <draftProviderPricingClauseDynLogic code=""/>
     ...
    </draftProviderPricingClauseDynLogicList>
    <draftProviderPricingClauseClaimClassificationList>
     <draftProviderPricingClauseClaimClassification code=""/>
     ...
    </draftProviderPricingClauseClaimClassificationList>
    <draftProviderPricingClauseClaimLineClassificationList>
     <draftProviderPricingClauseClaimLineClassification code=""/>
     ...
    </draftProviderPricingClauseClaimLineClassificationList>
    <draftProviderPricingClauseClassificationSchemeList>
     <draftProviderPricingClauseClassificationScheme code=""/>
     ...
    </draftProviderPricingClauseClassificationSchemeList>
    <draftProviderPricingClauseRestrictReimbursementMethodList>
     <draftProviderPricingClauseRestrictReimbursementMethod
      code=""
      type=""
     />
     ...
    </draftProviderPricingClauseRestrictReimbursementMethodList>
    <draftProviderPricingClauseDimRateList>
     <draftProviderPricingClauseDimRate
      sequence=""
      amount=""
      size=""
     />
     ...
    </draftProviderPricingClauseDimRateList>
    <draftProviderPricingClauseReferenceSheetOverrideList>
     <draftProviderPricingClauseReferenceSheetOverride usageName="" startDate= "" endDate = "">
     <columns>
       <column
        name=""
        flexCodeDefinitionCode=""
        columnValue=""
       >
       ...
      <columns>
      </draftProviderPricingClauseReferenceSheetOverride>
     ...
   </draftProviderPricingClauseReferenceSheetOverrideList>
  </draftProviderPricingClause>
             ...
</draftProviderPricingClauses>

The metadata for the above structure can be accessed on the /api/draftproviderpricingclauses/payload/definition as swagger definition.

Note the following

  • If the quantifier value is specified (type amount) but the quantifier currency is not, then the system applies the default currency.

  • The required "elementId" attribute supports correlation between an error message and a specific draft provider pricing clause. This information will be part of the data file set response that will be produced by the write draft provider pricing batch process.

As soon as the data file set - containing at least one datafile with a pricing worksheet payload - is created, the pricing worksheet import process can be started by invoking the draft provider pricing clauses long running process.

Process Details

This process supports creation of pricing worksheet along with draft provider pricing clauses.

It also supports updating an existing pricing worksheet:

  • Draft provider pricing clauses present in the file that do not yet exist in OHI Claims are created. This concerns draft provider pricing clauses in the file (1) for which a code is not specified or (2) for which a code is specified that does not yet exist in the pricing worksheet in OHI Claims.

  • Draft provider pricing clauses present in the file that already exist in OHI Claims are updated based on the common rules on how to handle attribute updates in web services. This concerns draft provider pricing clauses in the file for which a code is specified that already exists in the pricing worksheet in OHI Claims. Note that it is not possible to update the reimbursement method or pricing rule of a draft provider pricing clause that has already been built.

  • Existing draft provider pricing clauses in OHI Claims that are not present in the file are deleted.

  • If the file contains a draft provider pricing clause without a code attribute value, the system creates a new one and assigns a system generated sequence as the code.

  • For new draft provider pricing clauses, the type of the reimbursement method or pricing rule must be specified. This is not needed for updates.

Note that the creation of - or updates to - pricing rules and reimbursement methods is not supported by this operation.

Response

As is described in Long Running Operations through REST there are multiple ways in which one can get the response/result of this long running operation. Typically though one would opt for using notification events.

A notification message can be sent out to a pre-configured endpoint. The notification endpoint can be configured on 'ohi.activityprocessing.notification.endpoint.DRAFT_PROVIDER_PRC_IMPORT' or to a more generic endpoint: ohi.activityprocessing.notification.endpoint.

If the notification endpoint is configured on the specific: DRAFT_PROVIDER_PRC_IMPORT, all other related properties like media type, authentication, etc. are also fetched based on DRAFT_PROVIDER_PRC_IMPORT, or else defaults are used. Similarly, if the endpoint for the notification is configured without the specific code, then all other properties are fetched on a generic use case code 'ActivityResponseClient'. Please see section Outbound RESTful Service Invocations in Integration Guide for the process and more properties.

The notification message has the common notification structure as described in the chapter Long Running Operations through REST in the Integration Guide.

The response notification includes a data file set link of the completed draftproviderpricingclauses request. This enables an integration pattern that relies on polling progress which allows the user to perform a collection queries over draftproviderpricingclauses resources.

The data file set holds the result of the draft provider pricing clauses with the following mock XML structure:

<draftProviderPricingClauses>
     <resultMessages result="" elementId="">
        <resultMessage code="">
            message text
        </resultMessage>
         ...
    </resultMessages>
   ...
</draftProviderPricingClauses>

Notes:

  • The <draftProviderPricingClauses> element contains zero, one or more resultMessages. Each resultMessages is identified by the elementId as provided in the request message and by its code. Each resultMessages contains one or more messages which relate to that particular draft provider pricing clause. The response only contains <resultMessages> elements for:

    • draft provider pricing clauses that actually generated error/info messages during processing.

    • draft provider pricing clauses that were assigned a code by OHI Claims. Thus, the generated code is returned in the response method so that the calling interface may store it. It is returned using message code PRI-IP-DPPC-008

Error Messages

The following error messages that are specific to this web service may be returned in the response messages:

Code Sev Text

PRI-IP-DPPC-001

Fatal

It is not possible to set an overriding diminishing rate for a draft provider pricing clause without a diminishing rate reimbursement method

PRI-IP-DPPC-002

Fatal

It is not possible to update the reimbursement method or pricing rule of a draft provider pricing clause that has already been built

PRI-IP-DPPC-003

Fatal

It is not possible to set an overriding reference sheet line for a draft provider pricing clause without a payment function reimbursement method

PRI-IP-DPPC-004

Fatal

Unknown reference sheet with usage name {usageName}

PRI-IP-DPPC-005

Fatal

Either the reimbursement method type or the pricing rule type must be specified for new draft provider pricing clauses

PRI-IP-DPPC-006

Fatal

Type or code (or both) must be specified for restrict to reimbursement methods

PRI-IP-DPPC-007

Fatal

The specified access restriction code {code} is unknown

PRI-IP-DPPC-008

Info

Generated code {code} for draft provider pricing clause with element id {element id}

CLA-HTTP-010

Fatal

The specified data file set code {code} is unknown

The response can also contain generic error messages that are not specific to this web service. Please refer to them Response Messages section for more details.

Authorization

A grant for access restriction 'Draft Provider Pricing Clause IP' must be provided to be able to initiate this operation.