Enhancements
Performance
'Too many roundtrips to the terminology server'
In considering VHA clinical applications requirements for terminology services, we are finding that these requirements are stated at a higher level than the CTS APIs are defined. For instance, pharmacy has a use case in which the user would like to find the drug categories used to treat a given disease. To satisfy this requirement with CTS 1.0 APIs will require 'many roundtrips to the terminology server,' and thus affects performance. In general, at VHA, we are planning to offer CTS APIs access but also offer customized APIs to our stakeholders (e.g., pharmacy). Both CTS APIs and the customized APIs will be satisfied by a common layer of APIs that minimizes the 'roundtrips to the server and optimizes performance.
Options
- What operations need to be batched?
- Should this be implemented as additional operations where needed:
- reply[] = function(Arg[] arg)
- Or should there be an overall control structure of some sort:
- beginBatch()
- function(Arg arg)
- function(Arg arg)
- ...
- function(Arg arg)
- reply[] = doBatch()
Serialized functions
There have been requests for complex functions - give me all concepts that are subtypes of 'X' that have the word "Y" in their definition or "Z" and "T" in their names.
- Should these be implemented where needed:
- reply = function(ConceptId[] subtypes, WordAndProperty match[])
- or should we try to put together an operator language like caBIO
- or should we build a query language like jTerm?