Skip to content

Commit cf5bb88

Browse files
committed
fix parameter types for GET
1 parent d9650c8 commit cf5bb88

6 files changed

Lines changed: 60 additions & 59 deletions

File tree

cqf-fhir-cr-hapi/src/main/java/org/opencds/cqf/fhir/cr/hapi/dstu3/measure/MeasureOperationsProvider.java

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212
import ca.uhn.fhir.rest.server.exceptions.InternalErrorException;
1313
import ca.uhn.fhir.rest.server.provider.ProviderConstants;
1414
import org.hl7.fhir.dstu3.model.Bundle;
15+
import org.hl7.fhir.dstu3.model.CodeType;
16+
import org.hl7.fhir.dstu3.model.DateTimeType;
17+
import org.hl7.fhir.dstu3.model.DateType;
1518
import org.hl7.fhir.dstu3.model.Endpoint;
1619
import org.hl7.fhir.dstu3.model.IdType;
1720
import org.hl7.fhir.dstu3.model.Measure;
@@ -62,12 +65,12 @@ public MeasureOperationsProvider(IMeasureServiceFactory dstu3MeasureProcessorFac
6265
@Operation(name = ProviderConstants.CR_OPERATION_EVALUATE_MEASURE, idempotent = true, type = Measure.class)
6366
public MeasureReport evaluateMeasure(
6467
@IdParam IdType id,
65-
@OperationParam(name = "periodStart") ParametersParameterComponent periodStart,
66-
@OperationParam(name = "periodEnd") ParametersParameterComponent periodEnd,
67-
@OperationParam(name = "reportType") ParametersParameterComponent reportType,
68-
@OperationParam(name = "patient") ParametersParameterComponent patient,
69-
@OperationParam(name = "practitioner") ParametersParameterComponent practitioner,
70-
@OperationParam(name = "lastReceivedOn") ParametersParameterComponent lastReceivedOn,
68+
@OperationParam(name = "periodStart") DateType periodStart,
69+
@OperationParam(name = "periodEnd") DateType periodEnd,
70+
@OperationParam(name = "reportType") CodeType reportType,
71+
@OperationParam(name = "patient") StringType patient,
72+
@OperationParam(name = "practitioner") StringType practitioner,
73+
@OperationParam(name = "lastReceivedOn") DateTimeType lastReceivedOn,
7174
@OperationParam(name = "productLine") StringType productLine,
7275
@OperationParam(name = "additionalData") Bundle additionalData,
7376
@OperationParam(name = "terminologyEndpoint") ParametersParameterComponent terminologyEndpoint,
@@ -78,12 +81,12 @@ public MeasureReport evaluateMeasure(
7881
.create(requestDetails)
7982
.evaluateMeasure(
8083
id,
81-
getStringValue(fhirVersion, periodStart),
82-
getStringValue(fhirVersion, periodEnd),
83-
getStringValue(fhirVersion, reportType),
84-
getStringOrReferenceValue(fhirVersion, patient),
85-
getStringOrReferenceValue(fhirVersion, practitioner),
86-
getStringValue(fhirVersion, lastReceivedOn),
84+
getStringValue(periodStart),
85+
getStringValue(periodEnd),
86+
getStringValue(reportType),
87+
getStringValue(patient),
88+
getStringValue(practitioner),
89+
getStringValue(lastReceivedOn),
8790
getStringValue(productLine),
8891
additionalData,
8992
parameters,

cqf-fhir-cr-hapi/src/main/java/org/opencds/cqf/fhir/cr/hapi/r4/measure/CareGapsOperationProvider.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import java.util.Optional;
1414
import org.hl7.fhir.r4.model.BooleanType;
1515
import org.hl7.fhir.r4.model.CanonicalType;
16+
import org.hl7.fhir.r4.model.DateType;
1617
import org.hl7.fhir.r4.model.IdType;
1718
import org.hl7.fhir.r4.model.Measure;
1819
import org.hl7.fhir.r4.model.Parameters;
@@ -84,9 +85,9 @@ public CareGapsOperationProvider(
8485
@Operation(name = ProviderConstants.CR_OPERATION_CARE_GAPS, idempotent = true, type = Measure.class)
8586
public Parameters careGapsReport(
8687
RequestDetails requestDetails,
87-
@OperationParam(name = "periodStart") ParametersParameterComponent periodStart,
88-
@OperationParam(name = "periodEnd") ParametersParameterComponent periodEnd,
89-
@OperationParam(name = "subject") ParametersParameterComponent subject,
88+
@OperationParam(name = "periodStart") DateType periodStart,
89+
@OperationParam(name = "periodEnd") DateType periodEnd,
90+
@OperationParam(name = "subject") StringType subject,
9091
@OperationParam(name = "status") List<StringType> status,
9192
@OperationParam(name = "measureId") List<StringType> measureId,
9293
@OperationParam(name = "measureIdentifier") List<StringType> measureIdentifier,
@@ -96,11 +97,9 @@ public Parameters careGapsReport(
9697
return r4CareGapsProcessorFactory
9798
.create(requestDetails)
9899
.getCareGapsReport(
99-
stringTimePeriodHandler.getStartZonedDateTime(
100-
getStringValue(fhirVersion, periodStart), requestDetails),
101-
stringTimePeriodHandler.getEndZonedDateTime(
102-
getStringValue(fhirVersion, periodEnd), requestDetails),
103-
getStringOrReferenceValue(fhirVersion, subject),
100+
stringTimePeriodHandler.getStartZonedDateTime(getStringValue(periodStart), requestDetails),
101+
stringTimePeriodHandler.getEndZonedDateTime(getStringValue(periodEnd), requestDetails),
102+
getStringValue(subject),
104103
status == null
105104
? null
106105
: status.stream()

cqf-fhir-cr-hapi/src/main/java/org/opencds/cqf/fhir/cr/hapi/r4/measure/CollectDataOperationProvider.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,12 @@
1010
import ca.uhn.fhir.rest.annotation.OperationParam;
1111
import ca.uhn.fhir.rest.api.server.RequestDetails;
1212
import ca.uhn.fhir.rest.server.provider.ProviderConstants;
13+
import org.hl7.fhir.r4.model.DateType;
1314
import org.hl7.fhir.r4.model.IdType;
1415
import org.hl7.fhir.r4.model.Measure;
1516
import org.hl7.fhir.r4.model.Parameters;
1617
import org.hl7.fhir.r4.model.Parameters.ParametersParameterComponent;
18+
import org.hl7.fhir.r4.model.StringType;
1719
import org.opencds.cqf.fhir.cr.hapi.common.StringTimePeriodHandler;
1820
import org.opencds.cqf.fhir.cr.hapi.r4.ICollectDataServiceFactory;
1921

@@ -58,20 +60,18 @@ public CollectDataOperationProvider(
5860
@Operation(name = ProviderConstants.CR_OPERATION_COLLECTDATA, idempotent = true, type = Measure.class)
5961
public Parameters collectData(
6062
@IdParam IdType id,
61-
@OperationParam(name = "periodStart") ParametersParameterComponent periodStart,
62-
@OperationParam(name = "periodEnd") ParametersParameterComponent periodEnd,
63-
@OperationParam(name = "subject") ParametersParameterComponent subject,
64-
@OperationParam(name = "practitioner") ParametersParameterComponent practitioner,
63+
@OperationParam(name = "periodStart") DateType periodStart,
64+
@OperationParam(name = "periodEnd") DateType periodEnd,
65+
@OperationParam(name = "subject") StringType subject,
66+
@OperationParam(name = "practitioner") StringType practitioner,
6567
RequestDetails requestDetails) {
6668
return r4CollectDataServiceFactory
6769
.create(requestDetails)
6870
.collectData(
6971
id,
70-
stringTimePeriodHandler.getStartZonedDateTime(
71-
getStringValue(fhirVersion, periodStart), requestDetails),
72-
stringTimePeriodHandler.getEndZonedDateTime(
73-
getStringValue(fhirVersion, periodEnd), requestDetails),
74-
getStringOrReferenceValue(fhirVersion, subject),
75-
getStringOrReferenceValue(fhirVersion, practitioner));
72+
stringTimePeriodHandler.getStartZonedDateTime(getStringValue(periodStart), requestDetails),
73+
stringTimePeriodHandler.getEndZonedDateTime(getStringValue(periodEnd), requestDetails),
74+
getStringValue(subject),
75+
getStringValue(practitioner));
7676
}
7777
}

cqf-fhir-cr-hapi/src/main/java/org/opencds/cqf/fhir/cr/hapi/r4/measure/DataRequirementsOperationProvider.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import ca.uhn.fhir.rest.annotation.OperationParam;
99
import ca.uhn.fhir.rest.api.server.RequestDetails;
1010
import ca.uhn.fhir.rest.server.provider.ProviderConstants;
11+
import org.hl7.fhir.r4.model.DateType;
1112
import org.hl7.fhir.r4.model.IdType;
1213
import org.hl7.fhir.r4.model.Library;
1314
import org.hl7.fhir.r4.model.Measure;
@@ -41,11 +42,11 @@ public DataRequirementsOperationProvider(IDataRequirementsServiceFactory r4DataR
4142
@Operation(name = ProviderConstants.CR_OPERATION_DATAREQUIREMENTS, idempotent = true, type = Measure.class)
4243
public Library dataRequirements(
4344
@IdParam IdType id,
44-
@OperationParam(name = "periodStart") ParametersParameterComponent periodStart,
45-
@OperationParam(name = "periodEnd") ParametersParameterComponent periodEnd,
45+
@OperationParam(name = "periodStart") DateType periodStart,
46+
@OperationParam(name = "periodEnd") DateType periodEnd,
4647
RequestDetails requestDetails) {
4748
return r4DataRequirementsServiceFactory
4849
.create(requestDetails)
49-
.dataRequirements(id, getStringValue(fhirVersion, periodStart), getStringValue(fhirVersion, periodEnd));
50+
.dataRequirements(id, getStringValue(periodStart), getStringValue(periodEnd));
5051
}
5152
}

cqf-fhir-cr-hapi/src/main/java/org/opencds/cqf/fhir/cr/hapi/r4/measure/MeasureOperationsProvider.java

Lines changed: 23 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import java.util.List;
1515
import org.hl7.fhir.exceptions.FHIRException;
1616
import org.hl7.fhir.r4.model.Bundle;
17+
import org.hl7.fhir.r4.model.DateType;
1718
import org.hl7.fhir.r4.model.Endpoint;
1819
import org.hl7.fhir.r4.model.IdType;
1920
import org.hl7.fhir.r4.model.Measure;
@@ -75,12 +76,12 @@ public MeasureOperationsProvider(
7576
@Operation(name = ProviderConstants.CR_OPERATION_EVALUATE_MEASURE, idempotent = true, type = Measure.class)
7677
public MeasureReport evaluateMeasure(
7778
@IdParam IdType id,
78-
@OperationParam(name = "periodStart") ParametersParameterComponent periodStart,
79-
@OperationParam(name = "periodEnd") ParametersParameterComponent periodEnd,
80-
@OperationParam(name = "reportType") ParametersParameterComponent reportType,
81-
@OperationParam(name = "subject") ParametersParameterComponent subject,
82-
@OperationParam(name = "practitioner") ParametersParameterComponent practitioner,
83-
@OperationParam(name = "lastReceivedOn") ParametersParameterComponent lastReceivedOn,
79+
@OperationParam(name = "periodStart") DateType periodStart,
80+
@OperationParam(name = "periodEnd") DateType periodEnd,
81+
@OperationParam(name = "reportType") StringType reportType,
82+
@OperationParam(name = "subject") StringType subject,
83+
@OperationParam(name = "practitioner") StringType practitioner,
84+
@OperationParam(name = "lastReceivedOn") StringType lastReceivedOn,
8485
@OperationParam(name = "productLine") StringType productLine,
8586
@OperationParam(name = "additionalData") Bundle additionalData,
8687
@OperationParam(name = "contentEndpoint") ParametersParameterComponent contentEndpoint,
@@ -93,20 +94,18 @@ public MeasureReport evaluateMeasure(
9394
.create(requestDetails)
9495
.evaluate(
9596
Eithers.forMiddle3(id),
96-
stringTimePeriodHandler.getStartZonedDateTime(
97-
getStringValue(fhirVersion, periodStart), requestDetails),
98-
stringTimePeriodHandler.getEndZonedDateTime(
99-
getStringValue(fhirVersion, periodEnd), requestDetails),
100-
getStringValue(fhirVersion, reportType),
101-
getStringOrReferenceValue(fhirVersion, subject),
102-
getStringValue(fhirVersion, lastReceivedOn),
97+
stringTimePeriodHandler.getStartZonedDateTime(getStringValue(periodStart), requestDetails),
98+
stringTimePeriodHandler.getEndZonedDateTime(getStringValue(periodEnd), requestDetails),
99+
getStringValue(reportType),
100+
getStringValue(subject),
101+
getStringValue(lastReceivedOn),
103102
(Endpoint) getEndpoint(fhirVersion, contentEndpoint),
104103
(Endpoint) getEndpoint(fhirVersion, terminologyEndpoint),
105104
(Endpoint) getEndpoint(fhirVersion, dataEndpoint),
106105
additionalData,
107106
parameters,
108107
getStringValue(productLine),
109-
getStringOrReferenceValue(fhirVersion, practitioner));
108+
getStringValue(practitioner));
110109
}
111110

112111
/**
@@ -142,12 +141,12 @@ public Parameters evaluate(
142141
@OperationParam(name = "measureUrl") List<StringType> measureUrl,
143142
@OperationParam(name = "measureIdentifier") List<StringType> measureIdentifier,
144143
@OperationParam(name = "measure") List<StringType> measure,
145-
@OperationParam(name = "periodStart") ParametersParameterComponent periodStart,
146-
@OperationParam(name = "periodEnd") ParametersParameterComponent periodEnd,
147-
@OperationParam(name = "reportType") ParametersParameterComponent reportType,
148-
@OperationParam(name = "subject") ParametersParameterComponent subject,
149-
@OperationParam(name = "practitioner") ParametersParameterComponent practitioner,
150-
@OperationParam(name = "lastReceivedOn") ParametersParameterComponent lastReceivedOn,
144+
@OperationParam(name = "periodStart") DateType periodStart,
145+
@OperationParam(name = "periodEnd") DateType periodEnd,
146+
@OperationParam(name = "reportType") StringType reportType,
147+
@OperationParam(name = "subject") StringType subject,
148+
@OperationParam(name = "practitioner") StringType practitioner,
149+
@OperationParam(name = "lastReceivedOn") StringType lastReceivedOn,
151150
@OperationParam(name = "productLine") StringType productLine,
152151
@OperationParam(name = "additionalData") Bundle additionalData,
153152
@OperationParam(name = "contentEndpoint") ParametersParameterComponent contentEndpoint,
@@ -171,12 +170,10 @@ public Parameters evaluate(
171170
: measureIdentifier.stream()
172171
.map(ParameterHelper::getStringValue)
173172
.toList(), // List<Identifier>
174-
stringTimePeriodHandler.getStartZonedDateTime(
175-
getStringValue(fhirVersion, periodStart), requestDetails),
176-
stringTimePeriodHandler.getEndZonedDateTime(
177-
getStringValue(fhirVersion, periodEnd), requestDetails),
178-
getStringValue(fhirVersion, reportType),
179-
getStringOrReferenceValue(fhirVersion, subject),
173+
stringTimePeriodHandler.getStartZonedDateTime(getStringValue(periodStart), requestDetails),
174+
stringTimePeriodHandler.getEndZonedDateTime(getStringValue(periodEnd), requestDetails),
175+
getStringValue(reportType),
176+
getStringValue(subject),
180177
(Endpoint) getEndpoint(fhirVersion, contentEndpoint),
181178
(Endpoint) getEndpoint(fhirVersion, terminologyEndpoint),
182179
(Endpoint) getEndpoint(fhirVersion, dataEndpoint),

cqf-fhir-cr-hapi/src/test/java/org/opencds/cqf/fhir/cr/hapi/r4/MeasureOperationProviderIT.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ public MeasureReport runEvaluateMeasure(
3939
.named(ProviderConstants.CR_OPERATION_EVALUATE_MEASURE)
4040
.withParameters(parametersEval)
4141
.returnResourceType(MeasureReport.class)
42+
.useHttpGet()
4243
.execute();
4344
}
4445

0 commit comments

Comments
 (0)