Skip to content

Commit f55c90e

Browse files
helenKaryamsettyKA40094929KA40094929Karyamsetty Helen GraceCopilot
authored
ABDM Abdm HiTypes addition in linktoken (#115)
* Abdm Facility fetch services changes * facility save after carecontext and patientcarecontextx update * FacilityId save in mongo db and Variable declaration correction * Mongo carecontext save query logic changes * ABHA Creation M1 V3 API changes * Abha V3 changes * removed unused code * v3- verify auth by abdm API changes * feat: Abdm M2 V3 changes * feat: mongo query change fetch for linktoken * fix: link carecontext authorization error * feat: hiTypes addition * feat: version change for testing * fix: corrected spelling mistake Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: modified repo queries Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: KA40094929 <KA40094929@10.152.32.202> Co-authored-by: KA40094929 <KA40094929@APL-5CD1394ZJT> Co-authored-by: Karyamsetty Helen Grace <ka40094929@wipro.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent 4809e07 commit f55c90e

3 files changed

Lines changed: 85 additions & 17 deletions

File tree

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.wipro.fhir.repo.v3.careContext;
2+
3+
import java.math.BigInteger;
4+
5+
import org.springframework.data.jpa.repository.Query;
6+
import org.springframework.data.repository.CrudRepository;
7+
8+
import com.wipro.fhir.data.request_handler.PatientEligibleForResourceCreation;
9+
10+
public interface CareContextRepo extends CrudRepository<PatientEligibleForResourceCreation, BigInteger> {
11+
12+
@Query(value="SELECT COUNT(*) FROM t_phy_vitals WHERE VisitCode = :visitCode", nativeQuery = true)
13+
public int hasPhyVitals(String visitCode);
14+
15+
@Query(value="SELECT COUNT(*) FROM t_prescribeddrug WHERE VisitCode = :visitCode", nativeQuery = true)
16+
public int hasPrescribedDrugs(String visitCode);
17+
18+
@Query(value="SELECT COUNT(*) FROM t_lab_testorder WHERE VisitCode = :visitCode", nativeQuery = true)
19+
public int hasLabtestsDone(String visitCode);
20+
21+
@Query(value="SELECT COUNT(*) FROM t_childvaccinedetail1 WHERE VisitCode = :visitCode", nativeQuery = true)
22+
public int hasVaccineDetails(String visitCode);
23+
24+
}

src/main/java/com/wipro/fhir/service/v3/careContext/CareContextLinkingServiceImpl.java

Lines changed: 60 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import java.util.Calendar;
77
import java.util.Date;
88
import java.util.HashMap;
9+
import java.util.List;
910
import java.util.Map;
1011
import java.util.TimeZone;
1112
import java.util.UUID;
@@ -42,6 +43,7 @@
4243
import com.wipro.fhir.data.v3.careContext.LinkCareContextRequest;
4344
import com.wipro.fhir.data.v3.careContext.PatientCareContext;
4445
import com.wipro.fhir.repo.mongo.generateToken_response.GenerateTokenAbdmResponsesRepo;
46+
import com.wipro.fhir.repo.v3.careContext.CareContextRepo;
4547
import com.wipro.fhir.data.v3.careContext.AddCareContextRequest;
4648
import com.wipro.fhir.service.ndhm.Common_NDHMService;
4749
import com.wipro.fhir.service.v3.abha.GenerateAuthSessionService;
@@ -68,10 +70,13 @@ public class CareContextLinkingServiceImpl implements CareContextLinkingService
6870

6971
@Value("${generateTokenForLinkCareContext}")
7072
String generateTokenForLinkCareContext;
71-
73+
7274
@Value("${linkCareContext}")
7375
String linkCareContext;
7476

77+
@Autowired
78+
private CareContextRepo careContextRepo;
79+
7580
private final Logger logger = LoggerFactory.getLogger(this.getClass().getName());
7681

7782
@Override
@@ -240,23 +245,29 @@ public String generateTokenForCareContext(String request) throws FHIRException {
240245
} else {
241246
headers.add("X-HIP-ID", abdmFacilityId);
242247
}
243-
248+
249+
String[] hiTypes = findHiTypes(addCareContextRequest.getVisitCode(), addCareContextRequest.getVisitCategory());
250+
244251
LinkCareContextRequest linkCareContextRequest = new LinkCareContextRequest();
245252
CareContexts careContexts = new CareContexts();
246-
PatientCareContext patient = new PatientCareContext();
253+
ArrayList<PatientCareContext> pcc = new ArrayList<PatientCareContext>();
247254

248-
ArrayList<CareContexts> cc = new ArrayList<CareContexts>();
249-
careContexts.setReferenceNumber(addCareContextRequest.getVisitCode());
250-
careContexts.setDisplay(addCareContextRequest.getDisplay());
251-
cc.add(careContexts);
255+
for (String hiType : hiTypes) {
256+
PatientCareContext patient = new PatientCareContext();
252257

253-
ArrayList<PatientCareContext> pcc = new ArrayList<PatientCareContext>();
254-
patient.setReferenceNumber(addCareContextRequest.getVisitCode());
255-
patient.setDisplay(addCareContextRequest.getDisplay());
256-
patient.setDisplay(addCareContextRequest.getDisplay());
257-
patient.setCount(1);
258-
patient.setCareContexts(cc);
259-
pcc.add(patient);
258+
ArrayList<CareContexts> cc = new ArrayList<CareContexts>();
259+
careContexts.setReferenceNumber(addCareContextRequest.getVisitCode());
260+
careContexts.setDisplay(addCareContextRequest.getVisitCategory());
261+
cc.add(careContexts);
262+
263+
patient.setReferenceNumber(addCareContextRequest.getVisitCode());
264+
patient.setDisplay(addCareContextRequest.getVisitCategory() + " care context of " + addCareContextRequest.getAbhaNumber());
265+
patient.setCount(1);
266+
patient.setCareContexts(cc);
267+
patient.setHiType(hiType);
268+
pcc.add(patient);
269+
}
270+
260271

261272
if (null != addCareContextRequest.getAbhaNumber() && "" != addCareContextRequest.getAbhaNumber()) {
262273
String abha = addCareContextRequest.getAbhaNumber();
@@ -293,12 +304,13 @@ public String generateTokenForCareContext(String request) throws FHIRException {
293304
public String checkRecordExisits(String abhaAddress) {
294305
GenerateTokenAbdmResponses result = generateTokenAbdmResponsesRepo.findByAbhaAddress(abhaAddress);
295306
logger.info("find by abha address result - ", result);
307+
String linkResponse = null;
296308

297309
if (result != null && result.getCreatedDate() != null) {
298310
Calendar cal = Calendar.getInstance();
299311
cal.add(Calendar.MONTH, -3);
300312
Date threeMonthsAgo = cal.getTime();
301-
String linkResponse = result.getResponse();
313+
linkResponse = result.getResponse();
302314

303315
if (result.getCreatedDate().after(threeMonthsAgo)) {
304316
if (linkResponse != null) {
@@ -317,7 +329,39 @@ public String checkRecordExisits(String abhaAddress) {
317329
}
318330
}
319331

320-
return null;
332+
return linkResponse;
333+
}
334+
335+
public String[] findHiTypes(String visitCode, String visitCategory) {
336+
337+
List<String> hiTypes = new ArrayList<>();
338+
if (visitCategory.equalsIgnoreCase("General OPD")) {
339+
hiTypes.add("OPConsultation");
340+
} else if (visitCategory.equalsIgnoreCase("General OPD (QC)")) {
341+
hiTypes.add("OPConsultation");
342+
}
343+
hiTypes.add("DischargeSummary");
344+
345+
int hasPhyVitals = careContextRepo.hasPhyVitals(visitCode);
346+
if(hasPhyVitals > 0) {
347+
hiTypes.add("WellnessRecord");
348+
}
349+
int hasPrescription = careContextRepo.hasPrescribedDrugs(visitCode);
350+
if (hasPrescription > 0) {
351+
hiTypes.add("Prescription");
352+
}
353+
354+
int hasLabTests = careContextRepo.hasLabtestsDone(visitCode);
355+
if (hasLabTests > 0) {
356+
hiTypes.add("DiagnosticsReport");
357+
}
358+
int hasVaccineDetails = careContextRepo.hasVaccineDetails(visitCode);
359+
if (hasVaccineDetails > 0) {
360+
hiTypes.add("ImmunizationRecord");
361+
}
362+
363+
return hiTypes.toArray(new String[0]);
321364
}
322365

323366
}
367+
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<jboss-web>
3-
<context-root>/fhir-api</context-root>
3+
<context-root>/fhir-api-abdm</context-root>
44
</jboss-web>

0 commit comments

Comments
 (0)