Goals
To build a single concept authoring tool that provides basic functions for creating and editing a single concept.
Scope
Using the new authoring tool to release SNOMED CT without the Workbench.
Background and strategic fit
SNOMED CT has over 400,000 concrete concept models. Considering logical model as an abstract class, the concrete concept models in SNOMED CT can be manufactured to import into the logical model. The logical components of all of concrete concept models can be viewed in the logical model, include parent and attribute(s). At this moment, we need to build a user interface for managing descriptions and request to the server for all of the pieces of given concept so that we can display the existing concept.
Assumptions
- The single concept authoring tool will use batch for single concept creation and editing.
- It is possible to reuse the model creator/editor has been developed. However, it won't be used as a base for creating a matrix. Instead, it will be used as an actual representation of the logical of the concrete concept models.
- The new tool is not a one-to-one replacement of the Workbench but it can be use for new release.
Process of using single concept authoring service
Implemented Functional Requirements in Phase 1
All requirements below are implemented
# | Title | User Story |
1 | Review and commenting in SCA | How do we provide sufficient review feedback and content team interaction within the SCA UI for release by September? What are the infrastructure and services implications? |
2 | Externalise angular template app endpoint URL's for CI deployments. | Need to create an angular factory to pick up application endpoint urls for the angular template application. Atm limiting to IMS and snowowl endpoints. |
3 | Open & display a new task (view the Authoring panel) - create page | - includes the taxonomy panel - forms for editing concepts - markup for model viewer |
4 | Change crowd.token_key to be environment specific | Change the crowd.token_key to be environment specific so that logging in to a deployment platform doesn't log you out of another (eg logging into production Jira doesn't log out of development SCA). |
5 | Enhance screen layout responsiveness | Ensure screen layouts adapt responsively to resizing for smaller screens/windows. |
6 | Match up dashboard/ edit panel buttons styling to visual designs | Goal is to update the SCA page/views layout/styling/behaviour to match screen design visuals and any related annotations (see attached PDF). Also need to consider * headers (full width, include identity mgt context link switching) * footers (full width) * placeholder messages/styling and default container heights/widths when first opened with no content present (info boxes/messages should use patterns already defined). Code updates for UI layout, styling and behaviour enhancements should be done directly in the SCA application to meet short-term re-demonstration needs (demo Fri 3 July 3pm BST); any necessary back-porting to the patterns library and/or template application repositories will be prioritised and scheduled for later implementation. |
7 | Replace Inferred SCTIDs with modified predictable Stated relationship SCTIDs | also remove current reconciliation where previously assigned SCTIDs are used. |
8 | Addition of Independant Scrolling to the edit side-bar. | To avoid overflow when expanding the taxonomy and with large search results sets. |
9 | Set up IMS deployments to accept cross origin requests from .ihtsdotools sub-domains | This will allow for all future tooling applications to call ims api endpoints (to obtain account information etc) without further configuration. Example of how to achieve this with nginx here: http://tech.shift.com/post/65650561508/cors-with-wildcard-subdomains-using-nginx |
10 | Match up UI styling and layout to visual designs | Goal is to update the SCA page/views layout/styling/behaviour to match screen design visuals and any related annotations (see attached PDF). Also need to consider * headers (full width, include identity mgt context link switching) * footers (full width) * placeholder messages/styling and default container heights/widths when first opened with no content present (info boxes/messages should use patterns already defined). Code updates for UI layout, styling and behaviour enhancements should be done directly in the SCA application to meet short-term re-demonstration needs (demo Fri 3 July 3pm BST); any necessary back-porting to the patterns library and/or template application repositories will be prioritised and scheduled for later implementation. |
11 | On creation of a new task, should be assigned to that user | When a user creates a new task with the button on the dashboard, the related JIRA ticket should be auto assigned to that user. |
12 | Add item numbering and "remove" button to the Saved List | Saved List items should have a visual reference number. |
13 | Optimise search, pagination and enhanced table controls (UI Framework) | Ensure advanced table controls such as column sorting are available. |
14 | Optimise taxonomy widget styling and behaviour (UI Framework) | Resolve earlier widget jquery / pattern library clashes discovered in Sprint 1. |
15 | Evaluate BE methods for preferred FSN description using a dialect (choices coded into front end for now) | *Note* Define descriptions Fully Specified Name (FSN), Synonym, Language Ref Set, one FSN is marked as "Preferred" in each language, one synonym is marked as "Preferred" in each language, the other synonyms are marked as "Acceptable" |
16 | Inactivate a concept - Reason not stated | *Requirement Description* It must allow the ability to make a concept inactive (Front End for this sprint) |
17 | Notification of save action | As an author, I want to get notification when a new concept is successfully saved in TS I know the new concept is saved. *Requirement Description* The tool should notify author when a new concept is successfully saved in TS Design Concerns Must have the ability to save one concept at a time May require saved status on each concept - Color to indicate Green or Red |
18 | Save a new concept into the terminology server by setting up logic for auto-saving | As an author, I want to click a button to save a New concept I just created so that I can save the new concept model. *Requirement Description* The tool must allow author to save a new concept into the TS *Design Concerns *-(by cloning or creating a child) If cloning is the method it will require a certain set of rules so that things like "Clone of" are not included in the concept - it should not be saved until those rules are met. *Options on design* Discussion When its a new concept you have to save so that it will exist on TS. Assumption is that you would click a save button Option 1 - Create a pop-up which says give me your preferred term,parent etc., creates it or Option 2 -Re-use editing fields and have the front end keep trying to save, also warn on what is missing. Option 3 - You could auto-create as well as auto-update from the front end. There is a risk that people would forget to change the fields. Need to ensure that when concepts are cloned that they name is required to be changed before its saved so that the word "clone" is not included. RTU -Approach should be simplistic Option 4 - basic features of a concept that have to be met - 3 conditions met (name, 1 synonym and a parent ) then it is saved - if its cloned have a visual display to distinguish between the components that are saved and those that still need to be edited. Also do not have Clone of -When a concept is being cloned have a dialogue box with a request for a description and have the dialogue box pre-populated with the fully specified name of the concept that has been chosen as the model, the same dialog box could have an option of a preferred term with the identical text with exception of the semantic tag. That would take care of 2 of the 3. Preference also to give the option to keep the attributes and provide an option to keep or blank the values so that the Authors decisions are ensured as intentional RDA Option 5 - Only have a dialogue box with change request to the FSN as a starting point. They can then find it in the list in the edit panel and make changes thereafter. No changes in concept it should be picked up in classification or incorrect content in review Is it feasible to save a partial concept? or they have to complete it before it can be saved Option 6 - New concepts that are cloned must be saved (or are saved automatically with further editing as an assumption) What is the preference Button to save, Dialogue box or autosave? Use the easiest implementation and decide what is the point of requiring it to be saved - Must have the 3 minimum's and use US English, assumption that is has a parent and that it can be edited. |
19 | Drag and drop to define a concept's parent | As an author, I want to drag and drop to define a concept's parent FSN so that I can define a concept's parent |
20 | Add a new concept by cloning existing concept | As an author, I want to clone a reference concept to a new editing pane without the description by clicking a 'clone' button so that I can create a new concept without changes to the existing concept. ***Note: Create a new concept starting with an existing concept in SNOMED CT (The tool must allow author to clone an existing concept to the editing panel but leave descriptions blank) |
21 | Inactivate a description - Reason not stated | *Requirement Description* It must allow the ability to make a description inactive in an existing concept (Front End for this sprint) Design Comment Implementers must understand how to do - You can merge WRP-533 |
22 | Inactivate a description | As an author, I |
23 | Add a description (to an existing concept) | As an author, I want to click a button to add a description to an existing concept so that I can add a new description to the concept. *Requirement Description* It must allow to add new field for new description or new relationship on cloned model in editing Panel Design Comment It must exist on task branch |
24 | Inactivate a relationship | As an author, I want to click a button to retire an existing relationship so that I can retire the inappropriate relationships of a concept. *Requirement Description* It must allow the ability to make a relationship inactive in an existing concept (Front End for this sprint) |
25 | Inactivate a concept - Select a reason for inactivation | |
26 | Inactivate a concept (Inactivate all descriptions and relationships at the same time) | |
27 | Ungroup relationships (remove a relationship group) | As an author, I want to be able to ungroup relationships so that I can change the relationship groups if I need to. Design Comment Relationship has to be set to zero |
28 | Set the component (active) status | *Requirement Description* Define active status of component (Active, Inactive) Scope is any component in the editing panel |
29 | Create a relationship group | |
30 | View logical model for selected concept | As an author, I want to see the logical model of existing concept that populated to editing panel so that I can see a visual diagram of concept model. Design comments It will be seen automatically when the edit pane is populated with a concept. It renders as SVG at the moment. Code will need to developed (code exists in Browser). Front end development only needed. |
31 | Specify preferred FSN description using a dialect (choices coded into front end for now) | *Note* Define descriptions Fully Specified Name (FSN), Synonym, Language Ref Set, one FSN is marked as "Preferred" in each language, one synonym is marked as "Preferred" in each language, the other synonyms are marked as "Acceptable" |
32 | Add a relationship (use plus sign to create a blank field.sprint 1 is populated by dragging an item in saved list) | As an author, I want to click a button to add relationship so that I can add a new relationship of the concept |
33 | Save all changes of an existing (resides on TS, task branch level) concept into the TS | As an author, I want the tool to save all changes I made on an existing concept into the TS immediately after I changed so that I won't lose any changes I made. *Requirement Description* The tool must automatically save all changes of an existing concept into the TS |
34 | Populate edit panel with details of selected concept in saved list | As an author, I want to populate the existing concept I searched into edit pane so that I can use the information of this concept as a reference. ***Note: Populate all information of the reference concept from Saved list into editing panel (The tool must allow author to select an existing concept from search result, populate information of the existing concept model into the editing panel by click a button on the Saved List, and display the logical model diagram |
35 | Display equivalency errors in a tab | As an author, I want to see the new concept and the equivalent existing concept in the equivalency errors tab so that I can know if I created a duplicate concept. Requirements: - It must list the concept and its equivalent concept in the equivalency errors window. - It should distinguish each pair of equivalent concepts in the errors window. For example, Equivalent pair # Concept 1 (new) Computed tomography of lower limb with contrast (procedure) 1 (existing) Computed tomography of lower extremity with contrast (procedure) 2 (new) Computed tomography of ankle region structure (procedure) 2 (existing) Computed tomography of ankle (procedure) |
36 | BE - Task Level - Display validation summary report at task level | As an author, I want to see a summary report of failed assertions, ordered by number of cases, descending. I also want a way to access the failure cases, so that I can correct errors. |
37 | BE - Task Level - Click a button to display cases of a given failed assertion in validation summary report | As an author, I want to click a button on the validation summary report to go to the page of a set of cases of a given assertions so that I can see the details of each case. Not include non-assertion errors |
38 | BE - Task Level - Notify user when validation summary report is ready. | As an author, I want to get a notification on my dashboard when validation summary report is ready so that I can check my validation results. Use different colours to distinguish new and old notification. |
39 | BE - Project Level - Display validation report at project level | As a project lead, I want to see a validation report at the project level so that I can check if there is any validation errors in the project. |
40 | BE - Provide message to front end | |
41 | BE - Task Level - trigger validation running on a task. | As an author, I want to click a button to run validation on my task detail panel, between the 'classify' and 'review' buttons, to generate a report of content errors in my task. |
42 | Project Level - Display a set of cases of a failed assertion for project | As a project lead, I want to see a set of cars of a failed assertion for project so that I can know what concepts have that error. |
43 | Task Level - Display page number navigation on validation report | As an author, I want to have a page number navigation bar at the bottom of my validation report so that I can review the entire report page by page. |
44 | Task Level - Display validation error in edit panel | As an author, I want to select one or more cases have the same validation error in validation report then the selected concepts can be displayed in the edit panel so that I can review and possibly edit them in the edit panel. |
45 | Implement "download" action within the classification report UI | As an author, I want to download the classification report to my local drive so that I can compare the differences in each classification report after I run classification more than once. Requirement: It should be able to download the classification report as a .csv file |
46 | Project Level - Display validation report at project level | As a project lead, I want to see a validation report at the project level so that I can check if there is any validation errors in the project. |
47 | Frontend - populate "My Projects" widget on the dashboard from back-end services data. | As an author, I want to see all of my projects listing in "My Projects" widget on my dashboard, which includes columns: Project Name, Project Lead, Classification Results, QA Results, and Status. Details: Project Name: Name of the authoring project Project Lead: Author(s) who is/are in charge the project Classification Results: Notification of classification results for a project QA Results: Notification of QA results for a project Status (of project): Elaboration, Construction, and Integration (do not need to implement) |
48 | Project Level - Click a button to run validation on a project from the project page (Front-End) | As a project lead, I want to click a button to run validation on my project from the My Projects page so that I can review a report of qa results on my project |
49 | Click a button to classify a project on a project page (Front-End) | As a project lead, I want to click a button to start classification on a project so that I can run classification on my project. |
50 | Open a project from my Dashboard | As a project lead, I want to open the page of a project by clicking the project name on my Dashboard so that I can see details of my project. |
51 | Classify a project branch (Back-End) | As a project lead, I want to classify a project so that I can evaluate classification results at project level. |
52 | FE - Task Level - Click a button to display cases of a given failed assertion in validation summary report | As an author, I want to click a button on the validation summary report to go to the page of a set of cases of a given assertions so that I can see the details of each case. |
53 | In classification report, indicate which relationship will be removed after classification | As an author, I want to see the relationships will be "removed" (instead of "was retired") in the classification report so that I can know which inferred relationships will be removed after classification. |
54 | FE - Task Level - Display validation summary report at task level | As an author, I want to see a summary report of failed assertions, ordered by number of cases, descending. I also want a way to access the failure cases, so that I can correct errors. |
55 | Task Level - Display a set of cases for a given failed assertion | As an author, I want to display a set of cases that failed a selected assertion, so that I can access the relevant concept in the editing panel. Details: * clicking pencil icon on the right displays the associated concept in the editing panel; * clicking one or more boxes to the left will display the concept associated with the selections, upon clicking the pencil icon in the header row; * clicking the box on the left of "Concept" in the header row will display all associated concepts in the editing panel. |
56 | FE - Task Level - Notify user when validation summary report is ready. | As an author, I want to get a notification on my dashboard when validation summary report is ready so that I can check my validation results. Use different colours to distinguish new and old notification. |
57 | Toggle inactive components of an existing concept in edit panel (Default showing active components of an existing concept only in edit panel) | As an author, I want the ability to toggle inactive components of an existing concept in edit panel so that I can see default view with active components only unless I need to check inactive components. |
58 | Update UI editing button status on ok response API call request | This is a UI perception enhancement. The initial implementation is ok functionally in that the back end changes are made, but the UI editing button button state changes are only reflected in the UI the next time the user performs another edit panel action (for instance the activate/inactivate button icon changes to blue on pressing it, but stays blue until another edit action is activated, when it then changes to green or red to reflect the concept status). A more intuitive UI solution would be to refresh the edit panel when the API call "ok" response is obtained, so the status change would feel immediate to the user - at the moment the user may be tempted to hit the button more than once as the "blue" intermediate state may suggest the active/inactive status change hasn't been applied yet. |
59 | Backend - API services to populate the "My Projects" widget on the dashboard | As an author, I want to see all of my projects listing in "My Projects" widget on my dashboard, which includes columns: Project Name, Project Lead, Classification Results, QA Results, and Status. Details: Project Name: Name of the authoring project Project Lead: Author(s) who is/are in charge the project Classification Results: Notification of classification results for a project QA Results: Notification of QA results for a project Status (of project): Elaboration, Construction, and Integration (do not need to implement) |
60 | FE - Task Level - Click a button to trigger validation running on a task. | As an author, I want to click a button to run validation on my task detail panel, between the 'classify' and 'review' buttons, to generate a report of content errors in my task. |
61 | Feedback message notification | There is no 'to' field on a feedback message so the suggested functionality is to notify both users associated with the ticket minus the user who sent the message. This will allow others to comment on the ticket and things to work naturally. |
62 | Obtain user information from IMS Rest endpoint. | Will replace the current implementation of relying upon authenticated api returns from SCA endpoints and allow for the use of roles within front-end logic (initially the view obtained within review but potentially activation of buttons/tabs etc depending on user permissions moving into phase 2). |
63 | BE - View a list of concepts to review in a task, in a “concepts to review” list | As a reviewer, I want to have a report which lists Fully Specified Names of all concepts edited by author in this task so that I go through the concepts included in this task. |
64 | Add a reference to a concept that *is a member* of the “concepts to review” set when reply feedback | As an author, I want to add a reference to a concept which is not in the "concepts to review" list so that I can share the reference with reviewer. |
65 | FE Request followup | As a reviewer, I want to request followup from author when I am sending the feedback so that I can follow up the specific feedback. After follow-up has been checked the colour of notification will be changed. |
66 | FE - View a list of concepts to review in a task, in a “concepts to review” list | As a reviewer, I want to have a report which lists Fully Specified Names of all concepts edited by author in this task so that I go through the concepts included in this task. |
67 | Click a Task Name on the Dashboard to display the Feedback View | As a reviewer, I want to click a task name on my dashboard to see the Feedback View so that I can start reviewing the task. |
68 | BE - Show 'Ready for review' task in 'Review Tasks' list | As an reviewer, I want to see the 'Ready for review' tasks in the 'Review Task' list on my dashboard so that I can pick up a task from there. ***Note: It should show all tasks that have been ready for review in the 'Review Task' list on the dashboard We do not have anything in review so this is not testable at the moment |
69 | Reply to feedback/follow-up | As an author, I want the ability to reply to reviewer's feedback so that I can send back my comments to the reviewer. |
70 | Add a reference to a concept that *is not a member* of the “concepts to review” set when reply feedback | As a author, I want to add a reference concept (which is not a concept to review) to a concept in the reviewed task so that I can refer a concept to reviewer if it is necessary. |
71 | Filter the “concepts to review” list based on text & wildcards | As a reviewer, I want to filter concepts by using a text filter so that all relevant concepts can be grouped in the list of concepts in the review task. |
72 | Mark a task as "in review" or "review complete" | As a reviewer, I want to mark a task as "in review" or "review complete" in my review task so that I know the status of the task when I come back to this task from another one. Status of the task on dashboard should be updated as well: from "In peer review" to "Ready for promotion" |
73 | Read feedback | As an author/reviewer, I want to see the thread of a feedback in reverse chronological order ( the most recent is on the top and the earliest is at the bottom ) so that I can always see the latest feedback at the top. |
74 | BE - Click a button to submit my task for review | As an author, I want to click a button to submit my task for review after my task is classified and validated so that I can move the task to the "in peer review" status. |
75 | Distinguish the feedback between that 'I have read' and 'I have not read' | As an author, I want to distinguish the feedback between have-read and have-not-read so that I can track feedback better. |
76 | Notify author when feedback is ready | As a author, I want to receive feedback immediately after reviewer added a feedback in the task so that I can check the feedback on one or more concepts before reviewer completed reviewing of the entire task. |
77 | Provide a list of concepts with feedback to author | As a reviewer, I want to provide a list of concepts with feedback to author so that author can check concepts with feedback only instead of go through all concepts. |
78 | Reorder the “concepts to review” list | As a reviewer, I want to reorder concepts by drag and drop to the desired starting position in the list then select other related concepts in the list so that I can review related concepts and make feedback on a group of concept. Example: 1 Original list: a b c d e f g 2 Drag the concept to the desired position: a g b c d e f 3 After select: a *g *b c *d e f 4 Click grouping button: a *g *b *d c e f |
79 | Access to the most recent classification report | As a reviewer, I want to access to the most recent classification report generated by author so that I can look into the classification details when I need. |
80 | Move one or more concepts from the “concepts to review” list to the “concepts reviewed” list | As an author, I want to add the concepts I have reviewed to the "Review Complete" so that I can distinguish those concepts to the ones I haven't reviewed. |
81 | BE - Provide feedback on a concept | As a reviewer, I want to provide feedback on any concepts in the review task so that I can let author know my feedback on his/her authoring work (including details on descriptions/relationships of a concept). |
82 | Select one or more concepts from the “concepts to review” list to view in the read only editing panel | As a reviewer, I want to populate the concepts to editing panel for review so that I can see the details. |
83 | Access to the most recent validation report | As a reviewer, I want to access to the most recent validation report generated by author so that I can look into the validation details when I need. |
84 | Select one or more concepts for which to provide feedback | As a reviewer, I want to be able to /add feedback to the concepts so that I can share my feedback with author. |
85 | Ability to leave feedback on multiple concepts | As a reviewer, I want to add a feedback for more than one concept so that I can give feedback on a group of concepts are similar. |
86 | FE - Show 'Ready for review' task in 'Review Tasks' list | As an reviewer, I want to see the 'Ready for review' tasks in the 'Review Task' list on my dashboard so that I can pick up a task from there. ***Note: It should show all tasks that have been ready for review in the 'Review Task' list on the dashboard We do not have anything in review so this is not testable at the moment |
87 | FE: My Projects widget -- display Lead | Dependent on lead information from back end |
88 | FE - Generate a Conflicts Report | As an author, I want to see a conflict report (if I have any conflicting concepts in my task with project) so that I can know what concept has conflicts and where is the conflicting concept. |
89 | BE- Click a button to merge a project to the mainline | As a project lead, I want to merge my project into the mainline after classification and QA check so that release manager can release the concepts in my project. |
90 | Refactor projects page | Projects page needs an updated ui as current ui was only temporary - !Screen Shot 2015-08-20 at 1.16.24 PM.png|thumbnail! |
91 | FE-Rebase a project | As an author, I want to rebase my project so that I am able to detect conflicts. |
92 | BE-Rebase a project | As an author I want to click a button to rebase a project. If there are no conflicts as a result of the rebase, I receive notification that the rebase has completed and there are no conflicts. If there are conflicts as a result of the rebase, the system creates a task containing a conflict report, between the mainline version of the concepts, viewable as read-only in the editing panel, and the project versions of the concepts, viewable as editable in the editing panel. The system also delivers a notification, at the project level, that the conflict task has been created. |
93 | Search a concept by concept ID | As an author, I want to type in a concept ID in the search field so that I can find the concept by searching concept ID. Requirement description: - display the concept that was searched by the concept ID - be able to add the concept into the Saved List from the search result |
94 | BE - Detect conflicts between a latest version of task and the latest version of the project (where the task belongs to) | As an author, I want to ability to detect conflicts in the rebase application so that I can check if I have any conflicts in my task during rebasing before merging the task to a project. |
95 | FE- Click a button to merge a task to project | As an author I want to click a button to merge my content changes in my task to the underlying project. When the merge is complete the system updates the task workflow state to "complete" or equivalent. To clarify the mer |
96 | FE - Trigger rebase application from SCA tool | As an author, I wan to trigger the rebase application from SCA tool (when I click Rebase button) so that I can rebase my task without manually logging in another application. |
97 | FE- Click a button to merge a project to the mainline | As a project lead, I want to merge my project into the mainline after classification and QA check so that release manager can release the concepts in my project. |
98 | Change status from 'Review completed' to 'Promoted' when author promoted a task to project level. | As an editor, I want to click a button to promote my task to the project level and the status of my task should be changed from 'Ready for promotion' to 'Promoted to project' so that my task will be saved to project level. |
99 | BE - Change status from 'In Peer Review' to 'Review Completed' when review is completed and all contents are approved | As a reviewer, I want the status of my review task to be changed from 'Peer review' to 'Review Completed' after I finished review so that author will know the task is reviewed. |
100 | Default new concept/components as active | As an author, I want the ability to default any added new concept or new components (descriptions or relationships) as active so that I won't add inactive new concept/descriptions/relationships by mistake. |
101 | FE - Rebase a task before merging to project | As an author, I want to rebase my task before merging to project so that I won't merge the task (with conflicts) by mistake. |
102 | FE - Conditional view for review on conflicts report | |
103 | FE- Notify when rebase is completed includes with or without conflicts notification | As an author, I want to receive a notification if I have any conflicts with project in my task so that I can know some conflicts were detected during rebasing. |
104 | BE - Generate a Project level conflicts report | As an author, I want to see a conflict report (if I have any conflicting concepts in my task with project) so that I can know what concept has conflicts and where is the conflicting concept. |
105 | FE - Click a button to rebase a task | As an author, I want to click a button to rebase my task before I merge it to the project level so that I can detect if there is any conflicts between task and project. |
106 | BE - Rebase a task before merging to project | As an author, I want to rebase my task before merging to project so that I won't merge the task (with conflicts) by mistake. |
107 | Ability to drag and drop the components of a conflicting concept to another in edit panel | As an author, I want to drag and drop the components of the conflicting concepts between each other in edit panel so I can resolve the conflicts immediately after conflicts are detected. |
108 | Populate the conflicting concepts to edit panel | As an author, I want to populate the conflicting concepts to the edit panel from conflict report so that I can see the details of each concept |
Functional Requirements
Authoring Functions
# | Title | User Story |
---|---|---|
1 | Creating a new concept starting with a concrete model in SNOMED CT | As an author, I want to create a new concept by using an existing model so that I can reuse the relationships in an existing concept model to create my new concept model. |
2 | Representing the searched concept model | As an author, I want to see the concept model I searched from taxonomy so that I can know if it is the concept model I wan to use to create a new one. |
3 | Editing to the logical model | As an author, I want to edit the logical model by drag and drop the |
4 | Editing the description (FSN, PT, etc.) | As an author, I want to edit the description in text fields |
5 | Accessing to more descriptions | As an author, I want to add more descriptions of the concept |
6 | Defining language | As an author, I want to define the type of language |
7 | Handling multiple instances of single concept editing by using list management (being able to handle lists of a number of different concept changes, but each applied to a single concept) | As an author, I want to manage many different single concept changes in one list/webpage |
8 | Adding more than one new concept editing in a single window | As an author, I want to add more than one concept change in the same webpage |
9 | Displaying the SNOMED CT taxonomy | As an author, I want to see the SNOMED CT taxonomy |
10 | Searching the existing concept model in taxonomy | As an author, I want to search the existing concept model in taxonomy, which is the one I want to use as a start point |
12 | Displaying the searched existing concept model in logical model | As an author, I want to see the diagram of my selected concept model |
13 | Saving the concepts just created in single concept editing tool | As an author, I want to save all edits of the concepts |
14 | Validating each concept editing individually | As an author, I want to validate each concept I edited |
15 | Classifying concepts in the list | As an author, I want to classify concepts I edited |
16 | Moving forward to the next step (review) | As an author, I want to move the completed editing task to the review stage |
17 | Grouping and ungrouping the relationship group | As an author, I want to be able to group and ungroup the relationship groups |
18 | Reviewing the searched model and editing model side by side in the same window | As an author, I want to see both logical model I searched in taxonomy for reference and the model I am editing so that I can compare them easily. |
19 | Deleting the new description/attribute/value/concept from the editing panel if concept is unreleased | As an author, I want to be able to delete the descriptions, attributes-values, relationship group so that I can delete the wrong one before I commit my editing |
20 | Modifying relationship group by drag & drop a attribute-value pair into different relationship group | As an author, I want to drag & drop a attribute-value pair from one relationship group to another instead of changing the relationship number |
Descriptions
# | Title | User Story | Notes | JIRA Ticket |
---|---|---|---|---|
1 | Each concept has at least one FSN | As an author, I want to define at least one FSN | ||
2 | Only one of FSN can be marked as preferred in a given language | As an author, I want to mark only one of FSN as preferred in a given language | ||
3 | Using a language reference set to specify which FSN descriptions is preferred in each language or dialects | As an author, I want to use a language reference set to specify FSN description is preferred in each language | ||
4 | Each FSN term ends with a semantic tag, which indicates the semantic category to which the concept belongs (e.g. clinical finding, disorder, procedure, etc.) | As an author, I want to indicate the semantic category to which the concept belongs by using semantic tags | ||
5 | Each concept can have one or more descriptions of type synonym in a given language | As an author, I want to define more than one description of type synonym in a given language |
| |
6 | Populating default preferred term in US when FSN is imported | As an author, I want the FSN to be populated into the preferred term (synonym) | ||
7 | Specifying the language reference set of the preferred term | As an author, I want to specify the language reference set of each preferred term (US/GB) so that I can know the preferred term for which language | ||
8 | Populating default synonym when PT is defined | As an author, I want the PT to be populated into the synonym as the default synonym | ||
9 | Distinguishing different relationship groups | As an author, I want to distinguish different relationship groups by different background colour of each relationship group instead of labeling the number of relationship group. | ||
10 | Defining the definition status | As an author, I want to define the definition status of each concept, either fully defined or primitive | ||
11 | Defining the status of concept | As an author, I want to define the status of each concept, either active or inactive |
Validation Report
# | Title | User Story |
---|---|---|
1 | listing validation errors on validation report | As an author, I want to see a validation report of either a list of validation errors of each concept edited or a notification of validation passed. |
Classification Report & Results
# | Title | User Story |
---|---|---|
1 | viewing stated and inferred relationship | As an author, I want to view both stated and inferred relationships in classification results so that I can see both relationships when I need to. |
2 | viewing stated relationship only with inferred relationships excluded | As an author, I want to view stated relationships only in the classification results so that I can exclude inferred relationships in the classification results. |
3 | listing classification errors | As an author, I want to see a list of details of classification errors so that I can know the concepts associated with classification errors and whether stated relationships were redundant |
4 | viewing redundant relationship | As an author, I want to view redundant stated relationship if I have any in my edited concepts |
5 | viewing equivalent relationship | As an author, I want to see the equivalent relationship in error message if I created an equivalent relationship |
6 | linking the latest classification result to each concept on editing page | As an author, I want to go back to view the concept model and descriptions that I was editing through a link on the classification result |
7 | saving the classification reports on the local drive | As an author, I want to save the classification reports on my local drive so that I can review and compare different versions of classification reports when I need |
8 | viewing the source concept of the relationship in the classification report | As an author, I want to see the source concept of the relationship for the concept I edited in the classification report |
9 | viewing the type of attribute in the classification report | As an author, I want to see the type of attribute of the concept I edited in the classification report |
10 | viewing the destination concept of the relationship | As an author, I want to view the destination concept of the relationship for the concept I edited in the classification report |
11 | popping classification error if there are equivalent concept resent in the ontology | As an author, I want to know if I created an concept identical to an existing concept in the SNOMED CT ontology. |
12 | re-classifing the concept model | As an author, I want to re-classify the concept more if the previous classification was failed. |
User Interface
# | Title | User Story |
---|---|---|
1 | collapsing the list of description and logical model | As an author, I want to collapse the descriptions and logical model of each concept editing so that I can add more concepts without having a long page |
2 | expanding the widgets | As an author, I want to expand the widgets on the webpage so that I can adjust the real estate required for a given task |
3 | displaying the concept just edited in taxonomy after it has been added into TS | As an author, I want to see the concepts I just edited in taxonomy after it has been added into TS after validation so that I can see if these concepts are at the appropriate location in the hierarchy. |
4 | displaying a list management widget | As an author, I want to see the list management widget so that I can manage a list of variate things and group the user cases for particular purpose. |
List Management
# | Title | User Story |
---|---|---|
1 | displaying a list of the concepts in the list management | As an author, I want to see a list of models that I can use the existing models to create new concepts |
2 | dragging and dropping the model to the logical model editor | As an author, I want to drag and drop the models from the list of models have been created |
3 | dragging and dropping the attribute to the descriptions | As an author, I want to drag and drop the attribute into the description. |
4 | modifying the filter for searching in the list | As an author, I want to modify the filter for searching concepts in the list (i.e. add more semantic tags in filter) |
5 | listing most relevant concept at the top of the list | As an author, I want to see the most relevant concept at the top of list when I search a specific phase. |
Task Management (Dashboard)
# | Title | User Story |
---|---|---|
1 | sorting task | As an author, I want to sort task by column name on my task panel |
2 | searching task by blank search box | As an author, I want to search task by typing in the searching text in blank search box so that I can find the task related to the search text faster |
3 | prioritizing task (urgent, high, medium, low) | As an author, I want to priority my tasks so that I can prioritize my work based on the priority |
4 | tracking request in task | As an author, I want to track request in task so that I can know which request(s) the task included |
5 | customizing dashboard | As an author, I want to customizing dashboard (i.e., change the colour, the location of each widget in window |
Review
# | Title | User Story |
---|---|---|
1 | assigning to an author for review after editing committed | As an editing author, I want to assign an author to review my work so that |
Automations
# | Title | User Story |
---|---|---|
1 | automatically distinguish preferred term (US/GB) based on spelling of FSN | As an author, I want system to distinguish the preferred term for US/GB by the difference of spelling of the FSN |
2 | defaulting English as Language to use | As an author, I want system to default English as Language |
User interaction and design (Designed by Ashley Hickey)
1 Comment
Krista Lilly
Just to clarify: authors often use "logical model" and "concept model" interchangeably, for example- #2 and #3 in the Authoring Functions section. I don't know if it's important that these terms accompany definitions, or for only one be used for consistency.