Provider registration validation¶
This operation is the medical-provider branch of clsNewUserArgs registration validation. It confirms that the supplied provider identity resolves correctly, checks the claim-and-bill credentials through an Oracle function, applies provider eligibility gating, and finally checks the self-registration deny list.
| Field | Value |
|---|---|
| Operation ID | OP-EU-09 |
| Trigger | Medical-provider self-registration validation |
| Inputs | Provider tax ID or provider ID, bill ID, claim number, user-type context |
| Outputs | Boolean validation result and caller-facing error message |
| Primary components | clsNewUserArgs.ValidateMedicalProviderRegistration, clsNewUserArgs.IsValidProviderRegistration |
| Entry point | Business\SAIF.Business.External.Users\clsNewUserArgs.vb |
Steps¶
- Translate the provider-facing source-system input into a provider ID. During
clsNewUserArgsconstruction, Medical Provider registration stores the incoming tax ID inCustID, loads the provider object, and setsSourceSystemIDto the resolved provider ID when the tax ID matches the provider's formatted primary tax ID. - Confirm that the provider identity resolved successfully.
ValidateMedicalProviderRegistrationfails immediately whenSourceSystemIDis empty or the loaded provider's ID does not match it. - Parse the credential set into bill and claim identifiers. The validator requires
Credentials(1)to be numeric for the bill ID and treatsCredentials(0)as the SAIF claim number. - Call the Oracle function that validates the provider, bill, and claim combination.
IsValidProviderRegistrationexecutes theSELECT ... FROM DUALcall and returnsTrueonly when the scalar result is greater than zero (SQL-014, DUAL). - Check whether the provider type allows self-registration. After the Oracle validation passes, the validator inspects
Provider.PrimaryLocation.ProviderType.IsSelfRegistrationAllowedand blocks providers that are not eligible for self-registration. - Check the self-registration deny list for the provider ID. The validator loads deny-list rows for the Medical Provider type code and the provider ID string; any matching row blocks the registration (BR-EU-02, EXT_USER_DENY_SELF_REG).
- Return the final validation result to the caller. A
Trueresult allows user-account creation to proceed; aFalseresult leaves the relevant error message on theclsNewUserArgsrule context.
Process flow¶
The following diagram visualizes this operation's control flow.
flowchart TD
Start([Medical-provider registration]) --> Resolve[Resolve provider ID from tax ID]
Resolve --> ProviderOk{Provider matches?}
ProviderOk -->|No| Fail([Validation fails])
ProviderOk -->|Yes| Parse[Parse bill and claim credentials]
Parse --> Oracle[Call provider-registration Oracle function]
Oracle --> Eligible{Function and provider rules pass?}
Eligible -->|No| Fail
Eligible -->|Yes| Deny[Check deny list]
Deny --> Block{Blocked?}
Block -->|Yes| Fail
Block -->|No| Done([Registration may continue])
Failure and edge-case behavior¶
- Non-numeric bill IDs fail before the Oracle call is attempted.
- A provider that resolves correctly can still be blocked by
IsSelfRegistrationAllowedor by a deny-list row. - The Oracle package body behind the validation function is not present in this repository, so only the call shape and boolean interpretation are directly traceable here.**
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.
Related documentation¶
Sources¶
Business\SAIF.Business.External.Users\clsNewUserArgs.vb