// Include common libraries /* AWS Technologies vocabulary */ // Systems !constant AWS "AWS" !constant AWS.Description "Amazon Web Services" !constant AWS.Chime "Amazon Chime" !constant AWS.Chime.Description "Communications service that lets you meet, chat, and place business calls inside and outside your organization, all using a single application." !constant AWS.IAM "AWS IAM" !constant AWS.IAM.Description "Identity and Access Management" !constant AWS.STS "AWS STS" !constant AWS.STS.Description "Security Token Service" // AWS Technologies !constant AWS_SQS "AWS Simple Queue Service" !constant AWS_REDIS "AWS ElastiCache for Redis" !constant AWS_SM "AWS SecretsManager" !constant AWS_LAMBDA "AWS Lambda" !constant AWS_RDS "AWS RDS" !constant AWS_DYNAMODB "AWS DynamoDB" !constant AWS_S3 "AWS S3" !constant AWS_SF "AWS StepFunction" !constant AWS_SNS "AWS Simple Notificaction Service" !constant AWS_GLUE "AWS Glue" /* Common vocabulary constants */ !constant RDCS "RocheDiabetes Care Solutions" !constant PROFSOL "Professional Solutions" !constant PLATFORM "Plaform" /* Technologies vocabulary */ // Common technologies !constant TLS "TLS" !constant JDBC "JDBC" !constant JSP "JSP" !constant NODE "NodeJS" !constant SPRING_MVC "Spring MVC" !constant SPRING_BOOT "Spring Boot" !constant MSSQL_EE "SQL Server Enterprise Edition" !constant POSTGRESQL "PostgreSQL" !constant DOTNET ".NET" !constant MFC "MFC" !constant SWIFT "Swift" // Formats !constant ACSPIX "ACSPIX" !constant JSON "JSON" !constant ROCHE_JSON "RocheJSON" // Communication channels !constant HTTPS "HTTPS" !constant JSON_HTTPS "JSON/HTTPS" !constant ACSPIX_HTTPS "ACSPIX/HTTPS" !constant CDF_HTTPS "CDF/HTTPS" !constant WS "WebSocket" // Languages !constant JS "JavaScript" !constant TS "TypeScript" !constant REACT "React" !constant JAVA "Java" !constant MONO "Mono" !constant SCALA "Scala" /* Persons constants */ !constant ADMIN "Admin" !constant ADMIN.Description "Roche administrator, that manages onboardings and centers; is always considered an 'internal' user" !constant HCP "HCP" !constant HCP.Description "The health care professional is the medical practitioner treating the patient; is always considered an 'external' user" !constant HCP.Master "HCP Master" !constant HCP.Master.Description "The healthcare professional (Master - Owner of Healthcare Center); is always considered an 'external' user" !constant PWD "PwD" !constant PWD.Description "Patient with diabetes is the end user of the solution / system; is always considered an 'external' user" !constant DSS "DSS" !constant DSS.Description "Digital support service user is a special Roche internal user that has access to production environment and can perform various maintenance and corrective tasks" !constant DEVOPS "DevOps" !constant DEVOPS.Description "The DevOps user is an internal Roche user responsible for the operation and maintenance of the infrastructure" /* Professional solution (Professional ART) vocabulary system constants */ !constant RDCP "RocheDiabetes Care Platform (RDCP)" !constant SP2C "SmartPix2Cloud (SP2C)" !constant RDCP.HCP.Portal "RDCP.HCP.Portal" !constant RDCP.HCP.Portal.Description "Allows Healthcare Professional accessing their patients and their medical data." !constant RDCP.HCP.SelfReg "RDCP.HCP.Self-Registration" !constant RDCP.HCP.SelfReg.Description "Allows owners of HCC's to register their Healthcare Center to start managing their healthcare center and patients in RDCP." !constant RDCP.BackofficePortal "RDCP.BackofficePortal" !constant RDCP.BackofficePortal.Description "Allows Roche Admins onboarding processes for new healthcare centers and management of existing ones." !constant RDCP.UniversalDTC "RDCP.UniversalDTC" !constant RDCP.UniversalDTC.Description "Allows readout and upload of medical data from blood glucose devices, insulin pumps and CGMs into RDCP." !constant RDCP.Patient.Portal "RDCP.Patient.Portal" !constant RDCP.Patient.Portal.Description "Allows patients to visualize their medical data, personal information and access home delivery." !constant RDCP.Legacy "RDCP.Legacy" !constant RDCP.Legacy.Description "Collection of legacy Backend Services to support RDCP (including legacy monolithic app)." !constant RDCP.Permissions "RDCP.Permissions" !constant RDCP.Permissions.Description "Allows validation of permissions, modules and access to specific resources within RDCP." !constant RDCP.Notifications "RDCP.Notifications" !constant RDCP.Notifications.Description "Allows management of Notifications." !constant RDCP.StripsManagement "RDCP.StripsManagement" !constant RDCP.StripsManagement.Description "Allows strips management (stock, delivery)." !constant RDCP.Patterns.And.Indicators "RDCP.Patterns.And.Indicators" !constant RDCP.Patterns.And.Indicators.Description "Allows enrichment patient's status based on predefined set of patterns." !constant RDCP.UserManagement.And.Records "RDCP.UserManagement.And.Records" !constant RDCP.UserManagement.And.Records.Description "Allows centralized access and management of RDCP users." !constant RDCP.Diagnostics.And.Medications "RDCP.Diagnostics.And.Medications" !constant RDCP.Diagnostics.And.Medications.Description "Diagnostics and Medications." !constant RDCP.UniversalDTC.Services "RDCP.UniversalDTC.Services" !constant RDCP.UniversalDTC.Services.Description "Allows additional support of various functionalities of uDTC (whitelisting of devices and their versions that are supported by RDCP)." !constant RDCP.Organizations "RDCP.Organizations" !constant RDCP.Organizations.Description "Provides APIs for management of organizations" !constant RDCP.Analytics "RDCP.Analytics" !constant RDCP.Analytics.Description "Allow recollection of metrics for analytics" !constant RDCP.Devices "RDCP.Devices" !constant RDCP.Devices.Description "Management of devices." !constant RDCP.VisitManagement.And.Communication "RDCP.VisitManagement.And.Communication" !constant RDCP.VisitManagement.And.Communication.Description "Allows managements of patients visits to the HCP's, recording of notes and communication between PwD's and HCP's." /* Plaform ART vocabulary system constants */ !constant Platform.ApiManager "Platform.ApiManager" !constant Platform.ApiManager.Description "The Roche ecosystem API Gateway used to NAT all the traffic to / from each solution and service" !constant Platform.CIAMCM "Platform.CIAMCM" !constant Platform.CIAMCM.Description "Customer Identity and Access Management and Consent Management is the central storage for identity and consents of each user" !constant Platform.CIAMCM.Gigya "Platform.CIAMCM.Gigya" !constant Platform.CIAMCM.Gigya.Description "CIAMCM's Gigya instance for user identity management" !constant Platform.DiagnosticsAndMedications "Platform.DiagnosticsAndMedications (FHIRStack)" !constant Platform.DiagnosticsAndMedications.Description "Allows storage and retrieval of diagnostics and medications data of the patients." !constant Platform.DataIntegrations "Platform.DataIngetrations" !constant Platform.DataIntegrations.Description "Data integrations layer" /* Personal solutions vocabulary system constants */ !constant Personal.mySugr "Personal.mySugr" !constant Personal.mySugr.Description "Software system comprised of mobile application (FE) used by PwD and back-end for managing diabetes" !constant Personal.Confidence "Personal.mySug" !constant Personal.Confidence.Description "Mobile application to manage and view Roche CGM sensor and send data to RDCS Platform" !constant Personal.Glucolytics "Personal.Glucolytics" !constant Personal.Glucolytics.Description "Software system comprised of mobile application (FE) used by PwD and back-end for A.I. based predictions using the CGM and other relevant data" // Workspace definition workspace "${RDCS} - mySugr Predict Integration" "${RDCS} - Personal Solutions Integrate mySugr with Accu-Check Predict" { model { properties { "structurizr.groupSeparator" "/" } pwd = person "${PWD}" "${PWD.Description}" mysugr_fe = element "mySugr" "mySugr mobile application" { tags "RocheMob" } mysugr_legacy_fe = element "mySugr - Legacy" "mySugr legacy mobile application" { tags "RocheMob" } predict_fe = element "Predict App" "Glucolitycs - Smartlife mobile application" { tags "RocheMob" } group "Roche cloud ecosystem" { group "mySugr" { my_be = softwareSystem "Personal.mySugr.backend" "collection of services used by the mySugr App"{ grpc_srv = container "mySugr.BE.service" "Business / data domain, REST service" //rest_proxy = container "mySugr.ReverseProxy" "reverse proxy for the gRPC service" } } group "Predict" { predict_be = softwareSystem "Personal.smartlife.backend" "collection of services and algorithms to provide CGM based predictions" } } // gRPC proxy relations mysugr_fe -> grpc_srv "Make REST API (V2) calls to" "${JSON_HTTPS}" { tags "API Call (latest)" } mysugr_legacy_fe -> grpc_srv "Make REST API (V1) calls to" "${JSON_HTTPS}" { tags "API Call (older)" } mysugr_fe -> predict_be "Make REST API (V2) calls to" "${JSON_HTTPS}" { tags "API Call (latest)" } mysugr_legacy_fe -> predict_be "Make REST API (V1) calls to" "${JSON_HTTPS}" { tags "API Call (older)" } //grpc_srv -> predict_be "Make REST API calls to" "${JSON_HTTPS}" predict_fe -> predict_be "Make REST API calls to" "${JSON_HTTPS}" { tags "API Call (breacker)" } pwd -> mysugr_fe "Use application" pwd -> mysugr_legacy_fe "Use application" pwd -> predict_fe "Use application" } views { systemlandscape "RocheLandscape" { include * } container my_be "grpc01" "gRPC and REST API View" { include * pwd predict_fe predict_be } styles { element "RocheGateway" { shape RoundedBox width 3900 background grey } element "CGM Patch" { shape Circle color #0038a8 } element "MicroPump" { shape RoundedBox color #c2b280 } element "RocheHCC" { shape Ellipse background #8fbc8f stroke #ff0000 } element "RocheWeb" { shape WebBrowser } element "Group" { color #c0c0c0 stroke #c0c0c0 strokeWidth 10 } element "Group:Platform" { color #008000 stroke #008000 strokeWidth 10 } element "RocheMob"{ shape MobileDeviceLandscape # background #de3e63 } element "RocheMessageBus" { shape Pipe } element "RocheStorage" { shape Cylinder } element "RocheFileStorage" { shape Folder } element "RocheWebpage" { shape WebBrowser } element "Software System" { background #1168bd color #ffffff } element "Person" { shape person background #08427b color #ffffff } element "RocheExtPerson" { shape person background #6C6477 color #ffffff } element "RocheExtSoftwareSystem" { background #8C8496 color #ffffff } relationship "RochegRPC" { color blue thickness 10 style solid } relationship "API Call (latest)" { color green thickness 8 style solid } relationship "API Call (older)" { color red thickness 10 style solid } relationship "API Call (breacker)" { color orange thickness 10 style solid } } } }