C4 Diagrams
Last updated
Last updated
@2024 Medtronic LABS
Below you will find SPICE platform documentation using the C4 model for architecting software solutions.
The below diagram demonstrates the context of the SPICE system and the various system users and system components.
The system primarily interacts with the healthcare worker, in this case the community health worker (CHW) who collects information from the patient
The SPICE platform is used for the data collection, storage, and processing of the data collected.
In addition to its primary functionalities, the SPICE application integrates with a software system dedicated to handling emails sent to Health Workers.
The SPICE application also leverages an SMS software system to transmit information to the patient directly.
SPICE Mobile (Android application) is the primary application for end-user engagement
SPICE Admin users interact with a web application built with HTML, JavaScript, and React, serving as the front end for managing organizations, metadata, and workflows.
We have a set of core platform services (microservices) that the applications query using REST API calls.
The web application communicates with the following services:
Admin Service: A SpringBoot-based service that enables the creation of metadata, management of facilities, and linking facilities with users.
User Service: A SpringBoot-based service responsible for user management, client profiles, and authentication/authorization.
Notification Service: A SpringBoot-based service managing notifications through SMS, email, and WhatsApp.
The mobile application users input patient data via a Kotlin-based mobile application available on the Play Store. The mobile application communicates with three services:
User Service: The same service utilized by SPICE Admin users, managing user-related functionalities and authentication.
Notification Service: Also shared with SPICE Admin users, responsible for handling notifications.
SPICE Service: A SpringBoot-based service overseeing screening, enrollment, assessment, and medical review. It utilizes AWS storage for data storage requirements.
All four services (Admin, User, Notification, and SPICE) interact with an RDS instance, employing PostgreSQL to store and retrieve meta, configuration, and transaction data.
The Notification Service forwards patient-related information to SPICE Admin users via an email system.
Additionally, the Notification Service employs an SMS system to directly communicate information to the Patients.
The Mobile application performs the main functions through API calls to the service layer. The mobile application is made up of the following components that communicate with the associated microservices in the service layer:
Screening Manager
Patient Enrollment Manager
Medical Review Manager
Assessment Manager
Medication Manager
Lab Test Manager
Nutrition Manager
The following details out what each component is responsible for:
The Screening Manager component is responsible for gathering basic information and health-related data during the screening process.
The Patient Enrollment Manager component facilitates the enrollment of patients either from the screening process or directly into the system.
The Medical Review Manager component handles the management of medical reviews, including maintaining a history of reviews and adding new reviews.
The Assessment Manager component assists in managing patient assessments and creating follow-ups for assessments.
The Medication Manager component allows the CHW to prescribe and manage medications, refill prescriptions, and save the Practitioner Signature in an AWS storage.
The Lab Test Manager component enables the CHW to manage and prescribe lab tests, as well as manage the results of the tests.
The Nutrition Manager component supports the CHW in managing and prescribing nutrition counseling.
All of the above-mentioned components are part of the comprehensive SPICE service, which interacts with an RDS instance to store and retrieve the corresponding data.
The Web Admin System comprises a web application that interacts with the Admin Service, which contains three main components:
Organization Manager
Metadata Manager
Workflow Manager.
The following details out what each component is responsible for:
The Organization Manager component handles the management and creation of Regions, Accounts, Operating Units, and Sites.
The Metadata Manager component is responsible for managing data related to medication and lab tests.
The Workflow Manager component allows customization of workflows associated with screening, enrollment, assessment, and account customization.
Each of the three components communicates with an RDS instance, which utilizes PostgreSQL as the database technology.
The RDS instance is responsible for storing and retrieving all meta, configuration, and transaction-related data.