Enterprise level Health IT systems does require proper planning for their application architecture. A robust architecture is considered to be a back bone of the whole Health IT system. If we have scale-able and loosely coupled Health IT applications architecture, then future expansion and enhancements are easy to handle, otherwise it’s a big hell for the development team.
As per our decent Health IT enterprise systems development experience we would suggest some nice and elegant application architecture for the technical audience involves in Health IT software development. It’s our time tested architecture that we used in our past endeavor Hospital Management System.
This article depict the complete architecture of the REST API, which includes technologies, design patterns, security mechanisms and implementation details of the both components (REST API and Front end).
Health IT Applications Architecture
Tools and Technologies
- Database Tools
- SQL Server 2012/2014/2016.
- Development Tools & Technologies
- NET 4.6
- .NET Framework 4.6
- WEB API 2.x
- MVC 5.0
- OData V4.0
- Programming Languages
- C# 6.0
- LINQ to SQL/EF6.x
- Unit Of Work (UOW)
- Factory Design Pattern (Data Factories, Domain Factories, Controller Factories, Repository Factories, UOW Factories)
- Data Layer
- Domain Layer/Business Layer
- Service Layer
- Presentation Layer
- Cross Cutting Layer
- Helper Tools
- LINQ to JSON
- Macro Architecture Diagram
- Micro Architecture Diagram
Health IT Applications Architecture Layers Details
|1) Cross-Cutting Layer is responsible to provide core functionalities to all the layers which includes utility classes, helper classes, and enumerations for various functionalities. This layer is also responsible to create different layer objects via factories of objects.|
|2) Infrastructure Layer is responsible to provide core functionalities which includes database operations, data repositories management and transaction management via unit of work design pattern.|
|3) Domain Layer is responsible to provide core functionalities related to all business rules implementation along with all validations on data entities.|
|4) Application Layer is responsible to provide core functionalities related to web API calls and provides complete interface to communicate with the presentation layer. This layer depends on independent DTO’s.|
|5) Presentation Layer is responsible to take input from the user and provides as a main entry point for database transactions via all mentioned above layers. Presentation layer may have the following flavors.
a) IOS App
b) Android App
c) Web Application
d) Windows App
e) Share point App
f) Dynamics CRM
g) Any 3rd Party App in any technology that is able to consume JSON.
|Sub System Details|
|1) Cross-Cutting Layer provides the following sub systems.
a) Core sub system
b) Factory sub system
|2) Infrastructure Layer provides the following sub systems.
a) Data sub system (Entity Framework 6.x)
b) Repository sub system (Repository Pattern Implementation)
c) UoW sub system (Unit of Work Pattern Implementation)
|3) Domain Layer provides the following sub systems.
a) Domain Model sub system (Business Model)
b) Domain Service sub system (Business Service for implementing the business rules on Business Models)
|4) Application Layer provides the following sub systems.
a) Data Model sub system
b) Web API sub system
Following flow depict the communication between Front end and REST API based Health IT Applications Architecture.
Front end can initiate calls for REST API using the following ways.
- JQUERY AJAX calls
- XMLHTTP calls from C#
REST API Security
Following describes the Authentication and Authorization mechanism for the REST API.
- Every call will use the token based authentication mechanism.
- Passwords would be encrypted using AES encryption.