# System Component Architecture

System component architecture

The system is composed by the following components.

System Component
(License)
Technology
(Git repository)
Description
StudyBuilder App
(GPLv3)
Vue.js using Vuetify library
(studybuilder)
JavaScript based web application with the UI for creating the study definition specification, maintaining library standards. The StudyBuilder app holds two main modules:
- Library
- Studies
StudyBuilder Documentation Portal
(GPLv3)
Vuepress
(documentation-portal)
Markdown based documentation portal with StudyBuilder Introduction, User Guides, System Documentation, Data Models and more.
API Specification
(MIT)
OpenAPI Specification / Swagger
(clinical-mdr-api/openapi.json)
Online Open API documentation of the Clinical MDR API and Consumer API.
Note, and exported version of the API specification is also shared in the git repo.
Clinical MDR API
(GPLv3)
Phyton using FAST API framework
(clinical-mdr-api)
Python based web application based on FAST API framework supporting all CRUD actions to the database, access control, versioning, workflows and data integrity rules.
Consumer API
(GPLv3)
Phyton using FAST API framework
(clinical-mdr-api)
Python based web application based on FAST API framework only supporting all read (GET) to the database and access control. API endpoints is optimized for downstream consumers and running in separate service not to impact frontend application users.
Clinical MDR
(MIT)
Cypher
(neo4j-mdr-db)
Clinical MDR logical and physical data models, database constraint definitions, procedures and functions.
Graph Database
(Neo4j free edition or licenced enterprise edition)
Neo4j native graph database
(neo4j.com)
Labeled property graph database.
CDISC Library Standards Import
(GPLv3)
Python and Cypher
(mdr-standards-import)
Import programs connecting to CDISC Library, downloading files to cloud storage, reading these into staging database, and then inserting data into Clinical MDR database.
Data Import
(MIT)
Python and Cypher
(studybuilder-import)
Import programs using .csv or JSON files as input for importing various data into the Clinical MDR database. The import programs can import JSON files exported from the system, in this way data can be moved between environments. All import actions are done via calls to the Clinical MDR API, so all import actions will be audit trailed.
Data Export
(MIT)
Python and Cypher
(studybuilder-export)
Program that exports all defined studies from a Studybuilder instance. It's possible to filter the exported study data by including and/or excluding study numbers.
Reports
(MIT)
NeoDash Reports
(neo4j-mdr-db)
The NeoDash report definitions is saved within the Clinical MDR database and can be opened by the NeoDash reporting engine.
The NeoDash reporting engine is a browser based tool (https://neo4j.com/labs/neodash/)
  • MIT: MIT license is a permissive free software license originating at the Massachusetts Institute of Technology (MIT).
    For more info see: https://opensource.org/licenses/MIT
  • GPLv3: GPLv3 license is a GNU General Public License. The GPL series are all copyleft licenses, which means that any derivative work must be distributed under the same or equivalent license terms.
    For more info see: https://opensource.org/licenses/GPL-3.0 and https://www.gnu.org/licenses/quick-guide-gplv3.html