Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Sprint to extend some of the "read only" APIs, to finalize unit/integration testing for existing functionality, to extend the interface, to develop additional loaders, and to begin developing editing capabilities.

Priority things

  • For "semantic type" mechanism - if there are tree numbers, order by that and indent"
  • DONE: owl deployment
  • JFW :Refresh server deployments
    • UMLS, SNOMED, SNOMED VET, ICD (reload on machine)
  • DONE: JFW: QA queries
    • referential integrity
    • Verify for each type of loader and the sample data.
  • JFW: Jekins - mojo tests
    • REST integration tests
  • BAC: OWL - NCIt
  • BAC: consider adding top-level hierarchies as "semantic types" to concepts for loaders in general
    • This could be a function of the treeposition or transitive closure computers.
    • the corresponding metadata would have to be created as well
  • BAC: remove "void addXXX" and "void removeXXX" methods from model objects. Use getObjects().add/remove(...) only
  • DONE: Terminology sampler mojo  - bring over from old term server project.
  • Model: GCI
    • DONE: General class axioms
    • Mapping, MapRecord, MapEntry (each with attributes) - similar to Subset, SubsetMember except with one more layer.
      • Then implement this for RRF loader
      • Then implement this for RF2 loader (snapshot)
      • Then implement this for RF2 loader (delta)
  • User Interface
    • Enable glass pane while switching tabs - need to say increment in tab controller and decrement at the end of the controller.
  • Integration Tests - Jpa/REST - get them tested again
  • DONE: support "mode" parameter on loaders to automatically recreate db and clear indexes.
  • Have search handler work for all searching, including relationships and trees. - separate methods to build query?? - probably
  • DONE Improve search
    • Create "SearchHandler" as an extension point (like graph resolution handler).  Have a "default implementation"
    • Search algorithm
      • First search

    • for
      • on exact string (e.g. "literal" search)
        • handles short strings containing special characters, consider doing a literal search (e.g. "!" or "+" or "Ca+")
          • alternative is to save untokenized forms of all strings for exact searching
      Acronym expansion (based on a configured list)
        • e.g. for the query "+" use a lucene query like "terminology:SNOMEDCT AND version:latest AND atoms.nameSort:"\+" (not sure if you have to escape the + if it is in quotes).
      • Then search on matches - this is the normal search
      • The trick here is to combine the results from the first search and the second search into a single list, where the ordered results from the first search are at the head of the list followed by the ordered results of the second search - but with any duplicates removed.
        • could consider "(literal search) OR (normal search)" as a single query.
        • This is better because then lucene can do the paging
      • if no results, Then do spelling correct  and (then) acronym expansion and search again
        • Use Lucene SpellChecker class for this.
        • config/src/main/resources/data/
        acronym
        • spelling.txt
      Spelling correction (based on a dictionary)
      • First search on exact string (e.g. "literal" search)
      • Then search on matches
      • if no results, Then do acronym expansion and spelling correction and search again
        • config/src/main/resources/data/acronym.txt
      • Use Lucene SpellChecker class for this.
      Search algorithm
        • For obtaining words for spelling correction, use "FieldedStringTokenizer" with " \t" as delimiter
          • (consider this delimiter list later: " \t-({[)}]_!@#%&*\\:;\"',.?/~+=|<>$`^")
        • For obtaining words for acronym expansion, split only on " \t"
      • if no results, then try putting * after each term and search again
    • should autocomplete algorithm include acronym expansion? NO

Marketing/SEO

  • Create a video demo of the site (camtasia) and post as a link on the header (video glyphicon if there is one)
  • Promote "ICD10" browser on various lists
  • Ensure all entry pages for applications contain SEO text for browsers and are indexed by google
  • Verify all entry pages for applications are officially mobile friendly
  • Consider advertising SNOMED/UMLS/ICD browsers on google adwords.FB?
  • Training Video for UMLS browser (need 10 min)
  • Training Video for SNOMED browser (simple 5 min)

User Interface Enhancements

  • Add features for "deep" relationships when browsing UMLS.    
    • Need a generalized way to know when to use this
    • it is definitely only for "concept"
    • It may be that if any "atoms" of the concept don't match the terminology, then we show it.
  • Reimplement the component report as a directive (with service callbacks for  history and other features)
  • Implement routing for terminologyId/terminology/version/type so we can preserve URLs.  can even include ?query=... for the query
  • 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).
  • DONE: Websocket (for a WebsocketWorkflowListener)
    • test it
    • What to do with it??
  • Expression-based searching?
  • Consider adding "LABELFOR" all subsets and making the star pop up a picklist of the things to highlight (ordered by type with extensions first, subsets later)
  • RECURRING: Mobile-friendly and other style issues

...

Services

  • Action Service
    • Implement classification.
    • Need to go to/from Owl so do Owl loader FIRST.

...