...
Core Application Enhancement - P1
BAC: fix hibernate properties in config.props (on deployments and in project)
Validate integration tests again
PG: Small finishing items
- Inferred/Stated button not working properly for SNOMED (e.g. "description logic terminology")
- Tooltips for some things not working in SNOMED (e.g. rel, attribute nmae, etc)
DONE siblings/children in a hierarchy should have a default sort order (e.g. alphabetical). Try looking up "botulism" in snomed.terminology.tools, it looks random.
DONE Advanced searching icon having issues - can't click it because of uib-tooltip
DONE Highlighting in tree search view not working
DONE Switching from non-metathesaurus to metathesaurus improperly shows deep relationships
DONE/Duplicate limit deep relationship display to terminology matching current metathesaurus
Could not retrieve "back" button not working
atom relationship link text does not initiate new search
DONE Once "appConfig.js" exists ,we can stop filtering footer/header, etc and instead inject the appConfig object into those controllers and just make scope variables for what shows up.
DONE (BAC): Bring "guest "user stuff over from refset
- see services.js and also SecurityServiceJpa.
Implement expression searching based on ECL
- Replace the "search criteria" mechanism with this.
- Identify as a search by parsing and confirming it matches.
- Build SQL or lucene queries from ECL.
- See Kai's project on github: https://github.com/IHTSDO/snomed-query-service
- Also show expressions (like diagrams) for a concept's de
Compute preferred name enhancements
- support all modes, including multiple meta
- tie to user preferences.
DONE Put all route provider back in routes.js (PG)
Review overhaul of loader architecture
- Algorithm -> LoaderAlgorithm
- SourceDataLoaderAlgorithm (interface)
- Employ a consistent handleLazyIniti strategy
- enforce this at release time (add to wiki)
- public handleLazyInit(...)
- ContentService doesn't need it because of "graph resolver" which is entirely responsible for content objects.
- applies to "source data" and "project" and "metadata" services.
- Normalize use of sortable tables across the application (search in content, admin service tables) - use ng-table
- Enabling "cancel"/progress of loaders
- RrfLoaderAlgorithm (can implement at abstract loader algorithm level)
- cancel() should set a cancelFlag to true
- commit/log statements should check the cancel flag and throw a CancelException
- Add CancelException
- Change content service
- Add "precondition" checking to loaders (Algorithm)
- Put all loader logic into "compute" -> e.g. "open readers", "sort files", etc.
- Source Data Loader
- have try/catch
- support "background" parameter
- add cancelLoad(...)
- load -> processId
- getRunningProcesses(...)
- Put a ticket on wiki to rewire mojos from content service to sourcedataLoaderService (then remove from content service the load methods
- BUG Terminology Removerdoes not correctly handle mapsets
Cannot delete or update a parent row: a foreign key constraint fails (`umlsminidb`.`mapsets_attributes`, CONSTRAINT `FK_a1tfp35h17fsbdl07p9xeex2h` FOREIGN KEY (`attributes_id`) REFERENCES `attributes` (`id`))
- RrfLoaderAlgorithm (can implement at abstract loader algorithm level)
- Find all <i> within <a> and remove the <a> - e.g. atoms directive
- DSS: Bring over logging stuff from refset
- objects - LogEntry, LogEntryJpa
- Add terminology, version,
- activity -> LogActivity.LOADER, RELEASE, EDITING
- RootServiceJpa methods
- RootServiceRestImpl methods
- getLog REST API call from ProjectService
- keep existing method
- add one with: instead of "projectId": and "objectId" take "terminology" , "version", and "activity"
- think about what should add log entries (e.g. loaders, terminology removers)
- idea; anything that changes the db.
- addLogEntry statements ONLY go in RestImpl layer. (and maybe the algorithms)
- Put logging statements for loaders - e.g. Rf2SnapshotLoaderAlgorithm
- Add three local methods
- commitClearBegin(...., terminology, version, activity)
- super.commitClearBegin(...)
if (objectCt % logCt == 0) {
addLogEntry...
}
- logAndCommit(...., terminology, version, activity)
- super.logAndCommit(...)
if (objectCt % logCt == 0) {
addLogEntry...
}
- logInfo(message , terminology, version, activity) - also for warn/error, but add the word "WARNING: " or "ERROR: " to the message
- Change all Logger.getLogger(...).info(...) to logInfo(...) calls
- addLogEnry(...) = use "loader" as username
- also Logger.getLogger(...).info(... )
- commitClearBegin(...., terminology, version, activity)
- Add three local methods
- objects - LogEntry, LogEntryJpa
- DONE PG: redo header/footer - controllers. (like refset tool)
- PG: Implement Diagramming
- model transformation
- Show ONLY for "description logic terminology"
- DONE PG Add features for "deep" relationships when browsing UMLS.
- it is definitely only for "concept" and for "metathesaurus" content
- Add new section to concept report (e.g. "Deep relationships")
- REMAINING: Update integration tests with actual filter values (currently only tests null values)
- Enhancements to RRF preferred name computer
- support multiple UMLS's - e.g. have a high-level terminology/version
- reuse the same default precedence list.
- DONE PG: Use directives for reports
- DONE Component Report
- treeComponent
- semanticTypes
- definitions
- atoms
- attributes
- subsets
- relationships
- deep relationships
- TODO Relationships and deep relationships are not using callback functions, fix this
- DONE Search Result Tree directive
- DONE Component Report
- DONE PG Fixed Infinite cycle digest errors on uib-tooltip-html for refset labels in tree search results (extension highlighting)
- DSS; Project/User/UserPrefs stuff
- User
- Application role
- user preferences
- projectRoleMap (e.g. and project role map adapter)
- Project
- Remove "leads", "authors", "administrators"
- remove "scope" stuff
- Remove actionWorkflowStatusValues
- userRoleMap (and userRoleMapAdapter)
- Bring over UserRole from Refset -> replace term server stuff
- Align Security Service Rest (and Jpa)
- Bring over methods from refset that are missing
- Reconcile differences in the implementation methods.
- ProjectService Rest (and Jpa)
- Remove the scope concept calculation
- Add stuff about user/project (assign,unassign,find...)
- next step: add an "Admin" tab.
- basically borrow from refset and make work for this project.
- User
- PG Use route params to dynamically load a "report" (and be able to bookmark URLs)
- DONE Implement routing for terminologyId/terminology/version/type so we can preserve URLs. can even include ?query=... for the query
- CANCELLED Also clean up the way routes work first so we have
- https://umls.terminology.tools/content
- instead of
- This is likely related to the starting URL redirected to https://umls.terminology.tools/#/
- See http://stackoverflow.com/questions/14319967/angularjs-routing-without-the-hash
- e.g. https://umls.terminology.tools/content/CUI/SNOMEDCT/2015_01_31/12738006
- CANCELLED Also clean up the way routes work first so we have
- DONE Implement routing for terminologyId/terminology/version/type so we can preserve URLs. can even include ?query=... for the query
- DONE Support opening a concept in a new window (e.g. there's a pointing off arrow icon that opens a new window with a routing URL that shows exactly that concept - then drag/drop between windows can be editing mechanism).
- https://umls.terminology.tools/content/simple/cui/SNOMEDCT/2015_01_31/12738006
- Improvement: Fix header offset in simple report
- User Preferences stuff
- Bring over model from Refset tool.
- Add "last query" (e.g. "brain" and whether it's "list" or "tree" mode).
- Add "last report" (e.g. type/ui/terminology/version)
- Remove "void addXXX" and "void removeXXX" methods from model objects. Use getObjects().add/remove(...) only
- e.g. AtomClass doesn't need addAtom or removeAtom
- Rewire any uses of them
- "addXXX" -> "getXXX().add"
- "removeXXX" -> "getXXX().remove"
- same if there is "clear"
- DONE Show concept and atom-level subset information (e.g. language refset entires in SNOMED. may require a change to the graph resolver).
- DefaultGraphResolver now resolves subset members for both Atom and Concept
- Confirm that Descriptor and Code are not intended to have subset members
- Needs testing to confirm UI display ok
- Migration of upload and loading and removal of sources from transformer to term server
- Separate tabCtl, tabService
- Get all workgin,
- Then configure/use in the Starter kit
...