Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@
import static org.opencds.cqf.fhir.cr.hapi.common.ParameterHelper.getStringValue;

import ca.uhn.fhir.context.FhirVersionEnum;
import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
import org.hl7.fhir.instance.model.api.IBaseDatatype;
import org.hl7.fhir.instance.model.api.IPrimitiveType;

public class CanonicalHelper {
Expand All @@ -13,14 +11,10 @@ private CanonicalHelper() {}

public static <C extends IPrimitiveType<String>> C getCanonicalType(
FhirVersionEnum fhirVersion,
IBaseBackboneElement canonical,
IBaseBackboneElement url,
IBaseDatatype version) {
return getCanonicalType(
fhirVersion,
getStringValue(fhirVersion, canonical),
getStringValue(fhirVersion, url),
getStringValue(version));
IPrimitiveType<String> canonical,
IPrimitiveType<String> url,
IPrimitiveType<String> version) {
return getCanonicalType(fhirVersion, getStringValue(canonical), getStringValue(url), getStringValue(version));
}

public static <C extends IPrimitiveType<String>> C getCanonicalType(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package org.opencds.cqf.fhir.cr.hapi.dstu3.activitydefinition;

import static org.opencds.cqf.fhir.cr.hapi.common.CanonicalHelper.getCanonicalType;
import static org.opencds.cqf.fhir.cr.hapi.common.ParameterHelper.getStringOrReferenceValue;
import static org.opencds.cqf.fhir.cr.hapi.common.ParameterHelper.getStringValue;
import static org.opencds.cqf.fhir.utility.EndpointHelper.getEndpoint;

import ca.uhn.fhir.context.FhirVersionEnum;
Expand All @@ -22,6 +22,7 @@
import org.hl7.fhir.dstu3.model.StringType;
import org.hl7.fhir.exceptions.FHIRException;
import org.hl7.fhir.instance.model.api.IBaseResource;
import org.hl7.fhir.instance.model.api.IPrimitiveType;
import org.opencds.cqf.fhir.cr.hapi.common.IActivityDefinitionProcessorFactory;
import org.opencds.cqf.fhir.utility.monad.Eithers;
import org.springframework.stereotype.Component;
Expand Down Expand Up @@ -72,10 +73,10 @@ public ActivityDefinitionApplyProvider(IActivityDefinitionProcessorFactory activ
@Operation(name = ProviderConstants.CR_OPERATION_APPLY, idempotent = true, type = ActivityDefinition.class)
public IBaseResource apply(
@IdParam IdType id,
@OperationParam(name = "subject") ParametersParameterComponent subject,
@OperationParam(name = "encounter") ParametersParameterComponent encounter,
@OperationParam(name = "practitioner") ParametersParameterComponent practitioner,
@OperationParam(name = "organization") ParametersParameterComponent organization,
@OperationParam(name = "subject") StringType subject,
@OperationParam(name = "encounter") StringType encounter,
@OperationParam(name = "practitioner") StringType practitioner,
@OperationParam(name = "organization") StringType organization,
@OperationParam(name = "userType") CodeableConcept userType,
@OperationParam(name = "userLanguage") CodeableConcept userLanguage,
@OperationParam(name = "userTaskContext") CodeableConcept userTaskContext,
Expand All @@ -93,10 +94,10 @@ public IBaseResource apply(
.create(requestDetails)
.apply(
Eithers.forMiddle3(id),
getStringOrReferenceValue(fhirVersion, subject),
getStringOrReferenceValue(fhirVersion, encounter),
getStringOrReferenceValue(fhirVersion, practitioner),
getStringOrReferenceValue(fhirVersion, organization),
getStringValue(subject),
getStringValue(encounter),
getStringValue(practitioner),
getStringValue(organization),
userType,
userLanguage,
userTaskContext,
Expand Down Expand Up @@ -148,13 +149,13 @@ public IBaseResource apply(
@Operation(name = ProviderConstants.CR_OPERATION_APPLY, idempotent = true, type = ActivityDefinition.class)
public IBaseResource apply(
@OperationParam(name = "activityDefinition") ActivityDefinition activityDefinition,
@OperationParam(name = "canonical") ParametersParameterComponent canonical,
@OperationParam(name = "url") ParametersParameterComponent url,
@OperationParam(name = "canonical", typeName = "uri") IPrimitiveType<String> canonical,
@OperationParam(name = "url", typeName = "uri") IPrimitiveType<String> url,
@OperationParam(name = "version") StringType version,
@OperationParam(name = "subject") ParametersParameterComponent subject,
@OperationParam(name = "encounter") ParametersParameterComponent encounter,
@OperationParam(name = "practitioner") ParametersParameterComponent practitioner,
@OperationParam(name = "organization") ParametersParameterComponent organization,
@OperationParam(name = "subject") StringType subject,
@OperationParam(name = "encounter") StringType encounter,
@OperationParam(name = "practitioner") StringType practitioner,
@OperationParam(name = "organization") StringType organization,
@OperationParam(name = "userType") CodeableConcept userType,
@OperationParam(name = "userLanguage") CodeableConcept userLanguage,
@OperationParam(name = "userTaskContext") CodeableConcept userTaskContext,
Expand All @@ -172,10 +173,10 @@ public IBaseResource apply(
.create(requestDetails)
.apply(
Eithers.for3(getCanonicalType(fhirVersion, canonical, url, version), null, activityDefinition),
getStringOrReferenceValue(fhirVersion, subject),
getStringOrReferenceValue(fhirVersion, encounter),
getStringOrReferenceValue(fhirVersion, practitioner),
getStringOrReferenceValue(fhirVersion, organization),
getStringValue(subject),
getStringValue(encounter),
getStringValue(practitioner),
getStringValue(organization),
userType,
userLanguage,
userTaskContext,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@
import ca.uhn.fhir.rest.server.provider.ProviderConstants;
import org.hl7.fhir.dstu3.model.IdType;
import org.hl7.fhir.dstu3.model.Library;
import org.hl7.fhir.dstu3.model.Parameters.ParametersParameterComponent;
import org.hl7.fhir.dstu3.model.StringType;
import org.hl7.fhir.exceptions.FHIRException;
import org.hl7.fhir.instance.model.api.IBaseResource;
import org.hl7.fhir.instance.model.api.IPrimitiveType;
import org.opencds.cqf.fhir.cr.hapi.common.ILibraryProcessorFactory;
import org.opencds.cqf.fhir.utility.monad.Eithers;

Expand All @@ -37,8 +37,8 @@ public IBaseResource getDataRequirements(@IdParam IdType id, RequestDetails requ
@Operation(name = ProviderConstants.CR_OPERATION_DATAREQUIREMENTS, idempotent = true, type = Library.class)
public IBaseResource getDataRequirements(
@OperationParam(name = "id") StringType id,
@OperationParam(name = "canonical") ParametersParameterComponent canonical,
@OperationParam(name = "url") ParametersParameterComponent url,
@OperationParam(name = "canonical", typeName = "uri") IPrimitiveType<String> canonical,
@OperationParam(name = "url", typeName = "uri") IPrimitiveType<String> url,
@OperationParam(name = "version") StringType version,
RequestDetails requestDetails)
throws InternalErrorException, FHIRException {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package org.opencds.cqf.fhir.cr.hapi.dstu3.library;

import static org.opencds.cqf.fhir.cr.hapi.common.CanonicalHelper.newCanonicalType;
import static org.opencds.cqf.fhir.cr.hapi.common.ParameterHelper.getStringOrReferenceValue;
import static org.opencds.cqf.fhir.cr.hapi.common.ParameterHelper.getStringValue;
import static org.opencds.cqf.fhir.utility.EndpointHelper.getEndpoint;

Expand All @@ -21,6 +20,7 @@
import org.hl7.fhir.dstu3.model.Parameters.ParametersParameterComponent;
import org.hl7.fhir.dstu3.model.PrimitiveType;
import org.hl7.fhir.dstu3.model.StringType;
import org.hl7.fhir.instance.model.api.IPrimitiveType;
import org.opencds.cqf.fhir.cr.hapi.common.ILibraryProcessorFactory;
import org.opencds.cqf.fhir.utility.monad.Eithers;

Expand Down Expand Up @@ -109,8 +109,8 @@ public LibraryEvaluateProvider(ILibraryProcessorFactory libraryProcessorFactory)
@Operation(name = ProviderConstants.CR_OPERATION_EVALUATE, idempotent = true, type = Library.class)
public Parameters evaluate(
@IdParam IdType id,
@OperationParam(name = "subject") String subject,
@OperationParam(name = "expression") List<String> expression,
@OperationParam(name = "subject") StringType subject,
@OperationParam(name = "expression") List<StringType> expression,
@OperationParam(name = "parameters") Parameters parameters,
@OperationParam(name = "useServerData") BooleanType useServerData,
@OperationParam(name = "data") Bundle data,
Expand All @@ -126,8 +126,12 @@ public Parameters evaluate(
.create(requestDetails)
.evaluate(
Eithers.forMiddle3(id),
subject,
expression,
getStringValue(subject),
expression == null
? null
: expression.stream()
.map(PrimitiveType::getValue)
.toList(),
parameters,
useServerData == null ? Boolean.TRUE : useServerData.booleanValue(),
data,
Expand Down Expand Up @@ -219,8 +223,8 @@ public Parameters evaluate(
@Operation(name = ProviderConstants.CR_OPERATION_EVALUATE, idempotent = true, type = Library.class)
public Parameters evaluate(
@OperationParam(name = "library") Library library,
@OperationParam(name = "url") ParametersParameterComponent url,
@OperationParam(name = "subject") ParametersParameterComponent subject,
@OperationParam(name = "url", typeName = "uri") IPrimitiveType<String> url,
@OperationParam(name = "subject") StringType subject,
@OperationParam(name = "expression") List<StringType> expression,
@OperationParam(name = "parameters") Parameters parameters,
@OperationParam(name = "useServerData") BooleanType useServerData,
Expand All @@ -233,8 +237,8 @@ public Parameters evaluate(
return (Parameters) libraryProcessorFactory
.create(requestDetails)
.evaluate(
Eithers.for3(newCanonicalType(fhirVersion, getStringValue(fhirVersion, url)), null, library),
getStringOrReferenceValue(fhirVersion, subject),
Eithers.for3(newCanonicalType(fhirVersion, getStringValue(url)), null, library),
getStringValue(subject),
expression == null
? null
: expression.stream()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import org.hl7.fhir.dstu3.model.StringType;
import org.hl7.fhir.exceptions.FHIRException;
import org.hl7.fhir.instance.model.api.IBaseBundle;
import org.hl7.fhir.instance.model.api.IPrimitiveType;
import org.opencds.cqf.fhir.cr.hapi.common.ILibraryProcessorFactory;
import org.opencds.cqf.fhir.utility.monad.Eithers;

Expand Down Expand Up @@ -73,8 +74,8 @@ public IBaseBundle packagePlanDefinition(
@Operation(name = ProviderConstants.CR_OPERATION_PACKAGE, idempotent = true, type = Library.class)
public IBaseBundle packagePlanDefinition(
@OperationParam(name = "id") StringType id,
@OperationParam(name = "canonical") ParametersParameterComponent canonical,
@OperationParam(name = "url") ParametersParameterComponent url,
@OperationParam(name = "canonical", typeName = "uri") IPrimitiveType<String> canonical,
@OperationParam(name = "url", typeName = "uri") IPrimitiveType<String> url,
@OperationParam(name = "version") StringType version,
@OperationParam(name = "terminologyEndpoint") ParametersParameterComponent terminologyEndpoint,
@OperationParam(name = "usePut") BooleanType usePut,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package org.opencds.cqf.fhir.cr.hapi.dstu3.plandefinition;

import static org.opencds.cqf.fhir.cr.hapi.common.CanonicalHelper.getCanonicalType;
import static org.opencds.cqf.fhir.cr.hapi.common.ParameterHelper.getStringOrReferenceValue;
import static org.opencds.cqf.fhir.cr.hapi.common.ParameterHelper.getStringValue;
import static org.opencds.cqf.fhir.utility.EndpointHelper.getEndpoint;

import ca.uhn.fhir.context.FhirVersionEnum;
Expand All @@ -23,6 +23,7 @@
import org.hl7.fhir.dstu3.model.StringType;
import org.hl7.fhir.exceptions.FHIRException;
import org.hl7.fhir.instance.model.api.IBaseResource;
import org.hl7.fhir.instance.model.api.IPrimitiveType;
import org.opencds.cqf.fhir.cr.hapi.common.IPlanDefinitionProcessorFactory;
import org.opencds.cqf.fhir.utility.monad.Eithers;
import org.springframework.stereotype.Component;
Expand Down Expand Up @@ -73,10 +74,10 @@ public PlanDefinitionApplyProvider(IPlanDefinitionProcessorFactory planDefinitio
@Operation(name = ProviderConstants.CR_OPERATION_APPLY, idempotent = true, type = PlanDefinition.class)
public IBaseResource apply(
@IdParam IdType id,
@OperationParam(name = "subject") ParametersParameterComponent subject,
@OperationParam(name = "encounter") ParametersParameterComponent encounter,
@OperationParam(name = "practitioner") ParametersParameterComponent practitioner,
@OperationParam(name = "organization") ParametersParameterComponent organization,
@OperationParam(name = "subject") StringType subject,
@OperationParam(name = "encounter") StringType encounter,
@OperationParam(name = "practitioner") StringType practitioner,
@OperationParam(name = "organization") StringType organization,
@OperationParam(name = "userType") CodeableConcept userType,
@OperationParam(name = "userLanguage") CodeableConcept userLanguage,
@OperationParam(name = "userTaskContext") CodeableConcept userTaskContext,
Expand All @@ -95,10 +96,10 @@ public IBaseResource apply(
.create(requestDetails)
.apply(
Eithers.forMiddle3(id),
getStringOrReferenceValue(fhirVersion, subject),
getStringOrReferenceValue(fhirVersion, encounter),
getStringOrReferenceValue(fhirVersion, practitioner),
getStringOrReferenceValue(fhirVersion, organization),
getStringValue(subject),
getStringValue(encounter),
getStringValue(practitioner),
getStringValue(organization),
userType,
userLanguage,
userTaskContext,
Expand Down Expand Up @@ -151,13 +152,13 @@ public IBaseResource apply(
@Operation(name = ProviderConstants.CR_OPERATION_APPLY, idempotent = true, type = PlanDefinition.class)
public IBaseResource apply(
@OperationParam(name = "planDefinition") PlanDefinition planDefinition,
@OperationParam(name = "canonical") ParametersParameterComponent canonical,
@OperationParam(name = "url") ParametersParameterComponent url,
@OperationParam(name = "canonical", typeName = "uri") IPrimitiveType<String> canonical,
@OperationParam(name = "url", typeName = "uri") IPrimitiveType<String> url,
@OperationParam(name = "version") StringType version,
@OperationParam(name = "subject") ParametersParameterComponent subject,
@OperationParam(name = "encounter") ParametersParameterComponent encounter,
@OperationParam(name = "practitioner") ParametersParameterComponent practitioner,
@OperationParam(name = "organization") ParametersParameterComponent organization,
@OperationParam(name = "subject") StringType subject,
@OperationParam(name = "encounter") StringType encounter,
@OperationParam(name = "practitioner") StringType practitioner,
@OperationParam(name = "organization") StringType organization,
@OperationParam(name = "userType") CodeableConcept userType,
@OperationParam(name = "userLanguage") CodeableConcept userLanguage,
@OperationParam(name = "userTaskContext") CodeableConcept userTaskContext,
Expand All @@ -176,10 +177,10 @@ public IBaseResource apply(
.create(requestDetails)
.apply(
Eithers.for3(getCanonicalType(fhirVersion, canonical, url, version), null, planDefinition),
getStringOrReferenceValue(fhirVersion, subject),
getStringOrReferenceValue(fhirVersion, encounter),
getStringOrReferenceValue(fhirVersion, practitioner),
getStringOrReferenceValue(fhirVersion, organization),
getStringValue(subject),
getStringValue(encounter),
getStringValue(practitioner),
getStringValue(organization),
userType,
userLanguage,
userTaskContext,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@
import ca.uhn.fhir.rest.server.exceptions.InternalErrorException;
import ca.uhn.fhir.rest.server.provider.ProviderConstants;
import org.hl7.fhir.dstu3.model.IdType;
import org.hl7.fhir.dstu3.model.Parameters.ParametersParameterComponent;
import org.hl7.fhir.dstu3.model.PlanDefinition;
import org.hl7.fhir.dstu3.model.StringType;
import org.hl7.fhir.exceptions.FHIRException;
import org.hl7.fhir.instance.model.api.IBaseResource;
import org.hl7.fhir.instance.model.api.IPrimitiveType;
import org.opencds.cqf.fhir.cr.hapi.common.IPlanDefinitionProcessorFactory;
import org.opencds.cqf.fhir.utility.monad.Eithers;

Expand All @@ -37,8 +37,8 @@ public IBaseResource getDataRequirements(@IdParam IdType id, RequestDetails requ
@Operation(name = ProviderConstants.CR_OPERATION_DATAREQUIREMENTS, idempotent = true, type = PlanDefinition.class)
public IBaseResource getDataRequirements(
@OperationParam(name = "id") StringType id,
@OperationParam(name = "canonical") ParametersParameterComponent canonical,
@OperationParam(name = "url") ParametersParameterComponent url,
@OperationParam(name = "canonical", typeName = "uri") IPrimitiveType<String> canonical,
@OperationParam(name = "url", typeName = "uri") IPrimitiveType<String> url,
@OperationParam(name = "version") StringType version,
RequestDetails requestDetails)
throws InternalErrorException, FHIRException {
Expand Down
Loading
Loading