diff --git a/README.md b/README.md
index b9176dec..bffbfc0a 100644
--- a/README.md
+++ b/README.md
@@ -30,10 +30,10 @@ This microservice is developed using Java and the Spring Boot framework, with My
Ensure that the following prerequisites are met before building the MMU service:
-* JDK 1.8
+* JDK 17
* Maven
* Redis
-* Spring Boot v2
+* Spring Boot v3
* MySQL
### Installation
@@ -47,7 +47,7 @@ To install the MMU module, please follow these steps:
4. Run the development server:
- Start the Redis server.
- Run the command `mvn spring-boot:run -DENV_VAR=local`.
-5. Open your browser and access `http://localhost:8080/swagger-ui.html#!/` to view the Swagger API documentation.
+5. Open your browser and access `http://localhost:8087/swagger-ui/index.html` to view the Swagger API documentation.
## Setting Up Commit Hooks
diff --git a/package.json b/package.json
index 78f95d7d..f8903554 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "mmu-api",
- "version": "1.0.0",
+ "version": "3.6.1",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"prepare": "husky",
diff --git a/pom.xml b/pom.xml
index f577db19..dd4e04a0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -37,6 +37,8 @@
reuseReports
${project.basedir}/../target/jacoco.exec
java
+ true
+
diff --git a/src/main/java/com/iemr/mmu/data/anc/ANCCareDetails.java b/src/main/java/com/iemr/mmu/data/anc/ANCCareDetails.java
index 36ba14ed..6733d848 100644
--- a/src/main/java/com/iemr/mmu/data/anc/ANCCareDetails.java
+++ b/src/main/java/com/iemr/mmu/data/anc/ANCCareDetails.java
@@ -185,6 +185,7 @@ public class ANCCareDetails {
public ANCCareDetails() {
super();
+ this.processed = "N";
// TODO Auto-generated constructor stub
}
diff --git a/src/main/java/com/iemr/mmu/data/anc/ANCWomenVaccineDetail.java b/src/main/java/com/iemr/mmu/data/anc/ANCWomenVaccineDetail.java
index c20e7f89..4bfefa01 100644
--- a/src/main/java/com/iemr/mmu/data/anc/ANCWomenVaccineDetail.java
+++ b/src/main/java/com/iemr/mmu/data/anc/ANCWomenVaccineDetail.java
@@ -130,6 +130,7 @@ public class ANCWomenVaccineDetail {
public ANCWomenVaccineDetail() {
super();
+ this.processed = "N";
// TODO Auto-generated constructor stub
}
diff --git a/src/main/java/com/iemr/mmu/repo/nurse/anc/ANCCareRepo.java b/src/main/java/com/iemr/mmu/repo/nurse/anc/ANCCareRepo.java
index f4632d66..46219dee 100644
--- a/src/main/java/com/iemr/mmu/repo/nurse/anc/ANCCareRepo.java
+++ b/src/main/java/com/iemr/mmu/repo/nurse/anc/ANCCareRepo.java
@@ -18,7 +18,7 @@
*
* 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.mmu.repo.nurse.anc;
import java.sql.Date;
@@ -37,43 +37,48 @@
@Repository
public interface ANCCareRepo extends CrudRepository {
- @Query(" SELECT ID, beneficiaryRegID, benVisitID, providerServiceMapID, visitCode, visitNo, comolaintType, duration, description, "
- + " lastMenstrualPeriod_LMP, gestationalAgeOrPeriodofAmenorrhea_POA, trimesterNumber, expectedDateofDelivery, "
- + "primiGravida, gravida_G, termDeliveries_T, pretermDeliveries_P, abortions_A, livebirths_L, bloodGroup, stillBirth "
- + "from ANCCareDetails ba WHERE ba.beneficiaryRegID = :benRegID AND visitCode = :visitCode")
- public ArrayList getANCCareDetails(@Param("benRegID") Long benRegID, @Param("visitCode") Long visitCode);
+ @Query(" SELECT ID, beneficiaryRegID, benVisitID, providerServiceMapID, visitCode, visitNo, comolaintType, duration, description, "
+ + " lastMenstrualPeriod_LMP, gestationalAgeOrPeriodofAmenorrhea_POA, trimesterNumber, expectedDateofDelivery, "
+ + "primiGravida, gravida_G, termDeliveries_T, pretermDeliveries_P, abortions_A, livebirths_L, bloodGroup, stillBirth "
+ + "from ANCCareDetails ba WHERE ba.beneficiaryRegID = :benRegID AND visitCode = :visitCode")
+ public ArrayList getANCCareDetails(@Param("benRegID") Long benRegID, @Param("visitCode") Long visitCode);
- @Query(" SELECT processed from ANCCareDetails where beneficiaryRegID=:benRegID AND visitCode = :visitCode")
- public String getBenANCCareDetailsStatus(@Param("benRegID") Long benRegID, @Param("visitCode") Long visitCode);
+ @Query(" SELECT processed from ANCCareDetails where beneficiaryRegID=:benRegID AND visitCode = :visitCode")
+ public String getBenANCCareDetailsStatus(@Param("benRegID") Long benRegID, @Param("visitCode") Long visitCode);
- @Transactional
- @Modifying
- @Query("update ANCCareDetails set comolaintType=:comolaintType, duration=:duration, description=:description, "
- + "lastMenstrualPeriod_LMP=:lastMenstrualPeriod_LMP, "
- + "gestationalAgeOrPeriodofAmenorrhea_POA=:gestationalAgeOrPeriodofAmenorrhea_POA,"
- + "trimesterNumber=:trimesterNumber, expectedDateofDelivery=:expectedDateofDelivery, primiGravida=:primiGravida, "
- + "gravida_G=:gravida_G, termDeliveries_T=:termDeliveries_T, pretermDeliveries_P=:pretermDeliveries_P,"
- + "abortions_A=:abortions_A,livebirths_L=:livebirths_L, bloodGroup=:bloodGroup, modifiedBy=:modifiedBy, processed=:processed, "
- + " stillBirth =:stillBirth " + " where visitCode=:visitCode AND beneficiaryRegID=:beneficiaryRegID")
- public int updateANCCareDetails(@Param("comolaintType") String comolaintType, @Param("duration") String duration,
- @Param("description") String description, @Param("lastMenstrualPeriod_LMP") Date lastMenstrualPeriod_LMP,
- @Param("gestationalAgeOrPeriodofAmenorrhea_POA") Short gestationalAgeOrPeriodofAmenorrhea_POA,
- @Param("trimesterNumber") Short trimesterNumber,
- @Param("expectedDateofDelivery") Date expectedDateofDelivery, @Param("primiGravida") Boolean primiGravida,
- @Param("gravida_G") Short gravida_G, @Param("termDeliveries_T") Short termDeliveries_T,
- @Param("pretermDeliveries_P") Short pretermDeliveries_P, @Param("abortions_A") Short abortions_A,
- @Param("livebirths_L") Short livebirths_L, @Param("bloodGroup") String bloodGroup,
- @Param("modifiedBy") String modifiedBy, @Param("processed") String processed,
- @Param("beneficiaryRegID") Long beneficiaryRegID, @Param("visitCode") Long visitCode,
- @Param("stillBirth") Integer stillBirth);
+ @Transactional
+ @Modifying
+ @Query("update ANCCareDetails set comolaintType=:comolaintType, duration=:duration, description=:description, "
+ + "lastMenstrualPeriod_LMP=:lastMenstrualPeriod_LMP, "
+ + "gestationalAgeOrPeriodofAmenorrhea_POA=:gestationalAgeOrPeriodofAmenorrhea_POA,"
+ + "trimesterNumber=:trimesterNumber, expectedDateofDelivery=:expectedDateofDelivery, primiGravida=:primiGravida, "
+ + "gravida_G=:gravida_G, termDeliveries_T=:termDeliveries_T, pretermDeliveries_P=:pretermDeliveries_P,"
+ + "abortions_A=:abortions_A,livebirths_L=:livebirths_L, bloodGroup=:bloodGroup, modifiedBy=:modifiedBy, processed=:processed, "
+ + " stillBirth =:stillBirth " + " where visitCode=:visitCode AND beneficiaryRegID=:beneficiaryRegID")
+ public int updateANCCareDetails(@Param("comolaintType") String comolaintType, @Param("duration") String duration,
+ @Param("description") String description, @Param("lastMenstrualPeriod_LMP") Date lastMenstrualPeriod_LMP,
+ @Param("gestationalAgeOrPeriodofAmenorrhea_POA") Short gestationalAgeOrPeriodofAmenorrhea_POA,
+ @Param("trimesterNumber") Short trimesterNumber,
+ @Param("expectedDateofDelivery") Date expectedDateofDelivery, @Param("primiGravida") Boolean primiGravida,
+ @Param("gravida_G") Short gravida_G, @Param("termDeliveries_T") Short termDeliveries_T,
+ @Param("pretermDeliveries_P") Short pretermDeliveries_P, @Param("abortions_A") Short abortions_A,
+ @Param("livebirths_L") Short livebirths_L, @Param("bloodGroup") String bloodGroup,
+ @Param("modifiedBy") String modifiedBy, @Param("processed") String processed,
+ @Param("beneficiaryRegID") Long beneficiaryRegID, @Param("visitCode") Long visitCode,
+ @Param("stillBirth") Integer stillBirth);
- @Query(nativeQuery = true, value = " SELECT t.bloodGroup from t_anccare t "
- + " where t.beneficiaryRegID=:benRegID ORDER BY t.lastModDate DESC limit 1 ")
- public String getBenANCCareDetailsStatus(@Param("benRegID") Long benRegID);
+ @Query(nativeQuery = true, value = " SELECT t.bloodGroup from t_anccare t "
+ + " where t.beneficiaryRegID=:benRegID ORDER BY t.lastModDate DESC limit 1 ")
+ public String getBenANCCareDetailsStatus(@Param("benRegID") Long benRegID);
- @Query(" SELECT a FROM ANCCareDetails a WHERE a.beneficiaryRegID = :benRegID "
- + " AND (a.gravida_G > 5 OR a.pretermDeliveries_P > 0 OR a.abortions_A > 0 OR a.stillBirth > 0 "
- + " OR (a.bloodGroup = 'A-Ve' OR a.bloodGroup = 'B-Ve' OR a.bloodGroup = 'O-Ve' OR a.bloodGroup = 'AB-Ve'))"
- + " AND a.deleted is false ")
- public ArrayList getANCCareDataForHRP(@Param("benRegID") Long benRegID);
+ @Query(" SELECT a FROM ANCCareDetails a WHERE a.beneficiaryRegID = :benRegID "
+ + " AND (a.gravida_G > 5 OR a.pretermDeliveries_P > 0 OR a.abortions_A > 0 OR a.stillBirth > 0 "
+ + " OR (a.bloodGroup = 'A-Ve' OR a.bloodGroup = 'B-Ve' OR a.bloodGroup = 'O-Ve' OR a.bloodGroup = 'AB-Ve'))"
+ + " AND a.deleted is false ")
+ public ArrayList getANCCareDataForHRP(@Param("benRegID") Long benRegID);
+
+ @Transactional
+ @Modifying
+ @Query(" UPDATE ANCCareDetails set vanSerialNo = :ID WHERE ID = :ID")
+ int updateVanSerialNo(@Param("ID") Long ID);
}
diff --git a/src/main/java/com/iemr/mmu/repo/nurse/anc/ANCWomenVaccineRepo.java b/src/main/java/com/iemr/mmu/repo/nurse/anc/ANCWomenVaccineRepo.java
index 63dfa5e0..988925e4 100644
--- a/src/main/java/com/iemr/mmu/repo/nurse/anc/ANCWomenVaccineRepo.java
+++ b/src/main/java/com/iemr/mmu/repo/nurse/anc/ANCWomenVaccineRepo.java
@@ -18,7 +18,7 @@
*
* 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.mmu.repo.nurse.anc;
import java.sql.Date;
@@ -35,29 +35,33 @@
import jakarta.transaction.Transactional;
@Repository
-public interface ANCWomenVaccineRepo extends CrudRepository{
-
- @Query(" SELECT ID, beneficiaryRegID, benVisitID, providerServiceMapID, vaccineName, status, receivedDate, receivedFacilityName, visitCode "
- + "from ANCWomenVaccineDetail ba WHERE ba.beneficiaryRegID = :benRegID AND ba.visitCode = :visitCode")
- public ArrayList getANCWomenVaccineDetails(@Param("benRegID") Long benRegID,
- @Param("visitCode") Long visitCode);
-
- @Query(" SELECT vaccineName, processed from ANCWomenVaccineDetail where beneficiaryRegID=:benRegID AND visitCode = :visitCode AND deleted = false")
- public ArrayList getBenANCWomenVaccineStatus(@Param("benRegID") Long benRegID,
- @Param("visitCode") Long visitCode);
-
- @Transactional
- @Modifying
- @Query("update ANCWomenVaccineDetail set status=:status, receivedDate=:receivedDate, receivedFacilityName=:receivedFacilityName, "
- + "modifiedBy=:modifiedBy, processed=:processed "
- + "where visitCode=:visitCode AND beneficiaryRegID=:beneficiaryRegID AND vaccineName=:vaccineName")
- public int updateANCImmunizationDetails(@Param("status") String status,
- @Param("receivedDate") Date receivedDate,
- @Param("receivedFacilityName") String receivedFacilityName,
- @Param("modifiedBy") String modifiedBy,
- @Param("processed") String processed,
- @Param("beneficiaryRegID") Long beneficiaryRegID,
- @Param("visitCode") Long visitCode,
- @Param("vaccineName") String vaccineName);
-
+public interface ANCWomenVaccineRepo extends CrudRepository {
+
+ @Query(" SELECT ID, beneficiaryRegID, benVisitID, providerServiceMapID, vaccineName, status, receivedDate, receivedFacilityName, visitCode "
+ + "from ANCWomenVaccineDetail ba WHERE ba.beneficiaryRegID = :benRegID AND ba.visitCode = :visitCode")
+ public ArrayList getANCWomenVaccineDetails(@Param("benRegID") Long benRegID,
+ @Param("visitCode") Long visitCode);
+
+ @Query(" SELECT vaccineName, processed from ANCWomenVaccineDetail where beneficiaryRegID=:benRegID AND visitCode = :visitCode AND deleted = false")
+ public ArrayList getBenANCWomenVaccineStatus(@Param("benRegID") Long benRegID,
+ @Param("visitCode") Long visitCode);
+
+ @Transactional
+ @Modifying
+ @Query("update ANCWomenVaccineDetail set status=:status, receivedDate=:receivedDate, receivedFacilityName=:receivedFacilityName, "
+ + "modifiedBy=:modifiedBy, processed=:processed "
+ + "where visitCode=:visitCode AND beneficiaryRegID=:beneficiaryRegID AND vaccineName=:vaccineName")
+ public int updateANCImmunizationDetails(@Param("status") String status,
+ @Param("receivedDate") Date receivedDate,
+ @Param("receivedFacilityName") String receivedFacilityName,
+ @Param("modifiedBy") String modifiedBy,
+ @Param("processed") String processed,
+ @Param("beneficiaryRegID") Long beneficiaryRegID,
+ @Param("visitCode") Long visitCode,
+ @Param("vaccineName") String vaccineName);
+
+ @Transactional
+ @Modifying
+ @Query(" UPDATE ANCWomenVaccineDetail set vanSerialNo = :ID WHERE ID = :ID")
+ int updateVanSerialNo(@Param("ID") Long ID);
}
diff --git a/src/main/java/com/iemr/mmu/service/anc/ANCNurseServiceImpl.java b/src/main/java/com/iemr/mmu/service/anc/ANCNurseServiceImpl.java
index 1abc07bd..8a31c636 100644
--- a/src/main/java/com/iemr/mmu/service/anc/ANCNurseServiceImpl.java
+++ b/src/main/java/com/iemr/mmu/service/anc/ANCNurseServiceImpl.java
@@ -141,50 +141,45 @@ public Integer saveBenInvestigationFromDoc(WrapperBenInvestigationANC wrapperBen
} else {
r = 1;
}
- }
- return r;
- }
-
-
- @Override
- public Long saveBenAncCareDetails
- (ANCCareDetails ancCareDetailsOBJ) throws ParseException {
- Long ancCareSuccessFlag = null;
- if (ancCareDetailsOBJ.getLmpDate() != null && !ancCareDetailsOBJ.getLmpDate().isEmpty()
- && ancCareDetailsOBJ.getLmpDate().length() >= 10) {
- String lmpDate = ancCareDetailsOBJ.getLmpDate().split("T")[0];
- ancCareDetailsOBJ
- .setLastMenstrualPeriod_LMP(new Date(new SimpleDateFormat("yyyy-MM-dd").parse(lmpDate).getTime()));
- }
- if (ancCareDetailsOBJ.getExpDelDt() != null && !ancCareDetailsOBJ.getExpDelDt().isEmpty()
- && ancCareDetailsOBJ.getExpDelDt().length() >= 10) {
- String edDate = ancCareDetailsOBJ.getExpDelDt().split("T")[0];
- ancCareDetailsOBJ
- .setExpectedDateofDelivery(new Date(new SimpleDateFormat("yyyy-MM-dd").parse(edDate).getTime()));
- }
- ANCCareDetails ancCareDetailsRS = ancCareRepo.save(ancCareDetailsOBJ);
- if (ancCareDetailsRS != null) {
- ancCareDetailsRS.setVanSerialNo((ancCareDetailsRS.getID()));
- ancCareSuccessFlag = ancCareDetailsRS.getID();
- }
- return ancCareSuccessFlag;
}
+ return r;
+ }
- @Override
- public Long saveAncImmunizationDetails
- (WrapperAncImmunization wrapperAncImmunizationOBJ) throws ParseException {
- Long successFlag = null;
- List ancWomenVaccineDetailList = getANCWomenVaccineDetail(wrapperAncImmunizationOBJ);
- List ancWomenVaccineDetailRSList = (List) ancWomenVaccineRepo
- .saveAll(ancWomenVaccineDetailList);
- if (!ancWomenVaccineDetailRSList.isEmpty()) {
- ancWomenVaccineDetailRSList.get(0).setVanSerialNo(ancWomenVaccineDetailRSList.get(0).getID());
- successFlag = ancWomenVaccineDetailRSList.get(0).getID();
- }
- return successFlag;
+ @Override
+ public Long saveBenAncCareDetails(ANCCareDetails ancCareDetailsOBJ) throws ParseException {
+ Long ancCareSuccessFlag = null;
+ if (ancCareDetailsOBJ.getLmpDate() != null && !ancCareDetailsOBJ.getLmpDate().isEmpty()
+ && ancCareDetailsOBJ.getLmpDate().length() >= 10) {
+ String lmpDate = ancCareDetailsOBJ.getLmpDate().split("T")[0];
+ ancCareDetailsOBJ
+ .setLastMenstrualPeriod_LMP(new Date(new SimpleDateFormat("yyyy-MM-dd").parse(lmpDate).getTime()));
+ }
+ if (ancCareDetailsOBJ.getExpDelDt() != null && !ancCareDetailsOBJ.getExpDelDt().isEmpty()
+ && ancCareDetailsOBJ.getExpDelDt().length() >= 10) {
+ String edDate = ancCareDetailsOBJ.getExpDelDt().split("T")[0];
+ ancCareDetailsOBJ
+ .setExpectedDateofDelivery(new Date(new SimpleDateFormat("yyyy-MM-dd").parse(edDate).getTime()));
+ }
+ ANCCareDetails ancCareDetailsRS = ancCareRepo.save(ancCareDetailsOBJ);
+ if (ancCareDetailsRS != null) {
+ ancCareRepo.updateVanSerialNo(ancCareDetailsRS.getID());
+ ancCareSuccessFlag = ancCareDetailsRS.getID();
}
+ return ancCareSuccessFlag;
+ }
-
+ @Override
+ public Long saveAncImmunizationDetails(WrapperAncImmunization wrapperAncImmunizationOBJ) throws ParseException {
+ Long successFlag = null;
+ List ancWomenVaccineDetailList = getANCWomenVaccineDetail(wrapperAncImmunizationOBJ);
+ List ancWomenVaccineDetailRSList = (List) ancWomenVaccineRepo
+ .saveAll(ancWomenVaccineDetailList);
+ if (!ancWomenVaccineDetailRSList.isEmpty()) {
+ ancWomenVaccineRepo.updateVanSerialNo(ancWomenVaccineDetailRSList.get(0).getID());
+ successFlag = ancWomenVaccineDetailRSList.get(0).getID();
+ }
+ return successFlag;
+ }
private List getANCWomenVaccineDetail(WrapperAncImmunization wrapperAncImmunizationOBJ)
throws ParseException {
diff --git a/src/main/java/com/iemr/mmu/service/common/transaction/CommonNurseServiceImpl.java b/src/main/java/com/iemr/mmu/service/common/transaction/CommonNurseServiceImpl.java
index a7efa9d4..652a61ee 100644
--- a/src/main/java/com/iemr/mmu/service/common/transaction/CommonNurseServiceImpl.java
+++ b/src/main/java/com/iemr/mmu/service/common/transaction/CommonNurseServiceImpl.java
@@ -2963,7 +2963,7 @@ private double getQtyForOneDay(String form, String dose, String frequency) {
}
} else {
if (frequency.equalsIgnoreCase("Single Dose") || frequency.equalsIgnoreCase("Stat Dose")||
- frequency.equalsIgnoreCase("Single Dose Before Food") || frequency.equalsIgnoreCase("Single Dose After Food")) {
+ frequency.equalsIgnoreCase("Single Dose Before Food") || frequency.equalsIgnoreCase("Single Dose After Food")) {
if (form.equalsIgnoreCase("Tablet")) {
if (dose.equalsIgnoreCase("Half Tab")) {
qtyInOneDay = .5;
diff --git a/src/main/java/com/iemr/mmu/service/dataSyncLayerCentral/GetDataFromVanAndSyncToDBImpl.java b/src/main/java/com/iemr/mmu/service/dataSyncLayerCentral/GetDataFromVanAndSyncToDBImpl.java
index 3205007c..c0e508cd 100644
--- a/src/main/java/com/iemr/mmu/service/dataSyncLayerCentral/GetDataFromVanAndSyncToDBImpl.java
+++ b/src/main/java/com/iemr/mmu/service/dataSyncLayerCentral/GetDataFromVanAndSyncToDBImpl.java
@@ -454,7 +454,7 @@ private boolean performGenericTableSync(SyncUploadDataDigester syncUploadDataDig
List currentRecordValues = new ArrayList<>();
for (String column : serverColumnsList) {
- logger.info("Column="+column);
+ logger.debug("Column="+column);
Object value = cleanRecord.get(column.trim());
// CRITICAL FIX: Don't convert null to string
if (value == null) {
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index c2e28213..d1f926a2 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -56,13 +56,8 @@ logging.level.org.apache.tomcat.jdbc.pool=DEBUG
# Connection timeout - time to establish connection
spring.mvc.async.request-timeout=600000
-# HTTP client timeouts for RestTemplate
-rest.connection.timeout=60000
-rest.read.timeout=600000
-rest.socket.timeout=600000
-
-# ============= SERVER TIMEOUT =============
-# Tomcat connection timeout
-server.connection-timeout=600000
-server.tomcat.connection-timeout=600000
+# ============= SERVER TIMEOUT (Undertow) =============
+# Undertow settings (the actual server in use - WildFly/JBoss)
+server.undertow.no-request-timeout=600000
+server.undertow.max-http-post-size=-1