...
- 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)
- Can delta loader scale to a full sized delta?
DONE: change run.config to run.config.ts
DONE: BAC: Admin tools - all should use "server" flag except for QaDatabase and Create/Updatedb
DONE: BAC: QA 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
- BAC DS - Unit Testing
- DONE: ProjectService
- add project, etc.
- DONE: findXXX methods for refset members
- find all refset members (by refset id)
- DONE: get all members for a concept/description
- DONE: getInverseRelationships(Concept)
- ***Integration 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).
...