Deployment Diagram - SENG-350-2024-fall/Team-1 GitHub Wiki

MrED Deployment Diagram

This deployment diagram represents a healthcare system architecture, focusing on ED management. The system is composed of three main nodes: Hospital Systems, a Central Server, and User Devices, with an additional cloud component for the BC Public Health DB.

Cloud Component: BC Public Health DB

This cloud-based database contains:

  • Provincial Health Number (PHN)
  • Patient Records
  • API for data access

It has a secure connection for data exchange with the Hospital Systems and a secure connection with the Central Server.

Main Nodes

1. Hospital Systems

This node represents the on-premises hospital infrastructure:

  • Components:
    • Hospital Staff
    • Online Nurse
    • Hospital Workstations
  • Database (Hospital Database):
    • Patient Records
    • Staff Records
    • ED Waiting List

2. Central Server

This node acts as the core of the system:

  • Components:
    • System Admin
  • Database (Central Database):
    • Load Balancer
    • Health Records
    • User Data

The Central Server has an internal network connection to the Hospital Systems.

3. User Devices

This node represents various user interfaces:

Mobile App:

  • GPS Location
  • Symptom Checker
  • Wait Time Check

Web App:

  • Symptom Checker
  • Wait Time Check

Shared Components (Mobile and Web):

  • Patient Login
  • Staff Login
  • Provide Recommendation
  • Call
  • Chat

User Devices connect to the Central Server via a secure external connection.

Overview:

  1. User Authentication:

    • Patient and Staff logins authenticate against the Central Database
  2. Symptom Checking:

    • Both mobile and web symptom checkers query the Central Database
  3. Wait Time Checking:

    • Mobile and web wait time checkers access the ED Waiting List in the Hospital Database
  4. Recommendations:

    • The recommendation component fetches data from the Central Database
  5. Communication with Online Nurse:

    • Call and Chat components connect to the Online Nurse in the Hospital Systems
  6. Data Exchange:

    • Secure data exchange occurs between the Hospital Systems and the BC Public Health DB

Diagram

Deployment

@startuml deployment-MrED

'cloud components'
cloud "BC Public Health DB" as publicDB {
    component "Provincial Health Number" as PHN
    component "Patient Records" as publicRecords
    component "API" as api
}

'main nodes'
node "Hospital Systems" as systems {
    component "Hospital Staff" as staff
    component "Online Nurse" as onlineNurse
    component "Hospital Workstations" as workstations
    database "Hospital Database" as DB {
        [Patient Records] as records
        [Staff Records] as staffRecords
        [ED Waiting List] as EDList
    }
}

node "Central Server" as server {
    component "System Admin" as sysadmin
    database "Central Database" as centralDB {
        [Load Balancer] as balancer
        [Health Records] as healthRecords
        [User Data] as userData
    }
}

node "User Devices" as devices {
    node "Mobile App" as mobileApp {
        [GPS Location] as mobileGPS
        [Symptom Checker] as mobileSymptomChecker
        [Wait Time Check] as mobileWaitTime
    }
    node "Web App" as webApp {
        [Symptom Checker] as webSymptomChecker
        [Wait Time Check] as webWaitTime
    }
    
    'Shared components between Mobile and Web Apps'
    'GPS Location is only guaranteed on mobile devices'
    component "Patient Login" as userLogin
    component "Staff Login" as staffLogin
    component "Provide Recommendation" as recommendation
    component "Call" as call
    component "Chat" as chat
}

'Define relationships'
devices --> server : Secure External Connection
server --> systems : Internal Network
server --> publicDB : Secure API Connection
systems --> publicDB : Secure Data Exchange

userLogin --> centralDB : Authenticate
staffLogin --> centralDB : Authenticate
mobileSymptomChecker --> centralDB : Query
webSymptomChecker --> centralDB : Query
recommendation --> centralDB : Fetch Data
mobileWaitTime --> EDList : Check
webWaitTime --> EDList : Check
call --> onlineNurse : Connect
chat --> onlineNurse : Message

@enduml