/
EAV (Entity Attribute Value) Job

EAV (Entity Attribute Value) Job

We have EAV job in mart to get the attributes for Provider, Programs, Person, Visits and Operation Theatre. Also the identifier values for Patient. Below is the list of mart tables for the same.

1. Provider Attributes

provider_attributes table gives all the provider attribute information in an implementation.

Openmrs tables used: provider, provider_attribute, provider_attribute_type

Existing OpenMRS tables
provider provider_attribute provider_attribute_type

provider.json:

{ "name": "Provider Attributes", "type": "eav", "tableName": "provider_attributes", "eavAttributes": { "attributeTypeTableName": "provider_attribute_type", "attributeTableName": "provider_attribute", "valueTableJoiningId": "attribute_type_id", "typeTableJoiningId": "provider_attribute_type_id", "valueColumnName": "value_reference", "primaryKey": "provider_id" } }

2. Patient Identifier

patient_identifier is the mart table and the columns are the pivoted values in identifier_type table.

Openmrs tables used: patient, person, patient_identifier

Existing OpenMRS tables
patient person patient_identifier

The patient_identifier mart table has all the columns from patient_identifier_type openmrs table,

patient_id from patient_identifier;

patients.json:

{ "name": "Patient identification", "type": "eav", "tableName": "patient_identifier", "eavAttributes": { "attributeTypeTableName": "patient_identifier_type", "attributeTableName": "patient_identifier", "valueTableJoiningId": "identifier_type", "typeTableJoiningId": "patient_identifier_type_id", "valueColumnName": "identifier", "primaryKey": "patient_id" }, "incrementalUpdateConfig": { "updateOn": "patient_id", "eventCategory": "patient", "openmrsTableName": "person" } }

3. Person Attributes

person_attributes table contains  all the patient attributes that where used in the registration page. Columns will be generated dynamically based on the attributes that were used as a part of that specific implementation.

Eg : givenName, familyName, isCaretakerRequired, caretakerGender

Existing OpenMRS tables
person person_name Patient_identifier person_attribute person_attribute_type

person.json:

{ "name": "Person Attributes", "type": "eav", "tableName": "person_attributes", "eavAttributes": { "attributeTypeTableName": "person_attribute_type", "attributeTableName": "person_attribute", "valueTableJoiningId": "person_attribute_type_id", "typeTableJoiningId": "person_attribute_type_id", "valueColumnName": "value", "primaryKey": "person_id" }, "incrementalUpdateConfig": { "updateOn": "person_id", "eventCategory": "patient", "openmrsTableName": "person" } }

4. Program Attributes:

program_attributes table gives all the program attributes enrolled for a particular patient.

Openmrs tables used: program_attribute_type, patient_program_attribute

Existing OpenMRS tables
Program patient_program_attribute patient_program

 

programs.json:

{ "name": "Program Attributes", "type": "eav", "tableName": "program_attributes", "eavAttributes": { "attributeTypeTableName": "program_attribute_type", "attributeTableName": "patient_program_attribute", "valueTableJoiningId": "attribute_type_id", "typeTableJoiningId": "program_attribute_type_id", "valueColumnName": "value_reference", "primaryKey": "patient_program_id" }, "incrementalUpdateConfig": { "updateOn": "patient_program_id", "eventCategory": "programenrollment", "openmrsTableName": "patient_program" } }

5. Visit Attributes:

visit_attributes table gives all the visit attributes for that particular visit type.

Existing OpenMRS tables
visit_type visit visit_attribute visit_attribute_type

 

visitsAndEncounters.json:

{ "name": "Visit Attributes", "type": "eav", "tableName": "visit_attributes", "eavAttributes": { "attributeTypeTableName": "visit_attribute_type", "attributeTableName": "visit_attribute", "valueTableJoiningId": "attribute_type_id", "typeTableJoiningId": "visit_attribute_type_id", "valueColumnName": "value_reference", "primaryKey": "visit_id" } }

6. OT Attributes:

surgical_appointment_attributes gives all the surgical attributes created for a surgery.

Existing OpenMRS tables
Surgical_appointment Surgical_appointment_attribute Surgical_appointment_attribute_type

 

operationTheatre.json:

{ "name": "Surgical Appointment Attributes", "type": "eav", "tableName": "surgical_appointment_attributes", "eavAttributes": { "attributeTypeTableName": "surgical_appointment_attribute_type", "attributeTableName": "surgical_appointment_attribute", "valueTableJoiningId": "surgical_appointment_attribute_type_id", "typeTableJoiningId": "surgical_appointment_attribute_type_id", "valueColumnName": "value", "primaryKey": "surgical_appointment_id" }, "incrementalUpdateConfig": { "updateOn": "surgical_appointment_id", "eventCategory": "surgicalappointment", "openmrsTableName": "surgical_appointment" } }

 

Related content

The Bahmni documentation is licensed under Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)