Versions Compared

Key

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

...

  • Include precedence list info in the metadata
    • Add a "getDefaultPrecedenceList(terminology,version)" method to MetadataServiceRest (and implement all connected stuff)
    • Add integration test for this method as well (MetadataServiceRestNormalUse, DegenerateUse, EdgeCases,...)
    • On application side
      • Load the precedence list after "get all metadata" is called and set a scope variable equal to it.
      • In the "Metadata" tab, show the precedence list in its own section (separate from the other metadata - because it is an ordered list.)
      • Put in its own bullet before the "general metadata entries" stuff.
  • DONE: Change marker set -> label
  • RRF loader -> create marker set for SNOMED (both "single" and "umls")
  • Mojo integration tests for ClaML, RF2, RRF single
  • DONE: Calls that return tree position list or tree positions should involve sorting (based on pfs?)
  • DONE: Make a US Extension subset.
  • DONE: Get the ?query= tested Also update the UI
  • DONE: Get the marked refset stuff working.
    • Add a button to "show extensions"
    • Highlight concept ids containing extension data with tooltip
    • Highlight text of extension concepts themselves with tooltip — need mechanism for this still
    • Have MarkerSet not apply to concepts that are ALREADY in the subset…
  • DONE: Ensure query is urlencoded so "heart attack" (in quotes) works as a valid search.
  • Test solution to boosting non-suppressible
    • try (suppressible:false^5 OR suppressible:true^1) as an alternative
    • Make sure suppressible thigns are still searchable but top results are never suppressible (if there are non-suppressible options).
  • Create a video demo of the site (camtasia) and post as a link on the header (video glyphicon if there is one)
  • Test solutions for exact matches showing up at the top for auto complete
    • the edge ngram boost should already be working for words starting with those things
  • DONE: For the intro pages: copy text from a local file and put into partials - don't keep in "rest"
    • Bring them in (like the logo images).
  • TODO: Finalize REST integration testing of tree methods.
  • TODO: autocomplete suggestions should always be valid (e.g. remove lucene special characters when setting the value)
    • This probably doable with QueryParser.escape on the text that comes in
    • Make sure the text is also url encoded
  • "self" entries need to exist in transitive closure for leaf nodes (for semantic search)
  • Consider adding a "configure" routine to all "handlers" so they can configure themselves after they are all instantiated (e.g. if they need access to a metadataservice or a contentservice to function properly)
  • Boost higher term types in search.
    • lternatively - configurable boost handler (default is suppressible and term-type).
  • DONE: fix cases where atoms paging shows up but not the filter - has to do with show obsolete/suppressible
    • I think this happens when there are exactly 10 cases after "hide suppressible" or "hide obsolete"
    • Find cases from UMLS and SNOMED with exactly 10 non-obsolete, non-suppressible atoms
  • mojo test suite for RRF-single, plus terminology remover
  • mojo test suite for ClaML
  • ClaML Loader (make algorithm).
  • Finalize REST service for a general concept query (e.g. lucene query, HQL query, or SQL query)
    • DONE: Must start with "SELECT " and not contain ";"
      • provide appropriate error message via exception if not
    • DONE: Execute the query but check the object type of the first result
      • if doesn't match expected type, fail with an exception.
    • Use timeout => 
    • query.setHint("javax.persistence.query.timeout", timeout);
  • Implement NewConceptMinRequirementsCheck and "validation service"
    • DONE: Validation check
      • validate(Concept), validate(Atom), validate(Code), validate(Descriptor), validateMerge(Concept,Concept)
    • Validation service - See ValidationService.java
      • public ValidationResult validateConcept 
      • public ValidationResult validateAtom 
      • public ValidationResult validateDescriptor ...
      • public ValidationResult validateCode  ...
      • public ValidationResult validateMerge(Strng cui1, String cui2, String branch)
    • Implement ValidationService (e.g. ValidationServiceJpa)
      • pre-cache validation handlers (see how this works in MetadataService, etc).
        • static List<ValidationCheck> validationHandlers  = ...
      • Implement the interface methods
        • Call the corresponding validation check method
        • accumulate validation results
        • return them
    • ValidationServiceRest/RestImpl/ClientRest
      • validateConcept  /validate/cui/ (PUT) ConceptJpa
        • load all validation handlers and call each validate Concept) method.
      • validateAtom  /validate/aui (PUT) AtomJpa
      • validateDescriptor ... /validate/dui (PUT)DescriptorJpa
      • validateCode  .../validate/code (PUT)DescriptorJpa
      • validateMerge /validate/cui/merge/{cui1}/{cui2} - GET
    • Integration tests - create infrastructure and implement for "default validation check"
      • Assume that validation always passes.
      • normal use
        • validate a concept
        • validate an atom
        • validate a descriptor
        • validate a code
        • validate a merge between two concepts
      • degenerate use
      • edge cases
    • For individual tests, we need unit tests
      • implement a unit test for DefaultValidationCheck
      • in server-jpa-services
      • com.wci.umls.server.test.validation...
    • DONE: DefaultValidationCheck
      • validate atom whitespace
      • validate that a concept has at least one atom and at least one "hierarchical" relationship (to something that exists)
      • update config.properties to use this check
    • DONE: Organize validation checks into packages and create classes
      • com.wci.umls.server.jpa.services.validation (DefaultValidationCheck)
      • com.wci.umls.server.jpa.services.validation.umls (NewConceptMinRequirementsCheck)
        • concept has at least one atom and at least one hierarchical rel 
      • com.wci.umls.server.jpa.services.validation.snomed (NewConceptMinRequirementsCheck)
        • see term server project
    • Create an integration (jpa) tests for the validation layer (e.g. put in spreadsheet, normal use, degenerate use, edge cases, etc).
  • Need improvements to filtering (e.g. misaligned quotes, extra punctuation, lots of things don't quite work right)
    • also the delay-lookup can be a bit awkward - I think tabbing-out or hitting return to trigger filtering is better and more consistent experience
  • DONE: Properly implement terminology remover functionality (e.g. content service rest.removeTerminology).  The content and the metadata objects need to be removed in the right order so as to avoid foreign key constraint errors. (e.g. attributes, definitions, semantic types, tree positions, transitive relationships, relationships, atoms, then atom classes - something like that).  For metadata I think terminology/rootTerminology is the only dependency (remove root terminology first).
    • Then update the mojo test case to remove the terminology (currently commented out)
  • DONE: Finish RF2 loader implementation, test on mini smomed
    • create separate config project for this (e.g. "prod-snomedct").
    • load and depoy to snomed.terminology.tools
    • classifier?
  • DONE: Finish implementing dui/code calls in ContentServiceRestImpl for child and root routines
  • DONE: Fill in the ContentClientRest calls for new Tree REST APIs
  • DONE: Add a "are you sure you want to leave the page" feature if people click the back button (see mapping project)
  • DONE: BUG: lower relevance of suppressible data in queries. - should be able to add a boost to suppressible:0
  • DONE: Hierarchy -rest layer adds a dummy top for merging 
  • DONE: Clients should handle null parameters properly
    • BAC: handle for content, metadata, project, security
    • Make a RootClientRest with a precondition check for null or blank

...