This is a monorepo of experimental projects centered around integration of Hasura and ChRIS_ultron_backEnd (a.k.a. CUBE).
- GraphQL for ChRIS_ui: empower UI development using GraphQL, solving typical performance problems (data overfetching, underfetching, inefficient backend code); use GraphQL subscriptions to achieve live-updating UI state.
- Backend for α-BLT (Alpha-BLT): tightly integrated and rapidly developed workflow for DICOM retrieval, anonymization, and transfer pipeline on Kubernetes.
About the name: "alpha" denotes an early stage in the software release life cycle, it also sounds cool.
Objective: optimize the BLT collaboration use case in ChRIS by dispatching jobs to Kubernetes directly, without going through CUBE->pfcon->pman (and all the polling that happens in between).
In the sequence diagram above:
- Dotted lines denote event-driven messaging (e.g. WebSockets, NATS subscription, or GraphQL subscription)
- Blue lines are part of the "traditional" CUBE architecture.
- Pink lines are new behavior which must be implemented by Alpha-BLT backend.
- Green lines are part of the existing LONK protocol of oxidicom->ChRIS_ui communication.
- Purple lines are notifications sent to ChRIS_ui via GraphQL subscription. These are reach goals which are not essential to the functionality of Alpha-BLT. Achieving the reach goals would further demonstrate the advantages of using GraphQL in our architecture.