System Overview
The EVS Report Exporter is a Spring Boot application that makes EVS REST API calls to generate customizable reports of the EVS terminologies. This application will allow EVS users to extract data out of NCIT triple store through the EVS REST API beside NCI Term Browser. This application will eventually provide users a flexible way to download a selected subset of terminologies from NCI Thesaurus. It may be required to make deeply recursive method calls requiring plenty of RAM type memory. It is expected to be hosted in a tomcat web application container with the possible addition of node.js instances in the same environment. Our expectation is of a Systems department managed web container using a war file deployed from a Jenkins track as needed.
The architecture will consist of Spring Boot Web Service with a node.js supported U.I. The expectation is that this will be hosted on Tomcat with Spring boot and Vue.js wrapped into the war file. If this isn’t possible we may need to use a node.js server to support the UI. No database will be required. We expect the service to have access the EVS API Rest Services which will provide data and API access for much of the functionality.
Services
The EVS Report Exporter services is a Spring Boot application that makes EVS REST API calls and possibly later make direct EVS Stardog DB SPARQL queries to generate customizable reports of the EVS terminologies.
User Interface
The EVS Report Exporter will have a web portal where user has the ability to create different formats of reports to export. These publicly accessed reports will contain user selected selected concepts and concept properties properties as well as the report format type.
Functional Requirements
# | Functional Requirement | Module | Notes | Expected Input | Expected Output | Priority |
---|---|---|---|---|---|---|
1 | Service shall provide ability to return a attributes for a list of valid concept codes. | Service | One or more concept codes | Concept metadata and properties for each code as limitations of the EVS API allow. Concept parents will also be expected | High | |
2 | Service shall provide ability to return a list of concept properties | Service | base URL + /properties | Filtered list of properties as curated by expert users | High | |
3 | Service shall provide ability to return a list of export formats available (JSON, CSV, Tab Delimited, Excel) | Service | base URL + /<codes>/properties/<format: JSON,CSV,TABD,EXCEL>/<filename> | Returns file formatted in value indicated by format string | High | |
4 | Service for Resolved Branch shall provide ability to return a curated list of NCI Thesaurus branch concept codes | Service | We'll maintain for possible internal use. Not something to be tested | N/A | N/A | |
5 | Service for Resolved Branch shall provide ability to return entire concepts of a select branch given the following input parameters:
| Service | This encompasses and replaces the previous us case. Expected inputs include base URL /<code>/<properties>/<level>/,<format>/<filename> | A flattened version of the branch results including concept metadata, properties and parents | High | |
6 | Service for Entity Export shall provide ability to return entities for a list of concept codes given the following input parameters:
| Service | This is the same requirement and use case as the use case above. Exception: concept code inputs can be multiple but expected individual outputs are the same. | See proceeding column | High | |
7 | Service for Entity Export shall provide a list of hierarch roots. These will be the same as those expressed by the EVS API REST service | Service | base URL + /concept/<terminology>/roots | Listing of the terminology root concept code and name which will be the same as that expressed by the EVS API | High | |
UI shall be hosted on a public URL available outside the firewall | UI | High | ||||
UI shall work in the latest versions of Chrome, FireFox, IE, Safari | UI | High | ||||
UI shall be 508 compliant (https://www.section508.gov/test/web-software) | UI | High | ||||
UI shall have a header and footer similar to the look and feel and content of the EVS Explorer (https://evsexplore.nci.nih.gov/evsexplore/welcome) | UI | Medium | ||||
UI shall allow the user to select the type of report they want to export
| UI | High | ||||
UI Entity Export will allow a user to enter NCI Thesaurus concept codes either manually or paste in a comma delimited list of concept codes. | UI | High | ||||
UI Entity Export shall allow a user to select what properties that they want associated with the export. These properties will be a filtered list retrieved from the server. | UI | High | ||||
UI Entity Export shall allow a user to select the format of the report. Formats must have a user friendly description. Formats must include:
| UI | High | ||||
UI Resolved Branch Export will allow a user to select an NCI Thesaurus top node code. The user must have the following options for selecting a top node:
| UI | High | ||||
UI Resolved Branch Export will allow a user to select the number of levels to export. | UI | High | ||||
UI Resolved Branch shall allow a user to select what properties that they want associated with the export. These properties will be a filtered list retrieved from the server. | UI | High | ||||
UI Resolved Branch shall allow a user to select the format of the report. Formats must have a user friendly description. Formats must include:
| UI | High | ||||