- MySQL is currently used as the database for CRS backend. However, CRS backend also works on alternative databases (e.g. PostgreSQL, MS SQL, etc.)
- Hibernate is chosen as the ORM library
- Spring Data JPA is used as the repository for adding, updating, deleting and retrieving data
- CRS Core is the implementation of CRS API, which defines interface for business functions such as creating, submitting requests, etc.
- REST API is built using Spring MVC
- Spring Security is used for authenticating with IMS and authorization.
- JIRA client is a sub-module solely used for communication with JIRA. Its implementation uses https://github.com/IHTSDO/jira-client to interact with JIRA
- SNOMED CT Client is a sub-module used for communication with SNOMED CT, its implementation uses Apache HTTP Client library to call SNOMED CT REST APIs
CRS Web UI
Contains the actual business sections for CRS application. Each component resembles a mini-MVC application by having a view, controller and potentially services file(s).
Contains common services that are used by all other components to send REST requests to CRS server.
Is responsible for all business logic around requests, including: listing requests, saving, submitting requests, etc…
Pages and routing for requests are also configured here.
All business processes for batch including batch import, preview,… are developed in this module
Partials and controller for main page are developed in this module. The handlers for main navigation menu are also be programmed in this module.
Is responsible for common error handling process.
Is responsible for controlling process of jira comments that are included in request details.
Provide a service that is responsible for checking new messages as well as managing user messages.
Provides common services for managing app notification.
Contains reusable components or partials of CRS application.
It is a partial view, which is extended from SCA project. It provides directive to show Concept model in complex mode.
Used by conceptEdit component to manage extra information for Concept.
Is responsible for loading app configurations (config.json) and provides services to expose these configurations to all other components.
Provides directives for all form controls that are used in CRS app.
Provides facilities to retrieve account information from IMS.
Provides services to contact with Jira through Jira API.
Extended from SCA project. This module provides services to get concepts, description, relationships… from snowowl server.
Extended from SCA project, provide Concept taxonomy view.
Extended from SCA project, provide Concept search tool.
Contains 3rd parties dependencies that are used in CRS application.
Support multi languages purpose.
Provides the common UI components that are mainly used in CRS application.
Used to implement file upload facility.
Used to build tables with searching, searching, paging,… supported.
Support drag and drop events.
All app configurations are configured in this file, they are:
• Endpoints: the service endpoints (crs, snowowl, ims,…)
• xhrTimeout: XHR timeout, default is 50s (50000ms)
• fileStatusPollingInterval: the interval for checking batch file status
• messagePollingInterval: the interval for checking new messages
• authorGroup: SCA Author user group, used to retrieve author users in assigning requests.
• userRole: mapped user roles
A folder that contains locale-*.json, with * is ISO-639-1 code. Each file contains texts in appropriate language.
Current file is locale-en.json, which contains English translation content.