com.mmm.cms.homehealth.v3210
Class NRS_ScoringModel_v3210

java.lang.Object
  extended by com.mmm.cms.homehealth.v3210.ClinicalFunctional_ScoringModel_v3210
      extended by com.mmm.cms.homehealth.v3210.NRS_ScoringModel_v3210
All Implemented Interfaces:
HomeHealthScoringModelIF, Namable

public class NRS_ScoringModel_v3210
extends ClinicalFunctional_ScoringModel_v3210

This provides scoring based on the Non-Routine Supplies model for the Home Health Grouper, version 2.03


Field Summary
 
Fields inherited from class com.mmm.cms.homehealth.v3210.ClinicalFunctional_ScoringModel_v3210
grouper, grouperDataManager
 
Constructor Summary
NRS_ScoringModel_v3210(HomeHealthGrouperIF grouper, GrouperDataManager dataManager)
          Constructor that initialized with the Grouper and data manager references
 
Method Summary
 int getCaseMixAdjustmentEquation(int caseMixId, int equationId)
          This gets the Case Mix Adjustment table value, by essentially getting the caseMixId (i.e.
protected  Icd9DiagnosisCodeIF getDiagnosisCode(java.lang.String codeValue)
          Gets an NRS related Diagnosis code.
 java.lang.String getName()
          Gets the name of this scoring module
 void preprocessRecord(HomeHealthRecordIF record, HomeHealthRecordValidatorIF validator)
          This preprocesses the record to adjust the scorable Diabetic Ulcer code.
 ScoringPointsIF score(HomeHealthRecordIF record, HomeHealthRecordValidatorIF validator)
          Deprecated.  
 ScoringPointsIF score(HomeHealthRecordIF record, HomeHealthRecordValidatorIF validator, int[][] scoreOrder)
          This is the main scoring module, which scores the clinical information first and then the functional information.
 void scoreAny(HomeHealthRecordIF record, Icd9DiagnosisCodeIF diagCode, HomeHealthRecordValidatorIF validator, int diagIdx, DiagnosisScoringGridIF scoringGrid)
          This section covers scoring of Diagnostic groups and Case Mix Adjustment Rows that do not depend on Primary or Other specific values for the code
 void scoreOtherOnly(HomeHealthRecordIF record, Icd9DiagnosisCodeIF diagCode, int diagIdx, DiagnosisScoringGridIF scoringGrid)
          Scores only those codes that can not be in the primary position
 void scorePrimaryOnly(HomeHealthRecordIF record, Icd9DiagnosisCodeIF diagCode, int diagIdx, DiagnosisScoringGridIF scoringGrid)
          Scores the Primary only code with Primary only CaseMix values
 int scoreRemainingVariables(HomeHealthRecordIF record, HomeHealthRecordValidatorIF validator, int currentScore)
          This scores the remaining clinical variables.
 
Methods inherited from class com.mmm.cms.homehealth.v3210.ClinicalFunctional_ScoringModel_v3210
calculatePrimaryAdjustment, determinePrimaryDiagnosis, determineScoreOrder, fireDxGroupAlreadyScored, fireScoringEvent, fireScoringGeneral, fireScoringIncreaseCodeEvent, fireScoringIncreaseEvent, fireScoringIncreaseEvent, fireScoringSectionFinished, fireScoringSectionStart, fireScoringWarning, fireValidCodeWarning, getCaseMixAdjustment, getGrouper, getShortName, populateCodes, resolveEtiologyManifestationContention, scoreClinical, scoreClinical, scoreClinicalCode, scoreClinicalColumn3_4, scoreFunctional, setGrouper, setName, setShortName
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NRS_ScoringModel_v3210

public NRS_ScoringModel_v3210(HomeHealthGrouperIF grouper,
                              GrouperDataManager dataManager)
Constructor that initialized with the Grouper and data manager references

Parameters:
grouper -
dataManager -
Method Detail

score

public ScoringPointsIF score(HomeHealthRecordIF record,
                             HomeHealthRecordValidatorIF validator)
Deprecated. 

This is the main scoring module, which scores the clinical information first and then the functional information.

Specified by:
score in interface HomeHealthScoringModelIF
Overrides:
score in class ClinicalFunctional_ScoringModel_v3210
Parameters:
record -
validator -
Returns:
ScoringPointsIF that contains the clinical and functional scoring elements. This will never be null
See Also:
ClinicalFunctional_ScoringModel_v3210.scoreClinical(HomeHealthRecordIF record, HomeHealthRecordValidatorIF validator)

score

public ScoringPointsIF score(HomeHealthRecordIF record,
                             HomeHealthRecordValidatorIF validator,
                             int[][] scoreOrder)
This is the main scoring module, which scores the clinical information first and then the functional information.

Overrides:
score in class ClinicalFunctional_ScoringModel_v3210
Parameters:
record -
validator -
Returns:
ScoringPointsIF that contains the clinical and functional scoring elements. This will never be null
See Also:
ClinicalFunctional_ScoringModel_v3210.scoreClinical(HomeHealthRecordIF record, HomeHealthRecordValidatorIF validator)

preprocessRecord

public void preprocessRecord(HomeHealthRecordIF record,
                             HomeHealthRecordValidatorIF validator)
This preprocesses the record to adjust the scorable Diabetic Ulcer code. If the primary code is Diabetic, and the secondary code is Ulcer, then score the Diabetic and not the Ulcer. Otherwise do not score the Diabetic code. If any Diabetic code is in any other position besides the primary position it should be ignored. Pseudo code lines: 1530 thru 1575

Specified by:
preprocessRecord in interface HomeHealthScoringModelIF
Overrides:
preprocessRecord in class ClinicalFunctional_ScoringModel_v3210
Parameters:
record -
validator -

scorePrimaryOnly

public void scorePrimaryOnly(HomeHealthRecordIF record,
                             Icd9DiagnosisCodeIF diagCode,
                             int diagIdx,
                             DiagnosisScoringGridIF scoringGrid)
                      throws AlreadyScoredException
Scores the Primary only code with Primary only CaseMix values

Overrides:
scorePrimaryOnly in class ClinicalFunctional_ScoringModel_v3210
Parameters:
record -
diagCode -
diagIdx -
scoringGrid -
Throws:
AlreadyScoredException

scoreOtherOnly

public void scoreOtherOnly(HomeHealthRecordIF record,
                           Icd9DiagnosisCodeIF diagCode,
                           int diagIdx,
                           DiagnosisScoringGridIF scoringGrid)
                    throws AlreadyScoredException
Scores only those codes that can not be in the primary position

Overrides:
scoreOtherOnly in class ClinicalFunctional_ScoringModel_v3210
Parameters:
record -
diagCode -
diagIdx -
scoringGrid -
Throws:
AlreadyScoredException

scoreAny

public void scoreAny(HomeHealthRecordIF record,
                     Icd9DiagnosisCodeIF diagCode,
                     HomeHealthRecordValidatorIF validator,
                     int diagIdx,
                     DiagnosisScoringGridIF scoringGrid)
              throws AlreadyScoredException
This section covers scoring of Diagnostic groups and Case Mix Adjustment Rows that do not depend on Primary or Other specific values for the code

Overrides:
scoreAny in class ClinicalFunctional_ScoringModel_v3210
Parameters:
record -
diagCode -
diagIdx -
scoringGrid -
Throws:
AlreadyScoredException

scoreRemainingVariables

public int scoreRemainingVariables(HomeHealthRecordIF record,
                                   HomeHealthRecordValidatorIF validator,
                                   int currentScore)
This scores the remaining clinical variables. Pseudo code lines: 1764 thru 1833

Overrides:
scoreRemainingVariables in class ClinicalFunctional_ScoringModel_v3210
Parameters:
record -
validator -
Returns:

getName

public java.lang.String getName()
Gets the name of this scoring module

Specified by:
getName in interface Namable
Overrides:
getName in class ClinicalFunctional_ScoringModel_v3210
Returns:
The name of this scoring model

getCaseMixAdjustmentEquation

public int getCaseMixAdjustmentEquation(int caseMixId,
                                        int equationId)
This gets the Case Mix Adjustment table value, by essentially getting the caseMixId (i.e. row) and the equation and returning the value.

Overrides:
getCaseMixAdjustmentEquation in class ClinicalFunctional_ScoringModel_v3210
Parameters:
caseMixId -
equationId -
Returns:
the adjustment or 0 if the case mix id is not found, or the adjustment value is blank

getDiagnosisCode

protected Icd9DiagnosisCodeIF getDiagnosisCode(java.lang.String codeValue)
Gets an NRS related Diagnosis code.

Overrides:
getDiagnosisCode in class ClinicalFunctional_ScoringModel_v3210
Parameters:
codeValue -
Returns:
the Icd9Code with its value being codeValue. If the code is not valid (found for this version), then the Invalid flag will be set to true and all other information about the code will be meaninless. This method should never return null.