MCO determination¶
clsMCOManager.DetermineMCO resolves, for every auditable service line, whether the claim's managed-care-organization (MCO) enrollment applies, which billing-provider and servicing-provider MCO plans are in effect, and whether the service is eligible for MCO administrative-fee withhold. It reuses resolved state across consecutive services sharing the same service date and provider to avoid redundant lookups.
| Field | Value |
|---|---|
| Operation ID | OP-AA-04 |
| Trigger | BillAuditEngine.AuditBill calls clsMCOManager.DetermineMCO(Bill) after service edits pass, unless Bill.BillType = WorkerReimbursement |
| Inputs | clsBillAudit with edited, auditable services (Bill.ServiceData.ForReAudit) |
| Outputs | Per-service McoEligibilityStatusCode, McoID, McoPlanID, IsMCOWithhold state on the audited service; cached clsClaimMCO on the bill |
| Primary components | clsMCOManager.DetermineMCO, clsMCOManager.DetermineClaimMCO, clsMCOManager.DetermineBillingProviderMCO, clsMCOManager.DetermineServicingProviderMCO, clsMCOManager.GetClaimMCO |
| Entry point | Business\SAIF.Business.Claim.Bill.AutomatedAudit\AuditUtilities\clsMCOManager.vb |
Steps¶
- Start and cache claim MCO. Start the
"Determine MCO"trail group, set the currentBill, and resolveBill.MCOInformationviaGetClaimMCO(Bill.Claim), which caches aclsClaimMCOinstance perClaimIDfor the run.* - Iterate auditable services. For each service in
Bill.ServiceData.ForReAudit: - Reuse when possible. If the previous service in the loop shared the same
ServiceDate, reuse its already-resolved claim MCO and billing-provider MCO state instead of re-querying. If it also shared the same servicing provider location, reuse the servicing-provider MCO/withhold state as well. - Otherwise, resolve claim MCO (
DetermineClaimMCO). CallBill.MCOInformation.GetMCOEligibility(Service.ServiceDate).- If no eligibility record is found: log that no enrollment exists and null the audited service's
McoEligibilityStatusCode,MCOID, andMcoPlanID. - Otherwise: log the resolved status/effective date/plan/location and set
McoEligibilityStatusCode,McoID,McoPlanIDon the audited service.
- If no eligibility record is found: log that no enrollment exists and null the audited service's
-
Resolve billing-provider MCO (
DetermineBillingProviderMCO).- Seed
IsMandatoryMCOfromBill.BillingProvider.ProviderType.IsMandatoryMco, andIsMCOProviderAdminFee = False. - Retrieve the billing provider's MCO plan list effective on the service date.
Origin: This plan list is implemented by Retrieve MCO provider enrollments in
SAIF.BOF.Business.View.Provider. - By claim MCO status:"Y"prefers the same plan ID, falling back to the first plan withApplyDiscountCodeinA/P;"P"prefers the same plan ID withApplyDiscountCodeinA/P, falling back to any plan withApplyDiscountCode = A; any other status uses any plan withApplyDiscountCode = A. - If a plan is selected, store it asBillingProviderMCOPlanand log its ID/description. - Resolve servicing-provider MCO and withhold (DetermineServicingProviderMCO). - DefaultIsMandatoryMCOfrom the billing provider type; retrieve the servicing provider's MCO plan list effective on the service date.Origin: This plan list is also implemented by Retrieve MCO provider enrollments in
SAIF.BOF.Business.View.Provider. - By claim MCO status:"Y"requires the same plan ID as the claim's eligibility record;"P"requires the same plan ID andApplyAdminFeeCode = "P"; any other status disables withhold entirely for this service. - If a qualifying plan is found: setServicingProviderMCOPlan,IsMCOWithhold = True,MCOWithholdPlan,MCOWithHoldAdminFeeRate, andIsMandatoryMCOfrom the servicing provider's type; log the selected plan and withhold plan. - If a servicing-provider plan was found, setIsMCOProviderAdminFee = ServicingProviderMCOPlan.IsAdminFee. - Reconcile withhold eligibility on the audited service. If the service does not qualify for withhold: nullMcoPlanID, zeroMCOWithHoldAdminFeeRate, and clearIsMCOProviderAdminFeeon the audited service. Otherwise, if a servicing-provider plan was resolved, copy itsPlanIDinto the audited service'sMcoPlanID. 3. Stop groups. Stop the per-service and overall"Determine MCO"trail groups. - Seed
Process flow¶
flowchart TD
Start([DetermineMCO invoked]) --> CacheClaim[Cache Bill.MCOInformation<br>via GetClaimMCO]
CacheClaim --> Loop[For each service in ForReAudit]
Loop --> Reuse{Same ServiceDate<br>as previous service?}
Reuse -->|Yes| ReuseState[Reuse claim/billing-provider<br>MCO state]
Reuse -->|No| ClaimMCO[DetermineClaimMCO:<br>GetMCOEligibility]
ClaimMCO --> BillingMCO[DetermineBillingProviderMCO:<br>select plan by claim MCO status]
ReuseState --> ServicingCheck{Same servicing<br>provider too?}
BillingMCO --> ServicingMCO[DetermineServicingProviderMCO:<br>resolve withhold plan]
ServicingCheck -->|Yes| ReuseServicing[Reuse servicing-provider<br>MCO/withhold state]
ServicingCheck -->|No| ServicingMCO
ServicingMCO --> Qualify{Service qualifies<br>for withhold?}
ReuseServicing --> Qualify
Qualify -->|No| ClearWithhold[Null McoPlanID;<br>zero admin fee rate]
Qualify -->|Yes| CopyPlan[Copy ServicingProviderMCOPlan.PlanID<br>to McoPlanID]
ClearWithhold --> Next{More services?}
CopyPlan --> Next
Next -->|Yes| Loop
Next -->|No| Done([Stop trail groups])
Failure and edge-case behavior¶
- Skipped entirely for
WorkerReimbursementbills — those bills never receive MCO plan or withhold data from this operation. - The reuse optimization in step 2 assumes services are processed in a stable order such that consecutive same-date (and same-provider) services share MCO context; if that ordering assumption does not hold, stale state could be reused.*
- A claim MCO status other than
"Y"or"P"disables servicing-provider withhold entirely, even if a matching plan exists, because theElsebranch ofDetermineServicingProviderMCOperforms no lookup. clsClaimMCOis constructed directly (New clsClaimMCO(DPI, ClaimID)) rather than through a locally-traced factory; its owning library could not be confirmed from this library's source alone.**
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¶
Business\SAIF.Business.Claim.Bill.AutomatedAudit\AuditUtilities\clsMCOManager.vb