Load provider ineligibility periods¶
Loads the ineligibility windows associated with a provider location (or a single window by ID), used by clsProviderLocation.IsDuringIneligibilityPeriod to determine location eligibility on a given date.
| Field | Value |
|---|---|
| Operation ID | OP-06 |
| Trigger | clsProviderLocation.IneligibilityPeriods |
| Inputs | IDataPortalInfo, provider-location ID or ineligibility-period ID |
| Outputs | clsProviderIneligibilityPeriodCollection, clsProviderIneligibilityPeriod |
| Primary components | clsProviderIneligibilityPeriodCollection.GetProviderIneligibilityPeriodCollection, clsProviderIneligibilityPeriod.GetProviderIneligibilityPeriod |
| Entry point | SAIF.Business.View.Provider/clsProviderIneligibilityPeriodCollection.vb:216; SAIF.Business.View.Provider/clsProviderIneligibilityPeriod.vb:311 |
Steps¶
BeforeRetrievebinds:ProviderLocationID(collection retrieval, SQL-PINE-02) or:IneligibilityPeriodID(single retrieval, SQL-PINE-01) against PROVIDER_INELIG_PERIOD.AfterRetrievefills the object(s) from the reader and callsMarkOld().TerminationDatereturnsDate.MaxValuewhen the underlying column is empty (BR-PINE-001).clsProviderLocation.IsDuringIneligibilityPeriod(date)counts windows containing the date, enforcing BR-PLOC-004.- Note: no navigation-property backing field caches the collection — every access to
IneligibilityPeriodsre-queries the table.*
Process flow¶
The following diagram visualizes this operation's control flow.
flowchart TD
Start([Caller request]) --> S1{Single period or collection?}
S1 -->|Single| S2[Bind IneligibilityPeriodID]
S1 -->|Collection| S3[Bind ProviderLocationID]
S2 --> S4[AfterRetrieve: Fill, MarkOld]
S3 --> S4
S4 --> S5[TerminationDate = Date.MaxValue<br>when empty]
S5 --> S6{"IsDuringIneligibilityPeriod<br>date?"}
S6 -->|Yes| S7(["Location treated as<br>ineligible"])
S6 -->|No| EndOk([Location treated as eligible])
Failure and edge-case behavior¶
- No matching windows: an empty collection is returned; the location is treated as eligible for any date.
- Every access to
clsProviderLocation.IneligibilityPeriodsre-queries the database (no caching), unlike other navigation properties.* - An open-ended ineligibility period (no termination date) is treated as never expiring (BR-PINE-001).
Related documentation¶
Note: Statements marked with * were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts. Statements marked with ** could not be confirmed; treat as unknown until verified.
Sources¶
SAIF.Business.View.Provider/clsProviderIneligibilityPeriod.vbSAIF.Business.View.Provider/clsProviderIneligibilityPeriodCollection.vbSAIF.Business.View.Provider/clsProviderLocation.vb