Versions Compared

Key

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

...

  • DONE: Lucene enhancements
  • Content service rest
    • Implement searching for tree positions by ancestor path.
    • DONE: Implement getConcept, getDescriptor, getCode, getLexicalClass, and getStringClass
    • DONE: Implement findConceptsForQuery (ignore branching for now) and related methods.
    • DONE: Implement rest client as well
    • DONE: Implement methods for accessing subsets as well
      • GraphReoslutionHandler:
        • public resolve(Subset)
        • public resolve(SubsetMember)
      • Call the resolver on the ContentServiceRest services for subset/subsetmember (like it is used in getConcept/findConcepts...)
      • DefaultGraphResolutionHandler/UmlsGraphResolutionHandler
        • for subsets:
          • resolve name
          • "skip" subset members
          • resolve attributes 
        • for subset members
          • resolve member.getName()
          • resolve attributes
    • DONE: Begin developing integration tests to validate the data (could start with content service tests)
    • DONE: later : get relationships for a concept - e.g. CUI relationships
      • ContentServiceRest getDeepRelationshipsForConcept(String terminologyId/terminolgy/Version, PfsParameter pfs, auth token)
    • DONE: autocompletion methods (BAC)
    • treeposition methods
      • TreeList findTreesForConcept/Code/Descriptor(String terminologyId/terminology/version, boolean includeChildren, PfsParameter pfs)
      • findConcept/Code/DescriptorTreesForQuery(String terminology/version, String query, boolean startAtRoot, PfsParameter pfs)
      • getRootConcepts/Codes/Descriptions

    • DONE: Subset services
      • getSubset - by id or terminologyId - NO REST CALL FOR THIS
      • getAtomSubsets - SubsetList
      • getConceptSubsets
      • getSubsetMembersForAtom - takes atom terminology id
      • getSubsetMembersForConcept - takes a concept terminology id
      • findAtomSubsetMembers
      • findConceptSubsetMembers
  • REST service for a general concept query (e.g. lucene query, HQL query, or SQL query)
    • Must start with "SELECT " and not contain ";"
      • provide appropriate error message via exception if not
    • Execute the query but check the object type of the first result
      • if doesn't match expected type, fail with an exception.
    • Implement for Concept, Code, Descriptor
    • Verify hqlQuery must start with
      • SELECT a FROM Concept/Code/DescriptorJpa a (depending on type)
    • ContentServiceRest/Impl...
    • ContentService/Jpa
      • Find the type of query - apply the PFS appropriately.
      • use the "set timeout" feature of JPA queries.

      • use "createQuery" for HQL
      • use "createNativeQuery" for NATIVE
    • Use timeout = 
      query.setHint("javax.persistence.query.timeout", timeout);
  • Domain model
    • DONE: Add property chains (to metadata)
    • DONE: LexicalClass - set normalized string (needs handler) 
    • DONE: TreePosition (and tree position computer) - childCt
  • Semantic search (via search criteria)
    • IN PROGRESS: Add criteria for the results being a descendant of X
  • DONE: UserPreferences - tty list
  • Websocket (for a WebsocketWorkflowListener)
  • "smart" RRF loader should support a config file to indicate what level at which definitions should be attached and should handle RXNORM and NCIt concepts.
  • Updated UI for UMLS
    • DONE: Base view around a Concept Report
    • DONE: page relationships (and possibly attributes)
    • compute/page "contexts" - need to actually compute paths to the root 
    • DONE: +/- icons for expanding elements (e.g. atoms) that have more info
    • UI for "semantic search" and for "general query" search
    • terminology lock/unlock - to turn it into a single-terminology browser.
  • "Marked parent refset" - or in this case for subsets - identify the concept ancestors (e.g. of concept subsets) so they can be labelled in a hierarchical display
    • decorate tree position operations when handling browser stuff.
  • DONE: Startup routines should verify the presence of "DEFAULT" handlers when they are needed to exist
  • DONE: ContentServiceJpa/Rest
    • graph resolver doesn't resolve relationships
    • rest call for getting the relationships of a concept/descriptor/etc
  • Callback services (e.g. for subset members, relationships, or tree positions should always include a "query" and those corresponding objeects should be indexed with their xmlTransient-related fields).
  • Optimize the handling of "umls metadta handler" with respect to caching all the data.  Maybe cache it all immediately upon loading?
    • or in a thread
    • either that or track which values are actually used at load time. - though caching doesn't require QA.

 

Fleshing out the API

  • tbd

...

  • Switch to a default build of the SAMPLE_2014AB and redo metadata and content tests against that data set.  Then we may be able to have more complete hierarchies and some code data to work with.

Testing 

...