Versions Compared

Key

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

...

  • DONE: serialization of concepts should include id, terminologyId, preferred name
    • Applies to Description and Relationship
    • Return 0 for Long if not set
    • Return "" for String if not set
  • DONE:  Claml loader 
    • make sure transitive closure computation is working
  • DONE: BAC: REST APIs - fix @Consumes and @Produces

    • Annotations are now at the class level, with TEXT_PLAIN overrides where parameters or return values are String.
  • PG: Finalize integration REST testing
    • DONE: security service
    • DONE: Metadata Service
    • DONE: Content Service
    • History service 
  • DONE:  PG: History service - handle other data structures

  • Loaders 
    • DONE: Make sure snapshot and full create release info
    • DONE: BAC: RF2 full - get this working
    • DONE: DS: RF2 delta
      • Handle other data structures (currently only 4) - need to add sample data  (and headers) too
      • Remember AttributeValue and AssociationReference need handling for both description and concept
      • Need new ContentServiceJpa methods
      • No need for "handle retracted changes"
    • DONE: Scale to full RF2
      • Monitor the number of copies of objects
      • BAC: Manage memory usage and optimize commit
        • Can delta loader scale to a full sized delta?
          • Load full SNOMED 20140731
          • then load delta SNOMED 20150131
        • Can snapshot loader scale to a full sized snapshot with only a single commit?
          • Consider making description/concept connections merely an id (lose referential integrity, but these could be added qa database)
  • DONE: change run.config to run.config.ts

  • DONE: BAC: Admin tools - all should use "server" flag except for QaDatabase and Create/Updatedb

  • DONE: BACQA Admin tool - fill in queries and reuse

    • Add queries for project and for release info

  • DONE: BAC: Separate "updatedb" into

    • admin project called "db"

    • pass hibernate.hbm2dd.auto as a parameter to the execution

      • call System.setProperty("hibernate.hbm2ddl.auto", hbm2ddlParameter).

      • THEN create the root service.

    • "createdb" profile

    • "updatedb" profile

    • Remove the properties section from pom.xml
    • Update documentation.
  • DONE: Mojo integration testing

  • DONE: Testing

    • BAC DS - Unit Testing 
      • model - add checks for @Field annotations (and analyze criteria)
      • helpers
      • handlers
      • algorithms
  • DONE: ProjectService
    • add project, etc.
    ContentServiceRest
  • DONE: findXXX methods for refset members
    • find all refset members (by refset id)
  • DONE: get all members for a concept/description
  • DONE: getInverseRelationships(Concept)
  • ***Unit testing for these. - need spreadsheet.
  • DONE: Very basic user interface (as part of rest project).
    • Header/Footer
    • Point to swagger (change that index page to swagger.html)
    • Security: login/logout
    • Metadata:
      • show terminologies and versions
      • show all metadata for a selected terminology
    • Content
      • find concept
      • get ancestors
      • get children
      • get descendants

...

  • Domain model
    • Decide where to have "count" fields (and whether this should be maintained in DB, in Lucene, or computed by REST layer).
    • e.g. concept.getChildCount(), concept.getSimpleRefSetMemberCount()
    • Consider separating "relationship" and "inferred relationship" into separate tables/calls.  This may help working with classifier easier.
      • The "graph resolution handler" and the concept model and loaders would have to be updated too.
  • Transitive closure computer - avoid cycles.
    • Pass set of identifiers "seen" along the way - fail?
  • Handling effective time (new handler)

    • Loaders should be allowed to set effective time
    • release process should be allowed to set effective time
    • want to be able to distinguish between published and unpublished things (perhaps a "published" flag is better)
  • Semantic search

    • Support searching by hierarchy, by relationships, etc.
    • Sparql end point? or expression language.
  • Project metadata service

    • For Project (pull out of content service)
    • for release info (pull out of history service)
  • PG Support running all admin tools through REST services

    • Add additional rest calls (e.g. to action service or whatever)
    • Add corresponding client calls.
    • When adding a new project, have REST service set the "lastModifiedBy" to the user who authenticated.
  • Project-based authorization (e.g. only allow edits on concepts where a user is an author)

    • This requires tracking the full concept scope with the project. (what if you add a concept?)
  • Application metadata service (project stuff?)

  • Terminology Metadata service
    • DONE Support classifier - root node (done), isa relationship (done), and role root.
    • DONE stated/inferred char types should be metadata methods,
      • Update TerminologyUtility accordingly to avoid hardcoded values
    • new DL features for properties and data properties
      • access to "RoleRelationship" objects
  • Security service - n/a

  • Content service methods for adding/removing inferred rels in batch.

  • Separate read/write services of content service
  • SNOMEDCT Editing Service
  • HistoryService
    • getRevisions (without boolean)
    • getReleaseRevision(id, String release) - pick any one with matching release - get first one
  • Configuration setting for synchronizing access to write services
  • ContentService (and content change service) - have a "deep" delete on concept and description that deletes connected refset data too.
    • REST layer
  • Implement semantic search
  • Implement everything across the board for Concept, Description, Language Refset, Relationship, and AssociationReference (e.g. reason for inactivation)
    • Let the demo drive all use cases, 
  • READ only version of rest service
  • Consider reorganizing snapshot loader to load concept-at-a-time.

Integration Testing

  • Mojo integration testing

    • Have a setup dev environment mojo

    • Have a teardown dev environment mojo (calls createdb at the end to clean up after itself, leavign an empty Db ready to go).

...