Skip to content

Commit 3e2c7b2

Browse files
KA40094929KA40094929
authored andcommitted
API to fetch beneficiary ID linked with HealthID
1 parent f19e6ba commit 3e2c7b2

4 files changed

Lines changed: 45 additions & 0 deletions

File tree

src/main/java/com/wipro/fhir/controller/healthID/CreateHealthIDWithMobileOTP.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,5 +139,31 @@ public String getBenhealthID(
139139
logger.info("NDHM_FHIR get beneficiary ABHA response:" + response.toString());
140140
return response.toString();
141141
}
142+
143+
@CrossOrigin()
144+
@Operation(summary = "Get Beneficiary Id for ABHA Id")
145+
@PostMapping(value = { "/getBenIdForhealthID" })
146+
public String getBenIdForhealthID(
147+
@Param(value = "{\"healthIdNumber\":\"String\"}") @RequestBody String request) {
148+
OutputResponse response = new OutputResponse();
149+
150+
logger.info("NDHM_FHIR Request obj to fetch beneficiary Ids for HealthID :" + request);
151+
try {
152+
JSONObject obj = new JSONObject(request);
153+
if (request != null) {
154+
String healthId = obj.getString("healthIdNumber");
155+
String res = healthIDService.getMappedBenIdForHealthId(healthId);
156+
response.setResponse(res);
157+
} else {
158+
logger.info("NDHM_FHIR Invalid Request Data.");
159+
response.setError(5000, "NDHM_FHIR Invalid request");
160+
}
161+
} catch (Exception e) {
162+
response.setError(5000, e.getMessage());
163+
logger.error("NDHM_FHIR Error while getting beneficiary Ids for HealthID:" + e);
164+
}
165+
logger.info("NDHM_FHIR get beneficiary Ids for HealthID response:" + response.toString());
166+
return response.toString();
167+
}
142168

143169
}

src/main/java/com/wipro/fhir/repo/healthID/BenHealthIDMappingRepo.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,12 @@ public interface BenHealthIDMappingRepo extends CrudRepository<BenHealthIDMappin
4545
@Query(" SELECT bvd from BenHealthIDMapping bvd WHERE bvd.beneficiaryRegID = :benRegID")
4646
public ArrayList<BenHealthIDMapping> getHealthDetails(@Param("benRegID") Long benRegID);
4747

48+
@Query("SELECT bvd.beneficiaryRegID from BenHealthIDMapping bvd WHERE bvd.healthIdNumber = :healthIdNumber")
49+
public String[] getBenIdForHealthId(@Param("healthIdNumber") String healthIdNumber);
50+
51+
@Query(value = "SELECT BeneficiaryID FROM db_identity.m_beneficiaryregidmapping where BenRegId in (:benIds)", nativeQuery = true)
52+
public String[] getBeneficiaryIds(@Param("benIds") String[] benIds);
53+
4854
@Transactional
4955
@Modifying
5056
@Query(value = "UPDATE db_iemr.t_benvisitdetail SET HealthID= :healthID,HealthIdNumber= :healthIdNumber,CarecontextLinkDate=CURRENT_TIMESTAMP() WHERE VisitCode= :visitCode ", nativeQuery = true)

src/main/java/com/wipro/fhir/service/healthID/HealthIDService.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,5 @@ public interface HealthIDService {
2727
String mapHealthIDToBeneficiary(String request) throws FHIRException;
2828
public String getBenHealthID(Long benRegID);
2929
public String addRecordToHealthIdTable(String request) throws FHIRException;
30+
public String getMappedBenIdForHealthId(String healthIdNumber);
3031
}

src/main/java/com/wipro/fhir/service/healthID/HealthIDServiceImpl.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,4 +176,16 @@ public String addRecordToHealthIdTable(String request) throws FHIRException {
176176
}
177177
return res;
178178
}
179+
180+
@Override
181+
public String getMappedBenIdForHealthId(String healthIdNumber) {
182+
String[] beneficiaryIdsList = benHealthIDMappingRepo.getBenIdForHealthId(healthIdNumber);
183+
184+
if(beneficiaryIdsList.length > 0) {
185+
String[] benIds = benHealthIDMappingRepo.getBeneficiaryIds(beneficiaryIdsList);
186+
return String.join(",", benIds);
187+
}
188+
return "No Beneficiary Found";
189+
}
190+
179191
}

0 commit comments

Comments
 (0)