Fee Schedule Integration Point
This web service supports the initial creation and updating of the fee schedules and the fee schedule lines. The fee schedules (roughly: procedure price lists) are used to price the claim lines.
Design Principles
This interface is implemented by web service messages:
-
If the payload contains an unknown code for an online fee schedule, it results in the creation of a new fee schedule including fee schedule lines.
-
If the payload contains a known code for an online fee schedule, the existing fee schedule including its fee schedule lines is updated (described in more detail in the below sections).
-
The fee schedule lines batch payload has a data file set web service based implementation. This implementation accommodates the loading of very large fee schedule lines, where the volume of data becomes too extensive.
-
In a fee schedule line batch request, if one or more fee schedule lines within a fee schedule cannot be created or updated because of an error, only the fee schedule lines that are functionally the same (lines that have the same values for the attributes that are specified in the Update Mechanism section) as the lines that have an error are not created or updated; other fee schedule lines within the fee schedule are created or updated.
Fee Schedule Online
Request
The HTTP PUT request to: http://[hostName]:[portNumber]/[api-context-root]/feeschedules enables external systems to create/update feeschedules along with the lines.
The following mock XML shows the structure that the application expects for loading of Fee Schedules.
<feeSchedule code="" descr="" typeCode="" pricedMessageCode="" modifierEvaluationMessageCode="" lineConditionCode="" disable="" currencyCode="" > <modifierList usage="" > <modifier code="" /> </modifierList> <feeScheduleLines> <feeScheduleLine startDate="" endDate="" procedureGroupCode="" procedureGroup2Code="" procedureGroup3Code="" contractReferenceCode="" providerGroupCode="" enabled="" > <procedure code="" flexCodeDefinitionCode="" /> <procedure2 code="" flexCodeDefinitionCode="" /> <procedure3 code="" flexCodeDefinitionCode="" /> <organizationProvider code="" flexCodeDefinitionCode="" /> <amountOrPercentage> <feeAmount currencyCode=""> {value} /> <percentage> value </percentage> </amountOrPercentage> <modifierList> <modifier code="" /> </modifierList> <classificationList usage="" > <classification code="" /> </classificationList> </feeScheduleLine> </feeScheduleLines> </feeSchedule>
Currency
All the fee schedules that specify an amount will have the same currency: a steering currency. If the currency is not specified in the request, the default currency is set on the fee schedule.
Update Mechanism
In case of an update scenario, the fee schedule lines in the request are matched with existing fee schedule lines, based on the following attributes:
-
Procedures
-
Procedure Groups
-
Individual Provider
-
Organization Provider
-
Provider Group
-
Contract Reference
-
Modifiers
-
Classifications and Classification Usage
-
Certain Dynamic Fields
-
Which dynamic fields are part of the matching is specified in the dynamic logic function with signature Fee Schedule Line Duplicity (this function returns a list of dynamic field usage names)
-
Fee schedule lines in the request and existing fee schedule lines match if they have the same values for the above specified attributes. Based on the matching results, new fee schedule lines are inserted, existing fee schedule lines are updated, existing fee schedule lines are disabled, existing fee schedule lines are end dated and/or existing fee schedule lines are untouched (no changes in auditing columns):
-
The fee schedule lines in the request that do not match any of the existing fee schedule lines are inserted
-
The existing fee schedule lines that do not match any of the fee schedule lines in the request are:
-
Disabled if the Disable indicator in the request is set to Y (default value)
-
Untouched if the Disable indicator in the request is set to N
-
Setting this indicator to N provides the ability to do partial updates on a fee schedule
-
-
-
The fee schedule lines in the request that do match with one or more existing fee schedule lines are then further matched on Start Date, End Date, Amount, Percentage and Enabled Indicator to determine the appropriate action:
-
If all attributes match, the existing fee schedule line is untouched (no changes in auditing columns)
-
If the Start Date matches, but End Date, Amount, Percentage and/or Enabled Indicator do not match, the existing fee schedule line is updated with the new End Date, Amount, Percentage and/or Enabled Indicator
-
If the Start Date does not match the fee schedule line is inserted
-
-
The existing fee schedule lines that do match with fee schedule lines in the request on the above specified attributes (Procedures, Procedure Groups, Providers, etc), but that do not match on the Start Date are disabled, end dated or untouched based on the following checks:
-
If the Start Date of the fee schedule line is later than the earliest Start Date of the set of fee schedule lines in the request that have the same values for the above specified attributes, the fee schedule line is disabled
-
If the End Date of the fee schedule line is earlier than the earliest Start Date of the set of fee schedule lines in the request that have the same values for the above specified attributes, the fee schedule line is untouched (no changes in auditing columns)
-
If the Start Date of the fee schedule line is earlier than the earliest Start Date and the End Date of the fee schedule line is on or later than the earliest Start Date of the set of fee schedule lines in the request that have the same values for the above specified attributes, the fee schedule line is end dated one day prior to the earliest Start Date
-
A detailed example is provided in the 'Scenarios' section below.
Fee Schedule Lines Batch Request
This request enables the handling of multiple write feeschedulelines for a given fee schedule in one go. Because the volume of data can become quite extensive, the input for this process will come from a so called data file set. For more information about how to create a data file set please refer to Data File Set Integration Point.
Fee Schedule line batch elements that are contained in the datafile(s) that are part of the input data file set have the following structure - in here the <feeschedulelines> are the root element of an individual datafile.
This data file has the following structure:
<feeScheduleLines> <feeScheduleLine startDate="" endDate="" procedureGroupCode="" procedureGroup2Code="" procedureGroup3Code="" contractReferenceCode="" providerGroupCode="" enabled="" elementId="" > <procedure code="" flexCodeDefinitionCode="" /> <procedure2 code="" flexCodeDefinitionCode="" /> <procedure3 code="" flexCodeDefinitionCode="" /> <organizationProvider code="" flexCodeDefinitionCode="" /> <amountOrPercentage> <feeAmount currencyCode=""> {value} /> <percentage> value </percentage> </amountOrPercentage> <modifiers> <modifier code="" /> </modifierList> <classifications usage="" > <classification code="" /> </classificationList> </feeScheduleLine> </feeScheduleLines>
The metadata for the above structure can be accessed on the /[api-context-root]/writefeeschedules/payload/definition as swagger definition.
In the remainder of this description we assume that an input data file set containing at least one datafile with a structure as was outlined above has been created. In order to initiate the fee schedule import process a HTTP POST request to: http://[hostName]:[portNumber]/[api-context-root]/writefeeschedules has to be submitted.
A write feeschedulelines batch (initiation) request has the following structure:
{ "feeSchedule" : { "code" : "...", "descr" : "...", "typeCode" : "...", "pricedMessageCode" : "...", "modifierEvaluationMessageCode" : "...", "lineConditionCode" : "...", "disable" : "...", "currencyCode" : "...", "modifierUsage" : "...", "modifierList" : [{ "code" : "...", }] }, "dataFileSetCode" : "...", "responseDatafileSetCode" : "...", }
The response data file set code refers to the data file set that contains the datafile(s) response with feeschedulelines.
Fee Schedule lines Update Mechanism
For more specifics of how the lines are updated refer to the Update Mechanism section above
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.FEE_SCH_LINE_IMPORT' or to a more generic endpoint: ohi.activityprocessing.notification.endpoint.
If the notification endpoint is configured on the specific: FEE_SCH_LINE_IMPORT, all other related properties like media type, authentication, etc. are also fetched based on FEE_SCH_LINE_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 'ActivityNotificationClient'. 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 writefeeschedule request. This enables an integration pattern that relies on polling progress which allows the user to perform a collection queries over writefeeschedule resources.
The endpoint to which the notification is sent is expected to respond with either an HTTP 200 or 202.
The data file set holds the result of the feeschedulelines with the following mock XML structure:
<feeScheduleLines> <feeScheduleLine elementId="" > <resultMessage code="" > message text </resultMessage> </feeScheduleLine> </feeScheduleLines>
Notes:
-
The <feeScheduleLines> element contains one or more fee schedule lines. Each fee schedule line is identified by the elementId as provided in the request message. Each fee schedule line contains one or more messages which relate to that particular fee schedule line. The response only contains <feeScheduleLine> elements for those fee schedule lines that actually generated error/info messages during processing.
Fee Schedule Procedure
Request
The fee schedule procedure is a separate IP. It is used to update all the lines pertaining to a particular procedure/modifier combination, without being required to send in the entire set fee schedule lines every time. Since, the updates here are done in an incremental fashion per procedure so it would become cumbersome to consolidate the unchanged lines before sending in the payload which also means that the payload became too extensive. In order to avoid this we make use of this IP.
The HTTP PUT request to: http://[hostName]:[portNumber]/[api-context-root]/feescheduleprocedures enables external systems to create/update feeschedules along with the lines for a particular procedure/modifier.
The following mock XML shows the structure that the application expects for loading of Fee Schedule procedures.
<feeScheduleProcedureRequest> <feeSchedule code="" descr="" typeCode="" pricedMessageCode="" modifierEvaluationMessageCode="" lineConditionCode="" procedureGroupCode="" procedureGroup2Code="" procedureGroup3Code="" currencyCode="" > <procedure code="" flexCodeDefinitionCode="" /> <procedure2 code="" flexCodeDefinitionCode="" /> <procedure3 code="" flexCodeDefinitionCode="" /> <modifierlist usage="" > <modifier code="" /> </modifierlist> <feeScheduleLines> <feeScheduleLine contractReferenceCode="" providerGroupCode="" startDate="" endDate="" enabled="" > <organizationProvider code="" flexCodeDefinitionCode="" /> <amountOrPercentage> <feeAmount currencyCode=""> {value} /> <percentage> value </percentage> </amountOrPercentage> <modifierlist> <modifier code="" /> </modifierlist> <classificationlist usage="" > <classification code="" /> </classificationlist> </feeScheduleLine> </feeScheduleLines> </feeSchedule> </feeScheduleProcedureRequest>
Note that the currency is handled in the same way as in fee schedule request.
Update Mechanism
In case of an update scenario, the fee schedule lines in the request are matched with existing fee schedule lines, based on the following attributes:
-
Procedures
-
Procedure Groups
-
Individual Provider
-
Organization Provider
-
Provider Group
-
Contract Reference
-
Modifiers
-
Classifications and Classification Usage
-
Certain Dynamic Fields
-
Which dynamic fields are part of the matching is specified in the dynamic logic function with signature Fee Schedule Line Duplicity (this function returns a list of dynamic field usage names)
-
Fee schedule lines in the request and existing fee schedule lines match if they have the same values for the above specified attributes. Based on the matching results, new fee schedule lines are inserted, existing fee schedule lines are updated, existing fee schedule lines are disabled, existing fee schedule lines are end dated and/or existing fee schedule lines are untouched (no changes in auditing columns):
-
The fee schedule lines in the request that do not match any of the existing fee schedule lines are inserted
-
The existing fee schedule lines that do not match the Procedures and Procedure Groups of the fee schedule lines in the request are untouched
-
The fee schedule lines in the request that do match with one or more existing fee schedule lines are then further matched on Start Date, End Date, Amount, Percentage and Enabled Indicator to determine the appropriate action:
-
If all attributes match the existing fee schedule line is untouched (no changes in auditing columns)
-
If the Start Date matches, but End Date, Amount, Percentage and/or Enabled Indicator do not match, the fee existing schedule line is updated with the new End Date, Amount, Percentage and/or Enabled Indicator
-
If the Start Date does not match the fee schedule line is inserted
-
-
The existing fee schedule lines that do match with fee schedule lines in the request on the above specified attributes (Procedures, Procedure Groups, Providers, etc), but that do not match on the Start Date are disabled, end dated or untouched based on the following checks:
-
If the Start Date of the fee schedule line is later than the earliest Start Date of the set of fee schedule lines in the request that have the same values for the above specified attributes, the fee schedule line is disabled
-
If the End Date of the fee schedule line is earlier than the earliest Start Date of the set of fee schedule lines in the request that have the same values for the above specified attributes, the fee schedule line is untouched (no changes in auditing columns)
-
If the Start Date of the fee schedule line is earlier than the earliest Start Date and the End Date of the fee schedule line is on or later than the earliest Start Date of the set of fee schedule lines in the request that have the same values for the above specified attributes, the fee schedule line is end dated one day prior to the earliest Start Date
-
-
The existing fee schedule lines that do match with fee schedule lines in the request on the Procedures and Procedure Groups, but that do not match on one or more of the other attributes (Providers, Provider Group, Contract Reference, Modifiers, Classifications and Dynamic Fields) are disabled, end dated or untouched based on the following checks:
-
If the Start Date of the fee schedule line is later than the earliest Start Date of the fee schedule lines in the request, the fee schedule line is disabled
-
If the End Date of the fee schedule line is earlier than the earliest Start Date of the fee schedule lines in the request, the fee schedule line is untouched (no changes in auditing columns)
-
If the Start Date of the fee schedule line is earlier than the earliest Start Date and the End Date of the fee schedule line is on or later than the earliest Start Date of the fee schedule lines in the request, the fee schedule line is end dated one day prior to the earliest Start Date
-
A detailed example is provided in the 'Scenarios' section below.
Error Messages
The following error messages that are specific to the fee schedule interface may be returned in the response messages:
Code | Severity | Message |
---|---|---|
PRI-IP-FESC-001 |
Fatal |
Procedure identified by code {code} and flex code definition code {code} is unknown |
PRI-IP-FESC-002 |
Fatal |
Modifier code {code} is unknown |
PRI-IP-FESC-004 |
Fatal |
Message code {code} is unknown |
PRI-IP-FESC-005 |
Fatal |
Fee schedule type code {code} is unknown |
PRI-IP-FESC-006 |
Fatal |
Condition code {code} is unknown |
PRI-IP-FESC-007 |
Fatal |
Classification code {code} is unknown |
PRI-IP-FESC-008 |
Fatal |
Procedure group code {code} is unknown |
PRI-IP-FESC-009 |
Fatal |
Provider identified by code {code} and flex code definition code {code} is unknown |
PRI-IP-FESC-010 |
Fatal |
Provider group code {code} is unknown |
PRI-IP-FESC-011 |
Fatal |
Contract reference code {code} is unknown |
CLA-HTTP-010 |
Fatal |
Data file set code {code} is unknown |
In addition, functional business rule messages related to dynamic fields and dynamic records may be returned as well.
Scenarios
Fee Schedule - Creating a new fee schedule
For radiology services a number of procedure codes are recognized. Some of these procedures may have a modifier dependent price. A fee schedule for radiology does not yet exist in Claims and needs to be created. Batch process has been used in the below scenario, but this can also be processed through an online request if the fee schedule lines are less in number.
A new fee schedule is created as below:
Request Message | |||||
---|---|---|---|---|---|
Fee Schedule Details (part of the long running process /writefeeschedules |
Code | Description | Fee Schedule Type | |||
---|---|---|---|---|---|
RADIO_FS |
Radiology fee schedule |
PER_UNIT_TYPE |
Fee Schedule Line Details ( part of the data file)
Procedure Code | Enabled? | Modifiers | Amount | Start date | End date |
---|---|---|---|---|---|
CPT-77213 |
Y |
$20 |
2010-01-01 |
||
CPT-77213 |
Y |
TC |
$30 |
2010-01-01 |
|
CPT-77213 |
Y |
TC, 26 |
$40 |
2010-01-01 |
|
CPT-77220 |
Y |
$120 |
2010-01-01 |
||
CPT-77221 |
Y |
$200 |
2010-01-01 |
The data file is then processed by the long running process /writefeeschedules.
The following fee schedule is then stored in Claims:
Fee Schedule
Code | Description | Fee Schedule Type | |||
---|---|---|---|---|---|
RADIO_FS |
Radiology fee schedule |
PER_UNIT_TYPE |
Procedure Code | Enabled? | Modifiers | Amount | Start date | End date |
---|---|---|---|---|---|
CPT-77213 |
Y |
$20 |
2010-01-01 |
||
CPT-77213 |
Y |
TC |
$30 |
2010-01-01 |
|
CPT-77213 |
Y |
TC, 26 |
$40 |
2010-01-01 |
|
CPT-77220 |
Y |
$120 |
2010-01-01 |
||
CPT-77221 |
Y |
$200 |
2010-01-01 |
Fee Schedule Procedure - Updating a fee schedule line (1)
The earlier created radiology fee schedule needs to be extended. In 2011 the price for procedure CPT-77221 is changed. Also, this procedure can then be billed with a modifier which should lead to a different price. The online fee schedule procedure request message is used:
Request Message | ||||
---|---|---|---|---|
FeeScheduleProcedureRequest |
Fee Schedule Code | Fee Schedule Description | Procedure Code | ||
---|---|---|---|---|
RADIO_FS |
Radiology fee schedule |
CPT-77221 |
Enabled? | Modifiers | Amount | Start date | End date |
---|---|---|---|---|
Y |
$175 |
2011-01-01 |
||
Y |
XT |
$250 |
2011-01-01 |
The fee schedule, which was already stored in Claims, is updated:
Fee Schedule
Code | Description | Fee Schedule Type | |||
---|---|---|---|---|---|
RADIO_FS |
Radiology fee schedule |
PER_UNIT_TYPE |
Procedure Code | Enabled? | Modifiers | Amount | Start date | End date |
---|---|---|---|---|---|
CPT-77213 |
Y |
$20 |
2010-01-01 |
||
CPT-77213 |
Y |
TC |
$30 |
2010-01-01 |
|
CPT-77213 |
Y |
TC, 26 |
$40 |
2010-01-01 |
|
CPT-77220 |
Y |
$120 |
2010-01-01 |
||
CPT-77221 |
Y |
$200 |
2010-01-01 |
2010-12-31 |
|
CPT-77221 |
Y |
$175 |
2011-01-01 |
||
CPT-77221 |
Y |
XT |
$250 |
2011-01-01 |
Note that only the fee schedule lines with regard to procedure CPT-77221 are changed.
Fee Schedule Procedure - Updating a fee schedule line ( 2)
The earlier created radiology fee schedule needs to be changed. In 2011 procedure CPT-77213 can no longer be billed with modifiers:
Request Message | ||||
---|---|---|---|---|
FeeScheduleProcedureRequest |
Fee Schedule Code | Fee Schedule Decsription | Procedure Code | ||
---|---|---|---|---|
RADIO_FS |
Radiology fee schedule |
CPT-77213 |
Enabled? | Modifiers | Amount | Start date | End date |
---|---|---|---|---|
Y |
$20 |
2011-01-01 |
The fee schedule stored in Claims is updated:
Fee Schedule
Code | Description | Fee Schedule Type | |||
---|---|---|---|---|---|
RADIO_FS |
Radiology fee schedule |
PER_UNIT_TYPE |
Procedure Code | Enabled? | Modifiers | Amount | Start date | End date |
---|---|---|---|---|---|
CPT-77213 |
Y |
$20 |
2010-01-01 |
2010-12-31 |
|
CPT-77213 |
Y |
$20 |
2011-01-01 |
||
CPT-77213 |
Y |
TC |
$30 |
2010-01-01 |
2010-12-31 |
CPT-77213 |
Y |
TC, 26 |
$40 |
2010-01-01 |
2010-12-31 |
CPT-77220 |
Y |
$120 |
2010-01-01 |
||
CPT-77221 |
Y |
$200 |
2010-01-01 |
2010-12-31 |
|
CPT-77221 |
Y |
$175 |
2011-01-01 |
||
CPT-77221 |
Y |
XT |
$250 |
2011-01-01 |
From 2011-01-01 onwards, only one fee schedule line with regard to procedure CPT-77213 remains valid.
Fee Schedule - Updating an entire fee schedule
A new radiology fee schedule is to be used in 2012. In the new fee schedule some procedures which were valid before 2012 are no longer included. This is done by sending in the following data as explained in the scenario 'Fee Schedule - Creating a new fee schedule'
Code | Description | ||||
---|---|---|---|---|---|
RADIO_FS |
Radiology fee schedule |
Procedure Code | Enabled? | Modifiers | Amount | Start date | End date |
---|---|---|---|---|---|
CPT-77213 |
Y |
$21 |
2012-01-01 |
||
CPT-77221 |
Y |
$180 |
2012-01-01 |
||
CPT-77221 |
Y |
XT |
$263 |
2012-01-01 |
All lines of the fee schedule stored in Claimss, are ended per the earliest fee schedule line start date. New lines are added, as per the message:
Fee Schedule
Code | Description | Fee Schedule Type | |||
---|---|---|---|---|---|
RADIO_FS |
Radiology fee schedule |
PER_UNIT_TYPE |
Procedure Code | Enabled? | Modifiers | Amount | Start date | End date |
---|---|---|---|---|---|
CPT-77213 |
Y |
$20 |
2010-01-01 |
2010-12-31 |
|
CPT-77213 |
Y |
$20 |
2011-01-01 |
2011-12-31 |
|
CPT-77213 |
Y |
$21 |
2012-01-01 |
||
CPT-77213 |
Y |
TC |
$30 |
2010-01-01 |
2011-12-31 |
CPT-77213 |
Y |
TC, 26 |
$40 |
2010-01-01 |
2011-12-31 |
CPT-77220 |
N |
$120 |
2010-01-01 |
||
CPT-77221 |
Y |
$200 |
2010-01-01 |
2010-12-31 |
|
CPT-77221 |
Y |
$175 |
2011-01-01 |
2011-12-31 |
|
CPT-77221 |
Y |
$180 |
2012-01-01 |
||
CPT-77221 |
Y |
XT |
$250 |
2011-01-01 |
2011-12-31 |
CPT-77221 |
Y |
XT |
$263 |
2012-01-01 |
Fee Schedule - Updating an entire fee schedule
This example demonstrates the update mechanism (matching) when an existing fee schedule is updated using a fee schedule request.
The following fee schedule stored in Claims:
Fee Schedule
Code | Description | Fee Schedule Type | |||
---|---|---|---|---|---|
RADIO_FS |
Radiology fee schedule |
PER_UNIT_TYPE |
Procedure Code | Enabled? | Modifiers | Amount | Start date | End date |
---|---|---|---|---|---|
CPT-77213 |
Y |
TC |
$20 |
2010-01-01 |
|
CPT-77220 |
Y |
$120 |
2010-01-01 |
||
CPT-77221 |
Y |
$200 |
2010-01-01 |
2010-12-31 |
|
CPT-77221 |
Y |
$180 |
2011-01-01 |
2011-12-31 |
|
CPT-77221 |
Y |
$183 |
2012-01-01 |
2012-12-31 |
|
CPT-77221 |
Y |
$184 |
2013-01-01 |
2014-12-31 |
|
CPT-77221 |
Y |
$186 |
2015-01-01 |
||
CPT-77221 |
Y |
XT |
$250 |
2011-01-01 |
2012-12-31 |
CPT-77221 |
Y |
XT |
$263 |
2013-01-01 |
|
CPT-77222 |
Y |
$120 |
2010-01-01 |
||
CPT-77223 |
Y |
$50 |
2010-01-01 |
2010-12-31 |
|
CPT-77223 |
Y |
$55 |
2011-01-01 |
The following fee schedule line data is sent in the data file and is processed using /writefeeschedulelines as explained in scenario 1:
Procedure Code | Enabled? | Modifiers | Amount | Start date | End date |
---|---|---|---|---|---|
CPT-77213 |
Y |
$21 |
2011-01-01 |
2011-12-31 |
|
CPT-77213 |
Y |
$22 |
2012-01-01 |
||
CPT-77221 |
Y |
$180 |
2011-01-01 |
2011-12-31 |
|
CPT-77221 |
Y |
$182 |
2012-01-01 |
2012-12-31 |
|
CPT-77221 |
Y |
$184 |
2013-01-01 |
2013-12-31 |
|
CPT-77221 |
Y |
$186 |
2014-01-01 |
2014-12-31 |
|
CPT-77221 |
Y |
$190 |
2016-01-01 |
||
CPT-77221 |
Y |
XT |
$263 |
2012-01-01 |
2012-12-31 |
CPT-77221 |
Y |
XT |
$270 |
2013-01-01 |
|
CPT-77223 |
N |
$50 |
2010-01-01 |
2010-12-31 |
|
CPT-77223 |
Y |
$55 |
2011-01-01 |
The fee schedule is updated in Claims as:
Fee Schedule
Code | Description | Fee Schedule Type | ||||
---|---|---|---|---|---|---|
RADIO_FS |
Radiology fee schedule |
PER_UNIT_TYPE |
Procedure Code | Enabled? | Modifiers | Amount | Start date | End date | Line[1] |
---|---|---|---|---|---|---|
CPT-77213 |
Y |
$21 |
2011-01-01 |
2011-12-31 |
1 |
|
CPT-77213 |
Y |
$22 |
2012-01-01 |
2 |
||
CPT-77213 |
N |
TC |
$20 |
2010-01-01 |
3 |
|
CPT-77220 |
N |
$120 |
2010-01-01 |
4 |
||
CPT-77221 |
Y |
$200 |
2010-01-01 |
2010-12-31 |
5 |
|
CPT-77221 |
Y |
$180 |
2011-01-01 |
2011-12-31 |
6 |
|
CPT-77221 |
Y |
$182 |
2012-01-01 |
2012-12-31 |
7 |
|
CPT-77221 |
Y |
$184 |
2013-01-01 |
2013-12-31 |
8 |
|
CPT-77221 |
Y |
$186 |
2014-01-01 |
2014-12-31 |
9 |
|
CPT-77221 |
N |
$186 |
2015-01-01 |
10 |
||
CPT-77221 |
Y |
$190 |
2016-01-01 |
11 |
||
CPT-77221 |
Y |
XT |
$250 |
2011-01-01 |
2011-12-31 |
12 |
CPT-77221 |
Y |
XT |
$263 |
2012-01-01 |
2012-12-31 |
13 |
CPT-77221 |
Y |
XT |
$270 |
2013-01-01 |
14 |
|
CPT-77222 |
N |
$120 |
2010-01-01 |
15 |
||
CPT-77223 |
N |
$50 |
2010-01-01 |
2010-12-31 |
16 |
|
CPT-77223 |
Y |
$55 |
2011-01-01 |
17 |
Explanation:
-
New line inserted
-
The line in the request did not match with the existing lines (different modifiers)
-
-
New line inserted
-
The line in the request did not match with the existing lines (different modifiers)
-
-
Existing line disabled
-
The existing line did not match with the lines in the request (different modifiers)
-
-
Existing line disabled
-
The existing line did not match with the lines in the request (different procedure)
-
-
Existing line untouched
-
The existing line has an end date (2010-12-31) that is earlier than the earliest start date (2011-01-01) of the matching lines in the request
-
-
Existing line untouched
-
The line in the request matches with an existing line (all attributes match)
-
-
Existing line updated
-
The line in the request matches with an existing line on all attributes except the amount (amount is updated from $183 to $182)
-
-
Existing line updated
-
The line in the request matches with an existing line on all attributes except the end date (end date is updated from 2014-12-31 to 2013-12-31)
-
-
New line inserted
-
The line in the request does not match on start date with the existing lines
-
-
Existing line disabled
-
The existing line has a start date (2015-01-01) that is later than the earliest start date (2011-01-01) of the matching lines in the request
-
-
New line inserted
-
The line in the request does not match on start date with the existing lines
-
-
Existing line end dated
-
The existing line has a start date (2011-01-01) that is earlier than the earliest start date (2012-01-01) of the matching lines in the request and an end date (2012-12-31) that is later than the earliest start date (2012-01-01) of the matching lines in the request, so the line is end dated one day prior to the earliest start date (2011-12-31)
-
-
New line inserted
-
The line in the request does not match on start date with the existing lines
-
-
Existing line updated
-
The line in the request matches with an existing line on all attributes except the amount (amount is updated from $263 to $270)
-
-
Existing line disabled
-
The existing line did not match with the lines in the request (different procedure)
-
-
Existing line updated
-
The line in the request matches with an existing line on all attributes except the enabled indicator (enabled indicator is updated from Y to N)
-
-
Existing line untouched
-
The line in the request matches with an existing line (all attributes match)
-
Fee Schedule Procedure - Updating an entire fee schedule Procedure
This example demonstrates the update mechanism (matching) when an existing fee schedule is updated using an online fee schedule procedure request
The following fee schedule stored in Claims:
Fee Schedule
Code | Description | Fee Schedule Type | |||
---|---|---|---|---|---|
RADIO_FS |
Radiology fee schedule |
PER_UNIT_TYPE |
Procedure Code | Enabled? | Modifiers | Amount | Start date | End date |
---|---|---|---|---|---|
CPT-77213 |
Y |
TC |
$20 |
2010-01-01 |
|
CPT-77220 |
Y |
$120 |
2010-01-01 |
||
CPT-77221 |
Y |
$200 |
2010-01-01 |
2010-12-31 |
|
CPT-77221 |
Y |
$180 |
2011-01-01 |
2011-12-31 |
|
CPT-77221 |
Y |
$183 |
2012-01-01 |
2012-12-31 |
|
CPT-77221 |
Y |
$184 |
2013-01-01 |
2014-12-31 |
|
CPT-77221 |
Y |
$186 |
2015-01-01 |
||
CPT-77221 |
Y |
TC |
$200 |
2010-01-01 |
2010-06-30 |
CPT-77221 |
Y |
TC |
$210 |
2010-07-01 |
2011-12-31 |
CPT-77221 |
Y |
TC |
$220 |
2012-01-01 |
|
CPT-77221 |
Y |
XT |
$250 |
2011-01-01 |
2012-12-31 |
CPT-77221 |
Y |
XT |
$263 |
2013-01-01 |
|
CPT-77222 |
Y |
$120 |
2010-01-01 |
||
CPT-77223 |
Y |
$50 |
2010-01-01 |
2010-12-31 |
|
CPT-77223 |
Y |
$55 |
2011-01-01 |
The following online fee schedule procedure request is sent in:
Request Message | ||||
---|---|---|---|---|
FeeScheduleProcedureRequest |
Fee Schedule Code | Fee Schedule Description | Procedure Code | ||
---|---|---|---|---|
RADIO_FS |
Radiology fee schedule |
CPT-77221 |
Enabled? | Modifiers | Amount | Start date | End date |
---|---|---|---|---|
Y |
$180 |
2011-01-01 |
2011-12-31 |
|
Y |
$182 |
2012-01-01 |
2012-12-31 |
|
Y |
$184 |
2013-01-01 |
2013-12-31 |
|
Y |
$186 |
2014-01-01 |
2014-12-31 |
|
Y |
$190 |
2016-01-01 |
||
Y |
XT |
$263 |
2012-01-01 |
2012-12-31 |
Y |
XT |
$270 |
2013-01-01 |
The fee schedule stored in Claims is updated:
Fee Schedule
Code | Description | Fee Schedule Type | ||||
---|---|---|---|---|---|---|
RADIO_FS |
Radiology fee schedule |
PER_UNIT_TYPE |
Procedure Code | Enabled? | Modifiers | Amount | Start date | End date | Line[1] |
---|---|---|---|---|---|---|
CPT-77213 |
Y |
TC |
$20 |
2010-01-01 |
1 |
|
CPT-77220 |
Y |
$120 |
2010-01-01 |
2 |
||
CPT-77221 |
Y |
$200 |
2010-01-01 |
2010-12-31 |
3 |
|
CPT-77221 |
Y |
$180 |
2011-01-01 |
2011-12-31 |
4 |
|
CPT-77221 |
Y |
$182 |
2012-01-01 |
2012-12-31 |
5 |
|
CPT-77221 |
Y |
$184 |
2013-01-01 |
2013-12-31 |
6 |
|
CPT-77221 |
Y |
$186 |
2014-01-01 |
2014-12-31 |
7 |
|
CPT-77221 |
N |
$186 |
2015-01-01 |
8 |
||
CPT-77221 |
Y |
$190 |
2016-01-01 |
9 |
||
CPT-77221 |
Y |
TC |
$200 |
2010-01-01 |
2010-06-30 |
10 |
CPT-77221 |
Y |
TC |
$210 |
2010-07-01 |
2010-12-31 |
11 |
CPT-77221 |
N |
TC |
$220 |
2012-01-01 |
12 |
|
CPT-77221 |
Y |
XT |
$250 |
2011-01-01 |
2011-12-31 |
13 |
CPT-77221 |
Y |
XT |
$263 |
2012-01-01 |
2012-12-31 |
14 |
CPT-77221 |
Y |
XT |
$270 |
2013-01-01 |
15 |
|
CPT-77222 |
Y |
$120 |
2010-01-01 |
16 |
||
CPT-77223 |
Y |
$50 |
2010-01-01 |
2010-12-31 |
17 |
|
CPT-77223 |
Y |
$55 |
2011-01-01 |
18 |
Explanation:
-
Existing line untouched
-
The existing line does not match with the procedure in the request
-
-
Existing line untouched
-
The existing line does not match with the procedure in the request
-
-
Existing line untouched
-
The existing line has an end date (2010-12-31) that is earlier than the earliest start date (2011-01-01) of the matching lines in the request
-
-
Existing line untouched
-
The line in the request matches with an existing line (all attributes match)
-
-
Existing line updated
-
The line in the request matches with an existing line on all attributes except the amount (amount is updated from $183 to $182)
-
-
Existing line updated
-
The line in the request matches with an existing line on all attributes except the end date (end date is updated from 2014-12-31 to 2013-12-31)
-
-
New line inserted
-
The line in the request does not match on start date with the existing lines
-
-
Existing line disabled
-
The existing line has a start date (2015-01-01) that is later than the earliest start date (2011-01-01) of the matching lines in the request
-
-
New line inserted
-
The line in the request does not match on start date with the existing line
-
-
Existing line untouched
-
The existing line has an end date (2010-06-30) that is earlier than the earliest start date (2011-01-01) of the lines in the request
-
-
Existing line end dated
-
The existing line has a start date (2010-01-01) that is earlier than the earliest start date (2011-01-01) of the lines in the request and an end date (2011-12-31) that is later than the earliest start date (2011-01-01) of the lines in the request, so the line is end dated one day prior to the earliest start date (2010-12-31)
-
-
Existing line disabled
-
The existing line has a start date (2012-01-01) that is later than the earliest start date (2011-01-01) of the lines in the request
-
-
Existing line end dated
-
The existing line has a start date (2011-01-01) that is earlier than the earliest start date (2012-01-01) of the matching lines in the request and an end date (2012-12-31) that is later than the earliest start date (2012-01-01) of the matching lines in the request, so the line is end dated one day prior to the earliest start date (2011-12-31)
-
-
New line inserted
-
The line in the request does not match on start date with the existing lines
-
-
Existing line updated
-
The line in the request matches with an existing line on all attributes except the amount (amount is updated from $263 to $270)
-
-
Existing line untouched
-
The existing line does not match with the procedure in the request
-
-
Existing line untouched
-
The existing line does not match with the procedure in the request
-
-
Existing line untouched
-
The existing line does not match with the procedure in the request
-
Fee Schedule Procedure - Editing fee schedule lines for a procedure combination
This example demonstrates the use of online fee schedule procedure request when the request message specifies a particular combination of procedures.
Consider the following existing fee schedule:
Fee Schedule
Code | Description | Fee Schedule Type | |||
---|---|---|---|---|---|
RADIO_FS |
Radiology fee schedule |
PER_UNIT_TYPE |
Procedure | Procedure2 | Procedure3 | Modifiers | Amount | Start date | End date | Enabled? |
---|---|---|---|---|---|---|---|
CPT-77213 |
NDC-123 |
$ 21 |
2012-01-01 |
Y |
|||
CPT-77213 |
NDC-456 |
TC |
$ 35 |
2012-01-01 |
Y |
||
CPT-77213 |
NDC-456 |
REV-789 |
$ 37 |
2012-01-01 |
Y |
||
CPT-77220 |
$ 120 |
2012-01-01 |
Y |
||||
CPT-77221 |
$ 200 |
2012-01-01 |
Y |
Then, a online fee schedule procedure request is sent in with updates pertaining only to the combination of CPT-77213 and NDC-456:
Request Message | ||||
---|---|---|---|---|
FeeScheduleProcedureRequest |
Fee Schedule Code | Fee Schedule Description | Procedure | Procedure2 | Procedure3 |
---|---|---|---|---|
RADIO_FS |
Radiology fee schedule |
NDC-456 |
CPT-77213 |
Enabled? | Modifiers | Amount | Start date | End date |
---|---|---|---|---|
Y |
TC |
$ 36 |
2013-01-01 |
|
Y |
TC, 26 |
$ 32 |
2013-01-01 |
The existing fee schedule is updated.
Fee Schedule
Code | Description | Fee Schedule Type | |||
---|---|---|---|---|---|
RADIO_FS |
Radiology fee schedule |
PER_UNIT_TYPE |
Procedure | Procedure2 | Procedure3 | Modifiers | Amount | Start date | End date | Enabled? |
---|---|---|---|---|---|---|---|
CPT-77213 |
NDC-123 |
$ 21 |
2012-01-01 |
Y |
|||
CPT-77213 |
NDC-456 |
TC |
$ 35 |
2012-01-01 |
2012-12-31 |
Y |
|
NDC-456 |
CPT-77213 |
TC |
$ 36 |
2013-01-01 |
Y |
||
NDC-456 |
CPT-77213 |
TC, 26 |
$ 32 |
2013-01-01 |
Y |
||
CPT-77213 |
NDC-456 |
REV-789 |
$ 37 |
2012-01-01 |
Y |
||
CPT-77220 |
$ 120 |
2012-01-01 |
Y |
||||
CPT-77221 |
$ 200 |
2012-01-01 |
Y |
Only fee schedule lines with the exact combination of procedures specified in the request message are replaced.
Note:
-
The fee schedule line for CPT-77213, NDC-456 and REV-789 is not updated(!). This fee schedule line pertains to a different combination of procedures than specified in the request message, because the fee schedule line also refers to REV-789.
-
Upon matching the combination of procedures specified in the request message to fee schedule lines, it does not matter which procedure is in which field ("Procedure", "Procedure2", "Procedure3"). The combination of "Procedure" NDC-456 and "Procedure2" CPT-77213 is considered equivalent to the combination "Procedure" CPT-77213 and "Procedure2" NDC-456.
-
The field "Procedure" of the request message is stored in the field "Procedure" of the fee schedule line, the field "Procedure2" of the request message is stored in the field "Procedure2" of the fee schedule line, etc. Functionally this has no significance, other than that for on-screen readability it is advisable to always use the same field for a particular procedure definition, especially within a fee schedule. E.g. "Procedure" for REV-codes and "Procedure2" for CPT-codes.
The use of procedure groups is not included in the example. Including procedure groups in the request message works the same way as the procedures. To determine the set of fee schedule lines which need to be updated, the combination of procedures and procedure groups specified in the request message are compared to the lines in the fee schedule. Only the fee schedule lines with the exact same combination of procedures and procedure groups will be updated by the fee schedule lines specified in the request message.
For example, a request message that specifies procedure "CPT-77213" and procedure group "Surgical REV-codes" will update only those fee schedule lines that specify procedure "CPT-77213", procedure group "Surgical REV-codes" and nothing more. E.g. that request message would not touch existing fee schedule lines that specify only procedure "CPT-77213", nor would it touch lines that specify procedure "CPT-77213", procedure group "Surgical REV-codes" and procedure group "ER REV-codes".