Skip to content

EHR server achitecture based on FHIR ​

  • EHR Data: Hospital, Vunlenteer data.
  • FHIR Server: Hapi Fhir
  • DATABASE: PostgreSQL
  • DICOM Server: Othanc
  • Packages: fhirpy, sparc-me, Digitaltwins-api
  • Environment: Docker, Python 3.9+

Initial Architecture Plan ​

Edit/modify it on here.

image

EHR Data Part ​

image

DigitalTWINS Plateform Part ​

image

Basic draft ​

ASCII Basic Layout ​

  • Edit on here.
  • If it is empty, copy and paste below code to Asciiflow website.
sh
     +----------------------------------------------------------------------------------------------------+
     |                                                                                                    |
     |                                     DigitalTWINS platform                                          |
     |                                                                                                    |
     |                                                                                                    |
     |                              +-------------+                                                       |
     |                              | PostgreSQL  |                               +--------------------+  |
     |                              +------+------+                               |                    |  |
     |                                     |                                      |                    |  |
     |                     Imageing  +-----+----+                                 |        Gen 3       |  |
     |         +---------+  Study    |   HAPI   |             +------------+      |                    |  |
     |         | Orthanc +-----------+   FHIR   |             |    OMOP    |      |                    |  |
     |         | Server  |   PACs    |  Server  |             |            |      +--------------------+  |
     |         +---------+           +---^--+---+             |   Server   |                              |
     |                                   |  |                 +------+-----+                              |
     |                                   |  |                        |                                    |
     |                                   |  |Restful API             |                                    |
     |                                   |  |                        |            +--------------------+  |
     |                                   |  |                        |            |                    |  |
     | +---------------------------------+--v------------------------+-------+    |       Other        |  |
     | |                     Backend/DigitalTWIN API                 |       |    |                    |  |
     | |                                                             |       |    |      Server ...    |  |
     | | +-------------+  +-------------+  +-------------+   +-------+-----+ |    |                    |  |
     | | |             |  |             |  |             |   |    OMOP     | |    +--------------------+  |
     | | |   fhiypy    |  |   sparc-me  |  | dgitialtwin |   |   python    | |                            |
     | | |             |  |             |  |     api     |   |   plugin    | |                            |
     | | +-------------+  +-------------+  +-------------+   +-------------+ |                            |
     | |                                                                     |                            |
     | +---------------------------------------------------------------------+                            |
     |                                                                                                    |
     +----------------------------------------------------------------------------------------------------+




 +----------------------------------------------------------------------------------------------------------------+
 |                                           Authentication  Layer                                                |
 +---------------------------------------------------------------------------------------------------------------++
                                                                                  ^                  ^           |
                                                                                  |                  |           |
                                                                                  |                  |           |
                                                                                  |                  |           |
                                                                                  |                  |           |
+----------------------------------------+---------------+------------------------+---------+        |           |
|                                        +---------------+                        |         |        |           |
|                                        |   EHR Data    |                        |         |        |           |
|                                        +---------------+                        |         |        |           |
|                                                                                 |         |        |           |
|                                      +----------+                               |         |        |           |
|                                      | De iden- |  De-identified                |         |        |           |
| +-----------+         +-----------+  | -tify.py |  +-----------+         +------+-------+ |        |           |
| |           | Export  |   FHIR    |  +----------+  |   FHIR    |         |              | |        |           |
| | Hospital  +-------->|  boudle   +--+----------+->|  boudle   +-------->|              | |        |           v
| |           |         | resource  |                | resource  |         |              | |   +----+------------------------+
| +-----------+         +-----------+                +-----------+         |              | |   |                             |
|                                                                          |              | |   |                             |
|                                      +----------+                        |              | |   |       12L Portal APP        |
|                                      |  FHIR    |  De-identified         |      SDS     | |   |                             |
| +-----------+         +-----------+  | mapping  |  +-----------+         |              | |   |              /              |
| |   Study   | Export  |           |  +----------+  |   FHIR    |         |    Dataset   | |   |         Other APPs          |
| |  RedCap   +-------->| Raw Data  +--+----------+->|  boudle   +-------->|              | |   |                             |
| |           |         |           |                | resource  |         |              | |   +-----------------------------+
| +-----------+         +-----------+                +-----------+         |              | |
|                                      +----------+                        |              | |
|                                      | De iden- |  De-identified         |              | |
| +-----------+         +-----------+  | -tify.py |  +-----------+         |              | |
| |  Remote   | Export  |   FHIR    |  +----------+  |   FHIR    |         |              | |
| | monitoring+-------->|  boudle   +--+----------+->|  boudle   +-------->|              | |
| |   data    |         | resource  |                | resource  |         +--------------+ |
| +-----------+         +-----------+                +-----------+                          |
|                                                                                           |
|                                                                                           |
+-------------------------------------------------------------------------------------------+
     +----------------------------------------------------------------------------------------------------+
     |                                                                                                    |
     |                                     DigitalTWINS platform                                          |
     |                                                                                                    |
     |                                                                                                    |
     |                              +-------------+                                                       |
     |                              | PostgreSQL  |                               +--------------------+  |
     |                              +------+------+                               |                    |  |
     |                                     |                                      |                    |  |
     |                     Imageing  +-----+----+                                 |        Gen 3       |  |
     |         +---------+  Study    |   HAPI   |             +------------+      |                    |  |
     |         | Orthanc +-----------+   FHIR   |             |    OMOP    |      |                    |  |
     |         | Server  |   PACs    |  Server  |             |            |      +--------------------+  |
     |         +---------+           +---^--+---+             |   Server   |                              |
     |                                   |  |                 +------+-----+                              |
     |                                   |  |                        |                                    |
     |                                   |  |Restful API             |                                    |
     |                                   |  |                        |            +--------------------+  |
     |                                   |  |                        |            |                    |  |
     | +---------------------------------+--v------------------------+-------+    |       Other        |  |
     | |                     Backend/DigitalTWIN API                 |       |    |                    |  |
     | |                                                             |       |    |      Server ...    |  |
     | | +-------------+  +-------------+  +-------------+   +-------+-----+ |    |                    |  |
     | | |             |  |             |  |             |   |    OMOP     | |    +--------------------+  |
     | | |   fhiypy    |  |   sparc-me  |  | dgitialtwin |   |   python    | |                            |
     | | |             |  |             |  |     api     |   |   plugin    | |                            |
     | | +-------------+  +-------------+  +-------------+   +-------------+ |                            |
     | |                                                                     |                            |
     | +---------------------------------------------------------------------+                            |
     |                                                                                                    |
     +----------------------------------------------------------------------------------------------------+




 +----------------------------------------------------------------------------------------------------------------+
 |                                           Authentication  Layer                                                |
 +---------------------------------------------------------------------------------------------------------------++
                                                                                  ^                  ^           |
                                                                                  |                  |           |
                                                                                  |                  |           |
                                                                                  |                  |           |
                                                                                  |                  |           |
+----------------------------------------+---------------+------------------------+---------+        |           |
|                                        +---------------+                        |         |        |           |
|                                        |   EHR Data    |                        |         |        |           |
|                                        +---------------+                        |         |        |           |
|                                                                                 |         |        |           |
|                                      +----------+                               |         |        |           |
|                                      | De iden- |  De-identified                |         |        |           |
| +-----------+         +-----------+  | -tify.py |  +-----------+         +------+-------+ |        |           |
| |           | Export  |   FHIR    |  +----------+  |   FHIR    |         |              | |        |           |
| | Hospital  +-------->|  boudle   +--+----------+->|  boudle   +-------->|              | |        |           v
| |           |         | resource  |                | resource  |         |              | |   +----+------------------------+
| +-----------+         +-----------+                +-----------+         |              | |   |                             |
|                                                                          |              | |   |                             |
|                                      +----------+                        |              | |   |       12L Portal APP        |
|                                      |  FHIR    |  De-identified         |      SDS     | |   |                             |
| +-----------+         +-----------+  | mapping  |  +-----------+         |              | |   |              /              |
| |   Study   | Export  |           |  +----------+  |   FHIR    |         |    Dataset   | |   |         Other APPs          |
| |  RedCap   +-------->| Raw Data  +--+----------+->|  boudle   +-------->|              | |   |                             |
| |           |         |           |                | resource  |         |              | |   +-----------------------------+
| +-----------+         +-----------+                +-----------+         |              | |
|                                      +----------+                        |              | |
|                                      | De iden- |  De-identified         |              | |
| +-----------+         +-----------+  | -tify.py |  +-----------+         |              | |
| |  Remote   | Export  |   FHIR    |  +----------+  |   FHIR    |         |              | |
| | monitoring+-------->|  boudle   +--+----------+->|  boudle   +-------->|              | |
| |   data    |         | resource  |                | resource  |         +--------------+ |
| +-----------+         +-----------+                +-----------+                          |
|                                                                                           |
|                                                                                           |
+-------------------------------------------------------------------------------------------+

ASCII Extended Layout ​

sh
     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
     β”‚                                                                                                    β”‚
     β”‚                                     DigitalTWINS platform                                          β”‚
     β”‚                                                                                                    β”‚
     β”‚                                                                                                    β”‚
     β”‚                              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                                                       β”‚
     β”‚                              β”‚ PostgreSQL  β”‚                               β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
     β”‚                              β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜                               β”‚                    β”‚  β”‚
     β”‚                                     β”‚                                      β”‚                    β”‚  β”‚
     β”‚                     Imageing  β”Œβ”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”                                 β”‚        Gen 3       β”‚  β”‚
     β”‚         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”  Study    β”‚   HAPI   β”‚             β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”‚                    β”‚  β”‚
     β”‚         β”‚ Orthanc β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€   FHIR   β”‚             β”‚    OMOP    β”‚      β”‚                    β”‚  β”‚
     β”‚         β”‚ Server  β”‚   PACs    β”‚  Server  β”‚             β”‚            β”‚      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
     β”‚         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜           β””β”€β”€β”€β–²β”€β”€β”¬β”€β”€β”€β”˜             β”‚   Server   β”‚                              β”‚
     β”‚                                   β”‚  β”‚                 β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜                              β”‚
     β”‚                                   β”‚  β”‚                        β”‚                                    β”‚
     β”‚                                   β”‚  β”‚Restful API             β”‚                                    β”‚
     β”‚                                   β”‚  β”‚                        β”‚            β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
     β”‚                                   β”‚  β”‚                        β”‚            β”‚                    β”‚  β”‚
     β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”    β”‚       Other        β”‚  β”‚
     β”‚ β”‚                     Backend/DigitalTWIN API                 β”‚       β”‚    β”‚                    β”‚  β”‚
     β”‚ β”‚                                                             β”‚       β”‚    β”‚      Server ...    β”‚  β”‚
     β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β” β”‚    β”‚                    β”‚  β”‚
     β”‚ β”‚ β”‚             β”‚  β”‚             β”‚  β”‚             β”‚   β”‚    OMOP     β”‚ β”‚    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
     β”‚ β”‚ β”‚   fhiypy    β”‚  β”‚   sparc-me  β”‚  β”‚ dgitialtwin β”‚   β”‚   python    β”‚ β”‚                            β”‚
     β”‚ β”‚ β”‚             β”‚  β”‚             β”‚  β”‚     api     β”‚   β”‚   plugin    β”‚ β”‚                            β”‚
     β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚                            β”‚
     β”‚ β”‚                                                                     β”‚                            β”‚
     β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                            β”‚
     β”‚                                                                                                    β”‚
     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜




 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
 β”‚                                           Authentication  Layer                                                β”‚
 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”˜
                                                                                  β–²                  β–²           β”‚
                                                                                  β”‚                  β”‚           β”‚
                                                                                  β”‚                  β”‚           β”‚
                                                                                  β”‚                  β”‚           β”‚
                                                                                  β”‚                  β”‚           β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”        β”‚           β”‚
β”‚                                        β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€                        β”‚         β”‚        β”‚           β”‚
β”‚                                        β”‚   EHR Data    β”‚                        β”‚         β”‚        β”‚           β”‚
β”‚                                        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                        β”‚         β”‚        β”‚           β”‚
β”‚                                                                                 β”‚         β”‚        β”‚           β”‚
β”‚                                      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                               β”‚         β”‚        β”‚           β”‚
β”‚                                      β”‚ De iden- β”‚  De-identified                β”‚         β”‚        β”‚           β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚ -tify.py β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β” β”‚        β”‚           β”‚
β”‚ β”‚           β”‚ Export  β”‚   FHIR    β”‚  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€  β”‚   FHIR    β”‚         β”‚              β”‚ β”‚        β”‚           β”‚
β”‚ β”‚ Hospital  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β–Ίβ”‚  boudle   β”œβ”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β–Ίβ”‚  boudle   β”œβ”€β”€β”€β”€β”€β”€β”€β”€β–Ίβ”‚              β”‚ β”‚        β”‚           β–Ό
β”‚ β”‚           β”‚         β”‚ resource  β”‚                β”‚ resource  β”‚         β”‚              β”‚ β”‚   β”Œβ”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β”‚              β”‚ β”‚   β”‚                             β”‚
β”‚                                                                          β”‚              β”‚ β”‚   β”‚                             β”‚
β”‚                                      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                        β”‚              β”‚ β”‚   β”‚       12L Portal APP        β”‚
β”‚                                      β”‚  FHIR    β”‚  De-identified         β”‚      SDS     β”‚ β”‚   β”‚                             β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚ mapping  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”‚              β”‚ β”‚   β”‚              /              β”‚
β”‚ β”‚   Study   β”‚ Export  β”‚           β”‚  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€  β”‚   FHIR    β”‚         β”‚    Dataset   β”‚ β”‚   β”‚         Other APPs          β”‚
β”‚ β”‚  RedCap   β”œβ”€β”€β”€β”€β”€β”€β”€β”€β–Ίβ”‚ Raw Data  β”œβ”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β–Ίβ”‚  boudle   β”œβ”€β”€β”€β”€β”€β”€β”€β”€β–Ίβ”‚              β”‚ β”‚   β”‚                             β”‚
β”‚ β”‚           β”‚         β”‚           β”‚                β”‚ resource  β”‚         β”‚              β”‚ β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β”‚              β”‚ β”‚
β”‚                                      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                        β”‚              β”‚ β”‚
β”‚                                      β”‚ De iden- β”‚  De-identified         β”‚              β”‚ β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚ -tify.py β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”‚              β”‚ β”‚
β”‚ β”‚  Remote   β”‚ Export  β”‚   FHIR    β”‚  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€  β”‚   FHIR    β”‚         β”‚              β”‚ β”‚
β”‚ β”‚ monitoringβ”œβ”€β”€β”€β”€β”€β”€β”€β”€β–Ίβ”‚  boudle   β”œβ”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β–Ίβ”‚  boudle   β”œβ”€β”€β”€β”€β”€β”€β”€β”€β–Ίβ”‚              β”‚ β”‚
β”‚ β”‚   data    β”‚         β”‚ resource  β”‚                β”‚ resource  β”‚         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                          β”‚
β”‚                                                                                           β”‚
β”‚                                                                                           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
     β”‚                                                                                                    β”‚
     β”‚                                     DigitalTWINS platform                                          β”‚
     β”‚                                                                                                    β”‚
     β”‚                                                                                                    β”‚
     β”‚                              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                                                       β”‚
     β”‚                              β”‚ PostgreSQL  β”‚                               β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
     β”‚                              β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜                               β”‚                    β”‚  β”‚
     β”‚                                     β”‚                                      β”‚                    β”‚  β”‚
     β”‚                     Imageing  β”Œβ”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”                                 β”‚        Gen 3       β”‚  β”‚
     β”‚         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”  Study    β”‚   HAPI   β”‚             β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”‚                    β”‚  β”‚
     β”‚         β”‚ Orthanc β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€   FHIR   β”‚             β”‚    OMOP    β”‚      β”‚                    β”‚  β”‚
     β”‚         β”‚ Server  β”‚   PACs    β”‚  Server  β”‚             β”‚            β”‚      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
     β”‚         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜           β””β”€β”€β”€β–²β”€β”€β”¬β”€β”€β”€β”˜             β”‚   Server   β”‚                              β”‚
     β”‚                                   β”‚  β”‚                 β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜                              β”‚
     β”‚                                   β”‚  β”‚                        β”‚                                    β”‚
     β”‚                                   β”‚  β”‚Restful API             β”‚                                    β”‚
     β”‚                                   β”‚  β”‚                        β”‚            β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
     β”‚                                   β”‚  β”‚                        β”‚            β”‚                    β”‚  β”‚
     β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”    β”‚       Other        β”‚  β”‚
     β”‚ β”‚                     Backend/DigitalTWIN API                 β”‚       β”‚    β”‚                    β”‚  β”‚
     β”‚ β”‚                                                             β”‚       β”‚    β”‚      Server ...    β”‚  β”‚
     β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β” β”‚    β”‚                    β”‚  β”‚
     β”‚ β”‚ β”‚             β”‚  β”‚             β”‚  β”‚             β”‚   β”‚    OMOP     β”‚ β”‚    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
     β”‚ β”‚ β”‚   fhiypy    β”‚  β”‚   sparc-me  β”‚  β”‚ dgitialtwin β”‚   β”‚   python    β”‚ β”‚                            β”‚
     β”‚ β”‚ β”‚             β”‚  β”‚             β”‚  β”‚     api     β”‚   β”‚   plugin    β”‚ β”‚                            β”‚
     β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚                            β”‚
     β”‚ β”‚                                                                     β”‚                            β”‚
     β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                            β”‚
     β”‚                                                                                                    β”‚
     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜




 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
 β”‚                                           Authentication  Layer                                                β”‚
 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”˜
                                                                                  β–²                  β–²           β”‚
                                                                                  β”‚                  β”‚           β”‚
                                                                                  β”‚                  β”‚           β”‚
                                                                                  β”‚                  β”‚           β”‚
                                                                                  β”‚                  β”‚           β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”        β”‚           β”‚
β”‚                                        β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€                        β”‚         β”‚        β”‚           β”‚
β”‚                                        β”‚   EHR Data    β”‚                        β”‚         β”‚        β”‚           β”‚
β”‚                                        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                        β”‚         β”‚        β”‚           β”‚
β”‚                                                                                 β”‚         β”‚        β”‚           β”‚
β”‚                                      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                               β”‚         β”‚        β”‚           β”‚
β”‚                                      β”‚ De iden- β”‚  De-identified                β”‚         β”‚        β”‚           β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚ -tify.py β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β” β”‚        β”‚           β”‚
β”‚ β”‚           β”‚ Export  β”‚   FHIR    β”‚  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€  β”‚   FHIR    β”‚         β”‚              β”‚ β”‚        β”‚           β”‚
β”‚ β”‚ Hospital  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β–Ίβ”‚  boudle   β”œβ”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β–Ίβ”‚  boudle   β”œβ”€β”€β”€β”€β”€β”€β”€β”€β–Ίβ”‚              β”‚ β”‚        β”‚           β–Ό
β”‚ β”‚           β”‚         β”‚ resource  β”‚                β”‚ resource  β”‚         β”‚              β”‚ β”‚   β”Œβ”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β”‚              β”‚ β”‚   β”‚                             β”‚
β”‚                                                                          β”‚              β”‚ β”‚   β”‚                             β”‚
β”‚                                      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                        β”‚              β”‚ β”‚   β”‚       12L Portal APP        β”‚
β”‚                                      β”‚  FHIR    β”‚  De-identified         β”‚      SDS     β”‚ β”‚   β”‚                             β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚ mapping  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”‚              β”‚ β”‚   β”‚              /              β”‚
β”‚ β”‚   Study   β”‚ Export  β”‚           β”‚  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€  β”‚   FHIR    β”‚         β”‚    Dataset   β”‚ β”‚   β”‚         Other APPs          β”‚
β”‚ β”‚  RedCap   β”œβ”€β”€β”€β”€β”€β”€β”€β”€β–Ίβ”‚ Raw Data  β”œβ”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β–Ίβ”‚  boudle   β”œβ”€β”€β”€β”€β”€β”€β”€β”€β–Ίβ”‚              β”‚ β”‚   β”‚                             β”‚
β”‚ β”‚           β”‚         β”‚           β”‚                β”‚ resource  β”‚         β”‚              β”‚ β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β”‚              β”‚ β”‚
β”‚                                      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                        β”‚              β”‚ β”‚
β”‚                                      β”‚ De iden- β”‚  De-identified         β”‚              β”‚ β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚ -tify.py β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”‚              β”‚ β”‚
β”‚ β”‚  Remote   β”‚ Export  β”‚   FHIR    β”‚  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€  β”‚   FHIR    β”‚         β”‚              β”‚ β”‚
β”‚ β”‚ monitoringβ”œβ”€β”€β”€β”€β”€β”€β”€β”€β–Ίβ”‚  boudle   β”œβ”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β–Ίβ”‚  boudle   β”œβ”€β”€β”€β”€β”€β”€β”€β”€β–Ίβ”‚              β”‚ β”‚
β”‚ β”‚   data    β”‚         β”‚ resource  β”‚                β”‚ resource  β”‚         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                          β”‚
β”‚                                                                                           β”‚
β”‚                                                                                           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜