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