Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Version History

« Previous Version 17 Next »

Overview

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

  • Small Changes/Fixes
    • DONE Attribute abbr tooltips not working for MSH but working for SNOMEDCT, see D006321 for example

    • DONE Relationship tooltips not working for MSH, but working for SNOMEDCT, see D006321 for example

      • Apparently no problem, probably a caching issue

    • DONE View All History button nonfunctional (navigation forward/back works, but no list)

    • DONE Show a suppressible indicator (an obsolete indicator is showing, but not a surppessible one)

      • suppressibleLabel and suppressibleIndicator not set in webapp metadata

    • DONE Combine "suppressible" and "obsolete" buttons into one -> e.g. the either both flags are on, or both flags are off.
      • Merged into showSOElements, with function toggleShowSOElements
    • DONE BUT TEST If "Atoms (0)", and "show suppressible/obsolete" is OFF, then show a message to click the "show" button to see the obsolete content.
      • Only shown if atoms.length > 0 (i.e. suppressible/obsolete content actually present)
    • Application should scroll to top on click of concept links
    • NEEDS TESTING Load association reference data as relationships (mark them as suppressible?)
      • INFO id effectiveTime active moduleId refsetId referencedComponentId targetComponentId
      • DONE Fail if the referencedComponentId is not a concept terminology id.
      • DONE Make a ConceptRelationshipJpa
        • id = terminologyId
        • timestamp/lastModified = effectiveTime
        • !active = obsolete
        • published = true, publishable = true, ... 
        • moduleId = becomes an attribute, see how it works in loadRelationships
        • referencedComponentId, look up the concept -> setFrom
        • targetComponentId, look up the concept -> setTo
        • relationshipType = "RO"
        • additionalRelationshipType = refsetId
          • Need to make sure a metadata additionalRelationshipType gets added
            • abbreviation = refsetId, expandedForm = name of that concept (e.g. the part in capitals at the beginning, "POSSIBLY EQUIVALENT TO")
          • make sure to not add it more than once.
        • Outstanding Questions
          • CONFIRMED NO NEED Need to preserve default of AtomSubsetMember or AtomRelationshipMember?
          • No unexpected consequences for SNOMEDCT display/processing of:
            • No group
            • Not stated, not inferred
          • Possible case of Suppressible meaning something different than Obsolete?
          • Worth doublechecking existence of refset id for additional relationship types in loadAssociationReference, or just let exception thrown if refset id is not a concept?
    • NEEDS TESTING Delta loader for association reference data
      • see loadRelationships for how to compute diffs with a relationships
    • Other small fixes - found by PG.
      • test...
      • update copyright to 2016
    • "Release"

  • Prep website for google adwords
    • DONE Intro page that doesn't have as login
      • DONE Initial page now routes to "landing" view, with landing.html. Initial version includes only placeholder text and link to #/login
      • Note: May want to introduce route bypass if user hits login page while logged in (i.e. content -> landing or landing -> content). Or may not.
    • Discussion
    • Screenshots
    • Video tutorial - 5 min walk through (e.g. "vet" - one for each - make a consistent script - put all on youtube and link back)
    • Link to login page

  • Enhancements to RRF preferred name computer
    • support multiple UMLS's - e.g. have a high-level terminology/version
    • reuse the same default precedence list..
  • PG: Directives for reports
  • PG: Test app with latest changes
  • PG: integration tests (get them working)
  • PG: route params
  • PG: create initial framework for JS unit testing
  • Verify that ClaML loader makes asterisk/dagger attributes for modifier concepts - e.g. M01.4 and M01.41
  • Integration tests for static code analysis (e.g. *.code.XXTest.java)
    • REST Service
      • opened sessions are closed in finally blocks.
  • Support multiple RRF loads (presumably with different sources, but maybe overlapping RSABs)
    • maybe reconsider how "precedence list" works.
  • Revamp site for google adwords
    • Intro app with screenshots and info about how it works 
    • link to site where you actually log in.
  • Upgrade error handling and user management
    • expand to use refset dailog directives for "errors" and warnings -requires a container
  • User Preferences - borrow from refset - don't need anything specific yet, just infrastructure.
  • Move "authorize" methods over from refset
  • For "semantic type" mechanism - if there are tree numbers, order by that and indent"
  • BAC: OWL - NCIt
  • BAC: remove "void addXXX" and "void removeXXX" methods from model objects. Use getObjects().add/remove(...) only
  • Model
    • Remove the "name" attributes on @XmlElement annotations and fix the javascript to properly handle the return values of services. TEST
    • 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
  • For @IndexedEmbedded, make sure to use targetElement, also make sure that addXXX and setYYY are called ,and the service.addXXX and service.updateYYY calls are always made.  Important for indexing to work properly.

Marketing/SEO

  • Create a video demo of the site (camtasia) and post as a link on the header (video glyphicon if there is one)
    • also screenshots that are clickable, etc.
  • Verify all entry pages for applications are officially mobile friendly
  • Consider advertising SNOMED/UMLS/ICD browsers on google adwords.
  • Training Video for UMLS browser (need 10 min)
  • Training Video for SNOMED browser (simple 5 min)

User Interface Enhancements

Additional/Enhanced  Loaders

  • Owl loader - have a snorocket (2) reasoner for role relationships.

Services

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

Testing 

  • Rename unit tests!
  • Implement additional unit tests for model objects (PrecedenceListJpa, LabelSet, etc)
  • RRF loader -> create label set for SNOMED (both "single" and "umls")
  • Handler002Test for normal use
  • Implement Handler003/008Test - for ID assignment algorithms.  Borrow code from other project (though there may be differences).  The uuidHash algorithm is implemented properly for UMLS and may be different than for SNOMED.

Editing Features

  • Basic metathesaurus editing
  • Project
    • Figure out how to capture "project scope" for SNOMED and for UMLS in a generalized way.  Update project objects to be able to properly capture (and compute) project scope.  NOTE: the scope definition may involve concepts/terminologies/semantic types.  IN that event, the scope computer gets a little bit more complicated.
  • Test loading a DB with envers auditing disabled and then making changes in a DB while it is enabled. Does it properly create audit entries?
    • for the old edition of the component?
    • for the new edition?
  • Metathesaurus editing actions
    • MetathesaurusContentEditingRest
      • methods for each "edit action"
      • Create a RestImpl
      • Create a client
      • Create integration tests to run against a "stock" dev  database
    • Add a semantic type component, Remove a semantic type component
      • Have a pencil icon by  the STYs section
      • clicking gives you a list of available STYs assigned, in tree order with a filter box for typing characters of the STY you want.
        • See the metadata "semantic type" option
      • User may want to choose multiple ones (so have a "finished" button)
      • Dont allow user to choose STYs already assigned to the concept.
      • Final action is to call "contentService.addSemanticTypeComponent"
      • Consider what happens to workflow status
      • Consider how to show "NEEDS_REVIEW" content in the browser
      • Consider how to support "Undo". - perhaps an action log (atomic/molecular) is a good idea still for that
    • Implement this completely including testing before moving on to other actions (each which requires a UI enhancement)
      • Approve a concept (e.g. set workflow status values).
      • Add an atom (e.g. MTH/PN - that needs to be generalized somehow)
      • Merge two concepts (consider the "workflow status "when this happens).
      • Move an atom (or atoms) from one concept to another
      • Split an atom (or atoms) out of a concept and specify a relationship type between the two concept
  • Terminology Editing (first use case)
    • Add a concept (as a child of an existing concept) with one or more atoms and a PAR/CHD relationship.
    • Run the classifier
    • Show classifier results (e.g. new inferred relationships, etc)
    • NOTE: this only works with a description logic based source that tracks inferred relationships.
    • PREREQ: SNOMEDCT RF2 loader.

Admin Tools

  • Test QA queries and flesh them out for 100% coverage.

Optimizations

  • TBD

 

Future Stuff

  • Test conditional envers auditing: http://stackoverflow.com/questions/14250612/conditional-envers-auditing
  • escg (expression grammar - research)
  • Use Lucene SynonymFilter with synonym table
  • Component-Component relationships (between any two components).
  • Value set definitions (and marking of subset.isValueSet()) and linking to definition? via attribute?
  • Owl loader, Owl export of DL terminologies (e.g. RF2-loaded SNOMED)
  • Rdf export (flat)
  • Classifier (owl interface)
  • Expression language (based on SNOMED expression constraint grammar)
  • Sub-branching
    • branchResolutionHandler - figures out how to copy and mark branched objects  and update indexes  - for different branching strategies.
  • Handle mappings - may be not worth it
  • Implement an RF2 loader (use DL features)
  • Implement a ClaML loader
  • Support semantic network (e.g. sty rels, etc).  - probably want to wait for a real ontology - and maybe even load it as such.
  • No labels