In our last project for a medical certifying board, one of the challenges was to design a replacement for the legacy code that tracked the activities candidates were required to successfully perform to become certified. Certification related activities included many types, including: Training, Examinations Surveys, CME credits, attestations, work history and references. There are different specialty certifications and cohorts (a group of candidates during a specific time frame), each with a different set of rules and activity types. The challenge was to support individual rule sets depending on a specialty and a cohort AND to be maintainable over time.
We proposed a configurable rules engine that would be able to abstract the certification activities and store the rules as CRM data rather than code, using the data parameters to define specific requirements, time frames, prerequisites and the like. After
By the time the project was finished, we built three different engines: Training, Certification and Recertification using Microsoft Dynamics CRM as the data repository. Each engine handles different kind of activities, supports multiple rule sets and versioning.
This was accomplished using Dynamics CRM C# plug-ins that are designed to fire on specific status of Certification activity records and apply the rules to the new activity and update the certification status. This is much easier to write about than to accomplish; the engines were built over a 3 year period.
Just as the first engine was initially delivered, an unexpected rule change was required. The new rule change was able to be configured quickly, so quickly that it was apparent that the new rules engine was indeed up to the challenge. No programming changes were needed and the board users were pleased. This validated our design, and we proceeded to design and build the other two engines.
Mind you, some new rules do require programming. You can only build in so much at a time, but programming maintenance was reduced significantly. All three engines are now running in production successfully.
Here is an example of a certification status from the Training Rules Engine:
Here are some of the training rules:
For more information on our rules engine designs, please contact us via the contact page at http://www.bizitpro.com/index.php/about-us/contact-us
Stephen V Noe