From f85e457832487c4439938751f6f7879fefa0506c Mon Sep 17 00:00:00 2001 From: mogoodrich Date: Thu, 26 Sep 2024 17:29:42 -0400 Subject: [PATCH 1/4] Reapply "FM2-646: Practitioner: support limiting search to users or providers" This reverts commit 1bad7e35a2f840d13e8b566d676df51bcdebc829. --- .../openmrs/module/fhir2/FhirConstants.java | 2 + .../api/impl/FhirPractitionerServiceImpl.java | 36 +++++- .../param/PractitionerSearchParams.java | 9 +- .../r3/PractitionerFhirResourceProvider.java | 3 +- .../r4/PractitionerFhirResourceProvider.java | 3 +- .../impl/FhirPractitionerServiceImplTest.java | 54 ++++----- .../PractitionerFhirResourceProviderTest.java | 109 ++++++++++-------- .../PractitionerFhirResourceProviderTest.java | 109 ++++++++++-------- ...erFhirResourceProviderIntegrationTest.java | 60 ++++++++++ 9 files changed, 246 insertions(+), 139 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/fhir2/FhirConstants.java b/api/src/main/java/org/openmrs/module/fhir2/FhirConstants.java index f989d4df73..caeef833e5 100644 --- a/api/src/main/java/org/openmrs/module/fhir2/FhirConstants.java +++ b/api/src/main/java/org/openmrs/module/fhir2/FhirConstants.java @@ -109,6 +109,8 @@ private FhirConstants() { public static final String OPENMRS_FHIR_EXT_ENCOUNTER_TAG = OPENMRS_FHIR_EXT_PREFIX + "/encounter-tag"; + public static final String OPENMRS_FHIR_EXT_PRACTITIONER_TAG = OPENMRS_FHIR_EXT_PREFIX + "/practitioner-tag"; + public static final String OPENMRS_FHIR_EXT_OBSERVATION_REFERENCE_RANGE = OPENMRS_FHIR_EXT_PREFIX + "/obs/reference-range"; diff --git a/api/src/main/java/org/openmrs/module/fhir2/api/impl/FhirPractitionerServiceImpl.java b/api/src/main/java/org/openmrs/module/fhir2/api/impl/FhirPractitionerServiceImpl.java index 63d251221a..07b2b0c81e 100644 --- a/api/src/main/java/org/openmrs/module/fhir2/api/impl/FhirPractitionerServiceImpl.java +++ b/api/src/main/java/org/openmrs/module/fhir2/api/impl/FhirPractitionerServiceImpl.java @@ -11,7 +11,11 @@ import javax.annotation.Nonnull; +import java.util.Collections; + import ca.uhn.fhir.rest.api.server.IBundleProvider; +import ca.uhn.fhir.rest.param.InternalCodingDt; +import ca.uhn.fhir.rest.param.TokenAndListParam; import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException; import ca.uhn.fhir.rest.server.exceptions.ResourceNotFoundException; import ca.uhn.fhir.rest.server.exceptions.UnprocessableEntityException; @@ -21,6 +25,7 @@ import org.hl7.fhir.r4.model.Practitioner; import org.openmrs.Provider; import org.openmrs.User; +import org.openmrs.module.fhir2.FhirConstants; import org.openmrs.module.fhir2.api.FhirGlobalPropertyService; import org.openmrs.module.fhir2.api.FhirPractitionerService; import org.openmrs.module.fhir2.api.FhirUserService; @@ -92,17 +97,36 @@ public Practitioner create(@Nonnull Practitioner newResource) { @Override @Transactional(readOnly = true) public IBundleProvider searchForPractitioners(PractitionerSearchParams practitionerSearchParams) { - IBundleProvider providerBundle = searchQuery.getQueryResults(practitionerSearchParams.toSearchParameterMap(), dao, - translator, searchQueryInclude); - SearchParameterMap theParams = new SearchParameterMap(); - IBundleProvider userBundle = userService.searchForUsers(theParams); - if (!providerBundle.isEmpty() && !userBundle.isEmpty()) { + IBundleProvider providerBundle = null; + IBundleProvider userBundle = null; + + if (shouldSearchExplicitlyFor(practitionerSearchParams.getTag(), "provider")) { + providerBundle = searchQuery.getQueryResults(practitionerSearchParams.toSearchParameterMap(), dao, translator, + searchQueryInclude); + } + + if (shouldSearchExplicitlyFor(practitionerSearchParams.getTag(), "user")) { + SearchParameterMap theParams = new SearchParameterMap(); + userBundle = userService.searchForUsers(theParams); + } + + if (providerBundle != null && userBundle != null) { return new TwoSearchQueryBundleProvider(providerBundle, userBundle, globalPropertyService); - } else if (providerBundle.isEmpty() && !userBundle.isEmpty()) { + } else if (providerBundle == null && userBundle != null) { return userBundle; } return providerBundle; } + + protected boolean shouldSearchExplicitlyFor(TokenAndListParam tokenAndListParam, @Nonnull String valueToCheck) { + if (tokenAndListParam == null || tokenAndListParam.size() == 0 || valueToCheck.isEmpty()) { + return true; + } + + return tokenAndListParam.getValuesAsQueryTokens().stream().anyMatch( + tokenOrListParam -> tokenOrListParam.doesCodingListMatch(Collections + .singletonList(new InternalCodingDt(FhirConstants.OPENMRS_FHIR_EXT_PRACTITIONER_TAG, valueToCheck)))); + } } diff --git a/api/src/main/java/org/openmrs/module/fhir2/api/search/param/PractitionerSearchParams.java b/api/src/main/java/org/openmrs/module/fhir2/api/search/param/PractitionerSearchParams.java index ee7b661d71..19fb02da6b 100644 --- a/api/src/main/java/org/openmrs/module/fhir2/api/search/param/PractitionerSearchParams.java +++ b/api/src/main/java/org/openmrs/module/fhir2/api/search/param/PractitionerSearchParams.java @@ -42,10 +42,13 @@ public class PractitionerSearchParams extends BaseResourceSearchParams { private StringAndListParam country; + private TokenAndListParam tag; + @Builder public PractitionerSearchParams(TokenAndListParam identifier, StringAndListParam name, StringAndListParam given, StringAndListParam family, StringAndListParam city, StringAndListParam state, StringAndListParam postalCode, - StringAndListParam country, TokenAndListParam id, DateRangeParam lastUpdated, HashSet revIncludes) { + StringAndListParam country, TokenAndListParam id, TokenAndListParam tag, DateRangeParam lastUpdated, + HashSet revIncludes) { super(id, lastUpdated, null, null, revIncludes); @@ -57,6 +60,7 @@ public PractitionerSearchParams(TokenAndListParam identifier, StringAndListParam this.state = state; this.postalCode = postalCode; this.country = country; + this.tag = tag; } @Override @@ -68,6 +72,7 @@ public SearchParameterMap toSearchParameterMap() { .addParameter(FhirConstants.CITY_SEARCH_HANDLER, getCity()) .addParameter(FhirConstants.STATE_SEARCH_HANDLER, getState()) .addParameter(FhirConstants.POSTALCODE_SEARCH_HANDLER, getPostalCode()) - .addParameter(FhirConstants.COUNTRY_SEARCH_HANDLER, getCountry()); + .addParameter(FhirConstants.COUNTRY_SEARCH_HANDLER, getCountry()) + .addParameter(FhirConstants.TAG_SEARCH_HANDLER, getTag()); } } diff --git a/api/src/main/java/org/openmrs/module/fhir2/providers/r3/PractitionerFhirResourceProvider.java b/api/src/main/java/org/openmrs/module/fhir2/providers/r3/PractitionerFhirResourceProvider.java index 42ab0a6d11..e4dadb8cec 100644 --- a/api/src/main/java/org/openmrs/module/fhir2/providers/r3/PractitionerFhirResourceProvider.java +++ b/api/src/main/java/org/openmrs/module/fhir2/providers/r3/PractitionerFhirResourceProvider.java @@ -113,6 +113,7 @@ public IBundleProvider searchForPractitioners(@OptionalParam(name = Practitioner @OptionalParam(name = Practitioner.SP_ADDRESS_POSTALCODE) StringAndListParam postalCode, @OptionalParam(name = Practitioner.SP_ADDRESS_COUNTRY) StringAndListParam country, @OptionalParam(name = Practitioner.SP_RES_ID) TokenAndListParam id, + @OptionalParam(name = "_tag") TokenAndListParam tag, @OptionalParam(name = "_lastUpdated") DateRangeParam lastUpdated, @IncludeParam(reverse = true, allow = { "Encounter:" + Encounter.SP_PARTICIPANT, "MedicationRequest:" + MedicationRequest.SP_REQUESTER, @@ -124,7 +125,7 @@ public IBundleProvider searchForPractitioners(@OptionalParam(name = Practitioner return new SearchQueryBundleProviderR3Wrapper( practitionerService.searchForPractitioners(new PractitionerSearchParams(identifier, name, given, family, - city, state, postalCode, country, id, lastUpdated, revIncludes))); + city, state, postalCode, country, id, tag, lastUpdated, revIncludes))); } } diff --git a/api/src/main/java/org/openmrs/module/fhir2/providers/r4/PractitionerFhirResourceProvider.java b/api/src/main/java/org/openmrs/module/fhir2/providers/r4/PractitionerFhirResourceProvider.java index 4ecea9dd29..b3e9e0c5fe 100644 --- a/api/src/main/java/org/openmrs/module/fhir2/providers/r4/PractitionerFhirResourceProvider.java +++ b/api/src/main/java/org/openmrs/module/fhir2/providers/r4/PractitionerFhirResourceProvider.java @@ -122,6 +122,7 @@ public IBundleProvider searchForPractitioners(@OptionalParam(name = Practitioner @OptionalParam(name = Practitioner.SP_ADDRESS_POSTALCODE) StringAndListParam postalCode, @OptionalParam(name = Practitioner.SP_ADDRESS_COUNTRY) StringAndListParam country, @OptionalParam(name = Practitioner.SP_RES_ID) TokenAndListParam id, + @OptionalParam(name = "_tag") TokenAndListParam tag, @OptionalParam(name = "_lastUpdated") DateRangeParam lastUpdated, @IncludeParam(reverse = true, allow = { "Encounter:" + Encounter.SP_PARTICIPANT, "MedicationRequest:" + MedicationRequest.SP_REQUESTER, "ServiceRequest:" + ServiceRequest.SP_REQUESTER, @@ -131,6 +132,6 @@ public IBundleProvider searchForPractitioners(@OptionalParam(name = Practitioner } return practitionerService.searchForPractitioners(new PractitionerSearchParams(identifier, name, given, family, city, - state, postalCode, country, id, lastUpdated, revIncludes)); + state, postalCode, country, id, tag, lastUpdated, revIncludes)); } } diff --git a/api/src/test/java/org/openmrs/module/fhir2/api/impl/FhirPractitionerServiceImplTest.java b/api/src/test/java/org/openmrs/module/fhir2/api/impl/FhirPractitionerServiceImplTest.java index 84b9505022..fcc1b134a5 100644 --- a/api/src/test/java/org/openmrs/module/fhir2/api/impl/FhirPractitionerServiceImplTest.java +++ b/api/src/test/java/org/openmrs/module/fhir2/api/impl/FhirPractitionerServiceImplTest.java @@ -221,7 +221,7 @@ public void shouldSearchForPractitionersByNameWhoIsProvider() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, name, null, null, null, null, null, null, null, null, null)); + new PractitionerSearchParams(null, name, null, null, null, null, null, null, null, null, null, null)); List resultList = get(results); assertThat(results, notNullValue()); @@ -240,7 +240,7 @@ public void shouldSearchForPractitionersByNameWhoIsUser() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider(practitioner2)); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, name, null, null, null, null, null, null, null, null, null)); + new PractitionerSearchParams(null, name, null, null, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -264,7 +264,7 @@ public void shouldSearchForPractitionersByNameWhoIsUserAndProvider() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider(practitioner2)); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, name, null, null, null, null, null, null, null, null, null)); + new PractitionerSearchParams(null, name, null, null, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -284,7 +284,7 @@ public void shouldReturnEmptyCollectionByWrongName() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, name, null, null, null, null, null, null, null, null, null)); + new PractitionerSearchParams(null, name, null, null, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -306,7 +306,7 @@ public void shouldSearchForPractitionersByIdentifier() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(identifier, null, null, null, null, null, null, null, null, null, null)); + new PractitionerSearchParams(identifier, null, null, null, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -327,7 +327,7 @@ public void shouldReturnEmptyCollectionByWrongIdentifier() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(identifier, null, null, null, null, null, null, null, null, null, null)); + new PractitionerSearchParams(identifier, null, null, null, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -351,7 +351,7 @@ public void shouldSearchForPractitionersByGivenNameWhoIsUserAndProvider() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider(practitioner2)); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null)); + new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -373,7 +373,7 @@ public void shouldReturnEmptyCollectionByWrongGivenName() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null)); + new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -396,7 +396,7 @@ public void shouldSearchForPractitionersByFamilyNameWhoIsProvider() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, familyName, null, null, null, null, null, null, null)); + new PractitionerSearchParams(null, null, null, familyName, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -416,7 +416,7 @@ public void shouldSearchForPractitionersByFamilyNameWhoIsUser() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider(practitioner2)); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, familyName, null, null, null, null, null, null, null)); + new PractitionerSearchParams(null, null, null, familyName, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -440,7 +440,7 @@ public void shouldSearchForPractitionersByFamilyNameWhoIsUserAndProvider() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider(practitioner2)); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, familyName, null, null, null, null, null, null, null)); + new PractitionerSearchParams(null, null, null, familyName, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -461,7 +461,7 @@ public void shouldReturnEmptyCollectionByWrongFamilyName() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, familyName, null, null, null, null, null, null, null)); + new PractitionerSearchParams(null, null, null, familyName, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -483,7 +483,7 @@ public void shouldSearchForPractitionersByAddressCity() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null)); + new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null, null)); List resultList = get(results); @@ -504,7 +504,7 @@ public void shouldReturnEmptyCollectionByWrongAddressCity() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null)); + new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null, null)); List resultList = get(results); @@ -526,7 +526,7 @@ public void shouldSearchForPractitionersByAddressState() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null)); + new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null, null)); List resultList = get(results); @@ -547,7 +547,7 @@ public void shouldReturnEmptyCollectionByWrongAddressState() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null)); + new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null, null)); List resultList = get(results); @@ -569,7 +569,7 @@ public void shouldSearchForPractitionersByAddressPostalCode() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, postalCode, null, null, null, null)); + new PractitionerSearchParams(null, null, null, null, null, null, postalCode, null, null, null, null, null)); List resultList = get(results); @@ -590,7 +590,7 @@ public void shouldReturnEmptyCollectionByWrongAddressPostalCode() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, postalCode, null, null, null, null)); + new PractitionerSearchParams(null, null, null, null, null, null, postalCode, null, null, null, null, null)); List resultList = get(results); @@ -612,7 +612,7 @@ public void shouldSearchForPractitionersByAddressCountry() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null)); + new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null, null)); List resultList = get(results); @@ -633,7 +633,7 @@ public void shouldReturnEmptyCollectionByWrongAddressCountry() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null)); + new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null, null)); List resultList = get(results); @@ -656,7 +656,7 @@ public void shouldSearchForPractitionersByUUID() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null)); + new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null, null)); List resultList = get(results); @@ -678,7 +678,7 @@ public void shouldReturnEmptyCollectionByWrongUUID() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null)); + new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null, null)); List resultList = get(results); @@ -701,7 +701,7 @@ public void shouldSearchForPractitionersByLastUpdated() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, lastUpdated, null)); + new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, lastUpdated, null)); List resultList = get(results); @@ -724,7 +724,7 @@ public void shouldReturnEmptyCollectionByWrongLastUpdated() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, lastUpdated, null)); + new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, lastUpdated, null)); List resultList = get(results); @@ -750,7 +750,7 @@ public void shouldAddRelatedResourcesToReturnedResultsWhenReverseIncluded() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, revIncludes)); + new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, null, revIncludes)); List resultList = get(results); @@ -776,7 +776,7 @@ public void shouldNotAddRelatedResourcesToReturnedResultsForEmptyReverseInclude( when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, revIncludes)); + new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, null, revIncludes)); List resultList = get(results); @@ -806,7 +806,7 @@ public void shouldAddRelatedResourcesFromProviderAndUserWhenReverseIncluded() { .thenReturn(Arrays.asList(practitioner2, new Encounter())); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, revIncludes)); + new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, null, revIncludes)); List resultList = get(results); diff --git a/api/src/test/java/org/openmrs/module/fhir2/providers/r3/PractitionerFhirResourceProviderTest.java b/api/src/test/java/org/openmrs/module/fhir2/providers/r3/PractitionerFhirResourceProviderTest.java index b1fbef8c9e..e2aba5543a 100644 --- a/api/src/test/java/org/openmrs/module/fhir2/providers/r3/PractitionerFhirResourceProviderTest.java +++ b/api/src/test/java/org/openmrs/module/fhir2/providers/r3/PractitionerFhirResourceProviderTest.java @@ -175,11 +175,12 @@ public void findPractitionersByName_shouldReturnMatchingBundleOfPractitioners() StringAndListParam nameParam = new StringAndListParam() .addAnd(new StringOrListParam().add(new StringParam(GIVEN_NAME))); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, nameParam, null, null, null, null, null, null, null, null, null))).thenReturn( - new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); + new PractitionerSearchParams(null, nameParam, null, null, null, null, null, null, null, null, null, null))) + .thenReturn( + new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(nameParam, null, null, null, null, null, null, - null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -193,11 +194,11 @@ public void findPractitionersByWrongName_shouldReturnBundleWithEmptyEntries() { StringAndListParam nameParam = new StringAndListParam() .addAnd(new StringOrListParam().add(new StringParam(WRONG_NAME))); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, nameParam, null, null, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, nameParam, null, null, null, null, null, null, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(nameParam, null, null, null, null, null, null, - null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -209,12 +210,12 @@ public void findPractitionersByWrongName_shouldReturnBundleWithEmptyEntries() { public void findPractitionersByIdentifier_shouldReturnMatchingBundleOfPractitioners() { TokenAndListParam identifier = new TokenAndListParam().addAnd(new TokenOrListParam().add(PRACTITIONER_IDENTIFIER)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(identifier, null, null, null, null, null, null, null, null, null, null))) + new PractitionerSearchParams(identifier, null, null, null, null, null, null, null, null, null, null, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(identifier, null, null, null, null, null, null, null, null, null, null)); + new PractitionerSearchParams(identifier, null, null, null, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -228,11 +229,11 @@ public void findPractitionersByWrongIdentifier_shouldReturnBundleWithEmptyEntrie TokenAndListParam identifier = new TokenAndListParam() .addAnd(new TokenOrListParam().add(WRONG_PRACTITIONER_IDENTIFIER)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(identifier, null, null, null, null, null, null, null, null, null, null))) + new PractitionerSearchParams(identifier, null, null, null, null, null, null, null, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, identifier, null, null, null, null, null, - null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -244,11 +245,12 @@ public void findPractitionersByWrongIdentifier_shouldReturnBundleWithEmptyEntrie public void findPractitionersByGivenName_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam givenName = new StringAndListParam().addAnd(new StringParam(PRACTITIONER_GIVEN_NAME)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null))).thenReturn( - new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); + new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null, null))) + .thenReturn( + new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, givenName, null, null, null, null, - null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -261,11 +263,11 @@ public void findPractitionersByGivenName_shouldReturnMatchingBundleOfPractitione public void findPractitionersByWrongGivenName_shouldReturnBundleWithEmptyEntries() { StringAndListParam givenName = new StringAndListParam().addAnd(new StringParam(WRONG_GIVEN_NAME)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, givenName, null, null, null, null, - null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -277,12 +279,12 @@ public void findPractitionersByWrongGivenName_shouldReturnBundleWithEmptyEntries public void findPractitionersByFamilyName_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam familyName = new StringAndListParam().addAnd(new StringParam(PRACTITIONER_FAMILY_NAME)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, familyName, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, null, familyName, null, null, null, null, null, null, null, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, familyName, null, null, null, - null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -295,11 +297,11 @@ public void findPractitionersByFamilyName_shouldReturnMatchingBundleOfPractition public void findPractitionersByWrongFamilyName_shouldReturnBundleWithEmptyEntries() { StringAndListParam familyName = new StringAndListParam().addAnd(new StringParam(WRONG_FAMILY_NAME)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, familyName, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, null, familyName, null, null, null, null, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, familyName, null, null, null, - null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -311,11 +313,12 @@ public void findPractitionersByWrongFamilyName_shouldReturnBundleWithEmptyEntrie public void findPractitionersByAddressCity_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam city = new StringAndListParam().addAnd(new StringParam(CITY)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null))).thenReturn( - new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); + new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null, null))) + .thenReturn( + new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, city, null, null, null, - null, null, null); + null, null, null, null); List resultList = get(results); @@ -328,11 +331,11 @@ public void findPractitionersByAddressCity_shouldReturnMatchingBundleOfPractitio public void findPractitionersByWrongAddressCity_shouldReturnBundleWithEmptyEntries() { StringAndListParam city = new StringAndListParam().addAnd(new StringParam(WRONG_CITY)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, city, null, null, null, - null, null, null); + null, null, null, null); List resultList = get(results); @@ -344,11 +347,12 @@ public void findPractitionersByWrongAddressCity_shouldReturnBundleWithEmptyEntri public void findPractitionersByAddressState_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam state = new StringAndListParam().addAnd(new StringParam(STATE)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null))).thenReturn( - new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); + new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null, null))) + .thenReturn( + new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, state, null, null, - null, null, null); + null, null, null, null); List resultList = get(results); @@ -361,11 +365,11 @@ public void findPractitionersByAddressState_shouldReturnMatchingBundleOfPractiti public void findPractitionersByWrongAddressState_shouldReturnBundleWithEmptyEntries() { StringAndListParam state = new StringAndListParam().addAnd(new StringParam(WRONG_STATE)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, state, null, null, - null, null, null); + null, null, null, null); List resultList = get(results); @@ -377,12 +381,12 @@ public void findPractitionersByWrongAddressState_shouldReturnBundleWithEmptyEntr public void findPractitionersByAddressPostalCode_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam postalCode = new StringAndListParam().addAnd(new StringParam(POSTAL_CODE)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, postalCode, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, null, postalCode, null, null, null, null, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, postalCode, - null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -395,11 +399,11 @@ public void findPractitionersByAddressPostalCode_shouldReturnMatchingBundleOfPra public void findPractitionersByWrongAddressPostalCode_shouldReturnBundleWithEmptyEntries() { StringAndListParam postalCode = new StringAndListParam().addAnd(new StringParam(WRONG_POSTAL_CODE)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, postalCode, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, null, postalCode, null, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, postalCode, - null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -411,11 +415,12 @@ public void findPractitionersByWrongAddressPostalCode_shouldReturnBundleWithEmpt public void findPractitionersByAddressCountry_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam country = new StringAndListParam().addAnd(new StringParam(COUNTRY)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null))).thenReturn( - new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); + new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null, null))) + .thenReturn( + new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, country, - null, null, null); + null, null, null, null); List resultList = get(results); @@ -428,11 +433,11 @@ public void findPractitionersByAddressCountry_shouldReturnMatchingBundleOfPracti public void findPractitionersByWrongAddressCountry_shouldReturnBundleWithEmptyEntries() { StringAndListParam country = new StringAndListParam().addAnd(new StringParam(WRONG_COUNTRY)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, country, - null, null, null); + null, null, null, null); List resultList = get(results); @@ -444,11 +449,12 @@ public void findPractitionersByWrongAddressCountry_shouldReturnBundleWithEmptyEn public void findPractitionersByUUID_shouldReturnMatchingBundleOfPractitioners() { TokenAndListParam uuid = new TokenAndListParam().addAnd(new TokenParam(PRACTITIONER_UUID)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null))).thenReturn( - new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); + new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null, null))) + .thenReturn( + new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - uuid, null, null); + uuid, null, null, null); List resultList = get(results); @@ -461,11 +467,11 @@ public void findPractitionersByUUID_shouldReturnMatchingBundleOfPractitioners() public void findPractitionersByWrongUUID_shouldReturnBundleWithEmptyEntries() { TokenAndListParam uuid = new TokenAndListParam().addAnd(new TokenParam(WRONG_PRACTITIONER_UUID)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null))) + new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - uuid, null, null); + uuid, null, null, null); List resultList = get(results); @@ -477,12 +483,12 @@ public void findPractitionersByWrongUUID_shouldReturnBundleWithEmptyEntries() { public void findPractitionersByLastUpdated_shouldReturnMatchingBundleOfPractitioners() { DateRangeParam lastUpdated = new DateRangeParam().setUpperBound(LAST_UPDATED_DATE).setLowerBound(LAST_UPDATED_DATE); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, lastUpdated, null))) + new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, lastUpdated, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - null, lastUpdated, null); + null, null, lastUpdated, null); List resultList = get(results); @@ -496,11 +502,11 @@ public void findPractitionersByWrongLastUpdated_shouldReturnBundleWithEmptyEntri DateRangeParam lastUpdated = new DateRangeParam().setUpperBound(WRONG_LAST_UPDATED_DATE) .setLowerBound(WRONG_LAST_UPDATED_DATE); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, lastUpdated, null))) + new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, lastUpdated, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - null, lastUpdated, null); + null, null, lastUpdated, null); List resultList = get(results); @@ -514,12 +520,12 @@ public void findPractitioners_shouldAddRelatedResourcesWhenReverseIncluded() { revIncludes.add(new Include("Encounter:participant")); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, revIncludes))) + new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, null, revIncludes))) .thenReturn( new MockIBundleProvider<>(Arrays.asList(practitioner, new Encounter()), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - null, null, revIncludes); + null, null, null, revIncludes); List resultList = get(results); @@ -535,11 +541,12 @@ public void findPractitioners_shouldNotAddRelatedResourcesForEmptyReverseInclude HashSet revIncludes = new HashSet<>(); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, null))).thenReturn( - new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); + new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, null, null))) + .thenReturn( + new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - null, null, revIncludes); + null, null, null, revIncludes); List resultList = get(results); diff --git a/api/src/test/java/org/openmrs/module/fhir2/providers/r4/PractitionerFhirResourceProviderTest.java b/api/src/test/java/org/openmrs/module/fhir2/providers/r4/PractitionerFhirResourceProviderTest.java index 23c47c767a..fb75736bc7 100644 --- a/api/src/test/java/org/openmrs/module/fhir2/providers/r4/PractitionerFhirResourceProviderTest.java +++ b/api/src/test/java/org/openmrs/module/fhir2/providers/r4/PractitionerFhirResourceProviderTest.java @@ -172,11 +172,12 @@ public void findPractitionersByName_shouldReturnMatchingBundleOfPractitioners() StringAndListParam nameParam = new StringAndListParam() .addAnd(new StringOrListParam().add(new StringParam(GIVEN_NAME))); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, nameParam, null, null, null, null, null, null, null, null, null))).thenReturn( - new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); + new PractitionerSearchParams(null, nameParam, null, null, null, null, null, null, null, null, null, null))) + .thenReturn( + new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(nameParam, null, null, null, null, null, null, - null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -190,11 +191,11 @@ public void findPractitionersByWrongName_shouldReturnBundleWithEmptyEntries() { StringAndListParam nameParam = new StringAndListParam() .addAnd(new StringOrListParam().add(new StringParam(WRONG_NAME))); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, nameParam, null, null, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, nameParam, null, null, null, null, null, null, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(nameParam, null, null, null, null, null, null, - null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -206,12 +207,12 @@ public void findPractitionersByWrongName_shouldReturnBundleWithEmptyEntries() { public void findPractitionersByIdentifier_shouldReturnMatchingBundleOfPractitioners() { TokenAndListParam identifier = new TokenAndListParam().addAnd(new TokenOrListParam().add(PRACTITIONER_IDENTIFIER)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(identifier, null, null, null, null, null, null, null, null, null, null))) + new PractitionerSearchParams(identifier, null, null, null, null, null, null, null, null, null, null, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, identifier, null, null, null, null, null, - null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -225,11 +226,11 @@ public void findPractitionersByWrongIdentifier_shouldReturnBundleWithEmptyEntrie TokenAndListParam identifier = new TokenAndListParam() .addAnd(new TokenOrListParam().add(WRONG_PRACTITIONER_IDENTIFIER)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(identifier, null, null, null, null, null, null, null, null, null, null))) + new PractitionerSearchParams(identifier, null, null, null, null, null, null, null, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, identifier, null, null, null, null, null, - null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -241,11 +242,12 @@ public void findPractitionersByWrongIdentifier_shouldReturnBundleWithEmptyEntrie public void findPractitionersByGivenName_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam givenName = new StringAndListParam().addAnd(new StringParam(PRACTITIONER_GIVEN_NAME)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null))).thenReturn( - new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); + new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null, null))) + .thenReturn( + new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, givenName, null, null, null, null, - null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -258,11 +260,11 @@ public void findPractitionersByGivenName_shouldReturnMatchingBundleOfPractitione public void findPractitionersByWrongGivenName_shouldReturnBundleWithEmptyEntries() { StringAndListParam givenName = new StringAndListParam().addAnd(new StringParam(WRONG_GIVEN_NAME)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, givenName, null, null, null, null, - null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -274,12 +276,12 @@ public void findPractitionersByWrongGivenName_shouldReturnBundleWithEmptyEntries public void findPractitionersByFamilyName_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam familyName = new StringAndListParam().addAnd(new StringParam(PRACTITIONER_FAMILY_NAME)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, familyName, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, null, familyName, null, null, null, null, null, null, null, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, familyName, null, null, null, - null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -292,11 +294,11 @@ public void findPractitionersByFamilyName_shouldReturnMatchingBundleOfPractition public void findPractitionersByWrongFamilyName_shouldReturnBundleWithEmptyEntries() { StringAndListParam familyName = new StringAndListParam().addAnd(new StringParam(WRONG_FAMILY_NAME)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, familyName, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, null, familyName, null, null, null, null, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, familyName, null, null, null, - null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -308,11 +310,12 @@ public void findPractitionersByWrongFamilyName_shouldReturnBundleWithEmptyEntrie public void findPractitionersByAddressCity_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam city = new StringAndListParam().addAnd(new StringParam(CITY)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null))).thenReturn( - new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); + new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null, null))) + .thenReturn( + new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, city, null, null, null, - null, null, null); + null, null, null, null); List resultList = get(results); @@ -325,11 +328,11 @@ public void findPractitionersByAddressCity_shouldReturnMatchingBundleOfPractitio public void findPractitionersByWrongAddressCity_shouldReturnBundleWithEmptyEntries() { StringAndListParam city = new StringAndListParam().addAnd(new StringParam(WRONG_CITY)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, city, null, null, null, - null, null, null); + null, null, null, null); List resultList = get(results); @@ -341,11 +344,12 @@ public void findPractitionersByWrongAddressCity_shouldReturnBundleWithEmptyEntri public void findPractitionersByAddressState_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam state = new StringAndListParam().addAnd(new StringParam(STATE)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null))).thenReturn( - new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); + new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null, null))) + .thenReturn( + new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, state, null, null, - null, null, null); + null, null, null, null); List resultList = get(results); @@ -358,11 +362,11 @@ public void findPractitionersByAddressState_shouldReturnMatchingBundleOfPractiti public void findPractitionersByWrongAddressState_shouldReturnBundleWithEmptyEntries() { StringAndListParam state = new StringAndListParam().addAnd(new StringParam(WRONG_STATE)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, state, null, null, - null, null, null); + null, null, null, null); List resultList = get(results); @@ -374,12 +378,12 @@ public void findPractitionersByWrongAddressState_shouldReturnBundleWithEmptyEntr public void findPractitionersByAddressPostalCode_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam postalCode = new StringAndListParam().addAnd(new StringParam(POSTAL_CODE)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, postalCode, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, null, postalCode, null, null, null, null, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, postalCode, - null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -392,11 +396,11 @@ public void findPractitionersByAddressPostalCode_shouldReturnMatchingBundleOfPra public void findPractitionersByWrongAddressPostalCode_shouldReturnBundleWithEmptyEntries() { StringAndListParam postalCode = new StringAndListParam().addAnd(new StringParam(WRONG_POSTAL_CODE)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, postalCode, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, null, postalCode, null, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, postalCode, - null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -408,11 +412,12 @@ public void findPractitionersByWrongAddressPostalCode_shouldReturnBundleWithEmpt public void findPractitionersByAddressCountry_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam country = new StringAndListParam().addAnd(new StringParam(COUNTRY)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null))).thenReturn( - new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); + new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null, null))) + .thenReturn( + new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, country, - null, null, null); + null, null, null, null); List resultList = get(results); @@ -425,11 +430,11 @@ public void findPractitionersByAddressCountry_shouldReturnMatchingBundleOfPracti public void findPractitionersByWrongAddressCountry_shouldReturnBundleWithEmptyEntries() { StringAndListParam country = new StringAndListParam().addAnd(new StringParam(WRONG_COUNTRY)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, country, - null, null, null); + null, null, null, null); List resultList = get(results); @@ -441,11 +446,12 @@ public void findPractitionersByWrongAddressCountry_shouldReturnBundleWithEmptyEn public void findPractitionersByUUID_shouldReturnMatchingBundleOfPractitioners() { TokenAndListParam uuid = new TokenAndListParam().addAnd(new TokenParam(PRACTITIONER_UUID)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null))).thenReturn( - new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); + new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null, null))) + .thenReturn( + new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - uuid, null, null); + uuid, null, null, null); List resultList = get(results); @@ -458,11 +464,11 @@ public void findPractitionersByUUID_shouldReturnMatchingBundleOfPractitioners() public void findPractitionersByWrongUUID_shouldReturnBundleWithEmptyEntries() { TokenAndListParam uuid = new TokenAndListParam().addAnd(new TokenParam(WRONG_PRACTITIONER_UUID)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null))) + new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - uuid, null, null); + uuid, null, null, null); List resultList = get(results); @@ -474,12 +480,12 @@ public void findPractitionersByWrongUUID_shouldReturnBundleWithEmptyEntries() { public void findPractitionersByLastUpdated_shouldReturnMatchingBundleOfPractitioners() { DateRangeParam lastUpdated = new DateRangeParam().setUpperBound(LAST_UPDATED_DATE).setLowerBound(LAST_UPDATED_DATE); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, lastUpdated, null))) + new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, lastUpdated, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - null, lastUpdated, null); + null, null, lastUpdated, null); List resultList = get(results); @@ -493,11 +499,11 @@ public void findPractitionersByWrongLastUpdated_shouldReturnBundleWithEmptyEntri DateRangeParam lastUpdated = new DateRangeParam().setUpperBound(WRONG_LAST_UPDATED_DATE) .setLowerBound(WRONG_LAST_UPDATED_DATE); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, lastUpdated, null))) + new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, lastUpdated, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - null, lastUpdated, null); + null, null, lastUpdated, null); List resultList = get(results); @@ -511,12 +517,12 @@ public void findPractitioners_shouldAddRelatedResourcesWhenReverseIncluded() { revIncludes.add(new Include("Encounter:participant")); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, revIncludes))) + new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, null, revIncludes))) .thenReturn( new MockIBundleProvider<>(Arrays.asList(practitioner, new Encounter()), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - null, null, revIncludes); + null, null, null, revIncludes); List resultList = get(results); @@ -532,11 +538,12 @@ public void findPractitioners_shouldNotAddRelatedResourcesForEmptyReverseInclude HashSet revIncludes = new HashSet<>(); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, null))).thenReturn( - new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); + new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, null, null))) + .thenReturn( + new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - null, null, revIncludes); + null, null, null, revIncludes); List resultList = get(results); diff --git a/integration-tests/src/test/java/org/openmrs/module/fhir2/providers/r4/PractitionerFhirResourceProviderIntegrationTest.java b/integration-tests/src/test/java/org/openmrs/module/fhir2/providers/r4/PractitionerFhirResourceProviderIntegrationTest.java index 5830327c56..14793786ca 100644 --- a/integration-tests/src/test/java/org/openmrs/module/fhir2/providers/r4/PractitionerFhirResourceProviderIntegrationTest.java +++ b/integration-tests/src/test/java/org/openmrs/module/fhir2/providers/r4/PractitionerFhirResourceProviderIntegrationTest.java @@ -15,6 +15,7 @@ import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.equalToIgnoringCase; import static org.hamcrest.Matchers.everyItem; +import static org.hamcrest.Matchers.hasItem; import static org.hamcrest.Matchers.hasProperty; import static org.hamcrest.Matchers.instanceOf; import static org.hamcrest.Matchers.is; @@ -493,6 +494,65 @@ public void shouldSearchForAllPractitionersAsJson() throws Exception { assertThat(entries, everyItem(hasProperty("fullUrl", startsWith("http://localhost/ws/fhir2/R4/Practitioner/")))); assertThat(entries, everyItem(hasResource(instanceOf(Practitioner.class)))); assertThat(entries, everyItem(hasResource(validResource()))); + // uuids of 3 providers from the test data set + assertThat(entries, hasItem(hasProperty("fullUrl", containsString("f9badd80-ab76-11e2-9e96-0800200c9a66")))); + assertThat(entries, hasItem(hasProperty("fullUrl", containsString("f23add80-ab76-11e2-9e96-0800210c9a56")))); + assertThat(entries, hasItem(hasProperty("fullUrl", containsString("f23add80-ab76-11e2-9e96-0803210c9a56")))); + // users + assertThat(entries, hasItem(hasProperty("fullUrl", containsString("c98a1558-e131-11de-babe-001e378eb67e")))); // user from standard test dataset + assertThat(entries, hasItem(hasProperty("fullUrl", containsString("A4F30A1B-5EB9-11DF-A648-37A07F9C90FB")))); // daemon user + assertThat(entries, hasItem(hasProperty("fullUrl", containsString("c98a1558-e131-11de-babe-001e378eb67e")))); // super user + } + + @Test + public void shouldOnlyReturnProvidersWhenLimitingUsingProviderTag() throws Exception { + MockHttpServletResponse response = get("/Practitioner?_tag=provider").accept(FhirMediaTypes.JSON).go(); + + assertThat(response, isOk()); + assertThat(response.getContentType(), is(FhirMediaTypes.JSON.toString())); + assertThat(response.getContentAsString(), notNullValue()); + + Bundle results = readBundleResponse(response); + + assertThat(results, notNullValue()); + assertThat(results.getType(), equalTo(Bundle.BundleType.SEARCHSET)); + assertThat(results.hasEntry(), is(true)); + + List entries = results.getEntry(); + + assertThat(entries.size(), is(3)); // 3 providers in the test data set for this test + assertThat(entries, everyItem(hasProperty("fullUrl", startsWith("http://localhost/ws/fhir2/R4/Practitioner/")))); + assertThat(entries, everyItem(hasResource(instanceOf(Practitioner.class)))); + assertThat(entries, everyItem(hasResource(validResource()))); + // uuids of 3 providers from the test data set + assertThat(entries, hasItem(hasProperty("fullUrl", containsString("f9badd80-ab76-11e2-9e96-0800200c9a66")))); + assertThat(entries, hasItem(hasProperty("fullUrl", containsString("f23add80-ab76-11e2-9e96-0800210c9a56")))); + assertThat(entries, hasItem(hasProperty("fullUrl", containsString("f23add80-ab76-11e2-9e96-0803210c9a56")))); + } + + @Test + public void shouldOnlyReturnUsersWhenLimitingUsingUserTag() throws Exception { + MockHttpServletResponse response = get("/Practitioner?_tag=user").accept(FhirMediaTypes.JSON).go(); + + assertThat(response, isOk()); + assertThat(response.getContentType(), is(FhirMediaTypes.JSON.toString())); + assertThat(response.getContentAsString(), notNullValue()); + + Bundle results = readBundleResponse(response); + + assertThat(results, notNullValue()); + assertThat(results.getType(), equalTo(Bundle.BundleType.SEARCHSET)); + assertThat(results.hasEntry(), is(true)); + + List entries = results.getEntry(); + + assertThat(entries.size(), is(3)); // 3 users between standard test data and super user/daemon user + assertThat(entries, everyItem(hasProperty("fullUrl", startsWith("http://localhost/ws/fhir2/R4/Practitioner/")))); + assertThat(entries, everyItem(hasResource(instanceOf(Practitioner.class)))); + assertThat(entries, everyItem(hasResource(validResource()))); + assertThat(entries, hasItem(hasProperty("fullUrl", containsString("c98a1558-e131-11de-babe-001e378eb67e")))); // user from standard test dataset + assertThat(entries, hasItem(hasProperty("fullUrl", containsString("A4F30A1B-5EB9-11DF-A648-37A07F9C90FB")))); // daemon user + assertThat(entries, hasItem(hasProperty("fullUrl", containsString("c98a1558-e131-11de-babe-001e378eb67e")))); // super user } @Test From 6eaa03aa260cfbe2463b67163f5cfd4d055c6b87 Mon Sep 17 00:00:00 2001 From: mogoodrich Date: Tue, 8 Oct 2024 18:07:57 -0400 Subject: [PATCH 2/4] FM2-646: Practitioner: support limiting search to users or providers --- .../openmrs/module/fhir2/FhirConstants.java | 2 + .../api/dao/impl/BasePractitionerDao.java | 20 +++ .../api/impl/FhirPractitionerServiceImpl.java | 1 + .../param/PractitionerSearchParams.java | 9 +- .../r3/PractitionerFhirResourceProvider.java | 4 +- .../r4/PractitionerFhirResourceProvider.java | 4 +- .../impl/FhirPractitionerServiceImplTest.java | 80 +++++------ .../PractitionerFhirResourceProviderTest.java | 131 +++++++++--------- .../PractitionerFhirResourceProviderTest.java | 131 +++++++++--------- pom.xml | 4 +- 10 files changed, 204 insertions(+), 182 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/fhir2/FhirConstants.java b/api/src/main/java/org/openmrs/module/fhir2/FhirConstants.java index caeef833e5..26808e0a15 100644 --- a/api/src/main/java/org/openmrs/module/fhir2/FhirConstants.java +++ b/api/src/main/java/org/openmrs/module/fhir2/FhirConstants.java @@ -285,6 +285,8 @@ private FhirConstants() { public static final String ENCOUNTER_TYPE_REFERENCE_SEARCH_HANDLER = "type.reference.search.handler"; + public static final String PROVIDER_ROLE_SEARCH_HANDLER = "providerRole.search.handler"; + public static final String ID_PROPERTY = "_id.property"; public static final String LAST_UPDATED_PROPERTY = "_lastUpdated.property"; diff --git a/api/src/main/java/org/openmrs/module/fhir2/api/dao/impl/BasePractitionerDao.java b/api/src/main/java/org/openmrs/module/fhir2/api/dao/impl/BasePractitionerDao.java index 602d7318c6..7bad11b691 100644 --- a/api/src/main/java/org/openmrs/module/fhir2/api/dao/impl/BasePractitionerDao.java +++ b/api/src/main/java/org/openmrs/module/fhir2/api/dao/impl/BasePractitionerDao.java @@ -9,8 +9,15 @@ */ package org.openmrs.module.fhir2.api.dao.impl; +import static org.hibernate.criterion.Restrictions.eq; + +import java.util.Optional; + +import ca.uhn.fhir.rest.param.StringOrListParam; +import ca.uhn.fhir.rest.param.StringParam; import ca.uhn.fhir.rest.param.TokenAndListParam; import org.hibernate.Criteria; +import org.hibernate.criterion.Criterion; import org.openmrs.Auditable; import org.openmrs.OpenmrsObject; import org.openmrs.module.fhir2.FhirConstants; @@ -37,6 +44,8 @@ protected void setupSearchParams(Criteria criteria, SearchParameterMap theParams case FhirConstants.ADDRESS_SEARCH_HANDLER: handleAddresses(criteria, entry); break; + case FhirConstants.PROVIDER_ROLE_SEARCH_HANDLER: + handlerProviderRoles(criteria, (StringOrListParam) entry.getValue()); case FhirConstants.COMMON_SEARCH_HANDLER: handleCommonSearchParameters(entry.getValue()).ifPresent(criteria::add); break; @@ -46,6 +55,17 @@ protected void setupSearchParams(Criteria criteria, SearchParameterMap theParams protected abstract void handleIdentifier(Criteria criteria, TokenAndListParam identifier); + protected void handlerProviderRoles(Criteria criteria, StringOrListParam providerRole) { + handleOrListParam(providerRole, param -> handleProviderRole(criteria, param)).ifPresent(criteria::add); + } + + protected Optional handleProviderRole(Criteria criteria, StringParam providerRole) { + if (lacksAlias(criteria, "pr")) { + criteria.createAlias("providerRole", "pr"); + } + return Optional.of(eq("pr.uuid", providerRole)); + } + @Override protected String getSqlAlias() { return "p_"; diff --git a/api/src/main/java/org/openmrs/module/fhir2/api/impl/FhirPractitionerServiceImpl.java b/api/src/main/java/org/openmrs/module/fhir2/api/impl/FhirPractitionerServiceImpl.java index 07b2b0c81e..c94a5c5f37 100644 --- a/api/src/main/java/org/openmrs/module/fhir2/api/impl/FhirPractitionerServiceImpl.java +++ b/api/src/main/java/org/openmrs/module/fhir2/api/impl/FhirPractitionerServiceImpl.java @@ -101,6 +101,7 @@ public IBundleProvider searchForPractitioners(PractitionerSearchParams practitio IBundleProvider providerBundle = null; IBundleProvider userBundle = null; + // TODO only search for providers if we have a provider roles tag if (shouldSearchExplicitlyFor(practitionerSearchParams.getTag(), "provider")) { providerBundle = searchQuery.getQueryResults(practitionerSearchParams.toSearchParameterMap(), dao, translator, searchQueryInclude); diff --git a/api/src/main/java/org/openmrs/module/fhir2/api/search/param/PractitionerSearchParams.java b/api/src/main/java/org/openmrs/module/fhir2/api/search/param/PractitionerSearchParams.java index 19fb02da6b..551a916955 100644 --- a/api/src/main/java/org/openmrs/module/fhir2/api/search/param/PractitionerSearchParams.java +++ b/api/src/main/java/org/openmrs/module/fhir2/api/search/param/PractitionerSearchParams.java @@ -14,6 +14,7 @@ import ca.uhn.fhir.model.api.Include; import ca.uhn.fhir.rest.param.DateRangeParam; import ca.uhn.fhir.rest.param.StringAndListParam; +import ca.uhn.fhir.rest.param.StringOrListParam; import ca.uhn.fhir.rest.param.TokenAndListParam; import lombok.Builder; import lombok.Data; @@ -42,13 +43,15 @@ public class PractitionerSearchParams extends BaseResourceSearchParams { private StringAndListParam country; + private StringOrListParam providerRole; + private TokenAndListParam tag; @Builder public PractitionerSearchParams(TokenAndListParam identifier, StringAndListParam name, StringAndListParam given, StringAndListParam family, StringAndListParam city, StringAndListParam state, StringAndListParam postalCode, - StringAndListParam country, TokenAndListParam id, TokenAndListParam tag, DateRangeParam lastUpdated, - HashSet revIncludes) { + StringAndListParam country, TokenAndListParam id, StringOrListParam providerRole, TokenAndListParam tag, + DateRangeParam lastUpdated, HashSet revIncludes) { super(id, lastUpdated, null, null, revIncludes); @@ -60,6 +63,7 @@ public PractitionerSearchParams(TokenAndListParam identifier, StringAndListParam this.state = state; this.postalCode = postalCode; this.country = country; + this.providerRole = providerRole; this.tag = tag; } @@ -73,6 +77,7 @@ public SearchParameterMap toSearchParameterMap() { .addParameter(FhirConstants.STATE_SEARCH_HANDLER, getState()) .addParameter(FhirConstants.POSTALCODE_SEARCH_HANDLER, getPostalCode()) .addParameter(FhirConstants.COUNTRY_SEARCH_HANDLER, getCountry()) + .addParameter(FhirConstants.PROVIDER_ROLE_SEARCH_HANDLER, getProviderRole()) .addParameter(FhirConstants.TAG_SEARCH_HANDLER, getTag()); } } diff --git a/api/src/main/java/org/openmrs/module/fhir2/providers/r3/PractitionerFhirResourceProvider.java b/api/src/main/java/org/openmrs/module/fhir2/providers/r3/PractitionerFhirResourceProvider.java index e4dadb8cec..d8b23eb7bc 100644 --- a/api/src/main/java/org/openmrs/module/fhir2/providers/r3/PractitionerFhirResourceProvider.java +++ b/api/src/main/java/org/openmrs/module/fhir2/providers/r3/PractitionerFhirResourceProvider.java @@ -29,6 +29,7 @@ import ca.uhn.fhir.rest.api.server.IBundleProvider; import ca.uhn.fhir.rest.param.DateRangeParam; import ca.uhn.fhir.rest.param.StringAndListParam; +import ca.uhn.fhir.rest.param.StringOrListParam; import ca.uhn.fhir.rest.param.TokenAndListParam; import ca.uhn.fhir.rest.server.IResourceProvider; import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException; @@ -113,6 +114,7 @@ public IBundleProvider searchForPractitioners(@OptionalParam(name = Practitioner @OptionalParam(name = Practitioner.SP_ADDRESS_POSTALCODE) StringAndListParam postalCode, @OptionalParam(name = Practitioner.SP_ADDRESS_COUNTRY) StringAndListParam country, @OptionalParam(name = Practitioner.SP_RES_ID) TokenAndListParam id, + @OptionalParam(name = "providerRole") StringOrListParam providerRole, @OptionalParam(name = "_tag") TokenAndListParam tag, @OptionalParam(name = "_lastUpdated") DateRangeParam lastUpdated, @IncludeParam(reverse = true, allow = { "Encounter:" + Encounter.SP_PARTICIPANT, @@ -125,7 +127,7 @@ public IBundleProvider searchForPractitioners(@OptionalParam(name = Practitioner return new SearchQueryBundleProviderR3Wrapper( practitionerService.searchForPractitioners(new PractitionerSearchParams(identifier, name, given, family, - city, state, postalCode, country, id, tag, lastUpdated, revIncludes))); + city, state, postalCode, country, id, providerRole, tag, lastUpdated, revIncludes))); } } diff --git a/api/src/main/java/org/openmrs/module/fhir2/providers/r4/PractitionerFhirResourceProvider.java b/api/src/main/java/org/openmrs/module/fhir2/providers/r4/PractitionerFhirResourceProvider.java index b3e9e0c5fe..c07e1192b1 100644 --- a/api/src/main/java/org/openmrs/module/fhir2/providers/r4/PractitionerFhirResourceProvider.java +++ b/api/src/main/java/org/openmrs/module/fhir2/providers/r4/PractitionerFhirResourceProvider.java @@ -32,6 +32,7 @@ import ca.uhn.fhir.rest.api.server.RequestDetails; import ca.uhn.fhir.rest.param.DateRangeParam; import ca.uhn.fhir.rest.param.StringAndListParam; +import ca.uhn.fhir.rest.param.StringOrListParam; import ca.uhn.fhir.rest.param.TokenAndListParam; import ca.uhn.fhir.rest.server.IResourceProvider; import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException; @@ -122,6 +123,7 @@ public IBundleProvider searchForPractitioners(@OptionalParam(name = Practitioner @OptionalParam(name = Practitioner.SP_ADDRESS_POSTALCODE) StringAndListParam postalCode, @OptionalParam(name = Practitioner.SP_ADDRESS_COUNTRY) StringAndListParam country, @OptionalParam(name = Practitioner.SP_RES_ID) TokenAndListParam id, + @OptionalParam(name = "providerRole") StringOrListParam providerRole, @OptionalParam(name = "_tag") TokenAndListParam tag, @OptionalParam(name = "_lastUpdated") DateRangeParam lastUpdated, @IncludeParam(reverse = true, allow = { "Encounter:" + Encounter.SP_PARTICIPANT, @@ -132,6 +134,6 @@ public IBundleProvider searchForPractitioners(@OptionalParam(name = Practitioner } return practitionerService.searchForPractitioners(new PractitionerSearchParams(identifier, name, given, family, city, - state, postalCode, country, id, tag, lastUpdated, revIncludes)); + state, postalCode, country, id, providerRole, tag, lastUpdated, revIncludes)); } } diff --git a/api/src/test/java/org/openmrs/module/fhir2/api/impl/FhirPractitionerServiceImplTest.java b/api/src/test/java/org/openmrs/module/fhir2/api/impl/FhirPractitionerServiceImplTest.java index fcc1b134a5..47ef504491 100644 --- a/api/src/test/java/org/openmrs/module/fhir2/api/impl/FhirPractitionerServiceImplTest.java +++ b/api/src/test/java/org/openmrs/module/fhir2/api/impl/FhirPractitionerServiceImplTest.java @@ -221,7 +221,7 @@ public void shouldSearchForPractitionersByNameWhoIsProvider() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, name, null, null, null, null, null, null, null, null, null, null)); + new PractitionerSearchParams(null, name, null, null, null, null, null, null, null, null, null, null, null)); List resultList = get(results); assertThat(results, notNullValue()); @@ -240,7 +240,7 @@ public void shouldSearchForPractitionersByNameWhoIsUser() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider(practitioner2)); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, name, null, null, null, null, null, null, null, null, null, null)); + new PractitionerSearchParams(null, name, null, null, null, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -264,7 +264,7 @@ public void shouldSearchForPractitionersByNameWhoIsUserAndProvider() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider(practitioner2)); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, name, null, null, null, null, null, null, null, null, null, null)); + new PractitionerSearchParams(null, name, null, null, null, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -284,7 +284,7 @@ public void shouldReturnEmptyCollectionByWrongName() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, name, null, null, null, null, null, null, null, null, null, null)); + new PractitionerSearchParams(null, name, null, null, null, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -305,8 +305,8 @@ public void shouldSearchForPractitionersByIdentifier() { when(practitionerTranslator.toFhirResource(provider)).thenReturn(practitioner); when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); - IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(identifier, null, null, null, null, null, null, null, null, null, null, null)); + IBundleProvider results = practitionerService.searchForPractitioners(new PractitionerSearchParams(identifier, null, + null, null, null, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -326,8 +326,8 @@ public void shouldReturnEmptyCollectionByWrongIdentifier() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); - IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(identifier, null, null, null, null, null, null, null, null, null, null, null)); + IBundleProvider results = practitionerService.searchForPractitioners(new PractitionerSearchParams(identifier, null, + null, null, null, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -351,7 +351,7 @@ public void shouldSearchForPractitionersByGivenNameWhoIsUserAndProvider() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider(practitioner2)); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null, null)); + new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -373,7 +373,7 @@ public void shouldReturnEmptyCollectionByWrongGivenName() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null, null)); + new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -395,8 +395,8 @@ public void shouldSearchForPractitionersByFamilyNameWhoIsProvider() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); - IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, familyName, null, null, null, null, null, null, null, null)); + IBundleProvider results = practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, + familyName, null, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -415,8 +415,8 @@ public void shouldSearchForPractitionersByFamilyNameWhoIsUser() { practitionerDao, practitionerTranslator, globalPropertyService, searchQueryInclude)); when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider(practitioner2)); - IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, familyName, null, null, null, null, null, null, null, null)); + IBundleProvider results = practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, + familyName, null, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -439,8 +439,8 @@ public void shouldSearchForPractitionersByFamilyNameWhoIsUserAndProvider() { when(practitionerTranslator.toFhirResource(provider)).thenReturn(practitioner); when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider(practitioner2)); - IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, familyName, null, null, null, null, null, null, null, null)); + IBundleProvider results = practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, + familyName, null, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -460,8 +460,8 @@ public void shouldReturnEmptyCollectionByWrongFamilyName() { practitionerDao, practitionerTranslator, globalPropertyService, searchQueryInclude)); when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); - IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, familyName, null, null, null, null, null, null, null, null)); + IBundleProvider results = practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, + familyName, null, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -483,7 +483,7 @@ public void shouldSearchForPractitionersByAddressCity() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null, null)); + new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -504,7 +504,7 @@ public void shouldReturnEmptyCollectionByWrongAddressCity() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null, null)); + new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -526,7 +526,7 @@ public void shouldSearchForPractitionersByAddressState() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null, null)); + new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null, null, null)); List resultList = get(results); @@ -547,7 +547,7 @@ public void shouldReturnEmptyCollectionByWrongAddressState() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null, null)); + new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null, null, null)); List resultList = get(results); @@ -568,8 +568,8 @@ public void shouldSearchForPractitionersByAddressPostalCode() { when(practitionerTranslator.toFhirResource(provider)).thenReturn(practitioner); when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); - IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, postalCode, null, null, null, null, null)); + IBundleProvider results = practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, + null, null, null, postalCode, null, null, null, null, null, null)); List resultList = get(results); @@ -589,8 +589,8 @@ public void shouldReturnEmptyCollectionByWrongAddressPostalCode() { practitionerDao, practitionerTranslator, globalPropertyService, searchQueryInclude)); when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); - IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, postalCode, null, null, null, null, null)); + IBundleProvider results = practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, + null, null, null, postalCode, null, null, null, null, null, null)); List resultList = get(results); @@ -612,7 +612,7 @@ public void shouldSearchForPractitionersByAddressCountry() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null, null)); + new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null, null, null)); List resultList = get(results); @@ -633,7 +633,7 @@ public void shouldReturnEmptyCollectionByWrongAddressCountry() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null, null)); + new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null, null, null)); List resultList = get(results); @@ -656,7 +656,7 @@ public void shouldSearchForPractitionersByUUID() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null, null)); + new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null, null, null)); List resultList = get(results); @@ -678,7 +678,7 @@ public void shouldReturnEmptyCollectionByWrongUUID() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null, null)); + new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null, null, null)); List resultList = get(results); @@ -700,8 +700,8 @@ public void shouldSearchForPractitionersByLastUpdated() { when(practitionerTranslator.toFhirResource(provider)).thenReturn(practitioner); when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); - IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, lastUpdated, null)); + IBundleProvider results = practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, + null, null, null, null, null, null, null, null, lastUpdated, null)); List resultList = get(results); @@ -723,8 +723,8 @@ public void shouldReturnEmptyCollectionByWrongLastUpdated() { practitionerDao, practitionerTranslator, globalPropertyService, searchQueryInclude)); when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); - IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, lastUpdated, null)); + IBundleProvider results = practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, + null, null, null, null, null, null, null, null, lastUpdated, null)); List resultList = get(results); @@ -749,8 +749,8 @@ public void shouldAddRelatedResourcesToReturnedResultsWhenReverseIncluded() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); - IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, null, revIncludes)); + IBundleProvider results = practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, + null, null, null, null, null, null, null, null, null, revIncludes)); List resultList = get(results); @@ -775,8 +775,8 @@ public void shouldNotAddRelatedResourcesToReturnedResultsForEmptyReverseInclude( when(practitionerTranslator.toFhirResource(provider)).thenReturn(practitioner); when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); - IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, null, revIncludes)); + IBundleProvider results = practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, + null, null, null, null, null, null, null, null, null, revIncludes)); List resultList = get(results); @@ -805,8 +805,8 @@ public void shouldAddRelatedResourcesFromProviderAndUserWhenReverseIncluded() { when(userPractitionerSearchQueryBundleProvider.getResources(anyInt(), anyInt())) .thenReturn(Arrays.asList(practitioner2, new Encounter())); - IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, null, revIncludes)); + IBundleProvider results = practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, + null, null, null, null, null, null, null, null, null, revIncludes)); List resultList = get(results); diff --git a/api/src/test/java/org/openmrs/module/fhir2/providers/r3/PractitionerFhirResourceProviderTest.java b/api/src/test/java/org/openmrs/module/fhir2/providers/r3/PractitionerFhirResourceProviderTest.java index e2aba5543a..fa4768e799 100644 --- a/api/src/test/java/org/openmrs/module/fhir2/providers/r3/PractitionerFhirResourceProviderTest.java +++ b/api/src/test/java/org/openmrs/module/fhir2/providers/r3/PractitionerFhirResourceProviderTest.java @@ -175,12 +175,12 @@ public void findPractitionersByName_shouldReturnMatchingBundleOfPractitioners() StringAndListParam nameParam = new StringAndListParam() .addAnd(new StringOrListParam().add(new StringParam(GIVEN_NAME))); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, nameParam, null, null, null, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, nameParam, null, null, null, null, null, null, null, null, null, null, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(nameParam, null, null, null, null, null, null, - null, null, null, null, null); + null, null, null, null, null, null); List resultList = get(results); @@ -194,11 +194,11 @@ public void findPractitionersByWrongName_shouldReturnBundleWithEmptyEntries() { StringAndListParam nameParam = new StringAndListParam() .addAnd(new StringOrListParam().add(new StringParam(WRONG_NAME))); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, nameParam, null, null, null, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, nameParam, null, null, null, null, null, null, null, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(nameParam, null, null, null, null, null, null, - null, null, null, null, null); + null, null, null, null, null, null); List resultList = get(results); @@ -209,13 +209,12 @@ public void findPractitionersByWrongName_shouldReturnBundleWithEmptyEntries() { @Test public void findPractitionersByIdentifier_shouldReturnMatchingBundleOfPractitioners() { TokenAndListParam identifier = new TokenAndListParam().addAnd(new TokenOrListParam().add(PRACTITIONER_IDENTIFIER)); - when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(identifier, null, null, null, null, null, null, null, null, null, null, null))) - .thenReturn( - new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners(new PractitionerSearchParams(identifier, null, null, null, null, + null, null, null, null, null, null, null, null))).thenReturn( + new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); - IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(identifier, null, null, null, null, null, null, null, null, null, null, null)); + IBundleProvider results = practitionerService.searchForPractitioners(new PractitionerSearchParams(identifier, null, + null, null, null, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -228,12 +227,12 @@ public void findPractitionersByIdentifier_shouldReturnMatchingBundleOfPractition public void findPractitionersByWrongIdentifier_shouldReturnBundleWithEmptyEntries() { TokenAndListParam identifier = new TokenAndListParam() .addAnd(new TokenOrListParam().add(WRONG_PRACTITIONER_IDENTIFIER)); - when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(identifier, null, null, null, null, null, null, null, null, null, null, null))) - .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners(new PractitionerSearchParams(identifier, null, null, null, null, + null, null, null, null, null, null, null, null))) + .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, identifier, null, null, null, null, null, - null, null, null, null, null); + null, null, null, null, null, null); List resultList = get(results); @@ -245,12 +244,12 @@ public void findPractitionersByWrongIdentifier_shouldReturnBundleWithEmptyEntrie public void findPractitionersByGivenName_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam givenName = new StringAndListParam().addAnd(new StringParam(PRACTITIONER_GIVEN_NAME)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null, null, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, givenName, null, null, null, null, - null, null, null, null, null); + null, null, null, null, null, null); List resultList = get(results); @@ -263,11 +262,11 @@ public void findPractitionersByGivenName_shouldReturnMatchingBundleOfPractitione public void findPractitionersByWrongGivenName_shouldReturnBundleWithEmptyEntries() { StringAndListParam givenName = new StringAndListParam().addAnd(new StringParam(WRONG_GIVEN_NAME)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, givenName, null, null, null, null, - null, null, null, null, null); + null, null, null, null, null, null); List resultList = get(results); @@ -278,13 +277,12 @@ public void findPractitionersByWrongGivenName_shouldReturnBundleWithEmptyEntries @Test public void findPractitionersByFamilyName_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam familyName = new StringAndListParam().addAnd(new StringParam(PRACTITIONER_FAMILY_NAME)); - when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, familyName, null, null, null, null, null, null, null, null))) - .thenReturn( - new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, familyName, null, + null, null, null, null, null, null, null, null))).thenReturn( + new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, familyName, null, null, null, - null, null, null, null, null); + null, null, null, null, null, null); List resultList = get(results); @@ -296,12 +294,12 @@ public void findPractitionersByFamilyName_shouldReturnMatchingBundleOfPractition @Test public void findPractitionersByWrongFamilyName_shouldReturnBundleWithEmptyEntries() { StringAndListParam familyName = new StringAndListParam().addAnd(new StringParam(WRONG_FAMILY_NAME)); - when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, familyName, null, null, null, null, null, null, null, null))) - .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, familyName, null, + null, null, null, null, null, null, null, null))) + .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, familyName, null, null, null, - null, null, null, null, null); + null, null, null, null, null, null); List resultList = get(results); @@ -313,12 +311,12 @@ public void findPractitionersByWrongFamilyName_shouldReturnBundleWithEmptyEntrie public void findPractitionersByAddressCity_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam city = new StringAndListParam().addAnd(new StringParam(CITY)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null, null, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, city, null, null, null, - null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -331,11 +329,11 @@ public void findPractitionersByAddressCity_shouldReturnMatchingBundleOfPractitio public void findPractitionersByWrongAddressCity_shouldReturnBundleWithEmptyEntries() { StringAndListParam city = new StringAndListParam().addAnd(new StringParam(WRONG_CITY)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, city, null, null, null, - null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -347,12 +345,12 @@ public void findPractitionersByWrongAddressCity_shouldReturnBundleWithEmptyEntri public void findPractitionersByAddressState_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam state = new StringAndListParam().addAnd(new StringParam(STATE)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null, null, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, state, null, null, - null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -365,11 +363,11 @@ public void findPractitionersByAddressState_shouldReturnMatchingBundleOfPractiti public void findPractitionersByWrongAddressState_shouldReturnBundleWithEmptyEntries() { StringAndListParam state = new StringAndListParam().addAnd(new StringParam(WRONG_STATE)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, state, null, null, - null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -380,13 +378,12 @@ public void findPractitionersByWrongAddressState_shouldReturnBundleWithEmptyEntr @Test public void findPractitionersByAddressPostalCode_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam postalCode = new StringAndListParam().addAnd(new StringParam(POSTAL_CODE)); - when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, postalCode, null, null, null, null, null))) - .thenReturn( - new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, null, null, null, + postalCode, null, null, null, null, null, null))).thenReturn( + new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, postalCode, - null, null, null, null, null); + null, null, null, null, null, null); List resultList = get(results); @@ -398,12 +395,12 @@ public void findPractitionersByAddressPostalCode_shouldReturnMatchingBundleOfPra @Test public void findPractitionersByWrongAddressPostalCode_shouldReturnBundleWithEmptyEntries() { StringAndListParam postalCode = new StringAndListParam().addAnd(new StringParam(WRONG_POSTAL_CODE)); - when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, postalCode, null, null, null, null, null))) - .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, null, null, null, + postalCode, null, null, null, null, null, null))) + .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, postalCode, - null, null, null, null, null); + null, null, null, null, null, null); List resultList = get(results); @@ -415,12 +412,12 @@ public void findPractitionersByWrongAddressPostalCode_shouldReturnBundleWithEmpt public void findPractitionersByAddressCountry_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam country = new StringAndListParam().addAnd(new StringParam(COUNTRY)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null, null, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, country, - null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -433,11 +430,11 @@ public void findPractitionersByAddressCountry_shouldReturnMatchingBundleOfPracti public void findPractitionersByWrongAddressCountry_shouldReturnBundleWithEmptyEntries() { StringAndListParam country = new StringAndListParam().addAnd(new StringParam(WRONG_COUNTRY)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, country, - null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -449,12 +446,12 @@ public void findPractitionersByWrongAddressCountry_shouldReturnBundleWithEmptyEn public void findPractitionersByUUID_shouldReturnMatchingBundleOfPractitioners() { TokenAndListParam uuid = new TokenAndListParam().addAnd(new TokenParam(PRACTITIONER_UUID)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null, null, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - uuid, null, null, null); + uuid, null, null, null, null); List resultList = get(results); @@ -467,11 +464,11 @@ public void findPractitionersByUUID_shouldReturnMatchingBundleOfPractitioners() public void findPractitionersByWrongUUID_shouldReturnBundleWithEmptyEntries() { TokenAndListParam uuid = new TokenAndListParam().addAnd(new TokenParam(WRONG_PRACTITIONER_UUID)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - uuid, null, null, null); + uuid, null, null, null, null); List resultList = get(results); @@ -482,13 +479,12 @@ public void findPractitionersByWrongUUID_shouldReturnBundleWithEmptyEntries() { @Test public void findPractitionersByLastUpdated_shouldReturnMatchingBundleOfPractitioners() { DateRangeParam lastUpdated = new DateRangeParam().setUpperBound(LAST_UPDATED_DATE).setLowerBound(LAST_UPDATED_DATE); - when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, lastUpdated, null))) - .thenReturn( - new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, null, null, null, + null, null, null, null, null, lastUpdated, null))).thenReturn( + new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - null, null, lastUpdated, null); + null, null, null, lastUpdated, null); List resultList = get(results); @@ -501,12 +497,12 @@ public void findPractitionersByLastUpdated_shouldReturnMatchingBundleOfPractitio public void findPractitionersByWrongLastUpdated_shouldReturnBundleWithEmptyEntries() { DateRangeParam lastUpdated = new DateRangeParam().setUpperBound(WRONG_LAST_UPDATED_DATE) .setLowerBound(WRONG_LAST_UPDATED_DATE); - when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, lastUpdated, null))) - .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, null, null, null, + null, null, null, null, null, lastUpdated, null))) + .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - null, null, lastUpdated, null); + null, null, null, lastUpdated, null); List resultList = get(results); @@ -519,13 +515,12 @@ public void findPractitioners_shouldAddRelatedResourcesWhenReverseIncluded() { HashSet revIncludes = new HashSet<>(); revIncludes.add(new Include("Encounter:participant")); - when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, null, revIncludes))) - .thenReturn( - new MockIBundleProvider<>(Arrays.asList(practitioner, new Encounter()), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, null, null, null, + null, null, null, null, null, null, revIncludes))).thenReturn( + new MockIBundleProvider<>(Arrays.asList(practitioner, new Encounter()), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - null, null, null, revIncludes); + null, null, null, null, revIncludes); List resultList = get(results); @@ -541,12 +536,12 @@ public void findPractitioners_shouldNotAddRelatedResourcesForEmptyReverseInclude HashSet revIncludes = new HashSet<>(); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, null, null, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - null, null, null, revIncludes); + null, null, null, null, revIncludes); List resultList = get(results); diff --git a/api/src/test/java/org/openmrs/module/fhir2/providers/r4/PractitionerFhirResourceProviderTest.java b/api/src/test/java/org/openmrs/module/fhir2/providers/r4/PractitionerFhirResourceProviderTest.java index fb75736bc7..9a706d656e 100644 --- a/api/src/test/java/org/openmrs/module/fhir2/providers/r4/PractitionerFhirResourceProviderTest.java +++ b/api/src/test/java/org/openmrs/module/fhir2/providers/r4/PractitionerFhirResourceProviderTest.java @@ -172,12 +172,12 @@ public void findPractitionersByName_shouldReturnMatchingBundleOfPractitioners() StringAndListParam nameParam = new StringAndListParam() .addAnd(new StringOrListParam().add(new StringParam(GIVEN_NAME))); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, nameParam, null, null, null, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, nameParam, null, null, null, null, null, null, null, null, null, null, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(nameParam, null, null, null, null, null, null, - null, null, null, null, null); + null, null, null, null, null, null); List resultList = get(results); @@ -191,11 +191,11 @@ public void findPractitionersByWrongName_shouldReturnBundleWithEmptyEntries() { StringAndListParam nameParam = new StringAndListParam() .addAnd(new StringOrListParam().add(new StringParam(WRONG_NAME))); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, nameParam, null, null, null, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, nameParam, null, null, null, null, null, null, null, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(nameParam, null, null, null, null, null, null, - null, null, null, null, null); + null, null, null, null, null, null); List resultList = get(results); @@ -206,13 +206,12 @@ public void findPractitionersByWrongName_shouldReturnBundleWithEmptyEntries() { @Test public void findPractitionersByIdentifier_shouldReturnMatchingBundleOfPractitioners() { TokenAndListParam identifier = new TokenAndListParam().addAnd(new TokenOrListParam().add(PRACTITIONER_IDENTIFIER)); - when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(identifier, null, null, null, null, null, null, null, null, null, null, null))) - .thenReturn( - new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners(new PractitionerSearchParams(identifier, null, null, null, null, + null, null, null, null, null, null, null, null))).thenReturn( + new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, identifier, null, null, null, null, null, - null, null, null, null, null); + null, null, null, null, null, null); List resultList = get(results); @@ -225,12 +224,12 @@ public void findPractitionersByIdentifier_shouldReturnMatchingBundleOfPractition public void findPractitionersByWrongIdentifier_shouldReturnBundleWithEmptyEntries() { TokenAndListParam identifier = new TokenAndListParam() .addAnd(new TokenOrListParam().add(WRONG_PRACTITIONER_IDENTIFIER)); - when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(identifier, null, null, null, null, null, null, null, null, null, null, null))) - .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners(new PractitionerSearchParams(identifier, null, null, null, null, + null, null, null, null, null, null, null, null))) + .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, identifier, null, null, null, null, null, - null, null, null, null, null); + null, null, null, null, null, null); List resultList = get(results); @@ -242,12 +241,12 @@ public void findPractitionersByWrongIdentifier_shouldReturnBundleWithEmptyEntrie public void findPractitionersByGivenName_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam givenName = new StringAndListParam().addAnd(new StringParam(PRACTITIONER_GIVEN_NAME)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null, null, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, givenName, null, null, null, null, - null, null, null, null, null); + null, null, null, null, null, null); List resultList = get(results); @@ -260,11 +259,11 @@ public void findPractitionersByGivenName_shouldReturnMatchingBundleOfPractitione public void findPractitionersByWrongGivenName_shouldReturnBundleWithEmptyEntries() { StringAndListParam givenName = new StringAndListParam().addAnd(new StringParam(WRONG_GIVEN_NAME)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, givenName, null, null, null, null, - null, null, null, null, null); + null, null, null, null, null, null); List resultList = get(results); @@ -275,13 +274,12 @@ public void findPractitionersByWrongGivenName_shouldReturnBundleWithEmptyEntries @Test public void findPractitionersByFamilyName_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam familyName = new StringAndListParam().addAnd(new StringParam(PRACTITIONER_FAMILY_NAME)); - when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, familyName, null, null, null, null, null, null, null, null))) - .thenReturn( - new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, familyName, null, + null, null, null, null, null, null, null, null))).thenReturn( + new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, familyName, null, null, null, - null, null, null, null, null); + null, null, null, null, null, null); List resultList = get(results); @@ -293,12 +291,12 @@ public void findPractitionersByFamilyName_shouldReturnMatchingBundleOfPractition @Test public void findPractitionersByWrongFamilyName_shouldReturnBundleWithEmptyEntries() { StringAndListParam familyName = new StringAndListParam().addAnd(new StringParam(WRONG_FAMILY_NAME)); - when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, familyName, null, null, null, null, null, null, null, null))) - .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, familyName, null, + null, null, null, null, null, null, null, null))) + .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, familyName, null, null, null, - null, null, null, null, null); + null, null, null, null, null, null); List resultList = get(results); @@ -310,12 +308,12 @@ public void findPractitionersByWrongFamilyName_shouldReturnBundleWithEmptyEntrie public void findPractitionersByAddressCity_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam city = new StringAndListParam().addAnd(new StringParam(CITY)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null, null, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, city, null, null, null, - null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -328,11 +326,11 @@ public void findPractitionersByAddressCity_shouldReturnMatchingBundleOfPractitio public void findPractitionersByWrongAddressCity_shouldReturnBundleWithEmptyEntries() { StringAndListParam city = new StringAndListParam().addAnd(new StringParam(WRONG_CITY)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, city, null, null, null, - null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -344,12 +342,12 @@ public void findPractitionersByWrongAddressCity_shouldReturnBundleWithEmptyEntri public void findPractitionersByAddressState_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam state = new StringAndListParam().addAnd(new StringParam(STATE)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null, null, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, state, null, null, - null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -362,11 +360,11 @@ public void findPractitionersByAddressState_shouldReturnMatchingBundleOfPractiti public void findPractitionersByWrongAddressState_shouldReturnBundleWithEmptyEntries() { StringAndListParam state = new StringAndListParam().addAnd(new StringParam(WRONG_STATE)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, state, null, null, - null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -377,13 +375,12 @@ public void findPractitionersByWrongAddressState_shouldReturnBundleWithEmptyEntr @Test public void findPractitionersByAddressPostalCode_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam postalCode = new StringAndListParam().addAnd(new StringParam(POSTAL_CODE)); - when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, postalCode, null, null, null, null, null))) - .thenReturn( - new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, null, null, null, + postalCode, null, null, null, null, null, null))).thenReturn( + new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, postalCode, - null, null, null, null, null); + null, null, null, null, null, null); List resultList = get(results); @@ -395,12 +392,12 @@ public void findPractitionersByAddressPostalCode_shouldReturnMatchingBundleOfPra @Test public void findPractitionersByWrongAddressPostalCode_shouldReturnBundleWithEmptyEntries() { StringAndListParam postalCode = new StringAndListParam().addAnd(new StringParam(WRONG_POSTAL_CODE)); - when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, postalCode, null, null, null, null, null))) - .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, null, null, null, + postalCode, null, null, null, null, null, null))) + .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); - IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, postalCode, - null, null, null, null, null); + IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, + postalCode, null, null, null, null, null); List resultList = get(results); @@ -412,12 +409,12 @@ public void findPractitionersByWrongAddressPostalCode_shouldReturnBundleWithEmpt public void findPractitionersByAddressCountry_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam country = new StringAndListParam().addAnd(new StringParam(COUNTRY)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null, null, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, country, - null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -430,11 +427,11 @@ public void findPractitionersByAddressCountry_shouldReturnMatchingBundleOfPracti public void findPractitionersByWrongAddressCountry_shouldReturnBundleWithEmptyEntries() { StringAndListParam country = new StringAndListParam().addAnd(new StringParam(WRONG_COUNTRY)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, country, - null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -446,12 +443,12 @@ public void findPractitionersByWrongAddressCountry_shouldReturnBundleWithEmptyEn public void findPractitionersByUUID_shouldReturnMatchingBundleOfPractitioners() { TokenAndListParam uuid = new TokenAndListParam().addAnd(new TokenParam(PRACTITIONER_UUID)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null, null, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - uuid, null, null, null); + uuid, null, null, null, null); List resultList = get(results); @@ -464,11 +461,11 @@ public void findPractitionersByUUID_shouldReturnMatchingBundleOfPractitioners() public void findPractitionersByWrongUUID_shouldReturnBundleWithEmptyEntries() { TokenAndListParam uuid = new TokenAndListParam().addAnd(new TokenParam(WRONG_PRACTITIONER_UUID)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - uuid, null, null, null); + uuid, null, null, null, null); List resultList = get(results); @@ -479,13 +476,12 @@ public void findPractitionersByWrongUUID_shouldReturnBundleWithEmptyEntries() { @Test public void findPractitionersByLastUpdated_shouldReturnMatchingBundleOfPractitioners() { DateRangeParam lastUpdated = new DateRangeParam().setUpperBound(LAST_UPDATED_DATE).setLowerBound(LAST_UPDATED_DATE); - when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, lastUpdated, null))) - .thenReturn( - new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, null, null, null, + null, null, null, null, null, lastUpdated, null))).thenReturn( + new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - null, null, lastUpdated, null); + null, null, null, lastUpdated, null); List resultList = get(results); @@ -498,12 +494,12 @@ public void findPractitionersByLastUpdated_shouldReturnMatchingBundleOfPractitio public void findPractitionersByWrongLastUpdated_shouldReturnBundleWithEmptyEntries() { DateRangeParam lastUpdated = new DateRangeParam().setUpperBound(WRONG_LAST_UPDATED_DATE) .setLowerBound(WRONG_LAST_UPDATED_DATE); - when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, lastUpdated, null))) - .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, null, null, null, + null, null, null, null, null, lastUpdated, null))) + .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - null, null, lastUpdated, null); + null, null, null, lastUpdated, null); List resultList = get(results); @@ -516,13 +512,12 @@ public void findPractitioners_shouldAddRelatedResourcesWhenReverseIncluded() { HashSet revIncludes = new HashSet<>(); revIncludes.add(new Include("Encounter:participant")); - when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, null, revIncludes))) - .thenReturn( - new MockIBundleProvider<>(Arrays.asList(practitioner, new Encounter()), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, null, null, null, + null, null, null, null, null, null, revIncludes))).thenReturn( + new MockIBundleProvider<>(Arrays.asList(practitioner, new Encounter()), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - null, null, null, revIncludes); + null, null, null, null, revIncludes); List resultList = get(results); @@ -538,12 +533,12 @@ public void findPractitioners_shouldNotAddRelatedResourcesForEmptyReverseInclude HashSet revIncludes = new HashSet<>(); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, null, null, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - null, null, null, revIncludes); + null, null, null, null, revIncludes); List resultList = get(results); diff --git a/pom.xml b/pom.xml index 8fb90967c8..13c5f79807 100644 --- a/pom.xml +++ b/pom.xml @@ -787,7 +787,7 @@ - + org.jacoco jacoco-maven-plugin From d43f85adc7717bb51f5fe58332cefd6363b7ed4b Mon Sep 17 00:00:00 2001 From: mogoodrich Date: Tue, 8 Oct 2024 18:08:44 -0400 Subject: [PATCH 3/4] Revert "FM2-646: Practitioner: support limiting search to users or providers" This reverts commit 6eaa03aa260cfbe2463b67163f5cfd4d055c6b87. --- .../openmrs/module/fhir2/FhirConstants.java | 2 - .../api/dao/impl/BasePractitionerDao.java | 20 --- .../api/impl/FhirPractitionerServiceImpl.java | 1 - .../param/PractitionerSearchParams.java | 9 +- .../r3/PractitionerFhirResourceProvider.java | 4 +- .../r4/PractitionerFhirResourceProvider.java | 4 +- .../impl/FhirPractitionerServiceImplTest.java | 80 +++++------ .../PractitionerFhirResourceProviderTest.java | 131 +++++++++--------- .../PractitionerFhirResourceProviderTest.java | 131 +++++++++--------- pom.xml | 4 +- 10 files changed, 182 insertions(+), 204 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/fhir2/FhirConstants.java b/api/src/main/java/org/openmrs/module/fhir2/FhirConstants.java index 26808e0a15..caeef833e5 100644 --- a/api/src/main/java/org/openmrs/module/fhir2/FhirConstants.java +++ b/api/src/main/java/org/openmrs/module/fhir2/FhirConstants.java @@ -285,8 +285,6 @@ private FhirConstants() { public static final String ENCOUNTER_TYPE_REFERENCE_SEARCH_HANDLER = "type.reference.search.handler"; - public static final String PROVIDER_ROLE_SEARCH_HANDLER = "providerRole.search.handler"; - public static final String ID_PROPERTY = "_id.property"; public static final String LAST_UPDATED_PROPERTY = "_lastUpdated.property"; diff --git a/api/src/main/java/org/openmrs/module/fhir2/api/dao/impl/BasePractitionerDao.java b/api/src/main/java/org/openmrs/module/fhir2/api/dao/impl/BasePractitionerDao.java index 7bad11b691..602d7318c6 100644 --- a/api/src/main/java/org/openmrs/module/fhir2/api/dao/impl/BasePractitionerDao.java +++ b/api/src/main/java/org/openmrs/module/fhir2/api/dao/impl/BasePractitionerDao.java @@ -9,15 +9,8 @@ */ package org.openmrs.module.fhir2.api.dao.impl; -import static org.hibernate.criterion.Restrictions.eq; - -import java.util.Optional; - -import ca.uhn.fhir.rest.param.StringOrListParam; -import ca.uhn.fhir.rest.param.StringParam; import ca.uhn.fhir.rest.param.TokenAndListParam; import org.hibernate.Criteria; -import org.hibernate.criterion.Criterion; import org.openmrs.Auditable; import org.openmrs.OpenmrsObject; import org.openmrs.module.fhir2.FhirConstants; @@ -44,8 +37,6 @@ protected void setupSearchParams(Criteria criteria, SearchParameterMap theParams case FhirConstants.ADDRESS_SEARCH_HANDLER: handleAddresses(criteria, entry); break; - case FhirConstants.PROVIDER_ROLE_SEARCH_HANDLER: - handlerProviderRoles(criteria, (StringOrListParam) entry.getValue()); case FhirConstants.COMMON_SEARCH_HANDLER: handleCommonSearchParameters(entry.getValue()).ifPresent(criteria::add); break; @@ -55,17 +46,6 @@ protected void setupSearchParams(Criteria criteria, SearchParameterMap theParams protected abstract void handleIdentifier(Criteria criteria, TokenAndListParam identifier); - protected void handlerProviderRoles(Criteria criteria, StringOrListParam providerRole) { - handleOrListParam(providerRole, param -> handleProviderRole(criteria, param)).ifPresent(criteria::add); - } - - protected Optional handleProviderRole(Criteria criteria, StringParam providerRole) { - if (lacksAlias(criteria, "pr")) { - criteria.createAlias("providerRole", "pr"); - } - return Optional.of(eq("pr.uuid", providerRole)); - } - @Override protected String getSqlAlias() { return "p_"; diff --git a/api/src/main/java/org/openmrs/module/fhir2/api/impl/FhirPractitionerServiceImpl.java b/api/src/main/java/org/openmrs/module/fhir2/api/impl/FhirPractitionerServiceImpl.java index c94a5c5f37..07b2b0c81e 100644 --- a/api/src/main/java/org/openmrs/module/fhir2/api/impl/FhirPractitionerServiceImpl.java +++ b/api/src/main/java/org/openmrs/module/fhir2/api/impl/FhirPractitionerServiceImpl.java @@ -101,7 +101,6 @@ public IBundleProvider searchForPractitioners(PractitionerSearchParams practitio IBundleProvider providerBundle = null; IBundleProvider userBundle = null; - // TODO only search for providers if we have a provider roles tag if (shouldSearchExplicitlyFor(practitionerSearchParams.getTag(), "provider")) { providerBundle = searchQuery.getQueryResults(practitionerSearchParams.toSearchParameterMap(), dao, translator, searchQueryInclude); diff --git a/api/src/main/java/org/openmrs/module/fhir2/api/search/param/PractitionerSearchParams.java b/api/src/main/java/org/openmrs/module/fhir2/api/search/param/PractitionerSearchParams.java index 551a916955..19fb02da6b 100644 --- a/api/src/main/java/org/openmrs/module/fhir2/api/search/param/PractitionerSearchParams.java +++ b/api/src/main/java/org/openmrs/module/fhir2/api/search/param/PractitionerSearchParams.java @@ -14,7 +14,6 @@ import ca.uhn.fhir.model.api.Include; import ca.uhn.fhir.rest.param.DateRangeParam; import ca.uhn.fhir.rest.param.StringAndListParam; -import ca.uhn.fhir.rest.param.StringOrListParam; import ca.uhn.fhir.rest.param.TokenAndListParam; import lombok.Builder; import lombok.Data; @@ -43,15 +42,13 @@ public class PractitionerSearchParams extends BaseResourceSearchParams { private StringAndListParam country; - private StringOrListParam providerRole; - private TokenAndListParam tag; @Builder public PractitionerSearchParams(TokenAndListParam identifier, StringAndListParam name, StringAndListParam given, StringAndListParam family, StringAndListParam city, StringAndListParam state, StringAndListParam postalCode, - StringAndListParam country, TokenAndListParam id, StringOrListParam providerRole, TokenAndListParam tag, - DateRangeParam lastUpdated, HashSet revIncludes) { + StringAndListParam country, TokenAndListParam id, TokenAndListParam tag, DateRangeParam lastUpdated, + HashSet revIncludes) { super(id, lastUpdated, null, null, revIncludes); @@ -63,7 +60,6 @@ public PractitionerSearchParams(TokenAndListParam identifier, StringAndListParam this.state = state; this.postalCode = postalCode; this.country = country; - this.providerRole = providerRole; this.tag = tag; } @@ -77,7 +73,6 @@ public SearchParameterMap toSearchParameterMap() { .addParameter(FhirConstants.STATE_SEARCH_HANDLER, getState()) .addParameter(FhirConstants.POSTALCODE_SEARCH_HANDLER, getPostalCode()) .addParameter(FhirConstants.COUNTRY_SEARCH_HANDLER, getCountry()) - .addParameter(FhirConstants.PROVIDER_ROLE_SEARCH_HANDLER, getProviderRole()) .addParameter(FhirConstants.TAG_SEARCH_HANDLER, getTag()); } } diff --git a/api/src/main/java/org/openmrs/module/fhir2/providers/r3/PractitionerFhirResourceProvider.java b/api/src/main/java/org/openmrs/module/fhir2/providers/r3/PractitionerFhirResourceProvider.java index d8b23eb7bc..e4dadb8cec 100644 --- a/api/src/main/java/org/openmrs/module/fhir2/providers/r3/PractitionerFhirResourceProvider.java +++ b/api/src/main/java/org/openmrs/module/fhir2/providers/r3/PractitionerFhirResourceProvider.java @@ -29,7 +29,6 @@ import ca.uhn.fhir.rest.api.server.IBundleProvider; import ca.uhn.fhir.rest.param.DateRangeParam; import ca.uhn.fhir.rest.param.StringAndListParam; -import ca.uhn.fhir.rest.param.StringOrListParam; import ca.uhn.fhir.rest.param.TokenAndListParam; import ca.uhn.fhir.rest.server.IResourceProvider; import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException; @@ -114,7 +113,6 @@ public IBundleProvider searchForPractitioners(@OptionalParam(name = Practitioner @OptionalParam(name = Practitioner.SP_ADDRESS_POSTALCODE) StringAndListParam postalCode, @OptionalParam(name = Practitioner.SP_ADDRESS_COUNTRY) StringAndListParam country, @OptionalParam(name = Practitioner.SP_RES_ID) TokenAndListParam id, - @OptionalParam(name = "providerRole") StringOrListParam providerRole, @OptionalParam(name = "_tag") TokenAndListParam tag, @OptionalParam(name = "_lastUpdated") DateRangeParam lastUpdated, @IncludeParam(reverse = true, allow = { "Encounter:" + Encounter.SP_PARTICIPANT, @@ -127,7 +125,7 @@ public IBundleProvider searchForPractitioners(@OptionalParam(name = Practitioner return new SearchQueryBundleProviderR3Wrapper( practitionerService.searchForPractitioners(new PractitionerSearchParams(identifier, name, given, family, - city, state, postalCode, country, id, providerRole, tag, lastUpdated, revIncludes))); + city, state, postalCode, country, id, tag, lastUpdated, revIncludes))); } } diff --git a/api/src/main/java/org/openmrs/module/fhir2/providers/r4/PractitionerFhirResourceProvider.java b/api/src/main/java/org/openmrs/module/fhir2/providers/r4/PractitionerFhirResourceProvider.java index c07e1192b1..b3e9e0c5fe 100644 --- a/api/src/main/java/org/openmrs/module/fhir2/providers/r4/PractitionerFhirResourceProvider.java +++ b/api/src/main/java/org/openmrs/module/fhir2/providers/r4/PractitionerFhirResourceProvider.java @@ -32,7 +32,6 @@ import ca.uhn.fhir.rest.api.server.RequestDetails; import ca.uhn.fhir.rest.param.DateRangeParam; import ca.uhn.fhir.rest.param.StringAndListParam; -import ca.uhn.fhir.rest.param.StringOrListParam; import ca.uhn.fhir.rest.param.TokenAndListParam; import ca.uhn.fhir.rest.server.IResourceProvider; import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException; @@ -123,7 +122,6 @@ public IBundleProvider searchForPractitioners(@OptionalParam(name = Practitioner @OptionalParam(name = Practitioner.SP_ADDRESS_POSTALCODE) StringAndListParam postalCode, @OptionalParam(name = Practitioner.SP_ADDRESS_COUNTRY) StringAndListParam country, @OptionalParam(name = Practitioner.SP_RES_ID) TokenAndListParam id, - @OptionalParam(name = "providerRole") StringOrListParam providerRole, @OptionalParam(name = "_tag") TokenAndListParam tag, @OptionalParam(name = "_lastUpdated") DateRangeParam lastUpdated, @IncludeParam(reverse = true, allow = { "Encounter:" + Encounter.SP_PARTICIPANT, @@ -134,6 +132,6 @@ public IBundleProvider searchForPractitioners(@OptionalParam(name = Practitioner } return practitionerService.searchForPractitioners(new PractitionerSearchParams(identifier, name, given, family, city, - state, postalCode, country, id, providerRole, tag, lastUpdated, revIncludes)); + state, postalCode, country, id, tag, lastUpdated, revIncludes)); } } diff --git a/api/src/test/java/org/openmrs/module/fhir2/api/impl/FhirPractitionerServiceImplTest.java b/api/src/test/java/org/openmrs/module/fhir2/api/impl/FhirPractitionerServiceImplTest.java index 47ef504491..fcc1b134a5 100644 --- a/api/src/test/java/org/openmrs/module/fhir2/api/impl/FhirPractitionerServiceImplTest.java +++ b/api/src/test/java/org/openmrs/module/fhir2/api/impl/FhirPractitionerServiceImplTest.java @@ -221,7 +221,7 @@ public void shouldSearchForPractitionersByNameWhoIsProvider() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, name, null, null, null, null, null, null, null, null, null, null, null)); + new PractitionerSearchParams(null, name, null, null, null, null, null, null, null, null, null, null)); List resultList = get(results); assertThat(results, notNullValue()); @@ -240,7 +240,7 @@ public void shouldSearchForPractitionersByNameWhoIsUser() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider(practitioner2)); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, name, null, null, null, null, null, null, null, null, null, null, null)); + new PractitionerSearchParams(null, name, null, null, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -264,7 +264,7 @@ public void shouldSearchForPractitionersByNameWhoIsUserAndProvider() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider(practitioner2)); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, name, null, null, null, null, null, null, null, null, null, null, null)); + new PractitionerSearchParams(null, name, null, null, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -284,7 +284,7 @@ public void shouldReturnEmptyCollectionByWrongName() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, name, null, null, null, null, null, null, null, null, null, null, null)); + new PractitionerSearchParams(null, name, null, null, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -305,8 +305,8 @@ public void shouldSearchForPractitionersByIdentifier() { when(practitionerTranslator.toFhirResource(provider)).thenReturn(practitioner); when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); - IBundleProvider results = practitionerService.searchForPractitioners(new PractitionerSearchParams(identifier, null, - null, null, null, null, null, null, null, null, null, null, null)); + IBundleProvider results = practitionerService.searchForPractitioners( + new PractitionerSearchParams(identifier, null, null, null, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -326,8 +326,8 @@ public void shouldReturnEmptyCollectionByWrongIdentifier() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); - IBundleProvider results = practitionerService.searchForPractitioners(new PractitionerSearchParams(identifier, null, - null, null, null, null, null, null, null, null, null, null, null)); + IBundleProvider results = practitionerService.searchForPractitioners( + new PractitionerSearchParams(identifier, null, null, null, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -351,7 +351,7 @@ public void shouldSearchForPractitionersByGivenNameWhoIsUserAndProvider() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider(practitioner2)); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null, null, null)); + new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -373,7 +373,7 @@ public void shouldReturnEmptyCollectionByWrongGivenName() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null, null, null)); + new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -395,8 +395,8 @@ public void shouldSearchForPractitionersByFamilyNameWhoIsProvider() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); - IBundleProvider results = practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, - familyName, null, null, null, null, null, null, null, null, null)); + IBundleProvider results = practitionerService.searchForPractitioners( + new PractitionerSearchParams(null, null, null, familyName, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -415,8 +415,8 @@ public void shouldSearchForPractitionersByFamilyNameWhoIsUser() { practitionerDao, practitionerTranslator, globalPropertyService, searchQueryInclude)); when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider(practitioner2)); - IBundleProvider results = practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, - familyName, null, null, null, null, null, null, null, null, null)); + IBundleProvider results = practitionerService.searchForPractitioners( + new PractitionerSearchParams(null, null, null, familyName, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -439,8 +439,8 @@ public void shouldSearchForPractitionersByFamilyNameWhoIsUserAndProvider() { when(practitionerTranslator.toFhirResource(provider)).thenReturn(practitioner); when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider(practitioner2)); - IBundleProvider results = practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, - familyName, null, null, null, null, null, null, null, null, null)); + IBundleProvider results = practitionerService.searchForPractitioners( + new PractitionerSearchParams(null, null, null, familyName, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -460,8 +460,8 @@ public void shouldReturnEmptyCollectionByWrongFamilyName() { practitionerDao, practitionerTranslator, globalPropertyService, searchQueryInclude)); when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); - IBundleProvider results = practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, - familyName, null, null, null, null, null, null, null, null, null)); + IBundleProvider results = practitionerService.searchForPractitioners( + new PractitionerSearchParams(null, null, null, familyName, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -483,7 +483,7 @@ public void shouldSearchForPractitionersByAddressCity() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null, null, null)); + new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null, null)); List resultList = get(results); @@ -504,7 +504,7 @@ public void shouldReturnEmptyCollectionByWrongAddressCity() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null, null, null)); + new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null, null)); List resultList = get(results); @@ -526,7 +526,7 @@ public void shouldSearchForPractitionersByAddressState() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null, null, null)); + new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null, null)); List resultList = get(results); @@ -547,7 +547,7 @@ public void shouldReturnEmptyCollectionByWrongAddressState() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null, null, null)); + new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null, null)); List resultList = get(results); @@ -568,8 +568,8 @@ public void shouldSearchForPractitionersByAddressPostalCode() { when(practitionerTranslator.toFhirResource(provider)).thenReturn(practitioner); when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); - IBundleProvider results = practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, - null, null, null, postalCode, null, null, null, null, null, null)); + IBundleProvider results = practitionerService.searchForPractitioners( + new PractitionerSearchParams(null, null, null, null, null, null, postalCode, null, null, null, null, null)); List resultList = get(results); @@ -589,8 +589,8 @@ public void shouldReturnEmptyCollectionByWrongAddressPostalCode() { practitionerDao, practitionerTranslator, globalPropertyService, searchQueryInclude)); when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); - IBundleProvider results = practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, - null, null, null, postalCode, null, null, null, null, null, null)); + IBundleProvider results = practitionerService.searchForPractitioners( + new PractitionerSearchParams(null, null, null, null, null, null, postalCode, null, null, null, null, null)); List resultList = get(results); @@ -612,7 +612,7 @@ public void shouldSearchForPractitionersByAddressCountry() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null, null, null)); + new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null, null)); List resultList = get(results); @@ -633,7 +633,7 @@ public void shouldReturnEmptyCollectionByWrongAddressCountry() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null, null, null)); + new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null, null)); List resultList = get(results); @@ -656,7 +656,7 @@ public void shouldSearchForPractitionersByUUID() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null, null, null)); + new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null, null)); List resultList = get(results); @@ -678,7 +678,7 @@ public void shouldReturnEmptyCollectionByWrongUUID() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); IBundleProvider results = practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null, null, null)); + new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null, null)); List resultList = get(results); @@ -700,8 +700,8 @@ public void shouldSearchForPractitionersByLastUpdated() { when(practitionerTranslator.toFhirResource(provider)).thenReturn(practitioner); when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); - IBundleProvider results = practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, - null, null, null, null, null, null, null, null, lastUpdated, null)); + IBundleProvider results = practitionerService.searchForPractitioners( + new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, lastUpdated, null)); List resultList = get(results); @@ -723,8 +723,8 @@ public void shouldReturnEmptyCollectionByWrongLastUpdated() { practitionerDao, practitionerTranslator, globalPropertyService, searchQueryInclude)); when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); - IBundleProvider results = practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, - null, null, null, null, null, null, null, null, lastUpdated, null)); + IBundleProvider results = practitionerService.searchForPractitioners( + new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, lastUpdated, null)); List resultList = get(results); @@ -749,8 +749,8 @@ public void shouldAddRelatedResourcesToReturnedResultsWhenReverseIncluded() { when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); - IBundleProvider results = practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, - null, null, null, null, null, null, null, null, null, revIncludes)); + IBundleProvider results = practitionerService.searchForPractitioners( + new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, null, revIncludes)); List resultList = get(results); @@ -775,8 +775,8 @@ public void shouldNotAddRelatedResourcesToReturnedResultsForEmptyReverseInclude( when(practitionerTranslator.toFhirResource(provider)).thenReturn(practitioner); when(userService.searchForUsers(any())).thenReturn(new SimpleBundleProvider()); - IBundleProvider results = practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, - null, null, null, null, null, null, null, null, null, revIncludes)); + IBundleProvider results = practitionerService.searchForPractitioners( + new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, null, revIncludes)); List resultList = get(results); @@ -805,8 +805,8 @@ public void shouldAddRelatedResourcesFromProviderAndUserWhenReverseIncluded() { when(userPractitionerSearchQueryBundleProvider.getResources(anyInt(), anyInt())) .thenReturn(Arrays.asList(practitioner2, new Encounter())); - IBundleProvider results = practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, - null, null, null, null, null, null, null, null, null, revIncludes)); + IBundleProvider results = practitionerService.searchForPractitioners( + new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, null, revIncludes)); List resultList = get(results); diff --git a/api/src/test/java/org/openmrs/module/fhir2/providers/r3/PractitionerFhirResourceProviderTest.java b/api/src/test/java/org/openmrs/module/fhir2/providers/r3/PractitionerFhirResourceProviderTest.java index fa4768e799..e2aba5543a 100644 --- a/api/src/test/java/org/openmrs/module/fhir2/providers/r3/PractitionerFhirResourceProviderTest.java +++ b/api/src/test/java/org/openmrs/module/fhir2/providers/r3/PractitionerFhirResourceProviderTest.java @@ -175,12 +175,12 @@ public void findPractitionersByName_shouldReturnMatchingBundleOfPractitioners() StringAndListParam nameParam = new StringAndListParam() .addAnd(new StringOrListParam().add(new StringParam(GIVEN_NAME))); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, nameParam, null, null, null, null, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, nameParam, null, null, null, null, null, null, null, null, null, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(nameParam, null, null, null, null, null, null, - null, null, null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -194,11 +194,11 @@ public void findPractitionersByWrongName_shouldReturnBundleWithEmptyEntries() { StringAndListParam nameParam = new StringAndListParam() .addAnd(new StringOrListParam().add(new StringParam(WRONG_NAME))); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, nameParam, null, null, null, null, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, nameParam, null, null, null, null, null, null, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(nameParam, null, null, null, null, null, null, - null, null, null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -209,12 +209,13 @@ public void findPractitionersByWrongName_shouldReturnBundleWithEmptyEntries() { @Test public void findPractitionersByIdentifier_shouldReturnMatchingBundleOfPractitioners() { TokenAndListParam identifier = new TokenAndListParam().addAnd(new TokenOrListParam().add(PRACTITIONER_IDENTIFIER)); - when(practitionerService.searchForPractitioners(new PractitionerSearchParams(identifier, null, null, null, null, - null, null, null, null, null, null, null, null))).thenReturn( - new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners( + new PractitionerSearchParams(identifier, null, null, null, null, null, null, null, null, null, null, null))) + .thenReturn( + new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); - IBundleProvider results = practitionerService.searchForPractitioners(new PractitionerSearchParams(identifier, null, - null, null, null, null, null, null, null, null, null, null, null)); + IBundleProvider results = practitionerService.searchForPractitioners( + new PractitionerSearchParams(identifier, null, null, null, null, null, null, null, null, null, null, null)); List resultList = get(results); @@ -227,12 +228,12 @@ public void findPractitionersByIdentifier_shouldReturnMatchingBundleOfPractition public void findPractitionersByWrongIdentifier_shouldReturnBundleWithEmptyEntries() { TokenAndListParam identifier = new TokenAndListParam() .addAnd(new TokenOrListParam().add(WRONG_PRACTITIONER_IDENTIFIER)); - when(practitionerService.searchForPractitioners(new PractitionerSearchParams(identifier, null, null, null, null, - null, null, null, null, null, null, null, null))) - .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners( + new PractitionerSearchParams(identifier, null, null, null, null, null, null, null, null, null, null, null))) + .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, identifier, null, null, null, null, null, - null, null, null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -244,12 +245,12 @@ public void findPractitionersByWrongIdentifier_shouldReturnBundleWithEmptyEntrie public void findPractitionersByGivenName_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam givenName = new StringAndListParam().addAnd(new StringParam(PRACTITIONER_GIVEN_NAME)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, givenName, null, null, null, null, - null, null, null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -262,11 +263,11 @@ public void findPractitionersByGivenName_shouldReturnMatchingBundleOfPractitione public void findPractitionersByWrongGivenName_shouldReturnBundleWithEmptyEntries() { StringAndListParam givenName = new StringAndListParam().addAnd(new StringParam(WRONG_GIVEN_NAME)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, givenName, null, null, null, null, - null, null, null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -277,12 +278,13 @@ public void findPractitionersByWrongGivenName_shouldReturnBundleWithEmptyEntries @Test public void findPractitionersByFamilyName_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam familyName = new StringAndListParam().addAnd(new StringParam(PRACTITIONER_FAMILY_NAME)); - when(practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, familyName, null, - null, null, null, null, null, null, null, null))).thenReturn( - new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners( + new PractitionerSearchParams(null, null, null, familyName, null, null, null, null, null, null, null, null))) + .thenReturn( + new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, familyName, null, null, null, - null, null, null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -294,12 +296,12 @@ public void findPractitionersByFamilyName_shouldReturnMatchingBundleOfPractition @Test public void findPractitionersByWrongFamilyName_shouldReturnBundleWithEmptyEntries() { StringAndListParam familyName = new StringAndListParam().addAnd(new StringParam(WRONG_FAMILY_NAME)); - when(practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, familyName, null, - null, null, null, null, null, null, null, null))) - .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners( + new PractitionerSearchParams(null, null, null, familyName, null, null, null, null, null, null, null, null))) + .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, familyName, null, null, null, - null, null, null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -311,12 +313,12 @@ public void findPractitionersByWrongFamilyName_shouldReturnBundleWithEmptyEntrie public void findPractitionersByAddressCity_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam city = new StringAndListParam().addAnd(new StringParam(CITY)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, city, null, null, null, - null, null, null, null, null); + null, null, null, null); List resultList = get(results); @@ -329,11 +331,11 @@ public void findPractitionersByAddressCity_shouldReturnMatchingBundleOfPractitio public void findPractitionersByWrongAddressCity_shouldReturnBundleWithEmptyEntries() { StringAndListParam city = new StringAndListParam().addAnd(new StringParam(WRONG_CITY)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, city, null, null, null, - null, null, null, null, null); + null, null, null, null); List resultList = get(results); @@ -345,12 +347,12 @@ public void findPractitionersByWrongAddressCity_shouldReturnBundleWithEmptyEntri public void findPractitionersByAddressState_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam state = new StringAndListParam().addAnd(new StringParam(STATE)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, state, null, null, - null, null, null, null, null); + null, null, null, null); List resultList = get(results); @@ -363,11 +365,11 @@ public void findPractitionersByAddressState_shouldReturnMatchingBundleOfPractiti public void findPractitionersByWrongAddressState_shouldReturnBundleWithEmptyEntries() { StringAndListParam state = new StringAndListParam().addAnd(new StringParam(WRONG_STATE)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, state, null, null, - null, null, null, null, null); + null, null, null, null); List resultList = get(results); @@ -378,12 +380,13 @@ public void findPractitionersByWrongAddressState_shouldReturnBundleWithEmptyEntr @Test public void findPractitionersByAddressPostalCode_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam postalCode = new StringAndListParam().addAnd(new StringParam(POSTAL_CODE)); - when(practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, null, null, null, - postalCode, null, null, null, null, null, null))).thenReturn( - new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners( + new PractitionerSearchParams(null, null, null, null, null, null, postalCode, null, null, null, null, null))) + .thenReturn( + new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, postalCode, - null, null, null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -395,12 +398,12 @@ public void findPractitionersByAddressPostalCode_shouldReturnMatchingBundleOfPra @Test public void findPractitionersByWrongAddressPostalCode_shouldReturnBundleWithEmptyEntries() { StringAndListParam postalCode = new StringAndListParam().addAnd(new StringParam(WRONG_POSTAL_CODE)); - when(practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, null, null, null, - postalCode, null, null, null, null, null, null))) - .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners( + new PractitionerSearchParams(null, null, null, null, null, null, postalCode, null, null, null, null, null))) + .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, postalCode, - null, null, null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -412,12 +415,12 @@ public void findPractitionersByWrongAddressPostalCode_shouldReturnBundleWithEmpt public void findPractitionersByAddressCountry_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam country = new StringAndListParam().addAnd(new StringParam(COUNTRY)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, country, - null, null, null, null, null); + null, null, null, null); List resultList = get(results); @@ -430,11 +433,11 @@ public void findPractitionersByAddressCountry_shouldReturnMatchingBundleOfPracti public void findPractitionersByWrongAddressCountry_shouldReturnBundleWithEmptyEntries() { StringAndListParam country = new StringAndListParam().addAnd(new StringParam(WRONG_COUNTRY)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, country, - null, null, null, null, null); + null, null, null, null); List resultList = get(results); @@ -446,12 +449,12 @@ public void findPractitionersByWrongAddressCountry_shouldReturnBundleWithEmptyEn public void findPractitionersByUUID_shouldReturnMatchingBundleOfPractitioners() { TokenAndListParam uuid = new TokenAndListParam().addAnd(new TokenParam(PRACTITIONER_UUID)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - uuid, null, null, null, null); + uuid, null, null, null); List resultList = get(results); @@ -464,11 +467,11 @@ public void findPractitionersByUUID_shouldReturnMatchingBundleOfPractitioners() public void findPractitionersByWrongUUID_shouldReturnBundleWithEmptyEntries() { TokenAndListParam uuid = new TokenAndListParam().addAnd(new TokenParam(WRONG_PRACTITIONER_UUID)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - uuid, null, null, null, null); + uuid, null, null, null); List resultList = get(results); @@ -479,12 +482,13 @@ public void findPractitionersByWrongUUID_shouldReturnBundleWithEmptyEntries() { @Test public void findPractitionersByLastUpdated_shouldReturnMatchingBundleOfPractitioners() { DateRangeParam lastUpdated = new DateRangeParam().setUpperBound(LAST_UPDATED_DATE).setLowerBound(LAST_UPDATED_DATE); - when(practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, null, null, null, - null, null, null, null, null, lastUpdated, null))).thenReturn( - new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners( + new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, lastUpdated, null))) + .thenReturn( + new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - null, null, null, lastUpdated, null); + null, null, lastUpdated, null); List resultList = get(results); @@ -497,12 +501,12 @@ public void findPractitionersByLastUpdated_shouldReturnMatchingBundleOfPractitio public void findPractitionersByWrongLastUpdated_shouldReturnBundleWithEmptyEntries() { DateRangeParam lastUpdated = new DateRangeParam().setUpperBound(WRONG_LAST_UPDATED_DATE) .setLowerBound(WRONG_LAST_UPDATED_DATE); - when(practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, null, null, null, - null, null, null, null, null, lastUpdated, null))) - .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners( + new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, lastUpdated, null))) + .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - null, null, null, lastUpdated, null); + null, null, lastUpdated, null); List resultList = get(results); @@ -515,12 +519,13 @@ public void findPractitioners_shouldAddRelatedResourcesWhenReverseIncluded() { HashSet revIncludes = new HashSet<>(); revIncludes.add(new Include("Encounter:participant")); - when(practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, null, null, null, - null, null, null, null, null, null, revIncludes))).thenReturn( - new MockIBundleProvider<>(Arrays.asList(practitioner, new Encounter()), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners( + new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, null, revIncludes))) + .thenReturn( + new MockIBundleProvider<>(Arrays.asList(practitioner, new Encounter()), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - null, null, null, null, revIncludes); + null, null, null, revIncludes); List resultList = get(results); @@ -536,12 +541,12 @@ public void findPractitioners_shouldNotAddRelatedResourcesForEmptyReverseInclude HashSet revIncludes = new HashSet<>(); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, null, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - null, null, null, null, revIncludes); + null, null, null, revIncludes); List resultList = get(results); diff --git a/api/src/test/java/org/openmrs/module/fhir2/providers/r4/PractitionerFhirResourceProviderTest.java b/api/src/test/java/org/openmrs/module/fhir2/providers/r4/PractitionerFhirResourceProviderTest.java index 9a706d656e..fb75736bc7 100644 --- a/api/src/test/java/org/openmrs/module/fhir2/providers/r4/PractitionerFhirResourceProviderTest.java +++ b/api/src/test/java/org/openmrs/module/fhir2/providers/r4/PractitionerFhirResourceProviderTest.java @@ -172,12 +172,12 @@ public void findPractitionersByName_shouldReturnMatchingBundleOfPractitioners() StringAndListParam nameParam = new StringAndListParam() .addAnd(new StringOrListParam().add(new StringParam(GIVEN_NAME))); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, nameParam, null, null, null, null, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, nameParam, null, null, null, null, null, null, null, null, null, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(nameParam, null, null, null, null, null, null, - null, null, null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -191,11 +191,11 @@ public void findPractitionersByWrongName_shouldReturnBundleWithEmptyEntries() { StringAndListParam nameParam = new StringAndListParam() .addAnd(new StringOrListParam().add(new StringParam(WRONG_NAME))); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, nameParam, null, null, null, null, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, nameParam, null, null, null, null, null, null, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(nameParam, null, null, null, null, null, null, - null, null, null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -206,12 +206,13 @@ public void findPractitionersByWrongName_shouldReturnBundleWithEmptyEntries() { @Test public void findPractitionersByIdentifier_shouldReturnMatchingBundleOfPractitioners() { TokenAndListParam identifier = new TokenAndListParam().addAnd(new TokenOrListParam().add(PRACTITIONER_IDENTIFIER)); - when(practitionerService.searchForPractitioners(new PractitionerSearchParams(identifier, null, null, null, null, - null, null, null, null, null, null, null, null))).thenReturn( - new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners( + new PractitionerSearchParams(identifier, null, null, null, null, null, null, null, null, null, null, null))) + .thenReturn( + new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, identifier, null, null, null, null, null, - null, null, null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -224,12 +225,12 @@ public void findPractitionersByIdentifier_shouldReturnMatchingBundleOfPractition public void findPractitionersByWrongIdentifier_shouldReturnBundleWithEmptyEntries() { TokenAndListParam identifier = new TokenAndListParam() .addAnd(new TokenOrListParam().add(WRONG_PRACTITIONER_IDENTIFIER)); - when(practitionerService.searchForPractitioners(new PractitionerSearchParams(identifier, null, null, null, null, - null, null, null, null, null, null, null, null))) - .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners( + new PractitionerSearchParams(identifier, null, null, null, null, null, null, null, null, null, null, null))) + .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, identifier, null, null, null, null, null, - null, null, null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -241,12 +242,12 @@ public void findPractitionersByWrongIdentifier_shouldReturnBundleWithEmptyEntrie public void findPractitionersByGivenName_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam givenName = new StringAndListParam().addAnd(new StringParam(PRACTITIONER_GIVEN_NAME)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, givenName, null, null, null, null, - null, null, null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -259,11 +260,11 @@ public void findPractitionersByGivenName_shouldReturnMatchingBundleOfPractitione public void findPractitionersByWrongGivenName_shouldReturnBundleWithEmptyEntries() { StringAndListParam givenName = new StringAndListParam().addAnd(new StringParam(WRONG_GIVEN_NAME)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, givenName, null, null, null, null, null, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, givenName, null, null, null, null, - null, null, null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -274,12 +275,13 @@ public void findPractitionersByWrongGivenName_shouldReturnBundleWithEmptyEntries @Test public void findPractitionersByFamilyName_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam familyName = new StringAndListParam().addAnd(new StringParam(PRACTITIONER_FAMILY_NAME)); - when(practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, familyName, null, - null, null, null, null, null, null, null, null))).thenReturn( - new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners( + new PractitionerSearchParams(null, null, null, familyName, null, null, null, null, null, null, null, null))) + .thenReturn( + new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, familyName, null, null, null, - null, null, null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -291,12 +293,12 @@ public void findPractitionersByFamilyName_shouldReturnMatchingBundleOfPractition @Test public void findPractitionersByWrongFamilyName_shouldReturnBundleWithEmptyEntries() { StringAndListParam familyName = new StringAndListParam().addAnd(new StringParam(WRONG_FAMILY_NAME)); - when(practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, familyName, null, - null, null, null, null, null, null, null, null))) - .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners( + new PractitionerSearchParams(null, null, null, familyName, null, null, null, null, null, null, null, null))) + .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, familyName, null, null, null, - null, null, null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -308,12 +310,12 @@ public void findPractitionersByWrongFamilyName_shouldReturnBundleWithEmptyEntrie public void findPractitionersByAddressCity_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam city = new StringAndListParam().addAnd(new StringParam(CITY)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, city, null, null, null, - null, null, null, null, null); + null, null, null, null); List resultList = get(results); @@ -326,11 +328,11 @@ public void findPractitionersByAddressCity_shouldReturnMatchingBundleOfPractitio public void findPractitionersByWrongAddressCity_shouldReturnBundleWithEmptyEntries() { StringAndListParam city = new StringAndListParam().addAnd(new StringParam(WRONG_CITY)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, city, null, null, null, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, city, null, null, null, - null, null, null, null, null); + null, null, null, null); List resultList = get(results); @@ -342,12 +344,12 @@ public void findPractitionersByWrongAddressCity_shouldReturnBundleWithEmptyEntri public void findPractitionersByAddressState_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam state = new StringAndListParam().addAnd(new StringParam(STATE)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, state, null, null, - null, null, null, null, null); + null, null, null, null); List resultList = get(results); @@ -360,11 +362,11 @@ public void findPractitionersByAddressState_shouldReturnMatchingBundleOfPractiti public void findPractitionersByWrongAddressState_shouldReturnBundleWithEmptyEntries() { StringAndListParam state = new StringAndListParam().addAnd(new StringParam(WRONG_STATE)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, state, null, null, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, state, null, null, - null, null, null, null, null); + null, null, null, null); List resultList = get(results); @@ -375,12 +377,13 @@ public void findPractitionersByWrongAddressState_shouldReturnBundleWithEmptyEntr @Test public void findPractitionersByAddressPostalCode_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam postalCode = new StringAndListParam().addAnd(new StringParam(POSTAL_CODE)); - when(practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, null, null, null, - postalCode, null, null, null, null, null, null))).thenReturn( - new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners( + new PractitionerSearchParams(null, null, null, null, null, null, postalCode, null, null, null, null, null))) + .thenReturn( + new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, postalCode, - null, null, null, null, null, null); + null, null, null, null, null); List resultList = get(results); @@ -392,12 +395,12 @@ public void findPractitionersByAddressPostalCode_shouldReturnMatchingBundleOfPra @Test public void findPractitionersByWrongAddressPostalCode_shouldReturnBundleWithEmptyEntries() { StringAndListParam postalCode = new StringAndListParam().addAnd(new StringParam(WRONG_POSTAL_CODE)); - when(practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, null, null, null, - postalCode, null, null, null, null, null, null))) - .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners( + new PractitionerSearchParams(null, null, null, null, null, null, postalCode, null, null, null, null, null))) + .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); - IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, - postalCode, null, null, null, null, null); + IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, postalCode, + null, null, null, null, null); List resultList = get(results); @@ -409,12 +412,12 @@ public void findPractitionersByWrongAddressPostalCode_shouldReturnBundleWithEmpt public void findPractitionersByAddressCountry_shouldReturnMatchingBundleOfPractitioners() { StringAndListParam country = new StringAndListParam().addAnd(new StringParam(COUNTRY)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, country, - null, null, null, null, null); + null, null, null, null); List resultList = get(results); @@ -427,11 +430,11 @@ public void findPractitionersByAddressCountry_shouldReturnMatchingBundleOfPracti public void findPractitionersByWrongAddressCountry_shouldReturnBundleWithEmptyEntries() { StringAndListParam country = new StringAndListParam().addAnd(new StringParam(WRONG_COUNTRY)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, null, null, country, null, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, country, - null, null, null, null, null); + null, null, null, null); List resultList = get(results); @@ -443,12 +446,12 @@ public void findPractitionersByWrongAddressCountry_shouldReturnBundleWithEmptyEn public void findPractitionersByUUID_shouldReturnMatchingBundleOfPractitioners() { TokenAndListParam uuid = new TokenAndListParam().addAnd(new TokenParam(PRACTITIONER_UUID)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - uuid, null, null, null, null); + uuid, null, null, null); List resultList = get(results); @@ -461,11 +464,11 @@ public void findPractitionersByUUID_shouldReturnMatchingBundleOfPractitioners() public void findPractitionersByWrongUUID_shouldReturnBundleWithEmptyEntries() { TokenAndListParam uuid = new TokenAndListParam().addAnd(new TokenParam(WRONG_PRACTITIONER_UUID)); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, null, null, null, uuid, null, null, null))) .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - uuid, null, null, null, null); + uuid, null, null, null); List resultList = get(results); @@ -476,12 +479,13 @@ public void findPractitionersByWrongUUID_shouldReturnBundleWithEmptyEntries() { @Test public void findPractitionersByLastUpdated_shouldReturnMatchingBundleOfPractitioners() { DateRangeParam lastUpdated = new DateRangeParam().setUpperBound(LAST_UPDATED_DATE).setLowerBound(LAST_UPDATED_DATE); - when(practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, null, null, null, - null, null, null, null, null, lastUpdated, null))).thenReturn( - new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners( + new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, lastUpdated, null))) + .thenReturn( + new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - null, null, null, lastUpdated, null); + null, null, lastUpdated, null); List resultList = get(results); @@ -494,12 +498,12 @@ public void findPractitionersByLastUpdated_shouldReturnMatchingBundleOfPractitio public void findPractitionersByWrongLastUpdated_shouldReturnBundleWithEmptyEntries() { DateRangeParam lastUpdated = new DateRangeParam().setUpperBound(WRONG_LAST_UPDATED_DATE) .setLowerBound(WRONG_LAST_UPDATED_DATE); - when(practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, null, null, null, - null, null, null, null, null, lastUpdated, null))) - .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners( + new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, lastUpdated, null))) + .thenReturn(new MockIBundleProvider<>(Collections.emptyList(), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - null, null, null, lastUpdated, null); + null, null, lastUpdated, null); List resultList = get(results); @@ -512,12 +516,13 @@ public void findPractitioners_shouldAddRelatedResourcesWhenReverseIncluded() { HashSet revIncludes = new HashSet<>(); revIncludes.add(new Include("Encounter:participant")); - when(practitionerService.searchForPractitioners(new PractitionerSearchParams(null, null, null, null, null, null, - null, null, null, null, null, null, revIncludes))).thenReturn( - new MockIBundleProvider<>(Arrays.asList(practitioner, new Encounter()), PREFERRED_PAGE_SIZE, COUNT)); + when(practitionerService.searchForPractitioners( + new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, null, revIncludes))) + .thenReturn( + new MockIBundleProvider<>(Arrays.asList(practitioner, new Encounter()), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - null, null, null, null, revIncludes); + null, null, null, revIncludes); List resultList = get(results); @@ -533,12 +538,12 @@ public void findPractitioners_shouldNotAddRelatedResourcesForEmptyReverseInclude HashSet revIncludes = new HashSet<>(); when(practitionerService.searchForPractitioners( - new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, null, null, null))) + new PractitionerSearchParams(null, null, null, null, null, null, null, null, null, null, null, null))) .thenReturn( new MockIBundleProvider<>(Collections.singletonList(practitioner), PREFERRED_PAGE_SIZE, COUNT)); IBundleProvider results = resourceProvider.searchForPractitioners(null, null, null, null, null, null, null, null, - null, null, null, null, revIncludes); + null, null, null, revIncludes); List resultList = get(results); diff --git a/pom.xml b/pom.xml index 13c5f79807..8fb90967c8 100644 --- a/pom.xml +++ b/pom.xml @@ -787,7 +787,7 @@ - + org.jacoco jacoco-maven-plugin From 59ca98314c01d619ba7cc6627f72ab2550d3ed99 Mon Sep 17 00:00:00 2001 From: mogoodrich Date: Tue, 8 Oct 2024 18:16:11 -0400 Subject: [PATCH 4/4] FM2-646: Practitioner: support limiting search to users or providers --- .../module/fhir2/api/impl/FhirPractitionerServiceImpl.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/fhir2/api/impl/FhirPractitionerServiceImpl.java b/api/src/main/java/org/openmrs/module/fhir2/api/impl/FhirPractitionerServiceImpl.java index 07b2b0c81e..24284b6c24 100644 --- a/api/src/main/java/org/openmrs/module/fhir2/api/impl/FhirPractitionerServiceImpl.java +++ b/api/src/main/java/org/openmrs/module/fhir2/api/impl/FhirPractitionerServiceImpl.java @@ -35,7 +35,6 @@ import org.openmrs.module.fhir2.api.search.SearchQueryInclude; import org.openmrs.module.fhir2.api.search.TwoSearchQueryBundleProvider; import org.openmrs.module.fhir2.api.search.param.PractitionerSearchParams; -import org.openmrs.module.fhir2.api.search.param.SearchParameterMap; import org.openmrs.module.fhir2.api.translators.PractitionerTranslator; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -107,8 +106,7 @@ public IBundleProvider searchForPractitioners(PractitionerSearchParams practitio } if (shouldSearchExplicitlyFor(practitionerSearchParams.getTag(), "user")) { - SearchParameterMap theParams = new SearchParameterMap(); - userBundle = userService.searchForUsers(theParams); + userBundle = userService.searchForUsers(practitionerSearchParams.toSearchParameterMap()); } if (providerBundle != null && userBundle != null) {