diff --git a/api/src/main/java/org/openmrs/module/fhir2/api/FhirMedicationRequestService.java b/api/src/main/java/org/openmrs/module/fhir2/api/FhirMedicationRequestService.java index b13132a16..9a6d4b11d 100644 --- a/api/src/main/java/org/openmrs/module/fhir2/api/FhirMedicationRequestService.java +++ b/api/src/main/java/org/openmrs/module/fhir2/api/FhirMedicationRequestService.java @@ -11,23 +11,14 @@ import javax.annotation.Nonnull; -import java.util.HashSet; - -import ca.uhn.fhir.model.api.Include; import ca.uhn.fhir.rest.api.server.IBundleProvider; -import ca.uhn.fhir.rest.param.DateRangeParam; -import ca.uhn.fhir.rest.param.ReferenceAndListParam; -import ca.uhn.fhir.rest.param.TokenAndListParam; import org.hl7.fhir.r4.model.MedicationRequest; +import org.openmrs.module.fhir2.api.search.param.MedicationRequestSearchParams; public interface FhirMedicationRequestService extends FhirService { @Override MedicationRequest get(@Nonnull String uuid); - IBundleProvider searchForMedicationRequests(ReferenceAndListParam patientReference, - ReferenceAndListParam encounterReference, TokenAndListParam code, ReferenceAndListParam participantReference, - ReferenceAndListParam medicationReference, TokenAndListParam id, TokenAndListParam status, - TokenAndListParam fulfillerStatus, DateRangeParam lastUpdated, HashSet includes, - HashSet revIncludes); + IBundleProvider searchForMedicationRequests(MedicationRequestSearchParams medicationRequestSearchParams); } diff --git a/api/src/main/java/org/openmrs/module/fhir2/api/impl/FhirMedicationRequestServiceImpl.java b/api/src/main/java/org/openmrs/module/fhir2/api/impl/FhirMedicationRequestServiceImpl.java index baf77defc..f36588772 100644 --- a/api/src/main/java/org/openmrs/module/fhir2/api/impl/FhirMedicationRequestServiceImpl.java +++ b/api/src/main/java/org/openmrs/module/fhir2/api/impl/FhirMedicationRequestServiceImpl.java @@ -9,24 +9,17 @@ */ package org.openmrs.module.fhir2.api.impl; -import java.util.HashSet; - -import ca.uhn.fhir.model.api.Include; import ca.uhn.fhir.rest.api.server.IBundleProvider; -import ca.uhn.fhir.rest.param.DateRangeParam; -import ca.uhn.fhir.rest.param.ReferenceAndListParam; -import ca.uhn.fhir.rest.param.TokenAndListParam; import lombok.AccessLevel; import lombok.Getter; import lombok.Setter; import org.hl7.fhir.r4.model.MedicationRequest; import org.openmrs.DrugOrder; -import org.openmrs.module.fhir2.FhirConstants; import org.openmrs.module.fhir2.api.FhirMedicationRequestService; import org.openmrs.module.fhir2.api.dao.FhirMedicationRequestDao; import org.openmrs.module.fhir2.api.search.SearchQuery; import org.openmrs.module.fhir2.api.search.SearchQueryInclude; -import org.openmrs.module.fhir2.api.search.param.SearchParameterMap; +import org.openmrs.module.fhir2.api.search.param.MedicationRequestSearchParams; import org.openmrs.module.fhir2.api.translators.MedicationRequestTranslator; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -49,26 +42,9 @@ public class FhirMedicationRequestServiceImpl extends BaseFhirService> searchQuery; @Override - public IBundleProvider searchForMedicationRequests(ReferenceAndListParam patientReference, - ReferenceAndListParam encounterReference, TokenAndListParam code, ReferenceAndListParam participantReference, - ReferenceAndListParam medicationReference, TokenAndListParam id, TokenAndListParam status, - TokenAndListParam fulfillerStatus, DateRangeParam lastUpdated, HashSet includes, - HashSet revIncludes) { - - SearchParameterMap theParams = new SearchParameterMap() - .addParameter(FhirConstants.ENCOUNTER_REFERENCE_SEARCH_HANDLER, encounterReference) - .addParameter(FhirConstants.PATIENT_REFERENCE_SEARCH_HANDLER, patientReference) - .addParameter(FhirConstants.CODED_SEARCH_HANDLER, code) - .addParameter(FhirConstants.PARTICIPANT_REFERENCE_SEARCH_HANDLER, participantReference) - .addParameter(FhirConstants.MEDICATION_REFERENCE_SEARCH_HANDLER, medicationReference) - .addParameter(FhirConstants.COMMON_SEARCH_HANDLER, FhirConstants.ID_PROPERTY, id) - .addParameter(FhirConstants.STATUS_SEARCH_HANDLER, status) - .addParameter(FhirConstants.FULFILLER_STATUS_SEARCH_HANDLER, fulfillerStatus) - .addParameter(FhirConstants.COMMON_SEARCH_HANDLER, FhirConstants.LAST_UPDATED_PROPERTY, lastUpdated) - .addParameter(FhirConstants.INCLUDE_SEARCH_HANDLER, includes) - .addParameter(FhirConstants.REVERSE_INCLUDE_SEARCH_HANDLER, revIncludes); - - return searchQuery.getQueryResults(theParams, dao, translator, searchQueryInclude); + public IBundleProvider searchForMedicationRequests(MedicationRequestSearchParams medicationRequestSearchParams) { + return searchQuery.getQueryResults(medicationRequestSearchParams.toSearchParameterMap(), dao, translator, + searchQueryInclude); } } diff --git a/api/src/main/java/org/openmrs/module/fhir2/api/search/SearchQueryInclude.java b/api/src/main/java/org/openmrs/module/fhir2/api/search/SearchQueryInclude.java index 7f765e249..04764e722 100644 --- a/api/src/main/java/org/openmrs/module/fhir2/api/search/SearchQueryInclude.java +++ b/api/src/main/java/org/openmrs/module/fhir2/api/search/SearchQueryInclude.java @@ -52,6 +52,7 @@ import org.openmrs.module.fhir2.api.search.param.EncounterSearchParams; import org.openmrs.module.fhir2.api.search.param.LocationSearchParams; import org.openmrs.module.fhir2.api.search.param.MedicationDispenseSearchParams; +import org.openmrs.module.fhir2.api.search.param.MedicationRequestSearchParams; import org.openmrs.module.fhir2.api.search.param.ObservationSearchParams; import org.openmrs.module.fhir2.api.search.param.PropParam; import org.openmrs.module.fhir2.api.search.param.SearchParameterMap; @@ -270,8 +271,8 @@ private IBundleProvider handlePractitionerReverseInclude(ReferenceAndListParam p encounterSearchParams.setParticipant(params); return encounterService.searchForEncounters(encounterSearchParams); case FhirConstants.MEDICATION_REQUEST: - return medicationRequestService.searchForMedicationRequests(null, null, null, params, null, null, null, null, - null, recursiveIncludes, recursiveRevIncludes); + return medicationRequestService.searchForMedicationRequests(new MedicationRequestSearchParams(null, null, + null, params, null, null, null, null, null, recursiveIncludes, recursiveRevIncludes)); case FhirConstants.PROCEDURE_REQUEST: case FhirConstants.SERVICE_REQUEST: return serviceRequestService.searchForServiceRequests(null, null, null, params, null, null, null, null); @@ -291,8 +292,8 @@ private IBundleProvider handleEncounterReverseInclude(ReferenceAndListParam para return diagnosticReportService.searchForDiagnosticReports(params, null, null, null, null, null, null, null, null); case FhirConstants.MEDICATION_REQUEST: - return medicationRequestService.searchForMedicationRequests(null, params, null, null, null, null, null, null, - null, recursiveIncludes, recursiveRevIncludes); + return medicationRequestService.searchForMedicationRequests(new MedicationRequestSearchParams(null, params, + null, null, null, null, null, null, null, recursiveIncludes, recursiveRevIncludes)); case FhirConstants.PROCEDURE_REQUEST: case FhirConstants.SERVICE_REQUEST: return serviceRequestService.searchForServiceRequests(null, null, params, null, null, null, null, null); @@ -305,8 +306,8 @@ private IBundleProvider handleMedicationReverseInclude(ReferenceAndListParam par HashSet recursiveIncludes, HashSet recursiveRevIncludes) { switch (targetType) { case FhirConstants.MEDICATION_REQUEST: - return medicationRequestService.searchForMedicationRequests(null, null, null, null, params, null, null, null, - null, recursiveIncludes, recursiveRevIncludes); + return medicationRequestService.searchForMedicationRequests(new MedicationRequestSearchParams(null, null, + null, null, params, null, null, null, null, recursiveIncludes, recursiveRevIncludes)); } return null; @@ -340,8 +341,8 @@ private IBundleProvider handlePatientReverseInclude(ReferenceAndListParam params encounterSearchParams.setSubject(params); return encounterService.searchForEncounters(encounterSearchParams); case FhirConstants.MEDICATION_REQUEST: - return medicationRequestService.searchForMedicationRequests(params, null, null, null, null, null, null, null, - null, recursiveIncludes, recursiveRevIncludes); + return medicationRequestService.searchForMedicationRequests(new MedicationRequestSearchParams(params, null, + null, null, null, null, null, null, null, recursiveIncludes, recursiveRevIncludes)); case FhirConstants.SERVICE_REQUEST: case FhirConstants.PROCEDURE_REQUEST: return serviceRequestService.searchForServiceRequests(params, null, null, null, null, null, null, null); diff --git a/api/src/main/java/org/openmrs/module/fhir2/api/search/param/MedicationRequestSearchParams.java b/api/src/main/java/org/openmrs/module/fhir2/api/search/param/MedicationRequestSearchParams.java new file mode 100644 index 000000000..3603760d9 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/fhir2/api/search/param/MedicationRequestSearchParams.java @@ -0,0 +1,71 @@ +/* + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.fhir2.api.search.param; + +import java.util.HashSet; + +import ca.uhn.fhir.model.api.Include; +import ca.uhn.fhir.rest.param.DateRangeParam; +import ca.uhn.fhir.rest.param.ReferenceAndListParam; +import ca.uhn.fhir.rest.param.TokenAndListParam; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.openmrs.module.fhir2.FhirConstants; + +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class MedicationRequestSearchParams extends BaseResourceSearchParams { + + private ReferenceAndListParam patientReference; + + private ReferenceAndListParam encounterReference; + + private TokenAndListParam code; + + private ReferenceAndListParam participantReference; + + private ReferenceAndListParam medicationReference; + + private TokenAndListParam status; + + private TokenAndListParam fulfillerStatus; + + @Builder + public MedicationRequestSearchParams(ReferenceAndListParam patientReference, ReferenceAndListParam encounterReference, + TokenAndListParam code, ReferenceAndListParam participantReference, ReferenceAndListParam medicationReference, + TokenAndListParam id, TokenAndListParam status, TokenAndListParam fulfillerStatus, DateRangeParam lastUpdated, + HashSet includes, HashSet revIncludes) { + + super(id, lastUpdated, null, includes, revIncludes); + + this.patientReference = patientReference; + this.encounterReference = encounterReference; + this.code = code; + this.participantReference = participantReference; + this.medicationReference = medicationReference; + this.status = status; + this.fulfillerStatus = fulfillerStatus; + } + + @Override + public SearchParameterMap toSearchParameterMap() { + return baseSearchParameterMap() + .addParameter(FhirConstants.ENCOUNTER_REFERENCE_SEARCH_HANDLER, getEncounterReference()) + .addParameter(FhirConstants.PATIENT_REFERENCE_SEARCH_HANDLER, getPatientReference()) + .addParameter(FhirConstants.CODED_SEARCH_HANDLER, getCode()) + .addParameter(FhirConstants.PARTICIPANT_REFERENCE_SEARCH_HANDLER, getParticipantReference()) + .addParameter(FhirConstants.MEDICATION_REFERENCE_SEARCH_HANDLER, getMedicationReference()) + .addParameter(FhirConstants.STATUS_SEARCH_HANDLER, getStatus()) + .addParameter(FhirConstants.FULFILLER_STATUS_SEARCH_HANDLER, getFulfillerStatus()); + } +} diff --git a/api/src/main/java/org/openmrs/module/fhir2/providers/r3/MedicationRequestFhirResourceProvider.java b/api/src/main/java/org/openmrs/module/fhir2/providers/r3/MedicationRequestFhirResourceProvider.java index 139405cb7..7327fb928 100644 --- a/api/src/main/java/org/openmrs/module/fhir2/providers/r3/MedicationRequestFhirResourceProvider.java +++ b/api/src/main/java/org/openmrs/module/fhir2/providers/r3/MedicationRequestFhirResourceProvider.java @@ -49,6 +49,7 @@ import org.openmrs.module.fhir2.api.FhirMedicationRequestService; import org.openmrs.module.fhir2.api.annotations.R3Provider; import org.openmrs.module.fhir2.api.search.SearchQueryBundleProviderR3Wrapper; +import org.openmrs.module.fhir2.api.search.param.MedicationRequestSearchParams; import org.openmrs.module.fhir2.providers.util.FhirProviderUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -137,8 +138,8 @@ public IBundleProvider searchForMedicationRequests( revIncludes = null; } - return new SearchQueryBundleProviderR3Wrapper(medicationRequestService.searchForMedicationRequests(patientReference, - encounterReference, code, participantReference, medicationReference, id, status, fulfillerStatus, lastUpdated, - includes, revIncludes)); + return new SearchQueryBundleProviderR3Wrapper(medicationRequestService.searchForMedicationRequests( + new MedicationRequestSearchParams(patientReference, encounterReference, code, participantReference, + medicationReference, id, status, fulfillerStatus, lastUpdated, includes, revIncludes))); } } diff --git a/api/src/main/java/org/openmrs/module/fhir2/providers/r4/MedicationRequestFhirResourceProvider.java b/api/src/main/java/org/openmrs/module/fhir2/providers/r4/MedicationRequestFhirResourceProvider.java index d41702d07..d428485e4 100644 --- a/api/src/main/java/org/openmrs/module/fhir2/providers/r4/MedicationRequestFhirResourceProvider.java +++ b/api/src/main/java/org/openmrs/module/fhir2/providers/r4/MedicationRequestFhirResourceProvider.java @@ -47,6 +47,7 @@ import org.openmrs.module.fhir2.FhirConstants; import org.openmrs.module.fhir2.api.FhirMedicationRequestService; import org.openmrs.module.fhir2.api.annotations.R4Provider; +import org.openmrs.module.fhir2.api.search.param.MedicationRequestSearchParams; import org.openmrs.module.fhir2.providers.util.FhirProviderUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -134,7 +135,8 @@ public IBundleProvider searchForMedicationRequests( revIncludes = null; } - return fhirMedicationRequestService.searchForMedicationRequests(patientReference, encounterReference, code, - participantReference, medicationReference, id, status, fulfillerStatus, lastUpdated, includes, revIncludes); + return fhirMedicationRequestService.searchForMedicationRequests( + new MedicationRequestSearchParams(patientReference, encounterReference, code, participantReference, + medicationReference, id, status, fulfillerStatus, lastUpdated, includes, revIncludes)); } } diff --git a/api/src/test/java/org/openmrs/module/fhir2/api/impl/FhirMedicationRequestServiceImplTest.java b/api/src/test/java/org/openmrs/module/fhir2/api/impl/FhirMedicationRequestServiceImplTest.java index b597fbf44..20b280324 100644 --- a/api/src/test/java/org/openmrs/module/fhir2/api/impl/FhirMedicationRequestServiceImplTest.java +++ b/api/src/test/java/org/openmrs/module/fhir2/api/impl/FhirMedicationRequestServiceImplTest.java @@ -58,6 +58,7 @@ import org.openmrs.module.fhir2.api.search.SearchQuery; import org.openmrs.module.fhir2.api.search.SearchQueryBundleProvider; import org.openmrs.module.fhir2.api.search.SearchQueryInclude; +import org.openmrs.module.fhir2.api.search.param.MedicationRequestSearchParams; import org.openmrs.module.fhir2.api.search.param.SearchParameterMap; import org.openmrs.module.fhir2.api.translators.MedicationRequestTranslator; @@ -157,8 +158,8 @@ public void searchForMedicationRequest_shouldReturnCollectionOfMedicationRequest dao, medicationRequestTranslator, globalPropertyService, searchQueryInclude)); when(searchQueryInclude.getIncludedResources(any(), any())).thenReturn(Collections.emptySet()); - IBundleProvider results = medicationRequestService.searchForMedicationRequests(null, null, null, participant, null, - null, null, null, null, null, null); + IBundleProvider results = medicationRequestService.searchForMedicationRequests( + new MedicationRequestSearchParams(null, null, null, participant, null, null, null, null, null, null, null)); List resultList = get(results); @@ -188,8 +189,8 @@ public void searchForEncounter_shouldReturnCollectionOfMedicationRequestBySubjec dao, medicationRequestTranslator, globalPropertyService, searchQueryInclude)); when(searchQueryInclude.getIncludedResources(any(), any())).thenReturn(Collections.emptySet()); - IBundleProvider results = medicationRequestService.searchForMedicationRequests(subject, null, null, null, null, null, - null, null, null, null, null); + IBundleProvider results = medicationRequestService.searchForMedicationRequests( + new MedicationRequestSearchParams(subject, null, null, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -220,8 +221,8 @@ public void searchForEncounter_shouldReturnCollectionOfMedicationRequestByMedica dao, medicationRequestTranslator, globalPropertyService, searchQueryInclude)); when(searchQueryInclude.getIncludedResources(any(), any())).thenReturn(Collections.emptySet()); - IBundleProvider results = medicationRequestService.searchForMedicationRequests(null, null, null, null, medication, - null, null, null, null, null, null); + IBundleProvider results = medicationRequestService.searchForMedicationRequests( + new MedicationRequestSearchParams(null, null, null, null, medication, null, null, null, null, null, null)); List resultList = get(results); @@ -248,8 +249,8 @@ public void searchForMedicationRequest_shouldReturnCollectionOfMedicationRequest dao, medicationRequestTranslator, globalPropertyService, searchQueryInclude)); when(searchQueryInclude.getIncludedResources(any(), any())).thenReturn(Collections.emptySet()); - IBundleProvider results = medicationRequestService.searchForMedicationRequests(null, null, code, null, null, null, - null, null, null, null, null); + IBundleProvider results = medicationRequestService.searchForMedicationRequests( + new MedicationRequestSearchParams(null, null, code, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -280,8 +281,8 @@ public void searchForMedicationRequest_shouldReturnCollectionOfMedicationRequest dao, medicationRequestTranslator, globalPropertyService, searchQueryInclude)); when(searchQueryInclude.getIncludedResources(any(), any())).thenReturn(Collections.emptySet()); - IBundleProvider results = medicationRequestService.searchForMedicationRequests(null, encounter, null, null, null, - null, null, null, null, null, null); + IBundleProvider results = medicationRequestService.searchForMedicationRequests( + new MedicationRequestSearchParams(null, encounter, null, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -303,8 +304,8 @@ public void searchForMedicationRequest_shouldReturnCollectionOfMedicationRequest dao, medicationRequestTranslator, globalPropertyService, searchQueryInclude)); when(searchQueryInclude.getIncludedResources(any(), any())).thenReturn(Collections.emptySet()); - IBundleProvider results = medicationRequestService.searchForMedicationRequests(null, null, null, null, null, uuid, - null, null, null, null, null); + IBundleProvider results = medicationRequestService.searchForMedicationRequests( + new MedicationRequestSearchParams(null, null, null, null, null, uuid, null, null, null, null, null)); List resultList = get(results); @@ -327,8 +328,8 @@ public void searchForMedicationRequest_shouldReturnCollectionOfMedicationRequest dao, medicationRequestTranslator, globalPropertyService, searchQueryInclude)); when(searchQueryInclude.getIncludedResources(any(), any())).thenReturn(Collections.emptySet()); - IBundleProvider results = medicationRequestService.searchForMedicationRequests(null, null, null, null, null, null, - status, null, null, null, null); + IBundleProvider results = medicationRequestService.searchForMedicationRequests( + new MedicationRequestSearchParams(null, null, null, null, null, null, status, null, null, null, null)); List resultList = get(results); @@ -350,8 +351,8 @@ public void searchForMedicationRequest_shouldReturnCollectionOfMedicationRequest dao, medicationRequestTranslator, globalPropertyService, searchQueryInclude)); when(searchQueryInclude.getIncludedResources(any(), any())).thenReturn(Collections.emptySet()); - IBundleProvider results = medicationRequestService.searchForMedicationRequests(null, null, null, null, null, null, - null, null, lastUpdated, null, null); + IBundleProvider results = medicationRequestService.searchForMedicationRequests( + new MedicationRequestSearchParams(null, null, null, null, null, null, null, null, lastUpdated, null, null)); List resultList = get(results); @@ -377,8 +378,8 @@ public void searchForMedicationRequests_shouldAddRelatedResourcesWhenIncluded() dao, medicationRequestTranslator, globalPropertyService, searchQueryInclude)); when(searchQueryInclude.getIncludedResources(any(), any())).thenReturn(Collections.singleton(new Practitioner())); - IBundleProvider results = medicationRequestService.searchForMedicationRequests(null, null, null, null, null, uuid, - null, null, null, includes, null); + IBundleProvider results = medicationRequestService.searchForMedicationRequests( + new MedicationRequestSearchParams(null, null, null, null, null, uuid, null, null, null, includes, null)); List resultList = get(results); @@ -406,8 +407,8 @@ public void searchForMedicationRequests_shouldAddRelatedResourcesWhenRevIncluded when(searchQueryInclude.getIncludedResources(any(), any())) .thenReturn(Collections.singleton(new MedicationDispense())); - IBundleProvider results = medicationRequestService.searchForMedicationRequests(null, null, null, null, null, uuid, - null, null, null, null, revIncludes); + IBundleProvider results = medicationRequestService.searchForMedicationRequests( + new MedicationRequestSearchParams(null, null, null, null, null, uuid, null, null, null, null, revIncludes)); List resultList = get(results); @@ -433,8 +434,8 @@ public void searchForMedicationRequests_shouldNotAddRelatedResourcesForEmptyIncl dao, medicationRequestTranslator, globalPropertyService, searchQueryInclude)); when(searchQueryInclude.getIncludedResources(any(), any())).thenReturn(Collections.emptySet()); - IBundleProvider results = medicationRequestService.searchForMedicationRequests(null, null, null, null, null, uuid, - null, null, null, includes, null); + IBundleProvider results = medicationRequestService.searchForMedicationRequests( + new MedicationRequestSearchParams(null, null, null, null, null, uuid, null, null, null, includes, null)); List resultList = get(results); diff --git a/api/src/test/java/org/openmrs/module/fhir2/providers/r3/MedicationRequestFhirResourceProviderTest.java b/api/src/test/java/org/openmrs/module/fhir2/providers/r3/MedicationRequestFhirResourceProviderTest.java index 8894e640c..dd90ef8a5 100644 --- a/api/src/test/java/org/openmrs/module/fhir2/providers/r3/MedicationRequestFhirResourceProviderTest.java +++ b/api/src/test/java/org/openmrs/module/fhir2/providers/r3/MedicationRequestFhirResourceProviderTest.java @@ -15,7 +15,6 @@ import static org.hamcrest.Matchers.hasSize; import static org.hamcrest.Matchers.notNullValue; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.isNull; import static org.mockito.Mockito.when; import java.util.Arrays; @@ -49,6 +48,7 @@ import org.mockito.junit.MockitoJUnitRunner; import org.openmrs.module.fhir2.FhirConstants; import org.openmrs.module.fhir2.api.FhirMedicationRequestService; +import org.openmrs.module.fhir2.api.search.param.MedicationRequestSearchParams; @RunWith(MockitoJUnitRunner.class) public class MedicationRequestFhirResourceProviderTest { @@ -110,8 +110,8 @@ private List get(IBundleProvider results, int theFromIndex, i @Test public void searchMedicationRequest_shouldReturnMatchingMedicationRequestUsingCode() { - when(fhirMedicationRequestService.searchForMedicationRequests(any(), any(), any(), any(), any(), any(), any(), any(), - any(), any(), any())).thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); + when(fhirMedicationRequestService.searchForMedicationRequests(any())) + .thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); TokenAndListParam code = new TokenAndListParam(); TokenParam codingToken = new TokenParam(); @@ -133,8 +133,8 @@ public void searchMedicationRequest_shouldReturnMatchingMedicationRequestUsingCo @Test public void searchMedicationRequest_shouldReturnMatchingMedicationRequestWhenPatientParamIsSpecified() { - when(fhirMedicationRequestService.searchForMedicationRequests(any(), any(), any(), any(), any(), any(), any(), any(), - any(), any(), any())).thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); + when(fhirMedicationRequestService.searchForMedicationRequests(any())) + .thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); ReferenceAndListParam patientParam = new ReferenceAndListParam(); patientParam.addValue(new ReferenceOrListParam().add(new ReferenceParam().setChain(Patient.SP_NAME))); @@ -154,8 +154,8 @@ public void searchMedicationRequest_shouldReturnMatchingMedicationRequestWhenPat @Test public void searchMedicationRequest_shouldReturnMatchingMedicationRequestWhenMedicationParamIsSpecified() { - when(fhirMedicationRequestService.searchForMedicationRequests(any(), any(), any(), any(), any(), any(), any(), any(), - any(), any(), any())).thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); + when(fhirMedicationRequestService.searchForMedicationRequests(any())) + .thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); ReferenceAndListParam medicationParam = new ReferenceAndListParam(); medicationParam.addValue(new ReferenceOrListParam().add(new ReferenceParam().setChain(Medication.SP_RES_ID))); @@ -175,8 +175,8 @@ public void searchMedicationRequest_shouldReturnMatchingMedicationRequestWhenMed @Test public void searchMedicationRequest_shouldReturnMatchingMedicationRequestWhenParticipantParamIsSpecified() { - when(fhirMedicationRequestService.searchForMedicationRequests(any(), any(), any(), any(), any(), any(), any(), any(), - any(), any(), any())).thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); + when(fhirMedicationRequestService.searchForMedicationRequests(any())) + .thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); ReferenceAndListParam participantParam = new ReferenceAndListParam(); participantParam.addValue(new ReferenceOrListParam().add(new ReferenceParam().setChain(Practitioner.SP_NAME))); @@ -196,8 +196,8 @@ public void searchMedicationRequest_shouldReturnMatchingMedicationRequestWhenPar @Test public void searchMedicationRequest_shouldReturnMatchingMedicationRequestWhenEncounterParamIsSpecified() { - when(fhirMedicationRequestService.searchForMedicationRequests(any(), any(), any(), any(), any(), any(), any(), any(), - any(), any(), any())).thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); + when(fhirMedicationRequestService.searchForMedicationRequests(any())) + .thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); ReferenceAndListParam encounterParam = new ReferenceAndListParam(); encounterParam.addValue(new ReferenceOrListParam().add(new ReferenceParam().setChain(Encounter.SP_IDENTIFIER))); @@ -218,8 +218,8 @@ public void searchMedicationRequest_shouldReturnMatchingMedicationRequestWhenEnc public void searchMedicationRequest_shouldReturnMatchingMedicationRequestWhenUUIDIsSpecified() { TokenAndListParam uuid = new TokenAndListParam().addAnd(new TokenParam(MEDICATION_REQUEST_UUID)); - when(fhirMedicationRequestService.searchForMedicationRequests(any(), any(), any(), any(), any(), any(), any(), any(), - any(), any(), any())).thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); + when(fhirMedicationRequestService.searchForMedicationRequests(any())) + .thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); IBundleProvider results = resourceProvider.searchForMedicationRequests(null, null, null, null, null, null, uuid, null, null, null, null, null); @@ -237,8 +237,9 @@ public void searchMedicationRequest_shouldReturnMatchingMedicationRequestWhenUUI public void searchMedicationRequest_shouldReturnMatchingMedicationRequestWhenLastUpdatedIsSpecified() { DateRangeParam lastUpdated = new DateRangeParam().setUpperBound(LAST_UPDATED_DATE).setLowerBound(LAST_UPDATED_DATE); - when(fhirMedicationRequestService.searchForMedicationRequests(any(), any(), any(), any(), any(), any(), any(), any(), - any(), any(), any())).thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); + when(fhirMedicationRequestService.searchForMedicationRequests( + new MedicationRequestSearchParams(null, null, null, null, null, null, null, null, lastUpdated, null, null))) + .thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); IBundleProvider results = resourceProvider.searchForMedicationRequests(null, null, null, null, null, null, null, null, null, lastUpdated, null, null); @@ -257,10 +258,10 @@ public void searchMedicationRequest_shouldAddRelatedMedicationsWhenIncluded() { HashSet includes = new HashSet<>(); includes.add(new Include("MedicationRequest:requester")); - when(fhirMedicationRequestService.searchForMedicationRequests(any(), any(), any(), any(), any(), any(), any(), any(), - any(), any(), any())).thenReturn( - new MockIBundleProvider<>(Arrays.asList(medicationRequest, new org.hl7.fhir.r4.model.Practitioner()), 10, - 1)); + when(fhirMedicationRequestService.searchForMedicationRequests( + new MedicationRequestSearchParams(null, null, null, null, null, null, null, null, null, includes, null))) + .thenReturn(new MockIBundleProvider<>( + Arrays.asList(medicationRequest, new org.hl7.fhir.r4.model.Practitioner()), 10, 1)); IBundleProvider results = resourceProvider.searchForMedicationRequests(null, null, null, null, null, null, null, null, null, null, includes, null); @@ -280,8 +281,8 @@ public void searchMedicationRequest_shouldAddRelatedMedicationDispenseWhenRevInc HashSet revIncludes = new HashSet<>(); revIncludes.add(new Include("MedicationDispense:prescription")); - when(fhirMedicationRequestService.searchForMedicationRequests(any(), any(), any(), any(), any(), any(), any(), any(), - any(), any(), any())) + when(fhirMedicationRequestService.searchForMedicationRequests( + new MedicationRequestSearchParams(null, null, null, null, null, null, null, null, null, null, revIncludes))) .thenReturn(new org.openmrs.module.fhir2.providers.r4.MockIBundleProvider<>( Arrays.asList(medicationRequest, new MedicationDispense()), 10, 1)); @@ -302,9 +303,8 @@ public void searchMedicationRequest_shouldAddRelatedMedicationDispenseWhenRevInc public void searchMedicationRequest_shouldNotAddRelatedMedicationsForEmptyInclude() { HashSet includes = new HashSet<>(); - when(fhirMedicationRequestService.searchForMedicationRequests(any(), any(), any(), any(), any(), any(), any(), any(), - any(), isNull(), any())) - .thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); + when(fhirMedicationRequestService.searchForMedicationRequests(any())) + .thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); IBundleProvider results = resourceProvider.searchForMedicationRequests(null, null, null, null, null, null, null, null, null, null, includes, null); diff --git a/api/src/test/java/org/openmrs/module/fhir2/providers/r4/MedicationRequestFhirResourceProviderTest.java b/api/src/test/java/org/openmrs/module/fhir2/providers/r4/MedicationRequestFhirResourceProviderTest.java index 79f13c8a8..23b92557b 100644 --- a/api/src/test/java/org/openmrs/module/fhir2/providers/r4/MedicationRequestFhirResourceProviderTest.java +++ b/api/src/test/java/org/openmrs/module/fhir2/providers/r4/MedicationRequestFhirResourceProviderTest.java @@ -15,7 +15,6 @@ import static org.hamcrest.Matchers.hasSize; import static org.hamcrest.Matchers.notNullValue; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.isNull; import static org.mockito.Mockito.when; import java.util.Arrays; @@ -48,6 +47,7 @@ import org.mockito.junit.MockitoJUnitRunner; import org.openmrs.module.fhir2.FhirConstants; import org.openmrs.module.fhir2.api.FhirMedicationRequestService; +import org.openmrs.module.fhir2.api.search.param.MedicationRequestSearchParams; @RunWith(MockitoJUnitRunner.class) public class MedicationRequestFhirResourceProviderTest { @@ -107,8 +107,8 @@ private List getResources(IBundleProvider results, int theFromInd @Test public void searchMedicationRequest_shouldReturnMatchingMedicationRequestUsingCode() { - when(fhirMedicationRequestService.searchForMedicationRequests(any(), any(), any(), any(), any(), any(), any(), any(), - any(), any(), any())).thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); + when(fhirMedicationRequestService.searchForMedicationRequests(any())) + .thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); TokenAndListParam code = new TokenAndListParam(); TokenParam codingToken = new TokenParam(); @@ -130,8 +130,8 @@ public void searchMedicationRequest_shouldReturnMatchingMedicationRequestUsingCo @Test public void searchMedicationRequest_shouldReturnMatchingMedicationRequestWhenPatientParamIsSpecified() { - when(fhirMedicationRequestService.searchForMedicationRequests(any(), any(), any(), any(), any(), any(), any(), any(), - any(), any(), any())).thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); + when(fhirMedicationRequestService.searchForMedicationRequests(any())) + .thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); ReferenceAndListParam patientParam = new ReferenceAndListParam(); patientParam.addValue(new ReferenceOrListParam().add(new ReferenceParam().setChain(Patient.SP_NAME))); @@ -151,8 +151,8 @@ public void searchMedicationRequest_shouldReturnMatchingMedicationRequestWhenPat @Test public void searchMedicationRequest_shouldReturnMatchingMedicationRequestWhenMedicationParamIsSpecified() { - when(fhirMedicationRequestService.searchForMedicationRequests(any(), any(), any(), any(), any(), any(), any(), any(), - any(), any(), any())).thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); + when(fhirMedicationRequestService.searchForMedicationRequests(any())) + .thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); ReferenceAndListParam medicationParam = new ReferenceAndListParam(); medicationParam.addValue(new ReferenceOrListParam().add(new ReferenceParam().setChain(Medication.SP_IDENTIFIER))); @@ -172,8 +172,8 @@ public void searchMedicationRequest_shouldReturnMatchingMedicationRequestWhenMed @Test public void searchMedicationRequest_shouldReturnMatchingMedicationRequestWhenParticipantParamIsSpecified() { - when(fhirMedicationRequestService.searchForMedicationRequests(any(), any(), any(), any(), any(), any(), any(), any(), - any(), any(), any())).thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); + when(fhirMedicationRequestService.searchForMedicationRequests(any())) + .thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); ReferenceAndListParam participantParam = new ReferenceAndListParam(); participantParam.addValue(new ReferenceOrListParam().add(new ReferenceParam().setChain(Practitioner.SP_NAME))); @@ -193,8 +193,8 @@ public void searchMedicationRequest_shouldReturnMatchingMedicationRequestWhenPar @Test public void searchMedicationRequest_shouldReturnMatchingMedicationRequestWhenEncounterParamIsSpecified() { - when(fhirMedicationRequestService.searchForMedicationRequests(any(), any(), any(), any(), any(), any(), any(), any(), - any(), any(), any())).thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); + when(fhirMedicationRequestService.searchForMedicationRequests(any())) + .thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); ReferenceAndListParam encounterParam = new ReferenceAndListParam(); encounterParam.addValue(new ReferenceOrListParam().add(new ReferenceParam().setChain(Encounter.SP_IDENTIFIER))); @@ -215,8 +215,8 @@ public void searchMedicationRequest_shouldReturnMatchingMedicationRequestWhenEnc public void searchMedicationRequest_shouldReturnMatchingMedicationRequestWhenUUIDIsSpecified() { TokenAndListParam uuid = new TokenAndListParam().addAnd(new TokenParam(MEDICATION_REQUEST_UUID)); - when(fhirMedicationRequestService.searchForMedicationRequests(any(), any(), any(), any(), any(), any(), any(), any(), - any(), any(), any())).thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); + when(fhirMedicationRequestService.searchForMedicationRequests(any())) + .thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); IBundleProvider results = resourceProvider.searchForMedicationRequests(null, null, null, null, null, null, uuid, null, null, null, null, null); @@ -234,8 +234,9 @@ public void searchMedicationRequest_shouldReturnMatchingMedicationRequestWhenUUI public void searchMedicationRequest_shouldReturnMatchingMedicationRequestWhenLastUpdatedIsSpecified() { DateRangeParam lastUpdated = new DateRangeParam().setUpperBound(LAST_UPDATED_DATE).setLowerBound(LAST_UPDATED_DATE); - when(fhirMedicationRequestService.searchForMedicationRequests(any(), any(), any(), any(), any(), any(), any(), any(), - any(), any(), any())).thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); + when(fhirMedicationRequestService.searchForMedicationRequests( + new MedicationRequestSearchParams(null, null, null, null, null, null, null, null, lastUpdated, null, null))) + .thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); IBundleProvider results = resourceProvider.searchForMedicationRequests(null, null, null, null, null, null, null, null, null, lastUpdated, null, null); @@ -254,8 +255,8 @@ public void searchMedicationRequest_shouldAddRelatedMedicationsWhenIncluded() { HashSet includes = new HashSet<>(); includes.add(new Include("MedicationRequest:requester")); - when(fhirMedicationRequestService.searchForMedicationRequests(any(), any(), any(), any(), any(), any(), any(), any(), - any(), any(), any())) + when(fhirMedicationRequestService.searchForMedicationRequests( + new MedicationRequestSearchParams(null, null, null, null, null, null, null, null, null, includes, null))) .thenReturn(new MockIBundleProvider<>(Arrays.asList(medicationRequest, new Practitioner()), 10, 1)); IBundleProvider results = resourceProvider.searchForMedicationRequests(null, null, null, null, null, null, null, @@ -276,9 +277,10 @@ public void searchMedicationRequest_shouldAddRelatedMedicationDispenseWhenRevInc HashSet revIncludes = new HashSet<>(); revIncludes.add(new Include("MedicationDispense:prescription")); - when(fhirMedicationRequestService.searchForMedicationRequests(any(), any(), any(), any(), any(), any(), any(), any(), - any(), any(), any())).thenReturn( - new MockIBundleProvider<>(Arrays.asList(medicationRequest, new MedicationDispense()), 10, 1)); + when(fhirMedicationRequestService.searchForMedicationRequests( + new MedicationRequestSearchParams(null, null, null, null, null, null, null, null, null, null, revIncludes))) + .thenReturn( + new MockIBundleProvider<>(Arrays.asList(medicationRequest, new MedicationDispense()), 10, 1)); IBundleProvider results = resourceProvider.searchForMedicationRequests(null, null, null, null, null, null, null, null, null, null, null, revIncludes); @@ -297,8 +299,8 @@ public void searchMedicationRequest_shouldAddRelatedMedicationDispenseWhenRevInc public void searchMedicationRequest_shouldNotAddRelatedMedicationsForEmptyInclude() { HashSet includes = new HashSet<>(); - when(fhirMedicationRequestService.searchForMedicationRequests(any(), any(), any(), any(), any(), any(), any(), any(), - any(), isNull(), any())) + when(fhirMedicationRequestService.searchForMedicationRequests( + new MedicationRequestSearchParams(null, null, null, null, null, null, null, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); IBundleProvider results = resourceProvider.searchForMedicationRequests(null, null, null, null, null, null, null, diff --git a/omod/src/test/java/org/openmrs/module/fhir2/providers/r3/MedicationRequestFhirResourceProviderWebTest.java b/omod/src/test/java/org/openmrs/module/fhir2/providers/r3/MedicationRequestFhirResourceProviderWebTest.java index a7288eae7..9f5dc514e 100644 --- a/omod/src/test/java/org/openmrs/module/fhir2/providers/r3/MedicationRequestFhirResourceProviderWebTest.java +++ b/omod/src/test/java/org/openmrs/module/fhir2/providers/r3/MedicationRequestFhirResourceProviderWebTest.java @@ -19,7 +19,6 @@ import static org.hamcrest.Matchers.notNullValue; import static org.hamcrest.Matchers.nullValue; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.isNull; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -27,12 +26,7 @@ import java.util.Calendar; import java.util.Collections; -import java.util.HashSet; -import ca.uhn.fhir.model.api.Include; -import ca.uhn.fhir.rest.param.DateRangeParam; -import ca.uhn.fhir.rest.param.ReferenceAndListParam; -import ca.uhn.fhir.rest.param.TokenAndListParam; import lombok.AccessLevel; import lombok.Getter; import org.apache.commons.lang.time.DateUtils; @@ -49,6 +43,7 @@ import org.mockito.junit.MockitoJUnitRunner; import org.openmrs.module.fhir2.FhirConstants; import org.openmrs.module.fhir2.api.FhirMedicationRequestService; +import org.openmrs.module.fhir2.api.search.param.MedicationRequestSearchParams; import org.springframework.mock.web.MockHttpServletResponse; @RunWith(MockitoJUnitRunner.class) @@ -91,16 +86,7 @@ public class MedicationRequestFhirResourceProviderWebTest extends BaseFhirR3Reso private MedicationRequestFhirResourceProvider resourceProvider; @Captor - private ArgumentCaptor tokenAndListParamArgumentCaptor; - - @Captor - private ArgumentCaptor dateRangeParamArgumentCaptor; - - @Captor - private ArgumentCaptor referenceAndListParamArgumentCaptor; - - @Captor - private ArgumentCaptor> includeArgumentCaptor; + private ArgumentCaptor medicationRequestSearchParamsArgumentCaptor; private org.hl7.fhir.r4.model.MedicationRequest medicationRequest; @@ -140,13 +126,15 @@ public void getMedicationRequestByUuid_shouldReturn404() throws Exception { public void searchForMedicationRequests_shouldSearchForMedicationRequestsByUUID() throws Exception { verifyUri(String.format("/MedicationRequest?_id=%s", MEDICATION_REQUEST_UUID)); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), isNull(), isNull(), isNull(), isNull(), - tokenAndListParamArgumentCaptor.capture(), isNull(), isNull(), isNull(), isNull(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(tokenAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(tokenAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(tokenAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens().get(0) - .getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getId().getValuesAsQueryTokens().get(0) + .getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getId().getValuesAsQueryTokens().get(0) + .getValuesAsQueryTokens().get(0).getValue(), equalTo(MEDICATION_REQUEST_UUID)); } @@ -154,17 +142,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByUUID( public void searchForMedicationRequests_shouldSearchForMedicationRequestsByLastUpdatedDate() throws Exception { verifyUri(String.format("/MedicationRequest?_lastUpdated=%s", LAST_UPDATED_DATE)); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), isNull(), isNull(), isNull(), isNull(), - isNull(), isNull(), isNull(), dateRangeParamArgumentCaptor.capture(), isNull(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(dateRangeParamArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); Calendar calendar = Calendar.getInstance(); calendar.set(2020, Calendar.SEPTEMBER, 3); - assertThat(dateRangeParamArgumentCaptor.getValue().getLowerBound().getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getLastUpdated().getLowerBound().getValue(), equalTo(DateUtils.truncate(calendar.getTime(), Calendar.DATE))); - assertThat(dateRangeParamArgumentCaptor.getValue().getUpperBound().getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getLastUpdated().getUpperBound().getValue(), equalTo(DateUtils.truncate(calendar.getTime(), Calendar.DATE))); } @@ -172,16 +160,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByLastU public void searchForMedicationRequests_shouldSearchForMedicationRequestsBySubjectUUID() throws Exception { verifyUri(String.format("/MedicationRequest?subject=%s", PATIENT_UUID)); - verify(fhirMedicationRequestService).searchForMedicationRequests(referenceAndListParamArgumentCaptor.capture(), - isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getValue(), equalTo(PATIENT_UUID)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getChain(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getChain(), nullValue()); } @@ -189,16 +178,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsBySubje public void searchForMedicationRequests_shouldSearchForMedicationRequestsBySubjectIdentifier() throws Exception { verifyUri(String.format("/MedicationRequest?subject.identifier=%s", PATIENT_IDENTIFIER)); - verify(fhirMedicationRequestService).searchForMedicationRequests(referenceAndListParamArgumentCaptor.capture(), - isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getValue(), equalTo(PATIENT_IDENTIFIER)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getChain(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getChain(), equalTo(Patient.SP_IDENTIFIER)); } @@ -206,16 +196,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsBySubje public void searchForMedicationRequests_shouldSearchForMedicationRequestsBySubjectGivenName() throws Exception { verifyUri(String.format("/MedicationRequest?subject.given=%s", PATIENT_GIVEN_NAME)); - verify(fhirMedicationRequestService).searchForMedicationRequests(referenceAndListParamArgumentCaptor.capture(), - isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getValue(), equalTo(PATIENT_GIVEN_NAME)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getChain(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getChain(), equalTo(Patient.SP_GIVEN)); } @@ -223,16 +214,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsBySubje public void searchForMedicationRequests_shouldSearchForMedicationRequestsBySubjectFamilyName() throws Exception { verifyUri(String.format("/MedicationRequest?subject.family=%s", PATIENT_FAMILY_NAME)); - verify(fhirMedicationRequestService).searchForMedicationRequests(referenceAndListParamArgumentCaptor.capture(), - isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getValue(), equalTo(PATIENT_FAMILY_NAME)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getChain(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getChain(), equalTo(Patient.SP_FAMILY)); } @@ -240,16 +232,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsBySubje public void searchForMedicationRequests_shouldSearchForMedicationRequestsBySubjectName() throws Exception { verifyUri(String.format("/MedicationRequest?subject.name=%s", PATIENT_GIVEN_NAME)); - verify(fhirMedicationRequestService).searchForMedicationRequests(referenceAndListParamArgumentCaptor.capture(), - isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getValue(), equalTo(PATIENT_GIVEN_NAME)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getChain(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getChain(), equalTo(Patient.SP_NAME)); } @@ -259,17 +252,20 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsBySubje verifyUri(String.format("/MedicationRequest?subject.given=%s&subject.identifier=%s", PATIENT_GIVEN_NAME, PATIENT_IDENTIFIER)); - verify(fhirMedicationRequestService).searchForMedicationRequests(referenceAndListParamArgumentCaptor.capture(), - isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().size(), equalTo(2)); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens(), + not(empty())); + assertThat( + medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens().size(), + equalTo(2)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens(), hasItem(hasProperty("valuesAsQueryTokens", hasItem(allOf(hasProperty("chain", equalTo(Patient.SP_IDENTIFIER)), hasProperty("value", equalTo(PATIENT_IDENTIFIER))))))); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens(), hasItem(hasProperty("valuesAsQueryTokens", hasItem(allOf(hasProperty("chain", equalTo(Patient.SP_GIVEN)), hasProperty("value", equalTo(PATIENT_GIVEN_NAME))))))); } @@ -278,16 +274,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsBySubje public void searchForMedicationRequests_shouldSearchForMedicationRequestsByPatientUUID() throws Exception { verifyUri(String.format("/MedicationRequest?patient=%s", PATIENT_UUID)); - verify(fhirMedicationRequestService).searchForMedicationRequests(referenceAndListParamArgumentCaptor.capture(), - isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getValue(), equalTo(PATIENT_UUID)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getChain(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getChain(), nullValue()); } @@ -295,16 +292,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByPatie public void searchForMedicationRequests_shouldSearchForMedicationRequestsByPatientIdentifier() throws Exception { verifyUri(String.format("/MedicationRequest?patient.identifier=%s", PATIENT_IDENTIFIER)); - verify(fhirMedicationRequestService).searchForMedicationRequests(referenceAndListParamArgumentCaptor.capture(), - isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getValue(), equalTo(PATIENT_IDENTIFIER)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getChain(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getChain(), equalTo(Patient.SP_IDENTIFIER)); } @@ -312,16 +310,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByPatie public void searchForMedicationRequests_shouldSearchForMedicationRequestsByPatientGivenName() throws Exception { verifyUri(String.format("/MedicationRequest?patient.given=%s", PATIENT_GIVEN_NAME)); - verify(fhirMedicationRequestService).searchForMedicationRequests(referenceAndListParamArgumentCaptor.capture(), - isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getValue(), equalTo(PATIENT_GIVEN_NAME)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getChain(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getChain(), equalTo(Patient.SP_GIVEN)); } @@ -329,16 +328,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByPatie public void searchForMedicationRequests_shouldSearchForMedicationRequestsByPatientFamilyName() throws Exception { verifyUri(String.format("/MedicationRequest?patient.family=%s", PATIENT_FAMILY_NAME)); - verify(fhirMedicationRequestService).searchForMedicationRequests(referenceAndListParamArgumentCaptor.capture(), - isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getValue(), equalTo(PATIENT_FAMILY_NAME)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getChain(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getChain(), equalTo(Patient.SP_FAMILY)); } @@ -346,16 +346,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByPatie public void searchForMedicationRequests_shouldSearchForMedicationRequestsByPatientName() throws Exception { verifyUri(String.format("/MedicationRequest?patient.name=%s", PATIENT_GIVEN_NAME)); - verify(fhirMedicationRequestService).searchForMedicationRequests(referenceAndListParamArgumentCaptor.capture(), - isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getValue(), equalTo(PATIENT_GIVEN_NAME)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getChain(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getChain(), equalTo(Patient.SP_NAME)); } @@ -365,17 +366,20 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByPatie verifyUri(String.format("/MedicationRequest?patient.given=%s&patient.identifier=%s", PATIENT_GIVEN_NAME, PATIENT_IDENTIFIER)); - verify(fhirMedicationRequestService).searchForMedicationRequests(referenceAndListParamArgumentCaptor.capture(), - isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().size(), equalTo(2)); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens(), + not(empty())); + assertThat( + medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens().size(), + equalTo(2)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens(), hasItem(hasProperty("valuesAsQueryTokens", hasItem(allOf(hasProperty("chain", equalTo(Patient.SP_IDENTIFIER)), hasProperty("value", equalTo(PATIENT_IDENTIFIER))))))); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens(), hasItem(hasProperty("valuesAsQueryTokens", hasItem(allOf(hasProperty("chain", equalTo(Patient.SP_GIVEN)), hasProperty("value", equalTo(PATIENT_GIVEN_NAME))))))); } @@ -384,17 +388,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByPatie public void searchForMedicationRequests_shouldSearchForMedicationRequestsByEncounterUUID() throws Exception { verifyUri(String.format("/MedicationRequest?context=%s", ENCOUNTER_UUID)); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), - referenceAndListParamArgumentCaptor.capture(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), - isNull(), isNull(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getChain(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getEncounterReference().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getEncounterReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getChain(), equalTo(null)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getEncounterReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getValue(), equalTo(ENCOUNTER_UUID)); } @@ -402,17 +406,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByEncou public void searchForMedicationRequests_shouldSearchForMedicationRequestsByParticipantUUID() throws Exception { verifyUri(String.format("/MedicationRequest?requester=%s", PARTICIPANT_UUID)); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), isNull(), isNull(), - referenceAndListParamArgumentCaptor.capture(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), - isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getValue(), equalTo(PARTICIPANT_UUID)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getChain(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getChain(), nullValue()); } @@ -420,17 +424,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByParti public void searchForMedicationRequests_shouldSearchForMedicationRequestsByParticipantIdentifier() throws Exception { verifyUri(String.format("/MedicationRequest?requester.identifier=%s", PARTICIPANT_IDENTIFIER)); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), isNull(), isNull(), - referenceAndListParamArgumentCaptor.capture(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), - isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getValue(), equalTo(PARTICIPANT_IDENTIFIER)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getChain(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getChain(), equalTo(Practitioner.SP_IDENTIFIER)); } @@ -438,17 +442,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByParti public void searchForMedicationRequests_shouldSearchForMedicationRequestsByParticipantGivenName() throws Exception { verifyUri(String.format("/MedicationRequest?requester.given=%s", PARTICIPANT_GIVEN_NAME)); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), isNull(), isNull(), - referenceAndListParamArgumentCaptor.capture(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), - isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getValue(), equalTo(PARTICIPANT_GIVEN_NAME)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getChain(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getChain(), equalTo(Practitioner.SP_GIVEN)); } @@ -456,17 +460,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByParti public void searchForMedicationRequests_shouldSearchForMedicationRequestsByParticipantFamilyName() throws Exception { verifyUri(String.format("/MedicationRequest?requester.family=%s", PARTICIPANT_FAMILY_NAME)); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), isNull(), isNull(), - referenceAndListParamArgumentCaptor.capture(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), - isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getValue(), equalTo(PARTICIPANT_FAMILY_NAME)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getChain(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getChain(), equalTo(Practitioner.SP_FAMILY)); } @@ -474,17 +478,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByParti public void searchForMedicationRequests_shouldSearchForMedicationRequestsByParticipantName() throws Exception { verifyUri(String.format("/MedicationRequest?requester.name=%s", PARTICIPANT_GIVEN_NAME)); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), isNull(), isNull(), - referenceAndListParamArgumentCaptor.capture(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), - isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getValue(), equalTo(PARTICIPANT_GIVEN_NAME)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getChain(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getChain(), equalTo(Practitioner.SP_NAME)); } @@ -494,19 +498,21 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByParti verifyUri(String.format("/MedicationRequest?requester.given=%s&requester.identifier=%s", PARTICIPANT_GIVEN_NAME, PARTICIPANT_IDENTIFIER)); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), isNull(), isNull(), - referenceAndListParamArgumentCaptor.capture(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), - isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().size(), equalTo(2)); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens(), + not(empty())); + assertThat( + medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens().size(), + equalTo(2)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens(), hasItem( hasProperty("valuesAsQueryTokens", hasItem(allOf(hasProperty("chain", equalTo(Practitioner.SP_IDENTIFIER)), hasProperty("value", equalTo(PARTICIPANT_IDENTIFIER))))))); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens(), hasItem(hasProperty("valuesAsQueryTokens", hasItem(allOf(hasProperty("chain", equalTo(Practitioner.SP_GIVEN)), hasProperty("value", equalTo(PARTICIPANT_GIVEN_NAME))))))); } @@ -515,16 +521,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByParti public void searchForMedicationRequests_shouldSearchForMedicationRequestsByMedicationUUID() throws Exception { verifyUri(String.format("/MedicationRequest?medication=%s", MEDICATION_UUID)); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), isNull(), isNull(), isNull(), - referenceAndListParamArgumentCaptor.capture(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getMedicationReference().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getMedicationReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getValue(), equalTo(MEDICATION_UUID)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getChain(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getMedicationReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getChain(), nullValue()); } @@ -532,14 +539,13 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByMedic public void searchForMedicationRequests_shouldSearchForMedicationRequestsByCode() throws Exception { verifyUri(String.format("/MedicationRequest?code=%s", CODE)); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), isNull(), - tokenAndListParamArgumentCaptor.capture(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), - isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(tokenAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(tokenAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(tokenAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens().get(0) - .getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getCode().getValuesAsQueryTokens(), not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getCode().getValuesAsQueryTokens().get(0) + .getValuesAsQueryTokens().get(0).getValue(), equalTo(CODE)); } @@ -547,13 +553,14 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByCode( public void searchForMedicationRequests_shouldSearchForMedicationRequestsByStatus() throws Exception { verifyUri(String.format("/MedicationRequest?status=%s", STATUS)); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), isNull(), isNull(), isNull(), isNull(), - isNull(), tokenAndListParamArgumentCaptor.capture(), isNull(), isNull(), isNull(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(tokenAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(tokenAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(tokenAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens().get(0) - .getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getStatus().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getStatus().getValuesAsQueryTokens().get(0) + .getValuesAsQueryTokens().get(0).getValue(), equalTo(STATUS)); } @@ -562,14 +569,14 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByStatu public void searchForMedicationRequests_shouldAddRelatedRequesterWhenIncluded() throws Exception { verifyUri("/MedicationRequest?_include=MedicationRequest:requester"); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), isNull(), isNull(), isNull(), isNull(), - isNull(), isNull(), isNull(), isNull(), includeArgumentCaptor.capture(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(includeArgumentCaptor.getValue(), notNullValue()); - assertThat(includeArgumentCaptor.getValue().size(), equalTo(1)); - assertThat(includeArgumentCaptor.getValue().iterator().next().getParamName(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getIncludes().size(), equalTo(1)); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getIncludes().iterator().next().getParamName(), equalTo(FhirConstants.INCLUDE_REQUESTER_PARAM)); - assertThat(includeArgumentCaptor.getValue().iterator().next().getParamType(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getIncludes().iterator().next().getParamType(), equalTo(FhirConstants.MEDICATION_REQUEST)); } @@ -577,14 +584,14 @@ public void searchForMedicationRequests_shouldAddRelatedRequesterWhenIncluded() public void searchForMedicationRequests_shouldAddRelatedMedicationWhenIncluded() throws Exception { verifyUri("/MedicationRequest?_include=MedicationRequest:medication"); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), isNull(), isNull(), isNull(), isNull(), - isNull(), isNull(), isNull(), isNull(), includeArgumentCaptor.capture(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(includeArgumentCaptor.getValue(), notNullValue()); - assertThat(includeArgumentCaptor.getValue().size(), equalTo(1)); - assertThat(includeArgumentCaptor.getValue().iterator().next().getParamName(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getIncludes().size(), equalTo(1)); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getIncludes().iterator().next().getParamName(), equalTo(FhirConstants.INCLUDE_MEDICATION_PARAM)); - assertThat(includeArgumentCaptor.getValue().iterator().next().getParamType(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getIncludes().iterator().next().getParamType(), equalTo(FhirConstants.MEDICATION_REQUEST)); } @@ -592,14 +599,14 @@ public void searchForMedicationRequests_shouldAddRelatedMedicationWhenIncluded() public void searchForMedicationRequests_shouldAddRelatedPatientWhenIncluded() throws Exception { verifyUri("/MedicationRequest?_include=MedicationRequest:patient"); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), isNull(), isNull(), isNull(), isNull(), - isNull(), isNull(), isNull(), isNull(), includeArgumentCaptor.capture(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(includeArgumentCaptor.getValue(), notNullValue()); - assertThat(includeArgumentCaptor.getValue().size(), equalTo(1)); - assertThat(includeArgumentCaptor.getValue().iterator().next().getParamName(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getIncludes().size(), equalTo(1)); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getIncludes().iterator().next().getParamName(), equalTo(FhirConstants.INCLUDE_PATIENT_PARAM)); - assertThat(includeArgumentCaptor.getValue().iterator().next().getParamType(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getIncludes().iterator().next().getParamType(), equalTo(FhirConstants.MEDICATION_REQUEST)); } @@ -607,14 +614,14 @@ public void searchForMedicationRequests_shouldAddRelatedPatientWhenIncluded() th public void searchForMedicationRequests_shouldAddRelatedEncounterWhenIncluded() throws Exception { verifyUri("/MedicationRequest?_include=MedicationRequest:context"); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), isNull(), isNull(), isNull(), isNull(), - isNull(), isNull(), isNull(), isNull(), includeArgumentCaptor.capture(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(includeArgumentCaptor.getValue(), notNullValue()); - assertThat(includeArgumentCaptor.getValue().size(), equalTo(1)); - assertThat(includeArgumentCaptor.getValue().iterator().next().getParamName(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getIncludes().size(), equalTo(1)); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getIncludes().iterator().next().getParamName(), equalTo(FhirConstants.INCLUDE_CONTEXT_PARAM)); - assertThat(includeArgumentCaptor.getValue().iterator().next().getParamType(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getIncludes().iterator().next().getParamType(), equalTo(FhirConstants.MEDICATION_REQUEST)); } @@ -622,15 +629,15 @@ public void searchForMedicationRequests_shouldAddRelatedEncounterWhenIncluded() public void searchForMedicationRequests_shouldHandleMultipleIncludes() throws Exception { verifyUri("/MedicationRequest?_include=MedicationRequest:medication&_include=MedicationRequest:requester"); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), isNull(), isNull(), isNull(), isNull(), - isNull(), isNull(), isNull(), isNull(), includeArgumentCaptor.capture(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(includeArgumentCaptor.getValue(), notNullValue()); - assertThat(includeArgumentCaptor.getValue().size(), equalTo(2)); - assertThat(includeArgumentCaptor.getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getIncludes().size(), equalTo(2)); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getIncludes(), hasItem(allOf(hasProperty("paramName", equalTo(FhirConstants.INCLUDE_MEDICATION_PARAM)), hasProperty("paramType", equalTo(FhirConstants.MEDICATION_REQUEST))))); - assertThat(includeArgumentCaptor.getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getIncludes(), hasItem(allOf(hasProperty("paramName", equalTo(FhirConstants.INCLUDE_REQUESTER_PARAM)), hasProperty("paramType", equalTo(FhirConstants.MEDICATION_REQUEST))))); } @@ -639,22 +646,22 @@ public void searchForMedicationRequests_shouldHandleMultipleIncludes() throws Ex public void searchForMedicationRequests_shouldAddRelatedMedicationDispenseWhenRevIncluded() throws Exception { verifyUri("/MedicationRequest?_revinclude=MedicationDispense:prescription"); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), isNull(), isNull(), isNull(), isNull(), - isNull(), isNull(), isNull(), isNull(), isNull(), includeArgumentCaptor.capture()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(includeArgumentCaptor.getValue(), notNullValue()); - assertThat(includeArgumentCaptor.getValue().size(), equalTo(1)); - assertThat(includeArgumentCaptor.getValue().iterator().next().getParamName(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getRevIncludes().size(), equalTo(1)); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getRevIncludes().iterator().next().getParamName(), equalTo(FhirConstants.INCLUDE_PRESCRIPTION_PARAM)); - assertThat(includeArgumentCaptor.getValue().iterator().next().getParamType(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getRevIncludes().iterator().next().getParamType(), equalTo(FhirConstants.MEDICATION_DISPENSE)); } private void verifyUri(String uri) throws Exception { MedicationRequest medicationRequest = new MedicationRequest(); medicationRequest.setId(MEDICATION_REQUEST_UUID); - when(fhirMedicationRequestService.searchForMedicationRequests(any(), any(), any(), any(), any(), any(), any(), any(), - any(), any(), any())).thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); + when(fhirMedicationRequestService.searchForMedicationRequests(any())) + .thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); MockHttpServletResponse response = get(uri).accept(FhirMediaTypes.JSON).go(); diff --git a/omod/src/test/java/org/openmrs/module/fhir2/providers/r4/MedicationRequestFhirResourceProviderWebTest.java b/omod/src/test/java/org/openmrs/module/fhir2/providers/r4/MedicationRequestFhirResourceProviderWebTest.java index 4438eee16..54f9762a0 100644 --- a/omod/src/test/java/org/openmrs/module/fhir2/providers/r4/MedicationRequestFhirResourceProviderWebTest.java +++ b/omod/src/test/java/org/openmrs/module/fhir2/providers/r4/MedicationRequestFhirResourceProviderWebTest.java @@ -19,7 +19,6 @@ import static org.hamcrest.Matchers.notNullValue; import static org.hamcrest.Matchers.nullValue; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.isNull; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -27,12 +26,7 @@ import java.util.Calendar; import java.util.Collections; -import java.util.HashSet; -import ca.uhn.fhir.model.api.Include; -import ca.uhn.fhir.rest.param.DateRangeParam; -import ca.uhn.fhir.rest.param.ReferenceAndListParam; -import ca.uhn.fhir.rest.param.TokenAndListParam; import lombok.AccessLevel; import lombok.Getter; import org.apache.commons.lang.time.DateUtils; @@ -49,6 +43,7 @@ import org.mockito.junit.MockitoJUnitRunner; import org.openmrs.module.fhir2.FhirConstants; import org.openmrs.module.fhir2.api.FhirMedicationRequestService; +import org.openmrs.module.fhir2.api.search.param.MedicationRequestSearchParams; import org.springframework.mock.web.MockHttpServletResponse; @RunWith(MockitoJUnitRunner.class) @@ -88,16 +83,7 @@ public class MedicationRequestFhirResourceProviderWebTest extends BaseFhirR4Reso private FhirMedicationRequestService fhirMedicationRequestService; @Captor - private ArgumentCaptor tokenAndListParamArgumentCaptor; - - @Captor - private ArgumentCaptor dateRangeParamArgumentCaptor; - - @Captor - private ArgumentCaptor referenceAndListParamArgumentCaptor; - - @Captor - private ArgumentCaptor> includeArgumentCaptor; + private ArgumentCaptor medicationRequestSearchParamsArgumentCaptor; @Getter(AccessLevel.PUBLIC) private MedicationRequestFhirResourceProvider resourceProvider; @@ -142,13 +128,14 @@ public void getMedicationRequestByUuid_shouldReturn404() throws Exception { public void searchForMedicationRequests_shouldSearchForMedicationRequestsByUUID() throws Exception { verifyUri(String.format("/MedicationRequest?_id=%s", MEDICATION_REQUEST_UUID)); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), isNull(), isNull(), isNull(), isNull(), - tokenAndListParamArgumentCaptor.capture(), isNull(), isNull(), isNull(), isNull(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(tokenAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(tokenAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(tokenAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens().get(0) - .getValue(), + System.out.println("value:" + medicationRequestSearchParamsArgumentCaptor.getValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getId().getValuesAsQueryTokens(), not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getId().getValuesAsQueryTokens().get(0) + .getValuesAsQueryTokens().get(0).getValue(), equalTo(MEDICATION_REQUEST_UUID)); } @@ -156,17 +143,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByUUID( public void searchForMedicationRequests_shouldSearchForMedicationRequestsByLastUpdatedDate() throws Exception { verifyUri(String.format("/MedicationRequest?_lastUpdated=%s", LAST_UPDATED_DATE)); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), isNull(), isNull(), isNull(), isNull(), - isNull(), isNull(), isNull(), dateRangeParamArgumentCaptor.capture(), isNull(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(dateRangeParamArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); Calendar calendar = Calendar.getInstance(); calendar.set(2020, Calendar.SEPTEMBER, 3); - assertThat(dateRangeParamArgumentCaptor.getValue().getLowerBound().getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getLastUpdated().getLowerBound().getValue(), equalTo(DateUtils.truncate(calendar.getTime(), Calendar.DATE))); - assertThat(dateRangeParamArgumentCaptor.getValue().getUpperBound().getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getLastUpdated().getUpperBound().getValue(), equalTo(DateUtils.truncate(calendar.getTime(), Calendar.DATE))); } @@ -174,16 +161,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByLastU public void searchForMedicationRequests_shouldSearchForMedicationRequestsBySubjectUUID() throws Exception { verifyUri(String.format("/MedicationRequest?subject=%s", PATIENT_UUID)); - verify(fhirMedicationRequestService).searchForMedicationRequests(referenceAndListParamArgumentCaptor.capture(), - isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getValue(), equalTo(PATIENT_UUID)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getChain(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getChain(), nullValue()); } @@ -191,16 +179,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsBySubje public void searchForMedicationRequests_shouldSearchForMedicationRequestsBySubjectIdentifier() throws Exception { verifyUri(String.format("/MedicationRequest?subject.identifier=%s", PATIENT_IDENTIFIER)); - verify(fhirMedicationRequestService).searchForMedicationRequests(referenceAndListParamArgumentCaptor.capture(), - isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getValue(), equalTo(PATIENT_IDENTIFIER)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getChain(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getChain(), equalTo(Patient.SP_IDENTIFIER)); } @@ -208,16 +197,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsBySubje public void searchForMedicationRequests_shouldSearchForMedicationRequestsBySubjectGivenName() throws Exception { verifyUri(String.format("/MedicationRequest?subject.given=%s", PATIENT_GIVEN_NAME)); - verify(fhirMedicationRequestService).searchForMedicationRequests(referenceAndListParamArgumentCaptor.capture(), - isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getValue(), equalTo(PATIENT_GIVEN_NAME)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getChain(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getChain(), equalTo(Patient.SP_GIVEN)); } @@ -225,16 +215,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsBySubje public void searchForMedicationRequests_shouldSearchForMedicationRequestsBySubjectFamilyName() throws Exception { verifyUri(String.format("/MedicationRequest?subject.family=%s", PATIENT_FAMILY_NAME)); - verify(fhirMedicationRequestService).searchForMedicationRequests(referenceAndListParamArgumentCaptor.capture(), - isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getValue(), equalTo(PATIENT_FAMILY_NAME)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getChain(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getChain(), equalTo(Patient.SP_FAMILY)); } @@ -242,16 +233,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsBySubje public void searchForMedicationRequests_shouldSearchForMedicationRequestsBySubjectName() throws Exception { verifyUri(String.format("/MedicationRequest?subject.name=%s", PATIENT_GIVEN_NAME)); - verify(fhirMedicationRequestService).searchForMedicationRequests(referenceAndListParamArgumentCaptor.capture(), - isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getValue(), equalTo(PATIENT_GIVEN_NAME)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getChain(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getChain(), equalTo(Patient.SP_NAME)); } @@ -261,17 +253,20 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsBySubje verifyUri(String.format("/MedicationRequest?subject.given=%s&subject.identifier=%s", PATIENT_GIVEN_NAME, PATIENT_IDENTIFIER)); - verify(fhirMedicationRequestService).searchForMedicationRequests(referenceAndListParamArgumentCaptor.capture(), - isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().size(), equalTo(2)); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens(), + not(empty())); + assertThat( + medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens().size(), + equalTo(2)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens(), hasItem(hasProperty("valuesAsQueryTokens", hasItem(allOf(hasProperty("chain", equalTo(Patient.SP_IDENTIFIER)), hasProperty("value", equalTo(PATIENT_IDENTIFIER))))))); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens(), hasItem(hasProperty("valuesAsQueryTokens", hasItem(allOf(hasProperty("chain", equalTo(Patient.SP_GIVEN)), hasProperty("value", equalTo(PATIENT_GIVEN_NAME))))))); } @@ -280,16 +275,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsBySubje public void searchForMedicationRequests_shouldSearchForMedicationRequestsByPatientUUID() throws Exception { verifyUri(String.format("/MedicationRequest?patient=%s", PATIENT_UUID)); - verify(fhirMedicationRequestService).searchForMedicationRequests(referenceAndListParamArgumentCaptor.capture(), - isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getValue(), equalTo(PATIENT_UUID)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getChain(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getChain(), nullValue()); } @@ -297,16 +293,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByPatie public void searchForMedicationRequests_shouldSearchForMedicationRequestsByPatientIdentifier() throws Exception { verifyUri(String.format("/MedicationRequest?patient.identifier=%s", PATIENT_IDENTIFIER)); - verify(fhirMedicationRequestService).searchForMedicationRequests(referenceAndListParamArgumentCaptor.capture(), - isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getValue(), equalTo(PATIENT_IDENTIFIER)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getChain(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getChain(), equalTo(Patient.SP_IDENTIFIER)); } @@ -314,16 +311,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByPatie public void searchForMedicationRequests_shouldSearchForMedicationRequestsByPatientGivenName() throws Exception { verifyUri(String.format("/MedicationRequest?patient.given=%s", PATIENT_GIVEN_NAME)); - verify(fhirMedicationRequestService).searchForMedicationRequests(referenceAndListParamArgumentCaptor.capture(), - isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getValue(), equalTo(PATIENT_GIVEN_NAME)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getChain(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getChain(), equalTo(Patient.SP_GIVEN)); } @@ -331,16 +329,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByPatie public void searchForMedicationRequests_shouldSearchForMedicationRequestsByPatientFamilyName() throws Exception { verifyUri(String.format("/MedicationRequest?patient.family=%s", PATIENT_FAMILY_NAME)); - verify(fhirMedicationRequestService).searchForMedicationRequests(referenceAndListParamArgumentCaptor.capture(), - isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getValue(), equalTo(PATIENT_FAMILY_NAME)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getChain(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getChain(), equalTo(Patient.SP_FAMILY)); } @@ -348,16 +347,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByPatie public void searchForMedicationRequests_shouldSearchForMedicationRequestsByPatientName() throws Exception { verifyUri(String.format("/MedicationRequest?patient.name=%s", PATIENT_GIVEN_NAME)); - verify(fhirMedicationRequestService).searchForMedicationRequests(referenceAndListParamArgumentCaptor.capture(), - isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getValue(), equalTo(PATIENT_GIVEN_NAME)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getChain(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getChain(), equalTo(Patient.SP_NAME)); } @@ -367,17 +367,20 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByPatie verifyUri(String.format("/MedicationRequest?patient.given=%s&patient.identifier=%s", PATIENT_GIVEN_NAME, PATIENT_IDENTIFIER)); - verify(fhirMedicationRequestService).searchForMedicationRequests(referenceAndListParamArgumentCaptor.capture(), - isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().size(), equalTo(2)); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens(), + not(empty())); + assertThat( + medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens().size(), + equalTo(2)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens(), hasItem(hasProperty("valuesAsQueryTokens", hasItem(allOf(hasProperty("chain", equalTo(Patient.SP_IDENTIFIER)), hasProperty("value", equalTo(PATIENT_IDENTIFIER))))))); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getPatientReference().getValuesAsQueryTokens(), hasItem(hasProperty("valuesAsQueryTokens", hasItem(allOf(hasProperty("chain", equalTo(Patient.SP_GIVEN)), hasProperty("value", equalTo(PATIENT_GIVEN_NAME))))))); } @@ -386,17 +389,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByPatie public void searchForMedicationRequests_shouldSearchForMedicationRequestsByEncounterUUID() throws Exception { verifyUri(String.format("/MedicationRequest?encounter=%s", ENCOUNTER_UUID)); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), - referenceAndListParamArgumentCaptor.capture(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), - isNull(), isNull(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getChain(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getEncounterReference().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getEncounterReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getChain(), equalTo(null)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getEncounterReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getValue(), equalTo(ENCOUNTER_UUID)); } @@ -404,17 +407,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByEncou public void searchForMedicationRequests_shouldSearchForMedicationRequestsByParticipantUUID() throws Exception { verifyUri(String.format("/MedicationRequest?requester=%s", PARTICIPANT_UUID)); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), isNull(), isNull(), - referenceAndListParamArgumentCaptor.capture(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), - isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getValue(), equalTo(PARTICIPANT_UUID)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getChain(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getChain(), nullValue()); } @@ -422,17 +425,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByParti public void searchForMedicationRequests_shouldSearchForMedicationRequestsByParticipantIdentifier() throws Exception { verifyUri(String.format("/MedicationRequest?requester.identifier=%s", PARTICIPANT_IDENTIFIER)); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), isNull(), isNull(), - referenceAndListParamArgumentCaptor.capture(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), - isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getValue(), equalTo(PARTICIPANT_IDENTIFIER)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getChain(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getChain(), equalTo(Practitioner.SP_IDENTIFIER)); } @@ -440,17 +443,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByParti public void searchForMedicationRequests_shouldSearchForMedicationRequestsByParticipantGivenName() throws Exception { verifyUri(String.format("/MedicationRequest?requester.given=%s", PARTICIPANT_GIVEN_NAME)); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), isNull(), isNull(), - referenceAndListParamArgumentCaptor.capture(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), - isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getValue(), equalTo(PARTICIPANT_GIVEN_NAME)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getChain(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getChain(), equalTo(Practitioner.SP_GIVEN)); } @@ -458,17 +461,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByParti public void searchForMedicationRequests_shouldSearchForMedicationRequestsByParticipantFamilyName() throws Exception { verifyUri(String.format("/MedicationRequest?requester.family=%s", PARTICIPANT_FAMILY_NAME)); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), isNull(), isNull(), - referenceAndListParamArgumentCaptor.capture(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), - isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getValue(), equalTo(PARTICIPANT_FAMILY_NAME)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getChain(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getChain(), equalTo(Practitioner.SP_FAMILY)); } @@ -476,17 +479,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByParti public void searchForMedicationRequests_shouldSearchForMedicationRequestsByParticipantName() throws Exception { verifyUri(String.format("/MedicationRequest?requester.name=%s", PARTICIPANT_GIVEN_NAME)); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), isNull(), isNull(), - referenceAndListParamArgumentCaptor.capture(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), - isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getValue(), equalTo(PARTICIPANT_GIVEN_NAME)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getChain(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getChain(), equalTo(Practitioner.SP_NAME)); } @@ -496,19 +499,21 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByParti verifyUri(String.format("/MedicationRequest?requester.given=%s&requester.identifier=%s", PARTICIPANT_GIVEN_NAME, PARTICIPANT_IDENTIFIER)); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), isNull(), isNull(), - referenceAndListParamArgumentCaptor.capture(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), - isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().size(), equalTo(2)); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens(), + not(empty())); + assertThat( + medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens().size(), + equalTo(2)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens(), hasItem( hasProperty("valuesAsQueryTokens", hasItem(allOf(hasProperty("chain", equalTo(Practitioner.SP_IDENTIFIER)), hasProperty("value", equalTo(PARTICIPANT_IDENTIFIER))))))); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getParticipantReference().getValuesAsQueryTokens(), hasItem(hasProperty("valuesAsQueryTokens", hasItem(allOf(hasProperty("chain", equalTo(Practitioner.SP_GIVEN)), hasProperty("value", equalTo(PARTICIPANT_GIVEN_NAME))))))); } @@ -517,16 +522,17 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByParti public void searchForMedicationRequests_shouldSearchForMedicationRequestsByMedicationUUID() throws Exception { verifyUri(String.format("/MedicationRequest?medication=%s", MEDICATION_UUID)); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), isNull(), isNull(), isNull(), - referenceAndListParamArgumentCaptor.capture(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(referenceAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getMedicationReference().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getMedicationReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getValue(), equalTo(MEDICATION_UUID)); - assertThat(referenceAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens() - .get(0).getChain(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getMedicationReference().getValuesAsQueryTokens() + .get(0).getValuesAsQueryTokens().get(0).getChain(), nullValue()); } @@ -534,14 +540,13 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByMedic public void searchForMedicationRequests_shouldSearchForMedicationRequestsByCode() throws Exception { verifyUri(String.format("/MedicationRequest?code=%s", CODE)); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), isNull(), - tokenAndListParamArgumentCaptor.capture(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), isNull(), - isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(tokenAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(tokenAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(tokenAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens().get(0) - .getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getCode().getValuesAsQueryTokens(), not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getCode().getValuesAsQueryTokens().get(0) + .getValuesAsQueryTokens().get(0).getValue(), equalTo(CODE)); } @@ -549,13 +554,14 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByCode( public void searchForMedicationRequests_shouldSearchForMedicationRequestsByStatus() throws Exception { verifyUri(String.format("/MedicationRequest?status=%s", STATUS)); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), isNull(), isNull(), isNull(), isNull(), - isNull(), tokenAndListParamArgumentCaptor.capture(), isNull(), isNull(), isNull(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(tokenAndListParamArgumentCaptor.getValue(), notNullValue()); - assertThat(tokenAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens(), not(empty())); - assertThat(tokenAndListParamArgumentCaptor.getValue().getValuesAsQueryTokens().get(0).getValuesAsQueryTokens().get(0) - .getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getStatus().getValuesAsQueryTokens(), + not(empty())); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getStatus().getValuesAsQueryTokens().get(0) + .getValuesAsQueryTokens().get(0).getValue(), equalTo(STATUS)); } @@ -564,14 +570,14 @@ public void searchForMedicationRequests_shouldSearchForMedicationRequestsByStatu public void searchForMedicationRequests_shouldAddRelatedRequesterWhenIncluded() throws Exception { verifyUri("/MedicationRequest?_include=MedicationRequest:requester"); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), isNull(), isNull(), isNull(), isNull(), - isNull(), isNull(), isNull(), isNull(), includeArgumentCaptor.capture(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(includeArgumentCaptor.getValue(), notNullValue()); - assertThat(includeArgumentCaptor.getValue().size(), equalTo(1)); - assertThat(includeArgumentCaptor.getValue().iterator().next().getParamName(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getIncludes().size(), equalTo(1)); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getIncludes().iterator().next().getParamName(), equalTo(FhirConstants.INCLUDE_REQUESTER_PARAM)); - assertThat(includeArgumentCaptor.getValue().iterator().next().getParamType(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getIncludes().iterator().next().getParamType(), equalTo(FhirConstants.MEDICATION_REQUEST)); } @@ -579,14 +585,14 @@ public void searchForMedicationRequests_shouldAddRelatedRequesterWhenIncluded() public void searchForMedicationRequests_shouldAddRelatedMedicationWhenIncluded() throws Exception { verifyUri("/MedicationRequest?_include=MedicationRequest:medication"); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), isNull(), isNull(), isNull(), isNull(), - isNull(), isNull(), isNull(), isNull(), includeArgumentCaptor.capture(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(includeArgumentCaptor.getValue(), notNullValue()); - assertThat(includeArgumentCaptor.getValue().size(), equalTo(1)); - assertThat(includeArgumentCaptor.getValue().iterator().next().getParamName(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getIncludes().size(), equalTo(1)); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getIncludes().iterator().next().getParamName(), equalTo(FhirConstants.INCLUDE_MEDICATION_PARAM)); - assertThat(includeArgumentCaptor.getValue().iterator().next().getParamType(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getIncludes().iterator().next().getParamType(), equalTo(FhirConstants.MEDICATION_REQUEST)); } @@ -594,14 +600,14 @@ public void searchForMedicationRequests_shouldAddRelatedMedicationWhenIncluded() public void searchForMedicationRequests_shouldAddRelatedPatientWhenIncluded() throws Exception { verifyUri("/MedicationRequest?_include=MedicationRequest:patient"); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), isNull(), isNull(), isNull(), isNull(), - isNull(), isNull(), isNull(), isNull(), includeArgumentCaptor.capture(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(includeArgumentCaptor.getValue(), notNullValue()); - assertThat(includeArgumentCaptor.getValue().size(), equalTo(1)); - assertThat(includeArgumentCaptor.getValue().iterator().next().getParamName(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getIncludes().size(), equalTo(1)); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getIncludes().iterator().next().getParamName(), equalTo(FhirConstants.INCLUDE_PATIENT_PARAM)); - assertThat(includeArgumentCaptor.getValue().iterator().next().getParamType(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getIncludes().iterator().next().getParamType(), equalTo(FhirConstants.MEDICATION_REQUEST)); } @@ -609,14 +615,14 @@ public void searchForMedicationRequests_shouldAddRelatedPatientWhenIncluded() th public void searchForMedicationRequests_shouldAddRelatedEncounterWhenIncluded() throws Exception { verifyUri("/MedicationRequest?_include=MedicationRequest:encounter"); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), isNull(), isNull(), isNull(), isNull(), - isNull(), isNull(), isNull(), isNull(), includeArgumentCaptor.capture(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(includeArgumentCaptor.getValue(), notNullValue()); - assertThat(includeArgumentCaptor.getValue().size(), equalTo(1)); - assertThat(includeArgumentCaptor.getValue().iterator().next().getParamName(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getIncludes().size(), equalTo(1)); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getIncludes().iterator().next().getParamName(), equalTo(FhirConstants.INCLUDE_ENCOUNTER_PARAM)); - assertThat(includeArgumentCaptor.getValue().iterator().next().getParamType(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getIncludes().iterator().next().getParamType(), equalTo(FhirConstants.MEDICATION_REQUEST)); } @@ -624,15 +630,15 @@ public void searchForMedicationRequests_shouldAddRelatedEncounterWhenIncluded() public void searchForMedicationRequests_shouldHandleMultipleIncludes() throws Exception { verifyUri("/MedicationRequest?_include=MedicationRequest:medication&_include=MedicationRequest:requester"); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), isNull(), isNull(), isNull(), isNull(), - isNull(), isNull(), isNull(), isNull(), includeArgumentCaptor.capture(), isNull()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(includeArgumentCaptor.getValue(), notNullValue()); - assertThat(includeArgumentCaptor.getValue().size(), equalTo(2)); - assertThat(includeArgumentCaptor.getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getIncludes().size(), equalTo(2)); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getIncludes(), hasItem(allOf(hasProperty("paramName", equalTo(FhirConstants.INCLUDE_MEDICATION_PARAM)), hasProperty("paramType", equalTo(FhirConstants.MEDICATION_REQUEST))))); - assertThat(includeArgumentCaptor.getValue(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getIncludes(), hasItem(allOf(hasProperty("paramName", equalTo(FhirConstants.INCLUDE_REQUESTER_PARAM)), hasProperty("paramType", equalTo(FhirConstants.MEDICATION_REQUEST))))); } @@ -641,20 +647,20 @@ public void searchForMedicationRequests_shouldHandleMultipleIncludes() throws Ex public void searchForMedicationRequests_shouldAddRelatedMedicationDispenseWhenRevIncluded() throws Exception { verifyUri("/MedicationRequest?_revinclude=MedicationDispense:prescription"); - verify(fhirMedicationRequestService).searchForMedicationRequests(isNull(), isNull(), isNull(), isNull(), isNull(), - isNull(), isNull(), isNull(), isNull(), isNull(), includeArgumentCaptor.capture()); + verify(fhirMedicationRequestService) + .searchForMedicationRequests(medicationRequestSearchParamsArgumentCaptor.capture()); - assertThat(includeArgumentCaptor.getValue(), notNullValue()); - assertThat(includeArgumentCaptor.getValue().size(), equalTo(1)); - assertThat(includeArgumentCaptor.getValue().iterator().next().getParamName(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue(), notNullValue()); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getRevIncludes().size(), equalTo(1)); + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getRevIncludes().iterator().next().getParamName(), equalTo(FhirConstants.INCLUDE_PRESCRIPTION_PARAM)); - assertThat(includeArgumentCaptor.getValue().iterator().next().getParamType(), + assertThat(medicationRequestSearchParamsArgumentCaptor.getValue().getRevIncludes().iterator().next().getParamType(), equalTo(FhirConstants.MEDICATION_DISPENSE)); } private void verifyUri(String uri) throws Exception { - when(fhirMedicationRequestService.searchForMedicationRequests(any(), any(), any(), any(), any(), any(), any(), any(), - any(), any(), any())).thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); + when(fhirMedicationRequestService.searchForMedicationRequests(any())) + .thenReturn(new MockIBundleProvider<>(Collections.singletonList(medicationRequest), 10, 1)); MockHttpServletResponse response = get(uri).accept(FhirMediaTypes.JSON).go();