Person Document Recognition — Electronic Military Registration Document
Overview
The Person Document Recognition feature supports importing data from the Electronic Military Registration Document (eVOD). In this scenario, the system uses Azure Content Understanding to recognize document fields and then additionally processes the embedded QR code when it is present in the analyzer result.
For the general Azure setup and the base recognition flow, see Person Document Recognition.
How eVOD import works
After the user uploads the document, the system runs two sequential stages:
- OCR recognition through Azure Content Understanding to extract visible document fields.
- Embedded QR processing when the analyzer returns the
QrCodefield.
This approach combines:
- the fields printed directly on the document;
- the military data available only inside the QR payload.
Prerequisites
This scenario requires:
- configured Azure Content Understanding;
- an eVOD analyzer created in Azure AI Foundry;
- analyzer assignment through the scenario or the person document type;
- populated master data used for value mapping.
Pay special attention to these directories and code tables:
- Personal Information Codes with group Military Rank;
- SMA Military Dismissal Reason;
- Personal Information Codes with group Militaty Duty Relation;
- General Directory with type Military Office;
- General Directory with type SMA Military Service Fitness.
If a required value is missing, some fields are skipped or the military-data update from QR stops with an error.
Configuring the analyzer for eVOD
Recommended field schema
Analyzer creation, model build, Business Central synchronization, and scenario assignment are already described in the base article Person Document Recognition. For eVOD, use a dedicated analyzer or a dedicated document type and add the eVOD-specific fields from the schema below.
Field names must match exactly.
| Field Name | Purpose | How it is used |
|---|---|---|
LastName | Last name | Used by the base person document recognition logic |
FirstName | First name | Used by the base person document recognition logic |
MiddleName | Middle name / patronymic | Used by the base person document recognition logic |
BirthDate | Birth date | Used by the base person document recognition logic |
ExpirationDate | Document expiration date | Used when saving the person document record |
PersonalNumber | Tax ID / RNOKPP | Used by the base person document recognition logic |
DocumentNumber | Document number / registry number | Imported into military data on the person card |
MilitaryRank | Military rank | Imported into the person card |
BocNumber | Military speciality number | Imported into the person card |
RemovalBasis | Basis for deregistration | Imported into the person card |
StatusServiceTitle | Current military registration status | Imported into the person card |
DisabilityGroup | Disability group | Imported into medical information |
DisabilityValidUntilDate | Disability valid until date | Imported into medical information |
DisabilityReason | Disability reason | Imported into medical information |
ResidenceAddress | Registered residence address | Imported into alternative address |
PhoneNumber | Phone number | Imported into the person card |
Email | Email address | Imported into the person card |
QrCode | Embedded QR code | Decoded separately to import military data |
The analyzer schema file may contain additional fields. The documentation below only covers the mappings that are currently implemented in application code.
What is imported from OCR and how it is processed
After the base document-recognition flow creates or updates the person, the system applies eVOD-specific fields.
| Analyzer field | Imported to | Processing logic |
|---|---|---|
MilitaryRank | Person.Military Rank | Looked up in Personal Information Codes with group Military Rank using partial matching |
DocumentNumber | Person.Military Registration No. | Direct value copy |
BocNumber | Person.Military Speciality No. | Direct value copy |
PhoneNumber | Person.Mobile Phone No. | Direct value copy |
Email | Person.E-Mail | Converted to lowercase before saving |
RemovalBasis | Person.Military Dismissal Reason Code | Looked up in SMA Military Dismissal Reason by exact, then partial description match |
StatusServiceTitle | Person.Other Service Status | Converted to the matching enum value |
DisabilityGroup | Person Medical Info | Creates or reuses a Disability entry |
DisabilityValidUntilDate | Person Medical Info.Ending Date | Saved as disability validity date |
DisabilityReason | Person Medical Info.Document Details | Saved as document details |
ResidenceAddress | Person Alternative Address | Creates a Registration address with code EVOD if one does not already exist |
StatusServiceTitle mapping
The StatusServiceTitle field is mapped by keyword:
уточнення→ Needs clarificationрозшук→ Wantedпорушен→ Violation of military registration rulesне знайдено→ Data not found in the registryбзвпorпідготовки→ Requires passing the BMT
If no keyword is recognized, Other Service Status remains blank.
Disability import
When DisabilityGroup is present, the system:
- resolves the disability group
1,2, or3; - reads
DisabilityReasonandDisabilityValidUntilDate; - creates a Person Medical Info entry of type Disability if an identical entry does not already exist.
If the validity date is already in the past, that date is also used as Starting Date. Otherwise, the current date is used.
Residence address import
When ResidenceAddress is recognized, the system creates a Person Alternative Address record with:
- Address Type =
Registration - Code =
EVOD - Valid from Date = current date
The address is only inserted if the person does not already have a registration-type alternative address.
What is imported from the embedded QR code
If the analyzer returns the QrCode field, the system decodes it and applies the same business logic as the standalone Reserve+ QR feature.
The QR payload can import:
- military status;
- military duty relation;
- reservist flag;
- military registration office;
- reservation or deferral status;
- deferral start and end dates;
- military service fitness;
- military medical commission date;
- military document type.
After QR processing, the system also sets Military Document = SMA Electronic Military Registration Document.
For the full QR processing logic, see Reserve+ QR Recognition.
Import logic details
Existing person lookup
The base person document recognition flow first looks for an existing person by:
- Tax ID / RNOKPP
- Birth Date
If a matching person is found, the system can update the existing record instead of creating a new one.
What happens when a directory value is missing
- if military rank or dismissal reason is not found, that field is skipped;
- if a required QR value cannot be matched in critical directories, the process stops with an error and the directory must be completed first.
Cleanup of placeholder values
Before mapping, the system trims extra spaces. If the recognized value is only - or —, it is treated as empty and not imported.
Testing recommendations
After the analyzer is configured, verify that:
MilitaryRank,DocumentNumber,BocNumber,StatusServiceTitle, andQrCodeare extracted consistently;RemovalBasis,tccName,accType, andvlkTypehave valid matches in your master data;- the QR code is successfully decoded and enriches the military data beyond the OCR-only fields.