This page lists every business rule found on the execution paths of the ClaimBillEntry screens. 13 rules originate in the application's own screens, controllers and client scripts. A further 20 rules are sourced from the consumed SAIF.SAIFCode.Core package (contract surface and its bundled SAIF.Services implementation assembly), SAIF.Framework.Common, and SAIF.Framework.Data.NHibernate — reachable through service calls from ClaimBillEntry's controllers and resolved via the Legends CLI library package-context queries.
Unit-of-work and repository lifecycle rules, defined below
Stored procedure rules
0
No database analysis exists for this run
Inherited rules
0
No inherited rule IDs are cataloged here; SaifAuthorizeAttribute's role-based authorization behavior is now documented via the Legends CLI† in Request pipeline and composition, while ClaimControllerBase.CheckSecurity internals remain untraced beyond its call site**
Total
33
SaifAuthorizeAttribute's role-based authorization behavior (its declared-role check, IUserProfileService/ILogService/IEnvironmentService requirements and its SecurityException-and-redirect denial path) is documented via the Legends CLI† in Request pipeline and composition. ClaimControllerBase.CheckSecurity internals beyond its call site remain untraced**; the CORE-BR-* and SVC-BR-* rules below document the status-gate and validation behavior of the bill services and validators that were reached and queried, so this is no longer a blanket "service implementations untraced" statement — see Security and authorization for the authorization-architecture view of these same packages.
None identified. The 13 original application-local rules are all expressed on individual screens; none of them are cross-cutting at application level. The 20 package/framework rules below originate in the consumed packages, not on individual screens, and are catalogued separately in Package and framework business rules.
Related package rule: the full two-resource ClaimSecurityService formula this rule's ConflictClaim half is drawn from is defined in SVC-BR-SEC-01 below.
Related package rule: the charged-total value compared here is computed by SVC-BR-SVCLINE-02 below. Submit is also gated server-side by SVC-BR-BILL-03 below, which independently requires a service line (among other fields) before submit.
BR-SCR-005 Status becomes entered only on error-free submit¶
Field
Value
Statement
The bill status is set to entered (ENT) only when the submit call returns no errors.
Trigger
Entry/SubmitBill runs.
Enforcement
Server: SubmitBill then UpdateBillStatus to ENT.
Outcome
Status ENT, or the errors are returned to the screen
A search runs only when at least one of bill id, tax id, provider id, SSN, claim number or received date is supplied; status or type alone is not enough.
Trigger
The user submits a search.
Enforcement
Server: SearchController.GetBills.
Outcome
An input-error message when ApplyValidation is set; otherwise no query runs
20 rules are sourced from the consumed SAIF.SAIFCode.Core package, its bundled SAIF.Services implementation assembly, SAIF.Framework.Common, and SAIF.Framework.Data.NHibernate. None of the IDs below collide with BR-SCR-001 through BR-SCR-013; the screen rules above are unaffected by this section. Each rule has its own H2 definition below; the tables that open each subsection are linked navigation indexes only, not the rule's definition. Where a package rule is the server-side counterpart of a screen-level pre-check, a Related rule line under its H2 definition cross-references the BR-SCR-* entry, and a matching Related package rule line was added under the relevant BR-SCR-* entry above; the corresponding BR-SCR-* heading, ID, and wording are unchanged.
Related rule: server-enforced counterpart of the client-only BR-SCR-007 (bill type numeric) and BR-SCR-008 (admit type).
SVC-BR-BILL-02 Bill save claim and concurrency validation¶
Field
Value
Statement
The claim number must be valid, the received date must fall within the allowed range, and optimistic concurrency is enforced on an UpdateNumber mismatch.†
Trigger
A bill is saved or submitted.
Enforcement
SAIF.ServicesBillValidator/BillEntryService.
Outcome
Save or submit fails with a validation or concurrency error when a constraint is violated.
SVC-BR-DX-02 Duplicate diagnosis handling by bill type¶
Field
Value
Statement
Duplicate diagnosis handling varies by bill type: standard bills reject duplicate codes, inpatient/outpatient bills reject duplicate code+type pairs, and an unknown bill type is an error.†
Trigger
A diagnosis row is created or updated in the diagnosis grid.
Enforcement
SAIF.ServicesBillDiagnosisService.
Outcome
The grid operation fails when the applicable duplicate rule for the bill type is violated.
ProviderServiceCode is required (≤11 chars); SecondaryProvServiceCode is ≤11 chars; diagnosis pointers 1-4 are ≤1 char each and unique; ServiceDate is ≤30 days in the future; EndDate is on or after the service date; DAW is length 1; PrescribingProviderId is ≤10 chars.†
Trigger
A service line row is created or updated in the service grid.
Enforcement
SAIF.ServicesBillServiceValidator.
Outcome
The grid operation fails with a validation error when a constraint is violated.
Provider lookup requires a TIN; the provider must exist for that TIN; a valid provider location is required for rendering-provider lookup; the billing provider name is required for authorization items.†
Trigger
A provider is looked up by TIN or a billing provider is requested.
Enforcement
SAIF.Services bill workflow provider validation; no single named class is cited in the retrieved evidence.
Outcome
The lookup fails with a validation error when a constraint is violated.
A user opens a bill, or the base controller evaluates claim security.
Enforcement
SAIF.ServicesClaimSecurityService.
Outcome
BaseController.CheckSecurity proves consumption of the HasConflictAccess half only; EntryController.GetBill does not read this flag — it performs an independent local conflict-claim check instead (see Reached from). See Security and authorization for what is and is not proven consumed.
BaseController.CheckSecurity → access.HasConflictAccess (ClaimControllerBase ctor → IClaimSecurityService); separately, EntryController.GetBill → UserHasAccessToClaim → IClaimInformationService.GetClaimSecurity().IsConflictClaim + IsAuthorized("ConflictClaim"), an independent local check that does not consume this computed flag
Related rule: this is the full two-resource source rule behind BR-SCR-002, which documents the ConflictClaim half only; no dedicated BR-SCR-* screen rule currently documents the SecureClaim half.
SAIF.Framework.Common and SAIF.Framework.Data.NHibernate rules¶
The mapped boolean property (e.g. CompoundDrugFlag) is rendered as a Y/N flag string for the destination DTO; this conversion is independent of any other AutoMapper mapping in AutoMapperBootStrapper.
No dedicated NoteService note-validation rule was found in the recovered SAIF.Services evidence, beyond NoteService managing bill notes generally.† This is carried forward as a documented evidence gap — it is not assigned a rule ID and is not counted in the 20-rule package/framework total above.
Seven referenced SAIF packages (SAIF.Framework.Common.Files, SAIF.DocumentManagement, SAIF.HashUtil, SAIF.Shared.CompareUtilities, SAIF.Web.API.Clients, LegalApi.Client, PdfAPI.Client) are not consumed directly by compiled source in this repository
Not traced**
They can be reached only transitively through other packages; whether any rule in them runs for this application was not traced, so it is unknown** rather than proven unreachable
Note: Statements marked with † are derived from dependency library
documentation via the Legends CLI. Statements marked with * were inferred
from code structure or contextual evidence. Statements marked with ** could
not be confirmed; treat as unknown until verified.