
The ePIS system can be deployed in two primary configurations:
-
- Local Instances: Deployment within individual healthcare facilities for localized data management.
-
- Data Center: Centralized deployment within data centers for improved data accessibility and security.
Deployment Architecture
-
- System Architecture
-
- Presentation Layer
-
- System Architecture
This is the top layer of architecture. The topmost level of application is the user interface. It contains pages like web forms or HTML5 web pages where data is presented to the user and the user can take actions. The presentation layer is the most important because it is the one that the user sees, and a good UI attracts the user and this layer should be designed properly.
-
- Business Layer
This is the middle layer of architecture. This layer is split into two sublayers in modern software architecture practice. The first sub-layer is that of the API gateway which consists of a Gateway server that hosts the external/public-facing APIs that are consumed by the presentation layer which is both web and mobile apps. The second sub-layer consists of a Docker host that runs and hosts the various microservices (APIs) that are invoked by the API gateway server. This is done to achieve scalability and ensure API endpoints’ security. The second sub-layer has these microservices that communicate with each other using a service bus and not directly.
System Architecture
-
- Services Layer
Services layer consists of an API gateway that provides a gateway to the underlying microservices (service endpoints that are configured internally). Microservices are grouped usually as per business needs and isolation of the user base that the groups cater to.
System Service Layer
-
- Framework & Technology Stack
The technology stack chosen for the ePIS project includes the following:
-
- Nginx on Kubernetes Web Server
-
- Kubernetes
-
- Nginx on Kubernetes Web Server
Kubernetes (often shortened to K8s) is an open-source container orchestration platform that automates many of the manual processes involved in deploying, managing, and scaling containerized applications. Originally developed by Google, Kubernetes was donated to the Cloud Native Computing Foundation (CNCF) in 2015.
Kubernetes groups containers that make up an application into logical units for easy management and discovery. It handles tasks such as:
-
- Deployment: Kubernetes can automatically deploy new containers, replace existing ones, and scale containerized applications up or down as needed.
-
- Management: Kubernetes can manage the health of containers, restart failed containers, and schedule containers across a cluster of machines.
-
- Networking: Kubernetes can configure networking for containers, including load balancing and service discovery.
-
- Storage: Kubernetes can provision and manage storage for containers.
Kubernetes has a large and growing ecosystem of tools and plugins that can be used to extend its functionality. It is also supported by a variety of cloud providers, including Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform (GCP).
Benefits of using Kubernetes:
-
- Reduced operational overhead: Kubernetes can automate many of the manual tasks involved in managing containerized applications, which can free up developers and operations teams to focus on more strategic work.
-
- Increased application resilience: Kubernetes can automatically restart failed containers and reschedule them across a cluster of machines, which can help to ensure that applications are always available.
-
- Improved scalability: Kubernetes can easily scale containerized applications up or down as needed, which can help to meet changing demand without having to provision or decommission new hardware.
-
- Portability: Kubernetes can be deployed on-premises, in the cloud, or in a hybrid environment. This makes it a good choice for organizations that want to avoid vendor lock-in.
-
- Nginx
-
- Portability: Kubernetes can be deployed on-premises, in the cloud, or in a hybrid environment. This makes it a good choice for organizations that want to avoid vendor lock-in.
Nginx (pronounced “engine-ex”) is an open-source, high-performance web server and reverse proxy that is popular for its efficiency and scalability. It is commonly used as a load balancer, web server, proxy server, and reverse proxy server for HTTP, TCP, and UDP servers. Nginx is known for its low memory footprint and ability to handle high-traffic websites and applications.
Key features of Nginx:
-
- High performance: Nginx is known for its ability to handle high-traffic websites and applications with a low memory footprint.
-
- Scalability: Nginx can be easily scaled to handle increasing traffic loads by adding more servers to a cluster.
-
- Modular architecture: Nginx has a modular architecture that allows for easy customization and extension.
-
- Variety of supported protocols: Nginx supports a variety of protocols, including HTTP, HTTPS, SMTP, POP3, and IMAP.
-
- Wide range of features: Nginx offers a wide range of features, including load balancing, caching, and proxy support.
Overall, Nginx is a powerful and versatile tool that can be used for a variety of purposes. It is a popular choice for many organizations, including large enterprises and small businesses.
-
- DotNet 6 Framework:
DotNet (.NET) 6 is a free, cross-platform, and open-source developer platform that can be used to build many different types of applications. It is the latest version of the .NET Framework, which was first released in 2002. .NET 6 is a major update that includes several new features and improvements, such as:
-
- A unified runtime: .NET 6 now has a single runtime that can be used to run all .NET applications, regardless of whether they are desktop, web, or mobile applications. This makes it easier for developers to build and deploy applications that can run on a variety of platforms.
-
- Improved performance: .NET 6 is the fastest full-stack web framework, which lowers compute costs if you’re running in the cloud.
-
- New language features: C# 10, the latest version of the C# programming language, includes several new features that make it easier to write clean, maintainable code.
-
- Simplified development: Getting started with .NET 6 is easy. New language features in C# 10 reduce the amount of code you need to write. Investments in the web stack and minimal APIs make it easy to quickly write smaller, faster microservices.
-
- Better productivity: .NET 6 and Visual Studio 2022 provide hot reload, new git tooling, intelligent code editing, robust diagnostics and testing tools, and better team collaboration.
.NET 6 is a powerful and versatile tool that can be used to build a wide variety of applications. It is a good choice for developers who are looking for a modern, cross-platform, and open-source development platform.
Benefits of using .NET 6:
-
- Cross-platform: .NET 6 can be used to build applications that can run on Windows, macOS, and Linux.
-
- Open-source: .NET 6 is open-source, which means that it is free to use and modify.
-
- Large community: .NET has a large and active community of developers who can provide support and assistance.
-
- Rich ecosystem: A rich ecosystem of tools and libraries is available for .NET 6.
-
- PostgreSQL 15 DB
-
- Rich ecosystem: A rich ecosystem of tools and libraries is available for .NET 6.
PostgreSQL, often abbreviated as Postgres, is a powerful, open-source object-relational database management system (ORDBMS) known for its extensibility, reliability, and data integrity. It was initially developed at the University of California, Berkeley, in the 1980s and has been actively maintained and improved by a global community of developers ever since.
PostgreSQL distinguishes itself from other relational databases in several ways:
-
- Extensible Data Types: PostgreSQL allows users to define custom data types, enabling them to store and manipulate specialized data structures efficiently.
-
- Advanced Features: PostgreSQL supports a wide range of advanced features, including triggers, stored procedures, user-defined functions, and multiversion concurrency control, making it suitable for complex applications.
-
- Reliability and Conformance: PostgreSQL is known for its stability and adherence to SQL standards, ensuring data integrity and compatibility with other database systems.
-
- Open Source and Community: PostgreSQL’s open-source nature fosters innovation and collaboration, leading to continuous development and a vast repository of community-contributed extensions.
-
- Cross-Platform Support: PostgreSQL is compatible with various operating systems, including Linux, Windows, macOS, and FreeBSD, making it versatile for diverse deployment environments.
PostgreSQL 15 is the latest major release of the PostgreSQL open-source object-relational database management system (ORDBMS). It was released on October 13, 2022, and includes several new features and improvements, including:
-
- Support for the SQL MERGE command: The MERGE command is a powerful new feature that allows you to insert, update, and delete records in a single SQL statement. This can be a significant time-saver for complex data manipulation tasks.
-
- Selective publication of tables’ contents within logical replication publications: This new feature allows you to specify which columns and rows should be replicated when using logical replication. This can be used to reduce the amount of data that is replicated, which can improve performance and reduce storage costs.
-
- More options for compression: PostgreSQL 15 now supports the zstd and lz4 compression algorithms. This can be used to reduce the amount of disk space used by the database, which can improve performance.
-
- Support for structured server log output using the JSON format: This new feature allows you to log server events in the JSON format. This can make it easier to parse and analyze server logs.
-
- Performance improvements: PostgreSQL 15 includes several performance improvements, particularly for in-memory and on-disk sorting.
System Microservice Architecture
The system development was to be carried out using agile methodology and microservice architecture.
Scrum Framework



Leave a Reply