Compare commits
2 Commits
f8ef40a908
...
5418b0fd6f
| Author | SHA1 | Date | |
|---|---|---|---|
| 5418b0fd6f | |||
| b10ee9f201 |
370
.Net Capstone PPT/README.md
Normal file
370
.Net Capstone PPT/README.md
Normal file
@ -0,0 +1,370 @@
|
|||||||
|
# Intelligent Healthcare Data Interoperability Platform Using SMART on FHIR, Medplum, .NET and AWS
|
||||||
|
|
||||||
|
## FHIR Academy Capstone Project
|
||||||
|
|
||||||
|
### Author
|
||||||
|
Himanshu Agrawal
|
||||||
|
|
||||||
|
### Organization
|
||||||
|
CitiusTech
|
||||||
|
|
||||||
|
### Program
|
||||||
|
FHIR Academy Capstone Project
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Executive Summary
|
||||||
|
|
||||||
|
Healthcare organizations rely on multiple Electronic Health Record (EHR) systems to manage patient information. While these systems contain critical clinical data, the lack of interoperability between healthcare applications often leads to fragmented patient information, delayed decision-making, and operational inefficiencies.
|
||||||
|
|
||||||
|
This project presents a cloud-native Healthcare Data Interoperability Platform that leverages SMART on FHIR standards, Medplum FHIR Server, .NET 8 microservices, React-based user interfaces, and AWS cloud services to provide secure, scalable, and standardized healthcare data exchange.
|
||||||
|
|
||||||
|
The platform enables clinicians and healthcare organizations to retrieve patient healthcare information from SMART on FHIR-enabled EHR systems, validate and normalize healthcare resources, synchronize data into Medplum, and provide a centralized, secure, and scalable patient data platform.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Project Vision
|
||||||
|
|
||||||
|
To build a modern healthcare interoperability platform that enables seamless exchange, validation, and management of clinical data across healthcare systems using FHIR standards and cloud-native technologies.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Project Objectives
|
||||||
|
|
||||||
|
## Primary Objectives
|
||||||
|
|
||||||
|
### Healthcare Interoperability
|
||||||
|
|
||||||
|
Enable seamless healthcare data exchange using FHIR R4 standards.
|
||||||
|
|
||||||
|
### SMART on FHIR Integration
|
||||||
|
|
||||||
|
Develop a SMART on FHIR application capable of securely launching within EHR workflows.
|
||||||
|
|
||||||
|
### Data Standardization
|
||||||
|
|
||||||
|
Validate and normalize healthcare resources before persistence.
|
||||||
|
|
||||||
|
### Centralized Data Platform
|
||||||
|
|
||||||
|
Synchronize healthcare data to Medplum FHIR Server.
|
||||||
|
|
||||||
|
### Secure Cloud Architecture
|
||||||
|
|
||||||
|
Deploy the platform using AWS cloud services.
|
||||||
|
|
||||||
|
### Scalable Infrastructure
|
||||||
|
|
||||||
|
Support future expansion and integration with additional healthcare systems.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Business Problem
|
||||||
|
|
||||||
|
Healthcare organizations face several challenges:
|
||||||
|
|
||||||
|
## Fragmented Patient Data
|
||||||
|
|
||||||
|
Patient information is distributed across multiple healthcare systems, making it difficult to obtain a complete view of patient health.
|
||||||
|
|
||||||
|
## Limited Interoperability
|
||||||
|
|
||||||
|
Different EHR vendors implement healthcare standards differently, resulting in integration challenges.
|
||||||
|
|
||||||
|
## Data Quality Issues
|
||||||
|
|
||||||
|
Incoming healthcare data may contain validation errors, missing fields, or inconsistent coding systems.
|
||||||
|
|
||||||
|
## Security and Compliance Requirements
|
||||||
|
|
||||||
|
Healthcare applications must securely manage sensitive patient information and comply with industry regulations.
|
||||||
|
|
||||||
|
## Scalability Challenges
|
||||||
|
|
||||||
|
Traditional healthcare systems often struggle to scale efficiently as the volume of patient data grows.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Proposed Solution
|
||||||
|
|
||||||
|
The Intelligent Healthcare Data Interoperability Platform addresses these challenges by introducing:
|
||||||
|
|
||||||
|
- SMART on FHIR-based authentication and authorization
|
||||||
|
- Real-time patient data retrieval
|
||||||
|
- Automated FHIR resource validation
|
||||||
|
- Data normalization services
|
||||||
|
- Medplum FHIR Server integration
|
||||||
|
- AWS-hosted cloud architecture
|
||||||
|
- Secure OAuth 2.0 authentication
|
||||||
|
- Audit logging and monitoring services
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Solution Architecture
|
||||||
|
|
||||||
|
## Core Components
|
||||||
|
|
||||||
|
### SMART on FHIR Application
|
||||||
|
|
||||||
|
Provides clinicians with access to patient healthcare information directly from EHR systems.
|
||||||
|
|
||||||
|
### Backend API Services
|
||||||
|
|
||||||
|
Developed using .NET 8 to process, validate, and synchronize healthcare resources.
|
||||||
|
|
||||||
|
### Validation Engine
|
||||||
|
|
||||||
|
Performs healthcare resource validation and normalization.
|
||||||
|
|
||||||
|
### Medplum FHIR Server
|
||||||
|
|
||||||
|
Serves as the centralized FHIR repository.
|
||||||
|
|
||||||
|
### PostgreSQL Database
|
||||||
|
|
||||||
|
Stores healthcare resource data and application metadata.
|
||||||
|
|
||||||
|
### AWS Cloud Infrastructure
|
||||||
|
|
||||||
|
Provides scalable hosting, monitoring, and security.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Functional Scope
|
||||||
|
|
||||||
|
## Supported Resources
|
||||||
|
|
||||||
|
The platform supports synchronization and management of:
|
||||||
|
|
||||||
|
- Patient
|
||||||
|
- Observation
|
||||||
|
- Encounter
|
||||||
|
- Condition
|
||||||
|
- AllergyIntolerance
|
||||||
|
- Procedure
|
||||||
|
- MedicationRequest
|
||||||
|
- Immunization
|
||||||
|
- Practitioner
|
||||||
|
- Organization
|
||||||
|
- DiagnosticReport
|
||||||
|
- CarePlan
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# End-to-End Workflow
|
||||||
|
|
||||||
|
## Step 1
|
||||||
|
|
||||||
|
Clinician launches SMART on FHIR application from EHR.
|
||||||
|
|
||||||
|
## Step 2
|
||||||
|
|
||||||
|
OAuth 2.0 Authorization Code Flow is initiated.
|
||||||
|
|
||||||
|
## Step 3
|
||||||
|
|
||||||
|
Access token is issued by the EHR authorization server.
|
||||||
|
|
||||||
|
## Step 4
|
||||||
|
|
||||||
|
FHIR resources are retrieved.
|
||||||
|
|
||||||
|
## Step 5
|
||||||
|
|
||||||
|
Resources are validated against predefined rules.
|
||||||
|
|
||||||
|
## Step 6
|
||||||
|
|
||||||
|
Normalization engine corrects allowed field discrepancies.
|
||||||
|
|
||||||
|
## Step 7
|
||||||
|
|
||||||
|
Validated resources are synchronized into Medplum.
|
||||||
|
|
||||||
|
## Step 8
|
||||||
|
|
||||||
|
Audit records are generated.
|
||||||
|
|
||||||
|
## Step 9
|
||||||
|
|
||||||
|
Resources become available for downstream healthcare applications.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Validation Engine
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
To ensure healthcare data quality before storage.
|
||||||
|
|
||||||
|
## Validation Rules
|
||||||
|
|
||||||
|
### Patient Validation
|
||||||
|
|
||||||
|
- Gender validation
|
||||||
|
- Birth date validation
|
||||||
|
- Identifier validation
|
||||||
|
- Name validation
|
||||||
|
|
||||||
|
### Observation Validation
|
||||||
|
|
||||||
|
- Status validation
|
||||||
|
- Code validation
|
||||||
|
- Subject validation
|
||||||
|
|
||||||
|
### Condition Validation
|
||||||
|
|
||||||
|
- Clinical status validation
|
||||||
|
- Verification status validation
|
||||||
|
|
||||||
|
### MedicationRequest Validation
|
||||||
|
|
||||||
|
- Status validation
|
||||||
|
- Intent validation
|
||||||
|
|
||||||
|
### Encounter Validation
|
||||||
|
|
||||||
|
- Encounter status validation
|
||||||
|
|
||||||
|
### Allergy Validation
|
||||||
|
|
||||||
|
- Clinical status verification
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Security Architecture
|
||||||
|
|
||||||
|
## Authentication
|
||||||
|
|
||||||
|
SMART on FHIR OAuth2
|
||||||
|
|
||||||
|
## Authorization
|
||||||
|
|
||||||
|
Role-Based Access Control
|
||||||
|
|
||||||
|
## Transport Security
|
||||||
|
|
||||||
|
TLS / HTTPS
|
||||||
|
|
||||||
|
## Data Security
|
||||||
|
|
||||||
|
Encrypted database connections
|
||||||
|
|
||||||
|
## Cloud Security
|
||||||
|
|
||||||
|
AWS IAM and Secrets Management
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# AWS Deployment
|
||||||
|
|
||||||
|
## Frontend Layer
|
||||||
|
|
||||||
|
- AWS S3
|
||||||
|
- AWS CloudFront
|
||||||
|
|
||||||
|
## Application Layer
|
||||||
|
|
||||||
|
- ASP.NET Core APIs
|
||||||
|
- Docker Containers
|
||||||
|
- AWS ECS/Fargate
|
||||||
|
|
||||||
|
## Data Layer
|
||||||
|
|
||||||
|
- Medplum
|
||||||
|
- PostgreSQL
|
||||||
|
- AWS RDS
|
||||||
|
|
||||||
|
## Monitoring Layer
|
||||||
|
|
||||||
|
- AWS CloudWatch
|
||||||
|
- Application Logs
|
||||||
|
- Audit Logs
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Key Features
|
||||||
|
|
||||||
|
- SMART on FHIR Launch
|
||||||
|
- OAuth 2.0 Authentication
|
||||||
|
- Resource Validation
|
||||||
|
- Resource Normalization
|
||||||
|
- Medplum Integration
|
||||||
|
- AWS Deployment
|
||||||
|
- Individual Resource Synchronization
|
||||||
|
- Audit Logging
|
||||||
|
- Secure APIs
|
||||||
|
- Cloud-Native Architecture
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Benefits
|
||||||
|
|
||||||
|
## Clinical Benefits
|
||||||
|
|
||||||
|
- Faster access to patient data
|
||||||
|
- Improved clinical decisions
|
||||||
|
- Better workflow integration
|
||||||
|
|
||||||
|
## Technical Benefits
|
||||||
|
|
||||||
|
- FHIR-compliant architecture
|
||||||
|
- Cloud scalability
|
||||||
|
- Standardized APIs
|
||||||
|
|
||||||
|
## Organizational Benefits
|
||||||
|
|
||||||
|
- Reduced integration effort
|
||||||
|
- Improved interoperability
|
||||||
|
- Better data governance
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Deliverables
|
||||||
|
|
||||||
|
- SMART on FHIR Application
|
||||||
|
- React Frontend
|
||||||
|
- .NET Backend APIs
|
||||||
|
- Validation Engine
|
||||||
|
- Medplum Integration
|
||||||
|
- AWS Deployment Architecture
|
||||||
|
- Technical Documentation
|
||||||
|
- User Guide
|
||||||
|
- Deployment Guide
|
||||||
|
- Final Presentation
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Future Enhancements
|
||||||
|
|
||||||
|
## Artificial Intelligence
|
||||||
|
|
||||||
|
AI-assisted clinical recommendations.
|
||||||
|
|
||||||
|
## Clinical Decision Support
|
||||||
|
|
||||||
|
Real-time decision support workflows.
|
||||||
|
|
||||||
|
## Healthcare Analytics
|
||||||
|
|
||||||
|
Population health dashboards.
|
||||||
|
|
||||||
|
## Event Streaming
|
||||||
|
|
||||||
|
FHIR event-driven architecture.
|
||||||
|
|
||||||
|
## Multi-EHR Integration
|
||||||
|
|
||||||
|
Epic, Cerner, Allscripts, Meditech, Athena.
|
||||||
|
|
||||||
|
## Generative AI
|
||||||
|
|
||||||
|
Conversational healthcare assistants.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Conclusion
|
||||||
|
|
||||||
|
The Intelligent Healthcare Data Interoperability Platform demonstrates how SMART on FHIR, .NET 8, Medplum, React, and AWS can be combined to create a secure, scalable, and interoperable healthcare ecosystem.
|
||||||
|
|
||||||
|
The platform improves healthcare data accessibility, enhances interoperability, promotes data quality, and establishes the foundation for future innovation in healthcare technology.
|
||||||
585
.Net Capstone Project/README.md
Normal file
585
.Net Capstone Project/README.md
Normal file
@ -0,0 +1,585 @@
|
|||||||
|
# Intelligent Healthcare Data Interoperability Platform
|
||||||
|
|
||||||
|
A cloud-native healthcare interoperability solution built using .NET 8, React, SMART on FHIR, Medplum, PostgreSQL, and AWS.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Table of Contents
|
||||||
|
|
||||||
|
1. Introduction
|
||||||
|
2. Project Overview
|
||||||
|
3. Business Use Case
|
||||||
|
4. System Architecture
|
||||||
|
5. Technology Stack
|
||||||
|
6. Features
|
||||||
|
7. Supported Resources
|
||||||
|
8. Authentication Flow
|
||||||
|
9. Validation Framework
|
||||||
|
10. Synchronization Engine
|
||||||
|
11. AWS Infrastructure
|
||||||
|
12. Folder Structure
|
||||||
|
13. Installation
|
||||||
|
14. Configuration
|
||||||
|
15. Running the Application
|
||||||
|
16. API Documentation
|
||||||
|
17. Security
|
||||||
|
18. Monitoring and Logging
|
||||||
|
19. Future Enhancements
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Introduction
|
||||||
|
|
||||||
|
Healthcare data is often stored across multiple Electronic Health Record systems. This project enables retrieval, validation, normalization, synchronization, and storage of FHIR resources using standard healthcare interoperability protocols.
|
||||||
|
|
||||||
|
The platform is designed using modern cloud-native architectural principles to support scalable, secure, and maintainable healthcare integrations.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Project Overview
|
||||||
|
|
||||||
|
The application retrieves patient healthcare information from SMART on FHIR compliant EHR systems and synchronizes validated records into Medplum FHIR Server.
|
||||||
|
|
||||||
|
The platform supports:
|
||||||
|
|
||||||
|
- SMART on FHIR Authorization
|
||||||
|
- OAuth2 Authentication
|
||||||
|
- Resource Validation
|
||||||
|
- Data Normalization
|
||||||
|
- Medplum Integration
|
||||||
|
- AWS Deployment
|
||||||
|
- Audit Logging
|
||||||
|
- Resource Synchronization
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Business Use Case
|
||||||
|
|
||||||
|
Healthcare organizations require:
|
||||||
|
|
||||||
|
- Centralized patient records
|
||||||
|
- Standardized healthcare data exchange
|
||||||
|
- Secure patient data access
|
||||||
|
- Interoperability between systems
|
||||||
|
- Improved clinician workflows
|
||||||
|
|
||||||
|
This platform addresses each of these requirements.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# High-Level Architecture
|
||||||
|
|
||||||
|
```text
|
||||||
|
+------------------------------------------------+
|
||||||
|
| EHR Systems |
|
||||||
|
| Epic / Cerner / Sandbox |
|
||||||
|
+----------------------+-------------------------+
|
||||||
|
|
|
||||||
|
|
|
||||||
|
SMART on FHIR
|
||||||
|
|
|
||||||
|
|
|
||||||
|
V
|
||||||
|
|
||||||
|
+------------------------------------------------+
|
||||||
|
| React TypeScript UI |
|
||||||
|
+------------------------------------------------+
|
||||||
|
|
|
||||||
|
|
|
||||||
|
V
|
||||||
|
|
||||||
|
+------------------------------------------------+
|
||||||
|
| .NET 8 API Layer |
|
||||||
|
+------------------------------------------------+
|
||||||
|
| | |
|
||||||
|
| | |
|
||||||
|
V V V
|
||||||
|
|
||||||
|
Validation Sync Engine Audit Logs
|
||||||
|
Service
|
||||||
|
|
||||||
|
|
|
||||||
|
|
|
||||||
|
V
|
||||||
|
|
||||||
|
+------------------------------------------------+
|
||||||
|
| Medplum FHIR Server |
|
||||||
|
+------------------------------------------------+
|
||||||
|
|
|
||||||
|
|
|
||||||
|
V
|
||||||
|
|
||||||
|
+------------------------------------------------+
|
||||||
|
| PostgreSQL DB |
|
||||||
|
+------------------------------------------------+
|
||||||
|
|
||||||
|
|
|
||||||
|
|
|
||||||
|
V
|
||||||
|
|
||||||
|
+------------------------------------------------+
|
||||||
|
| AWS Cloud |
|
||||||
|
+------------------------------------------------+
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Technology Stack
|
||||||
|
|
||||||
|
## Frontend
|
||||||
|
|
||||||
|
- React
|
||||||
|
- TypeScript
|
||||||
|
- Vite
|
||||||
|
- SMART Client JS
|
||||||
|
|
||||||
|
## Backend
|
||||||
|
|
||||||
|
- ASP.NET Core .NET 8
|
||||||
|
- REST APIs
|
||||||
|
- Dependency Injection
|
||||||
|
- FluentValidation
|
||||||
|
|
||||||
|
## Authentication
|
||||||
|
|
||||||
|
- OAuth 2.0
|
||||||
|
- OpenID Connect
|
||||||
|
- SMART on FHIR
|
||||||
|
|
||||||
|
## Healthcare Standards
|
||||||
|
|
||||||
|
- FHIR R4
|
||||||
|
- SMART on FHIR
|
||||||
|
|
||||||
|
## FHIR Server
|
||||||
|
|
||||||
|
- Medplum
|
||||||
|
|
||||||
|
## Database
|
||||||
|
|
||||||
|
- PostgreSQL
|
||||||
|
|
||||||
|
## Cloud
|
||||||
|
|
||||||
|
- AWS
|
||||||
|
|
||||||
|
## Monitoring
|
||||||
|
|
||||||
|
- CloudWatch
|
||||||
|
- Application Logging
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Features
|
||||||
|
|
||||||
|
## SMART Launch
|
||||||
|
|
||||||
|
Launch directly inside EHR systems.
|
||||||
|
|
||||||
|
## Authorization Code Flow
|
||||||
|
|
||||||
|
Secure OAuth authentication.
|
||||||
|
|
||||||
|
## FHIR Resource Retrieval
|
||||||
|
|
||||||
|
Retrieve patient healthcare resources.
|
||||||
|
|
||||||
|
## Resource Validation
|
||||||
|
|
||||||
|
Validate incoming resource data.
|
||||||
|
|
||||||
|
## Resource Normalization
|
||||||
|
|
||||||
|
Automatically fix supported data issues.
|
||||||
|
|
||||||
|
## Medplum Synchronization
|
||||||
|
|
||||||
|
Store resources in Medplum.
|
||||||
|
|
||||||
|
## Audit Logging
|
||||||
|
|
||||||
|
Track all operations.
|
||||||
|
|
||||||
|
## Cloud Deployment
|
||||||
|
|
||||||
|
Deploy using AWS infrastructure.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Supported FHIR Resources
|
||||||
|
|
||||||
|
- Patient
|
||||||
|
- Observation
|
||||||
|
- Encounter
|
||||||
|
- Condition
|
||||||
|
- Procedure
|
||||||
|
- MedicationRequest
|
||||||
|
- AllergyIntolerance
|
||||||
|
- Immunization
|
||||||
|
- Practitioner
|
||||||
|
- Organization
|
||||||
|
- DiagnosticReport
|
||||||
|
- CarePlan
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# SMART on FHIR Authorization Flow
|
||||||
|
|
||||||
|
```text
|
||||||
|
User Launches Application
|
||||||
|
|
|
||||||
|
V
|
||||||
|
|
||||||
|
Smart Launch Context
|
||||||
|
|
||||||
|
|
|
||||||
|
V
|
||||||
|
|
||||||
|
Authorization Request
|
||||||
|
|
||||||
|
|
|
||||||
|
V
|
||||||
|
|
||||||
|
User Authentication
|
||||||
|
|
||||||
|
|
|
||||||
|
V
|
||||||
|
|
||||||
|
Authorization Code
|
||||||
|
|
||||||
|
|
|
||||||
|
V
|
||||||
|
|
||||||
|
Access Token
|
||||||
|
|
||||||
|
|
|
||||||
|
V
|
||||||
|
|
||||||
|
FHIR API Access
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Validation Framework
|
||||||
|
|
||||||
|
The validation framework ensures resource quality before persistence.
|
||||||
|
|
||||||
|
## Example Validations
|
||||||
|
|
||||||
|
### Patient
|
||||||
|
|
||||||
|
- Identifier Required
|
||||||
|
- Name Required
|
||||||
|
- Gender Validation
|
||||||
|
- BirthDate Validation
|
||||||
|
|
||||||
|
### Observation
|
||||||
|
|
||||||
|
- Status Required
|
||||||
|
- Code Required
|
||||||
|
- Subject Required
|
||||||
|
|
||||||
|
### Encounter
|
||||||
|
|
||||||
|
- Status Required
|
||||||
|
|
||||||
|
### Condition
|
||||||
|
|
||||||
|
- ClinicalStatus Required
|
||||||
|
|
||||||
|
### MedicationRequest
|
||||||
|
|
||||||
|
- Intent Required
|
||||||
|
- Status Required
|
||||||
|
|
||||||
|
### AllergyIntolerance
|
||||||
|
|
||||||
|
- ClinicalStatus Validation
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Synchronization Workflow
|
||||||
|
|
||||||
|
```text
|
||||||
|
Fetch Resource
|
||||||
|
|
||||||
|
|
|
||||||
|
V
|
||||||
|
|
||||||
|
Validate Resource
|
||||||
|
|
||||||
|
|
|
||||||
|
V
|
||||||
|
|
||||||
|
Normalize Resource
|
||||||
|
|
||||||
|
|
|
||||||
|
V
|
||||||
|
|
||||||
|
Transform Resource
|
||||||
|
|
||||||
|
|
|
||||||
|
V
|
||||||
|
|
||||||
|
Sync to Medplum
|
||||||
|
|
||||||
|
|
|
||||||
|
V
|
||||||
|
|
||||||
|
Persist Result
|
||||||
|
|
||||||
|
|
|
||||||
|
V
|
||||||
|
|
||||||
|
Generate Audit Log
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Database Design
|
||||||
|
|
||||||
|
## PostgreSQL
|
||||||
|
|
||||||
|
Main tables:
|
||||||
|
|
||||||
|
- Users
|
||||||
|
- AuditLogs
|
||||||
|
- SyncHistory
|
||||||
|
- ResourceMetadata
|
||||||
|
|
||||||
|
## Medplum
|
||||||
|
|
||||||
|
Stores:
|
||||||
|
|
||||||
|
- FHIR Resources
|
||||||
|
- Resource History
|
||||||
|
- Version Records
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# AWS Infrastructure
|
||||||
|
|
||||||
|
## Frontend
|
||||||
|
|
||||||
|
- Amazon S3
|
||||||
|
- Amazon CloudFront
|
||||||
|
|
||||||
|
## Backend
|
||||||
|
|
||||||
|
- Amazon ECS
|
||||||
|
- Docker Containers
|
||||||
|
|
||||||
|
## Database
|
||||||
|
|
||||||
|
- Amazon RDS PostgreSQL
|
||||||
|
|
||||||
|
## Security
|
||||||
|
|
||||||
|
- IAM
|
||||||
|
- Secrets Manager
|
||||||
|
|
||||||
|
## Monitoring
|
||||||
|
|
||||||
|
- CloudWatch
|
||||||
|
|
||||||
|
## Networking
|
||||||
|
|
||||||
|
- Amazon VPC
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Security Features
|
||||||
|
|
||||||
|
- OAuth2 Authentication
|
||||||
|
- SMART Authorization
|
||||||
|
- JWT Validation
|
||||||
|
- Secure HTTPS
|
||||||
|
- Environment-Based Secrets
|
||||||
|
- Role-Based Access Control
|
||||||
|
- AWS IAM Security Policies
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Project Structure
|
||||||
|
|
||||||
|
```text
|
||||||
|
project-root/
|
||||||
|
|
||||||
|
frontend/
|
||||||
|
│
|
||||||
|
├── src/
|
||||||
|
├── pages/
|
||||||
|
├── components/
|
||||||
|
├── services/
|
||||||
|
├── hooks/
|
||||||
|
├── App.tsx
|
||||||
|
│
|
||||||
|
backend/
|
||||||
|
│
|
||||||
|
├── Controllers/
|
||||||
|
├── Services/
|
||||||
|
├── Validators/
|
||||||
|
├── Authentication/
|
||||||
|
├── Repositories/
|
||||||
|
├── Models/
|
||||||
|
├── Configurations/
|
||||||
|
├── Program.cs
|
||||||
|
│
|
||||||
|
deployment/
|
||||||
|
│
|
||||||
|
├── aws/
|
||||||
|
├── docker/
|
||||||
|
├── terraform/
|
||||||
|
│
|
||||||
|
documentation/
|
||||||
|
│
|
||||||
|
├── architecture
|
||||||
|
├── diagrams
|
||||||
|
├── api-docs
|
||||||
|
│
|
||||||
|
README.md
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Prerequisites
|
||||||
|
|
||||||
|
- .NET 8 SDK
|
||||||
|
- Node.js 20+
|
||||||
|
- PostgreSQL
|
||||||
|
- Medplum Account
|
||||||
|
- AWS Account
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Installation
|
||||||
|
|
||||||
|
## Clone Repository
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone <repository-url>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Frontend
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd frontend
|
||||||
|
npm install
|
||||||
|
npm run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
## Backend
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd backend
|
||||||
|
dotnet restore
|
||||||
|
dotnet build
|
||||||
|
dotnet run
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Environment Variables
|
||||||
|
|
||||||
|
```env
|
||||||
|
SMART_CLIENT_ID=
|
||||||
|
|
||||||
|
SMART_REDIRECT_URI=
|
||||||
|
|
||||||
|
FHIR_BASE_URL=
|
||||||
|
|
||||||
|
MEDPLUM_BASE_URL=
|
||||||
|
|
||||||
|
MEDPLUM_CLIENT_ID=
|
||||||
|
|
||||||
|
MEDPLUM_CLIENT_SECRET=
|
||||||
|
|
||||||
|
POSTGRES_CONNECTION_STRING=
|
||||||
|
|
||||||
|
JWT_SECRET=
|
||||||
|
|
||||||
|
AWS_REGION=
|
||||||
|
|
||||||
|
AWS_ACCESS_KEY_ID=
|
||||||
|
|
||||||
|
AWS_SECRET_ACCESS_KEY=
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Monitoring
|
||||||
|
|
||||||
|
The system includes:
|
||||||
|
|
||||||
|
- API Logs
|
||||||
|
- Validation Logs
|
||||||
|
- Synchronization Logs
|
||||||
|
- CloudWatch Metrics
|
||||||
|
- Health Checks
|
||||||
|
- Error Tracking
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# CI/CD Pipeline
|
||||||
|
|
||||||
|
```text
|
||||||
|
GitHub Push
|
||||||
|
|
|
||||||
|
V
|
||||||
|
|
||||||
|
Build Application
|
||||||
|
|
|
||||||
|
V
|
||||||
|
|
||||||
|
Run Tests
|
||||||
|
|
|
||||||
|
V
|
||||||
|
|
||||||
|
Docker Build
|
||||||
|
|
|
||||||
|
V
|
||||||
|
|
||||||
|
Deploy to AWS
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Future Enhancements
|
||||||
|
|
||||||
|
- AI Clinical Recommendations
|
||||||
|
- Real-Time CDS Hooks
|
||||||
|
- FHIR Bulk Export
|
||||||
|
- Event Streaming
|
||||||
|
- Multi-Tenant Support
|
||||||
|
- Healthcare Analytics Dashboard
|
||||||
|
- AWS Bedrock Integration
|
||||||
|
- Generative AI Assistant
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Author
|
||||||
|
|
||||||
|
Himanshu Agrawal
|
||||||
|
|
||||||
|
Lead Engineer - I
|
||||||
|
|
||||||
|
CitiusTech
|
||||||
|
|
||||||
|
FHIR Academy Capstone Project
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Acknowledgements
|
||||||
|
|
||||||
|
- HL7 FHIR Community
|
||||||
|
- SMART Health IT
|
||||||
|
- Medplum
|
||||||
|
- AWS
|
||||||
|
- CitiusTech
|
||||||
|
- FHIR Academy
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# License
|
||||||
|
|
||||||
|
This project is developed for educational, research, and healthcare interoperability demonstration purposes.
|
||||||
Loading…
Reference in New Issue
Block a user