# Changelog

Documenting the changes in the SDK subject to each release version.

The format is loosely based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)

## **[1.2.2]  - 19.02.2025**

### **Updated**
- Added new values for `SearchItemType` from call center and ems events

----

## **[1.2.1]  - 19.02.2025**

### **Updated**
- Moved `module_selection` from patient mgmt module to core modules
- Added new params for site catalog

----

## **[1.2.0]  - 19.02.2025**

### **Added**
- Added `CallCenter` & `EmergencyMgmt` modules

----

## **[1.1.15]  - 12.02.2025**

### **Updated**
- Added `referral_code` for Identify event and user catalog

----

## **[1.1.14]  - 27.11.2024**

### **Updated**
- Added `blood_pressure_systolic`, `blood_pressure_diastolic` and `muac` for DiagnosisSubType

----

## **[1.1.12]  - 04.11.2024**

### **Added**
- Added Immunization list in the encounter summary

### **Updated**
- Update Prescription item to make prescriptionDate as optional
- Updated DiagnosisSymptomItem for more types
- Updated PrescriptionItem type for more types.
- Updated treatmentAdherence to include type and remarks param
- Updated DiagnosisStatusItem to replace value by status and add risk type with updated enums
- Updated PrescriptionItem to replace existing type by formulation and type as Diagnosis type
- Updated multiple list params to include _list in the param names
- Updated patient, appointment and encounter event for patient and site ids
- Renamed `prev_diagnosis_status` and `diagnosis_status` to `prev_diagnosis_status_list` and `diagnosis_status_list`

----

## **[1.1.11]  - 25.10.2024**

### **Updated**
- Fixed Identify event on CFLog

----

## **[1.1.10]  - 24.10.2024**

### **Updated**
- Moved Core Ingest Events to a single function call format. Now use  `Navigation.logIngestEvent(eventType, eventProps)` to Core log
  events.
- Moved Core Catalog Events to a single function call format. Now use  `Navigation.logCatalogEvent(catalogType, catalogProps)` to log
  Core Catalog events.
- Renamed `UserProperties` interface to `UserCatalog`
- Added `id` param in the user props for User Catalog event.
- Adding global SDK pause flag in init options, to pause all SDK events and nudge listener.
- Update Patent Mgmt events to have `patient_id` and `site_id` on the first level of events.
- Include Site Catalog in Core and remove HCW_SITE catalog from patient mgmt.

----

## **[0.9.8]  - 20.06.2024**

### **Updated**
- fix bug on nudge fetch, where userId was not provided by login but to be fetched from local storage.

----

## **[0.9.7]  - 08.05.2024**

### **Updated**
- refactored console errors for nudge on screen fetch

----

## **[0.9.6]  - 23.04.2024**

### **Updated**
- refactored console logs for user local storage func

----

## **[0.9.5]  - 23.04.2024**

### **Updated**
- Updated nudge to use locally stored userId for diff among login and anon users.
- Using locally stored userId for events in case of no login in the same session.

----

## **[0.9.4]  - 22.04.2024**

### **Updated**
- Updated nudge message rendering/template builder, now managed on the backend.
- fix bug on nudge_response event for multiple nudges shown at a same time. Was using the time from the last nudge in
  all responses.

### **Added**
- Added ability to fetch nudges for anonymous users, set `allowAnonymousUsers` to `true` in createSDKInstance options.

----

## **[0.9.3]  - 17.04.2024**

### **Updated**
- Updated `SDKInit` method to decouple logIdentifyEvent and SDK init.
  ```js
    CfLog.createSDKInstance(SDK_Key,
      {
        activateNudgeMechanism: true,
        selfManagedNudges: true/false // based on your intervention criteria.
      }
    )
    
    AND 
    
    CfLog.getSDKInstance().identify(IdentifyAction.Login, 'USER_ID', userDetail)
  ```
- Refactored `EducationLevel` enum to `EducationalLevel` AND `IdentifyAction` to `IdentityAction`
- Merged `schedule_delivery` and `delivery` events.
- The new `delivery` event now has the optional params to pass on delivery and dispatch coordinates as well.
- Updated enums for `payment` events,
    - such as `DeferredPaymentType` & `PaymentsMethodAction` to `PaymentAction`
    - `PaymentMethodType` is refactored to `PaymentMethod`
- SDK now provides the ability to fetch in-app nudges on an individual screen.
    - To enable that set `selfManagedNudges` to true in the `CFLog` options.
    - Then on your Home Screen of the app or any screen of your choice,
      use `CfLog.getSDKInstance().fetchNudgesForScreen(NudgeScreenType.xx)`
    - In the above, `NudgeScreenType` is an enum, if you don't want to show the messages based on a specific screen,
      use `NudgeScreenType.None` else `NudgeScreenType.Home` or other available screen types based on the intervention.

### **Added**
- Added `Marital Status`, `Family Members`, `Birth Year`, `Gender` and `Number of Children under 5 years` params as
  OPTIONAL for User Catalog.
- Rate event has more enum values such as `customer`, `hcw`, `hcw_site`, `facility`, `process`, `assessment`, etc.
- Payment Method now have more enum values such as `mobile_transfer`, `cash`, `other`, etc.
- SDK nudges will now track `nudge_response` as `expired` as well for both `push_notifications` and `in_app_messages`.

----
<br>
