Skip to content

Commit 0efebcc

Browse files
barhodesJPercival
andauthored
Use HAPI Repository interface and classes (#659)
* use hapi repository * use hapi repository * remove unused cdsConfigService * handle contained id change * fix measure test * fix tests * fix merge stompage * bump hapi to release version * spotless * fix warnings * fix tests * fix merge stompage * spotless * fix tests * fix tests * fix some warnings * fix tests and bump cql version to release * Fix CPG IT test * Fix Cql Evaluation Service Test * Fix tests for errors * fix tests * Fix tests for real * For realz fixed for realz --------- Co-authored-by: Jonathan Percival <jonathan.i.percival@gmail.com> Co-authored-by: JP <jonathan.percival@smilecdr.com>
1 parent 45bdf75 commit 0efebcc

214 files changed

Lines changed: 919 additions & 2221 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

cqf-fhir-api/src/main/java/org/opencds/cqf/fhir/api/Repository.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import ca.uhn.fhir.rest.server.exceptions.ForbiddenOperationException;
88
import ca.uhn.fhir.rest.server.exceptions.InternalErrorException;
99
import ca.uhn.fhir.rest.server.exceptions.NotImplementedOperationException;
10-
import com.google.common.annotations.Beta;
1110
import java.util.Collections;
1211
import java.util.List;
1312
import java.util.Map;
@@ -66,8 +65,10 @@
6665
* </p>
6766
*
6867
* @see <a href="https://www.hl7.org/fhir/http.html">FHIR REST API</a>
68+
*
69+
* @deprecated Use class from HAPI
6970
*/
70-
@Beta
71+
@Deprecated(since = "3.25.0", forRemoval = true)
7172
public interface Repository {
7273

7374
// CRUD starts here
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
package org.opencds.cqf.fhir.benchmark;
22

3-
import org.opencds.cqf.fhir.api.Repository;
3+
import ca.uhn.fhir.repository.IRepository;
44
import org.opencds.cqf.fhir.cr.activitydefinition.ActivityDefinitionProcessor;
55
import org.opencds.cqf.fhir.utility.repository.operations.IActivityDefinitionProcessor;
66
import org.opencds.cqf.fhir.utility.repository.operations.IActivityDefinitionProcessorFactory;
77

88
public class ActivityDefinitionProcessorFactory implements IActivityDefinitionProcessorFactory {
99

1010
@Override
11-
public IActivityDefinitionProcessor create(Repository repository) {
11+
public IActivityDefinitionProcessor create(IRepository repository) {
1212
return new ActivityDefinitionProcessor(repository);
1313
}
1414
}

cqf-fhir-benchmark/src/test/java/org/opencds/cqf/fhir/benchmark/measure/r4/Measure.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
import static org.opencds.cqf.fhir.test.Resources.getResourcePath;
44

55
import ca.uhn.fhir.context.FhirContext;
6+
import ca.uhn.fhir.repository.IRepository;
67
import java.nio.file.Path;
78
import java.time.ZonedDateTime;
89
import java.util.function.Supplier;
910
import org.hl7.fhir.r4.model.Bundle;
1011
import org.hl7.fhir.r4.model.IdType;
1112
import org.hl7.fhir.r4.model.MeasureReport;
12-
import org.opencds.cqf.fhir.api.Repository;
1313
import org.opencds.cqf.fhir.cql.engine.retrieve.RetrieveSettings.SEARCH_FILTER_MODE;
1414
import org.opencds.cqf.fhir.cql.engine.retrieve.RetrieveSettings.TERMINOLOGY_FILTER_MODE;
1515
import org.opencds.cqf.fhir.cql.engine.terminology.TerminologySettings.VALUESET_EXPANSION_MODE;
@@ -45,7 +45,7 @@ public static Given given() {
4545
}
4646

4747
public static class Given {
48-
private Repository repository;
48+
private IRepository repository;
4949
private MeasureEvaluationOptions evaluationOptions;
5050
private final MeasurePeriodValidator measurePeriodValidator;
5151
private final R4MeasureServiceUtils measureServiceUtils;

cqf-fhir-benchmark/src/test/java/org/opencds/cqf/fhir/benchmark/plandefinition/TestPlanDefinition.java

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
import ca.uhn.fhir.context.FhirContext;
1919
import ca.uhn.fhir.parser.IParser;
20+
import ca.uhn.fhir.repository.IRepository;
2021
import java.io.FileInputStream;
2122
import java.io.FileNotFoundException;
2223
import java.io.IOException;
@@ -36,7 +37,6 @@
3637
import org.hl7.fhir.instance.model.api.IPrimitiveType;
3738
import org.json.JSONException;
3839
import org.opencds.cqf.cql.engine.model.ModelResolver;
39-
import org.opencds.cqf.fhir.api.Repository;
4040
import org.opencds.cqf.fhir.benchmark.TestOperationProvider;
4141
import org.opencds.cqf.fhir.benchmark.helpers.DataRequirementsLibrary;
4242
import org.opencds.cqf.fhir.benchmark.helpers.GeneratedPackage;
@@ -99,10 +99,10 @@ public static Given given() {
9999
}
100100

101101
public static class Given {
102-
private Repository repository;
102+
private IRepository repository;
103103
private EvaluationSettings evaluationSettings;
104104

105-
public Given repository(Repository repository) {
105+
public Given repository(IRepository repository) {
106106
this.repository = repository;
107107
return this;
108108
}
@@ -119,7 +119,7 @@ public Given evaluationSettings(EvaluationSettings evaluationSettings) {
119119
return this;
120120
}
121121

122-
public PlanDefinitionProcessor buildProcessor(Repository repository) {
122+
public PlanDefinitionProcessor buildProcessor(IRepository repository) {
123123
if (repository instanceof IgRepository igRepository) {
124124
igRepository.setOperationProvider(TestOperationProvider.newProvider(repository.fhirContext()));
125125
}
@@ -143,7 +143,7 @@ public When when() {
143143
}
144144

145145
public static class When {
146-
private final Repository repository;
146+
private final IRepository repository;
147147
private final PlanDefinitionProcessor processor;
148148
private final IParser jsonParser;
149149

@@ -154,16 +154,16 @@ public static class When {
154154
private String practitionerId;
155155
private String organizationId;
156156
private boolean useServerData;
157-
private Repository dataRepository;
158-
private Repository contentRepository;
159-
private Repository terminologyRepository;
157+
private IRepository dataRepository;
158+
private IRepository contentRepository;
159+
private IRepository terminologyRepository;
160160
private IBaseBundle additionalData;
161161
private IIdType additionalDataId;
162162
private List<? extends IBaseBackboneElement> prefetchData;
163163
private IBaseParameters parameters;
164164
private boolean isPackagePut;
165165

166-
public When(Repository repository, PlanDefinitionProcessor processor) {
166+
public When(IRepository repository, PlanDefinitionProcessor processor) {
167167
this.repository = repository;
168168
this.processor = processor;
169169
jsonParser = repository.fhirContext().newJsonParser();
@@ -335,15 +335,15 @@ public DataRequirementsLibrary thenDataRequirements() {
335335
}
336336

337337
public static class GeneratedBundle {
338-
final Repository repository;
338+
final IRepository repository;
339339
final IBaseBundle generatedBundleInner;
340340
final IParser jsonParser;
341341
final ModelResolver modelResolver;
342342
IBaseResource questionnaire;
343343
IBaseResource questionnaireResponse;
344344
Map<String, IBaseBackboneElement> items;
345345

346-
public GeneratedBundle(Repository repository, IBaseBundle generatedBundleInner) {
346+
public GeneratedBundle(IRepository repository, IBaseBundle generatedBundleInner) {
347347
this.repository = repository;
348348
this.generatedBundleInner = generatedBundleInner;
349349
jsonParser = this.repository.fhirContext().newJsonParser().setPrettyPrint(true);
@@ -466,12 +466,12 @@ public GeneratedBundle entryHasOperationOutcome(int entry) {
466466
}
467467

468468
public static class GeneratedCarePlan {
469-
final Repository repository;
469+
final IRepository repository;
470470
final IBaseResource generatedCarePlanInner;
471471
final IParser jsonParser;
472472
final ModelResolver modelResolver;
473473

474-
public GeneratedCarePlan(Repository repository, IBaseResource generatedCarePlanInner) {
474+
public GeneratedCarePlan(IRepository repository, IBaseResource generatedCarePlanInner) {
475475
this.repository = repository;
476476
this.generatedCarePlanInner = generatedCarePlanInner;
477477
jsonParser = this.repository.fhirContext().newJsonParser().setPrettyPrint(true);

cqf-fhir-benchmark/src/test/java/org/opencds/cqf/fhir/benchmark/questionnaire/TestQuestionnaire.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import static org.opencds.cqf.fhir.test.Resources.getResourcePath;
44

55
import ca.uhn.fhir.context.FhirContext;
6+
import ca.uhn.fhir.repository.IRepository;
67
import java.nio.file.Path;
78
import java.util.List;
89
import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
@@ -12,7 +13,6 @@
1213
import org.hl7.fhir.instance.model.api.IBaseResource;
1314
import org.hl7.fhir.instance.model.api.IIdType;
1415
import org.hl7.fhir.instance.model.api.IPrimitiveType;
15-
import org.opencds.cqf.fhir.api.Repository;
1616
import org.opencds.cqf.fhir.cql.EvaluationSettings;
1717
import org.opencds.cqf.fhir.cql.engine.retrieve.RetrieveSettings.SEARCH_FILTER_MODE;
1818
import org.opencds.cqf.fhir.cql.engine.retrieve.RetrieveSettings.TERMINOLOGY_FILTER_MODE;
@@ -29,7 +29,7 @@ public static Given given() {
2929
}
3030

3131
public static class Given {
32-
private Repository repository;
32+
private IRepository repository;
3333
private EvaluationSettings evaluationSettings;
3434

3535
public Given repositoryFor(FhirContext fhirContext, String repositoryPath) {
@@ -38,7 +38,7 @@ public Given repositoryFor(FhirContext fhirContext, String repositoryPath) {
3838
return this;
3939
}
4040

41-
public QuestionnaireProcessor buildProcessor(Repository repository) {
41+
public QuestionnaireProcessor buildProcessor(IRepository repository) {
4242
if (evaluationSettings == null) {
4343
evaluationSettings = EvaluationSettings.getDefault();
4444
evaluationSettings

cqf-fhir-cql/src/main/java/org/opencds/cqf/fhir/cql/Engines.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import static com.google.common.base.Preconditions.checkNotNull;
44

55
import ca.uhn.fhir.context.FhirContext;
6+
import ca.uhn.fhir.repository.IRepository;
67
import java.util.ArrayList;
78
import java.util.HashMap;
89
import java.util.HashSet;
@@ -24,7 +25,6 @@
2425
import org.opencds.cqf.cql.engine.fhir.converter.FhirTypeConverterFactory;
2526
import org.opencds.cqf.cql.engine.retrieve.RetrieveProvider;
2627
import org.opencds.cqf.cql.engine.terminology.TerminologyProvider;
27-
import org.opencds.cqf.fhir.api.Repository;
2828
import org.opencds.cqf.fhir.cql.cql2elm.content.RepositoryFhirLibrarySourceProvider;
2929
import org.opencds.cqf.fhir.cql.cql2elm.util.LibraryVersionSelector;
3030
import org.opencds.cqf.fhir.cql.engine.parameters.CqlFhirParametersConverter;
@@ -45,16 +45,16 @@ public class Engines {
4545

4646
private Engines() {}
4747

48-
public static CqlEngine forRepository(Repository repository) {
48+
public static CqlEngine forRepository(IRepository repository) {
4949
return forRepository(repository, EvaluationSettings.getDefault());
5050
}
5151

52-
public static CqlEngine forRepository(Repository repository, EvaluationSettings settings) {
52+
public static CqlEngine forRepository(IRepository repository, EvaluationSettings settings) {
5353
return forRepository(repository, settings, null);
5454
}
5555

5656
public static CqlEngine forRepository(
57-
Repository repository, EvaluationSettings settings, IBaseBundle additionalData) {
57+
IRepository repository, EvaluationSettings settings, IBaseBundle additionalData) {
5858
checkNotNull(settings);
5959
checkNotNull(repository);
6060

@@ -67,7 +67,7 @@ public static CqlEngine forRepository(
6767
}
6868

6969
private static Environment buildEnvironment(
70-
Repository repository,
70+
IRepository repository,
7171
EvaluationSettings settings,
7272
TerminologyProvider terminologyProvider,
7373
Map<String, DataProvider> dataProviders) {
@@ -85,7 +85,7 @@ private static Environment buildEnvironment(
8585
}
8686

8787
private static void registerLibrarySourceProviders(
88-
EvaluationSettings settings, LibraryManager manager, Repository repository) {
88+
EvaluationSettings settings, LibraryManager manager, IRepository repository) {
8989
var loader = manager.getLibrarySourceLoader();
9090
loader.clearProviders();
9191

@@ -134,14 +134,14 @@ private static void registerNpmSupport(
134134
}
135135
}
136136

137-
private static LibrarySourceProvider buildLibrarySource(Repository repository) {
137+
private static LibrarySourceProvider buildLibrarySource(IRepository repository) {
138138
var adapterFactory = IAdapterFactory.forFhirContext(repository.fhirContext());
139139
return new RepositoryFhirLibrarySourceProvider(
140140
repository, adapterFactory, new LibraryVersionSelector(adapterFactory));
141141
}
142142

143143
private static Map<String, DataProvider> buildDataProviders(
144-
Repository repository,
144+
IRepository repository,
145145
IBaseBundle additionalData,
146146
TerminologyProvider terminologyProvider,
147147
RetrieveSettings retrieveSettings) {

cqf-fhir-cql/src/main/java/org/opencds/cqf/fhir/cql/LibraryEngine.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import static java.util.Objects.requireNonNull;
44

55
import ca.uhn.fhir.context.FhirContext;
6+
import ca.uhn.fhir.repository.IRepository;
67
import ca.uhn.fhir.util.ParametersUtil;
78
import com.google.common.collect.Lists;
89
import jakarta.annotation.Nullable;
@@ -24,7 +25,6 @@
2425
import org.hl7.fhir.instance.model.api.IBaseParameters;
2526
import org.opencds.cqf.cql.engine.execution.CqlEngine;
2627
import org.opencds.cqf.cql.engine.execution.EvaluationResult;
27-
import org.opencds.cqf.fhir.api.Repository;
2828
import org.opencds.cqf.fhir.cql.engine.parameters.CqlFhirParametersConverter;
2929
import org.opencds.cqf.fhir.cql.engine.parameters.CqlParameterDefinition;
3030
import org.opencds.cqf.fhir.utility.CqfExpression;
@@ -35,17 +35,17 @@ public class LibraryEngine {
3535

3636
private static final Logger logger = LoggerFactory.getLogger(LibraryEngine.class);
3737

38-
protected final Repository repository;
38+
protected final IRepository repository;
3939
protected final FhirContext fhirContext;
4040
protected final EvaluationSettings settings;
4141

42-
public LibraryEngine(Repository repository, EvaluationSettings evaluationSettings) {
42+
public LibraryEngine(IRepository repository, EvaluationSettings evaluationSettings) {
4343
this.repository = requireNonNull(repository, "repository can not be null");
4444
this.settings = requireNonNull(evaluationSettings, "evaluationSettings can not be null");
4545
fhirContext = repository.fhirContext();
4646
}
4747

48-
public Repository getRepository() {
48+
public IRepository getRepository() {
4949
return repository;
5050
}
5151

cqf-fhir-cql/src/main/java/org/opencds/cqf/fhir/cql/cql2elm/content/RepositoryFhirLibrarySourceProvider.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,31 +3,31 @@
33
import static java.util.Objects.requireNonNull;
44

55
import ca.uhn.fhir.context.FhirContext;
6+
import ca.uhn.fhir.repository.IRepository;
67
import java.util.ArrayList;
78
import org.hl7.elm.r1.VersionedIdentifier;
89
import org.hl7.fhir.instance.model.api.IBaseBundle;
910
import org.hl7.fhir.instance.model.api.IBaseResource;
10-
import org.opencds.cqf.fhir.api.Repository;
1111
import org.opencds.cqf.fhir.cql.cql2elm.util.LibraryVersionSelector;
1212
import org.opencds.cqf.fhir.utility.adapter.IAdapterFactory;
1313
import org.opencds.cqf.fhir.utility.iterable.BundleIterable;
1414
import org.opencds.cqf.fhir.utility.search.Searches;
1515

1616
public class RepositoryFhirLibrarySourceProvider extends BaseFhirLibrarySourceProvider {
1717

18-
private final Repository repository;
18+
private final IRepository repository;
1919
private final FhirContext fhirContext;
2020
private final LibraryVersionSelector libraryVersionSelector;
2121

2222
public RepositoryFhirLibrarySourceProvider(
23-
Repository repository, IAdapterFactory adapterFactory, LibraryVersionSelector libraryVersionSelector) {
23+
IRepository repository, IAdapterFactory adapterFactory, LibraryVersionSelector libraryVersionSelector) {
2424
super(adapterFactory);
2525
this.repository = requireNonNull(repository, "repository can not be null");
2626
this.fhirContext = repository.fhirContext();
2727
this.libraryVersionSelector = requireNonNull(libraryVersionSelector, "libraryVersionSelector can not be null");
2828
}
2929

30-
protected Repository getRepository() {
30+
protected IRepository getRepository() {
3131
return this.repository;
3232
}
3333

cqf-fhir-cql/src/main/java/org/opencds/cqf/fhir/cql/engine/retrieve/RepositoryRetrieveProvider.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import ca.uhn.fhir.context.FhirContext;
66
import ca.uhn.fhir.model.api.IQueryParameterType;
7+
import ca.uhn.fhir.repository.IRepository;
78
import java.util.HashMap;
89
import java.util.List;
910
import java.util.Map;
@@ -14,15 +15,14 @@
1415
import org.opencds.cqf.cql.engine.runtime.Code;
1516
import org.opencds.cqf.cql.engine.runtime.Interval;
1617
import org.opencds.cqf.cql.engine.terminology.TerminologyProvider;
17-
import org.opencds.cqf.fhir.api.Repository;
1818
import org.opencds.cqf.fhir.utility.iterable.BundleMappingIterable;
1919

2020
public class RepositoryRetrieveProvider extends BaseRetrieveProvider {
21-
private final Repository repository;
21+
private final IRepository repository;
2222
private final FhirContext fhirContext;
2323

2424
public RepositoryRetrieveProvider(
25-
final Repository repository, final TerminologyProvider terminologyProvider, RetrieveSettings settings) {
25+
final IRepository repository, final TerminologyProvider terminologyProvider, RetrieveSettings settings) {
2626
super(repository.fhirContext(), terminologyProvider, settings);
2727
this.repository = requireNonNull(repository, "repository can not be null.");
2828
this.fhirContext = repository.fhirContext();

0 commit comments

Comments
 (0)