package gov.cms.grouper.snf.model.enums;

import java.util.Arrays;
import java.util.List;

public enum AssessmentType {
  NONE,
  ARD,  // Assessment Reference Date
  COGNITIVE,
  PDX,
  PROCEDURE,
  NURSING,
  THERAPY,
  NON_THERAPY,
  SPEECH,
  SERVICES,
  OBRA, // Omnibus Budget Reconciliation Act
  PPS,  //  Prospective Payment System
  HIPPS,
  FUNCTIONAL_SWALLOWING,
  DIET_MECHANICAL,
  FUNCTIONAL_EATING,
  FUNCTIONAL_HYGIENE_ORAL,
  FUNCTIONAL_HYGIENE_TOILET,
  FUNCTIONAL_BED_MOBILITY_TO_LYING,
  FUNCTIONAL_BED_MOBILITY_TO_SITTING,
  FUNCTIONAL_TRANSFER_TO_STANDING,
  FUNCTIONAL_TRANSFER_CHAIR,
  FUNCTIONAL_TRANSFER_TOILET,
  FUNCTIONAL_WALKING_50_FEET,
  FUNCTIONAL_WALKING_150_FEET,
  FUNCTIONAL_WALKING_10_FEET,
  FUNCTIONAL_EATING_IPA,
  FUNCTIONAL_HYGIENE_ORAL_IPA,
  FUNCTIONAL_HYGIENE_TOILET_IPA,
  FUNCTIONAL_BED_MOBILITY_TO_LYING_IPA,
  FUNCTIONAL_BED_MOBILITY_TO_SITTING_IPA,
  FUNCTIONAL_TRANSFER_TO_STANDING_IPA,
  FUNCTIONAL_TRANSFER_CHAIR_IPA,
  FUNCTIONAL_TRANSFER_TOILET_IPA,
  FUNCTIONAL_WALKING_50_FEET_IPA,
  FUNCTIONAL_WALKING_150_FEET_IPA,
  FUNCTIONAL_WALKING_10_FEET_IPA,
  SURGERY,
  PROCEDURE_MAJOR,
  PROCEDURE_ORTHOPEDIC,
  PROCEDURE_NON_ORTHOPEDIC,
  SWALLOWING,
  CALCULATED_HIPPS,
  CALCULATED_VERSION,
  // Unofficial fields for testing
  ERROR_REASON;

  public static List<AssessmentType> getNonAssessmentSpecificTypes() {
    return Arrays.asList(PPS, OBRA, ARD, SERVICES, HIPPS,
            ERROR_REASON, NONE, CALCULATED_HIPPS, CALCULATED_VERSION,
            PDX);
  }
}
