Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Purpose and Benefits

Info

Version Compatibility
This feature is available from Bahmni Standard V1.0 and Bahmni Lite V1.1.

This feature allows healthcare professionals to configure a custom attribute for new patients during the registration process. This attribute can be represented as an icon based on configuration, which can enable the identification of patients with specific requirements or medical needs, improving the visual representation of patient data and aiding in the efficient recognition of key patient characteristics.

Patient Dashboard

Clinical Patient Search

ADT Page

Steps to Configure Custom Patient Attribute

This example demonstrates how to create a new patient attribute called "kid".

Create a Custom Person Attribute

Define a new custom person attribute named kid of type java.lang.Boolean using either of the following methods:

  1. Liquibase Changeset:

    1. Create a new changeset to add the custom attribute type "kid".

    2. Define the attribute with the specified properties, including name, format, and other attributes.

      Code Block
      languagesql
      <changeSet id="ICON_ATTRIBUTE_TYPE_202404151317" author="BAHMNI">
          <preConditions onFail="MARK_RAN">
              <sqlCheck expectedResult="0">
                  select count(*) from person_attribute_type where name = 'kid';
              </sqlCheck>
          </preConditions>
          <comment>Add person_attribute_type 'kid'</comment>
          <sql>
              INSERT INTO person_attribute_type (name, description, format, searchable, creator, date_created, retired, sort_weight, uuid)
              VALUES ('kid', 'Kid', 'java.lang.Boolean', '0', 1, curdate(), 0, 8, uuid());
          </sql>
      </changeSet>
  2. Through Initializer:

    • Add the custom attribute in a CSV file located at masterdata/configuration/personattributetypes/personAttributeTypes.csv.

    • Specify the attribute's properties, such as name, format, and other configurations.

      Code Block
      Uuid,Void/Retire,Name,Description,Format,Foreign uuid,Searchable,_order:1000
      ,,kid,Kid,java.lang.Boolean,,,

Configure Icon and Style

Add the following configuration to the relevant app.json files (clinical, adt, or ipd) of the config module:

Code Block
languagejson
"config" : {
  ....
  "iconAttribute": {
      "attrName": "kid",
      "attrValue": "true",
      "icon": "fa fa-solid fa-child",
      "iconStyle": "{'background-color': '#F58C35'}"
  },
  ...
}

Key Fields

Key

Value

Mandatory

attrName

Name of the custom attribute type

Yes

attrValue

Condition that triggers the icon

Yes

icon

FontAwesome icon class for visual representation of the attribute.

Yes

iconStyle

Custom CSS styling for the icon, such as background color.

No

Update Search and Queue Configurations

Note

The search query that fetches patient details is implementation-specific. If you want to display the custom attribute on patient search pages, you need to modify the search query to include the relevant custom attribute details.

  1. Add a left outer join clause in search queries:

    Code Block
    languagesql
    LEFT OUTER JOIN person_attribute patt ON patt.person_id = p.person_id AND patt.person_attribute_type_id = ( SELECT person_attribute_type_id FROM person_attribute_type WHERE name="kid" ) AND patt.voided = 0
  2. Include the custom attribute in the select statement:

    Code Block
    languagesql
    IF(patt.value = "true", "true", "false") AS kid
Panel
titleColorwhite
titleBGColor#1FA5A0
titleOn this page
Table of Contents
minLevel1
maxLevel6
outlinefalse
styledefault
typelist
printabletrue