Skip to main content

Build and Module Architecture

The SureClinical platform is a Maven multi-module project rooted at SC/pom.xml. All modules share a common parent BOM defined in SC/suredms-project/pom.xml, which centralises version management for all third-party libraries.


Parent BOM — suredms-project

SC/suredms-project/pom.xml is the shared dependency management parent. It defines version properties used by all other modules:

PropertyVersion
camunda.bpm.version7.19.0
hibernate.core.version5.6.10.Final
jackson.version2.15.2
Java compiler target1.8

Module Map

The following modules are active declarations in SC/pom.xml and are built by a root mvn install. They are grouped by build layer. Modules that exist in the workspace but are not currently declared in the root aggregator are listed in Workspace Modules Not in Root Aggregator.

Platform Foundation

ModulePackagingPurpose
suredms-projectpom (BOM)Shared parent and dependency version management
suredms-commonjarShared entity model, abstract services, utilities, and cross-cutting logic

Content and Parsing

ModulePackagingPurpose
suredms-parserjarArchive parsing, model conversion, and import/export pipelines
suredms-xls-parserjarExcel/spreadsheet parsing — SureDrive and Study workbook handling
suredms-reportjarReporting resources and report-related helpers
suredms-flex-apijarAPI surface for legacy/auxiliary clients

Web Platform

ModulePackagingPurpose
suredms-web-clientwarPrimary Angular web client — routes, wizards, dashboards, browser UI
suredms-web-startjarWeb launch/startup layer for the browser client
suredms-webwarWeb packaging, JNLP/web delivery artifacts

Desktop Platform

ModulePackagingPurpose
suredms-desktop-clientjarDesktop client shell and runtime (Java Swing)
suredms-desktop-client-datajarDesktop entity model and shared client-side data definitions
suredms-desktop-client-connectorjarConnector layer — remote services, XML parsing, Nuxeo/endpoint integration
suredms-desktop-client-qualityjarQuality review, audit, discrepancy, and charting features
suredms-desktop-client-signingjarSigning, certificate, and eSign features

Workflow and Nuxeo

ModulePackagingPurpose
suredms-workflow-platform-corejarWorkflow model, services, and shared workflow abstractions
suredms-workflow-platformjarWorkflow UI, wizard flows, task handling, and platform views
suredms-nuxeo-clientjarNuxeo client integration — remote content/document access
suredms-nuxeo-extensionsjar/nuxeoNuxeo extension modules and server-side integration

Workspace Modules Not in Root Aggregator

The following modules exist in the SC/ workspace but are not declared as active modules in SC/pom.xml. They are not built when running mvn install from the root and must be built individually if needed.

ModulePackagingPurposeStatus
suredms-web-servicejarSpring Boot service — document processing, OCR, redaction, watermark endpointsNot in root aggregator
suredms-pwajarProgressive web app (mobile) assetsNot in root aggregator
suredms-chrome-extensionjarBrowser extension integrationNot in root aggregator
suredms-simple-api-clientjarLightweight API client and integration test helpersNot in root aggregator
suredms-dbfillerjarData seeding and archive filler supportNot in root aggregator
suredms-electronjarElectron packaging and desktop shell integrationCommented out in SC/pom.xml

Dependency and Build Order

The implied build order from dependency relationships is:

1. suredms-project           (BOM — no dependencies)
2. suredms-common (depends on: suredms-project)
3. suredms-nuxeo-client (depends on: suredms-common)
4. suredms-parser (depends on: suredms-common, suredms-nuxeo-client)
5. suredms-xls-parser (depends on: suredms-parser)
6. suredms-report (depends on: suredms-common)
7. suredms-workflow-platform-core (depends on: suredms-common)
8. suredms-desktop-client-data (depends on: suredms-common)
9. suredms-desktop-client-connector (depends on: suredms-desktop-client-data, suredms-nuxeo-client)
10. suredms-desktop-client-signing (depends on: suredms-desktop-client-connector)
11. suredms-desktop-client-quality (depends on: suredms-desktop-client-connector)
12. suredms-desktop-client (depends on: all desktop-client-* modules)
13. suredms-workflow-platform (depends on: suredms-workflow-platform-core)
14. suredms-web-client (depends on: suredms-common — web assets only)
15. suredms-web (war packaging, depends on suredms-web-client)
16. suredms-nuxeo-extensions (depends on: suredms-common, suredms-nuxeo-client)

Module Ownership Boundaries

When tracing a SureDrive feature, use these ownership rules:

ConcernOwner Module(s)
Angular UI routes, controllers, templatessuredms-web-client
Shared domain entities and service contractssuredms-common
Nuxeo Automation Operations (server-side)suredms-nuxeo-extensions
Nuxeo remote client (Java API calls)suredms-nuxeo-client
Document upload/processing (OCR, redact, watermark)suredms-web-service
Archive import/export parsingsuredms-parser, suredms-xls-parser
Desktop UI and quality reviewsuredms-desktop-client, suredms-desktop-client-quality
Digital signingsuredms-desktop-client-signing
Desktop ↔ Nuxeo bridgesuredms-desktop-client-connector
Workflow engine (desktop)suredms-workflow-platform, suredms-workflow-platform-core
Report definitions and resourcessuredms-report

SureNetwork Global and SureConnect

These are sub-projects within the SC workspace that are not Maven sub-modules of SC/pom.xml but are related platform components:


Dependency graph status: The build order above is based on known module relationships and is accurate for the active modules in SC/pom.xml. The dependency chains have not been regenerated from actual <dependency> declarations. To produce a verified graph: run mvn dependency:tree from each module in the Module Map above, or trace all <dependency> entries in each module's pom.xml. Key files: one pom.xml per active module directory listed in the Module Map.