Draft Provider Pricing Clauses Worksheet

The purpose of this page is 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 - All").

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): e.g. 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: e.g. 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 (yet) exist.

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 (e.g. 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 / 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, he/she must assert that they 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 OHI Claims (upon validation or build, see below).

Note that 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 in this implementation 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, OHI Claims will try to determine the provider by provider code only. This is only possible if that provider code is not present in OHI 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, e.g. the list-of-values on field 'Product Category' shows all existing product categories. Note that 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, i.e. 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, i.e. those without a specific contract or provider reference.

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

Note: 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, OHI Claims will automatically fill 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. Therefore draft provider pricing clauses are displayed ordered on grouping label. So e.g. in the observation rate example above, the grouping label "Observation - Case Rate" might be used for the three draft provider pricing clauses. They would then be displayed right below each other.

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

Grouping labels are free text. However, to help users reuse existing grouping labels as much as possible, the grouping label field features the following:

  • A list-of-values showing the distinct set of all grouping labels that are currently used on draft provider pricing clauses, pricing options and pricing section options.

  • An auto-suggest list that shows existing grouping labels that start with the entered key combination (case insensitive). E.g. if the user keys in the letters "cn", the auto-suggest list may display existing grouping labels "CNM - Pay by Fee Schedule" and "CNM - Pay Percent of Charges". The user may then choose to pick one of these, or enter a new grouping label.

Page Impression

Draft Provider Clauses Worksheet

Buttons

The following special buttons display on the page header:

  • Validate (button with menu)

    • Validate Worksheet

    • Validate Selected Rows

  • Build (button with menu)

    • Build Worksheet

    • Build Selected Rows

  • Advanced Editing (button with menu)

    • Apply Option…​

    • Apply Template…​

    • Update Selected Rows…​

    • Copy Selected Rows

    • Delete Selected Rows

    • Delete Worksheet

  • Overview

  • Messages

Overriding Diminishing Rate Blocks

In the event that a draft provider pricing clause has a reimbursement method of the type 'diminishing rate', an additional icon appears at the far right of the reimbursement method type column. Clicking this icon opens up a dialog with draft provider pricing clause diminishing rates. Here a user can add, remove and update overriding diminishing rate blocks. The icon can be either a plus-icon if no overriding diminishing rate block has yet been entered, or an edit-icon if one or more overriding diminishing rate blocks have been entered.

Overriding Reference Sheet Lines

In the event that a draft provider pricing clause has a reimbursement method of the type 'payment function', an additional icon appears at the far right of the reimbursement method type column. Clicking this icon opens up a dialog with a tab for each reference sheet associated with (the dynamic logic of) the specified payment function. Here a user can add, remove and update overriding reference sheet lines. The icon can be either a plus-icon if no overriding reference sheet line has yet been entered, or an edit-icon if one or more overriding reference sheet lines have been entered.

Restrict-to-Reimbursement-Methods

A draft provider pricing clause can be inclusively or exclusively applied to one or more reimbursement methods. These can be specified in a separate dialog, that can be opened with an icon in the field for restrict-to-reimbursement-methods.

Validate Worksheet

Clicking 'Validate Worksheet' starts a background task to validate all draft provider pricing clauses. 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 (e.g. the referred-to reimbursement method exists).

  • All validations by business rules succeed (e.g. "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).

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

When the validation background task is completed:

  • Counters on the validation run can be viewed in the overview dialog (see button 'Overview').

  • Validation messages can be viewed in the validation messages dialog (see button 'Messages'). Validation messages from a previous validation or build run are discarded.

  • The field 'Last Worksheet Validation' is updated with the time and date of the completion of the validation run, and with the user that issued it.

  • The validation status of each draft provider pricing clause is set ('Valid' or 'Invalid').

  • An informative message is displayed to notify the user that the validation is completed

  • The UI page will refresh automatically and the worksheet becomes mutable again.

Note that draft provider pricing clauses that have not yet been validated have the validation status 'Unknown'. Also, any relevant* change to a draft provider pricing clause with validation status 'Valid' or 'Invalid', will set the validation status to 'Unknown'. In rare circumstances, a previously validated draft provider pricing clause may later (e.g. 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.

(*) Only changes that may potentially affect validity are relevant, e.g. changes to the grouping label field are not relevant.

Validate Selected Rows

It is also possible to perform a validation for a limited subset of draft provider pricing clauses by explicitly selecting them and then clicking 'Validate Selected Rows'. Alternatively, a single draft provider pricing clause can be validated using the row-level icon. This validation works equivalently as a worksheet validation, but is limited to the selected rows only. Worksheet-level counters and fields are not updated. The worksheet-level messages dialog however will reflect any new or disappeared validation messages.

Build Worksheet

Clicking 'Build Worksheet' starts a background task to build 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, i.e. maintenance of the worksheet:

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

  • Deletes: OHI Claims maintains a list of all previously built draft provider pricing clauses which have since been deleted from the worksheet. During build, OHI 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 will be translated to real provider pricing clauses, the invalid ones will lead to validation messages (in the same manner as in a 'dry' validation of the worksheet, see above). Note thus that a build is implicitly also a validation.

Upon clicking the button 'Build' the following check is performed. If at least one draft provider pricing clause in the worksheet is not valid (validation status "Invalid" or "Unknown") a warning dialog is displayed where the user must choose to cancel the build or execute the build regardless. If cancelled, 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 background task is completed:

  • Counters on the build run can be viewed in the overview dialog (see button 'Overview').

  • Validation messages can be viewed in the validation messages dialog (see button 'Messages'). Validation messages from a previous validation or build run are discarded.

  • The field 'Last Worksheet Validation' is updated 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 field 'Last Worksheet Build' is updated with the time and date of the completion of the build run, and with the user that issued it.

  • The validation status of each draft provider pricing clause is set ('Valid' or 'Invalid').

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

  • An informative message is displayed to notify the user that the build is completed

  • The UI page will refresh automatically and the worksheet becomes mutable again.

Note that 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* since have build status 'Changed'. Both the statuses 'Built' and 'Changed' feature a click-able link, which opens the configuration page for real provider pricing clauses showing only the corresponding record.

(*) This concerns only changes that are built to real provider pricing clauses, e.g. this does not concern changes to the grouping label field.

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.

Note that 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.

Note that 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 the table for 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 also possible to perform a build for a limited subset of draft provider pricing clauses by explicitly selecting them and then clicking 'Build Selected Rows'. Alternatively, a single draft provider pricing clause can be built using the row-level icon. This build works equivalently as a worksheet build, but is limited to the selected rows only. Worksheet-level counters and fields are not updated. The worksheet-level messages dialog however will reflect any new or disappeared validation messages.

Upon clicking 'Build Selected Rows' the following check is performed. If at least one selected draft provider pricing clause is not valid (i.e. invalid or not yet validated) a warning dialog is displayed where the user must choose to cancel the build or execute the build regardless. If cancelled, the user may execute a validation first, to assert that all selected draft provider pricing clauses are valid.

Apply Template…​

Clicking 'Apply Template…​' opens a dialog requesting the user to specify a pricing template and to select from it the options to generate into the worksheet at hand. 'Generate' means that the partial provider pricing clauses as defined in the selected options will be copied into the worksheet, augmented with specified parameters.

The first step to take in this dialog is the selection of the pricing template. When a template is selected, all sections defined in that template are displayed. The user can click on and walk through all sections to see the options that have been defined in each section. In each section, one or more options can be selected for generation into the worksheet. Options that are defined as template defaults are automatically selected but can be unselected if desired.

Sections and options are displayed using their display name*. Next to the display name of a section the number of its currently selected options is indicated. Next to each option’s selection checkbox an indicator displays whether or not the option is a template default. Also, next to the options, details of the selected option are displayed: description, grouping label*.

(*) Both an option’s display name and grouping label may be overridden in the template configuration.

Besides choosing a template and selecting the required options in all sections, 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 parameter 'Product Category' accepts entry of more than one product category, by entering different values separated by a semicolon. This will multiply 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.

Generation of draft provider pricing clauses into the worksheet is a database operation that is executed and committed immediately. The field "Code" of each generated draft provider pricing clause is determined automatically.

Please refer to the text "Pricing Templates" in this implementation guide for a more elaborate description of the generation of draft provider pricing clauses using templates.

Apply Option…​

Clicking 'Apply Option…​' opens a dialog requesting the user to search for and select one or more pricing options to generate into the worksheet at hand. 'Generate' means that the partial provider pricing clauses as defined in the selected option(s) will be copied into the worksheet, augmented with specified parameters. All options can be searched for and selected, i.e. this is not confined to the context of a template. Thus the 'Apply Option…​' dialog can be used as a 'library' of all options.

Options are displayed using their display name. When a particular option is clicked upon, its details are displayed: description, grouping label and the templates in which the option is included. Also, the worksheets in which the option has previously been generated are shown*. These details provide the pricing configuration analyst with additional information that can help in determining the best option to select. Note that clicking on an option does not select it for generation. To select an option for generation, it needs to be moved to the box with "Options to generate". All options moved to that box, and only those, will be generated.

(*) Shown are those worksheets in which the draft provider pricing clauses generated from the option are (still) present, regardless of whether these draft provider pricing clauses have been changed.

Besides selecting the required option(s), also the parameters should be provided 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 parameter 'Product Category' accepts entry of more than one product category, by entering different values separated by a semicolon. This will multiply the number of draft provider pricing clauses generated into the worksheet: the partial provider pricing clauses in the option are generated into the worksheet once for each supplied product category.

Generation of draft provider pricing clauses into the worksheet is executed and directly committed. The field "Code" of each generated draft provider pricing clause is determined automatically.

Please refer to the text "Pricing Templates" in this implementation guide for a more elaborate description of the generation of draft provider pricing clauses using pricing options.

Update Selected Rows…​

Clicking 'Update Selected Rows…​' opens a dialog requesting the user to specify a field-value pair. When submitted, that field of all selected rows will be updated to the specified value. Specifying the field is mandatory. All draft provider pricing clause fields that are directly editable to a user are available to choose from (including single-value dynamic fields). Specifying a value is optional; if no value is specified the specified field of all selected rows is emptied (set to null).

Note that when submitted the update is executed on screen but not yet saved. The user must explicitly click the 'Save' button to commit the executed updates to the database (or click 'Cancel' in case of second thoughts).

Copy Selected Rows

Clicking 'Copy Selected Rows' copies all selected rows. A copy of a draft provider pricing clause will include all details of the provider pricing clause, e.g. also any conditions or reference sheet overrides.

Note that the copy is executed on screen but not yet saved. The user must explicitly click the 'Save' button to save the copies to the database (and possibly alter them first).

Delete Selected Rows

Clicking 'Delete Selected Rows' deletes all selected rows from the worksheet.

Note that the delete is executed on screen but not yet saved. The user must explicitly click the 'Save' button to commit the deletes to the database (or click 'Cancel' in case of second thoughts).

Delete Worksheet

Clicking 'Delete Worksheet' opens a pop-up requesting the user to confirm the delete. If the user confirms the delete, it is committed immediately.

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.

Overview

Clicking 'Overview' opens a dialog that shows counters on the worksheet lines:

  • Current counters are calculated on the fly:

    • Total #

    • Validation status:

    • Valid #

    • Invalid #

    • Unknown #

  • Build status:

    • New #

    • Changed #

    • Built #

    • Deleted #

  • Counters calculated during the last validation run (also calculated during build):

    • Total #

    • Valid #

    • Invalid #

  • Counters calculated during the last build run:

    • Created #

    • Updated #

    • Deleted #

    • Disabled #

Note: the current counter on deletes shows the number of draft provider pricing clauses that have been deleted but were previously built. The corresponding real provider pricing clauses will be deleted or disabled in the next build.

Messages

Clicking 'Messages' in the page header opens a dialog that shows all validation messages across all draft provider pricing clauses in the worksheet. These messages pinpoint the work that still needs to be done, e.g. 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.

The button 'Messages' is only enabled when at least one of the provider pricing clauses in the worksheet has a validation message. Directly following validation or build the button is enabled or disabled correspondingly.

The field that shows the validation status of a draft provider pricing clause features a click-able link, if that draft provider pricing clause has any validation messages. Clicking this link opens a messages popup showing only those validation messages specific to that draft provider pricing clause.

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:

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. meaing: usable for claims pricing