How to get access to existing data model and how can we modify the datamodel?

How to get access to existing data model and how can we modify the datamodel?

Hi @snehagohel, welcome.

As of OpenLMIS v3 the architecture has transitioned to independent services, each having their own data model. You can find an ERD diagram (example: Reference Data ERD) of each service’s data model through links on the Components page. You can access released versions through the version selector in the menu, for example here’s v3.8’s components.

Is that what you’re looking for?


Hello Josh,
Thank you for prompt reply, Yes I wanted the present Data ERD, thanks for correct link. Also Can you please let me know about any proper link for how to extend the services of OpenLMIS?

I have followed the steps for the setup for now using below link:

Setup is done using the inbuilt demo-data, however in case i want to use this and extend this data model as well as extend any of components please could you guide a proper link?


The documentation you’re looking for starts on the architecture docs page, and from there it will lead you to the more detailed architecture overview on the wiki.

When you’re ready to describe how you’re thinking of extending OpenLMIS, we could help you choose the right extension mechanism (i.e. new service, extension point, extra data, etc). If you’re thinking of making the extension a contribution back to OpenLMIS, check out our contribution guide.


Hi Josh,
Thanks for the right documentation.
Yes we needed a way to extend existing service like reference data so that we can have more features into it.

Please suggest an easier way to it? We are used to working with Spring boot however need some learning on docker and gradle.
My two main basic questions here:

  1. Can we edit the data entity Facilities to have a new field say organization? and how?
  2. Can we have our own service(having some new features) and then use it or extend it to the OpenLMIS ref distribution?


@snehagohel I’m sorry, we appear to have missed your last reply! I think that the documentation mentions how to accomplish both of your questions:

  1. Data can be “added” to entities using the extra_data property
  2. Extensions to services can be accomplished through service extension points

Did you have specific questions about how to utilize these options to support your required changes?

cc @joshzamor

Thanks We will try and let you know if stuck anywhere