Using Initializer module with unsupported metadata types

Tags: #<Tag:0x00007f73f84f3030> #<Tag:0x00007f73f84f2568> #<Tag:0x00007f73f84f1de8>
(Nathan Floor) #1


We are looking into adopting the Initializer module to manage metadata in a Bahmni implementation we are working on. I have some questions about how best to handle metadata that might not be supported by the module such as:

  • Appointment specific config such as service lists (Bahmni)
  • VisitTypes
  • RelationshipTypes
  • ProgramAttribute types

So far possible workarounds seem to be:

  1. Use metadata sharing packages
  2. Custom SQL scripts (insert statements that need to be run manually on the server)

I am not a fan of using metadata sharing packages because there is no easy way to see what metadata has changed. So tracking and evaluating changes becomes problematic and manually running SQL isn’t great either.

Are there any other alternative approaches?


(Mike Seaton) #2

@nthfloor are you in a position to add the capabilities to the module to handle the non-bahmni-specific metadata? That would be the ideal solution, as it would move the module’s functionality forward for all.


(Dimitri R) #3

A couple of updates as Iniz is under active development right now.

  • @mseaton I will start work soon on a loader for App Framework’s app configs and extension configs. You guys might be interested in that one?

  • I will start working soon on a generic loader for all *AttributeType.

  • This will lead me to implement a couple of *Attribute specifically, starting with LocationAttribute first.

  • Iniz does load MDS packages as part of the config that it can process, see here.
    While everybody wants to avoid MDS packages, it is still a convenient workaround, at least temporarily while work on the domains that you’re interested in is in progress.

  • VisitType is I think a very easy domain to implement. I was never bothered because of MDS packages for that specific use case, but it’s an easy way to get your hand at Iniz.

  • Programs, workflows and states were just added.

  • Privileges were just added and there is a pending PR for roles.

1 Like
Using Initializer for Drugs
(Nathan Floor) #4

Thanks @mksd for these updates good to know. One of my other questions was if there is a roadmap or Jira board to view which features are in progress and what is upcoming, but I take it there isn’t anything publicly available?

@mseaton yes we are considering contributing to this module. But before committing I would like to schedule some time to discuss first with the team working on the module (which I’m assuming involves you @mksd?) to get a better idea of how you are doing things in the module and to see if there is capacity in our team to contribute. Would you be available sometime this week to discuss?

(Dimitri R) #5

Hi @nthfloor,

Currently all Iniz tickets are in-house at Mekom.

I have been saying for a long time that I want Iniz to be transferred to the community. I guess we won’t be willing to do that before the 1.2.0 release. In the meantime I’m happy to share our in-house roadmap/tickets through whatever way that is convenient.

I suggest that we rather speak next week as my schedule is pilling up too quickly. I just invited you to join OpenMRS’ Slack channel, that’s a convenient way to find me. We could IM there ahead of a proper meeting.