Draft Provider Pricing Clauses Worksheet

The task describes how to create new worksheets with draft provider pricing clauses and to edit existing draft provider pricing clauses on existing worksheets.

This page allows a user to edit draft provider pricing clauses in context of a single worksheet. There is another page that allows a user to edit draft provider pricing clauses across worksheets (refer to the text in Draft Provider Pricing Clauses Worksheet).

This page cannot be opened directly, but is opened through the "Pricing Worksheets" page (refer to the text in Pricing Worksheets, but read the text below first to understand the concept "Pricing Worksheet").

Draft Provider Pricing Clauses

A draft provider pricing clause is used to create a real[1] provider pricing clause. Thus, creating provider pricing clauses is a two-step process. Draft provider pricing clauses are created first and then built into real provider pricing clauses.

A draft provider pricing clause looks exactly like a real provider pricing clause, but:

  • a draft provider pricing clause has no mandatory fields (except for field 'Method/Rule Type', see below): for example, for a real provider pricing clause it is mandatory to specify the code of a reimbursement method or pricing rule. This is not mandatory for draft provider pricing clauses. So it becomes possible to start by just specifying the type 'Lower of Rule' without actually pointing out which lower of rule.

  • a draft provider pricing clause may comprise invalid references: for example, a real provider pricing clause can only refer to a procedure group that has been defined beforehand, whereas a draft provider pricing clause may refer to a procedure group that does not exist yet.

This freedom allows the user to start with the configuration of draft provider pricing clauses first and worry later about details such as the creation of the referred-to configuration components (for example, procedure groups). Also, draft provider pricing clauses are not subject to any business rule validations.

It is mandatory to specify the type of the reimbursement method or pricing rule to which a draft provider pricing clause refers (field 'Method/Rule Type'), as that information is integral to the essence of a draft provider pricing clause. This is the only restriction that is being imposed on draft provider pricing clauses; all other checks are executed during validate or build.

When draft provider pricing clauses are built into real provider pricing clauses, all mandatory fields must be entered, all references to configuration components must be valid and all business rule validations must be complied with. Therefore, when the user is done with creating the draft provider pricing clauses, they must assert that the clauses are complete and correct and that all needed configuration components exist. Draft provider pricing clauses for which this is not the case are pinpointed by validation messages by Claims (upon validation or build, see below).

It is not mandatory to use draft provider pricing clauses. It is also possible to directly create real provider pricing clauses. However, it is not possible to create ('reverse engineer') draft provider pricing clauses from real provider pricing clauses.

This text only explains fields specific to draft provider pricing clauses. Please refer to the Provider Pricing Clauses Model page in this Configuration Guide for a description of all other fields.

References to Configuration Components

References to configuration components should be made using their unique code.

The following configuration components are not uniquely identified by their code alone, therefore additional information must be provided:

  • Individual provider: besides the code of the individual provider, also the code of the corresponding flex code definition must be provided.

  • Organization provider: besides the code of the organization provider, also the code of the corresponding flex code definition must be provided.

  • Reimbursement method: besides the code of the reimbursement method, also the type must be indicated.

  • Pricing rule: besides the code of the pricing rule, also the type must be indicated.

With respect to provider codes, if the code of the flex code definition is not specified, Claims tries to determine the provider by provider code only. This is only possible if that provider code is not present in Claims with different definitions; otherwise a message is raised during validation (see below). If the provider was successfully determined by code alone, upon validation and build the determined definition code is stored on the draft provider pricing clause.

When restricting a pricing rule to a specific reimbursement method, specifying both the code and the type of the reimbursement method is required in order to successfully build the draft provider pricing clause.

A draft provider pricing clause can refer to multiple dynamic logic conditions. The codes of these conditions are all entered into one field, individual codes separated by semicolons. This mechanism is also used for classifications and classification schemes.

A draft provider pricing clause can refer to multiple diminishing rate blocks, reference sheet lines and/or restrict-to-reimbursement-methods. These are shown as a pop-up dialog in the user interface page (see below).

As an entry aid, it is possible to use a list-of-values on every draft provider pricing clause field that refers to a configuration component. Such a list-of-values shows existing configuration components, for example, the list-of-values on field 'Product Category' shows all existing product categories. Entry of any draft provider pricing clause field is not limited to items available in the list-of-values that serve as entry aids.

Pricing Worksheet

To create draft provider pricing clauses, first a worksheet has to be created as a container for the draft provider pricing clauses.

The decision on how to use worksheets, that is, to decide which draft provider pricing clauses should be put in which worksheet, is an implementation consideration. An imaginable use is that within a single worksheet all draft provider pricing clauses pertaining to the same contract reference are created and maintained. Another imaginable use is for a worksheet that contains all global draft provider pricing clauses, that is, those without a specific contract or provider reference.

After a worksheet code and description are entered in the primary field, the draft provider pricing clauses for that worksheet can be created and maintained.

To create a worksheet, click the button "New Worksheet" in the page "Pricing Worksheets". Existing worksheets can be opened from that page too.

Code

Each draft provider pricing clause has a field "Code". This field identifies the draft provider pricing clause within the worksheet. Upon creation of a draft provider pricing clause, the field "Code" may be set manually or be left empty. If left empty, Claims automatically fills it with a generated sequence number that is unique within the worksheet. Once saved, the code of a draft provider pricing clause can no longer be changed.

Grouping Label

Draft provider pricing clauses feature the optional field "Grouping Label", which serves the purpose of grouping draft provider pricing clauses in UI pages. To understand why this is useful, consider a case rate for observation which may be implemented by three different provider pricing clauses: a fee schedule, inclusion, and lower of. Because a worksheet may contain many other draft provider pricing clauses, it’s desirable to group together draft provider pricing clauses that are related. Otherwise, the draft provider pricing clauses for the observation rate may be spread out in the worksheet, with draft provider pricing clauses for other purposes showed in between. That would make it hard to understand the pricing configuration in a worksheet.

The grouping label is automatically populated for draft provider pricing clauses which are created using a template or option (see below).

Overriding Diminishing Rate Blocks

In the event that a draft provider pricing clause has a reimbursement method of the type 'diminishing rate', the user can add, remove and update overriding diminishing rate blocks.

Overriding Reference Sheet Lines

In the event that a draft provider pricing clause has a reimbursement method of the type 'payment function', the user can add overriding reference sheet lines from reference sheets associated with (the dynamic logic of) the specified payment function.

Restrict-to-Reimbursement-Methods

A draft provider pricing clause can be inclusively or exclusively applied to one or more reimbursement methods.

Validate Worksheet

The Validate operation checks if all draft provider pricing clauses in the worksheet are valid. A draft provider pricing clause is valid, if it can be built into a real provider pricing clause, meaning:

  • All fields mandatory for a real provider pricing clause have a value.

  • All references to configuration components are valid (for example, the referred-to reimbursement method exists).

  • All validations by business rules succeed (for example, "The quantifier may not be specified when a provider pricing clause is marked as exempt").

  • Dynamic field values can be copied from the draft provider pricing clause to the real provider pricing clause (see below).

  • Overriding Diminishing Rate Blocks can be copied from the draft provider pricing clause to the real provider pricing clause (see below).

  • Overriding Reference Sheet Lines can be copied from the draft provider pricing clause to the real provider pricing clause (see below).

During the validation operation the worksheet becomes immutable until the operation is complete.

The validation operation sets the following information on the draft provider pricing clause and the pricing worksheet:

  • The 'Last Validated' fields with the time and date of the completion of the validation run, and with the user that issued it.

  • The validation status ('Valid' or 'Invalid').

  • Worksheet level counters on the validation run

  • Validation messages. Validation messages from a previous validation or build run are discarded.

Draft provider pricing clauses that have not yet been validated have the validation status 'Unknown'. Also, any relevant[2] change to a draft provider pricing clause with validation status 'Valid' or 'Invalid', sets the validation status to 'Unknown'. In rare circumstances, a previously validated draft provider pricing clause may later (for example, during build) turn out to be invalid. For example, this may happen when referred-to configuration components which were previously present are deleted later or have their functional keys altered.

Validate Selected Rows

It is possible to perform a validation for a limited subset of draft provider pricing clauses by explicitly selecting them[3].

Build Worksheet

The Build operation builds a real provider pricing clause for every draft provider pricing clause in the worksheet. Only valid provider pricing clauses can be created.

The link between a draft provider pricing clause and the real provider pricing clause that was created from it is maintained. This enables updates and deletes, that is, maintenance of the worksheet:

  • Updates: during build of a draft provider pricing clause Claims checks if a real provider pricing clause was created earlier for that draft. If so, instead of creating a new real provider pricing clause, the existing real provider pricing clause is updated.

  • Deletes: Claims maintains a list of all previously built draft provider pricing clauses which have since been deleted from the worksheet. During build, Claims then also deletes the corresponding real provider pricing clauses. If that is not possible because a provider pricing clause has already been used for claims pricing (and tracking records referring to it exist) it is not deleted but disabled.

A real provider pricing clause is created as a (translated) copy of its corresponding draft provider pricing clauses. The fields 'Built from worksheet' and 'Build from draft provider pricing clause' are filled with the code of the worksheet and the code of the original draft provider pricing clause. The real provider pricing clauses inherit the access restriction from the pricing worksheet.

When the build background task is spawned, the worksheet becomes immutable until the build task is complete. An informative message is displayed to notify the user that the build is running.

It is possible that some draft provider pricing clauses in the worksheet are valid and some are invalid. In that case, the valid ones are translated to real provider pricing clauses, the invalid ones lead to validation messages (in the same manner as in a 'dry' validation of the worksheet, see above). A build is implicitly also a validation.

It may be desirable to not create any real provider pricing clause at all, when one or more draft provider pricing clauses in the worksheet are invalid. For that purpose the build operation accepts a 'continue when invalid' parameter. When set to false, the operation stops if at least one draft provider pricing clause in the worksheet is not valid (validation status "Invalid" or "Unknown").

If stopped, the user may execute a validation first, to assert that all draft provider pricing clauses are valid. It may be desirable to not create any real provider pricing clause at all, when one or more draft provider pricing clauses in the worksheet are invalid.

When the build operation completes successfully:

  • The 'Last Validated' fields with the time and date of the completion of the build run, and with the user that issued it (because a build is implicitly also a validation).

  • The 'Last Built' with the time and date of the completion of the build run, and with the user that issued it

  • The validation status ('Valid' or 'Invalid').

  • The build status of each draft provider pricing clause that was successfully built to a real provider pricing clause ('Built').

  • Worksheet level counters on the build run.

  • Validation messages. Validation messages from a previous validation or build run are discarded.

Draft provider pricing clauses that have not yet been successfully built have build status 'New'. Draft provider pricing clauses that were built earlier but have been changed[4] since have build status 'Changed'.

Overriding Diminishing Rate Blocks

Upon creating a real provider pricing clause from a draft, any overriding diminishing rate blocks defined on the draft are copied to overrides on the real provider pricing clause.

This is only possible if the overrides can be mapped to an existing diminishing rate block.

Overriding Reference Sheet Lines

Upon creating a real provider pricing clause from a draft, any overriding reference sheet lines defined on the draft are copied to overrides on the real provider pricing clause.

This is only possible if the overrides can be mapped to an existing reference sheet that is associated with the dynamic logic referenced in the payment function.

Dynamic Fields

It is possible to define dynamic fields on draft provider pricing clauses. During build, the values of these dynamic fields are copied to corresponding dynamic fields on the provider pricing clauses. Thus, the nature of a field - being fixed or dynamic - is transparent to the build task. However, to successfully copy a dynamic field value from a draft provider pricing clause to a real provider pricing clause, the dynamic field should be defined in parallel on both the tables for draft and real provider pricing clauses. Dynamic fields in both tables are matched by their field usage name.

Build Selected Rows

It is possible to perform a build for a limited subset of draft provider pricing clauses by explicitly selecting them[5].

Apply Pricing Template

A pricing template is a container for pricing options (which are grouped in pricing sections) that contain the prebuilt draft provider pricing clauses to populate the worksheet with.

By applying a pricing template, the partial provider pricing clauses as defined in the selected options are copied into the worksheet, augmented with specified parameters.

When applying a pricing template also the parameters should be provided with which each option’s partial provider pricing clauses can be augmented in the creation of 'complete' draft provider pricing clauses. Even though desirable in most use cases, specifying parameters is optional.

The apply pricing template accepts a 'Product Category' parameter for the entry of one or more than one product categories. This multiplies the number of draft provider pricing clauses generated into the worksheet: the partial provider pricing clauses in each option are generated into the worksheet once for each supplied product category.

Please see Pricing Templates for a more elaborate description of the generation of draft provider pricing clauses using pricing templates.

Apply Option

The Apply Options operation adds the partial provider pricing clauses as defined in the selected options to the worksheet.

The apply option operation also accepts parameters with which the option’s partial provider pricing clauses can be augmented in the creation of 'complete' draft provider pricing clauses. The parameters are specified once and then used for all options to generate. Even though desirable in most use cases, specifying parameters is optional.

The apply pricing template accepts a 'Product Category' parameter for the entry of one or more than one product categories. This multiplies the number of draft provider pricing clauses generated into the worksheet: the partial provider pricing clauses in each option are generated into the worksheet once for each supplied product category

Please see Pricing Templates for a more elaborate description of the generation of draft provider pricing clauses using pricing templates.

Delete Worksheet

When a worksheet is deleted, the contained draft provider pricing clauses are also automatically deleted. However, to avoid inconsistencies, deleting a worksheet is only allowed if:

  • it does not contain any draft provider pricing clauses that were previously built.

  • it does not contain pending deletes (of draft provider pricing clauses) that still need to be built.

Thus, in order to be able to delete a previously built worksheet (if desirable at all), the user must:

  1. first delete from it all draft provider pricing clauses that were previously built and then

  2. perform a new build to effectuate all deletes on the corresponding real provider pricing clauses.

Messages

Messages on the provider pricing clauses pinpoint the work that still needs to be done, for example, mandatory fields which need to be entered or configuration components (like procedure groups) that need to be created. Also, these messages can pinpoint business rule violations that need to be resolved.

See below for an overview of all validation messages that may be raised.

Possible Validation Messages

In addition to business rule violation messages, the following validation messages can be raised:

Table 1. Possible Validation Messages
Code Sev Message

PRI-DPPC-001

Fatal

Unknown pricing priority {code}

PRI-DPPC-002

Fatal

Unknown provider {code}

PRI-DPPC-003

Fatal

Unknown provider {code} ({flexCodeDefinitionCode})

PRI-DPPC-004

Fatal

Multiple providers exist with code {code}, please specify the flex code definition

PRI-DPPC-005

Fatal

Unknown provider group {code}

PRI-DPPC-006

Fatal

Unknown provider category {code}

PRI-DPPC-007

Fatal

Unknown product category {code}

PRI-DPPC-008

Fatal

Unknown procedure group {code}

PRI-DPPC-009

Fatal

Unknown procedure condition {code}

PRI-DPPC-010

Fatal

Unknown classification scheme {code}

PRI-DPPC-011

Fatal

Unknown classification {code}

PRI-DPPC-012

Fatal

Unknown location type group {code}

PRI-DPPC-013

Fatal

Unknown message {code}

PRI-DPPC-014

Fatal

The type and the code of the reimbursement method to which the pricing rule is restricted must both be specified

PRI-DPPC-015

Fatal

Unknown reimbursement method {code} of type {type}

PRI-DPPC-016

Fatal

Unknown pricing rule {code} of type {type}

PRI-DPPC-017

Fatal

Unknown dynamic logic condition {code}

PRI-DPPC-019

Fatal

The dynamic field usage {code} is not defined on the table PRI_PROV_PRICING_CLAUSES

PRI-DPPC-020

Fatal

The setup of dynamic field usage {code} for tables PRI_DRAFT_PROV_PRI_CLAUSES and PRI_PROV_PRICING_CLAUSES is not compatible.

PRI-DPPC-021

Fatal

If the provider definition is specified ({flexCodeDefinitionCode}), the provider code must also be specified.

PRI-DPPC-022

Fatal

The code of the {reimbursementMethodType or pricingRuleType} must be specified

PRI-DPPC-023

Fatal

Cannot find a diminishing rate block for the specified sequence (diminishing rate code, sequence)

PRI-DPPC-024

Fatal

Unknown contract reference {code}

PRI-DPPC-026

Fatal

The start date must be specified

PRI-DPPC-027

Fatal

Overriding lines are specified for the reference sheet with usage name {usageName}, but this reference sheet is not associated with the payment function {code}.


1. 'Real' here meaning: usable for claims pricing.
2. Only changes that may potentially affect validity are relevant, for example, changes to the grouping label field are not relevant.
3. either in the UI or by specifying a draftProviderPricingClauseList in the Validate operation’s request payload
4. This concerns only changes that are built to real provider pricing clauses, for example, this does not concern changes to the grouping label field.
5. either in the UI or by specifying a draftProviderPricingClauseList in the Build operation’s request payload