/
Overriding Configuration

Overriding Configuration

Any Bahmni configuration can be overridden by creating a separate override file. That way, an implementation with multiple entities can have a standard master configuration and each entity will have the freedom to override specific parts

Example

Let us take an example config file:

clinical/app.json
{
        "id": "bahmni.clinical",
        "extensionPoints": [
            {
                "id": "org.bahmni.clinical.consultation.board",
                "description": "Bahmni Clinical Consultation Page"
            },
            {
                "id": "org.bahmni.clinical.conceptSetGroup.*",
                "description": "Define conceptsets part of a conceptset group"
            },
            {
                "id": "org.bahmni.clinical.orders",
                "description": "Bahmni Orders Page"
            },
            {
                "id":"org.bahmni.patient.search",
                "description": "Bahmni Patient search, lookups Page"
            }
        ],
}

To override this config file with another file, do the following two things

  1. Add the flag "shouldOverRideConfig: true" as shown below

    /var/www/bahmni_config/openmrs/apps/clinical/app.json
    {
            "id": "bahmni.clinical",
    		"shouldOverRideConfig": true,
            "extensionPoints": [
                {
                    "id": "org.bahmni.clinical.consultation.board",
                    "description": "Bahmni Clinical Consultation Page"
                },
                {
                    "id": "org.bahmni.clinical.conceptSetGroup.*",
                    "description": "Define conceptsets part of a conceptset group"
                },
                {
                    "id": "org.bahmni.clinical.orders",
                    "description": "Bahmni Orders Page"
                },
                {
                    "id":"org.bahmni.patient.search",
                    "description": "Bahmni Patient search, lookups Page"
                }
            ],
    }
  2. Create a new file openmrs/apps/clinical/app.json in the folder /var/www/implementation_config as shown below

    /var/www/implementation_config/openmrs/apps/clinical/app.json
    {
            "id": "bahmni.clinical",
            "extensionPoints": [
                {
                    "id": "org.bahmni.clinical.consultation.board",
                    "description": "Bahmni Clinical Consultation Page"
                }
            ],
    }


    The above file will override the section "extensionPoints" in the the app.json file with the contents of the app.json file.

  3. Make sure to have an alias for implementation_config is added to "ssl.conf" under /etc/httpd/conf.d directory. Ideally this will be coming from bahmni installer itself. If not, add a new line with "Alias /implementation_config /var/www/implementation_config" where all the aliases are added.

Different types of overrides

Typeconfigoverridden configNotes
override
sections: {
  "observations" : {
    "name" : "Observations",
    "showDefault":true
  },
  "disposition":{
   "name": "disposition"
   }
}
sections: {
  "observations" : {
    "showDefault":false
  }
}
  • "observations"."name" will not be modified
  • "observations"."showDefault" will be overridden
  • "disposition" section will be KEPT
Remove
sections: {
  "observations" : {
    "name" : "Observations",
    "showDefault":true
  },
  "disposition":{
   "name": "disposition"
   }
}
sections: {
  "observations" : {
    "showDefault":false
  },
  "disposition": null	
}
  • "observations"."name" will not be modified
  • "observations"."showDefault" will be overridden
  • "disposition" section will be REMOVED





Related content

Registration App
Registration App
More like this
Home App
Home App
Read with this
app.json
app.json
More like this
Field Validation
Field Validation
Read with this
Using Implementation specific Configuration (docker)
Using Implementation specific Configuration (docker)
More like this
formConditions.js
formConditions.js
Read with this

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