Let’s say you are tasked with modernizing an age old payer system with no documentation and it is business critical, with hundreds and thousands of lines of code: where would you start? Evaluation of technology stack, infrastructure, assessing the skill sets available, cost, etc. are all part of standard operating procedure, but we’ll save that for another day. The challenge is to rewrite an existing business critical healthcare application, or service-level agreement, with all the foundation necessary to make it a highly scalable system built on concepts of BPM, BRMS and SOA. One approach would be to start with the data model and then build the application model around it. Though this approach is typical, this would lead in to the classical impedance mismatch problem, compromising the domain integrity in very early stages of development. It would be almost impossible to back track from this though you are only halfway in to the development.
Starting with your domain model simplifies the approach for building a state of art system with a solid framework. For example, in a payer benefit system you would:
- Define your business entities like benefits, copay, coinsurance etc.
- Determine if there are similarities abstract the concepts in to more generic structures. Service would be generic structure representing ER and office visit
- Add attributes to the entities
- Define relationships between entities
Remember, you are only conceptualizing based on business entities and not letting the relational or object framework dictate your business model. Now you can build your object or data model based on conceptual model. Though this seems very straight forward and SOP it is not. One would need a strong domain SME who could articulate the domain as well as perform domain analysis of the business rules that have been built over decades. If you have a strong domain model to start with, technology or the architecture approach will not make you to go back to the drawing board. The concept of a copay will remain copay forever, irrespective of SOA or *OA, 5010, ICD-10 or HL7. Let’s get the basics right and be nimble …start with the domain!
What processes have you found to be successful? How have you improved your healthcare domain model?