Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add testcase that references an Observation, add test that uses ELM . #1280

Merged
merged 20 commits into from
May 29, 2022

Conversation

ktarasenko
Copy link
Contributor

@ktarasenko ktarasenko commented Apr 6, 2022

Fixes #1107

Description
Add more complex test case for evaluateMeasure that refrerences an observation and an episode of care without the context value

Alternative(s) considered
Have you considered any alternatives? And if so, why have you chosen the approach in this PR?

Type
Bug fix| Testing

Screenshots (if applicable)

Checklist

  • I have read and acknowledged the Code of conduct.
  • I have read the Contributing page.
  • I have signed the Google Individual CLA, or I am covered by my company's Corporate CLA.
  • I have discussed my proposed solution with code owners in the linked issue(s) and we have agreed upon the general approach.
  • I have run ./gradlew spotlessApply and ./gradlew spotlessCheck to check my code follows the style guide of this project.
  • I have run ./gradlew check and ./gradlew connectedCheck to test my changes locally.
  • I have built and run the demo app(s) to verify my change fixes the issue and/or does not break the demo app(s).

Copy link
Collaborator

@jingtang10 jingtang10 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fantastic progress! thanks so much @ktarasenko

@f-odhiambo can you please also leave a review?

Comment on lines 84 to 85
// FIXME
// filter(Patient.ACTIVE, { value = of(true) })
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do you need to uncommen this?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I cleaned up filtering for now

Comment on lines 113 to 114
// FIXME
// filter(Patient.ACTIVE, { value = of(true) })
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ditto

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed

import org.opencds.cqf.cql.evaluator.measure.r4.R4MeasureProcessor

class FhirOperator(fhirContext: FhirContext, fhirEngine: FhirEngine) {
class FhirOperator(fhirContext: FhirContext, fhirEngine: FhirEngine, debugLogsOn: Boolean = false) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

have you looked into using Timber? wouldn't really want this to be in the public api i think.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The logging of cql evaluator is a bit tricky. It's also doesn't really log anything, but rather dumps some debug information in memory. I will revert this part to avoid the confusion.

Comment on lines 67 to 70
val measureReportJSON =
FhirContext.forR4().newJsonParser().encodeResourceToString(measureReport)

assertThat(measureReportJSON).isNotNull()
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is just testing the serialization? i feel we don't need this.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

right, there should be a special test case for it. Removing

FhirContext.forR4().newJsonParser().encodeResourceToString(measureReport)

assertThat(measureReportJSON).isNotNull()
assertThat(measureReport).isNotNull()
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is subsumed by later lines. so i'd vote removing this line.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

assertThat(measureReportJSON).isNotNull()
assertThat(measureReport).isNotNull()
assertThat(
measureReport.evaluatedResource.any { it.reference == "Observation/anc-b6-de17-example" }
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

use of any seems very lenient in test cases. can we harden it?

same with below

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

@ktarasenko ktarasenko force-pushed the kt/evaluateMeasurewithObservation branch from c4ce80f to 1506f92 Compare April 12, 2022 21:48
Comment on lines 84 to 85
// FIXME
// filter(Patient.ACTIVE, { value = of(true) })
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I cleaned up filtering for now

Comment on lines 113 to 114
// FIXME
// filter(Patient.ACTIVE, { value = of(true) })
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed

@@ -21,57 +21,56 @@ import com.google.android.fhir.DatabaseErrorStrategy.UNSPECIFIED
import com.google.android.fhir.sync.Authenticator
import com.google.android.fhir.sync.DataSource

/** The builder for [FhirEngine] instance */
/** The builder for [FhirEngine] instance. */
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Having FhirEngineProvider as a singleton creates some problems in tests. @epicadk , @jingtang10 do you think it makes sense to convert it to a normal class and move the burden of keeping a single instance of it to clients?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you elaborate?

@yigit @aditya-07 @stevenckngaa @kevinmost fyi

Copy link
Contributor Author

@ktarasenko ktarasenko Apr 19, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Workflow library E2E tests require a real instance of the FhirEngine. Currently the only way to create the FhirEngine is through FhirEngineProvider, which maintains a single instance of the FhirServices.
To improve testability, we either need a way to clean up the FhirEngine instance or to have a fresh instance of it for every test (add a way to reset the FhirServices singleton, like i did in this PR).
I'd prefer the second option.
As a next step, given that singletons in android are generally frowned upon, I would suggest to get rid of memoisation part of the FhirEngineProvider and let it create a fresh instance of the FhirEngine every time. This way clients can chose their way of maintaining the single instance of the FhirEngine.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jingtang10 actually, the second Robolectric test doesn't work if the DB instance wasn't closed after every test case (in the @after method), so to be able to have all testcases in a single test file, this change is needed to be in this PR.

@ktarasenko ktarasenko force-pushed the kt/evaluateMeasurewithObservation branch from e29b4c0 to ac1218d Compare April 13, 2022 20:54
@ktarasenko ktarasenko requested a review from jingtang10 April 13, 2022 20:58
ktarasenko added 2 commits May 3, 2022 15:03
…ithObservation

# Conflicts:
#	engine/src/main/java/com/google/android/fhir/FhirEngineProvider.kt
#	engine/src/main/java/com/google/android/fhir/db/Database.kt
#	workflow/src/test/java/com/google/android/fhir/workflow/FhirOperatorTest.kt
@ktarasenko ktarasenko force-pushed the kt/evaluateMeasurewithObservation branch from de98911 to 747a3d1 Compare May 3, 2022 13:36
@ktarasenko ktarasenko requested a review from wantingzhang77 as a code owner May 3, 2022 13:36
@ktarasenko ktarasenko force-pushed the kt/evaluateMeasurewithObservation branch from 1cff4a0 to 46b6193 Compare May 3, 2022 13:43
@ktarasenko ktarasenko requested a review from vitorpamplona May 3, 2022 13:43
@ktarasenko
Copy link
Contributor Author

@jingtang10 @vitorpamplona @f-odhiambo Updated the CL, PTAL

@ktarasenko ktarasenko force-pushed the kt/evaluateMeasurewithObservation branch from 46b6193 to ab47c2e Compare May 3, 2022 13:48
Copy link
Collaborator

@f-odhiambo f-odhiambo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I run the test based on the newly added resources and the $evaluate_measure works for Individual measure reporting. There is a bug in Population measure reporting after adding multiple patients but I think it is more of a CQL than an API error. Can be sorted in a separate PR. I think we can merge this in now

@f-odhiambo
Copy link
Collaborator

I think this ticket can be merged in as the remaining issue is CQL related - Evaluation fails if we have more than 1 patient being evaluated for ANC Indicator 1 measure reporting. This occurs when you are trying to do a measure reporting evaluation for a population for more than 1 patient

The following errors were encountered during evaluation:
[pool-1-thread-1] WARN ca.uhn.fhir.parser.LenientErrorHandler - Found incorrect type for element type - Expected ARRAY and found OBJECT
[pool-1-thread-1] WARN org.opencds.cqf.cql.evaluator.engine.terminology.BundleTerminologyProvider - ValueSet http://fhir.org/guides/who/anc-cds/ValueSet/anc-b9-de33 is not expanded. Falling back to compose definition. This will potentially produce incorrect results.
[pool-1-thread-1] WARN org.opencds.cqf.cql.evaluator.engine.terminology.BundleTerminologyProvider - ValueSet http://fhir.org/guides/who/anc-cds/ValueSet/anc-b6-de99 is not expanded. Falling back to compose definition. This will potentially produce incorrect results.
[pool-1-thread-1] WARN org.opencds.cqf.cql.evaluator.engine.terminology.BundleTerminologyProvider - ValueSet http://fhir.org/guides/who/anc-cds/ValueSet/anc-b10-de220 is not expanded. Falling back to compose definition. This will potentially produce incorrect results.
[pool-1-thread-1] WARN org.opencds.cqf.cql.evaluator.engine.terminology.BundleTerminologyProvider - ValueSet http://fhir.org/guides/who/anc-cds/ValueSet/anc-b9-de79 is not expanded. Falling back to compose definition. This will potentially produce incorrect results.
[pool-1-thread-1] WARN org.opencds.cqf.cql.evaluator.engine.terminology.BundleTerminologyProvider - ValueSet http://fhir.org/guides/who/anc-cds/ValueSet/anc-b6-de26 is not expanded. Falling back to compose definition. This will potentially produce incorrect results.
[pool-1-thread-1] WARN org.opencds.cqf.cql.evaluator.engine.terminology.BundleTerminologyProvider - ValueSet http://fhir.org/guides/who/anc-cds/ValueSet/anc-b9-de34 is not expanded. Falling back to compose definition. This will potentially produce incorrect results.
[pool-1-thread-1] WARN org.opencds.cqf.cql.evaluator.engine.terminology.BundleTerminologyProvider - ValueSet http://fhir.org/guides/who/anc-cds/ValueSet/anc-b10-de241 is not expanded. Falling back to compose definition. This will potentially produce incorrect results.
[pool-1-thread-1] WARN org.opencds.cqf.cql.evaluator.engine.terminology.BundleTerminologyProvider - ValueSet http://fhir.org/guides/who/anc-cds/ValueSet/anc-b10-de217 is not expanded. Falling back to compose definition. This will potentially produce incorrect results.
[pool-1-thread-1] WARN org.opencds.cqf.cql.evaluator.engine.terminology.BundleTerminologyProvider - ValueSet http://fhir.org/guides/who/anc-cds/ValueSet/anc-b9-de35 is not expanded. Falling back to compose definition. This will potentially produce incorrect results.
[pool-1-thread-1] WARN org.opencds.cqf.cql.evaluator.engine.terminology.BundleTerminologyProvider - ValueSet http://fhir.org/guides/who/anc-cds/ValueSet/anc-c-de5 is not expanded. Falling back to compose definition. This will potentially produce incorrect results.
[pool-1-thread-1] WARN org.opencds.cqf.cql.evaluator.engine.terminology.BundleTerminologyProvider - ValueSet http://fhir.org/guides/who/anc-cds/ValueSet/anc-b10-de221 is not expanded. Falling back to compose definition. This will potentially produce incorrect results.
[pool-1-thread-1] WARN org.opencds.cqf.cql.evaluator.engine.terminology.BundleTerminologyProvider - ValueSet http://fhir.org/guides/who/anc-cds/ValueSet/anc-b10-de218 is not expanded. Falling back to compose definition. This will potentially produce incorrect results.
[pool-1-thread-1] WARN org.opencds.cqf.cql.evaluator.engine.terminology.BundleTerminologyProvider - ValueSet http://fhir.org/guides/who/anc-cds/ValueSet/anc-b10-de222 is not expanded. Falling back to compose definition. This will potentially produce incorrect results.
[pool-1-thread-1] WARN org.opencds.cqf.cql.evaluator.engine.terminology.BundleTerminologyProvider - ValueSet http://fhir.org/guides/who/anc-cds/ValueSet/anc-end-38 is not expanded. Falling back to compose definition. This will potentially produce incorrect results.
[pool-1-thread-1] WARN org.opencds.cqf.cql.evaluator.engine.terminology.BundleTerminologyProvider - ValueSet http://fhir.org/guides/who/anc-cds/ValueSet/anc-persona is not expanded. Falling back to compose definition. This will potentially produce incorrect results.
[pool-1-thread-1] WARN org.opencds.cqf.cql.evaluator.engine.terminology.BundleTerminologyProvider - ValueSet http://fhir.org/guides/who/core/ValueSet/who-identifier-types is not expanded. Falling back to compose definition. This will potentially produce incorrect results.
[pool-1-thread-1] WARN org.opencds.cqf.cql.evaluator.engine.terminology.BundleTerminologyProvider - ValueSet http://fhir.org/guides/who/anc-cds/ValueSet/anc-care-codes is not expanded. Falling back to compose definition. This will potentially produce incorrect results.
[pool-1-thread-1] WARN org.opencds.cqf.cql.evaluator.engine.terminology.BundleTerminologyProvider - ValueSet http://fhir.org/guides/who/anc-cds/ValueSet/anc-activity-codes is not expanded. Falling back to compose definition. This will potentially produce incorrect results.
[pool-1-thread-1] WARN org.opencds.cqf.cql.evaluator.engine.terminology.BundleTerminologyProvider - ValueSet http://fhir.org/guides/who/anc-cds/ValueSet/anc-b6-de25 is not expanded. Falling back to compose definition. This will potentially produce incorrect results.
[pool-1-thread-1] WARN org.opencds.cqf.cql.evaluator.engine.terminology.BundleTerminologyProvider - ValueSet http://fhir.org/guides/who/anc-cds/ValueSet/anc-end-39 is not expanded. Falling back to compose definition. This will potentially produce incorrect results.
[pool-1-thread-1] WARN org.opencds.cqf.cql.evaluator.engine.terminology.BundleTerminologyProvider - ValueSet http://fhir.org/guides/who/anc-cds/ValueSet/anc-b10-de219 is not expanded. Falling back to compose definition. This will potentially produce incorrect results.
[pool-1-thread-1] WARN org.opencds.cqf.cql.evaluator.engine.terminology.BundleTerminologyProvider - ValueSet http://fhir.org/guides/who/anc-cds/ValueSet/anc-b6-de22 is not expanded. Falling back to compose definition. This will potentially produce incorrect results.
[pool-1-thread-1] WARN org.opencds.cqf.cql.evaluator.engine.terminology.BundleTerminologyProvider - ValueSet http://fhir.org/guides/who/anc-cds/ValueSet/anc-end-24 is not expanded. Falling back to compose definition. This will potentially produce incorrect results.
[pool-1-thread-1] WARN org.opencds.cqf.cql.evaluator.engine.terminology.BundleTerminologyProvider - ValueSet http://fhir.org/guides/who/anc-cds/ValueSet/anc-b10-de224 is not expanded. Falling back to compose definition. This will potentially produce incorrect results.
[pool-1-thread-1] WARN org.opencds.cqf.cql.evaluator.engine.terminology.BundleTerminologyProvider - ValueSet http://fhir.org/guides/who/anc-cds/ValueSet/anc-b10-de225 is not expanded. Falling back to compose definition. This will potentially produce incorrect results.
[pool-1-thread-1] WARN org.opencds.cqf.cql.evaluator.engine.terminology.BundleTerminologyProvider - ValueSet http://fhir.org/guides/who/anc-cds/ValueSet/anc-c-de1 is not expanded. Falling back to compose definition. This will potentially produce incorrect results.
[pool-1-thread-1] WARN ca.uhn.fhir.parser.LenientErrorHandler - Unknown element 'role' found while parsing
[pool-1-thread-1] WARN ca.uhn.fhir.parser.LenientErrorHandler - Unknown attribute 'value' found while parsing
[pool-1-thread-1] WARN ca.uhn.fhir.parser.LenientErrorHandler - Found incorrect type for element type - Expected ARRAY and found OBJECT
[pool-1-thread-1] WARN org.opencds.cqf.cql.evaluator.fhir.DirectoryBundler - Error parsing resource /Users/fodhiambo/Sites/smart-anc/input/tests/library/ANCIND01/validated-resources/PopulationMeasureReprt-MultiplePatients.fhir.json: Failed to parse JSON encoded FHIR content: Did not find any content to parse
[pool-1-thread-1] WARN ca.uhn.fhir.parser.LenientErrorHandler - Found incorrect type for element type - Expected ARRAY and found OBJECT
org.opencds.cqf.cql.engine.exception.InvalidOperatorArgument: Expected a list with at most one element, but found a list with multiple elements.
	at org.opencds.cqf.cql.engine.elm.execution.SingletonFromEvaluator.singletonFrom(SingletonFromEvaluator.java:32)
	at org.opencds.cqf.cql.engine.elm.execution.SingletonFromEvaluator.internalEvaluate(SingletonFromEvaluator.java:47)
	at org.opencds.cqf.cql.engine.elm.execution.Executable.evaluate(Executable.java:18)
	at org.opencds.cqf.cql.engine.elm.execution.ExpressionDefEvaluator.internalEvaluate(ExpressionDefEvaluator.java:19)
	at org.opencds.cqf.cql.engine.elm.execution.Executable.evaluate(Executable.java:18)
	at org.opencds.cqf.cql.engine.elm.execution.ExpressionRefEvaluator.internalEvaluate(ExpressionRefEvaluator.java:11)
	at org.opencds.cqf.cql.engine.elm.execution.Executable.evaluate(Executable.java:18)
	at org.opencds.cqf.cql.engine.elm.execution.PropertyEvaluator.internalEvaluate(PropertyEvaluator.java:13)
	at org.opencds.cqf.cql.engine.elm.execution.Executable.evaluate(Executable.java:18)
	at org.opencds.cqf.cql.engine.elm.execution.FunctionRefEvaluator.internalEvaluate(FunctionRefEvaluator.java:17)
	at org.opencds.cqf.cql.engine.elm.execution.Executable.evaluate(Executable.java:18)
	at org.opencds.cqf.cql.engine.elm.execution.EqualEvaluator.internalEvaluate(EqualEvaluator.java:76)
	at org.opencds.cqf.cql.engine.elm.execution.Executable.evaluate(Executable.java:18)
	at org.opencds.cqf.cql.engine.elm.execution.AndEvaluator.internalEvaluate(AndEvaluator.java:50)
	at org.opencds.cqf.cql.engine.elm.execution.Executable.evaluate(Executable.java:18)
	at org.opencds.cqf.cql.engine.elm.execution.QueryEvaluator.evaluateWhere(QueryEvaluator.java:75)
	at org.opencds.cqf.cql.engine.elm.execution.QueryEvaluator.internalEvaluate(QueryEvaluator.java:198)
	at org.opencds.cqf.cql.engine.elm.execution.Executable.evaluate(Executable.java:18)
	at org.opencds.cqf.cql.engine.elm.execution.FunctionRefEvaluator.internalEvaluate(FunctionRefEvaluator.java:17)
	at org.opencds.cqf.cql.engine.elm.execution.Executable.evaluate(Executable.java:18)
	at org.opencds.cqf.cql.engine.elm.execution.PropertyEvaluator.internalEvaluate(PropertyEvaluator.java:13)
	at org.opencds.cqf.cql.engine.elm.execution.Executable.evaluate(Executable.java:18)
	at org.opencds.cqf.cql.engine.elm.execution.AsEvaluator.internalEvaluate(AsEvaluator.java:37)
	at org.opencds.cqf.cql.engine.elm.execution.Executable.evaluate(Executable.java:18)
	at org.opencds.cqf.cql.engine.elm.execution.ExpressionDefEvaluator.internalEvaluate(ExpressionDefEvaluator.java:19)
	at org.opencds.cqf.cql.engine.elm.execution.Executable.evaluate(Executable.java:18)
	at org.opencds.cqf.cql.engine.elm.execution.ExpressionRefEvaluator.internalEvaluate(ExpressionRefEvaluator.java:11)
	at org.opencds.cqf.cql.engine.elm.execution.Executable.evaluate(Executable.java:18)
	at org.opencds.cqf.cql.engine.elm.execution.ExpressionDefEvaluator.internalEvaluate(ExpressionDefEvaluator.java:19)
	at org.opencds.cqf.cql.engine.elm.execution.Executable.evaluate(Executable.java:18)
	at org.opencds.cqf.cql.engine.execution.CqlEngine.evaluateExpressions(CqlEngine.java:186)
	at org.opencds.cqf.cql.engine.execution.CqlEngine.evaluate(CqlEngine.java:164)
	at org.opencds.cqf.cql.evaluator.CqlEvaluator.evaluate(CqlEvaluator.java:89)
	at org.opencds.cqf.cql.evaluator.CqlEvaluator.evaluate(CqlEvaluator.java:76)
	at org.opencds.cqf.cql.evaluator.cli.command.CqlCommand.call(CqlCommand.java:163)
	at org.opencds.cqf.cql.evaluator.cli.command.CqlCommand.call(CqlCommand.java:34)
	at picocli.CommandLine.executeUserObject(CommandLine.java:1953)
	at picocli.CommandLine.access$1300(CommandLine.java:145)
	at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2352)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2346)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2311)
	at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
	at picocli.CommandLine.execute(CommandLine.java:2078)
	at org.opencds.cqf.cql.evaluator.cli.Main.run(Main.java:19)
	at org.opencds.cqf.cql.ls.DebugCqlCommandContribution.executeCql(DebugCqlCommandContribution.java:37)
	at org.opencds.cqf.cql.ls.DebugCqlCommandContribution.executeCommand(DebugCqlCommandContribution.java:65)
	at org.opencds.cqf.cql.ls.service.CqlWorkspaceService.executeCommandFromContributions(CqlWorkspaceService.java:173)
	at org.opencds.cqf.cql.ls.service.CqlWorkspaceService.executeCommand(CqlWorkspaceService.java:121)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at org.eclipse.lsp4j.jsonrpc.services.GenericEndpoint.lambda$null$0(GenericEndpoint.java:65)
	at org.eclipse.lsp4j.jsonrpc.services.GenericEndpoint.request(GenericEndpoint.java:120)
	at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.handleRequest(RemoteEndpoint.java:261)
	at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.consume(RemoteEndpoint.java:190)
	at org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.handleMessage(StreamMessageProducer.java:194)
	at org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.listen(StreamMessageProducer.java:94)
	at org.eclipse.lsp4j.jsonrpc.json.ConcurrentMessageProcessor.run(ConcurrentMessageProcessor.java:113)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)
elapsed: 5.969 seconds

Good job @ktarasenko on the effort put on this

CC @aditya-07 @jingtang10

@Tarun-Bhardwaj
Copy link

@f-odhiambo is there an ETA by when this PR can be merged?

@f-odhiambo
Copy link
Collaborator

I need access to push an update to Kostia's PR to be reviewed and merged.
cc @jingtang10 . This work is less than 1 day to review and merge

add assertions to the cql test
disable populations test
…ithObservation

# Conflicts:
#	workflow/src/main/java/com/google/android/fhir/workflow/FhirEngineRetrieveProvider.kt
#	workflow/src/main/java/com/google/android/fhir/workflow/FhirOperator.kt
@ktarasenko ktarasenko dismissed jingtang10’s stale review May 27, 2022 13:00

approved by f-odhiambo, changes are addessed

@ktarasenko ktarasenko changed the title Add testcase that references an Observation. Add testcase that references an Observation, add test that uses ELM . May 27, 2022
@ktarasenko ktarasenko enabled auto-merge (squash) May 27, 2022 13:03
@ktarasenko ktarasenko force-pushed the kt/evaluateMeasurewithObservation branch from 4a706cc to 03d3d27 Compare May 28, 2022 19:56
@codecov
Copy link

codecov bot commented May 28, 2022

Codecov Report

Merging #1280 (03d3d27) into master (f2f2a8d) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #1280   +/-   ##
=========================================
  Coverage     85.72%   85.72%           
  Complexity      716      716           
=========================================
  Files           149      149           
  Lines         10760    10760           
  Branches        858      858           
=========================================
  Hits           9224     9224           
  Misses         1095     1095           
  Partials        441      441           

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update c08192e...03d3d27. Read the comment docs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type:bug Something isn't working type:testing Improvements on tests or testing infrastructure
Projects
Archived in project
4 participants