Overview
Product: Kodak Info Input Solution (KII / ImageTrust) with IDP as a Service extraction
Customer: Commonwealth of Massachusetts, State Treasury
Document class: MST - Check Run
Hosted On: KDK-VRC
Summary
The MST check capture workflow turns scanned Massachusetts Treasury checks into searchable records in DocStar. Each scanned check page has a remittance stub on top and the check face below. The workflow reads the key data from the page, cleans and validates it, and sends any check with a problem to an operator for correction. Checks that pass validation are exported automatically as a PDF with a matching data file.
What the workflow captures
Each check produces 12 index fields.
| Field | What it is | How it is filled |
|---|---|---|
| CheckNumber | Check number from the stub and the check face (for example 0005883551) | OCR |
| VendorCustomerID | VC followed by digits (for example VC0001248197) | OCR |
| CheckDate | Check date, formatted MM/DD/YYYY | OCR |
| CheckAmount | Amount with two decimals (for example 1379.91) | OCR |
| VendorName | Payee on the "To the order of" line | OCR |
| Department | Department listed on the remittance stub | OCR |
| BankName | Bank printed on the check face | OCR |
| ScannedDate | Date the batch was created | Stamped by script |
| PaymentPreference | Always Check | Stamped by script |
| DocumentID | KII's internal document ID, used to name the exported files | Stamped by script |
| BatchID | Batch the check came from, kept for traceability and hidden from operators | Stamped by script |
| ValidationMessage | OK, or a list of what is wrong | Set by validation |
How it works
- Scan or import Each check page becomes one document. There is no classification step because there is only one form type. We currently accept their files over FTP transfer.
- Intelligent OCR The IDP service answers a short question for each field, such as "What is the check number printed on the check face?". Answers with confidence below 75% are not posted.
- Server Script (stamp and validate) The script fills in the stamped fields and cleans the captured values. Dates become
MM/DD/YYYYand amounts become two decimals. It then checks the five required fields and setsValidationMessage. - Routing
ValidationMessageis OK: the check goes straight to export.ValidationMessageis anything else: the check goes to the validation station with the problem fields already flagged for review.
- Export Each passing check is released as a pair of files named after its DocumentID:
{DocumentID}.pdf, the check image{DocumentID}.xml, the index data in imagetrust-release format, which a DocStar-watched folder picks up- An optional
{DocumentID}.csv(13 columns, one row per check) is also available through the CSV Disk Release template.
Validation rules
A check stops at the validation station if any of the following is true.
| Rule | Blocks the check? |
|---|---|
| CheckNumber, VendorCustomerID, CheckDate, CheckAmount, or VendorName is empty | Yes |
| CheckNumber is not 4 to 12 digits | Yes |
VendorCustomerID does not match VC plus 8 to 12 digits | Yes |
CheckDate is not MM/DD/YYYY | Yes |
| CheckAmount is not a number with two decimals | Yes |
| Department or BankName is empty | No. A note is logged and the check still exports. |
For operators: fixing a flagged check
- Open the check at the validation station.
- Read Validation Message. It names each problem, for example
Missing VendorName; Bad Check Date [3/27]. - Correct the flagged fields against the image. Fields marked for review are highlighted.
- Do not edit the read-only fields (ScannedDate, PaymentPreference, DocumentID, Validation Message). The scripts own them.
- Release the document. Validation runs again before export.
Important for maintainers
- The site's Global Script is read-only. It is a shared Geiger-based framework. All MST logic lives in the Intelligent OCR, Server Script, and XML Export scripts.
- Every local helper function starts with
MST_. This keeps MST code from colliding with functions in the Global Script. Keep the prefix on anything you add. - Avoid the SQL-dependent global helpers. These are
FormatDate,IsDateValidationRequired,SQLRunQuery,DocumentFieldsCapture, andDocumentFieldsValidation. They query a Geiger staging database that this site does not have. MST normalizes dates itself inMST_FormatDateMDY. - All index fields are Text. Even the date and amount fields are Text, which keeps the SQL-dependent code paths unused. If DocStar needs true date or decimal types, convert them on the DocStar side.
- Mappings carry no transformations. All cleanup lives in the scripts so there is one place to maintain it.
Last updated: 2026-10-05. Source: project README and scripts (drafted 2026-07-15).