HCM Console Configuration

Overview

This page explains how to configure the HCM (Health Campaign Management) Console using MDMS. These configurations control how campaigns are created, validated, displayed, and executed across web and mobile apps.

You will configure:

  • Boundaries and hierarchies

  • Excel upload validations

  • Campaign and delivery behaviour

  • App modules, forms, and UI rules

  • Supporting configurations (login, help, IDs, templates)

See HCM Service Configuration for details.

Steps

1

Set Up Boundary Master Data (Mandatory)

Boundaries are the foundation of every campaign. You must configure a boundary hierarchy before creating campaigns or microplans.

1.1 Create a Boundary Hierarchy

If a hierarchy does not already exist, create one from the Boundary Management screens.

Example (Hierarchy Type: ADMIN)

Country → Province → District → AdministrativePost → Locality → Village

You can define hierarchies at any depth based on campaign needs.

1.2 Configure Hierarchy in MDMS

Navigate to MDMS and configure the hierarchy:

  • Module Name: HCM-ADMIN-CONSOLE

  • Master Name: HierarchySchema

Use the same hierarchy for:

  • Console

  • Campaign

  • Microplan

Keep these values consistent:

  • Hierarchy name

  • Lowest hierarchy level

  • Split boundary level

Example

  • Hierarchy: AdministrativePost

  • Lowest Level: Locality

1.3 Upload Boundary Data

  1. Go to Boundary Data Management

  2. Click Create New Boundary Data

  3. Select the hierarchy

  4. Download the Excel template

  5. Fill in boundary data

  6. Upload the file

Important

  • Headers change automatically if hierarchy levels change

  • Data must match the template exactly

1.4 Boundary Localisation

Boundary names are automatically localised during upload.

Localisation Module Format

hcm-boundary-${BOUNDARY_HIERARCHY_TYPE}
  • Must be lowercase

  • Must match the hierarchy type

2

Configure Hierarchy Behaviour (MDMS)

The hierarchy schema controls how boundaries are used during campaign flows.

MDMS Location

  • Module: HCM-ADMIN-CONSOLE

  • Master: HierarchySchema

Key Fields

Field
What it controls

hierarchyType

  • Contains the different types of hierarchies supported.

  • Each hierarchy defines the levels of boundaries available (e.g., Province → District → Locality).

isActive

  • Determines which hierarchy type will be used to create a campaign.

  • Only the hierarchy marked as isActive = true will be applied.

lowestHierarchy

  • Represents the lowest boundary level visible to users on the boundary selection screen during campaign creation.

  • Example: If lowestHierarchy = Locality, the campaign supervisor will select boundaries up to the locality level.

splitBoundariesOn

  • Defines the hierarchy level on which the target sheet tabs will be divided.

  • Example: If set to District, separate target sheets will be created per district.

consolidateUsersAt

  • Used during microplan integration.

  • Ensures user sheets are consolidated at a particular boundary level so that campaign user assignments (e.g., distributors, supervisors) are correctly populated.

circle-info

⚠️ Recommendation - Users can change the lowest hierarchy, but it is advised to keep it till the mentioned level because a lot of boundaries will increase the validations and the load on the server to load all the boundaries

chevron-rightHierarchy Schema Sample MDMS Datahashtag
[
    {
        "type": "microplan",
        "group": [
            "MALARIA"
        ],
        "hierarchy": "MICROPLAN",
        "department": [],
        "lowestHierarchy": "VILLAGE",
        "highestHierarchy": "COUNTRY",
        "splitBoundariesOn": "DISTRICT",
        "consolidateUsersAt": "LOCALITY"
    },
    {
        "type": "boundary",
        "group": [
            "MALARIA"
        ],
        "hierarchy": "MICROPLAN",
        "department": [],
        "lowestHierarchy": "VILLAGE",
        "highestHierarchy": "COUNTRY",
        "splitBoundariesOn": "DISTRICT",
        "consolidateUsersAt": "LOCALITY"
    },
    {
        "type": "campaign",
        "group": [
            "MALARIA"
        ],
        "hierarchy": "NEWTEST0002",
        "department": [],
        "lowestHierarchy": "ADMINISTRATIVEPOST",
        "splitBoundariesOn": "DISTRICT",
        "consolidateUsersAt": "LOCALITY",
        "highestHierarchy": "COUNTRY"
    },
    {
        "type": "default",
        "group": [
            "MALARIA"
        ],
        "hierarchy": "DEFAULTBOUNDARYNEWONE",
        "department": [],
        "lowestlevel": "ADMINISTRATIVEPOST",
        "splitBasedOn": "DISTRICT",
        "consolidateUsersAt": "LOCALITY",
        "highestHierarchy": "COUNTRY"
        
    },
    {
        "type": "console",
        "group": [
            "MALARIA"
        ],
        "hierarchy": "ADMIN",
        "department": [],
        "lowestHierarchy": "Posto Administrativo",
        "splitBoundariesOn": "Distrito",
        "consolidateUsersAt": "LOCALITY",
        "highestHierarchy": "COUNTRY"
    }
]

Supported Hierarchy Types

In the HierarchySchema configuration, different type values are used to define the purpose of each hierarchy. These types determine how the hierarchy will be applied during different stages of the campaign.

Here, we have 4 types used in the campaign flow:

  • "type": "console": Used for the Campaign creation flow. Defines the boundary hierarchy structure that will be visible when creating a new campaign

  • "type": "microplan": Used for the Microplan creation flow. Ensures that microplans are aligned to the configured boundary hierarchy.

  • "type": "campaign": Used for the Boundary Management creation flow. Specifies the hierarchy for managing campaign boundaries once a campaign is set up.

  • "type": "default": Serves as the default hierarchy for Boundary Management creation flow and holds default settings.

circle-info

We support the development and handling of various use cases. However, we recommend using the same hierarchy configuration across all types to ensure a seamless flow. This allows for creating a microplan within the same hierarchy, building campaigns on it, and managing the boundary hierarchy consistently.

3

Configure Excel Upload Validations

All Excel uploads (users, facilities, targets) are validated using schemas.

MDMS Location

  • Module: HCM-ADMIN-CONSOLE

  • Master: schemas

Validations apply at:

  • UI level

  • Backend level

What You Can Control

Common Schema Properties

isRequired:

  • Marks the columns that must be filled.

  • true → the column is mandatory.

  • false → the column is optional.

orderNumber:

  • Defines the position of the column in the Excel sheet.

  • Ensures the columns are uploaded in the correct order.

title

  • Represents the schema title.

  • Each title is linked to the type of upload (e.g., user upload, campaign upload, etc.).

enum:

  • Lists the allowed values for a field.

  • Ensures that only predefined options can be entered (e.g., "Male", "Female", "Other" for gender).

numberProperties:

  • Applies to numeric fields.

  • Defines constraints such as:

    • uniqueness (whether duplicate values are allowed),

    • required status,

    • minimum/maximum limits.

stringProperties:

  • Applies to text fields.

  • Defines rules such as:

    • required status,

    • uniqueness,

    • length restrictions (minimum/maximum characters),

    • content constraints (e.g., regex patterns).

Validation Types

  • Roles → Add or remove roles to be validated.

  • Employment Type → Update the enum list to add or remove types.

  • Headers → All headers are mandatory by default, but you can toggle this by setting isRequired = true/false.

  • Facility Type → Add or delete facility categories.

  • Facility Status → Add or delete status options.

  • Facility Usage → Add or delete usage options.

  • Capacity → Adjust minimum and maximum values.

  • Facility Name → Update constraints for minLength and maxLength.

  • Headers → All headers are mandatory by default; adjust using isRequired.

  • Target → Adjust minimum and maximum validations.

  • Boundary Code → Mandatory field.

  • Target Header → Mandatory field.

  • Campaign Type → Based on the selected campaign type, boundary targets are updated.

  • Custom Columns → New target columns can be introduced if required.

chevron-rightAdmin Schema Sample MDMS Datahashtag
circle-info

Since the V1 API is deprecated, it used HCM-ADMIN-CONSOLE.adminSchema, which is no longer used. All V2 APIs now use HCM-ADMIN-CONSOLE.schemas. Add the admin schema when introducing a new campaign or project type.

4

Configure Attributes (Beneficiary Data)

The schema includes a list of attribute configurations, where each attribute is:

  • Identified by a unique key,

  • Defined with a code, and

  • Linked to an internationalisation key (i18nKey) for multi-language support.

Example AttributesThe following attributes are available for use in campaigns to capture beneficiary information:

  • Age

  • Height

  • Weight

  • Gender

These attributes ensure that consistent, standardised data points are collected across campaigns.

The attribute dropdown in the system is dynamically populated from the attributeConfig schema. This schema defines the set of attributes available for selection during campaign setup or data entry.

  • Module Name: HCM-ADMIN-CONSOLE

  • Master Name: attributeConfig

chevron-rightAttribute Config Sample MDMS Datahashtag
5

Configure Upload Processing Timings

Controls how often the system checks the upload status. The schema defines the rules for how frequently the system should call the search API after a file upload. The purpose of these calls is to check the validation status of the uploaded file.

How It Works

  • Base Time

    • Defines the minimum interval after which the search API is triggered.

  • Dynamic Interval Calculation

    • The actual interval = baseTime × number of fields in the uploaded sheet.

    • This interval is constrained by:

      • Minimum base time (lower limit), and

      • maxTime (upper limit).

  • Search API Calls

    • The search API is called repeatedly at the calculated interval.

    • Calls stop only when a successful or failed response is received.

  • TimelineRefetch

    • Configured to call the getProcessAPI of the timeline periodically.

    • Ensures the process status is kept up to date after a certain interval.

chevron-rightBase Time Out Sample MDMS Datahashtag
circle-info

Advised not to change the base time and max time to prevent delay in validation progress.

6

Configure Campaign & Delivery Behaviour

The delivery configuration schema is used to define how deliveries are displayed in the system. It distinguishes between:

  • Direct Deliveries → Items or services provided directly to the beneficiary.

  • Indirect Deliveries → Items or services provided through an intermediary (e.g., via a facility, distributor, or supervisor).

  • Module Name: HCM-ADMIN-CONSOLE

  • Master Name: deliveryTypeConfig

chevron-rightDelivery Time Config Sample MDMS Datahashtag
[
    {
        "key": 1,
        "code": "DIRECT"
    },
    {
        "key": 2,
        "code": "INDIRECT"
    }
]
7

Mail Configurations

The mailConfig schema is used to define the default email ID for contacting the L1 support team or the implementation team. This comes into play when a user requests a hierarchy that is not currently available in the system.

  • Module Name: HCM-ADMIN-CONSOLE

  • Master Name: mailConfig

chevron-rightMail Config Sample MDMS Datahashtag
[
    {
        "mailId": "[email protected]"
    }
]
8

Operator Configuration

The operatorConfig schema defines all the operator options that can be applied to attributes. These operators are used in the system for filtering, validation, and logical conditions during campaign configuration and execution.

  • Module Name: HCM-ADMIN-CONSOLE

  • Master Name: operatorConfig

chevron-rightOperator Config Sample MDMS Datahashtag
9

Product Type Configuration

The productType schema defines the list of resource types that can be selected in the system. If a required resource type is not already available, it can be added through this schema. Once added, the new resource type will automatically appear in the resources dropdown.

  • Module Name: HCM-ADMIN-CONSOLE

  • Master Name: productType

chevron-rightProduct Type Sample MDMS Datahashtag
10

ReadMe Configuration

The ReadMeConfig schema defines the information messages that are displayed both in the UI and in the ReadMe sheet of the downloaded Excel templates. These messages act as instructions for users, guiding them on how to correctly fill in the upload templates.

  • Module Name: HCM-ADMIN-CONSOLE

  • Master Name: ReadMeConfig

Schema Fields

  • type: Defines the upload type (e.g., User, Facility, Target).

  • header: The text identifier for the header (localised using the localisation module).

  • isHeaderBold: Boolean → whether the header should be displayed in bold.

  • inSheet: Boolean → whether the header should appear in the downloaded Excel sheet.

  • inUiInfo: Boolean → whether the header should appear in the UI information panel.

  • text: The text identifier for the description (localised).

  • isStepRequired: Boolean → whether the description is a mandatory step for users.

Localisation

  • All header and text values are stored as codes, which are then mapped through the localisation module.

  • This ensures multi-language support for instructions across the platform.

hcm-admin-schemas

Below is an example of how data is entered into the read-me schema for the headers and their description:

chevron-rightReadMe Config Sample MDMS Datahashtag
11

Login & Privacy Configuration

To display the Privacy Policy component on the login page, you need to add the required configurations in MDMS.

  • Module Name: LoginConfig

  • Master Name: commonUiConfig

In version v0.4, the login page was revamped, and the configuration was updated accordingly.

Steps

  1. Navigate to the MDMS configuration for the login page.

  2. Locate the module: LoginConfig.

  3. In the commonUiConfig master, add or update the fields as required.

  4. You can customise the fields (add or delete) depending on your implementation needs.

For detailed configuration examples and usage, refer herearrow-up-right.

chevron-rightLoginConfig Sample MDMS Datahashtag
[
{
                "texts": {
                    "header": "CORE_COMMON_LOGIN",
                    "submitButtonLabel": "CORE_COMMON_CONTINUE",
                    "secondaryButtonLabel": "CORE_COMMON_FORGOT_PASSWORD"
                },
                "title": "login",
                "inputs": [
                    {
                        "key": "username",
                        "type": "text",
                        "label": "CORE_LOGIN_USERNAME",
                        "populators": {
                            "name": "username",
                            "error": "ERR_USERNAME_REQUIRED",
                            "validation": {
                                "required": true
                            }
                        },
                        "isMandatory": true
                    },
                    {
                        "key": "password",
                        "type": "password",
                        "label": "CORE_LOGIN_PASSWORD",
                        "populators": {
                            "name": "password",
                            "error": "ERR_PASSWORD_REQUIRED",
                            "validation": {
                                "required": true
                            }
                        },
                        "isMandatory": true
                    },
                    {
                        "key": "city",
                        "type": "dropdown",
                        "label": "CORE_COMMON_CITY",
                        "disable": false,
                        "populators": {
                            "name": "city",
                            "error": "ERR_HRMS_INVALID_CITY",
                            "mdmsConfig": {
                                "select": "(data)=>{ return Array.isArray(data['tenant'].tenants) && Digit.Utils.getUnique(data['tenant'].tenants).map(ele=>({code:ele.code,name:Digit.Utils.locale.getTransformedLocale('TENANT_TENANTS_'+ele.code)}))}",
                                "masterName": "tenants",
                                "moduleName": "tenant",
                                "localePrefix": "TENANT_TENANTS"
                            },
                            "optionsKey": "name"
                        },
                        "isMandatory": true
                    },
                    {
                        "key": "check",
                        "type": "component",
                        "disable": false,
                        "component": "PrivacyComponent",
                        "populators": {
                            "name": "check"
                        },
                        "customProps": {
                            "module": "HCM"
                        },
                        "isMandatory": false,
                        "withoutLabel": true
                    }
                ]
            }
]
circle-info

configure banner images relevant to the product deployment and use case

12

Policy Configurations

This configuration displays the data in the privacy pop-up. An example of the configuration is shown below:

chevron-rightPolicy MDMS Datahashtag
{
      "header": "PRIVACY_HEADER",
      "module": "HCM",
      "contents": [
        {
          "header": "PRIVACY_HEADER_1_SUB_1",
          "descriptions": [
            {
              "text": "PRIVACY_HEADER_1_SUB_1_DESC_1",
              "type": null,
              "isBold": false
            },
            {
              "text": "PRIVACY_HEADER_1_SUB_1_DESC_2",
              "type": null,
              "isBold": false
            },
            {
              "text": "PRIVACY_HEADER_1_SUB_1_DESC_3",
              "type": null,
              "isBold": false
            },
]
},
 {
              "text": "PRIVACY_HEADER_9_SUB_9_DESC_5",
              "type": null,
              "isBold": false,
              "subDescriptions":[
                {
                  "text": "PRIVACY_HEADER_9_SUB_9_DESC_5_SUBDESC_1",
                  "type": null,
                  "isBold": false,
                  "isSpaceRequired": true
                },
                {
                  "text": "PRIVACY_HEADER_9_SUB_9_DESC_5_SUBDESC_2",
                  "type": null,
                  "isBold": false,
                  "isSpaceRequired": true
                }
              ]
            }
          ]
        },

In the schema:

Type can be the following:

  • null:

    • When type is null, it indicates that the description is just plain text.

  • point:

    • When type is set to point, it likely means that the description should be displayed as a bullet point or list item.

  • step:

    • When type is set to step, it suggests that the description is part of a sequence of steps.

  • subdescriptions: to show the sub-descriptions at the point.

13

Date with Boundary Configurations

This configuration is used when you want to update the dates with or without the selected boundaries. If the flag is false, it updates the dates at the country level by default. If you want to update the dates at the lower boundary levels, then make the flag true.

  • Master Name: HCM-ADMIN-CONSOLE

  • ModuleName: dateWithBoundary

chevron-rightDateWithBoundary MDMS datahashtag
"dateWithBoundary": [
    {
      "dateWithBoundary": true
    }
  ]
14

Project Type Configurations

This configuration is now used in place of the delivery configuration.

This is used to store all the pre-required conditions for the delivery conditions screens.

  • Master Name: HCM-ADMIN-CONSOLE

  • ModuleName: projectTypes

chevron-rightProjectTypes MDMS Datahashtag
 {
      "id": "ea1bb2e7-06d8-4fe4-ba1e-f4a6363a21be",
      "name": "configuration for Multi Round Campaigns",
      "code": "MR-DN",
      "group": "MALARIA",
      "type": "multiround",
      "beneficiaryType": "INDIVIDUAL",
      "eligibilityCriteria": [
        "All households having members under the age of 18 are eligible.",
        "Prison inmates are eligible."
      ],
      "taskProcedure": [
        "1 bednet is to be distributed per 2 household members.",
        "If there are 4 household members, 2 bednets should be distributed.",
        "If there are 5 household members, 3 bednets should be distributed."
      ],
      "resources": [
        {
          "productVariantId": "PVAR-2024-05-09-000331",
          "isBaseUnitVariant": false,
          "name": "SP 500mg"
        },
        {
          "productVariantId": "PVAR-2024-05-09-000332",
          "isBaseUnitVariant": true,
          "name": "SP 250mg"
        }
      ],
      "observationStrategy": "DOT1",
      "validMinAge": 3,
      "validMaxAge": 64,
      "cycles": [
        {
          "mandatoryWaitSinceLastCycleInDays": null,
          "startDate": 1714329000000,
          "endDate": 1715279400000,
          "id": 1,
          "deliveries": [
            {
              "id": 1,
              "deliveryStrategy": "DIRECT",
              "mandatoryWaitSinceLastDeliveryInDays": null,
              "doseCriteria": [
                {
                  "condition": "3<=age<11",
                  "ProductVariants": [
                    {
                      "productVariantId": "PVAR-2024-05-09-000331", // should be set according to the environment
                      "quantity": 1,
                       "name": "SP 500mg"
                    },
                  ]
                },
              ]
            },
          ]
        },
      ]
    },

This is the sample data for the project type - MR-DN

Explanation for the MDMS Data -

  1. Project Types: Three main project types (LLIN-mz, MR-DN, and IRS-mz) with unique configurations.

  2. Cycles and Deliveries:

    • Each project type contains cycles, and each cycle contains multiple deliveries.

    • Deliveries include details such as deliveryStrategy, doseCriteria, and ProductVariants.

  3. Resources: A list of resources specific to each project type.

  4. Eligibility Criteria: Contains a list of conditions for each project type.

  5. Other Configurations:

    • attrAddDisable, deliveryAddDisable, and similar attributes determine UI behaviour.

Requirements:

triangle-exclamation
"ProductVariants": [
                    {
                      "productVariantId": "PVAR-2024-05-09-000331", // should be set according to the environment
                      "quantity": 1,
                       "name": "SP 500mg"
                    },
                  ]
15

Roles For Checklist

  • Master Name: HCM-ADMIN-CONSOLE

  • ModuleName: rolesForChecklist

This master data is used to show the dropdown of roles in the checklist screens -

chevron-rightRoles for Checklist Config Sample MDMS Datahashtag
{
    "tenantId": "mz",
    "schemaCode": "HCM-ADMIN-CONSOLE.rolesForChecklist",
    "uniqueIdentifier": null,
    "data": {
        "key": 1,
        "code": "DISTRIBUTOR"
    },
    "isActive": true
}
16

Checklist Templates

This master data is used to create a default template of the checklist for the selected campaign + role + checklist type -

  • Master Name: HCM-ADMIN-CONSOLE

  • ModuleName: ChecklistTemplates

chevron-rightChecklist Templates Sample MDMS Datahashtag
{
    "code": "SingleValueList",
    "type": [
        "checklist"
    ]
}
17

App Field Types

  • Master Name: HCM-ADMIN-CONSOLE

  • ModuleName: appFieldTypes

This is used to describe the type of questions available in the dropdown while configuring the checklist.

chevron-rightApp Field Types Config Sample MDMS Datahashtag
{
    "code": "SingleValueList",
    "type": [
        "checklist"
    ]
}
18

Microplan Integration

  • Master Name: HCM-ADMIN-CONSOLE

  • ModuleName: microplanIntegration

This master is utilised for the microplan data fetching. Here, 'type' refers to the data template that needs to be filled. 'To' and 'from' pertain to the microplan data, and while populating campaign data, various filter conditions, such as 'includes', or 'equals', can be applied.

chevron-rightMicroplan integration MDMS Datahashtag
19

IdGen Configuration

To enable the generation of unique identifiers via the idGen service, the following data must be added to the MDMS under moduleName=common-masters and masterName=IdFormat.

  • Master Name: common-masters

  • ModuleName: IdFormat

chevron-rightIdFormat Sample Datahashtag

Ensure both configurations are added to MDMS before proceeding with ID generation.

chevron-righttroubleshooting if any user creation or campaign creation is due to the number generationhashtag

Sequence Management in PostgreSQL

The IDGen service relies on PostgreSQL sequences to generate unique identifiers. If the sequences are not automatically created during ID generation, they must be manually created in the database.

Sequence for Usernames

To create a sequence for usernames, execute the following SQL script:

Sequence for Campaigns

To create a sequence for campaign IDs, execute the following SQL script:

20

Target Configuration

This configuration is used to define the mapping of target-related data from the target sheet to different beneficiary types. Each beneficiary type can be associated with one or more columns from the target sheet, which hold the respective target values.

  • Master Name: HCM-ADMIN-CONSOLE

  • ModuleName: targetConfigs

Key Details:

  • campaignType: Specifies the campaign type this configuration applies to (e.g., "LLIN-mz").

  • beneficiaries: A list of beneficiary types, each having:

    • columns: The columns in the target sheet that map to this beneficiary type.

    • beneficiaryType: The type of beneficiary (e.g., "INDIVIDUAL", "HOUSEHOLD", "PRODUCT").

chevron-rightHCM-ADMIN-CONSOLE.targetConfigshashtag
21

Help Tutorial

This configuration is used to define help tutorial content for the users during the flow. It provides contextual help videos, guided tours, and documentation links based on the current screen.

  • Master Name: commonUiConfig

  • ModuleName: HelpTutorial

chevron-rightHelp Tutorial Sample MDMS Datahashtag

tours (Guided Tour Steps)

For interactive page walkthroughs, each tour step contains:

title

string

Tour step title

target

string

CSS selector for the target element (e.g., .module-card)

content

string

Description text for the tour step

placement

string

Tooltip placement (top, bottom, left, right)

disableBeacon

boolean

Whether to disable the beacon animation

How It Works

module

The application module this help content belongs to (e.g., campaign).

helpContent

Array of help items to display. Each item contains:

Property
Type
Required
Description

title

string

Yes

Localization key for the help item title

url

string

Yes

URL to the tutorial video or documentation

icon

string

Yes

URL to the icon/thumbnail image

order

number

No

Display order of the help item

pages

array

No

List of page paths where this help item should appear

iconBackground

string

No

Background color for the icon (hex code)

actionText

string

No

Localization key for the action button text

subtitle

string

No

Localization key for subtitle text

cta

string

No

Call-to-action text

tours

array

No

Array of guided tour steps (for interactive walkthroughs)

22

Allowed Modules Configurations

This configuration is used to restrict the App Config from deselecting certain modules. It defines the mandatory modules that must be selected for each project type during campaign setup. Users cannot proceed without selecting all the allowed (required) modules.

  • Master Name: HCM-ADMIN-CONSOLE

  • ModuleName: AllowedModules

How It Works

projectType

The project type code for which this configuration applies (e.g., Bednets, IRS-mz, MR-DN).

allowedModule

Array of module codes that are mandatory for this project type. These modules cannot be unselected by users.

Example Data

chevron-rightAllowedModules Sample Datahashtag
23

This configuration is used to provide the Downloadable APK link after the campaign is created. So APK needs to be manually generated herearrow-up-right and update the link in this master

  • Master Name: HCM-ADMIN-CONSOLE

  • ModuleName: AppLink

24

App Module Schema Configurations

This configuration is used to define the modules and their features in the App Config flow. It specifies which features are available for each module and controls their visibility and behaviour.

  • Master Name: HCM-ADMIN-CONSOLE

  • ModuleName: AppModuleSchema

How It Works

code

Unique identifier for the module (e.g., REGISTRATIONFLOW, DELIVERYFLOW, COMPLAINTS, INVENTORY).

description

Localisation key for the module description (e.g., REGISTRATION_DESC, DELIVERY_DESC).

features

Array of feature configurations is available for this module. Each feature contains:

Property
Type
Description

code

string

Unique feature identifier (e.g., QR_CODE_SCANNER, PROXIMITY_SEARCH)

description

string

Localization key for the feature description

type

string

(Optional) Feature type (form, template)

format

string

(Optional) Field format mapping (e.g., scanner, searchByProximity)

order

number

(Optional) Display order of the feature

disabled

boolean

(Optional) Whether the feature is disabled/hidden (true/false)

Available Modules

Module Code
Description

REGISTRATIONFLOW

Registration flow module

DELIVERYFLOW

Delivery flow module

COMPLAINTFLOW

Complaints flow module

INVENTORY

Inventory/Stock management module

ATTENDANCE

Attendance tracking module

HFREFERALFLOW

Health facility referral flow

REGISTRATIONANDDELVFLOW

Combined registration and delivery flow

Available Features

Feature Code
Description

QR_CODE_SCANNER

QR/Barcode scanning capability

PROXIMITY_SEARCH

Search by GPS proximity

SEARCH_BY_ID

Search by beneficiary ID

MAP_VIEW

Map view for locations

OFFLINE_DATA_SHARING

Offline data sync capability

FACILITY_SEARCH

Search facilities

SEARCH_COMPLAINTS

Search complaints

Example Data

chevron-rightHCM-ADMIN-CONSOLE.AppModuleSchemahashtag
25

App Screen Localisation Configurations

This configuration is used to define the properties for which localisation should be enabled in the App Config flow. It determines which properties in the app configuration screens should show the localisation input fields (multi-language support).

  • Master Name: HCM-ADMIN-CONSOLE

  • ModuleName: AppScreenLocalisationConfig

How It Works

screenName

Unique identifier for the configuration (e.g., appScreenConfig).

LocalisationModule

The localisation module name used for storing translations (e.g., configure-app).

moduleVersion

Current version of the module configuration.

minModuleVersion

Minimum supported module version for backward compatibility.

fields

Array of field type configurations. Each entry defines which properties can be localized for that field type.

Property
Type
Description

fieldType

string

The field type identifier (e.g., text, dropdown, date)

localisableProperties

array

List of property names that support localisation

Common Localisable Properties

Property
Description

label

Field label text

helpText

Help text displayed below the field

tooltip

Tooltip text on hover

innerLabel

Placeholder text inside the field

errorMessage

Validation error message

message

General message text

dropDownOptions

Dropdown option labels (for dropdo

Example Data

chevron-rightApp Screen Localisation Confighashtag
26

Form Config Template

This master serves as the base template for mobile app form configuration screens. When a new campaign is created, the system copies the relevant template configuration for the selected project type and uses it as the starting point for app configuration.

  • Master Name: HCM-ADMIN-CONSOLE

  • ModuleName: FormConfigTemplate

How It Works

name

Module name identifier (e.g., REGISTRATION, DELIVERY, COMPLAINTS, ATTENDANCE, MANAGESTOCK).

project

Project type code this template belongs to (e.g., IRS-mz, MR-DN, LLIN-mz, DEFAULT).

flows

Array of flow configurations within the module. Each flow contains:

Property
Type
Description

name

string

Flow identifier (e.g., MANAGESTOCK, REGISTRATION-DELIVERY)

pages

array

Array of page configurations

version

number

Version number of the flow

disabled

boolean

Whether the flow is disabled

isSelected

boolean

Whether the flow is selected for the campaign

screenType

string

Type of screen (FORM, TEMPLATE)

pages

Each page within a flow contains:

Property
Type
Description

page

string

Page identifier (e.g., stockDetails, warehouseDetails)

type

string

Page type (object)

label

string

Screen heading localization key

order

number

Display order of the page

description

string

Screen description localization key

actionLabel

string

Action button label localization key

navigateTo

object

Navigation configuration (name, type)

properties

array

Array of field configurations

properties (Fields)

Each field within a page contains properties.

Example Data

chevron-rightForm Config Templatehashtag
circle-info

We also have one more master FormConfig, AppConfigCache, which needs only schema, data will be auto added during campaign configuration.

27

Campaign Naming Convention

This master defines the naming convention rules displayed to users when creating a campaign name. The rules are shown as a checklist with real-time validation feedback.

  • Master Name: HCM-ADMIN-CONSOLE

  • ModuleName: CampaignNamingConvention

How It Works

id

Unique identifier for the naming convention configuration.

data

Array of localisation keys (translation codes) for the naming rules.

isActive

Whether this configuration is active.

chevron-rightCampaign Naming Conventionhashtag
28

Field Properties Panel Config

This master defines the configuration for the properties panel (right-side drawer) that appears when editing a field in the mobile app configuration screens. It controls which properties and validations are available for each field type.

  • Master Name: HCM-ADMIN-CONSOLE

  • ModuleName: FieldPropertiesPanelConfig

How It Works

Label

Unique identifier for the panel configuration (e.g., NewPanelConfig).

Content

Array of property fields shown in the panel. Each field can have:

Property
Type
Description

id

string

Unique field identifier

label

string

Display label for the property

order

number

Display order in the panel

bindTo

string

Property path where value is saved (e.g., label, required, properties.popupConfig.title)

fieldType

string

Type of input (text, textarea, toggle, number, dropdown, fieldTypeDropdown, labelPairList, table)

defaultValue

any

Default value for the property

visibilityEnabledFor

array

List of field types for which this property is visible (empty array = visible for all)

conditionalField

array

Additional fields shown when toggle is enabled

showFieldOnToggle

boolean

Whether conditional fields appear on toggle

disableForRequired

boolean

Disable this property for mandatory fields

isLocalisable

boolean

Whether the value supports localization

isPopupProperty

boolean

Whether this is a popup-specific property

Validation

Array of validation rules is available in the panel:

Validation
Visible For
Description

RegexPattern

text

Text pattern validation with predefined options (alphabets, numbers, alphanumeric)

ScannerRegexPattern

scanner, qrScanner

Pattern validation for scanned values

isGS1Barcode

scanner, qrScanner

GS1 barcode format validation

scanLimit

scanner, qrScanner

Maximum number of scans allowed

numberRange

numeric, number

Min/max value validation

lengthRange

text, number, mobileNumber

Min/max character length validation

dateRange

date, dob

Start/end date validation

dependencyFieldWrapper

Most input fields

Field visibility based on other field values

Available Content Properties

Property
Field Types
Description

label

text, dropdown, checkbox, radio, number, date, etc.

Field label

helpText

text, textarea, dropdown, date, number, etc.

Help text below the field

Mandatory

text, dropdown, checkbox, number, date, radio, etc.

Required field validation

defaultValue

text, textarea, numeric, number, mobileNumber

Pre-filled value

tooltip

text, textarea, dropdown, date, number, etc.

Tooltip on hover

readOnly

text, textarea, dropdown, date, number, etc.

Non-editable field

isMdms

dropdown, select, idPopulator, radio

Populate options from MDMS

isMultiSelect

dropdown, select, idPopulator

Allow multiple selections

prefixText

mobileNumber, number

Text before input

suffixText

number

Text after input

innerLabel

text, textarea

Placeholder text

systemDate

date, dob

Use current system date

proximityRadius

proximitySearch

Search radius in meters

minSearchChars

searchBar

Minimum characters to trigger search

chevron-rightField Panel Config Datahashtag
29

Field Type Mapping Configurations

This master defines the available field types for configuring mobile app screens. It maps each field type to its UI component, metadata, and configurable properties.

  • Master Name: HCM-ADMIN-CONSOLE

  • ModuleName: FieldTypeMappingConfig

How It Works

Type

Unique identifier for the field type (e.g., text, dropdown, card, button).

Category

Groups field types for display in the UI:

  • basic - Simple inputs like text, number, date, dropdown

  • advanced - Complex components like template components, scanner component etc

Order

Display order in the field type selection dropdown.

Metadata

Schema information for the field:

  • type - Data type (string, integer, boolean, template)

  • format - Format identifier for rendering

Field Type

Base field type used for rendering.

Component

(Optional) React component name for advanced field types.

Properties

(Optional) Configurable options for the field type.

Editable

(Optional) Whether the field can be modified after creation.

chevron-rightField Type Mapping Configurationshashtag
30

Details Renderer Configurations

Master details

  • Master Name: HCM-ADMIN-CONSOLE

  • ModuleName: DETAILS_RENDERER_CONFIG

chevron-rightDetails Renderer Config Datahashtag
31

Campaign Type Templates

This configuration is used to define pre-built campaign templates that users can select when creating a new campaign. Templates provide a quick-start option with predefined settings based on previous successful campaigns.

Master details

  • Master Name: HCM-ADMIN-CONSOLE

  • ModuleName: campaignTypeTemplates

How It Works

id

Unique identifier for the template (e.g., MalariaSMC2024, PolioNID2025).

name

Display name of the campaign template.

description

Detailed description of the template explaining its purpose and use case.

projectTypeCode

Code linking to the project type in HCM-PROJECT-TYPES.projectTypes (e.g., MR-DN, Bednets, POLIO).

disease

Associated disease type (e.g., MALARIA, POLIO, VITAMINADEFICIENCY).

usedIn

Location or geography where this template was previously used (e.g., Kano - Nigeria, Maputo, Mozambique).

partnerName

Name of the organization or partner that created/used this template.

modules

Array of modules included in the campaign:

  • Registration

  • Delivery

  • Inventory

  • Attendance

duration

Campaign duration configuration

deliveryCycles

Array of delivery cycle/round configuration

imageDetails

Image configuration for the template card

chevron-rightCampaign Type Templates Sample Datahashtag
32

Campaign Rules & Controls

Includes:

  • Date updates by boundary (dateWithBoundary)

  • Campaign naming rules (CampaignNamingConvention)

  • Mandatory modules (AllowedModules)

  • Target-to-beneficiary mapping (targetConfigs)

  • Checklist roles & templates

  • Microplan integration rules

  • ID generation (common-masters.IdFormat)

circle-info

⚠️ Add IdGen config before using ID generation.

33

Dieseases List

This configuration is used to define the list of supported diseases for campaign templates and project types. It provides disease options for filtering and categorising campaigns.

Master details

  • Master Name: HCM-ADMIN-CONSOLE

  • ModuleName: diseasesList

How It Works

code

Unique identifier for the disease (e.g., MALARIA, POLIO, COVID19).

name

Human-readable display name of the disease.

active

Flag to indicate if the disease is currently active and should be shown in dropdowns.

description

(Optional) Detailed description of the disease for informational purposes.

chevron-rightDiseases List Sample Datahashtag

Removed / Deprecated

  • adminSchemas (removed)

  • V1 APIs (deprecated)

Deployment Configuration

For environment-specific settings, refer to Helm Configuration documentation.

Last updated

Was this helpful?