Skip to content

Commit

Permalink
Merge branch 'master' into dqm-make-methods-accessible
Browse files Browse the repository at this point in the history
  • Loading branch information
JPercival authored Oct 8, 2024
2 parents d6cb77c + ff5af8a commit a49c56e
Show file tree
Hide file tree
Showing 8 changed files with 29 additions and 179 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -166,8 +166,7 @@ public org.opencds.cqf.fhir.cr.activitydefinition.apply.ApplyRequest toActivityR
}

public GenerateRequest toGenerateRequest(IBaseResource profile) {
return new GenerateRequest(
profile, false, true, subjectId, parameters, useServerData, data, libraryEngine, modelResolver)
return new GenerateRequest(profile, false, true, modelResolver)
.setDefaultLibraryUrl(defaultLibraryUrl)
.setQuestionnaire(questionnaire);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,31 +97,20 @@ public <C extends IPrimitiveType<String>, R extends IBaseResource> IBaseResource

public <C extends IPrimitiveType<String>, R extends IBaseResource> IBaseResource generateQuestionnaire(
Either3<C, IIdType, R> profile, boolean supportedOnly, boolean requiredOnly) {
return generateQuestionnaire(
profile, supportedOnly, requiredOnly, null, null, null, true, (IBaseResource) null, null, null, null);
return generateQuestionnaire(profile, supportedOnly, requiredOnly, (IBaseResource) null, null, null);
}

public <C extends IPrimitiveType<String>, R extends IBaseResource> IBaseResource generateQuestionnaire(
Either3<C, IIdType, R> profile,
boolean supportedOnly,
boolean requiredOnly,
String subjectId,
IBaseParameters parameters,
IBaseBundle data,
boolean useServerData,
IBaseResource dataEndpoint,
IBaseResource contentEndpoint,
IBaseResource terminologyEndpoint,
String id) {
return generateQuestionnaire(
profile,
supportedOnly,
requiredOnly,
subjectId,
parameters,
data,
useServerData,
createRestRepository(repository.fhirContext(), dataEndpoint),
createRestRepository(repository.fhirContext(), contentEndpoint),
createRestRepository(repository.fhirContext(), terminologyEndpoint),
id);
Expand All @@ -131,47 +120,17 @@ public <C extends IPrimitiveType<String>, R extends IBaseResource> IBaseResource
Either3<C, IIdType, R> profile,
boolean supportedOnly,
boolean requiredOnly,
String subjectId,
IBaseParameters parameters,
IBaseBundle data,
boolean useServerData,
Repository dataRepository,
Repository contentRepository,
Repository terminologyRepository,
String id) {
repository = proxy(repository, useServerData, dataRepository, contentRepository, terminologyRepository);
return generateQuestionnaire(
profile,
supportedOnly,
requiredOnly,
subjectId,
parameters,
data,
useServerData,
new LibraryEngine(repository, evaluationSettings),
id);
repository = proxy(repository, true, null, contentRepository, terminologyRepository);
return generateQuestionnaire(profile, supportedOnly, requiredOnly, id);
}

public <C extends IPrimitiveType<String>, R extends IBaseResource> IBaseResource generateQuestionnaire(
Either3<C, IIdType, R> profile,
boolean supportedOnly,
boolean requiredOnly,
String subjectId,
IBaseParameters parameters,
IBaseBundle data,
boolean useServerData,
LibraryEngine libraryEngine,
String id) {
var request = new GenerateRequest(
resolveStructureDefinition(profile),
supportedOnly,
requiredOnly,
subjectId == null ? null : Ids.newId(fhirVersion, Ids.ensureIdType(subjectId, SUBJECT_TYPE)),
parameters,
useServerData,
data,
libraryEngine == null ? new LibraryEngine(repository, evaluationSettings) : libraryEngine,
modelResolver);
Either3<C, IIdType, R> profile, boolean supportedOnly, boolean requiredOnly, String id) {
var request =
new GenerateRequest(resolveStructureDefinition(profile), supportedOnly, requiredOnly, modelResolver);
return generateQuestionnaire(request, id);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,6 @@
public class GenerateRequest implements IQuestionnaireRequest {
private final boolean supportedOnly;
private final boolean requiredOnly;
private final IIdType subjectId;
private final IBaseParameters parameters;
private final boolean useServerData;
private final IBaseBundle data;
private final LibraryEngine libraryEngine;
private final ModelResolver modelResolver;
private final FhirVersionEnum fhirVersion;
private final IBaseResource profile;
Expand All @@ -38,28 +33,14 @@ public class GenerateRequest implements IQuestionnaireRequest {
private List<? extends ICompositeType> snapshotElements;

public GenerateRequest(
IBaseResource profile,
boolean supportedOnly,
boolean requiredOnly,
IIdType subjectId,
IBaseParameters parameters,
boolean useServerData,
IBaseBundle data,
LibraryEngine libraryEngine,
ModelResolver modelResolver) {
checkNotNull(libraryEngine, "expected non-null value for libraryEngine");
IBaseResource profile, boolean supportedOnly, boolean requiredOnly, ModelResolver modelResolver) {
checkNotNull(profile, "expected non-null value for profile");
checkNotNull(modelResolver, "expected non-null value for modelResolver");
this.profile = profile;
fhirVersion = this.profile.getStructureFhirVersionEnum();
this.supportedOnly = supportedOnly;
this.requiredOnly = requiredOnly;
this.subjectId = subjectId;
this.parameters = parameters;
this.useServerData = useServerData;
this.data = data;
this.libraryEngine = libraryEngine;
this.modelResolver = modelResolver;
fhirVersion =
this.libraryEngine.getRepository().fhirContext().getVersion().getVersion();
defaultLibraryUrl = resolveDefaultLibraryUrl();
}

Expand Down Expand Up @@ -126,27 +107,27 @@ public String getOperationName() {

@Override
public IIdType getSubjectId() {
return subjectId;
throw new UnsupportedOperationException("Unimplemented method 'getSubjectId'");
}

@Override
public IBaseBundle getData() {
return data;
throw new UnsupportedOperationException("Unimplemented method 'getData'");
}

@Override
public boolean getUseServerData() {
return useServerData;
throw new UnsupportedOperationException("Unimplemented method 'getUseServerData'");
}

@Override
public IBaseParameters getParameters() {
return parameters;
throw new UnsupportedOperationException("Unimplemented method 'getParameters'");
}

@Override
public LibraryEngine getLibraryEngine() {
return libraryEngine;
throw new UnsupportedOperationException("Unimplemented method 'getLibraryEngine'");
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
import java.util.stream.Collectors;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import org.hl7.fhir.instance.model.api.IBase;
import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
import org.hl7.fhir.instance.model.api.IBaseBooleanDatatype;
import org.hl7.fhir.instance.model.api.IBaseExtension;
Expand Down Expand Up @@ -107,11 +106,6 @@ protected CqfExpression getFeatureExpression(GenerateRequest request) {
return expression;
}

protected List<IBase> getFeatureExpressionResults(
GenerateRequest request, CqfExpression featureExpression, String itemLinkId) {
return expressionProcessor.getExpressionResultForItem(request, featureExpression, itemLinkId);
}

protected <E extends ICompositeType> void processElements(
GenerateRequest request,
IBaseBackboneElement item,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -125,8 +125,7 @@ public static ApplyRequest newPDApplyRequestForVersion(
inputParameterResolver);
}

public static GenerateRequest newGenerateRequestForVersion(
FhirVersionEnum fhirVersion, LibraryEngine libraryEngine) {
public static GenerateRequest newGenerateRequestForVersion(FhirVersionEnum fhirVersion) {
IBaseResource profile = null;
try {
var fhirContext = FhirContext.forCached(fhirVersion);
Expand All @@ -137,21 +136,11 @@ public static GenerateRequest newGenerateRequestForVersion(
} catch (Exception e) {
// Do nothing
}
return newGenerateRequestForVersion(fhirVersion, libraryEngine, profile);
return newGenerateRequestForVersion(fhirVersion, profile);
}

public static GenerateRequest newGenerateRequestForVersion(
FhirVersionEnum fhirVersion, LibraryEngine libraryEngine, IBaseResource profile) {
return new GenerateRequest(
profile,
false,
true,
Ids.newId(fhirVersion, Ids.ensureIdType(PATIENT_ID, "Patient")),
null,
true,
null,
libraryEngine,
FhirModelResolverCache.resolverForVersion(fhirVersion));
public static GenerateRequest newGenerateRequestForVersion(FhirVersionEnum fhirVersion, IBaseResource profile) {
return new GenerateRequest(profile, false, true, FhirModelResolverCache.resolverForVersion(fhirVersion));
}

public static PopulateRequest newPopulateRequestForVersion(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,7 @@
import java.util.stream.Collectors;
import org.hl7.fhir.instance.model.api.IBase;
import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
import org.hl7.fhir.instance.model.api.IBaseBundle;
import org.hl7.fhir.instance.model.api.IBaseExtension;
import org.hl7.fhir.instance.model.api.IBaseParameters;
import org.hl7.fhir.instance.model.api.IBaseResource;
import org.hl7.fhir.instance.model.api.IIdType;
import org.hl7.fhir.instance.model.api.IPrimitiveType;
Expand Down Expand Up @@ -84,9 +82,6 @@ public static class When {
private IPrimitiveType<String> profileUrl;
private IBaseResource profile;
private String id;
private String subjectId;
private IBaseBundle data;
private IBaseParameters parameters;

When(Repository repository, QuestionnaireProcessor itemGenerator) {
this.repository = repository;
Expand All @@ -113,35 +108,9 @@ public When id(String id) {
return this;
}

public When subjectId(String id) {
subjectId = id;
return this;
}

public When bundle(IBaseBundle data) {
this.data = data;
return this;
}

public When parameters(IBaseParameters params) {
parameters = params;
return this;
}

public GeneratedItem then() {
IBaseResource result;
if (subjectId != null || parameters != null || data != null) {
result = processor.generateQuestionnaire(
Eithers.for3(profileUrl, profileId, profile),
false,
true,
subjectId,
parameters,
data,
true,
null,
id);
} else if (profileUrl != null || profileId != null || profile != null) {
if (profileUrl != null || profileId != null || profile != null) {
result = processor.generateQuestionnaire(Eithers.for3(profileUrl, profileId, profile), false, true);
} else {
result = processor.generateQuestionnaire(id);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@

@ExtendWith(MockitoExtension.class)
class ElementProcessorTests {
private final FhirContext fhirContextDstu2 = FhirContext.forDstu2Cached();
private final FhirContext fhirContextR4B = FhirContext.forR4BCached();

@Mock
Expand Down Expand Up @@ -155,9 +154,7 @@ void createProcessorShouldReturnNullForUnsupportedVersion() {

@Test
void createInitialShouldReturnNullForUnsupportedVersion() {
doReturn(repository).when(libraryEngine).getRepository();
doReturn(fhirContextDstu2).when(repository).fhirContext();
var request = newGenerateRequestForVersion(FhirVersionEnum.DSTU2, libraryEngine);
var request = newGenerateRequestForVersion(FhirVersionEnum.DSTU2);
var initial = createInitial(request, new BooleanType(true));
assertNull(initial);
}
Expand Down
Loading

0 comments on commit a49c56e

Please sign in to comment.