Skip to content

SAIF.Business.External.Users operations and processes

This page is the operation catalog and cross-operation hub for SAIF.Business.External.Users. The library centers on external-user registration, account maintenance, user-type and access-group administration, premium-audit routing, and supporting lookup utilities. Each operation's detailed, step-by-step logic lives in its own page under operations/.

Operation catalog

Operation Intent Trigger Inputs Outputs Rules Tables SQL
User self-registration and account management Create, retrieve, update, and post-process external-user accounts clsUser.NewUser, clsUser.GetUser, clsUser.GetForgottenUser, or clsUser.UpdateLastLogonDate clsNewUserArgs, UserID, AD user ID, email, user-type context, child collections Persisted EXT_USER row, saved child objects, forgotten-user match, updated last-logon timestamp BR-EU-01, BR-EU-04, BR-EU-05 EXT_USER, EXT_USER_TYPE, EMAIL_ADDRESS SQL-005, SQL-015, SQL-016, SQL-017, SQL-018, SQL-019, SQL-045, SQL-046
Deny self-registration check Maintain and query the self-registration block list clsUserDenySelfRegistration CRUD or clsUserDenySelfRegistrationCollection.GetUserDenySelfRegistrations User-type code, source-system group ID, customer-requested flag, reason Matching deny-list row(s) or persisted block-list change BR-EU-02, BR-EU-05 EXT_USER_DENY_SELF_REG SQL-007, SQL-027, SQL-048, SQL-054
Security question management Maintain a user's security-question answers and the active question catalog clsUserSecurityQuestion CRUD, GetUserSecurityQuestionsByUserID, or GetAllSecurityQuestions User ID, question code, answer, culture code Persisted question rows or active question choices BR-EU-05 EXT_USER_SECURITY_QUESTION, EXT_USER_SEC_QUESTION_CODE SQL-008, SQL-028, SQL-029, SQL-049, SQL-055
Auditor assignment override management Maintain premium auditors, auditor zip routing, and policy-specific default or exclusion overrides Auditor, zip-code, or override CRUD; default-auditor resolution for a policy Auditor metadata, zip codes, policy number, override auditor IDs, audit type Persisted PA_AUDITOR, PA_AUDITOR_ZIP_CODE, and PA_ASSIGN_OVERRIDE rows; resolved default auditor BR-EU-03 PA_AUDITOR, PA_AUDITOR_ZIP_CODE, PA_ASSIGN_OVERRIDE SQL-001, SQL-002, SQL-003, SQL-004, SQL-010, SQL-011, SQL-012, SQL-013, SQL-042, SQL-043, SQL-044, SQL-052
User access group management Load, reconcile, and persist access-group selections for a user type Access-group list retrieval, AD reconciliation helpers, or access-group save User-type ID, user-type code, access type, AD group list, selected flags Possible groups, AD-derived additions/removals, persisted access-group rows BR-EU-05 EXT_USER_ACCESS_GROUP, EXT_USER_ACCESS_GROUP_CODE, EXT_USER_ACCESS_GROUP_AD, EXT_USER_AD_GROUP SQL-006, SQL-021, SQL-022, SQL-023, SQL-024, SQL-025, SQL-026, SQL-047, SQL-053
User type management Create, validate, and persist user-type rows and their provider/policy helper actions clsUserType CRUD, GetUserTypesByUserID, policy/provider helper methods User-type metadata, customer IDs, source-system values, policy number, provider email Persisted EXT_USER_TYPE row, saved customer/access-group children, helper booleans and EFT updates BR-EU-05 EXT_USER_TYPE, EXT_USER_TYPE_CODE, EXT_USER_STATUS_CODE, PAYMENT_AUTHORIZATION, PROVIDER_EOB_INTERFACE SQL-009, SQL-030, SQL-031, SQL-032, SQL-033, SQL-034, SQL-035, SQL-036, SQL-038, SQL-039, SQL-050, SQL-051, SQL-056
Premium auditor lookup Resolve an auditor from AD user ID and vendor number mdlAuditor.LoadAuditor AD user ID, vendor number, test-user flag Retrieved clsAuditor object — PA_AUDITOR SQL-041
Zip code routing lookup Resolve county, office, and audit-office routing for a zip code clsZipCode.GetZipCode Zip code Populated routing object or empty lookup object — PA_ZIP_CODE, COUNTY, OFFICE_CODE SQL-037
Provider registration validation Validate a medical-provider registration request before account creation clsNewUserArgs.ValidateMedicalProviderRegistration or clsNewUserArgs.IsValidProviderRegistration Provider tax ID or provider ID, bill ID, claim number, self-registration context Boolean validation result and caller-facing error message BR-EU-02 DUAL, EXT_USER_DENY_SELF_REG SQL-014
User search Search external users with optional filters and row limiting clsUserCollection.GetUsers(...) search overload Test-user flag, access group, customer ID, partial AD ID, partial email, partial name, status code, user-type code, optional row limit Collection of matching users — EXT_USER, PERSON, EXT_USER_TYPE, EXT_USER_ACCESS_GROUP, COMPANY, PERSON_EMAIL, EMAIL_ADDRESS SQL-020
Password generation and validation Generate temporary passwords and validate caller-supplied passwords clsPassword.Generate or clsPassword.IsValid Password length, special-character count, user ID, first name, last name, candidate password Generated password string or validation result with messages BR-EU-06 None None

Process flow diagram

The following diagram shows how the major external-user operations interact from registration through ongoing administration.

flowchart TD
    Start([External-user request]) --> Validate[Validate registration or admin input]
    Validate --> Provider[Provider registration validation]
    Validate --> Deny[Deny self-registration check]
    Validate --> Password[Password generation and validation]
    Provider --> Account[User self-registration and account management]
    Deny --> Account
    Password --> Account
    Account --> Questions[Security question management]
    Account --> Types[User type management]
    Types --> Groups[User access group management]
    Types --> Search[User search]
    Account --> Search
    Account --> AuditorLookup[Premium auditor lookup]
    AuditorLookup --> AuditorAdmin[Auditor assignment override management]
    AuditorAdmin --> Zip[Zip code routing lookup]
    Zip --> AuditorAdmin
    Search --> Done([Read or persisted result returned])
    Questions --> Done
    Groups --> Done
    AuditorAdmin --> Done

Database interactions

The following table summarizes which operations read from or write to the database. Per-step SQL and table citations live in each operation's detail page under operations/.

Operation SQL Tables Type
User self-registration and account management SQL-005, SQL-015, SQL-016, SQL-017, SQL-018, SQL-019, SQL-045, SQL-046 EXT_USER, EXT_USER_TYPE, EMAIL_ADDRESS Read / Write
Deny self-registration check SQL-007, SQL-027, SQL-048, SQL-054 EXT_USER_DENY_SELF_REG Read / Write
Security question management SQL-008, SQL-028, SQL-029, SQL-049, SQL-055 EXT_USER_SECURITY_QUESTION, EXT_USER_SEC_QUESTION_CODE Read / Write
Auditor assignment override management SQL-001, SQL-002, SQL-003, SQL-004, SQL-010, SQL-011, SQL-012, SQL-013, SQL-042, SQL-043, SQL-044, SQL-052 PA_AUDITOR, PA_AUDITOR_ZIP_CODE, PA_ASSIGN_OVERRIDE Read / Write
User access group management SQL-006, SQL-021, SQL-022, SQL-023, SQL-024, SQL-025, SQL-026, SQL-047, SQL-053 EXT_USER_ACCESS_GROUP, EXT_USER_ACCESS_GROUP_AD, EXT_USER_AD_GROUP Read / Write
User type management SQL-009, SQL-030, SQL-031, SQL-032, SQL-033, SQL-034, SQL-035, SQL-036, SQL-038, SQL-039, SQL-050, SQL-051, SQL-056 EXT_USER_TYPE, PAYMENT_AUTHORIZATION, PROVIDER_EOB_INTERFACE Read / Write
Premium auditor lookup SQL-041 PA_AUDITOR Read
Zip code routing lookup SQL-037 PA_ZIP_CODE, COUNTY, OFFICE_CODE Read
Provider registration validation SQL-014 DUAL, EXT_USER_DENY_SELF_REG Read
User search SQL-020 EXT_USER, PERSON, EXT_USER_TYPE, EXT_USER_ACCESS_GROUP, COMPANY, PERSON_EMAIL, EMAIL_ADDRESS Read
Password generation and validation None None In-memory only

Stored procedure operations

Operations implemented in Oracle stored procedures referenced by this library.

Operation Description Source Link
Provider registration validation Validates that the provider, bill, and claim combination is eligible for registration pk82396_medical_bills.ValidateProvReg Details
Quoted policy expiry check Evaluates whether a quoted policy has expired before policyholder self-registration pk72971_epay_policy.is_expired_quoted_policy Details
Billing plan type retrieval Verifies that a quoted or pending policy has an established billing plan pk72971_epay_policy.get_policy_billing_plan_type Details
ePay eligibility check Verifies that the billing plan supports the installment pattern required for self-registration pk72971_epay_policy.is_policy_eligible_for_epay Details

Failure and edge-case behavior

  • Duplicate active non-test email addresses fail validation before the user row is persisted (BR-EU-04).
  • Updates on BOF-managed tables rely on UPDATE_NUM; if the row-count check fails, the operation reports a DB-contention error instead of silently overwriting data (BR-EU-05).
  • Self-registration validators actively query the deny list for agency, provider, policyholder, and injured-worker registrations; any matching row blocks the registration path (BR-EU-02).
  • The stored-procedure package bodies referenced by Provider registration validation and the policy helper methods are not present in this repository, so their database-side behavior must be taken from the SQL and procedure documentation rather than traced local source.**
  • Lookup-style operations such as Premium auditor lookup and Zip code routing lookup return whatever data the backing read path finds; when no row matches, callers receive an empty or default object rather than a persisted update.

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.External.Users\clsAuditAssignmentOverride.vb
  • Business\SAIF.Business.External.Users\clsAuditor.vb
  • Business\SAIF.Business.External.Users\clsAuditorCollection.vb
  • Business\SAIF.Business.External.Users\clsAuditorZipCode.vb
  • Business\SAIF.Business.External.Users\clsAuditorZipCodeCollection.vb
  • Business\SAIF.Business.External.Users\clsNewUserArgs.vb
  • Business\SAIF.Business.External.Users\clsPassword.vb
  • Business\SAIF.Business.External.Users\clsUser.vb
  • Business\SAIF.Business.External.Users\clsUserAccessGroup.vb
  • Business\SAIF.Business.External.Users\clsUserDenySelfRegistration.vb
  • Business\SAIF.Business.External.Users\clsUserSecurityQuestion.vb
  • Business\SAIF.Business.External.Users\clsUserType.vb
  • Business\SAIF.Business.External.Users\clsZipCode.vb
  • Business\SAIF.Business.External.Users\mdlAuditor.vb
  • Business\SAIF.Business.External.Users\mdlCodeMaps.vb
  • Business\SAIF.Business.External.Users\mdlGroupAssociation.vb