You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In CQL, you can retrieve an object via its id property by doing something like this:
[ Encounter ] E where E.id = '123`
or, alternatively:
[ Encounter: id in { '123' } ]
Currently, the CQL compiler emits that as a filter by codes and codePath. In other words, the emitted ELM contains a Retrieve where codes = { '123' } and codePath = 'id' as if it were a terminology operation. Ideally, the CQL compiler would correctly detect this correct and emit ELM with id = '123' and idProperty = 'id'.
There are several places we need to update to support this correctly:
ModelInfos (or at least ModelResolvers) need to have the idProperty added (if absent)
The compiler needs to check the where clause to determine if the the path that's accessed is an id, and if so emit id and idProperty accordingly
The RetrieveProvider interface and the RetrieveEvaluator in the engine need to be updated to have id and idProperty
The implementations of RetrieveProvider need to add support for that path.
Acceptance criteria:
ModelInfos updated as needed, in particular the FHIR-based models
Compiler checks for idPath in where clauses, and attempts pushdown
RetrieveProvider interface updated
RetrieveProvider implementations updated
Tests for all of the above added
The text was updated successfully, but these errors were encountered:
In CQL, you can retrieve an object via its id property by doing something like this:
or, alternatively:
Currently, the CQL compiler emits that as a filter by
codes
andcodePath
. In other words, the emitted ELM contains a Retrieve wherecodes = { '123' }
andcodePath = 'id'
as if it were a terminology operation. Ideally, the CQL compiler would correctly detect this correct and emit ELM withid = '123'
andidProperty = 'id'
.There are several places we need to update to support this correctly:
idProperty
added (if absent)where
clause to determine if the the path that's accessed is an id, and if so emitid
andidProperty
accordinglyRetrieveProvider
interface and the RetrieveEvaluator in the engine need to be updated to haveid
andidProperty
RetrieveProvider
need to add support for that path.Acceptance criteria:
idPath
in where clauses, and attempts pushdownThe text was updated successfully, but these errors were encountered: