From 2ee45866b0cd7c8e4d372bf9c3e607ab75c7b82b Mon Sep 17 00:00:00 2001 From: vishwab1 Date: Sat, 11 Jul 2026 13:20:16 +0530 Subject: [PATCH 1/8] chore: add trace logging to /id/create for registerNew debugging Prints the raw request body, parsed IdentityDTO, and svc.createIdentity result so a Linux-server trace can show whether the beneficiary is actually being saved. Co-Authored-By: Claude Sonnet 5 --- .../iemr/common/identity/controller/IdentityController.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/iemr/common/identity/controller/IdentityController.java b/src/main/java/com/iemr/common/identity/controller/IdentityController.java index de5e551e..68e47989 100644 --- a/src/main/java/com/iemr/common/identity/controller/IdentityController.java +++ b/src/main/java/com/iemr/common/identity/controller/IdentityController.java @@ -593,11 +593,14 @@ public String createIdentity(@Param(value = "{\r\n" + " \"eventTypeName\": \"St + " \"sexualOrientationType\": \"String\",\r\n" + " \"vanID\": \"Integer\",\r\n" + " \"createdDate\": \"Timestamp\"\r\n" + " \"faceEmbedding\": [\"Float\"]\r\n" + "}") @RequestBody String identityData) throws IEMRException { logger.info("IdentityController.createIdentity - start"); - + System.out.println("[TRACE][Identity-API] /id/create raw request body : " + identityData); + IdentityDTO identity = InputMapper.getInstance().gson().fromJson(identityData, IdentityDTO.class); logger.info("identity hit: " + identity); + System.out.println("[TRACE][Identity-API] /id/create parsed IdentityDTO : " + identity); BeneficiaryCreateResp map; map = svc.createIdentity(identity); + System.out.println("[TRACE][Identity-API] /id/create svc.createIdentity result : " + InputMapper.getInstance().gson().toJson(map)); String data = InputMapper.getInstance().gson().toJson(map); String response = getSuccessResponseString(data, 200, "success", "createIdentityByAgent"); From f2c0d9ab47d95e02ea96fce3cd1db429abb0006c Mon Sep 17 00:00:00 2001 From: vishwab1 Date: Sat, 11 Jul 2026 13:20:36 +0530 Subject: [PATCH 2/8] chore: add trace logging to syncDataToAmrit Prints request body and response so the AMRIT sync path can be traced alongside the registerNew flow. Co-Authored-By: Claude Sonnet 5 --- .../identity/controller/rmnch/RMNCHMobileAppController.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/iemr/common/identity/controller/rmnch/RMNCHMobileAppController.java b/src/main/java/com/iemr/common/identity/controller/rmnch/RMNCHMobileAppController.java index 198fd5fc..df7487b8 100644 --- a/src/main/java/com/iemr/common/identity/controller/rmnch/RMNCHMobileAppController.java +++ b/src/main/java/com/iemr/common/identity/controller/rmnch/RMNCHMobileAppController.java @@ -60,7 +60,9 @@ public String syncDataToAmrit(@RequestBody String requestOBJ) { OutputResponse response = new OutputResponse(); try { if (requestOBJ != null) { + System.out.println("syncDataToAmrit request body : " + requestOBJ); String s = rmnchDataSyncService.syncDataToAmrit(requestOBJ); + System.out.println("syncDataToAmrit response body : " + s); response.setResponse(s); } else response.setError(5000, "Invalid/NULL request obj"); From ff5c97b747c2e1781f28078bfee8ca82e0ad8e9c Mon Sep 17 00:00:00 2001 From: vishwab1 Date: Fri, 17 Jul 2026 09:41:46 +0530 Subject: [PATCH 3/8] chore(dob): add debug trace logging at DTO->entity mapping and around detailRepo.save Co-Authored-By: Claude Sonnet 5 --- .../java/com/iemr/common/identity/service/IdentityService.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/com/iemr/common/identity/service/IdentityService.java b/src/main/java/com/iemr/common/identity/service/IdentityService.java index 5d6e352e..a70597dc 100644 --- a/src/main/java/com/iemr/common/identity/service/IdentityService.java +++ b/src/main/java/com/iemr/common/identity/service/IdentityService.java @@ -1492,8 +1492,10 @@ public BeneficiaryCreateResp createIdentity(IdentityDTO identity) { Timestamp ts = Timestamp.valueOf(dateToStoreInDataBase); mDetl.setCreatedDate(ts); } + System.out.println("[TRACE][Identity-API] before detailRepo.save mDetl.getDob()=" + mDetl.getDob()); mDetl = detailRepo.save(mDetl); logger.info("IdentityService.createIdentity - Details saved - id = " + mDetl.getBeneficiaryDetailsId()); + System.out.println("[TRACE][Identity-API] after detailRepo.save mDetl.getDob()=" + mDetl.getDob() + " id=" + mDetl.getBeneficiaryDetailsId()); // Update van serial no for data sync detailRepo.updateVanSerialNo(mDetl.getBeneficiaryDetailsId()); @@ -1687,6 +1689,7 @@ private MBeneficiarydetail convertIdentityDTOToMBeneficiarydetail(IdentityDTO dt } beneficiarydetail.setCommunity(dto.getCommunity()); beneficiarydetail.setCommunityId(dto.getCommunityId()); + System.out.println("[TRACE][Identity-API] convertIdentityDTOToMBeneficiarydetail dto.getDob()=" + dto.getDob()); beneficiarydetail.setDob(dto.getDob()); beneficiarydetail.setEducation(dto.getEducation()); beneficiarydetail.setEducationId(dto.getEducationId()); From 8a7124975efed5bb8d58b9f0846fb0c9fd21b095 Mon Sep 17 00:00:00 2001 From: vishwab1 Date: Fri, 17 Jul 2026 10:42:24 +0530 Subject: [PATCH 4/8] feat(household): add totalHhMembers and registeredAtCampSite fields Co-Authored-By: Claude Sonnet 5 --- .../identity/data/rmnch/RMNCHHouseHoldDetails.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/main/java/com/iemr/common/identity/data/rmnch/RMNCHHouseHoldDetails.java b/src/main/java/com/iemr/common/identity/data/rmnch/RMNCHHouseHoldDetails.java index b73f9b00..b5137442 100644 --- a/src/main/java/com/iemr/common/identity/data/rmnch/RMNCHHouseHoldDetails.java +++ b/src/main/java/com/iemr/common/identity/data/rmnch/RMNCHHouseHoldDetails.java @@ -112,6 +112,18 @@ public class RMNCHHouseHoldDetails { @Column(name = "familyName") private String familyName; + @Expose + @Column(name = "totalHhMembers") + private Integer totalHhMembers; + + @Expose + @Column(name = "registeredAtCampSite") + private String registeredAtCampSite; + + @Expose + @Column(name = "registeredAtCampSiteId") + private Integer registeredAtCampSiteId; + @Expose @Column(name = "fuelUsed") private String fuelUsed; From c130590b72c3ad38126b033f472ad1807b07253d Mon Sep 17 00:00:00 2001 From: sehjotsinghunthinkable Date: Thu, 16 Jul 2026 17:04:52 +0530 Subject: [PATCH 5/8] Adding placeOfCurrentLiving, otherPlaceOfCurrentLiving and institutionName in RMNCHMBeneficiarydetail and RMNCHBeneficiaryDetailsRmnch (#175) --- .../data/rmnch/RMNCHBeneficiaryDetailsRmnch.java | 9 +++++++++ .../identity/data/rmnch/RMNCHMBeneficiarydetail.java | 9 +++++++++ .../identity/service/rmnch/RmnchDataSyncServiceImpl.java | 3 +++ 3 files changed, 21 insertions(+) diff --git a/src/main/java/com/iemr/common/identity/data/rmnch/RMNCHBeneficiaryDetailsRmnch.java b/src/main/java/com/iemr/common/identity/data/rmnch/RMNCHBeneficiaryDetailsRmnch.java index f5ad60b5..8829d483 100644 --- a/src/main/java/com/iemr/common/identity/data/rmnch/RMNCHBeneficiaryDetailsRmnch.java +++ b/src/main/java/com/iemr/common/identity/data/rmnch/RMNCHBeneficiaryDetailsRmnch.java @@ -530,6 +530,15 @@ public class RMNCHBeneficiaryDetailsRmnch { @Expose private String otherPlaceOfDeath; + @Expose + private String placeOfCurrentLiving; + + @Expose + private String otherPlaceOfCurrentLiving; + + @Expose + private String institutionName; + @Expose private Boolean isSpouseAdded; diff --git a/src/main/java/com/iemr/common/identity/data/rmnch/RMNCHMBeneficiarydetail.java b/src/main/java/com/iemr/common/identity/data/rmnch/RMNCHMBeneficiarydetail.java index 397c5a66..a3b71194 100644 --- a/src/main/java/com/iemr/common/identity/data/rmnch/RMNCHMBeneficiarydetail.java +++ b/src/main/java/com/iemr/common/identity/data/rmnch/RMNCHMBeneficiarydetail.java @@ -214,4 +214,13 @@ public class RMNCHMBeneficiarydetail { @Expose @Transient private Integer ProviderServiceMapID; + + @Expose + private String placeOfCurrentLiving; + + @Expose + private String otherPlaceOfCurrentLiving; + + @Expose + private String institutionName; } \ No newline at end of file diff --git a/src/main/java/com/iemr/common/identity/service/rmnch/RmnchDataSyncServiceImpl.java b/src/main/java/com/iemr/common/identity/service/rmnch/RmnchDataSyncServiceImpl.java index 0f1e7d0e..22a80eae 100644 --- a/src/main/java/com/iemr/common/identity/service/rmnch/RmnchDataSyncServiceImpl.java +++ b/src/main/java/com/iemr/common/identity/service/rmnch/RmnchDataSyncServiceImpl.java @@ -243,6 +243,9 @@ public String syncDataToAmrit(String requestOBJ) throws Exception { rmnchmBeneficiarydetail.setGenderId(obj.getGenderId()); rmnchmBeneficiarydetail.setMaritalstatus(obj.getMaritalstatus()); rmnchmBeneficiarydetail.setMaritalstatusId(obj.getMaritalstatusId()); + rmnchmBeneficiarydetail.setPlaceOfCurrentLiving(obj.getPlaceOfCurrentLiving()); + rmnchmBeneficiarydetail.setOtherPlaceOfCurrentLiving(obj.getOtherPlaceOfCurrentLiving()); + rmnchmBeneficiarydetail.setInstitutionName(obj.getInstitutionName()); benDetailsList.add(rmnchmBeneficiarydetail); } } From d7d1e6d0b59d1a235570822151fb422ff21ae12c Mon Sep 17 00:00:00 2001 From: vishwab1 Date: Fri, 17 Jul 2026 16:26:37 +0530 Subject: [PATCH 6/8] chore(trace): log pinCode presence in i_bendemographics during syncDataToAmrit Co-Authored-By: Claude Sonnet 5 --- .../identity/service/rmnch/RmnchDataSyncServiceImpl.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/com/iemr/common/identity/service/rmnch/RmnchDataSyncServiceImpl.java b/src/main/java/com/iemr/common/identity/service/rmnch/RmnchDataSyncServiceImpl.java index 22a80eae..302e1723 100644 --- a/src/main/java/com/iemr/common/identity/service/rmnch/RmnchDataSyncServiceImpl.java +++ b/src/main/java/com/iemr/common/identity/service/rmnch/RmnchDataSyncServiceImpl.java @@ -190,6 +190,10 @@ public String syncDataToAmrit(String requestOBJ) throws Exception { obj.setBenRegId(benRegID); // Extract GPS from i_bendemographics JsonObject demog = benGpsMap.get(obj.getBenficieryid()); + System.out.println("[TRACE][Identity-API] syncDataToAmrit benficieryid=" + obj.getBenficieryid() + + " i_bendemographics.pinCode=" + (demog != null && demog.has("pinCode") && !demog.get("pinCode").isJsonNull() + ? demog.get("pinCode") : "ABSENT") + + " entity.getPinCode()=" + obj.getPinCode()); if (demog != null) { if (demog.has("latitude") && !demog.get("latitude").isJsonNull()) obj.setGpsLatitude(demog.get("latitude").getAsDouble()); From c3aabc9a32fd4c0a9228688e1e55cdd49a15f3d7 Mon Sep 17 00:00:00 2001 From: vishwab1 Date: Mon, 20 Jul 2026 17:05:06 +0530 Subject: [PATCH 7/8] fix(household): accept Pincode key variant during RMNCH sync deserialization FLW-Mobile-App's Household.kt serializes the field as "Pincode" (capital P), but the entity had no @SerializedName so Gson's exact-case field matching against "pincode" silently dropped the value on every sync. Co-Authored-By: Claude Sonnet 5 --- .../iemr/common/identity/data/rmnch/RMNCHHouseHoldDetails.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/iemr/common/identity/data/rmnch/RMNCHHouseHoldDetails.java b/src/main/java/com/iemr/common/identity/data/rmnch/RMNCHHouseHoldDetails.java index b5137442..7105ba2e 100644 --- a/src/main/java/com/iemr/common/identity/data/rmnch/RMNCHHouseHoldDetails.java +++ b/src/main/java/com/iemr/common/identity/data/rmnch/RMNCHHouseHoldDetails.java @@ -204,6 +204,7 @@ public class RMNCHHouseHoldDetails { private String other_sourceofDrinkingWater; @Expose + @SerializedName(value = "pincode", alternate = "Pincode") @Column(name = "pincode") private Integer pincode; From fcead7143cf0c4894d88ea332d721d762274db42 Mon Sep 17 00:00:00 2001 From: vishwab1 Date: Mon, 20 Jul 2026 17:54:23 +0530 Subject: [PATCH 8/8] feat(household): add address column mapping to i_householddetails New address VARCHAR(500) column added to i_householddetails so household address can be captured once at HH Registration instead of being duplicated per-member on i_beneficiaryaddress. Accepts both "address" and "Address" keys during sync, following the same pattern as the earlier pincode key-case bug. Co-Authored-By: Claude Sonnet 5 --- .../common/identity/data/rmnch/RMNCHHouseHoldDetails.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/com/iemr/common/identity/data/rmnch/RMNCHHouseHoldDetails.java b/src/main/java/com/iemr/common/identity/data/rmnch/RMNCHHouseHoldDetails.java index 7105ba2e..f24f0904 100644 --- a/src/main/java/com/iemr/common/identity/data/rmnch/RMNCHHouseHoldDetails.java +++ b/src/main/java/com/iemr/common/identity/data/rmnch/RMNCHHouseHoldDetails.java @@ -112,6 +112,11 @@ public class RMNCHHouseHoldDetails { @Column(name = "familyName") private String familyName; + @Expose + @SerializedName(value = "address", alternate = "Address") + @Column(name = "address") + private String address; + @Expose @Column(name = "totalHhMembers") private Integer totalHhMembers;