Skip to content

SAIF.Business.Provider business rules

This page captures the primary validation and persistence rules enforced by SAIF.Business.Provider.

BR-001: Search requires at least one criterion

Field Value
Statement A provider search must include at least one search field.
Trigger A caller submits clsProviderSearch criteria with all fields empty.
Enforcement clsProviderSearch.Rule_ValidCriteria rejects the request with "Error: enter your search criteria."
Outcome The search does not execute until the caller provides at least one criterion.
Confidence Verified
Tables PROVIDER_LOCATION, PROVIDER_ADDRESS, PROVIDER_TYPE_CODE
Source Business\SAIF.Business.Provider\clsProviderSearch.vb

BR-002: Search ZIP code must be numeric

Field Value
Statement A provider search ZIP code must be numeric when supplied.
Trigger A caller populates the ZIP code field in clsProviderSearch.
Enforcement clsProviderSearch.Rule_ValidZipCode validates the ZIP code before query execution.
Outcome Invalid ZIP input prevents the search from running.
Confidence Verified
Tables PROVIDER_ADDRESS
Source Business\SAIF.Business.Provider\clsProviderSearch.vb

BR-003: Only one primary location is allowed

Field Value
Statement A provider can have only one primary location.
Trigger A location is saved with PrimaryLocationFlag enabled.
Enforcement clsProviderLocation.HasDuplicatePrimaryLocation validates the flag before persistence.
Outcome The save fails when another primary location already exists for the provider.
Confidence Verified
Tables PROVIDER_LOCATION
SQL SQL-028, SQL-076
Source Business\SAIF.Business.Provider\clsProviderLocation.vb

BR-004: Provider type is required for a location

Field Value
Statement A provider location must include a provider type code.
Trigger A location is inserted or updated.
Enforcement clsProviderLocation.MissingProviderType validates ProviderTypeCode before persistence.
Outcome The save fails until a provider type is selected.
Confidence Verified
Tables PROVIDER_LOCATION, PROVIDER_TYPE_CODE
SQL SQL-028, SQL-076
Source Business\SAIF.Business.Provider\clsProviderLocation.vb

BR-005: Business locations require a business name

Field Value
Statement A location marked as a business must provide a business name.
Trigger BusinessFlag is set to Y on a provider location.
Enforcement clsProviderLocation.MissingBusinessName validates BusinessName before persistence.
Outcome The location cannot be saved without a business name.
Confidence Verified
Tables PROVIDER_LOCATION
SQL SQL-028, SQL-076
Source Business\SAIF.Business.Provider\clsProviderLocation.vb

BR-006: Individual locations require a last name

Field Value
Statement A location marked as an individual provider must provide a last name.
Trigger BusinessFlag is set to N on a provider location.
Enforcement clsProviderLocation.MissingLastName validates LastName before persistence.
Outcome The location cannot be saved without a last name.
Confidence Verified
Tables PROVIDER_LOCATION
SQL SQL-028, SQL-076
Source Business\SAIF.Business.Provider\clsProviderLocation.vb

BR-007: Address effective periods must not overlap

Field Value
Statement A provider location cannot keep two addresses of the same type active for overlapping date ranges.
Trigger A provider address is inserted or updated with effective and expiration dates.
Enforcement clsProviderAddress overlap validations run before persistence.
Outcome The save fails when the date range overlaps another address of the same type.
Confidence Verified
Tables PROVIDER_ADDRESS
SQL SQL-019, SQL-067
Source Business\SAIF.Business.Provider\clsProviderAddress.vb

BR-008: Domestic addresses require city, state, and ZIP data

Field Value
Statement A domestic provider address must provide address line 1, city, state, and ZIP code.
Trigger A provider address is saved with ForeignAddressFlag not set to Y.
Enforcement clsProviderAddress required-field validations run before persistence.
Outcome Incomplete domestic addresses cannot be saved.
Confidence Verified
Tables PROVIDER_ADDRESS
SQL SQL-019, SQL-067
Source Business\SAIF.Business.Provider\clsProviderAddress.vb

BR-009: Contacts require a type and a communication path

Field Value
Statement A provider contact must include a contact type and at least one of phone number or email address.
Trigger A provider contact is inserted or updated.
Enforcement clsProviderContact.ValidateContactType and ValidateEmailPhone run before persistence.
Outcome Incomplete contact records are rejected.
Confidence Verified
Tables PROVIDER_CONTACT
SQL SQL-021, SQL-069
Source Business\SAIF.Business.Provider\clsProviderContact.vb

BR-010: National Provider ID values must be 10 digits

Field Value
Statement Provider identifiers recorded as National Provider IDs must be exactly 10 digits.
Trigger A provider identity is saved for an NPI value.
Enforcement clsProviderIdentity.ValidValue validates IdentityValue before persistence.
Outcome Invalid NPI values cannot be saved.
Confidence Verified
Tables PROVIDER_IDENTITY
SQL SQL-024, SQL-072
Source Business\SAIF.Business.Provider\clsProviderIdentity.vb

BR-011: TIN values must be nine numeric digits and unique

Field Value
Statement A provider tax ID must contain nine numeric digits and cannot duplicate an existing TIN.
Trigger A provider tax ID is inserted or updated.
Enforcement clsProviderTaxID TIN validations run before persistence.
Outcome Invalid or duplicate TIN records are rejected.
Confidence Verified
Tables PROVIDER_TAX_ID
SQL SQL-036, SQL-084
Source Business\SAIF.Business.Provider\clsProviderTaxID.vb

BR-012: Only one primary TIN is allowed per provider

Field Value
Statement A provider can have only one primary tax ID.
Trigger A tax ID is saved with PrimaryTaxIDFlag enabled.
Enforcement clsProviderTaxID.HasDuplicatePrimaryTaxID validates the flag before persistence.
Outcome The save fails when another primary TIN already exists for the provider.
Confidence Verified
Tables PROVIDER_TAX_ID, PROVIDER
SQL SQL-036, SQL-084
Source Business\SAIF.Business.Provider\clsProviderTaxID.vb

BR-013: Relationship participants must exist and be distinct

Field Value
Statement A provider relationship must reference two existing provider locations and the two locations cannot be the same.
Trigger A provider relationship is inserted or updated.
Enforcement clsProviderRelationship validates both location identifiers and checks that the parent and child are different.
Outcome Invalid relationship records are rejected.
Confidence Verified
Tables PROVIDER_RELATIONSHIP, PROVIDER_LOCATION
SQL SQL-030, SQL-078
Source Business\SAIF.Business.Provider\clsProviderRelationship.vb

BR-014: Relationship dates must be valid and non-overlapping

Field Value
Statement A provider relationship requires an effective date, cannot expire before it becomes effective, and cannot overlap an existing relationship of the same type.
Trigger A provider relationship is inserted or updated.
Enforcement clsProviderRelationship validates dates and checks for duplicate overlapping relationships.
Outcome Conflicting relationship records cannot be saved.
Confidence Verified
Tables PROVIDER_RELATIONSHIP
SQL SQL-030, SQL-078
Source Business\SAIF.Business.Provider\clsProviderRelationship.vb

BR-015: Notes require both type and text

Field Value
Statement A provider note must include a note type code and note text.
Trigger A note is inserted or updated.
Enforcement clsNote TextRequired rules validate NoteTypeCode and NoteTxt before persistence.
Outcome Blank notes and untyped notes are rejected.
Confidence Verified
Tables CBP_NOTE
SQL SQL-017, SQL-065
Source Business\SAIF.Business.Provider\clsNote.vb

BR-016: MCO membership period must fall within the MCO plan's active date range

Field Value
Statement A provider's MCO membership effective/expiration period must fall entirely within the effective/expiration dates of the referenced MCO plan.
Trigger A provider MCO membership is inserted or updated with an effective date, and optionally an expiration date.
Enforcement clsProviderMCOMembership.ActiveEffDate compares the membership period to clsMCOPlan.GetMCOPlan(...).EffDate/ExpDate, treating a blank plan or membership expiration as open-ended.
Outcome The save fails when the membership period extends outside the plan's active dates.
Confidence Verified
Tables MCO_PROVIDER, MCO_PLAN
SQL SQL-029, SQL-077
Source Business\SAIF.Business.Provider\clsProviderMCOMembership.vb

BR-017: MCO membership expiration cannot precede an effective service contract's expiration

Field Value
Statement When a provider MCO membership record is being expired, its expiration date cannot be earlier than the expiration date of an effective provider service contract for the same MCO plan and location.
Trigger A dirty provider MCO membership is saved with an ExpDate populated.
Enforcement clsProviderMCOMembership.BeforeContractExpDate calls IsServiceContractEffective, which counts PROVIDER_SERVICE_CONTRACT rows for the same location/plan whose expiration (or an open-ended NVL to 31-Dec-2999) exceeds the proposed membership expiration date.
Outcome The save fails while an effective service contract would outlive the membership record.
Confidence Verified
Tables MCO_PROVIDER, PROVIDER_SERVICE_CONTRACT
SQL SQL-077
Source Business\SAIF.Business.Provider\clsProviderMCOMembership.vb

BR-018: MCO membership admin fee flag and rate must be mutually consistent

Field Value
Statement A provider MCO membership's admin-fee rate must be present and no greater than 1.000 when the admin fee flag is enabled, and must be blank when the flag is not enabled.
Enforcement clsProviderMCOMembership.ValidAdminFeeRate.
Outcome Membership rows with an inconsistent admin-fee flag/rate combination cannot be saved.
Confidence Verified
Tables MCO_PROVIDER
SQL SQL-029, SQL-077
Source Business\SAIF.Business.Provider\clsProviderMCOMembership.vb

BR-019: Exactly one primary provider service is allowed per location, without duplicate service codes

Field Value
Statement A provider location's service collection must include exactly one row flagged primary, and no service code may repeat within that collection.
Trigger A provider service row is saved as part of its sibling clsProviderServiceCollection.
Enforcement clsProviderService.HasPrimaryService, HasDuplicatePrimaryService, and HasDuplicateService inspect the RelatedServices collection.
Outcome The save fails when zero or multiple primary rows exist, or a service code is duplicated.
Confidence Verified
Tables PROVIDER_SERVICE
SQL SQL-032, SQL-080
Source Business\SAIF.Business.Provider\clsProviderService.vb

BR-020: Provider service contract pricing fields are mutually exclusive

Field Value
Statement A provider service contract's discount rate, additional-fee discount rate, and maximum charge amount must together total more than zero, but no more than one of the three may be populated.
Enforcement clsProviderServiceContract.AmtOrRateRequired and AmtAndRateNotZero.
Outcome Contract rows missing all three pricing fields, or populating more than one, cannot be saved.
Confidence Verified
Tables PROVIDER_SERVICE_CONTRACT
SQL SQL-034, SQL-082
Source Business\SAIF.Business.Provider\clsProviderServiceContract.vb

BR-021: Package-priced and equipment service contract rows carry additional cross-field requirements

Field Value
Statement A provider service contract identifying a package-priced service (service code Z) requires an MCO plan and disallows discount-rate fields; a contract identifying equipment or a service type equal to E requires a purchase code, and other rows must leave the purchase code blank. Service type code and CBP service code are mutually exclusive, and exactly one is required.
Enforcement clsProviderServiceContract.MCOPlanRequired, DiscountRateNotAllowed, AdditionalFeeDiscountRateNotAllowed, PurchaseCodeRequired, PurchaseCodeInvalid, ServiceTypeCodeAndServiceCode, ServiceTypeCodeOrServiceCodeRequired.
Outcome Contract rows violating any of these cross-field combinations cannot be saved.
Confidence Verified
Tables PROVIDER_SERVICE_CONTRACT
SQL SQL-034, SQL-082
Source Business\SAIF.Business.Provider\clsProviderServiceContract.vb

BR-022: Provider ineligibility periods must fall within a reasonable, non-future date range

Field Value
Statement A provider ineligibility period's start date cannot precede 01/01/1850 or fall in the future, and its termination date cannot precede the start date, fall in the future, or be more than 30 years in the past.
Enforcement clsProviderIneligibilityPeriod.UnreasonableStartDate, LateStartDate, ValidTerminationDate, LateTerminationDate, and EarlyTerminationDate.
Outcome Ineligibility periods with an out-of-range date are rejected.
Confidence Verified
Tables PROVIDER_INELIG_PERIOD
SQL SQL-026, SQL-074
Source Business\SAIF.Business.Provider\clsProviderIneligibilityPeriod.vb

BR-023: Provider DCBS cost/charge factor must be between 0.000 and 1.000 inclusive

Field Value
Statement A provider location's DCBS cost/charge factor must be between 0.000 and 1.000 inclusive, and its effective/expiration dates must stay within -30 years to +10 years of today with the expiration not preceding the effective date.
Enforcement clsProviderDcbsCostCharge.ValidCostChargeFactor, EarlyEffDate, LateEffDate, LateExpDate, and ValidEffExpDate.
Outcome Cost/charge records with an out-of-range factor or date cannot be saved.
Confidence Verified
Tables PROVIDER_DCBS_COST_CHARGE
SQL SQL-023, SQL-071
Source Business\SAIF.Business.Provider\clsProviderDcbsCostCharge.vb

BR-024: A provider relationship in use cannot be deleted, only expired

Field Value
Statement A provider relationship that is referenced by an attending physician or a claim legal representative cannot be deleted; it must be expired instead.
Trigger An existing provider relationship's child or parent location is changed.
Enforcement clsProviderRelationship.RelationshipInUseRule queries RelationshipInUse against ATTENDING_PHYSICIAN and CL_CLAIM_LEGAL_REPRESENTATIVE.
Outcome The save is rejected with "Relationship in use, must be expired instead of deleted." while the relationship remains referenced.*
Confidence Inferred
Tables PROVIDER_RELATIONSHIP
SQL SQL-078
Source Business\SAIF.Business.Provider\clsProviderRelationship.vb

BR-025: An existing provider tax ID value is immutable once saved

Field Value
Statement Once a provider tax ID (TIN) has been saved, its underlying 9-digit value cannot be changed; only its display formatting may be altered.
Enforcement clsProviderTaxID.AlteredTIN compares the current TaxID to the originally retrieved value.
Outcome Attempts to change an existing TIN's digits are rejected with "This TIN may not be changed. Only the format may be altered."
Confidence Verified
Tables PROVIDER_TAX_ID
SQL SQL-084
Source Business\SAIF.Business.Provider\clsProviderTaxID.vb

BR-026: A provider address expiration date cannot be removed while a later address of the same type exists

Field Value
Statement A provider address that has already been assigned an expiration date cannot have that expiration date cleared if a later address of the same address type already exists.
Enforcement clsProviderAddress.ValidateExpDate.
Outcome The save is rejected with "Error: Expiration date cannot be removed."
Confidence Verified
Tables PROVIDER_ADDRESS
SQL SQL-067
Source Business\SAIF.Business.Provider\clsProviderAddress.vb

Sources

  • Business\SAIF.Business.Provider\clsProviderSearch.vb
  • Business\SAIF.Business.Provider\clsProviderSearch.vb
  • Business\SAIF.Business.Provider\clsProviderLocation.vb
  • Business\SAIF.Business.Provider\clsProviderLocation.vb
  • Business\SAIF.Business.Provider\clsProviderLocation.vb
  • Business\SAIF.Business.Provider\clsProviderLocation.vb
  • Business\SAIF.Business.Provider\clsProviderAddress.vb
  • Business\SAIF.Business.Provider\clsProviderAddress.vb
  • Business\SAIF.Business.Provider\clsProviderContact.vb
  • Business\SAIF.Business.Provider\clsProviderIdentity.vb
  • Business\SAIF.Business.Provider\clsProviderTaxID.vb
  • Business\SAIF.Business.Provider\clsProviderTaxID.vb
  • Business\SAIF.Business.Provider\clsProviderRelationship.vb
  • Business\SAIF.Business.Provider\clsProviderRelationship.vb
  • Business\SAIF.Business.Provider\clsNote.vb
  • Business\SAIF.Business.Provider\clsProviderMCOMembership.vb
  • Business\SAIF.Business.Provider\clsProviderMCOMembership.vb
  • Business\SAIF.Business.Provider\clsProviderMCOMembership.vb
  • Business\SAIF.Business.Provider\clsProviderService.vb
  • Business\SAIF.Business.Provider\clsProviderServiceContract.vb
  • Business\SAIF.Business.Provider\clsProviderServiceContract.vb
  • Business\SAIF.Business.Provider\clsProviderIneligibilityPeriod.vb
  • Business\SAIF.Business.Provider\clsProviderDcbsCostCharge.vb
  • Business\SAIF.Business.Provider\clsProviderRelationship.vb
  • Business\SAIF.Business.Provider\clsProviderTaxID.vb
  • Business\SAIF.Business.Provider\clsProviderAddress.vb