This page captures business rules enforced by this library. Rule identifiers use a library-specific prefix followed
by a sequence number (see the individual rule headings below) assigned during Stage 1 analysis (TSK004) and are
preserved as-is for cross-reference stability with operations and SQL pages in this document set.
BR-CLM-LGL-001 Case cost date ranges must be valid¶
Field
Value
Statement
Case cost authorized date and service dates must fall within valid ranges, and the service "to" date must be on/after the service "from" date.
Trigger
Setting/validating AuthorizedDate, ServiceFromDate, ServiceToDate on clsCaseCost.
BR-CLM-LGL-004 Case search input must match search-type format¶
Field
Value
Statement
Case search input must match the format required by the selected search type (claim number = 7 chars; SSN = 11 chars incl. dashes; policy number length in {1-6, 9}; worker-name search requires last name; check-number search requires a check number).
Trigger
User submits clsCaseSearchCriteria for a search.
Enforcement
LegalNet\clsCaseSearchCriteria.vb (~lines 24-50)
Outcome
Search rejected/flagged invalid until criteria conform.
BR-CLM-LGL-008 Attorney profile requires attorney, type, and valid date range¶
Field
Value
Statement
An attorney profile requires an attorney (employee id), a type code, and a valid effective/expiration date range (expiration ≥ effective, or expiration unset).
BR-CLM-LGL-012 Hearing location requires valid code, name, state, and city¶
Field
Value
Statement
A hearing-location record must have a non-blank location code and location name; if a state is provided it must be ≤2 characters and pass a lookup against ALL_STATES/NCCI_STATE_CODE; city must not contain digits or special characters.
clsConsolidations/clsLegalSchedule similarly suppress a non-production-only behavior based on AppGlobal.EnvironmentService.GetApplicationEnvironment().*
Rules in this section originate from base classes or services provided by dependency framework libraries. They are
enforced by inherited behavior, not by code in this library. The originating class and library are recorded in each
rule's Origin field.
Retrieved from indexed documentation via Legends CLI
INH-CLL-002 API criteria SQL properties are always empty by design¶
Field
Value
Statement
Objects deriving from clsBusinessApiCriteriaBase always return empty SQL for IBusinessCriteria properties by design — data access is delegated to a REST API client instead of direct SQL.†
Trigger
Any CRUD attempt against an API-criteria-derived business object (e.g., LegalApi-consuming classes such as clsFindCase, clsAcknowledge, clsBoardLog, clsAttorneyMessages).
Enforcement
clsBusinessApiCriteriaBase base class behavior†
Outcome
No SQL is executed for these objects in this library; the actual data access occurs in the external LegalApi service.
Origin
SAIF.Framework.Core — clsBusinessApiCriteriaBase
Source
Retrieved from indexed documentation via Legends CLI
FLAG-CLL-001 Duplicate business objects target HEARING_LOCATION¶
Field
Value
Statement
Two distinct business objects target the HEARING_LOCATION table for different use-cases: clsHearingLocationInfo (LegalNet, case-facing read-only lookup) and clsHearingLocation (TableMaint, reference-data maintenance with full CRUD). This duplication was flagged by the Stage 1b database analysis (TSK1B-002 §1) and by architecture.md.
Trigger
n/a (structural/architectural observation, not a runtime trigger).
Enforcement
n/a — this is an architectural duplication flag, not an enforced rule.
Outcome
Two independent code paths must be kept in sync for any schema change to HEARING_LOCATION; a discrepancy risk exists between the read-only and maintenance paths.
FLAG-CLL-002 ValidateState builds SQL via non-parameterized string concatenation (SQL-injection risk)¶
Field
Value
Statement
The ValidateState() ad-hoc query in both clsHearingLocation and clsOtherFirm builds SQL via raw string concatenation of caller-suppliable input ("SELECT NCCI_STATE_CODE from ALL_STATES where STATE = '" & State & "'") rather than a bind parameter. This is a non-parameterized query and a potential SQL-injection surface, flagged by the Stage 1b database analysis (TSK1B-002 §1.1) for security review.
Potential SQL-injection exposure if the State input is not otherwise constrained upstream (e.g., by a bounded dropdown); recommended for a follow-up security review.
BR-CLM-LGL-026 Legal case search falls through case number hierarchy¶
Field
Value
Statement
pk80001_legalnet.findCase searches by wcb_num first, then by dcbs_num only when the input length is 7 or less, then by owcp_num, oalj_num, brb_num, and finally by APPEAL.appeal_num.
Trigger
Caller invokes the Oracle search routine with a case-number-like value.
Enforcement
WCIS_DBA.pk80001_legalnet.findCase
Outcome
The first matching identifier path determines the returned legal-case result set.
BR-CLM-LGL-028 Appeal deletion cascades schedule and state cleanup¶
Field
Value
Statement
Deleting an appeal also deletes its extension rows, deletes its linked schedule when present, recalculates the most-recent hearing sequence, and may repopulate case status or file location when the deleted appeal changed review-level or attorney/file-location state.
Trigger
pk80001_legalnet.deleteappeal runs.
Enforcement
WCIS_DBA.pk80001_legalnet.deleteappeal
Outcome
Appeal removal does not leave extension, schedule, or stale case/file-state artifacts behind.
BR-CLM-LGL-029 Hearing sequence fallback prefers consolidated HEAR then direct HEAR then other hearing-like schedules¶
Field
Value
Statement
Recalculation of most_recent_hearing_seq_num prefers a consolidated primary-case HEAR row, then the case's own HEAR row, and finally CCALL, INCON, or MED rows if no HEAR row exists.
Trigger
pk80001_legalnet.updateHearingSeqNum runs.
Enforcement
WCIS_DBA.pk80001_legalnet.updateHearingSeqNum
Outcome
A legal case keeps the best available hearing pointer even when standard hearing rows are absent.
BR-CLM-LGL-030 Schedule retrieval includes consolidated-primary schedules for secondary cases¶
Field
Value
Statement
pk80001_legalnet.getSchedule returns direct schedule rows for the case plus primary-case schedule rows when the requested case is a consolidated secondary case.
Trigger
The library retrieves schedule data for a legal case.
Enforcement
WCIS_DBA.pk80001_legalnet.getSchedule
Outcome
Consolidated secondary cases expose primary hearing activity in the returned schedule recordset.
BR-CLM-LGL-031 Mail and acknowledgement updates are type-driven¶
Field
Value
Statement
pk80001_legalnet.setMailDate updates oar_mailed_date only for OAR requests and otherwise updates recon_packet_received_date, while pk80001_legalnet.updateAcknowledged only updates WCB or DCBS identifiers plus acknowledge_date.
Trigger
The library invokes mail-date or acknowledgement updates.
BR-CLM-LGL-032 Assignment only succeeds when every blocker count is zero¶
Field
Value
Statement
pk80005_assignment.assignIt and assignItBalanced only assign an attorney when the sum of conflict, workload, holiday, vacation, and location blocker counts is zero.
Trigger
The assignment engine evaluates a candidate attorney.
Successful assignments write a CA result, update the schedule, and move the legal case to status ASSGN; otherwise the case remains unassigned for that candidate.
BR-CLM-LGL-033 Weekly load thresholds vary by attorney load percent¶
Field
Value
Statement
When weekly-load checking is enabled, attorneys with load percent below 34 are capped at one hearing day, attorneys below 67 at two, and all others at three before load blocks assignment.
Trigger
pk80005_assignment.assignIt runs with weekly_case_load > 0.
Enforcement
WCIS_DBA.pk80005_assignment.assignIt
Outcome
Lower-capacity attorneys reach load-based assignment rejection sooner than higher-capacity attorneys.
BR-CLM-LGL-034 Rotation assignment only targets pending unassigned hearing rows in active rotation coverage¶
Field
Value
Statement
Rotation assignment evaluates only PENDA cases with unassigned HEAR schedule rows in SET or RESET status, an active matching out-of-town rotation row, and no recon issue on the case.
Trigger
pk80005_assignment.assign_rotation_cases runs.
Enforcement
WCIS_DBA.pk80005_assignment.assign_rotation_cases
Outcome
Rotation logic skips already-assigned, outside-counsel, or recon-issue hearings.
BR-CLM-LGL-035 Conflict and load helper functions treat missing data as zero blockers¶
Field
Value
Statement
Conflict and load helper functions normalize NO_DATA_FOUND and null aggregate results to zero so missing related rows do not fail assignment evaluation.
Trigger
Helper functions such as adjuster_conflict_check, employer_conflict_check, calendar_conflict_check, case_load, or get_weekly_case_load run.
Candidate evaluation treats missing supporting rows as no blocker rather than an error condition.
Source
Oracle retrieval JSON pk80005_assignment.json
BR-CLM-LGL-036 Calendar review filters to active attorney profiles and requested coverage locations¶
Field
Value
Statement
pk80005_assignment.calendar_review only reports active attorney profiles and, unless the caller requests ALL, only attorneys whose primary, secondary, or tertiary hearing-location code matches the requested location.
Trigger
Quick-calendar review runs.
Enforcement
WCIS_DBA.pk80005_assignment.calendar_review
Outcome
Calendar review shows current attorney coverage for the selected location scope.
BR-CLM-LGL-037 Assignment result reporting keeps the latest result per case in scope¶
Field
Value
Statement
pk80005_assignment.get_assign_results reports only the latest assignment-result row per legal case for the requested sequence or date scope and separates assigned (CA, CAC) from non-assigned result rows.
Trigger
Assignment-process reporting requests a result feed.
Enforcement
WCIS_DBA.pk80005_assignment.get_assign_results
Outcome
Downstream reporting sees the terminal assignment outcome for each case instead of intermediate attempts.
Oracle source retrieval confirmed server-side rule logic in pk80001_legalnet and pk80005_assignment. The table below cross-links each extracted rule to the package page that documents the supporting PL/SQL.
Statements marked with * were inferred from code structure, naming conventions, or partial excerpt evidence where
direct confirmation was not available in source artifacts (per TSK004/TSK1B-002 confidence markers).
Statements marked with † were retrieved from dependency library documentation via the Legends CLI RAG service
(SAIF.Framework.Core base-class behavior), consistent with the inherited-content requirements for this library
(frameworkDensity = 96).
clsAttorneyConflict and clsAttorneyWorkerAssignment were confirmed to have empty AddBusinessRules() bodies —
no rules enforced beyond framework-level required-field/CRUD-failure handling.