@startuml Server Architecture left to right direction !define RECTANGLE class ' Define styles skinparam rectangle { BackgroundColor<> LightBlue BorderColor<> Navy BackgroundColor<> LightGreen BorderColor<> DarkGreen BackgroundColor<> LightYellow BorderColor<> Orange BackgroundColor<> LightPink BorderColor<> Red BackgroundColor<> LightCyan BorderColor<> DarkCyan BackgroundColor<> Wheat BorderColor<> Brown } ' Zone 2 container rectangle "Zone 2" <> { ' Admin DIZ (provider) actor "Admin DIZ\n(Provider)" <> as AdminD ' BLAZE Server rectangle "BLAZE Server" <> as BlazeServer { note "FHIR data source for\nthe pipeline" as n1 } ' Server M with internal components rectangle "Server MeDaX" <> as ServerM { ' Web Interface rectangle "Web Interface" <> as WebInterface ' Pipeline components rectangle "Pipeline" <> as Pipeline { rectangle "Python Scripts" <> as PythonScripts collections "Input Files" <> as InputFiles note top of PythonScripts : 1. Python scripts fetch data\n2. Create input files\n3. Load into GDB ' Graph Database database "Graph Database\n(GDB)" <> as GraphDB } } rectangle WTSDIZ <> as DIZclient } ' Admin MeDaX rectangle "MeDaX Admins" <> as AdminGroup { actor "Admin 1" as Admin1 actor "Admin 2" as Admin2 } ' Clients rectangle "Clients" <> as Clients { rectangle "Clients 1 - MeDaX" as Client1 rectangle "Clients 2 - Allgemeinmedizin" as Client2 } ' Hidden alignment helpers BlazeServer -[hidden]right- ServerM BlazeServer -[hidden]down- AdminD ' Pipeline flow within Server M PythonScripts -down-> InputFiles : creates InputFiles -down-> GraphDB : loads into ' BLAZE Server connection PythonScripts -up-> BlazeServer : requests data ' Web Interface connection WebInterface -up-> GraphDB : connected to ' External relationships AdminD -up-> ServerM : manages, secures & installs AdminGroup -up-> DIZclient : access via VPN DIZclient -left-> ServerM : ssh connection Clients -up-> DIZclient : access via VPN DIZclient -left-> WebInterface : access @enduml