Skip to content

Conversation

@vanitha1822
Copy link
Member

@vanitha1822 vanitha1822 commented Feb 9, 2026

πŸ“‹ Description

JIRA ID:

AMM-1324


βœ… Type of Change

  • ✨ New feature (non-breaking change which adds functionality)

Summary by CodeRabbit

Release Notes - Version 3.6.1

  • New Features

    • Added Elasticsearch-powered universal and advanced search capabilities for beneficiary lookup.
    • Introduced user verification endpoint for username-based user lookup.
    • Added CTI disposition count retrieval functionality.
    • Enhanced form retrieval with improved field attributes and token-based authentication.
  • Improvements

    • Better error handling for user details queries.
    • Added support for Assamese language translations.
    • Improved configuration management for temporary file paths.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 9, 2026

Caution

Review failed

Failed to post review comments

πŸ“ Walkthrough

Walkthrough

This release updates the platform version to 3.6.1 and introduces Elasticsearch-based beneficiary search, CTI disposition count retrieval, token-authenticated dynamic form access with user-aware field filtering and translation support, JWT request extraction utilities, and new user service role mapping infrastructure. Configuration properties are updated to reflect new endpoints and temporary file paths, and various supporting data models and repositories are added.

Changes

Cohort / File(s) Summary
Version & Build Configuration
pom.xml
Version bumped from 3.6.0 to 3.6.1.
Environment Configuration
src/main/environment/common_ci.properties, src/main/environment/common_docker.properties, src/main/environment/common_example.properties
Added tempFilePath property across environment configurations (environment-specific paths).
Application Properties
src/main/resources/application.properties
Added CTI disposition count endpoint, Elasticsearch identity search endpoints, updated CTI server IP and logger base URL, removed example tempFilePath property.
Elasticsearch Beneficiary Search
src/main/java/com/iemr/common/controller/beneficiary/BeneficiaryRegistrationController.java, src/main/java/com/iemr/common/service/beneficiary/IEMRSearchUserService.java, src/main/java/com/iemr/common/service/beneficiary/IEMRSearchUserServiceImpl.java, src/main/java/com/iemr/common/service/beneficiary/IdentityBeneficiaryService.java, src/main/java/com/iemr/common/service/beneficiary/IdentityBeneficiaryServiceImpl.java
Added ES-based universal and advanced beneficiary search endpoints with request parsing, user authorization via JWT, and Elasticsearch integration for query execution and response mapping.
CTI Disposition Count
src/main/java/com/iemr/common/controller/cti/ComputerTelephonyIntegrationController.java, src/main/java/com/iemr/common/data/cti/DispositionCountRequest.java, src/main/java/com/iemr/common/data/cti/DispositionCountResponse.java, src/main/java/com/iemr/common/service/cti/CTIService.java, src/main/java/com/iemr/common/service/cti/CTIServiceImpl.java
Added CTI disposition count retrieval with new request/response DTOs, endpoint handler with IP resolution, and service-layer integration for CTI API calls.
Token-Based Dynamic Forms
src/main/java/com/iemr/common/controller/dynamicForm/DynamicFormController.java, src/main/java/com/iemr/common/service/dynamicForm/FormMasterService.java, src/main/java/com/iemr/common/service/dynamicForm/FormMasterServiceImpl.java, src/main/java/com/iemr/common/data/dynamic_from/FormField.java, src/main/java/com/iemr/common/dto/dynamicForm/FieldResponseDTO.java
Added JWT token header to form endpoints, refactored form retrieval to extract user state/role from token, implemented state-based field filtering, enhanced field mapping with translation support (Hindi, Assamese, English), and added isEditable and stateCode attributes.
User Service Role Management
src/main/java/com/iemr/common/data/users/UserServiceRole.java, src/main/java/com/iemr/common/repository/users/UserServiceRoleRepo.java
Added new JPA entity UserServiceRole mapped to v_userservicerolemapping table with 32 persistent fields and corresponding repository for CRUD and name-based lookups.
User & Admin Controller Enhancements
src/main/java/com/iemr/common/controller/users/IEMRAdminController.java, src/main/java/com/iemr/common/service/users/IEMRAdminUserService.java, src/main/java/com/iemr/common/service/users/IEMRAdminUserServiceImpl.java, src/main/java/com/iemr/common/repository/users/IEMRUserRepositoryCustom.java
Added user lookup by username with error handling, new repository query method for case-insensitive username search, and service-layer delegation to repository.
JWT & HTTP Utilities
src/main/java/com/iemr/common/utils/JwtUtil.java, src/main/java/com/iemr/common/utils/RestTemplateUtil.java, src/main/java/com/iemr/common/utils/http/HTTPRequestInterceptor.java
Added JWT extraction from headers and cookies in JwtUtil, added cookie-based JWT propagation in RestTemplateUtil, introduced JwtUtil dependency in HTTPRequestInterceptor with minor refactoring.
File Management & Translation
src/main/java/com/iemr/common/service/kmfilemanager/KMFileManagerServiceImpl.java, src/main/java/com/iemr/common/data/translation/Translation.java
Refactored file path to use Spring-injected @Value property instead of static lookup, added Assamese translation field to Translation entity.
Employee Signature Service
src/main/java/com/iemr/common/service/users/EmployeeSignatureServiceImpl.java
Modified signature retrieval to remove Deleted flag filter, minor formatting adjustments.

Sequence Diagram(s)

sequenceDiagram
    participant Client as Client / UI
    participant BenController as BeneficiaryController
    participant SearchService as IEMRSearchUserService
    participant IdentityService as IdentityBeneficiaryService
    participant ES as Elasticsearch

    Client->>BenController: POST /searchBeneficiaryES<br/>(BeneficiaryModel + auth)
    BenController->>BenController: Extract userId from JWT token
    BenController->>SearchService: findBeneficiaryES(model, userId, auth)
    SearchService->>SearchService: Build IdentitySearchDTO<br/>from BeneficiaryModel
    SearchService->>IdentityService: searchBeneficiaryListES(query, auth, is1097)
    IdentityService->>IdentityService: Build ES query URL<br/>with headers
    IdentityService->>ES: POST request
    ES-->>IdentityService: JSON response
    IdentityService-->>SearchService: Map<statusCode, data>
    SearchService-->>BenController: JSON result
    BenController-->>Client: OutputResponse<br/>(data or error)
Loading
sequenceDiagram
    participant Client as Client / UI
    participant FormController as DynamicFormController
    participant FormService as FormMasterService
    participant JwtUtil as JwtUtil
    participant RoleRepo as UserServiceRoleRepo
    participant TransRepo as TranslationRepository
    participant DB as Database

    Client->>FormController: GET /getStructuredForm<br/>(formId, lang, jwttoken)
    FormController->>JwtUtil: Extract userId from token
    FormController->>FormService: getStructuredFormByFormId<br/>(formId, lang, token)
    FormService->>JwtUtil: Parse token β†’ get userId
    FormService->>RoleRepo: findByUserName(userName)
    RoleRepo->>DB: Query user role & state
    DB-->>RoleRepo: UserServiceRole
    FormService->>DB: Fetch form & fields
    DB-->>FormService: FormFields
    FormService->>FormService: Filter fields by stateCode
    loop For each field
        FormService->>TransRepo: Get translation<br/>(label, lang)
        TransRepo-->>FormService: Translated label
        FormService->>FormService: Build FieldResponseDTO<br/>with isEditable, stateCode
    end
    FormService-->>FormController: FormResponseDTO<br/>(with translated fields)
    FormController-->>Client: ResponseEntity<ApiResponse>
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~55 minutes

Poem

🐰 Elasticsearch hops, CTI calls ring clear,
Forms now know their user's tier,
States and roles dance in the light,
JWT tokens guard each right,
Translations bloom in three languages bright!

πŸš₯ Pre-merge checks | βœ… 1 | ❌ 2
❌ Failed checks (2 warnings)
Check name Status Explanation Resolution
Title check ⚠️ Warning The title '1097 Abandon call real time data' refers to a specific feature aspect (abandon call data and 1097 integration), but the actual changeset is significantly broader, including Elasticsearch search features, form field enhancements, user service role entities, JWT utilities, CTI disposition count APIs, and numerous configuration updates. Update the title to accurately reflect the primary changes, such as 'Add Elasticsearch beneficiary search and CTI disposition count APIs' or provide a more comprehensive description that encompasses all major feature additions.
Docstring Coverage ⚠️ Warning Docstring coverage is 9.15% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
βœ… Passed checks (1 passed)
Check name Status Explanation
Description Check βœ… Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • πŸ“ Generate docstrings
πŸ§ͺ Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch nd/vs/AMM-1324

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❀️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@vanitha1822 vanitha1822 changed the base branch from main to release-3.6.1 February 9, 2026 09:06
@sonarqubecloud
Copy link

sonarqubecloud bot commented Feb 9, 2026

@vanitha1822
Copy link
Member Author

Duplicate PR of #357

@vanitha1822 vanitha1822 closed this Feb 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant