Perhaps it's assumed or implied or I overlooked it, but consider adding a method to "reset" your messy dev client to the latest-greatest version of your dictionary from your production machine… so you can rinse & repeat.
@Ada/Lauren/Jeremy – would Darius' solution meet AMPATH's needs? -Burke On Thu, May 10, 2012 at 2:32 PM, Michael Seaton <msea...@pih.org> wrote: > ** > Hi Darius, > > I think this is a great solution, and would meet our form development > needs very well. We can certainly talk about potential for developer > collaboration on this, though I can't promise anything... > > Thanks for thinking this through, > Mike > > > > On 05/10/2012 02:01 PM, Darius Jazayeri wrote: > > Hi All, > > I'm working through a simpler approach to Concept Proposals that what > has been attempted several times before, and never finished, and I thought > I'd share my thoughts while they're fresh. > > I'm particularly interested in the scenario where: > > - In the cloud there's a concept authority (in my case MVP/CIEL) who > manages your dictionary, and you periodically pull updates from there > - You have one server that has your official concept dictionary (could > be your metadata, forms, or production server) > - No development work happens directly on this machine. Concept > dictionary and forms are developed elsewhere, and imported. > - You have one or more development machines where you do > (potentially-messy) development and testing of forms > > So, the forms development workflow would basically be: > > 1. On a development machine, starting with your master dictionary, you > work on a form. It is expected that you will create a bunch of new > concepts, revise them, and delete some of them that were mistakes. > 2. When your form is ready-to-go, you identify all concepts on your > form that do not come from the master dictionary (i.e. they were > newly-created) > - with HTML Form Entry this should be easy to automate, by checking > whether there are any concept references not in the form of MVP:###. > Maybe > XForms and Infopath could do something similar. > 3. You send that batch of new concepts up to a web service on the > concept authority in the cloud, as proposals. You get back tokens you can > use to check the status of your proposals. > 4. (Periodically you ping the concept authority, until all proposals > from that batch are resolved.) > 5. You hit the concept authority and download its official versions of > the concepts that you created locally, and these *replace* your > locally-created concepts. > - I hope we can leverage the Metadata Sharing module to do this > pretty easily. > 6. (Depending on the form entry technology) You edit your form to > refer to the new official versions of the concepts you proposed. > 7. At this point you export the form from your dev machine, and import > it into your metadata/forms/production server. > > I think the difference between this and prior work on Concept Proposal is > that I'm saying: > 1. You should do forms development on a separate dev machine whose > dictionary is expected to get messy. > 2. Instead of creating concept proposals, you create actual concepts, so > you can do real testing with them. > > All this leads me to think that we can produce a minimum viable > product<http://en.wikipedia.org/wiki/Minimum_viable_product> of > the Concept Proposal module with only these features: > > (client-side, for use on forms development machines) > > - every time you create a new concept, it is marked as "temporary" > - you can view a list of all temporary concepts, and delete ones you > don't like > - you can select some temporary concepts and "propose to master > dictionary" > - you can see a list of all your submitted proposals, along with their > current status > - when a proposal has been marked as complete by the server, it will > overwrite your local "temporary" concept with the new one officially > created, and clear the "temporary" flag. > > (server-side) > > - web service for proposing a batch of concepts > - web service for checking the status of a proposal > - UI showing a list of all open proposals > - UI for choosing the action for each item in the batch of proposals > - Created New Concept (specify the concept) > - Already Exists (specify the concept) > - Rejected (specify the free-text reason) > - Email notification when a new proposal comes in. > > It's possible that some ThoughtWorks developers-in-training might work on > this as a project. Or I might propose this as a sprint. What do people > think about the approach? In particular, is there anyone out there who > finds this approach consistent with their needs, and would contribute some > dev time to helping make it happen? > > -Darius > > _________________________________________ To unsubscribe from OpenMRS Developers' mailing list, send an e-mail to lists...@listserv.iupui.edu with "SIGNOFF openmrs-devel-l" in the body (not the subject) of your e-mail. [mailto:lists...@listserv.iupui.edu?body=SIGNOFF%20openmrs-devel-l]