Versions Compared

Key

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

...

Sprint to continuing to develop core features of the application

Fleshing out APIs

  • DONE: Double-check that all rest services always close the service (e.g. in "finally")
  • PG (in progress): Mobile friendly site
  • Lucene enhancements
  • Content service rest
    • Implement getConcept, getDescriptor, getCode, getLexicalClass, and getStringClass
    • Implement findConceptsForQuery (ignore branching for now) and related methods.
    • Implement rest client as well
    • 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
    • Begin developing integration tests to validate the data (could start with content service tests)
    • 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
    • Add a content service to take a query (to return Concepts/Descriptions/Codes).
      • ContentClientRest.get{Concept,Code,Descriptor}sForQuery(String luceneQuery, String hqlQuery, PfsParameterJpa psf)
      • 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);
  • REST service for a general concept query (e.g. lucene query, HQL query, or SQL query)
    • Must be a SELECT if query
    • Use a timeout so if it runs longer than X, process is terminated.
  • Domain model
    • DONE: Add property chains (to metadata)
    • LexicalClass - set normalized string (needs handler) 
    • TreePosition (and tree position computer) - childCt
  • Handle single-level branching (no sub-branching). 
    • (branch = :branch OR branchedTo not like :branchMatch)
  • Semantic search (via search criteria)
    • Add criteria for the results being a descendant of X
  • DONE: UserPreferences - tty  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
    • add an additional picklist for "id type"
    • Base view around a Concept Report
    • page relationships (and possibly attributes)
    • compute/page "contexts" - need to actually compute paths to the root 
    • +/- 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.
  • escg (expression grammar - research)
  • "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
  • Fully implement search criteria where it applies and pfs is used in a ContentServiceJpa method.
    • TODO: find cases where pfs.queryRestriction is used and we could be using

...

  • 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
  • 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.