SAIF.Services.Imaging.Import architecture¶
SAIF.Services.Imaging.Import is a shared contract / data-transfer library that defines the imaging-import
index vocabulary — document types, sub-types, and the full index field set (claim, policy, legal case,
task-routing, and document-classification fields) — and produces the canonical KEY=value wire representation of
that data for the downstream OnBase imaging import / xPresso document-distribution process. The library contains a
single serializable class, clsImageImport, and carries no business logic beyond output shaping.*
Responsibilities¶
- Define the imaging-import index vocabulary via public constants (
OnBaseType*,OnBaseSubType*) and theclsImageImportproperty set. - Hold caller-populated index metadata spanning claim, policy, agency/group, legal, and task-routing domains.
- Serialize populated metadata into a newline-delimited
KEY=valueblock viaToString(), applying the field emission rulesBR-IMG-001throughBR-IMG-007. - Supply construction-time defaults (
BR-IMG-008) so callers that set only claim/document identifiers still produce a valid, indexable claim-file import request.*
Component boundaries¶
clsImageImport(data-transfer type): the sole component in the library. It owns the field vocabulary and the serialization contract; it performs no I/O and has no outbound coupling to other repository projects or external services.*- Transport boundary (owned outside this library): the
ToString()output is the integration contract with the OnBase imaging import / xPresso distribution process. All transport — MSMQBinaryMessageFormattermessage construction or thedistributeDocumentxPresso web-service call — is owned bySAIF.Services.Printing/clsPrint.vb, not by this library.*
Interaction model¶
- A consumer (
clsPrint.ImportInfoinSAIF.Services.Printing) lazily instantiatesclsImageImport, letting the property initializers apply theBR-IMG-008defaults, and returns the instance for the caller to populate. - The consumer reads
clsImageImport.ToString()(viaclsPrint.ImportInfoString) to obtain the serializedKEY=valueblock, then either attaches the instance toPrintRequest.Importinfofor MSMQ delivery or passes the serialized string to the xPressodistributeDocumentweb-service call. LegalMaintenance/LegalMaintenance.vbprojholds a<ProjectReference>to this library so the assembly is deployed alongside theSAIF.Services.Printingchain, but no.vb/.aspxfile in the web project referencesclsImageImportby name.*- The
<Serializable()>attribute onclsImageImportmakes binary MSMQ round-tripping an implicit versioning constraint: adding or renaming fields changes both the binary payload and theKEY=valuetext contract.*
Architecture diagram¶
The following diagram shows how this library's data-transfer type is populated and consumed by the printing service before reaching the imaging/distribution destinations.
flowchart TD
A["LegalMaintenance web<br>application"] --> B["SAIF.Services.Printing -<br>clsPrint"]
B --> C["SAIF.Services.Imaging.Import<br>- clsImageImport"]
C -->|ToString KEY=value block| B
B -->|MSMQ BinaryMessageFormatter| D["MSMQ print/distribution<br>queue"]
B -->|distributeDocument call| E[xPresso web service]
Sequence diagram¶
The following diagram shows the primary request/response sequence for producing the imaging-import wire representation.
sequenceDiagram
participant Consumer as clsPrint (SAIF.Services.Printing)
participant Descriptor as clsImageImport
participant Xpresso as xPresso web service
Consumer->>Descriptor: New clsImageImport (defaults applied, BR-IMG-008)
Consumer->>Descriptor: set property values (claim/policy/legal/task fields)
Consumer->>Descriptor: ToString()
Descriptor-->>Consumer: KEY=value block (BR-IMG-001..BR-IMG-007 applied)
Consumer->>Xpresso: distributeDocument(ImportInfoString)
Xpresso-->>Consumer: distribution result
Design constraints¶
- No exception handling, validation, or null guards exist in
ToString();Nothing-valued string properties append as empty text and there is no failure path.* - The emitted key order is fixed and not alphabetical (e.g.,
SLevelis emitted afterReceivedDate); consumers and downstream imaging configuration must treat the order as part of the contract.* - The field set spans multiple domains (claim, policy, agency/group, legal, task) accreted over time (in-source comments span 2007–2018) rather than being modelled into sub-objects.*
- The library depends solely on
System/Microsoft.VisualBasicBCL intrinsics; declared NuGet packages (SAIF.BOF.Framework,SAIF.Framework.Common,SAIF.HashUtil,SAIF.Web.API.Clients,Oracle.ManagedDataAccess,Newtonsoft.Json,RestSharp, and related transitive packages) are inherited, solution-uniform references not used by the compiled source.*
Related documentation¶
Sources¶
- SAIF.Services.Imaging.Import/clsImageImport.vb
- SAIF.Services.Imaging.Import/SAIF.Services.Imaging.Import.vbproj
- SAIF.Services.Imaging.Import/AssemblyInfo.vb
- SAIF.Services.Imaging.Import/packages.config
- SAIF.Services.Imaging.Import/App.config
- SAIF.Services.Imaging.Import/Web.config
- SAIF.Services.Imaging.Import/SAIF.Services.Imaging.Import.vbproj
- SAIF.Services.Printing/clsPrint.vb
- LegalMaintenance/LegalMaintenance.vbproj