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.
EHR Data Part β
DigitalTWINS Plateform Part β
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 β ββββββββββββββββ β
β βββββββββββββ βββββββββββββ βββββββββββββ β
β β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ