Version Compatibility This feature is available from Bahmni Standard V1.0 and Bahmni Lite V1.1.
This feature allows healthcare professionals to create and configure custom attributes for new patients during the registration process. These attributes 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:
Liquibase Changeset:
Create a new changeset to add the custom attribute type "kid".
Define the attribute with the specified properties, including name, format, and other attributes.
<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>
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.
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.
Add a left outer join clause in search queries:
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
Include the custom attribute in the select statement: