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
The CqlEngine APIs were created in an ad hoc fashion, as we were uncertain what an optimal API would look like. This has resulted in a few cases where the APIs are inconsistent, don't follow Java best practices, or suffer from code smells such as "telescoping constructor", or having many function overloads.
The engine still isn't API complete/final. Specifically, we don't have all the debugging APIs in place, so any current work on updating the APIs will be a step along the way.
The CqlEngine APIs were created in an ad hoc fashion, as we were uncertain what an optimal API would look like. This has resulted in a few cases where the APIs are inconsistent, don't follow Java best practices, or suffer from code smells such as "telescoping constructor", or having many function overloads.
The engine still isn't API complete/final. Specifically, we don't have all the debugging APIs in place, so any current work on updating the APIs will be a step along the way.
Example of many overloads (potentially addressed by a params class):
https://github.com/cqframework/clinical_quality_language/blob/master/Src/java/engine/src/main/java/org/opencds/cqf/cql/engine/execution/CqlEngine.java#L110-L176
Example of brittle API, which is not extensible as new retrieve options are added:
clinical_quality_language/Src/java/engine/src/main/java/org/opencds/cqf/cql/engine/retrieve/RetrieveProvider.java
Line 6 in e3171ce
Example of improper hiding:
clinical_quality_language/Src/java/engine/src/main/java/org/opencds/cqf/cql/engine/execution/EvaluationResult.java
Line 9 in e3171ce
This story is a place holder for a design task to revise these to be more useful/consistent.
The text was updated successfully, but these errors were encountered: