Page tree
Skip to end of metadata
Go to start of metadata

 

 

Description:

- 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 


Components

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).

crs
Contains common services that are used by all other components to send REST requests to CRS server.


request
Is responsible for all business logic around requests, including: listing requests, saving, submitting requests, etc…
Pages and routing for requests are also configured here.

batch
All business processes for batch including batch import, preview,… are developed in this module

dashboard
Partials and controller for main page are developed in this module. The handlers for main navigation menu are also be programmed in this module.

error
Is responsible for common error handling process.

jiraComment
Is responsible for controlling process of jira comments that are included in request details.

message
Provide a service that is responsible for checking new messages as well as managing user messages.

notification
Provides common services for managing app notification.

Shared

Contains reusable components or partials of CRS application.

conceptEdit
It is a partial view, which is extended from SCA project. It provides directive to show Concept model in complex mode.

conceptInfo
Used by conceptEdit component to manage extra information for Concept.

configuration
Is responsible for loading app configurations (config.json) and provides services to expose these configurations to all other components.

formControl
Provides directives for all form controls that are used in CRS app.

ims
Provides facilities to retrieve account information from IMS.

jira
Provides services to contact with Jira through Jira API.

snowowl
Extended from SCA project. This module provides services to get concepts, description, relationships… from snowowl server.

taxonomy
Extended from SCA project, provide Concept taxonomy view.

search
Extended from SCA project, provide Concept search tool.

Bower components

Contains 3rd parties dependencies that are used in CRS application.

angular-translate
Support multi languages purpose.

angular-bootstrap
Provides the common UI components that are mainly used in CRS application.

ng-file-upload
Used to implement file upload facility.

ng-table
Used to build tables with searching, searching, paging,… supported.

angular-native-dragdrop
Support drag and drop events.

Configuration

config.json
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

translations
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.

 

  • No labels