diff --git a/pom.xml b/pom.xml index df56a8f7..48bd3961 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.iemr.hwc hwc-api - 3.2.1 + 3.6.1 war HWC-API diff --git a/src/main/environment/common_ci.properties b/src/main/environment/common_ci.properties index 5f9112da..98f0946c 100644 --- a/src/main/environment/common_ci.properties +++ b/src/main/environment/common_ci.properties @@ -20,6 +20,8 @@ registrarQuickSearchByIdUrl =@env.COMMON_API@beneficiary/searchUserByID registrarQuickSearchByPhoneNoUrl =@env.COMMON_API@beneficiary/searchUserByPhone +registrarQuickSearchByESUrl =@env.COMMON_API@beneficiary/searchUser + getBenImageFromIdentity =@env.HWC_IDENTITY_API_BASE@id/benImageByBenRegID ##save covid Vaccine details coming from mobile app through fhir @@ -31,6 +33,9 @@ beneficiaryEditUrl =@env.COMMON_API@beneficiary/update ## Advance Search registrarAdvanceSearchUrl =@env.COMMON_API@beneficiary/searchBeneficiary +## Advance Search using ES +registrarAdvanceSearchESUrl =@env.COMMON_API@beneficiary/searchBeneficiaryES + ## Data Sync API dataSyncUploadUrl=@env.MMU_API@dataSync/van-to-server diff --git a/src/main/environment/common_docker.properties b/src/main/environment/common_docker.properties index e2efe6b8..af98f64c 100644 --- a/src/main/environment/common_docker.properties +++ b/src/main/environment/common_docker.properties @@ -20,6 +20,8 @@ registrarQuickSearchByIdUrl =${COMMON_API}beneficiary/searchUserByID registrarQuickSearchByPhoneNoUrl =${COMMON_API}beneficiary/searchUserByPhone +registrarQuickSearchByESUrl =${COMMON_API}beneficiary/searchUser + getBenImageFromIdentity =${HWC_IDENTITY_API_BASE}id/benImageByBenRegID ##save covid Vaccine details coming from mobile app through fhir @@ -31,6 +33,9 @@ beneficiaryEditUrl =${COMMON_API}beneficiary/update ## Advance Search registrarAdvanceSearchUrl =${COMMON_API}beneficiary/searchBeneficiary +## Advance Search using ES +registrarAdvanceSearchESUrl =${COMMON_API}beneficiary/searchBeneficiaryES + ## Data Sync API dataSyncUploadUrl=${MMU_API}dataSync/van-to-server diff --git a/src/main/environment/common_example.properties b/src/main/environment/common_example.properties index b6c74d84..aba63ef3 100644 --- a/src/main/environment/common_example.properties +++ b/src/main/environment/common_example.properties @@ -21,6 +21,8 @@ registrarQuickSearchByIdUrl =http://localhost:8083/beneficiary/searchUserByID registrarQuickSearchByPhoneNoUrl =http://localhost:8083/beneficiary/searchUserByPhone +registrarQuickSearchByESUrl =http://localhost:8083/beneficiary/searchUser + getBenImageFromIdentity =http://localhost:8094/id/benImageByBenRegID ##save covid Vaccine details coming from mobile app through fhir @@ -32,6 +34,9 @@ beneficiaryEditUrl =http://localhost:8083/beneficiary/update ## Advance Search registrarAdvanceSearchUrl =http://localhost:8083/beneficiary/searchBeneficiary +## Advance Search using ES +registrarAdvanceSearchESUrl =http://localhost:8083/beneficiary/searchBeneficiaryES + ## Data Sync API dataSyncUploadUrl==http://localhost:8087/dataSync/van-to-server diff --git a/src/main/java/com/iemr/hwc/controller/registrar/main/RegistrarController.java b/src/main/java/com/iemr/hwc/controller/registrar/main/RegistrarController.java index 43e84b0b..9e779fbf 100644 --- a/src/main/java/com/iemr/hwc/controller/registrar/main/RegistrarController.java +++ b/src/main/java/com/iemr/hwc/controller/registrar/main/RegistrarController.java @@ -30,12 +30,10 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.repository.query.Param; - import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import com.google.gson.Gson; @@ -256,6 +254,30 @@ public String quickSearchNew(@RequestBody String requestObj, } + // beneficiary quick search new integrated with common and identity with Elasticsearch + @Operation(summary = "Search beneficiary using Elasticsearch") + @PostMapping(value = { "/quickSearchES" }) + public String quickSearchES(@RequestBody String requestObj, + @RequestHeader(value = "Authorization") String Authorization) { + String searchList = null; + OutputResponse response = new OutputResponse(); + try { + searchList = registrarServiceImpl.beneficiaryQuickSearchES(requestObj, Authorization); + if (searchList == null) { + response.setError(400, "Invalid request"); + return response.toString(); + } else { + return searchList; + } + } catch (Exception e) { + logger.error("Error in Quick Search" + e); + response.setError(400, "Error while searching beneficiary"); + return response.toString(); + } + + } + + // beneficiary Advance search new integrated with common and identity @Operation(summary = "Beneficiary advance search integrated with common and identity API") @PostMapping(value = { "/advanceSearchNew" }) @@ -279,6 +301,37 @@ public String advanceSearchNew(@RequestBody String requestObj, } + /** + * Elasticsearch-based beneficiary advance search + */ +@Operation(summary = "Beneficiary advanced search using Elasticsearch") +@PostMapping(value = { "/advancedSearchES" }) +public String advanceSearchES( + @RequestBody String requestObj, + @RequestHeader(value = "Authorization") String Authorization) { + + String searchList = null; + OutputResponse response = new OutputResponse(); + + try { + logger.info("ES Advanced Search request received"); + + searchList = registrarServiceImpl.beneficiaryAdvancedSearchES(requestObj, Authorization); + + if (searchList == null) { + response.setError(5000, "Invalid request"); + return response.toString(); + } else { + return searchList; + } + + } catch (Exception e) { + logger.error("Error in ES Advance Search: {}", e.getMessage(), e); + response.setError(5000, "Error while searching beneficiary: " + e.getMessage()); + return response.toString(); + } +} + @Operation(summary = "Beneficiary advance search") @PostMapping(value = { "/benAdvanceSearchNew" }) public String benAdvanceSearchNew(@RequestBody String requestObj, diff --git a/src/main/java/com/iemr/hwc/service/registrar/RegistrarServiceImpl.java b/src/main/java/com/iemr/hwc/service/registrar/RegistrarServiceImpl.java index 6b0d540a..5e1accad 100644 --- a/src/main/java/com/iemr/hwc/service/registrar/RegistrarServiceImpl.java +++ b/src/main/java/com/iemr/hwc/service/registrar/RegistrarServiceImpl.java @@ -78,12 +78,18 @@ public class RegistrarServiceImpl implements RegistrarService { @Value("${registrarQuickSearchByPhoneNoUrl}") private String registrarQuickSearchByPhoneNoUrl; + @Value("${registrarQuickSearchByESUrl}") + private String registrarQuickSearchByESUrl; + @Value("${beneficiaryEditUrl}") private String beneficiaryEditUrl; @Value("${registrarAdvanceSearchUrl}") private String registrarAdvanceSearchUrl; + @Value("${registrarAdvanceSearchESUrl}") + private String registrarAdvanceSearchESUrl; + @Value("${syncSearchByLocation}") private String syncSearchByLocation; @@ -810,6 +816,26 @@ public String beneficiaryQuickSearch(String requestObj, String Authorization) { return returnOBJ; } + // beneficiary quick search new integrated with common and identity with elasticsearch + public String beneficiaryQuickSearchES(String requestObj, String Authorization) { + String returnOBJ = null; + RestTemplate restTemplate = new RestTemplate(); + JSONObject obj = new JSONObject(requestObj); + System.out.println("obj="+obj); + HttpEntity request = RestTemplateUtil.createRequestEntity(requestObj, Authorization); + System.out.println("test create request="+request); + + if ((obj.has("search") && !obj.isNull("search"))) { + ResponseEntity response = restTemplate.exchange(registrarQuickSearchByESUrl, HttpMethod.POST, + request, String.class); + if (response.hasBody()) + returnOBJ = response.getBody(); + + } + return returnOBJ; + } + + // beneficiary advance search new integrated with common and identity public String beneficiaryAdvanceSearch(String requestObj, String Authorization) { String returnOBJ = null; @@ -825,6 +851,30 @@ public String beneficiaryAdvanceSearch(String requestObj, String Authorization) } + /** + * Elasticsearch-based beneficiary advanced search + */ +public String beneficiaryAdvancedSearchES(String requestObj, String Authorization) { + + String returnOBJ = null; + RestTemplate restTemplate = new RestTemplate(); + + HttpEntity request = RestTemplateUtil.createRequestEntity(requestObj, Authorization); + + ResponseEntity response = restTemplate.exchange( + registrarAdvanceSearchESUrl, + HttpMethod.POST, + request, + String.class + ); + + if (response.hasBody()) { + returnOBJ = response.getBody(); + } + + return returnOBJ; +} + public int searchAndSubmitBeneficiaryToNurse(String requestOBJ) throws Exception { int i = commonBenStatusFlowServiceImpl.createBenFlowRecord(requestOBJ, null, null); return i;