This document describes the user-facing functionality and operating concept of EMVS Simulation Lab.
The application is a WPF desktop simulation for selected EMVS-style pharmaceutical verification workflows. It is intended for local learning, workflow modeling, and portfolio documentation. It does not connect to a real EMVS or NMVS system.
The application is organized around workflow tabs. Each tab represents one step of an EMVS-style process.
Users can enter product data, create serialized pack data, verify packs, update pack states, inspect persisted data, and review the simulation history.
The application uses validation indicators next to input fields. Valid inputs are marked with OK. Operations write a result to the shared simulation history.
The Product Master Data workflow creates product-level information and validates the entered data.
Typical input:
- product code
- product code scheme
- name
- pharmaceutical form
- strength
- doses per pack
- pack type
- effective date
- target market
- whitelist flag
This workflow must usually be completed before pack data can be created for the same product.
The Product Pack Data workflow creates serialized pack information for an existing product.
Typical input:
- product code
- product code scheme
- batch ID
- expiry date
- doses per pack
- serial number
The created data can later be used by pack verification and pack state update workflows.
The Pack Verification workflow simulates checking a serialized pack.
Typical input:
- product code
- batch ID
- expiry date
- serial number
The result shows whether the pack is available or whether an EMVS-style business error occurred.
The Pack State Update workflow simulates changing the state of a pack.
Typical input:
- product code
- product code scheme
- batch ID
- expiry date
- serial number
- initial state
- new state
The operation records a success or failure result in the simulation history.
The Database Overview provides a read-only inspection view over the configured persistence store.
It can show:
- products
- target markets
- batches
- packs
- operation logs
This view is useful for checking whether simulated workflows wrote the expected data.
The Simulation History is shared across the workflow tabs.
It records:
- operation time
- operation name
- request summary
- response summary
- success status
The history helps trace the order of simulated actions and verify that the workflows behave as expected.
The application supports multiple persistence modes.
JSON persistence is the default mode. It works without Oracle and is suitable for local demo usage.
Data is stored in the current user's application data folder:
%APPDATA%\EmvsSimulationLab\emvs-data.json
Oracle persistence is optional and intended for local database-backed testing.
Oracle configuration should be kept in a non-committed appsettings.Local.json file. Real credentials, host names, service names, and local connection strings must not be committed.
When Oracle persistence is enabled, the application initializes the required tables automatically if they do not exist yet.
In-memory persistence can be used as a fallback or lightweight development mode. Data is not retained after the application exits.
A typical end-to-end scenario is:
- Create product master data.
- Create product pack data for the same product.
- Verify the created pack.
- Update the pack state.
- Open Database Overview and refresh the data.
- Review Simulation History.
- Restart the application.
- Verify that data is still available when JSON or Oracle persistence is used.
- The application does not connect to a real EMVS or NMVS system.
- SOAP/XML files are documentation and learning samples.
- Error codes and operation responses are simulated.
- The UI is a desktop practice project, not a production pharmaceutical verification client.




