Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
db1c562
Update pom.xml
5Amogh Sep 25, 2025
6e0d0f7
Merge Release 3.6.2 to Main (#163)
vanitha1822 May 22, 2026
93d4390
feat: write anthropometry from rmnch/syncDataToAmrit to i_beneficiary…
vishwab1 Jun 5, 2026
1f4fa23
feat: stamp vanID from Redis on all 4 RMNCH entities in syncDataToAmrit
vishwab1 Jun 5, 2026
09d88f6
fix: preserve @Transient anthropometry fields lost after JPA saveAll …
vishwab1 Jun 5, 2026
23675d2
fix: prevent camp:vanID deletion on every syncDataToAmrit call
vishwab1 Jun 12, 2026
68df190
feat(stoptb): add stoptb.enforce.vanid flag to syncDataToAmrit
vishwab1 Jun 16, 2026
caa8e34
chore: bump version to 3.8.2
vishwab1 Jun 16, 2026
5367efa
fix duplicate ben id issue
SauravBizbRolly Jun 16, 2026
effbfcc
Merge branch 'release-3.6.2' into release-3.9.0
SauravBizbRolly Jun 17, 2026
8d83a9a
save abha id in health maping with beneficiaryID
SauravBizbRolly Jun 17, 2026
3b7dd52
abha id add in entity class
SauravBizbRolly Jun 17, 2026
1d8dbe7
abha id add in entity class
SauravBizbRolly Jun 17, 2026
1801efe
abha id add in entity class
SauravBizbRolly Jun 17, 2026
594ab59
abha id add in entity class
SauravBizbRolly Jun 17, 2026
ec021c4
abha id add in entity class
SauravBizbRolly Jun 17, 2026
5a83005
abha id add in entity class
SauravBizbRolly Jun 17, 2026
32db7e1
abha id add in entity class
SauravBizbRolly Jun 17, 2026
a90fe13
abha id add in entity class
SauravBizbRolly Jun 17, 2026
8185f5a
feat(STOP-148): add GPS location capture support for beneficiary and …
sehjotsinghunthinkable Jun 18, 2026
c520cdc
feat(STOP-148): add GPS location capture support for beneficiary and …
sehjotsinghunthinkable Jun 18, 2026
e4b7067
feat: stamp vanID from Redis on all 4 RMNCH entities in syncDataToAmrit
vishwab1 Jun 5, 2026
7583620
fix: preserve @Transient anthropometry fields lost after JPA saveAll …
vishwab1 Jun 5, 2026
0ad7988
fix: prevent camp:vanID deletion on every syncDataToAmrit call
vishwab1 Jun 12, 2026
11ffc75
feat(stoptb): add stoptb.enforce.vanid flag to syncDataToAmrit
vishwab1 Jun 16, 2026
0dc4c38
chore: bump version to 3.8.2
vishwab1 Jun 16, 2026
bdbf7c9
duplicate ben id issue
SauravBizbRolly Jun 17, 2026
69cfd19
Add server urls and update swagger workflow (#135)
DurgaPrasad-54 Feb 17, 2026
6e735bf
feat(STOP-148): add GPS location capture support for beneficiary and …
sehjotsinghunthinkable Jun 18, 2026
085e541
Merge remote-tracking branch 'sehjot/feature/STOP-148-capture-latitud…
vishwab1 Jun 18, 2026
02ffadf
feat(STOP-148): add GPS location capture support for beneficiary and …
vishwab1 Jun 19, 2026
59dbd6c
Merge pull request #169 from PSMRI/feature/save_health_id_in_health_m…
SauravBizbRolly Jun 19, 2026
dc2ad36
abha id add in entity class
SauravBizbRolly Jun 22, 2026
03ad7fe
fix: fail open on Redis errors in token denylist check
vishwab1 Jun 22, 2026
a41ac60
Revert "fix: fail open on Redis errors in token denylist check"
vishwab1 Jun 22, 2026
4eefea7
fix(STOP-148): use InputMapper Gson for createIdentity to parse epoch…
vishwab1 Jun 22, 2026
107d6a9
Merge branch 'release-3.6.2' into release-3.8.0
SauravBizbRolly Jun 24, 2026
f1ec971
fixed issue of Query did not return a unique result: 2 results were r…
SauravBizbRolly Jun 24, 2026
ad138d7
fixed issue of Query did not return a unique result: 2 results were r…
SauravBizbRolly Jun 24, 2026
37f9ebd
fix(datasync): add vanID column to BenGenID import INSERT query
vishwab1 Jun 30, 2026
40924cb
Merge branch 'main' into release-3.8.0
snehar-nd Jun 30, 2026
83b6046
attach logger in response
SauravBizbRolly Jul 3, 2026
45d2e03
Merge pull request #171 from PSMRI/release-3.8.0
snehar-nd Jul 6, 2026
3788c85
fix duplicate issue
SauravBizbRolly Jul 6, 2026
b53a968
fix(rmnch): surface pinCode in beneficiary details sync response
vishwab1 Jul 7, 2026
c0f6dea
Tuned DB connection pools and enable response compression (#172)
sehjotsinghunthinkable Jul 9, 2026
2ee4586
chore: add trace logging to /id/create for registerNew debugging
vishwab1 Jul 11, 2026
f2c0d9a
chore: add trace logging to syncDataToAmrit
vishwab1 Jul 11, 2026
5696472
Fix the Elasticsearch Health Status (#173)
vanitha1822 Jul 14, 2026
ff5c97b
chore(dob): add debug trace logging at DTO->entity mapping and around…
vishwab1 Jul 17, 2026
8a71249
feat(household): add totalHhMembers and registeredAtCampSite fields
vishwab1 Jul 17, 2026
c130590
Adding placeOfCurrentLiving, otherPlaceOfCurrentLiving and institutio…
sehjotsinghunthinkable Jul 16, 2026
d7d1e6d
chore(trace): log pinCode presence in i_bendemographics during syncDa…
vishwab1 Jul 17, 2026
76a678a
Revert "Tuned DB connection pools and enable response compression (#1…
vishwab1 Jul 18, 2026
8e586fe
fix(dob): stop global Timestamp adapter from nulling dob on GPS-enabl…
vishwab1 Jul 18, 2026
5675b62
Merge pull request #176 from PSMRI/vb/counselling
SauravBizbRolly Jul 20, 2026
c3aabc9
fix(household): accept Pincode key variant during RMNCH sync deserial…
vishwab1 Jul 20, 2026
fcead71
feat(household): add address column mapping to i_householddetails
vishwab1 Jul 20, 2026
11e1d53
Merge branch 'release-3.8.3' into vb/visit
vishwab1 Jul 27, 2026
04dcdf4
Merge pull request #178 from PSMRI/vb/visit
SauravBizbRolly Jul 27, 2026
26032ed
Merge 3.8.2 code (#177)
vishwab1 Jul 28, 2026
cd5de78
feat(household): add totalHhMembers and registeredAtCampSite fields
vishwab1 Jul 17, 2026
439a64f
feat(rmnch): add placeOfCurrentLiving, otherPlaceOfCurrentLiving, ins…
vishwab1 Jul 29, 2026
5d72275
fix(household): accept Pincode key variant during RMNCH sync deserial…
vishwab1 Jul 20, 2026
f6cc245
feat(household): add address column mapping to i_householddetails
vishwab1 Jul 20, 2026
1e08d4b
chore(merge): bring release-3.8.3 into vb/release-3.8.3-fix
vishwab1 Jul 29, 2026
2783f7d
chore(release): bump version to 3.8.3
vishwab1 Jul 29, 2026
1e13cfa
Merge pull request #179 from PSMRI/vb/release-3.8.3-pom
SauravBizbRolly Jul 29, 2026
95ee1d1
Merge remote-tracking branch 'origin/release-3.8.3' into vb/release-3…
vishwab1 Aug 5, 2026
912e63e
Merge pull request #180 from PSMRI/vb/release-3.8.3-fix-merge
SauravBizbRolly Aug 5, 2026
298a1fa
fix(rmnch): stop garbage device timestamps from corrupting CreatedDate
vishwab1 Aug 5, 2026
4bef2ec
Merge pull request #181 from PSMRI/vb/release-3.8.3-fix-merge
SauravBizbRolly Aug 5, 2026
001d509
fix(stoptb): enforce vanID in createIdentity(), require explicit enfo…
vishwab1 Aug 6, 2026
d28cfb9
chore: merge origin/release-3.8.3 into van
vishwab1 Aug 6, 2026
66d3d0f
Merge pull request #182 from PSMRI/van
SauravBizbRolly Aug 6, 2026
c8a8560
fix(stoptb): fix RMNCH VanID placeholder-zero and id/VanSerialNo coll…
vishwab1 Aug 6, 2026
0227820
Merge pull request #183 from PSMRI/van
SauravBizbRolly Aug 6, 2026
20f1c9f
fix(stoptb): read vanID from stoptb.van.id property instead of Redis
vishwab1 Aug 9, 2026
2f88175
Merge pull request #184 from PSMRI/vb/release-3.8.3-van-env-fix
SauravBizbRolly Aug 9, 2026
149b503
Removing duplicate fields in i_beneficiaryaddress table (#186)
sehjotsinghunthinkable Aug 13, 2026
c006d44
Merge pull request #187 from PSMRI/vb/release-3.8.3-van-env-fix
SauravBizbRolly Aug 13, 2026
0efcb9c
Merge release-3.9.0 into vb/release-3.9.0-merge (base: release-3.8.3)
vishwab1 Sep 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.iemr.common.identity</groupId>
<artifactId>identity-api</artifactId>
<version>3.9.0</version>
<version>3.8.3</version>

<packaging>war</packaging>

Expand Down
8 changes: 8 additions & 0 deletions src/main/environment/1097_ci.properties
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,11 @@ elasticsearch.index.beneficiary=@env.ELASTICSEARCH_INDEX_BENEFICIARY@
# Enable/Disable ES (for gradual rollout)
elasticsearch.enabled=@env.ELASTICSEARCH_ENABLED@

# Van/local-laptop deployments only. The 1097 service is not a van deployment, so this
# stays false β€” but must still be set explicitly, since IdentityService.java (shared with
# the common_* build) now requires this property with no inline default.
stoptb.enforce.vanid=false
# Same reasoning β€” not a van deployment, but RmnchDataSyncServiceImpl (shared with the
# common_* build) now requires this property explicitly, no inline default.
stoptb.van.id=0

8 changes: 8 additions & 0 deletions src/main/environment/1097_docker.properties
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,11 @@ elasticsearch.index.beneficiary=${ELASTICSEARCH_INDEX_BENEFICIARY}
# Enable/Disable ES (for gradual rollout)
elasticsearch.enabled=${ELASTICSEARCH_ENABLED}

# Van/local-laptop deployments only. The 1097 service is not a van deployment, so this
# stays false β€” but must still be set explicitly, since IdentityService.java (shared with
# the common_* build) now requires this property with no inline default.
stoptb.enforce.vanid=false
# Same reasoning β€” not a van deployment, but RmnchDataSyncServiceImpl (shared with the
# common_* build) now requires this property explicitly, no inline default.
stoptb.van.id=0

8 changes: 8 additions & 0 deletions src/main/environment/1097_example.properties
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,11 @@ elasticsearch.index.beneficiary=beneficiary_index
# Enable/Disable ES (for gradual rollout)
elasticsearch.enabled=true

# Van/local-laptop deployments only. The 1097 service is not a van deployment, so this
# stays false β€” but must still be set explicitly, since IdentityService.java (shared with
# the common_* build) now requires this property with no inline default.
stoptb.enforce.vanid=false
# Same reasoning β€” not a van deployment, but RmnchDataSyncServiceImpl (shared with the
# common_* build) now requires this property explicitly, no inline default.
stoptb.van.id=0

5 changes: 5 additions & 0 deletions src/main/environment/common_ci.properties
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@ fhir-url=@env.FHIR_API@
# Redis Config
spring.redis.host=@env.REDIS_HOST@

# Stop TB: when true, RMNCH data sync fails with an error if camp (vanID) is not configured
stoptb.enforce.vanid=@env.STOPTB_ENFORCE_VANID@
# Stop TB: this deployment's van/camp ID, replacing the old Redis camp:vanID lookup
stoptb.van.id=@env.STOPTB_VAN_ID@

cors.allowed-origins=@env.CORS_ALLOWED_ORIGINS@

# Elasticsearch Configuration
Expand Down
5 changes: 5 additions & 0 deletions src/main/environment/common_docker.properties
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@ fhir-url=${FHIR_API}
# Redis Config
spring.redis.host=${REDIS_HOST}

# Stop TB: when true, RMNCH data sync fails with an error if camp (vanID) is not configured
stoptb.enforce.vanid=${STOPTB_ENFORCE_VANID}
# Stop TB: this deployment's van/camp ID, replacing the old Redis camp:vanID lookup
stoptb.van.id=${STOPTB_VAN_ID}

cors.allowed-origins=${CORS_ALLOWED_ORIGINS}

# Elasticsearch Configuration
Expand Down
7 changes: 7 additions & 0 deletions src/main/environment/common_example.properties
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,13 @@ fhir-url=http://localhost:8093/

# Redis Config
spring.redis.host=localhost

# Stop TB: when true, RMNCH data sync fails with an error if camp (vanID) is not
# configured instead of silently skipping vanID stamping
stoptb.enforce.vanid=false
# Stop TB: this deployment's van/camp ID, replacing the old Redis camp:vanID lookup
stoptb.van.id=0

cors.allowed-origins=http://localhost:*

# Elasticsearch Configuration
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -607,7 +607,12 @@ 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");


// Bare Gson matches Common-API's RegisterBenificiaryServiceImpl, which also
// serializes the outgoing identity payload with a bare new Gson(). dob relies
// on this symmetric default format; gpsTimestamp is still parsed correctly via
// its field-level @JsonAdapter(GpsTimestampAdapter.class) on Address, which
// works regardless of which Gson instance performs the parse.
IdentityDTO identity = new Gson().fromJson(identityData, IdentityDTO.class);
logger.info("identity hit: " + identity);
BeneficiaryCreateResp map;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,12 +59,17 @@ public class RMNCHMobileAppController {

@PostMapping(value = "/syncDataToAmrit", consumes = "application/json", produces = "application/json")
@Operation(summary = "Sync data to AMRIT for already regestered beneficiary with AMRIT beneficiary id ")
public String syncDataToAmrit(@RequestBody String requestOBJ) {
public String syncDataToAmrit(@RequestBody String requestOBJ,@RequestHeader(value = "jwttoken") String authorization) {
OutputResponse response = new OutputResponse();
try {
if (requestOBJ != null) {
String s = rmnchDataSyncService.syncDataToAmrit(requestOBJ);

String s = rmnchDataSyncService.syncDataToAmrit(requestOBJ,authorization);
logger.info("syncDataToAmrit Response: {}", s);

response.setResponse(s);

logger.info(" syncDataToAmrit Final API Response: {}", response.toString());
} else
response.setError(5000, "Invalid/NULL request obj");
} catch (Exception e) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@
import jakarta.persistence.Transient;

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.JsonAdapter;
import com.iemr.common.identity.mapper.GpsTimestampAdapter;

import lombok.Data;

Expand Down Expand Up @@ -390,6 +392,9 @@ public class RMNCHBeneficiaryDetailsRmnch {
@Expose
@Transient
private String addressLine3;
@Expose
@Transient
private String pinCode;

// ----------------------------------------------

Expand Down Expand Up @@ -527,6 +532,15 @@ public class RMNCHBeneficiaryDetailsRmnch {
@Expose
private String otherPlaceOfDeath;

@Expose
private String placeOfCurrentLiving;

@Expose
private String otherPlaceOfCurrentLiving;

@Expose
private String institutionName;

@Expose
private Boolean isSpouseAdded;

Expand All @@ -550,4 +564,52 @@ public class RMNCHBeneficiaryDetailsRmnch {
@Expose
private Boolean isDeactivate;

@Expose
@Transient
private String abhaId;

@Expose
@Transient
private String familyId;

// Anthropometry fields sent by Stop TB mobile app via beneficiaryDetails payload.
// i_beneficiarydetails_rmnch has no these columns β€” stored in i_beneficiarydetails.otherFields instead.
@Expose
@Transient
private Double height;
@Expose
@Transient
private Double weight;
@Expose
@Transient
private Double bmi;
@Expose
@Transient
private Double temperature; // stored as "temperatureValue" in otherFields to match getBeneficiaryData key

@Expose
@Column(name = "gpsLatitude")
private Double gpsLatitude;

@Expose
@Column(name = "gpsLongitude")
private Double gpsLongitude;

@Expose
@Column(name = "digipin")
private String digipin;

@Expose
@Column(name = "gpsTimestamp")
@JsonAdapter(GpsTimestampAdapter.class)
private Timestamp gpsTimestamp;

@Expose
@Column(name = "isGpsUnavailable", nullable = false, columnDefinition = "TINYINT(1) DEFAULT 0")
private Boolean isGpsUnavailable = false;

@Expose
@Column(name = "gpsUnavailableReason")
private String gpsUnavailableReason;

}
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
/*
* AMRIT – Accessible Medical Records via Integrated Technology
* Integrated EHR (Electronic Health Records) Solution
*
* Copyright (C) "Piramal Swasthya Management and Research Institute"
*
* This file is part of AMRIT.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see https://www.gnu.org/licenses/.
*/
* AMRIT – Accessible Medical Records via Integrated Technology
* Integrated EHR (Electronic Health Records) Solution
*
* Copyright (C) "Piramal Swasthya Management and Research Institute"
*
* This file is part of AMRIT.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see https://www.gnu.org/licenses/.
*/
package com.iemr.common.identity.data.rmnch;

import java.sql.Timestamp;
Expand All @@ -31,11 +31,14 @@
import jakarta.persistence.Table;

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.JsonAdapter;
import com.google.gson.annotations.SerializedName;
import com.iemr.common.identity.mapper.GpsTimestampAdapter;

import lombok.Data;

/**
*
*
* @author de40034072
*
*/
Expand Down Expand Up @@ -111,6 +114,23 @@ 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;

@Expose
@Column(name = "registeredAtCampSite")
private String registeredAtCampSite;

@Expose
@Column(name = "registeredAtCampSiteId")
private Integer registeredAtCampSiteId;

@Expose
@Column(name = "fuelUsed")
private String fuelUsed;
Expand Down Expand Up @@ -191,6 +211,7 @@ public class RMNCHHouseHoldDetails {
private String other_sourceofDrinkingWater;

@Expose
@SerializedName(value = "pincode", alternate = "Pincode")
@Column(name = "pincode")
private Integer pincode;

Expand Down Expand Up @@ -359,4 +380,31 @@ public class RMNCHHouseHoldDetails {
@Column(name = "mohallaName")
private String mohallaName;

@Expose
@SerializedName("latitude")
@Column(name = "gpsLatitude")
private Double gpsLatitude;

@Expose
@SerializedName("longitude")
@Column(name = "gpsLongitude")
private Double gpsLongitude;

@Expose
@Column(name = "digipin")
private String digipin;

@Expose
@Column(name = "gpsTimestamp")
@JsonAdapter(GpsTimestampAdapter.class)
private Timestamp gpsTimestamp;

@Expose
@Column(name = "isGpsUnavailable", nullable = false, columnDefinition = "TINYINT(1) DEFAULT 0")
private Boolean isGpsUnavailable = false;

@Expose
@Column(name = "gpsUnavailableReason")
private String gpsUnavailableReason;

}
Original file line number Diff line number Diff line change
Expand Up @@ -214,4 +214,21 @@ public class RMNCHMBeneficiarydetail {
@Expose
@Transient
private Integer ProviderServiceMapID;

@Expose
@Transient
private String abhaId;

@Expose
@Column(name = "familyid")
private String familyId;

@Expose
private String placeOfCurrentLiving;

@Expose
private String otherPlaceOfCurrentLiving;

@Expose
private String institutionName;
}
12 changes: 12 additions & 0 deletions src/main/java/com/iemr/common/identity/domain/Address.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,11 @@

import lombok.Data;

import java.sql.Timestamp;

import com.google.gson.annotations.JsonAdapter;
import com.iemr.common.identity.mapper.GpsTimestampAdapter;

public @Data class Address {
private String addrLine1;
private String addrLine2;
Expand Down Expand Up @@ -51,4 +56,11 @@

private Integer vanID;
private Integer parkingPlaceID;
private Double gpsLatitude;
private Double gpsLongitude;
private String digipin;
@JsonAdapter(GpsTimestampAdapter.class)
private Timestamp gpsTimestamp;
private Boolean isGpsUnavailable;
private String gpsUnavailableReason;
}
Loading
Loading