Hi All,
I'd like the development work that we do to be proposed more directly by the community. In that vein, wearing an I-TECH & PIH hat, I'd like to propose a development sprint. And hopefully others copy this template going forwards...
-Darius
Goals and Concrete Deliverables
To make it possible to subscribe to the MVP/CIEL concept dictionary, using a module that will automatically pull down new concepts whenever you request them, or via a scheduled task.
Prior Work
Currently the MVP/CIEL dictionary is a great resource, but it gets less use than I think it should since using it requires installing sql dumps to get the updates. Using a combination of the MCL and the Metadata Sharing module, it's possible to download individual concepts from the MVP/CIEL dictionary, and convert them between different OpenMRS versions. With a bit more work, we could automate this process.
Primary Benefits
If people can get updates from the MVP/CIEL dictionary automatically, without needing to get sql dumps from a dropbox, and manually install them, more implementations would be able to leverage that dictionary, and more implementations would be working with a well-curated dictionary.
Secondary Benefits
The work we'd do on this sprint would also allow other groups besides MVP/CIEL to publish their concept dictionaries and have clients subscribe to them.
Proposed Work
- In the Metadata Sharing module: META-224
- Create a "Metadata Subscription" module that depends on Metadata Sharing.
- You configure this module with a URL to subscribe to, a type of metadata, and a frequency to check.
- With a scheduled process, this module will contact an OpenMRS server running Metadata Sharing at the given URL, and download an on-the-fly package of all metadata (of the given type) with a date-modified after a given timestamp
- The module will save a timestamp of the last time it checked, so it only needs to download newly-modified items
- After downloading the package, it will be automatically installed, updating your metadata tables.
- TODO: decide if automatically installing the package is good enough (e.g. we can assume people aren't editing concepts locally), or if we should also support interactive installation of downloaded packages.
- For purposes of this sprint we only care about fetching concepts from MCL, but the module should support any kind of metadata from any url.
- (Optional, hopefully done before this sprint) Allow Metadata Sharing to convert concepts between the 1.7 and 1.9 data models.
What Am I Asking For?
- One design call to finish defining tickets.
- Minimum of one week with two devs.
- (Optionally) several days of Rafal's time to get MDS converting 1.7 concepts <-> 1.9 concepts. (I think he needs to be the one to do this since it requires non-trivial MDS refactoring.)
What Can I Provide?
- I can lead the design call discussion, create a design page, and create tickets.
- If we schedule it after the end of June, I should be able to work on the sprint as a developer.
- Hopefully I can convince another dev or two to join in. :-)