The Organisation
EUROPEAN MEDICINES VERIFICATION SYSTEM (EMVS)
The European Parliament and Council released a Directive on Falsified Medicine. It aims at improving patient safety by mandating the Marketing Authorisation Holders and manufacturers to put a system in place that is preventing falsified medicines from entering the legal supply chain, the European Medicines Verification System. The European Medicines Verification System (EMVS) should guarantee medicines authenticity by an end-to-end verification.
The Antidote
EMVS REQUIREMENTS
In essence, manufacturers will be required to print a Data Matrix code, which incorporates a unique identifier (UI) and apply an anti-tampering device on the outer packaging of all medicines for each individual sales package.
At the point of dispense the medicine will be scanned, checked and verified for authenticity against a national (or supranational) repository. If the UI on the pack matches the information in the repository, the pack is decommissioned and supplied to the patient. Otherwise, if there is a warning related to this pack, then the system will highlight this as an exceptional event and the package will not be supplied to the patient. An investigation needs to determine whether the pack has been falsified or not.
The Challenge
After some initial prototyping and an attempt at using the Windows Workflow Foundation to provide the engine capabilities, a number of requirements could not be met so a bespoke solution would need to be developed.
Additionally an instrumentation solution for auditing and logging across the entire service architecture needed to be developed.
THE SOLUTION
The solution made extensive use of Azure Service Bus, Topics and Queues, Worker roles and a bespoke Workflow Engine along with semantic logging.

The workflow engine
Assemblysoft worked alongside the internal development team and Microsoft consultants to design and build a bespoke Workflow Engine that would run in Microsoft Azure. Having previous experience developing with the Windows Workflow Foundation, we were able to model and apply some best practices to the new engine.
The engine was dynamic and fluid in nature to cater for the amount of different paths into the system and dynamic decisions that would be required based on the characteristics of each request. It proved a big hit with the developers that worked against the design of the coded workflows with 6 sub teams developing individual complex workflows using the model workflow developed to demonstrate typical use-cases.
The instrumentation
Once the core workflow engine development was complete, we turned our attention to the auditing and logging. We utilised a Semantic Logging solution based on the enterprise nature that enabled us to provide custom event sources and schematic data to model the different layers in the application.

ADDED VALUE
- Delivery : We delivered on time
- Flexibility : The workflow engine covered all the use cases
- Performance: Tests conducted with several billion records
- Cross cutting and consistent Logging and Auditing insights across all teams and application services
Reference
https://www.codeproject.com/articles/602077/instrumentationpluswithplussemanticplusloggingplus