System Overview
The EVS Report Exporter is a Spring Boot/Vue.js 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 the NCI Thesaurus (NCIt) triple store database through the EVS REST API. This application provides 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 behind an Apache reverse proxy. The expectation is that an NIH managed Amazon Web Service virtual machine will host the tomcat instance 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 Vue.js 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 user interface 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. Users will be able to select entities from the NCIt by entering entity codes into web page, select which properties of that entity to download, select a file format, and download as a file. A user will be able to enter a list of entity codes or provide a top node of a hierarchy of nodes to resolve. Hierarchies may be downloaded to a given depth which will be selected by the user up to and including resolving an entire hierarchy.
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 | ||||
UI Resolved Branch shall allow a user to "Export now" or "Export and download later".
| UI | High | ||||
The Downloads page allows the user to download resolved branch reports that were exported with the Export and download later option. When the user selects the Export and download later option and exports, the browser stores the download ID locally and will remember it. These downloads shall be available for one hour after they are created. After that, the server will expire the export and it will be removed. | UI | High | ||||
On the Downloads page, there will be two tabs: The Downloads List Tab contains a table of all known Export and download later exports from the current browser. The browser stores a list of the download IDs to display. The Status column can be one of the following status:
The Downloads Search Tab allows a user search for a download ID that they got when they selected Export and download later. The user can search for their download ID. The three possible respones are:
| UI | High | ||||
Report Exporter Survey/Feedback There will be a link in the sub header on the upper right of the page. There will be the following fields: A user can only send feedback once per day. | UI | High |