000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. ESCAL116.
000300*AUTHOR.     CMS.
000400*       EFFECTIVE JANUARY 1, 2011
000500******************************************************************
000600* 4/06/05 - ALLOW PROVIDER TYPE '05' FOR PEDIATRIC HOSP          *
000700*         - TO BE EFFECTIVE WITH THE NEXT RELEASE                *
000800*         - CHANGED IN 0100-INITIAL-ROUTINE WITH PROVIDER        *
000900*           TYPE '40'                                            *
001000* 1/01/06 - NEW CBSA TABLE FOR CY2006                            *
001100*         - UPDATE 2005 MSA COMPOSITE RATES WITH 1.6% INCREASE   *
001200* 1/18/07 - THE MSA-WAGE-FACTOR-2007 WAS NOT IMPLEMENTED DURING  *
001300*           THE FIRST THREE MONTHS OF 2007                       *
001400*         - MSA-CBSA BLEND PERCENT NOW SET AT 50% MSA 50% CBSA   *
001500*         - ADDITIONAL VARIABLES WERE CREATED IN ORDER TO MAKE   *
001600*           CHANGING VALUES EASIER (IN WORKING STORAGE RATHER    *
001700*           THAN IN THE PROCEDURE DIVISION)                      *
001800*         - THIS PROGRAM NOW REFLECTS ENHANCEMENTS MADE SO THAT  *
001900*           TESTING OF THE CODE DOES NOT REQUIRE COMMENTING      *
002000*           IN/OUT LINES OF CODE.  IN ADDITION CALCULATED        *
002100*           VARIABLES ARE NOW PASSED BACK WHEN TEST CASES ARE    *
002200*           ENCOUNTERED IN ORDER FOR THE MASTER DRIVER TO PRINT  *
002300*           MORE INFORMATION ABOUT WHAT WENT ON IN THIS PROGRAM  *
002400* 1/19/07 - INDEPENDENT ESRD FACILITY WAGE NOW    $132.49        *
002500*           HOSPITAL BASED ESRD FACILTIY WAGE NOW $136.68        *
002600*           DRUG ADD-ON ADJUSTMENT AFTER 4/1/07   1.1490         *
002700* 1/26/07 - MSA COMPOSITE PAYMENT RATES INCREASED 1.6% ABOVE THE *
002800*           2006 RATES.  THIS MEANS THAT THE RATES PASSED FROM   *
002900*           THE DRIVER, WHICH ARE 2005 RATES, NEED TO BE         *
003000*           MULTIPLIED BY 1.016 AND THEN ROUNDED TO GET THE 2006 *
003100*           RATE AND THEN THAT RESULT MULTIPLIED BY ANOTHER 1.016*
003200*           AND ROUNDED AGAIN TO GET THE 4/1/2007 RATE.  THIS    *
003300*           NECESSARY ROUNDING MAKES THE RESULTS AGREE WITH THOSE*
003400*           PUBLISHED IN THE FEDERAL REGISTER.  THIS METHOD WAS  *
003500*           VERIFIED VIA TEDIOUS EXCEL SPREADSHEET CALCULATIONS  *
003600* 10/30/07- MSA COMPOSITE PAYMENT RATES DID NOT INCREASE FROM THE*
003700*           2007/04/01 RATES.  THE COMPOSITE BASE RATES DID NOT  *
003800*           CHANGE FROM THE 07/04/01 FACILITY RATES.             *
003900*           THE BLEND OF MSA TO CBSA WAS CHANGED TO 25% MSA AND  *
004000*           75% CBSA.                                            *
004100*           THE DRUG ADDON FACTOR WAS INCREASED TO 1.1550        *
004200*           ALL OTHER FIGURES REMAINED THE SAME.                 *
004300* 11/21/07- CHANGES WERE MADE TO ALL THE CALCULATION SUBROUTINES *
004400*           BEGINNING IN 2005 IN ORDER TO ENSURE THAT THE        *
004500*           PC-PRICER CAN USE THE **EXACT** SAME CODE THAT EXISTS*
004600*           ON THE MAINFRAME.  IN ORDER TO ENSURE THAT THE       *
004700*           LINKAGE SECTION REMAINS THE SAME, THE FILLER AREAS   *
004800*           LOCATED AT THE END OF EACH '05' LEVEL HAVE BEEN      *
004900*           MODIFIED TO INCLUDE VARIABLES NEEDED FOR PROOFING OF *
005000*           THE MAINFRAME CODE AS WELL AS DISPLAYING ON THE PC-  *
005100*           PRICER.                                              *
005200*         -      THE VARIABLE LABELED 'P-ESRD-RATE' IS NEVER     *
005300*           USED IN CALCUALTIONS SINCE THE DRIVER IS THE ONLY ONE*
005400*           THAT USES IT IN SPECIAL CIRCUMSTANCES AT THE FISCAL  *
005500*           INTERMEDIARIES.  THEREFORE A DUAL USE WAS MADE OF IT *
005600*           SO THAT THE PC-PRICER CAN MAKE USE OF THE VERY       *
005700*           LIMITED SPACE LEFT.  THE VARIABLE NAME WAS REDEFINED *
005800*           TO 'CASE-MIX-FCTR-ADJ-RATE' TO REFLECT IT'S USAGE ON *
005900*           THE PC-PRICER.                                       *
006000*         -        USAGE OF THE THESE FILLER AREAS AND THE       *
006100*           'CASE-MIX-FCTR-ADJ-RATE' VARIABLE WILL ONLY OCCUR    *
006200*           WHEN A 'T' (FOR TESTING) IS IN THE LAST COLUMN OF THE*
006300*           INPUT RECORD.  OTHERWISE THESE VARIABLES WILL CONTAIN*
006400*           SPACES WHEN NOT IN TEST MODE.  MOST OF THE MOVES TO  *
006500*           THESE VARIABLES OCCURS IN THE 9000-MOVE-RESULTS PARA-*
006600*           GRAPH.  A FEW MOVES MUST OCCUR IN OTHER AREAS OF THE *
006700*           PROGRAM.                                             *
006800* 11/07/08- ALL CODE FOR 2006-2008 WAGE ADJUSTED PAYMENTS WERE   *
006900*           REMOVED BECAUSE THERE IS NO LONGER A BLEND BETWEEN   *
007000*           MSA AND CBSA STARTING 1/1/2009.                      *
007100*           THE DRUG ADDON FACTOR WAS CHANGED TO 1.1520          *
007200*           THE HOSPITAL AND INDEPENDENT ESRD FACILITY PAYMENT   *
007300*           RATES ARE NOW THE SAME.  THE TWO VARIABLES WERE LEFT *
007400*           IN THE PROGRAM IN CASE THEY DECIDE TO MAKE THEM      *
007500*           DIFFERENT IN THE FUTURE.                             *
007600* 12/03/08- RENAMED THIS SUBROUTINE ESCAL091 AND CHANGED THE     *
007700*           APPROPRIATE VERSION INFORMATION.  THE 9.0 VERSION OF *
007800*           THE PRICER WAS SENT OUT IN NOVEMBER.  AFTERWARDS THE *
007900*           POLICY PEOPLE WHO SET THE WAGE INDEXES, CHANGED THEIR*
008000*           MINDS ABOUT CBSA 16700 AND RESCINDED THE WAGE INDEX. *
008100*           THIS NECESSITATED A RE-RELEASE OF THE ESRD PRICER IN *
008200*           ORDER TO MAKE SURE THAT THE FI'S ARE USING THE LATEST*
008300*           VERSION AT THE START OF CY2009.                      *
008400* 11/02/09- Renamed this subroutine ESCAL100 and changed the     *
008500*           appropriate version information.  Changed the        *
008600*           composite rate (Hosp-Based-Pmt-Rate and Indp-ESRD-Fac*
008700*           -Pmt-Rate) to 135.15.  Also changed the Drug-Addon to*
008800*           1.1500.                                              *
008900*         - Began reorganization of program so that it can be    *
009000*           used with the Bundled rate payment system as well as *
009100*           the Composite rate payment system.  In that light,   *
009200*           changed WAGE-NEW-CBSA-RECORD to COM-CBSA-WAGE-RECORD *
009300*           and added BUN-CBSA-WAGE-RECORD which is not used in  *
009400*           this version of the program.  Changed corresponding  *
009500*           variable names to agree with the new name.           *
009600* 10/29/10- Renamed this subroutine ESCAL110.  This pricer       *
009700*           changed from being only a Composite Rate pricer to   *
009800*           processing line-items using both the Composite Rate  *
009900*           methodology AND a Bundled (now called PPS) Rate      *
010000*           methodology during a blend period that lasts from    *
010100*           2011 to 2013.  The original composite rate code has  *
010200*           been completely rewritten to conform to the new      *
010300*           manner of pricing as well as being more efficient.   *
010400*           There are too many changes to list from the bundled  *
010500*           methodology to put here.                             *
010600*           On the composite-rate side of the program, the drug  *
010700*           add-on has been changed to 14.7 percent and the      *
010800*           the composite rate changed to $138.53.               *
010900*           Also added new variable A-49-CENT-PART-D-DRUG-ADJ    *
011000*           to the composite-rate side of the calculation which  *
011100*           is an adjustment for ESRD drugs and biologicals      *
011200*           currently paid under Part-D.                         *
011300* 03/07/11- Renamed this subroutine ESCAL116.  This was due to   *
011400*           changes made to the initial version which was re-    *
011500*           leased to FISS for their initial work in bringing up *
011600*           the new pricer.  Future revisions may be needed.     *
011700* FUTURE    This program is intended to be used in a running TEN *
011800*           year (current year and nine prior years) mode.       *
011900*           As of 10/10, there are no plans on which variables to*
012000*           remove since plans may change.                       *
012100******************************************************************
012200 DATE-COMPILED.
012300 ENVIRONMENT DIVISION.
012400 CONFIGURATION SECTION.
012500 SOURCE-COMPUTER.            IBM-Z990.
012600 OBJECT-COMPUTER.            IBM.
012700 INPUT-OUTPUT  SECTION.
012800 FILE-CONTROL.
012900
013000 DATA DIVISION.
013100 FILE SECTION.
013200/
013300 WORKING-STORAGE SECTION.
013400 01  W-STORAGE-REF                  PIC X(46)  VALUE
013500     'ESCAL116      - W O R K I N G   S T O R A G E'.
013600 01  CAL-VERSION                    PIC X(05)  VALUE 'C11.6'.
013700
013800 01  DISPLAY-LINE-MEASUREMENT.
013900     05  FILLER                     PIC X(50) VALUE
014000         '....:...10....:...20....:...30....:...40....:...50'.
014100     05  FILLER                     PIC X(50) VALUE
014200         '....:...60....:...70....:...80....:...90....:..100'.
014300     05  FILLER                     PIC X(20) VALUE
014400         '....:..110....:..120'.
014500
014600 01  PRINT-LINE-MEASUREMENT.
014700     05  FILLER                     PIC X(51) VALUE
014800         'X....:...10....:...20....:...30....:...40....:...50'.
014900     05  FILLER                     PIC X(50) VALUE
015000         '....:...60....:...70....:...80....:...90....:..100'.
015100     05  FILLER                     PIC X(32) VALUE
015200         '....:..110....:..120....:..130..'.
015300/
015400******************************************************************
015500*  This area contains all of the old Composite Rate variables.   *
015600* They will be eliminated when the transition period ends - 2014 *
015700******************************************************************
015800 01  HOLD-COMP-RATE-PPS-COMPONENTS.
015900     05  H-PAYMENT-RATE             PIC 9(04)V9(02).
016000     05  H-PYMT-AMT                 PIC 9(04)V9(02).
016100     05  H-WAGE-ADJ-PYMT-AMT        PIC 9(04)V9(02).
016200     05  H-PATIENT-AGE              PIC 9(03).
016300     05  H-AGE-FACTOR               PIC 9(01)V9(03).
016400     05  H-BSA-FACTOR               PIC 9(01)V9(04).
016500     05  H-BMI-FACTOR               PIC 9(01)V9(04).
016600     05  H-BSA                      PIC 9(03)V9(04).
016700     05  H-BMI                      PIC 9(03)V9(04).
016800     05  HGT-PART                   PIC 9(04)V9(08).
016900     05  WGT-PART                   PIC 9(04)V9(08).
017000     05  COMBINED-PART              PIC 9(04)V9(08).
017100     05  CALC-BSA                   PIC 9(04)V9(08).
017200
017300
017400* The following two variables will change from year to year
017500* and are used for the COMPOSITE part of the Bundled Pricer.
017600 01  DRUG-ADDON                     PIC 9(01)V9(04) VALUE 1.1470.
017700 01  BASE-PAYMENT-RATE              PIC 9(04)V9(02) VALUE 138.53.
017800
017900* The next two percentages MUST add up to 1 (i.e. 100%)
018000* They will continue to change until CY2009 when CBSA will be 1.00
018100 01  MSA-BLEND-PCT                  PIC 9(01)V9(02) VALUE 0.00.
018200 01  CBSA-BLEND-PCT                 PIC 9(01)V9(02) VALUE 1.00.
018300
018400* CONSTANTS AREA
018500* The next two percentages MUST add up TO 1 (i.e. 100%)
018600 01  NAT-LABOR-PCT                  PIC 9(01)V9(05) VALUE 0.53711.
018700 01  NAT-NONLABOR-PCT               PIC 9(01)V9(05) VALUE 0.46289.
018800
018900 01  A-49-CENT-PART-D-DRUG-ADJ      PIC 9(01)V9(02) VALUE 0.49.
019000 01  HEMO-PERI-CCPD-AMT             PIC 9(02)       VALUE 20.
019100 01  CAPD-AMT                       PIC 9(02)       VALUE 12.
019200 01  CAPD-OR-CCPD-FACTOR            PIC 9(01)V9(06) VALUE
019300                                                         0.428571.
019400* The above number technically represents the fractional
019500* number 3/7 which is three days per week that a person can
019600* receive dialysis.  It will remain this value ONLY for the
019700* COMPOSITe side of the Bundled Pricer.  The Bundled portion will
019800* use the calculation method which is more understandable and
019900* follows the method used by the Policy folks.
020000
020100*  The following number that is loaded into the payment equation
020200*  is meant to BUDGET NEUTRALIZE changes in THE CASE MIX INDEX
020300*  and   --DOES NOT CHANGE--
020400
020500 01  CASE-MIX-BDGT-NEUT-FACTOR      PIC 9(01)V9(04) VALUE 0.9116.
020600
020700 01  COMPOSITE-RATE-MULTIPLIERS.
020800*Composite rate payment multiplier (used for blended providers)
020900     05  CR-AGE-LT-18           PIC 9(01)V9(03) VALUE 1.620.
021000     05  CR-AGE-18-44           PIC 9(01)V9(03) VALUE 1.223.
021100     05  CR-AGE-45-59           PIC 9(01)V9(03) VALUE 1.055.
021200     05  CR-AGE-60-69           PIC 9(01)V9(03) VALUE 1.000.
021300     05  CR-AGE-70-79           PIC 9(01)V9(03) VALUE 1.094.
021400     05  CR-AGE-80-PLUS         PIC 9(01)V9(03) VALUE 1.174.
021500
021600     05  CR-BSA                 PIC 9(01)V9(03) VALUE 1.037.
021700     05  CR-BMI-LT-18-5         PIC 9(01)V9(03) VALUE 1.112.
021800/
021900******************************************************************
022000*    This area contains all of the NEW Bundled Rate variables.   *
022100******************************************************************
022200 01  HOLD-BUNDLED-PPS-COMPONENTS.
022300     05  H-BUN-NAT-LABOR-AMT        PIC 9(04)V9(02).
022400     05  H-BUN-NAT-NONLABOR-AMT     PIC 9(04)V9(02).
022500     05  H-BUN-BASE-WAGE-AMT        PIC 9(04)V9(04).
022600     05  H-BUN-AGE-FACTOR           PIC 9(01)V9(03).
022700     05  H-BUN-BSA                  PIC 9(03)V9(04).
022800     05  H-BUN-BSA-FACTOR           PIC 9(01)V9(04).
022900     05  H-BUN-BMI                  PIC 9(03)V9(04).
023000     05  H-BUN-BMI-FACTOR           PIC 9(01)V9(04).
023100     05  H-BUN-ONSET-FACTOR         PIC 9(01)V9(04).
023200     05  H-BUN-COMORBID-MULTIPLIER  PIC 9(01)V9(03).
023300     05  H-BUN-ADJUSTED-BASE-WAGE-AMT
023400                                    PIC 9(07)V9(04).
023500     05  H-BUN-WAGE-ADJ-TRAINING-AMT
023600                                    PIC 9(07)V9(04).
023700     05  H-CC-74-PER-DIEM-AMT       PIC 9(07)V9(04).
023800     05  H-HEMO-EQUIV-DIAL-SESSIONS PIC 9(07)V9(04).
023900     05  H-PPS-FINAL-PAY-AMT        PIC 9(07)V9(02).
024000     05  H-FULL-CLAIM-AMT           PIC 9(07)V9(02).
024100
024200     05  H-COMORBID-MULTIPLIER      PIC 9(01)V9(03).
024300     05  IS-HIGH-COMORBID-FOUND     PIC X(01).
024400         88  HIGH-COMORBID-FOUND               VALUE 'Y'.
024500
024600     05  H-COMORBID-DATA  OCCURS 6 TIMES
024700            INDEXED BY H-COMORBID-INDEX
024800                                    PIC X(02).
024900     05  H-COMORBID-CWF-CODE        PIC X(02).
025000
025100     05  H-BUN-LOW-VOL-MULTIPLIER   PIC 9(01)V9(03).
025200     05  SUB                        PIC 9(04).
025300
025400     05  THE-DATE                   PIC 9(08).
025500     05  INTEGER-LINE-ITEM-DATE     PIC S9(09).
025600     05  INTEGER-DIALYSIS-DATE      PIC S9(09).
025700     05  ONSET-DATE                 PIC 9(08).
025800     05  MOVED-CORMORBIDS           PIC X(01).
025900
026000 01  HOLD-OUTLIER-PPS-COMPONENTS.
026100     05  H-OUT-AGE-FACTOR           PIC 9(01)V9(03).
026200     05  H-OUT-BSA                  PIC 9(03)V9(04).
026300     05  H-OUT-BSA-FACTOR           PIC 9(01)V9(04).
026400     05  H-OUT-BMI                  PIC 9(03)V9(04).
026500     05  H-OUT-BMI-FACTOR           PIC 9(01)V9(04).
026600     05  H-OUT-ONSET-FACTOR         PIC 9(01)V9(04).
026700     05  H-OUT-COMORBID-MULTIPLIER  PIC 9(01)V9(03).
026800     05  H-OUT-LOW-VOL-MULTIPLIER   PIC 9(01)V9(03).
026900     05  H-OUT-ADJ-AVG-MAP-AMT      PIC 9(03)V9(02).
027000     05  H-OUT-FIX-DOLLAR-LOSS      PIC 9(04)V9(02).
027100     05  H-OUT-LOSS-SHARING-PCT     PIC 9(01)V9(02).
027200     05  H-OUT-PREDICTED-SERVICES-MAP
027300                                    PIC 9(07)V9(04).
027400     05  H-OUT-IMPUTED-MAP          PIC 9(07)V9(04).
027500     05  H-OUT-CM-ADJ-PREDICT-MAP-TRT
027600                                    PIC 9(07)V9(04).
027700     05  H-OUT-PREDICTED-MAP        PIC 9(07)V9(04).
027800     05  H-OUT-PAYMENT              PIC 9(07)V9(04).
027900     05  H-OUT-HEMO-EQUIV-PAYMENT   PIC 9(07)V9(04).
028000
028100
028200* The following variable will change from year to year and is
028300* used for the BUNDLED part of the Bundled Pricer.
028400 01  BUNDLED-BASE-PMT-RATE          PIC 9(04)V9(02) VALUE 229.63.
028500
028600* The next two percentages MUST add up to 1 (i.e. 100%)
028700* They start in 2011 and will continue to change until CY2014 when
028800* BUN-CBSA-BLEND-PCT will be 1.00
028900* The third blend percent is for those providers that waived the
029000* blended percent and went to full PPS.  This variable will be
029100* eliminated in 2014 when it is no longer needed.
029200 01  COM-CBSA-BLEND-PCT             PIC 9(01)V9(02) VALUE 0.75.
029300 01  BUN-CBSA-BLEND-PCT             PIC 9(01)V9(02) VALUE 0.25.
029400 01  WAIVE-CBSA-BLEND-PCT           PIC 9(01)V9(02) VALUE 1.00.
029500
029600* CONSTANTS AREA
029700* The next two percentages MUST add up TO 1 (i.e. 100%)
029800 01  BUN-NAT-LABOR-PCT              PIC 9(01)V9(05) VALUE 0.41737.
029900 01  BUN-NAT-NONLABOR-PCT           PIC 9(01)V9(05) VALUE 0.58263.
030000 01  TRAINING-ADD-ON-PMT-AMT        PIC 9(02)V9(02) VALUE 33.44.
030100
030200*  The following number that is loaded into the payment equation
030300*  is meant to BUDGET NEUTRALIZE changes in the bundled case-mix
030400*  and   --DOES NOT CHANGE--
030500
030600 01  TRANSITION-BDGT-NEUT-FACTOR    PIC 9(01)V9(04) VALUE 0.9690.
030700
030800 01  PEDIATRIC-MULTIPLIERS.
030900*Separately billable payment multiplier (used for outliers)
031000     05  PED-SEP-BILL-PAY-MULTI.
031100         10  SB-AGE-LT-13-PD-MODE   PIC 9(01)V9(03) VALUE 0.319.
031200         10  SB-AGE-LT-13-HEMO-MODE PIC 9(01)V9(03) VALUE 1.185.
031300         10  SB-AGE-13-17-PD-MODE   PIC 9(01)V9(03) VALUE 0.476.
031400         10  SB-AGE-13-17-HEMO-MODE PIC 9(01)V9(03) VALUE 1.459.
031500     05  PED-EXPAND-BUNDLE-PAY-MULTI.
031600*Expanded bundle payment multiplier (used for normal billing)
031700         10  EB-AGE-LT-13-PD-MODE   PIC 9(01)V9(03) VALUE 1.033.
031800         10  EB-AGE-LT-13-HEMO-MODE PIC 9(01)V9(03) VALUE 1.219.
031900         10  EB-AGE-13-17-PD-MODE   PIC 9(01)V9(03) VALUE 1.067.
032000         10  EB-AGE-13-17-HEMO-MODE PIC 9(01)V9(03) VALUE 1.277.
032100
032200 01  ADULT-MULTIPLIERS.
032300*Separately billable payment multiplier (used for outliers)
032400     05  SEP-BILLABLE-PAYMANT-MULTI.
032500         10  SB-AGE-18-44           PIC 9(01)V9(03) VALUE 0.996.
032600         10  SB-AGE-45-59           PIC 9(01)V9(03) VALUE 0.992.
032700         10  SB-AGE-60-69           PIC 9(01)V9(03) VALUE 1.000.
032800         10  SB-AGE-70-79           PIC 9(01)V9(03) VALUE 0.963.
032900         10  SB-AGE-80-PLUS         PIC 9(01)V9(03) VALUE 0.915.
033000         10  SB-BSA                 PIC 9(01)V9(03) VALUE 1.014.
033100         10  SB-BMI-LT-18-5         PIC 9(01)V9(03) VALUE 1.078.
033200         10  SB-ONSET-LE-120        PIC 9(01)V9(03) VALUE 1.450.
033300         10  SB-PERICARDITIS        PIC 9(01)V9(03) VALUE 1.354.
033400         10  SB-PNEUMONIA           PIC 9(01)V9(03) VALUE 1.422.
033500         10  SB-GI-BLEED            PIC 9(01)V9(03) VALUE 1.571.
033600         10  SB-SICKEL-CELL         PIC 9(01)V9(03) VALUE 1.225.
033700         10  SB-MYELODYSPLASTIC     PIC 9(01)V9(03) VALUE 1.309.
033800         10  SB-MONOCLONAL-GAMM     PIC 9(01)V9(03) VALUE 1.074.
033900         10  SB-LOW-VOL-ADJ-LT-4000 PIC 9(01)V9(03) VALUE 0.975.
034000*Case-Mix adjusted payment multiplier (used for normal billing)
034100     05  CASE-MIX-PAYMENT-MULTI.
034200         10  CM-AGE-18-44           PIC 9(01)V9(03) VALUE 1.171.
034300         10  CM-AGE-45-59           PIC 9(01)V9(03) VALUE 1.013.
034400         10  CM-AGE-60-69           PIC 9(01)V9(03) VALUE 1.000.
034500         10  CM-AGE-70-79           PIC 9(01)V9(03) VALUE 1.011.
034600         10  CM-AGE-80-PLUS         PIC 9(01)V9(03) VALUE 1.016.
034700         10  CM-BSA                 PIC 9(01)V9(03) VALUE 1.020.
034800         10  CM-BMI-LT-18-5         PIC 9(01)V9(03) VALUE 1.025.
034900         10  CM-ONSET-LE-120        PIC 9(01)V9(03) VALUE 1.510.
035000         10  CM-PERICARDITIS        PIC 9(01)V9(03) VALUE 1.114.
035100         10  CM-PNEUMONIA           PIC 9(01)V9(03) VALUE 1.135.
035200         10  CM-GI-BLEED            PIC 9(01)V9(03) VALUE 1.183.
035300         10  CM-SICKEL-CELL         PIC 9(01)V9(03) VALUE 1.072.
035400         10  CM-MYELODYSPLASTIC     PIC 9(01)V9(03) VALUE 1.099.
035500         10  CM-MONOCLONAL-GAMM     PIC 9(01)V9(03) VALUE 1.024.
035600         10  CM-LOW-VOL-ADJ-LT-4000 PIC 9(01)V9(03) VALUE 1.189.
035700
035800 01  OUTLIER-SB-CALC-AMOUNTS.
035900     05  ADJ-AVG-MAP-AMT-LT-18      PIC 9(04)V9(02) VALUE 53.06.
036000     05  ADJ-AVG-MAP-AMT-GT-17      PIC 9(04)V9(02) VALUE 82.78.
036100     05  FIX-DOLLAR-LOSS-LT-18      PIC 9(04)V9(02) VALUE 195.02.
036200     05  FIX-DOLLAR-LOSS-GT-17      PIC 9(04)V9(02) VALUE 155.44.
036300     05  LOSS-SHARING-PCT-LT-18     PIC 9(03)V9(02) VALUE 0.80.
036400     05  LOSS-SHARING-PCT-GT-17     PIC 9(03)V9(02) VALUE 0.80.
036500/
036600******************************************************************
036700*    This area contains return code variables and their codes.   *
036800******************************************************************
036900 01 PAID-RETURN-CODE-TRACKERS.
037000     05  OUTLIER-TRACK              PIC X(01).
037100     05  ACUTE-COMORBID-TRACK       PIC X(01).
037200     05  CHRONIC-COMORBID-TRACK     PIC X(01).
037300     05  ONSET-TRACK                PIC X(01).
037400     05  LOW-VOLUME-TRACK           PIC X(01).
037500     05  TRAINING-TRACK             PIC X(01).
037600     05  PEDIATRIC-TRACK            PIC X(01).
037700     05  LOW-BMI-TRACK              PIC X(01).
037800 COPY RTCCPY.
037900*COPY "RTCCPY.CPY".
038000*                                                                *
038100*  Legal combinations of adjustments for ADULTS are:             *
038200*     if NO ONSET applies, then they can have any combination of:*
038300*       acute OR chronic comorbid, & outlier, low vol., training.*
038400*     if ONSET applies, then they can have:                      *
038500*           outlier and/or low volume.                           *
038600*  Legal combinations of adjustments for PEDIATRIC are:          *
038700*     outlier and/or training.                                   *
038800*                                                                *
038900*  Illegal combinations of adjustments for PEDIATRIC are:        *
039000*     pediatric with comorbid, onset, low volume, BSA, or BMI.   *
039100*     onset     with comorbid or training.                       *
039200*  Illegal combinations of adjustments for ANYONE are:           *
039300*     acute comorbid AND chronic comorbid.                       *
039400/
039500 LINKAGE SECTION.
039600 COPY BILLCPY.
039700*COPY "BILLCPY.CPY".
039800/
039900 COPY WAGECPY.
040000*COPY "WAGECPY.CPY".
040100/
040200 PROCEDURE DIVISION  USING BILL-NEW-DATA
040300                           PPS-DATA-ALL
040400                           WAGE-NEW-RATE-RECORD
040500                           COM-CBSA-WAGE-RECORD
040600                           BUN-CBSA-WAGE-RECORD.
040700
040800******************************************************************
040900* THERE ARE VARIOUS WAYS TO COMPUTE A FINAL DOLLAR AMOUNT.  THE  *
041000* METHOD USED IN THIS PROGRAM IS TO USE ROUNDED INTERMEDIATE     *
041100* VARIABLES.  THIS WAS DONE TO SIMPLIFY THE CALCULATIONS SO THAT *
041200* WHEN SOMETHING GOES AWRY, ONE IS NOT LEFT WONDERING WHERE IN   *
041300* A VAST COMPUTE STATEMENT, THINGS HAVE GONE AWRY.  THE METHOD   *
041400* UTILIZED HERE HAS BEEN APPROVED BY CMS.                        *
041500*                                                                *
041600*                                                                *
041700*                                                                *
041800*                                                                *
041900*    PROCESSING:                                                 *
042000*        A. WILL PROCESS CLAIMS BASED ON AGE/HEIGHT/WEIGHT       *
042100*        B. INITIALIZE ESCAL HOLD VARIABLES.                     *
042200*        C. EDIT THE DATA PASSED FROM THE CLAIM BEFORE           *
042300*           ATTEMPTING TO CALCULATE PPS. IF THIS CLAIM           *
042400*           CANNOT BE PROCESSED, SET A RETURN CODE AND           *
042500*           GOBACK.                                              *
042600*        D. ASSEMBLE PRICING COMPONENTS.                         *
042700*        E. CALCULATE THE PRICE.                                 *
042800******************************************************************
042900
043000 0000-START-TO-FINISH.
043100     INITIALIZE PPS-DATA-ALL.
043200
043300     IF BUNDLED-TEST  THEN
043400        INITIALIZE BILL-DATA-TEST
043500        INITIALIZE COND-CD-73
043600     END-IF.
043700     MOVE CAL-VERSION                  TO PPS-CALC-VERS-CD.
043800     MOVE ZEROS                        TO PPS-RTC.
043900
044000     PERFORM 1000-VALIDATE-BILL-ELEMENTS.
044100
044200     IF PPS-RTC = 00  THEN
044300        PERFORM 1200-INITIALIZATION
044400**Calculate patient age
044500        COMPUTE H-PATIENT-AGE = B-THRU-CCYY - B-DOB-CCYY
044600        IF B-DOB-MM > B-THRU-MM  THEN
044700           COMPUTE H-PATIENT-AGE = H-PATIENT-AGE - 1
044800        END-IF
044900        IF H-PATIENT-AGE < 18  THEN
045000           MOVE "Y"                    TO PEDIATRIC-TRACK
045100        END-IF
045200        PERFORM 2000-CALCULATE-BUNDLED-FACTORS
045300        IF P-PROV-WAIVE-BLEND-PAY-INDIC = 'N'  THEN
045400           PERFORM 5000-CALC-COMP-RATE-FACTORS
045500        END-IF
045600        PERFORM 9000-SET-RETURN-CODE
045700        PERFORM 9100-MOVE-RESULTS
045800     END-IF.
045900
046000     GOBACK.
046100/
046200 1000-VALIDATE-BILL-ELEMENTS.
046300     IF P-PROV-TYPE = '40'  OR  '41' OR '05'  THEN
046400        NEXT SENTENCE
046500     ELSE
046600        MOVE 52                        TO PPS-RTC
046700     END-IF.
046800
046900     IF PPS-RTC = 00  THEN
047000        IF P-SPEC-PYMT-IND NOT = '1' AND ' '  THEN
047100           MOVE 53                     TO PPS-RTC
047200        END-IF
047300     END-IF.
047400
047500     IF PPS-RTC = 00  THEN
047600        IF (B-DOB-DATE = ZERO)  OR  (B-DOB-DATE NOT NUMERIC)  THEN
047700           MOVE 54                     TO PPS-RTC
047800        END-IF
047900     END-IF.
048000
048100     IF PPS-RTC = 00  THEN
048200        IF (B-PATIENT-WGT = 0)  OR  (B-PATIENT-WGT NOT NUMERIC)
048300           MOVE 55                     TO PPS-RTC
048400        END-IF
048500     END-IF.
048600
048700     IF PPS-RTC = 00  THEN
048800        IF (B-PATIENT-HGT = 0)  OR  (B-PATIENT-HGT NOT NUMERIC)
048900           MOVE 56                     TO PPS-RTC
049000        END-IF
049100     END-IF.
049200
049300     IF PPS-RTC = 00  THEN
049400        IF B-REV-CODE  = '0821' OR '0831' OR '0841' OR '0851'
049500                                OR '0881'
049600           NEXT SENTENCE
049700        ELSE
049800           MOVE 57                     TO PPS-RTC
049900        END-IF
050000     END-IF.
050100
050200     IF PPS-RTC = 00  THEN
050300        IF B-COND-CODE NOT = '73' AND '74' AND '  '
050400           MOVE 58                     TO PPS-RTC
050500        END-IF
050600     END-IF.
050700
050800     IF PPS-RTC = 00  THEN
050900        IF B-PATIENT-HGT > 300.00
051000           MOVE 71                     TO PPS-RTC
051100        END-IF
051200     END-IF.
051300
051400     IF PPS-RTC = 00  THEN
051500        IF B-PATIENT-WGT > 500.00  THEN
051600           MOVE 72                     TO PPS-RTC
051700        END-IF
051800     END-IF.
051900
052000* Before 2012 pricer, put in edit check to make sure that the
052100* # of sesions does not exceed the # of days in a month.  Maybe
052200* the # of cays in a month minus one when patient goes into a
052300* dialysis center for dialysis (i.e. CC = 74 and rev-cd = (0841
052400* or 0851)).  If done, then will need extra RTC.
052500     IF PPS-RTC = 00  THEN
052600        IF (B-CLAIM-NUM-DIALYSIS-SESSIONS = ZERO) OR
052700           (B-CLAIM-NUM-DIALYSIS-SESSIONS NOT NUMERIC)  THEN
052800           MOVE 73                     TO PPS-RTC
052900        END-IF
053000     END-IF.
053100
053200     IF PPS-RTC = 00  THEN
053300        IF (B-LINE-ITEM-DATE-SERVICE = ZERO) OR
053400           (B-LINE-ITEM-DATE-SERVICE NOT NUMERIC)  THEN
053500           MOVE 74                     TO PPS-RTC
053600        END-IF
053700     END-IF.
053800
053900     IF PPS-RTC = 00  THEN
054000        IF (B-DIALYSIS-START-DATE NOT NUMERIC)  THEN
054100           MOVE 75                     TO PPS-RTC
054200        END-IF
054300     END-IF.
054400
054500     IF PPS-RTC = 00  THEN
054600        IF (B-TOT-PRICE-SB-OUTLIER NOT NUMERIC) THEN
054700           MOVE 76                     TO PPS-RTC
054800        END-IF
054900     END-IF.
055000
055100     IF PPS-RTC = 00  THEN
055200        IF (COMORBID-CWF-RETURN-CODE = SPACES) OR
055300            VALID-COMORBID-CWF-RETURN-CD       THEN
055400           NEXT SENTENCE
055500        ELSE
055600           MOVE 81                     TO PPS-RTC
055700        END-IF
055800     END-IF.
055900/
056000 1200-INITIALIZATION.
056100     INITIALIZE HOLD-COMP-RATE-PPS-COMPONENTS.
056200     INITIALIZE HOLD-BUNDLED-PPS-COMPONENTS.
056300     INITIALIZE HOLD-OUTLIER-PPS-COMPONENTS.
056400     INITIALIZE PAID-RETURN-CODE-TRACKERS.
056500
056600     MOVE SPACES                       TO MOVED-CORMORBIDS.
056700
056800*    Since pricer has to pay a comorbid condition according to the
056900* return code that CWF passes back, it is cleaner if the pricer
057000* sets aside whatever comorbid data exists on the line-item when
057100* it comes into the pricer and then transferrs the CWF code to
057200* the appropriate place in the comorbid data.  This avoids
057300* making convoluted changes in the other parts of the program
057400* which has to look at both original comorbid data AND CWF return
057500* codes to handle comorbids.  Near the end of the program where
057600* variables are transferred to the output, the original comorbid
057700* data is put back into its original place as though nothing
057800* occurred.
057900     IF COMORBID-CWF-RETURN-CODE = SPACES  THEN
058000        NEXT SENTENCE
058100     ELSE
058200        MOVE 'Y'                       TO MOVED-CORMORBIDS
058300        MOVE COMORBID-DATA (1)         TO H-COMORBID-DATA (1)
058400        MOVE COMORBID-DATA (2)         TO H-COMORBID-DATA (2)
058500        MOVE COMORBID-DATA (3)         TO H-COMORBID-DATA (3)
058600        MOVE COMORBID-DATA (4)         TO H-COMORBID-DATA (4)
058700        MOVE COMORBID-DATA (5)         TO H-COMORBID-DATA (5)
058800        MOVE COMORBID-DATA (6)         TO H-COMORBID-DATA (6)
058900        MOVE COMORBID-CWF-RETURN-CODE  TO H-COMORBID-CWF-CODE
059000        IF COMORBID-CWF-RETURN-CODE = '10'  THEN
059100           MOVE SPACES                 TO COMORBID-DATA (1)
059200                                          COMORBID-DATA (2)
059300                                          COMORBID-DATA (3)
059400                                          COMORBID-DATA (4)
059500                                          COMORBID-DATA (5)
059600                                          COMORBID-DATA (6)
059700                                          COMORBID-CWF-RETURN-CODE
059800        ELSE
059900           IF COMORBID-CWF-RETURN-CODE = '20'  THEN
060000              MOVE 'MA'                TO COMORBID-DATA (1)
060100              MOVE SPACES              TO COMORBID-DATA (2)
060200                                          COMORBID-DATA (3)
060300                                          COMORBID-DATA (4)
060400                                          COMORBID-DATA (5)
060500                                          COMORBID-DATA (6)
060600                                          COMORBID-CWF-RETURN-CODE
060700           ELSE
060800              IF COMORBID-CWF-RETURN-CODE = '30'  THEN
060900                 MOVE SPACES           TO COMORBID-DATA (1)
061000                 MOVE 'MB'             TO COMORBID-DATA (2)
061100                 MOVE SPACES           TO COMORBID-DATA (3)
061200                 MOVE SPACES           TO COMORBID-DATA (4)
061300                 MOVE SPACES           TO COMORBID-DATA (5)
061400                 MOVE SPACES           TO COMORBID-DATA (6)
061500                                          COMORBID-CWF-RETURN-CODE
061600              ELSE
061700                 IF COMORBID-CWF-RETURN-CODE = '40'  THEN
061800                    MOVE SPACES        TO COMORBID-DATA (1)
061900                    MOVE SPACES        TO COMORBID-DATA (2)
062000                    MOVE 'MC'          TO COMORBID-DATA (3)
062100                    MOVE SPACES        TO COMORBID-DATA (4)
062200                    MOVE SPACES        TO COMORBID-DATA (5)
062300                    MOVE SPACES        TO COMORBID-DATA (6)
062400                                          COMORBID-CWF-RETURN-CODE
062500                 ELSE
062600                    IF COMORBID-CWF-RETURN-CODE = '50'  THEN
062700                       MOVE SPACES     TO COMORBID-DATA (1)
062800                       MOVE SPACES     TO COMORBID-DATA (2)
062900                       MOVE SPACES     TO COMORBID-DATA (3)
063000                       MOVE 'MD'       TO COMORBID-DATA (4)
063100                       MOVE SPACES     TO COMORBID-DATA (5)
063200                       MOVE SPACES     TO COMORBID-DATA (6)
063300                                          COMORBID-CWF-RETURN-CODE
063400                    ELSE
063500                       IF COMORBID-CWF-RETURN-CODE = '60'  THEN
063600                          MOVE SPACES  TO COMORBID-DATA (1)
063700                          MOVE SPACES  TO COMORBID-DATA (2)
063800                          MOVE SPACES  TO COMORBID-DATA (3)
063900                          MOVE SPACES  TO COMORBID-DATA (4)
064000                          MOVE 'ME'    TO COMORBID-DATA (5)
064100                          MOVE SPACES  TO COMORBID-DATA (6)
064200                                          COMORBID-CWF-RETURN-CODE
064300                       ELSE
064400                          MOVE SPACES  TO COMORBID-DATA (1)
064500                                          COMORBID-DATA (2)
064600                                          COMORBID-DATA (3)
064700                                          COMORBID-DATA (4)
064800                                          COMORBID-DATA (5)
064900                                          COMORBID-CWF-RETURN-CODE
065000                          MOVE 'MF'    TO COMORBID-DATA (6)
065100                       END-IF
065200                    END-IF
065300                 END-IF
065400              END-IF
065500           END-IF
065600        END-IF
065700     END-IF.
065800
065900******************************************************************
066000***Calculate BUNDLED Wage Adjusted Rate (note different method)***
066100******************************************************************
066200     COMPUTE H-BUN-NAT-LABOR-AMT ROUNDED =
066300        (BUNDLED-BASE-PMT-RATE * BUN-NAT-LABOR-PCT) *
066400         BUN-CBSA-W-INDEX.
066500
066600     COMPUTE H-BUN-NAT-NONLABOR-AMT ROUNDED =
066700        BUNDLED-BASE-PMT-RATE * BUN-NAT-NONLABOR-PCT
066800
066900     COMPUTE H-BUN-BASE-WAGE-AMT ROUNDED =
067000        H-BUN-NAT-LABOR-AMT + H-BUN-NAT-NONLABOR-AMT.
067100/
067200 2000-CALCULATE-BUNDLED-FACTORS.
067300******************************************************************
067400***  Set BUNDLED age adjustment factor                         ***
067500******************************************************************
067600     IF H-PATIENT-AGE < 13  THEN
067700        IF B-REV-CODE = '0821'  THEN
067800           MOVE EB-AGE-LT-13-HEMO-MODE TO H-BUN-AGE-FACTOR
067900        ELSE
068000           MOVE EB-AGE-LT-13-PD-MODE   TO H-BUN-AGE-FACTOR
068100        END-IF
068200     ELSE
068300        IF H-PATIENT-AGE < 18 THEN
068400           IF B-REV-CODE = '0821'  THEN
068500              MOVE EB-AGE-13-17-HEMO-MODE
068600                                       TO H-BUN-AGE-FACTOR
068700           ELSE
068800              MOVE EB-AGE-13-17-PD-MODE
068900                                       TO H-BUN-AGE-FACTOR
069000           END-IF
069100        ELSE
069200           IF H-PATIENT-AGE < 45  THEN
069300              MOVE CM-AGE-18-44        TO H-BUN-AGE-FACTOR
069400           ELSE
069500              IF H-PATIENT-AGE < 60  THEN
069600                 MOVE CM-AGE-45-59     TO H-BUN-AGE-FACTOR
069700              ELSE
069800                 IF H-PATIENT-AGE < 70  THEN
069900                    MOVE CM-AGE-60-69  TO H-BUN-AGE-FACTOR
070000                 ELSE
070100                    IF H-PATIENT-AGE < 80  THEN
070200                       MOVE CM-AGE-70-79
070300                                       TO H-BUN-AGE-FACTOR
070400                    ELSE
070500                       MOVE CM-AGE-80-PLUS
070600                                       TO H-BUN-AGE-FACTOR
070700                    END-IF
070800                 END-IF
070900              END-IF
071000           END-IF
071100        END-IF
071200     END-IF.
071300
071400******************************************************************
071500***  Calculate BUNDLED BSA factor (note NEW formula)           ***
071600******************************************************************
071700     COMPUTE H-BUN-BSA  ROUNDED = (.007184 *
071800         (B-PATIENT-HGT ** .725) * (B-PATIENT-WGT ** .425))
071900
072000     IF H-PATIENT-AGE > 17  THEN
072100        COMPUTE H-BUN-BSA-FACTOR  ROUNDED =
072200             CM-BSA ** ((H-BUN-BSA - 1.87) / .1)
072300     ELSE
072400        MOVE 1.000                     TO H-BUN-BSA-FACTOR
072500     END-IF.
072600
072700******************************************************************
072800***  Calculate BUNDLED BMI factor                              ***
072900******************************************************************
073000     COMPUTE H-BUN-BMI  ROUNDED = (B-PATIENT-WGT /
073100         (B-PATIENT-HGT ** 2)) * 10000.
073200
073300     IF (H-PATIENT-AGE > 17) AND (H-BUN-BMI < 18.5)  THEN
073400        MOVE CM-BMI-LT-18-5            TO H-BUN-BMI-FACTOR
073500        MOVE "Y"                       TO LOW-BMI-TRACK
073600     ELSE
073700        MOVE 1.000                     TO H-BUN-BMI-FACTOR
073800     END-IF.
073900
074000******************************************************************
074100***  Calculate BUNDLED ONSET factor                            ***
074200******************************************************************
074300     IF B-DIALYSIS-START-DATE > ZERO  THEN
074400        MOVE B-LINE-ITEM-DATE-SERVICE  TO THE-DATE
074500        COMPUTE INTEGER-LINE-ITEM-DATE =
074600            FUNCTION INTEGER-OF-DATE(THE-DATE)
074700        MOVE B-DIALYSIS-START-DATE     TO THE-DATE
074800        COMPUTE INTEGER-DIALYSIS-DATE  =
074900            FUNCTION INTEGER-OF-DATE(THE-DATE)
075000        COMPUTE ONSET-DATE = (INTEGER-LINE-ITEM-DATE -
075100                              INTEGER-DIALYSIS-DATE)
075200        IF H-PATIENT-AGE > 17  THEN
075300           IF ONSET-DATE > 120  THEN
075400              MOVE 1                   TO H-BUN-ONSET-FACTOR
075500           ELSE
075600              MOVE CM-ONSET-LE-120     TO H-BUN-ONSET-FACTOR
075700              MOVE "Y"                 TO ONSET-TRACK
075800           END-IF
075900        ELSE
076000           MOVE 1                      TO H-BUN-ONSET-FACTOR
076100        END-IF
076200     ELSE
076300        MOVE 1.000                     TO H-BUN-ONSET-FACTOR
076400     END-IF.
076500
076600******************************************************************
076700***  Set BUNDLED Co-morbidities adjustment                     ***
076800******************************************************************
076900     IF COMORBID-CWF-RETURN-CODE = SPACES  THEN
077000        IF H-PATIENT-AGE  <  18  THEN
077100           MOVE 1.000                  TO
077200                                       H-BUN-COMORBID-MULTIPLIER
077300           MOVE '10'                   TO PPS-2011-COMORBID-PAY
077400        ELSE
077500           IF H-BUN-ONSET-FACTOR  =  CM-ONSET-LE-120  THEN
077600              MOVE 1.000               TO
077700                                       H-BUN-COMORBID-MULTIPLIER
077800              MOVE '10'                TO PPS-2011-COMORBID-PAY
077900           ELSE
078000              PERFORM 2100-CALC-COMORBID-ADJUST
078100              MOVE H-COMORBID-MULTIPLIER TO
078200                                       H-BUN-COMORBID-MULTIPLIER
078300           END-IF
078400        END-IF
078500     ELSE
078600        IF COMORBID-CWF-RETURN-CODE  =  '10'  THEN
078700           MOVE 1.000                  TO
078800                                       H-BUN-COMORBID-MULTIPLIER
078900           MOVE '10'                   TO PPS-2011-COMORBID-PAY
079000        ELSE
079100           IF COMORBID-CWF-RETURN-CODE  =  '20'  THEN
079200              MOVE CM-GI-BLEED         TO
079300                                       H-BUN-COMORBID-MULTIPLIER
079400              MOVE '20'                TO PPS-2011-COMORBID-PAY
079500           ELSE
079600              IF COMORBID-CWF-RETURN-CODE  =  '30'  THEN
079700                 MOVE CM-PNEUMONIA     TO
079800                                       H-BUN-COMORBID-MULTIPLIER
079900                 MOVE '30'             TO PPS-2011-COMORBID-PAY
080000              ELSE
080100                 IF COMORBID-CWF-RETURN-CODE  =  '40'  THEN
080200                    MOVE CM-PERICARDITIS TO
080300                                       H-BUN-COMORBID-MULTIPLIER
080400                    MOVE '40'          TO PPS-2011-COMORBID-PAY
080500                 END-IF
080600              END-IF
080700           END-IF
080800        END-IF
080900     END-IF.
081000
081100******************************************************************
081200***  Calculate BUNDLED Low Volume adjustment                   ***
081300******************************************************************
081400     IF P-PROV-LOW-VOLUME-INDIC = 'Y'  THEN
081500        IF H-PATIENT-AGE > 17  THEN
081600           MOVE CM-LOW-VOL-ADJ-LT-4000 TO
081700                                       H-BUN-LOW-VOL-MULTIPLIER
081800           MOVE "Y"                    TO  LOW-VOLUME-TRACK
081900        ELSE
082000           MOVE 1.000                  TO
082100                                       H-BUN-LOW-VOL-MULTIPLIER
082200        END-IF
082300     ELSE
082400        MOVE 1.000                     TO
082500                                       H-BUN-LOW-VOL-MULTIPLIER
082600     END-IF.
082700
082800
082900******************************************************************
083000***  Calculate BUNDLED Adjusted PPS Base Rate                  ***
083100******************************************************************
083200     COMPUTE H-BUN-ADJUSTED-BASE-WAGE-AMT  ROUNDED  =
083300        (H-BUN-BASE-WAGE-AMT * H-BUN-AGE-FACTOR)    *
083400        (H-BUN-BSA-FACTOR    * H-BUN-BMI-FACTOR)    *
083500        (H-BUN-ONSET-FACTOR  * H-BUN-COMORBID-MULTIPLIER) *
083600        (H-BUN-LOW-VOL-MULTIPLIER).
083700
083800
083900******************************************************************
084000***  Calculate BUNDLED Condition Code payment                  ***
084100******************************************************************
084200* Self-care in Training add-on
084300     IF B-COND-CODE = '73'  THEN
084400* no add-on when onset is present
084500        IF H-BUN-ONSET-FACTOR  =  CM-ONSET-LE-120  THEN
084600           MOVE ZERO                   TO
084700                                    H-BUN-WAGE-ADJ-TRAINING-AMT
084800        ELSE
084900* use new PPS training add-on amount times wage-index
085000           COMPUTE H-BUN-WAGE-ADJ-TRAINING-AMT  ROUNDED  =
085100             TRAINING-ADD-ON-PMT-AMT * BUN-CBSA-W-INDEX
085200           MOVE "Y"                    TO TRAINING-TRACK
085300        END-IF
085400     ELSE
085500* Dialysis in Home and (CAPD or CCPD) Per-Diem calculation
085600        IF (B-COND-CODE = '74')  AND
085700           (B-REV-CODE = '0841' OR '0851')  THEN
085800              COMPUTE H-CC-74-PER-DIEM-AMT  ROUNDED =
085900                 (H-BUN-ADJUSTED-BASE-WAGE-AMT * 3) / 7
086000        ELSE
086100           MOVE ZERO                   TO
086200                                    H-BUN-WAGE-ADJ-TRAINING-AMT
086300                                    H-CC-74-PER-DIEM-AMT
086400        END-IF
086500     END-IF.
086600
086700******************************************************************
086800***  Calculate BUNDLED Outlier                                 ***
086900******************************************************************
087000     PERFORM 2500-CALC-OUTLIER-FACTORS.
087100
087200******************************************************************
087300***  Calculate BUNDLED ESRD PPS Final Payment Rate             ***
087400******************************************************************
087500
087600     IF (B-COND-CODE = '74')  AND
087700        (B-REV-CODE = '0841' OR '0851')  THEN
087800           COMPUTE H-PPS-FINAL-PAY-AMT  ROUNDED  =
087900                           H-CC-74-PER-DIEM-AMT
088000           COMPUTE H-FULL-CLAIM-AMT  ROUNDED  =
088100              (H-BUN-ADJUSTED-BASE-WAGE-AMT *
088200              ((B-CLAIM-NUM-DIALYSIS-SESSIONS) * 3) / 7)
088300     ELSE
088400        COMPUTE H-PPS-FINAL-PAY-AMT  ROUNDED  =
088500                H-BUN-ADJUSTED-BASE-WAGE-AMT  +
088600                H-BUN-WAGE-ADJ-TRAINING-AMT
088700     END-IF.
088800
088900/
089000 2100-CALC-COMORBID-ADJUST.
089100******************************************************************
089200***  Calculate Co-morbidities adjustment                       ***
089300******************************************************************
089400*  This logic assumes that the comorbids are randomly assigned   *
089500*to the comorbid table.  It will select the highest comorbid for *
089600*payment if one is found.                                        *
089700******************************************************************
089800     MOVE 'N'                          TO IS-HIGH-COMORBID-FOUND.
089900     MOVE 1.000                        TO H-COMORBID-MULTIPLIER.
090000     MOVE '10'                         TO PPS-2011-COMORBID-PAY.
090100
090200     PERFORM VARYING  SUB  FROM  1 BY 1
090300       UNTIL SUB   >  6   OR   HIGH-COMORBID-FOUND
090400         IF COMORBID-DATA (SUB) = 'MA'  THEN
090500           MOVE CM-GI-BLEED            TO H-COMORBID-MULTIPLIER
090600           MOVE "Y"                    TO IS-HIGH-COMORBID-FOUND
090700           MOVE "Y"                    TO ACUTE-COMORBID-TRACK
090800           MOVE '20'                   TO PPS-2011-COMORBID-PAY
090900         ELSE
091000           IF COMORBID-DATA (SUB) = 'MB'  THEN
091100             IF CM-PNEUMONIA  >  H-COMORBID-MULTIPLIER  THEN
091200               MOVE CM-PNEUMONIA       TO H-COMORBID-MULTIPLIER
091300               MOVE "Y"                TO ACUTE-COMORBID-TRACK
091400               MOVE '30'               TO PPS-2011-COMORBID-PAY
091500             END-IF
091600           ELSE
091700             IF COMORBID-DATA (SUB) = 'MC'  THEN
091800                IF CM-PERICARDITIS  >
091900                                      H-COMORBID-MULTIPLIER  THEN
092000                  MOVE CM-PERICARDITIS TO H-COMORBID-MULTIPLIER
092100                  MOVE "Y"             TO ACUTE-COMORBID-TRACK
092200                  MOVE '40'            TO PPS-2011-COMORBID-PAY
092300                END-IF
092400             ELSE
092500               IF COMORBID-DATA (SUB) = 'MD'  THEN
092600                 IF CM-MYELODYSPLASTIC  >
092700                                      H-COMORBID-MULTIPLIER  THEN
092800                   MOVE CM-MYELODYSPLASTIC  TO
092900                                      H-COMORBID-MULTIPLIER
093000                   MOVE "Y"            TO CHRONIC-COMORBID-TRACK
093100                   MOVE '50'           TO PPS-2011-COMORBID-PAY
093200                 END-IF
093300               ELSE
093400                 IF COMORBID-DATA (SUB) = 'ME'  THEN
093500                   IF CM-SICKEL-CELL  >
093600                                      H-COMORBID-MULTIPLIER  THEN
093700                     MOVE CM-SICKEL-CELL  TO
093800                                      H-COMORBID-MULTIPLIER
093900                     MOVE "Y"          TO CHRONIC-COMORBID-TRACK
094000                     MOVE '60'         TO PPS-2011-COMORBID-PAY
094100                   END-IF
094200                 ELSE
094300                   IF COMORBID-DATA (SUB) = 'MF'  THEN
094400                     IF CM-MONOCLONAL-GAMM  >
094500                                      H-COMORBID-MULTIPLIER  THEN
094600                       MOVE CM-MONOCLONAL-GAMM TO
094700                                      H-COMORBID-MULTIPLIER
094800                       MOVE "Y"        TO CHRONIC-COMORBID-TRACK
094900                       MOVE '70'       TO PPS-2011-COMORBID-PAY
095000                     END-IF
095100                   END-IF
095200                 END-IF
095300               END-IF
095400             END-IF
095500           END-IF
095600         END-IF
095700     END-PERFORM.
095800/
095900 2500-CALC-OUTLIER-FACTORS.
096000******************************************************************
096100***  Set separately billable OUTLIER age adjustment factor     ***
096200******************************************************************
096300     IF H-PATIENT-AGE < 13  THEN
096400        IF B-REV-CODE = '0821'  THEN
096500           MOVE SB-AGE-LT-13-HEMO-MODE TO H-OUT-AGE-FACTOR
096600        ELSE
096700           MOVE SB-AGE-LT-13-PD-MODE   TO H-OUT-AGE-FACTOR
096800        END-IF
096900     ELSE
097000        IF H-PATIENT-AGE < 18 THEN
097100           IF B-REV-CODE = '0821'  THEN
097200              MOVE SB-AGE-13-17-HEMO-MODE
097300                                       TO H-OUT-AGE-FACTOR
097400           ELSE
097500              MOVE SB-AGE-13-17-PD-MODE
097600                                       TO H-OUT-AGE-FACTOR
097700           END-IF
097800        ELSE
097900           IF H-PATIENT-AGE < 45  THEN
098000              MOVE SB-AGE-18-44        TO H-OUT-AGE-FACTOR
098100           ELSE
098200              IF H-PATIENT-AGE < 60  THEN
098300                 MOVE SB-AGE-45-59     TO H-OUT-AGE-FACTOR
098400              ELSE
098500                 IF H-PATIENT-AGE < 70  THEN
098600                    MOVE SB-AGE-60-69  TO H-OUT-AGE-FACTOR
098700                 ELSE
098800                    IF H-PATIENT-AGE < 80  THEN
098900                       MOVE SB-AGE-70-79
099000                                       TO H-OUT-AGE-FACTOR
099100                    ELSE
099200                       MOVE SB-AGE-80-PLUS
099300                                       TO H-OUT-AGE-FACTOR
099400                    END-IF
099500                 END-IF
099600              END-IF
099700           END-IF
099800        END-IF
099900     END-IF.
100000
100100******************************************************************
100200**Calculate separately billable OUTLIER BSA factor (superscript)**
100300******************************************************************
100400     COMPUTE H-OUT-BSA  ROUNDED = (.007184 *
100500         (B-PATIENT-HGT ** .725) * (B-PATIENT-WGT ** .425))
100600
100700     IF H-PATIENT-AGE > 17  THEN
100800        COMPUTE H-OUT-BSA-FACTOR  ROUNDED =
100900             SB-BSA ** ((H-OUT-BSA - 1.87) / .1)
101000     ELSE
101100        MOVE 1.000                     TO H-OUT-BSA-FACTOR
101200     END-IF.
101300
101400******************************************************************
101500***  Calculate separately billable OUTLIER BMI factor          ***
101600******************************************************************
101700     COMPUTE H-OUT-BMI  ROUNDED = (B-PATIENT-WGT /
101800         (B-PATIENT-HGT ** 2)) * 10000.
101900
102000     IF (H-PATIENT-AGE > 17) AND (H-OUT-BMI < 18.5)  THEN
102100        MOVE SB-BMI-LT-18-5            TO H-OUT-BMI-FACTOR
102200     ELSE
102300        MOVE 1.000                     TO H-OUT-BMI-FACTOR
102400     END-IF.
102500
102600******************************************************************
102700***  Calculate separately billable OUTLIER ONSET factor        ***
102800******************************************************************
102900     IF B-DIALYSIS-START-DATE > ZERO  THEN
103000        IF H-PATIENT-AGE > 17  THEN
103100           IF ONSET-DATE > 120  THEN
103200              MOVE 1                   TO H-OUT-ONSET-FACTOR
103300           ELSE
103400              MOVE SB-ONSET-LE-120     TO H-OUT-ONSET-FACTOR
103500           END-IF
103600        ELSE
103700           MOVE 1                      TO H-OUT-ONSET-FACTOR
103800        END-IF
103900     ELSE
104000        MOVE 1.000                     TO H-OUT-ONSET-FACTOR
104100     END-IF.
104200
104300******************************************************************
104400***  Set separately billable OUTLIER Co-morbidities adjustment ***
104500******************************************************************
104600     IF COMORBID-CWF-RETURN-CODE = SPACES  THEN
104700        IF H-PATIENT-AGE  <  18  THEN
104800           MOVE 1.000                  TO
104900                                       H-OUT-COMORBID-MULTIPLIER
105000           MOVE '10'                   TO PPS-2011-COMORBID-PAY
105100        ELSE
105200           IF H-BUN-ONSET-FACTOR  =  CM-ONSET-LE-120  THEN
105300              MOVE 1.000               TO
105400                                       H-OUT-COMORBID-MULTIPLIER
105500              MOVE '10'                TO PPS-2011-COMORBID-PAY
105600           ELSE
105700              PERFORM 2600-CALC-COMORBID-OUT-ADJUST
105800           END-IF
105900        END-IF
106000     ELSE
106100        IF COMORBID-CWF-RETURN-CODE  =  '10'  THEN
106200           MOVE 1.000                  TO
106300                                       H-OUT-COMORBID-MULTIPLIER
106400        ELSE
106500           IF COMORBID-CWF-RETURN-CODE  =  '20'  THEN
106600              MOVE SB-GI-BLEED         TO
106700                                       H-OUT-COMORBID-MULTIPLIER
106800           ELSE
106900              IF COMORBID-CWF-RETURN-CODE  =  '30'  THEN
107000                 MOVE SB-PNEUMONIA     TO
107100                                       H-OUT-COMORBID-MULTIPLIER
107200              ELSE
107300                 IF COMORBID-CWF-RETURN-CODE  =  '40'  THEN
107400                    MOVE SB-PERICARDITIS TO
107500                                       H-OUT-COMORBID-MULTIPLIER
107600                 END-IF
107700              END-IF
107800           END-IF
107900        END-IF
108000     END-IF.
108100
108200******************************************************************
108300***  Set OUTLIER low-volume-multiplier                         ***
108400******************************************************************
108500     IF P-PROV-LOW-VOLUME-INDIC = "N"  THEN
108600        MOVE 1                         TO H-OUT-LOW-VOL-MULTIPLIER
108700     ELSE
108800        IF H-PATIENT-AGE < 18  THEN
108900           MOVE 1                      TO H-OUT-LOW-VOL-MULTIPLIER
109000        ELSE
109100           MOVE SB-LOW-VOL-ADJ-LT-4000 TO H-OUT-LOW-VOL-MULTIPLIER
109200           MOVE "Y"                    TO LOW-VOLUME-TRACK
109300        END-IF
109400     END-IF.
109500
109600******************************************************************
109700***  Calculate predicted OUTLIER services MAP per treatment    ***
109800******************************************************************
109900     COMPUTE H-OUT-PREDICTED-SERVICES-MAP  ROUNDED =
110000        (H-OUT-AGE-FACTOR             *
110100         H-OUT-BSA-FACTOR             *
110200         H-OUT-BMI-FACTOR             *
110300         H-OUT-ONSET-FACTOR           *
110400         H-OUT-COMORBID-MULTIPLIER    *
110500         H-OUT-LOW-VOL-MULTIPLIER).
110600
110700******************************************************************
110800***  Calculate case mix adjusted predicted OUTLIER serv MAP/trt***
110900******************************************************************
111000     IF H-PATIENT-AGE < 18  THEN
111100        COMPUTE H-OUT-CM-ADJ-PREDICT-MAP-TRT  ROUNDED  =
111200           (H-OUT-PREDICTED-SERVICES-MAP * ADJ-AVG-MAP-AMT-LT-18)
111300        MOVE ADJ-AVG-MAP-AMT-LT-18     TO  H-OUT-ADJ-AVG-MAP-AMT
111400     ELSE
111500
111600        COMPUTE H-OUT-CM-ADJ-PREDICT-MAP-TRT  ROUNDED  =
111700           (H-OUT-PREDICTED-SERVICES-MAP * ADJ-AVG-MAP-AMT-GT-17)
111800        MOVE ADJ-AVG-MAP-AMT-GT-17     TO  H-OUT-ADJ-AVG-MAP-AMT
111900     END-IF.
112000
112100******************************************************************
112200*** Calculate imputed OUTLIER services MAP amount per treatment***
112300******************************************************************
112400     IF (B-COND-CODE = '74')  AND
112500        (B-REV-CODE = '0841' OR '0851')  THEN
112600         COMPUTE H-HEMO-EQUIV-DIAL-SESSIONS  ROUNDED  =
112700            ((B-CLAIM-NUM-DIALYSIS-SESSIONS * 3) / 7)
112800         COMPUTE H-OUT-IMPUTED-MAP  ROUNDED =
112900         (B-TOT-PRICE-SB-OUTLIER / H-HEMO-EQUIV-DIAL-SESSIONS)
113000     ELSE
113100        COMPUTE H-OUT-IMPUTED-MAP  ROUNDED =
113200        (B-TOT-PRICE-SB-OUTLIER / B-CLAIM-NUM-DIALYSIS-SESSIONS)
113300     END-IF.
113400
113500******************************************************************
113600*** Comparison of predicted to the imputed OUTLIER svc MAP/trt ***
113700******************************************************************
113800     IF H-PATIENT-AGE < 18   THEN
113900        COMPUTE H-OUT-PREDICTED-MAP  ROUNDED  =
114000           H-OUT-CM-ADJ-PREDICT-MAP-TRT + FIX-DOLLAR-LOSS-LT-18
114100        MOVE FIX-DOLLAR-LOSS-LT-18     TO H-OUT-FIX-DOLLAR-LOSS
114200        IF H-OUT-IMPUTED-MAP  >  H-OUT-PREDICTED-MAP  THEN
114300           COMPUTE H-OUT-PAYMENT  ROUNDED  =
114400            (H-OUT-IMPUTED-MAP  -  H-OUT-PREDICTED-MAP)  *
114500                                         LOSS-SHARING-PCT-LT-18
114600           MOVE LOSS-SHARING-PCT-LT-18 TO H-OUT-LOSS-SHARING-PCT
114700           MOVE "Y"                    TO OUTLIER-TRACK
114800        ELSE
114900           MOVE ZERO                   TO H-OUT-PAYMENT
115000           MOVE ZERO                   TO H-OUT-LOSS-SHARING-PCT
115100        END-IF
115200     ELSE
115300        COMPUTE H-OUT-PREDICTED-MAP  ROUNDED =
115400           H-OUT-CM-ADJ-PREDICT-MAP-TRT + FIX-DOLLAR-LOSS-GT-17
115500           MOVE FIX-DOLLAR-LOSS-GT-17  TO H-OUT-FIX-DOLLAR-LOSS
115600        IF H-OUT-IMPUTED-MAP  >  H-OUT-PREDICTED-MAP  THEN
115700           COMPUTE H-OUT-PAYMENT  ROUNDED  =
115800            (H-OUT-IMPUTED-MAP  -  H-OUT-PREDICTED-MAP)  *
115900                                         LOSS-SHARING-PCT-GT-17
116000           MOVE LOSS-SHARING-PCT-GT-17 TO H-OUT-LOSS-SHARING-PCT
116100           MOVE "Y"                    TO OUTLIER-TRACK
116200        ELSE
116300           MOVE ZERO                   TO H-OUT-PAYMENT
116400        END-IF
116500     END-IF.
116600
116700     MOVE H-OUT-PAYMENT                TO OUT-NON-PER-DIEM-PAYMENT.
116800
116900* Dialysis in Home and (CAPD or CCPD) Per-Diem calculation
117000     IF (B-COND-CODE = '74')  AND
117100        (B-REV-CODE = '0841' OR '0851')  THEN
117200           COMPUTE H-OUT-PAYMENT ROUNDED = H-OUT-PAYMENT *
117300             (((B-CLAIM-NUM-DIALYSIS-SESSIONS) * 3) / 7)
117400     END-IF.
117500/
117600 2600-CALC-COMORBID-OUT-ADJUST.
117700******************************************************************
117800***  Calculate OUTLIER Co-morbidities adjustment               ***
117900******************************************************************
118000*  This logic assumes that the comorbids are randomly assigned   *
118100*to the comorbid table.  It will select the highest comorbid for *
118200*payment if one is found.                                        *
118300******************************************************************
118400
118500     MOVE 'N'                          TO IS-HIGH-COMORBID-FOUND.
118600     MOVE 1.000                        TO
118700                                  H-OUT-COMORBID-MULTIPLIER.
118800
118900     PERFORM VARYING  SUB  FROM  1 BY 1
119000       UNTIL SUB   >  6   OR   HIGH-COMORBID-FOUND
119100         IF COMORBID-DATA (SUB) = 'MA'  THEN
119200           MOVE SB-GI-BLEED            TO
119300                                  H-OUT-COMORBID-MULTIPLIER
119400           MOVE "Y"                    TO IS-HIGH-COMORBID-FOUND
119500           MOVE "Y"                    TO ACUTE-COMORBID-TRACK
119600         ELSE
119700           IF COMORBID-DATA (SUB) = 'MB'  THEN
119800             IF SB-PNEUMONIA  >  H-OUT-COMORBID-MULTIPLIER  THEN
119900               MOVE SB-PNEUMONIA       TO
120000                                  H-OUT-COMORBID-MULTIPLIER
120100               MOVE "Y"                TO ACUTE-COMORBID-TRACK
120200             END-IF
120300           ELSE
120400             IF COMORBID-DATA (SUB) = 'MC'  THEN
120500                IF SB-PERICARDITIS  >
120600                                  H-OUT-COMORBID-MULTIPLIER  THEN
120700                  MOVE SB-PERICARDITIS TO
120800                                  H-OUT-COMORBID-MULTIPLIER
120900                  MOVE "Y"             TO ACUTE-COMORBID-TRACK
121000                END-IF
121100             ELSE
121200               IF COMORBID-DATA (SUB) = 'MD'  THEN
121300                 IF SB-MYELODYSPLASTIC  >
121400                                  H-OUT-COMORBID-MULTIPLIER  THEN
121500                   MOVE SB-MYELODYSPLASTIC  TO
121600                                  H-OUT-COMORBID-MULTIPLIER
121700                   MOVE "Y"            TO CHRONIC-COMORBID-TRACK
121800                 END-IF
121900               ELSE
122000                 IF COMORBID-DATA (SUB) = 'ME'  THEN
122100                   IF SB-SICKEL-CELL  >
122200                                  H-OUT-COMORBID-MULTIPLIER  THEN
122300                     MOVE SB-SICKEL-CELL  TO
122400                                  H-OUT-COMORBID-MULTIPLIER
122500                      MOVE "Y"          TO CHRONIC-COMORBID-TRACK
122600                   END-IF
122700                 ELSE
122800                   IF COMORBID-DATA (SUB) = 'MF'  THEN
122900                     IF SB-MONOCLONAL-GAMM  >
123000                                  H-OUT-COMORBID-MULTIPLIER  THEN
123100                       MOVE SB-MONOCLONAL-GAMM  TO
123200                                  H-OUT-COMORBID-MULTIPLIER
123300                       MOVE "Y"        TO CHRONIC-COMORBID-TRACK
123400                     END-IF
123500                   END-IF
123600                 END-IF
123700               END-IF
123800             END-IF
123900           END-IF
124000         END-IF
124100     END-PERFORM.
124200/
124300 5000-CALC-COMP-RATE-FACTORS.
124400******************************************************************
124500***  Set Composite Rate age adjustment factor                  ***
124600******************************************************************
124700     IF H-PATIENT-AGE < 18  THEN
124800        MOVE CR-AGE-LT-18              TO H-AGE-FACTOR
124900     ELSE
125000        IF H-PATIENT-AGE < 45  THEN
125100           MOVE CR-AGE-18-44           TO H-AGE-FACTOR
125200        ELSE
125300           IF H-PATIENT-AGE < 60  THEN
125400              MOVE CR-AGE-45-59        TO H-AGE-FACTOR
125500           ELSE
125600              IF H-PATIENT-AGE < 70  THEN
125700                 MOVE CR-AGE-60-69     TO H-AGE-FACTOR
125800              ELSE
125900                 IF H-PATIENT-AGE < 80  THEN
126000                    MOVE CR-AGE-70-79  TO H-AGE-FACTOR
126100                 ELSE
126200                    MOVE CR-AGE-80-PLUS
126300                                       TO H-AGE-FACTOR
126400                 END-IF
126500              END-IF
126600           END-IF
126700        END-IF
126800     END-IF.
126900
127000******************************************************************
127100***Calculate Composite Rate BSA factor (note diff superscript) ***
127200******************************************************************
127300     COMPUTE H-BSA  ROUNDED = (.007184 *
127400         (B-PATIENT-HGT ** .725) * (B-PATIENT-WGT ** .425))
127500
127600     IF H-PATIENT-AGE > 17  THEN
127700        COMPUTE H-BSA-FACTOR  ROUNDED =
127800             CR-BSA ** ((H-BSA - 1.84) / .1)
127900     ELSE
128000        MOVE 1.000                     TO H-BSA-FACTOR
128100     END-IF.
128200
128300******************************************************************
128400*** Calculate Composite Rate BMI factor (different BMI < 18.5) ***
128500******************************************************************
128600     COMPUTE H-BMI  ROUNDED = (B-PATIENT-WGT /
128700         (B-PATIENT-HGT ** 2)) * 10000.
128800
128900     IF (H-PATIENT-AGE > 17) AND (H-BMI < 18.5)  THEN
129000        MOVE CR-BMI-LT-18-5            TO H-BMI-FACTOR
129100     ELSE
129200        MOVE 1.000                     TO H-BMI-FACTOR
129300     END-IF.
129400
129500******************************************************************
129600***  Calculate Composite Rate Payment Amount                   ***
129700******************************************************************
129800*P-ESRD-RATE, also called the Exception Rate, will not be granted*
129900*in full beginning in 2011 (the beginning of the Bundled method) *
130000*and will be eliminated entirely beginning in 2014 which is the  *
130100*end of the blending period.  For 2011, those providers who elect*
130200*to be in the blend, will get only 75% of the exception rate.    *
130300*This apparently is for the pediatric providers who originally   *
130400*had the exception rate.                                         *
130500
130600     IF P-ESRD-RATE  =  ZERO  THEN
130700        MOVE BASE-PAYMENT-RATE         TO  H-PAYMENT-RATE
130800     ELSE
130900        MOVE P-ESRD-RATE               TO  H-PAYMENT-RATE
131000     END-IF.
131100
131200     COMPUTE H-WAGE-ADJ-PYMT-AMT ROUNDED =
131300     (((H-PAYMENT-RATE * NAT-LABOR-PCT) * COM-CBSA-W-INDEX) +
131400       (H-PAYMENT-RATE * NAT-NONLABOR-PCT)) *
131500            CBSA-BLEND-PCT.
131600
131700     COMPUTE H-PYMT-AMT ROUNDED = (H-WAGE-ADJ-PYMT-AMT *
131800        H-BMI-FACTOR * H-BSA-FACTOR * CASE-MIX-BDGT-NEUT-FACTOR *
131900        H-AGE-FACTOR * DRUG-ADDON) + A-49-CENT-PART-D-DRUG-ADJ.
132000
132100     MOVE H-PYMT-AMT                   TO CASE-MIX-FCTR-ADJ-RATE.
132200
132300******************************************************************
132400***  Calculate condition code payment                          ***
132500******************************************************************
132600     MOVE SPACES                       TO COND-CD-73.
132700
132800* Hemo, peritoneal, or CCPD training add-on
132900     IF (B-COND-CODE = '73') AND (B-REV-CODE = '0821' OR '0831'
133000                                                      OR '0851')
133100        COMPUTE H-PYMT-AMT = H-PYMT-AMT + HEMO-PERI-CCPD-AMT
133200        MOVE 'A'                       TO AMT-INDIC
133300        MOVE HEMO-PERI-CCPD-AMT        TO BLOOD-DOLLAR
133400     ELSE
133500* CAPD training add-on
133600        IF (B-COND-CODE = '73')  AND  (B-REV-CODE = '0841')  THEN
133700           COMPUTE H-PYMT-AMT = H-PYMT-AMT + CAPD-AMT
133800           MOVE 'A'                    TO AMT-INDIC
133900           MOVE CAPD-AMT               TO BLOOD-DOLLAR
134000        ELSE
134100* Dialysis in Home and (CAPD or CCPD) Per-Diem calculation
134200           IF (B-COND-CODE = '74')  AND
134300              (B-REV-CODE = '0841' OR '0851')  THEN
134400              COMPUTE H-PYMT-AMT ROUNDED = H-PYMT-AMT *
134500                                           CAPD-OR-CCPD-FACTOR
134600              MOVE CAPD-OR-CCPD-FACTOR TO HEMO-CCPD-CAPD
134700           ELSE
134800              MOVE 'A'                 TO AMT-INDIC
134900              MOVE ZERO                TO BLOOD-DOLLAR
135000           END-IF
135100        END-IF
135200     END-IF.
135300
135400/
135500 9000-SET-RETURN-CODE.
135600******************************************************************
135700***  Set the return code                                       ***
135800******************************************************************
135900*   The following 'table' helps in understanding and in making   *
136000*changes to the rather large and complex "IF" statement that     *
136100*follows.  This 'table' just reorders and rewords the comments   *
136200*contained in the working storage area concerning the paid       *
136300*return-codes.                                                   *
136400*                                                                *
136500*  17 = pediatric, outlier, training                             *
136600*  16 = pediatric, outlier                                       *
136700*  15 = pediatric, training                                      *
136800*  14 = pediatric                                                *
136900*                                                                *
137000*  24 = outlier, low volume, training, chronic comorbid          *
137100*  19 = outlier, low volume, training, acute comorbid            *
137200*  29 = outlier, low volume, training                            *
137300*  23 = outlier, low volume, chronic comorbid                    *
137400*  18 = outlier, low volume, acute comorbid                      *
137500*  30 = outlier, low volume, onset                               *
137600*  28 = outlier, low volume                                      *
137700*  34 = outlier, training, chronic comorbid                      *
137800*  35 = outlier, training, acute comorbid                        *
137900*  33 = outlier, training                                        *
138000*  07 = outlier, chronic comorbid                                *
138100*  06 = outlier, acute comorbid                                  *
138200*  09 = outlier, onset                                           *
138300*  03 = outlier                                                  *
138400*                                                                *
138500*  26 = low volume, training, chronic comorbid                   *
138600*  21 = low volume, training, acute comorbid                     *
138700*  12 = low volume, training                                     *
138800*  25 = low volume, chronic comorbid                             *
138900*  20 = low volume, acute comorbid                               *
139000*  32 = low volume, onset                                        *
139100*  10 = low volume                                               *
139200*                                                                *
139300*  27 = training, chronic comorbid                               *
139400*  22 = training, acute comorbid                                 *
139500*  11 = training                                                 *
139600*                                                                *
139700*  08 = onset                                                    *
139800*  04 = acute comorbid                                           *
139900*  05 = chronic comorbid                                         *
140000*  31 = low BMI                                                  *
140100*  02 = no adjustments                                           *
140200*                                                                *
140300*  13 = w/multiple adjustments....reserved for future use        *
140400******************************************************************
140500/
140600     IF PEDIATRIC-TRACK                       = "Y"  THEN
140700        IF OUTLIER-TRACK                      = "Y"  THEN
140800           IF TRAINING-TRACK                  = "Y"  THEN
140900              MOVE 17                  TO PPS-RTC
141000           ELSE
141100              MOVE 16                  TO PPS-RTC
141200           END-IF
141300        ELSE
141400           IF TRAINING-TRACK                  = "Y"  THEN
141500              MOVE 15                  TO PPS-RTC
141600           ELSE
141700              MOVE 14                  TO PPS-RTC
141800           END-IF
141900        END-IF
142000     ELSE
142100        IF OUTLIER-TRACK                      = "Y"  THEN
142200           IF LOW-VOLUME-TRACK                = "Y"  THEN
142300              IF TRAINING-TRACK               = "Y"  THEN
142400                 IF CHRONIC-COMORBID-TRACK    = "Y"  THEN
142500                    MOVE 24            TO PPS-RTC
142600                 ELSE
142700                    IF ACUTE-COMORBID-TRACK   = "Y"  THEN
142800                       MOVE 19         TO PPS-RTC
142900                    ELSE
143000                       MOVE 29         TO PPS-RTC
143100                    END-IF
143200                 END-IF
143300              ELSE
143400                 IF CHRONIC-COMORBID-TRACK    = "Y"  THEN
143500                    MOVE 23            TO PPS-RTC
143600                 ELSE
143700                    IF ACUTE-COMORBID-TRACK   = "Y"  THEN
143800                       MOVE 18         TO PPS-RTC
143900                    ELSE
144000                       IF ONSET-TRACK         = "Y"  THEN
144100                          MOVE 30      TO PPS-RTC
144200                       ELSE
144300                          MOVE 28      TO PPS-RTC
144400                       END-IF
144500                    END-IF
144600                 END-IF
144700              END-IF
144800           ELSE
144900              IF TRAINING-TRACK               = "Y"  THEN
145000                 IF CHRONIC-COMORBID-TRACK    = "Y"  THEN
145100                    MOVE 34            TO PPS-RTC
145200                 ELSE
145300                    IF ACUTE-COMORBID-TRACK   = "Y"  THEN
145400                       MOVE 35         TO PPS-RTC
145500                    ELSE
145600                       MOVE 33         TO PPS-RTC
145700                    END-IF
145800                 END-IF
145900              ELSE
146000                 IF CHRONIC-COMORBID-TRACK    = "Y"  THEN
146100                    MOVE 07            TO PPS-RTC
146200                 ELSE
146300                    IF ACUTE-COMORBID-TRACK   = "Y"  THEN
146400                       MOVE 06         TO PPS-RTC
146500                    ELSE
146600                       IF ONSET-TRACK         = "Y"  THEN
146700                          MOVE 09      TO PPS-RTC
146800                       ELSE
146900                          MOVE 03      TO PPS-RTC
147000                       END-IF
147100                    END-IF
147200                 END-IF
147300              END-IF
147400           END-IF
147500        ELSE
147600           IF LOW-VOLUME-TRACK                = "Y"
147700              IF TRAINING-TRACK               = "Y"  THEN
147800                 IF CHRONIC-COMORBID-TRACK    = "Y"  THEN
147900                    MOVE 26            TO PPS-RTC
148000                 ELSE
148100                    IF ACUTE-COMORBID-TRACK   = "Y"  THEN
148200                       MOVE 21         TO PPS-RTC
148300                    ELSE
148400                       MOVE 12         TO PPS-RTC
148500                    END-IF
148600                 END-IF
148700              ELSE
148800                 IF CHRONIC-COMORBID-TRACK    = "Y"  THEN
148900                    MOVE 25            TO PPS-RTC
149000                 ELSE
149100                    IF ACUTE-COMORBID-TRACK   = "Y"  THEN
149200                       MOVE 20         TO PPS-RTC
149300                    ELSE
149400                       IF ONSET-TRACK         = "Y"  THEN
149500                          MOVE 32      TO PPS-RTC
149600                       ELSE
149700                          MOVE 10      TO PPS-RTC
149800                       END-IF
149900                    END-IF
150000                 END-IF
150100              END-IF
150200           ELSE
150300              IF TRAINING-TRACK               = "Y"  THEN
150400                 IF CHRONIC-COMORBID-TRACK    = "Y"  THEN
150500                    MOVE 27            TO PPS-RTC
150600                 ELSE
150700                    IF ACUTE-COMORBID-TRACK   = "Y"  THEN
150800                       MOVE 22         TO PPS-RTC
150900                    ELSE
151000                       MOVE 11         TO PPS-RTC
151100                    END-IF
151200                 END-IF
151300              ELSE
151400                 IF ONSET-TRACK               = "Y"  THEN
151500                    MOVE 08            TO PPS-RTC
151600                 ELSE
151700                    IF ACUTE-COMORBID-TRACK   = "Y"  THEN
151800                       MOVE 04         TO PPS-RTC
151900                    ELSE
152000                       IF CHRONIC-COMORBID-TRACK = "Y"  THEN
152100                          MOVE 05      TO PPS-RTC
152200                       ELSE
152300                          IF LOW-BMI-TRACK = "Y"  THEN
152400                             MOVE 31 TO PPS-RTC
152500                          ELSE
152600                             MOVE 02 TO PPS-RTC
152700                          END-IF
152800                       END-IF
152900                    END-IF
153000                 END-IF
153100              END-IF
153200           END-IF
153300        END-IF
153400     END-IF.
153500/
153600 9100-MOVE-RESULTS.
153700     IF MOVED-CORMORBIDS = SPACES  THEN
153800        NEXT SENTENCE
153900     ELSE
154000        MOVE H-COMORBID-DATA (1)       TO COMORBID-DATA (1)
154100        MOVE H-COMORBID-DATA (2)       TO COMORBID-DATA (2)
154200        MOVE H-COMORBID-DATA (3)       TO COMORBID-DATA (3)
154300        MOVE H-COMORBID-DATA (4)       TO COMORBID-DATA (4)
154400        MOVE H-COMORBID-DATA (5)       TO COMORBID-DATA (5)
154500        MOVE H-COMORBID-DATA (6)       TO COMORBID-DATA (6)
154600        MOVE H-COMORBID-CWF-CODE       TO
154700                                    COMORBID-CWF-RETURN-CODE
154800     END-IF.
154900
155000     MOVE P-GEO-MSA                    TO PPS-MSA.
155100     MOVE P-GEO-CBSA                   TO PPS-CBSA.
155200     MOVE H-WAGE-ADJ-PYMT-AMT          TO PPS-WAGE-ADJ-RATE.
155300     MOVE B-COND-CODE                  TO PPS-COND-CODE.
155400     MOVE B-REV-CODE                   TO PPS-REV-CODE.
155500     MOVE H-BUN-BASE-WAGE-AMT          TO PPS-2011-WAGE-ADJ-RATE.
155600     MOVE BUN-NAT-LABOR-PCT            TO PPS-2011-NAT-LABOR-PCT.
155700     MOVE BUN-NAT-NONLABOR-PCT         TO
155800                                    PPS-2011-NAT-NONLABOR-PCT.
155900     MOVE NAT-LABOR-PCT                TO PPS-NAT-LABOR-PCT.
156000     MOVE NAT-NONLABOR-PCT             TO PPS-NAT-NONLABOR-PCT.
156100     MOVE H-AGE-FACTOR                 TO PPS-AGE-FACTOR.
156200     MOVE H-BSA-FACTOR                 TO PPS-BSA-FACTOR.
156300     MOVE H-BMI-FACTOR                 TO PPS-BMI-FACTOR.
156400     MOVE CASE-MIX-BDGT-NEUT-FACTOR    TO PPS-BDGT-NEUT-RATE.
156500     MOVE H-BUN-AGE-FACTOR             TO PPS-2011-AGE-FACTOR.
156600     MOVE H-BUN-BSA-FACTOR             TO PPS-2011-BSA-FACTOR.
156700     MOVE H-BUN-BMI-FACTOR             TO PPS-2011-BMI-FACTOR.
156800     MOVE TRANSITION-BDGT-NEUT-FACTOR  TO
156900                                    PPS-2011-BDGT-NEUT-RATE.
157000     MOVE SPACES                       TO PPS-2011-COMORBID-MA.
157100     MOVE SPACES                       TO
157200                                    PPS-2011-COMORBID-MA-CC.
157300
157400     IF (B-COND-CODE = '74')  AND
157500        (B-REV-CODE = '0841' OR '0851')  THEN
157600         COMPUTE H-OUT-PAYMENT ROUNDED = H-OUT-PAYMENT /
157700                                     B-CLAIM-NUM-DIALYSIS-SESSIONS
157800     END-IF.
157900
158000     IF P-PROV-WAIVE-BLEND-PAY-INDIC        = 'N'  THEN
158100           COMPUTE PPS-2011-BLEND-COMP-RATE    ROUNDED =
158200              H-PYMT-AMT           *  COM-CBSA-BLEND-PCT
158300           COMPUTE PPS-2011-BLEND-PPS-RATE     ROUNDED =
158400              H-PPS-FINAL-PAY-AMT  *  BUN-CBSA-BLEND-PCT
158500           COMPUTE PPS-2011-BLEND-OUTLIER-RATE ROUNDED =
158600              H-OUT-PAYMENT        *  BUN-CBSA-BLEND-PCT
158700     ELSE
158800        MOVE ZERO                      TO
158900                                    PPS-2011-BLEND-COMP-RATE
159000        MOVE ZERO                      TO
159100                                    PPS-2011-BLEND-PPS-RATE
159200        MOVE ZERO                      TO
159300                                    PPS-2011-BLEND-OUTLIER-RATE
159400     END-IF.
159500
159600     MOVE H-PYMT-AMT                   TO
159700                                    PPS-2011-FULL-COMP-RATE.
159800     MOVE H-PPS-FINAL-PAY-AMT          TO PPS-2011-FULL-PPS-RATE
159900                                          PPS-FINAL-PAY-AMT.
160000     MOVE H-OUT-PAYMENT                TO
160100                                    PPS-2011-FULL-OUTLIER-RATE.
160200
160300     IF BUNDLED-TEST   THEN
160400        MOVE DRUG-ADDON                TO DRUG-ADD-ON-RETURN
160500        MOVE 0.0                       TO MSA-WAGE-ADJ
160600        MOVE H-WAGE-ADJ-PYMT-AMT       TO CBSA-WAGE-ADJ
160700        MOVE BASE-PAYMENT-RATE         TO CBSA-WAGE-PMT-RATE
160800        MOVE H-PATIENT-AGE             TO AGE-RETURN
160900        MOVE 0.0                       TO MSA-WAGE-AMT
161000        MOVE COM-CBSA-W-INDEX          TO CBSA-WAGE-INDEX
161100        MOVE H-BMI                     TO PPS-BMI
161200        MOVE H-BSA                     TO PPS-BSA
161300        MOVE MSA-BLEND-PCT             TO MSA-PCT
161400        MOVE CBSA-BLEND-PCT            TO CBSA-PCT
161500
161600        IF P-PROV-WAIVE-BLEND-PAY-INDIC        = 'N'  THEN
161700           MOVE COM-CBSA-BLEND-PCT     TO COM-CBSA-PCT-BLEND
161800           MOVE BUN-CBSA-BLEND-PCT     TO BUN-CBSA-PCT-BLEND
161900        ELSE
162000           MOVE ZERO                   TO COM-CBSA-PCT-BLEND
162100           MOVE WAIVE-CBSA-BLEND-PCT   TO BUN-CBSA-PCT-BLEND
162200        END-IF
162300
162400        MOVE H-BUN-BSA                 TO BUN-BSA
162500        MOVE H-BUN-BMI                 TO BUN-BMI
162600        MOVE H-BUN-ONSET-FACTOR        TO BUN-ONSET-FACTOR
162700        MOVE H-BUN-COMORBID-MULTIPLIER TO BUN-COMORBID-MULTIPLIER
162800        MOVE H-BUN-LOW-VOL-MULTIPLIER  TO BUN-LOW-VOL-MULTIPLIER
162900        MOVE H-OUT-AGE-FACTOR          TO OUT-AGE-FACTOR
163000        MOVE H-OUT-BSA                 TO OUT-BSA
163100        MOVE SB-BSA                    TO OUT-SB-BSA
163200        MOVE H-OUT-BSA-FACTOR          TO OUT-BSA-FACTOR
163300        MOVE H-OUT-BMI                 TO OUT-BMI
163400        MOVE H-OUT-BMI-FACTOR          TO OUT-BMI-FACTOR
163500        MOVE H-OUT-ONSET-FACTOR        TO OUT-ONSET-FACTOR
163600        MOVE H-OUT-COMORBID-MULTIPLIER TO
163700                                    OUT-COMORBID-MULTIPLIER
163800        MOVE H-OUT-PREDICTED-SERVICES-MAP  TO
163900                                    OUT-PREDICTED-SERVICES-MAP
164000        MOVE H-OUT-CM-ADJ-PREDICT-MAP-TRT  TO
164100                                    OUT-CASE-MIX-PREDICTED-MAP
164200        MOVE H-HEMO-EQUIV-DIAL-SESSIONS    TO
164300                                    OUT-HEMO-EQUIV-DIAL-SESSIONS
164400        MOVE H-OUT-LOW-VOL-MULTIPLIER  TO OUT-LOW-VOL-MULTIPLIER
164500        MOVE H-OUT-ADJ-AVG-MAP-AMT     TO OUT-ADJ-AVG-MAP-AMT
164600        MOVE H-OUT-IMPUTED-MAP         TO OUT-IMPUTED-MAP
164700        MOVE H-OUT-FIX-DOLLAR-LOSS     TO OUT-FIX-DOLLAR-LOSS
164800        MOVE H-OUT-LOSS-SHARING-PCT    TO OUT-LOSS-SHARING-PCT
164900        MOVE H-OUT-PREDICTED-MAP       TO OUT-PREDICTED-MAP
165000        MOVE CR-BSA                    TO CR-BSA-MULTIPLIER
165100        MOVE CR-BMI-LT-18-5            TO CR-BMI-MULTIPLIER
165200        MOVE A-49-CENT-PART-D-DRUG-ADJ TO A-49-CENT-DRUG-ADJ
165300        MOVE CM-BSA                    TO PPS-CM-BSA
165400        MOVE CM-BMI-LT-18-5            TO PPS-CM-BMI-LT-18-5
165500        MOVE BUNDLED-BASE-PMT-RATE     TO PPS-BUN-BASE-PMT-RATE
165600        MOVE BUN-CBSA-W-INDEX          TO PPS-BUN-CBSA-W-INDEX
165700        MOVE H-BUN-ADJUSTED-BASE-WAGE-AMT  TO
165800                                    BUN-ADJUSTED-BASE-WAGE-AMT
165900        MOVE H-BUN-WAGE-ADJ-TRAINING-AMT   TO
166000                                    PPS-BUN-WAGE-ADJ-TRAIN-AMT
166100        MOVE TRAINING-ADD-ON-PMT-AMT   TO
166200                                    PPS-TRAINING-ADD-ON-PMT-AMT
166300        MOVE H-PAYMENT-RATE            TO COM-PAYMENT-RATE
166400     END-IF.
166500******        L A S T   S O U R C E   S T A T E M E N T      *****