Reproducing Legacy Application UI Registration Page

I would like to have a registration page which is similar to the legacy registration page (attached below) however whenever I use an instance of the registrationapp.registerPatient app, I get the new UI form which does not allow me to have the names and demographics on the same page.

Thanks in advance

The only Registration App included in the Reference Application (at present) is the Simple Form UI-based one. (The rationale for the question-per-screen approach is based on user research done by PIH in Lacolline, Haiti a few years ago showing higher speed and fewer errors with this approach.)

The hacky approach you could take would be to just use this exact screen, and somehow try to redirect back from it to the RefApp UI after submission.

One thing I noticed when peeking at the code (I don’t think this will solve your problem, but I’ll point it out to you) is that for any instance you build of registrationapp.registerPatient, there’s always a “demographics” section added at the start, and while you can add other fields to it, it always has the name one added automatically. See here.

One approach would be to fork this file and move whatever you want to be on a single screen into the same fieldset.

You could also just write your own specific registration page (hopefully keeping the same Controller as the current one, to avoid having to rebuild/debug all that).

Or, finally, you could try to modify the current registration app so that it takes a boolean setting that lets you specify whether you want the Simple Form UI, or not.

@darius Thank you for the advice, I have copied the registerPatient page from the registration app renamed it to aijarRegisterPatient then created a page controller that extends the registrationapp controller for registering a patient so that there are no hacky changes.

However it seems like the app framework does not install the app in aijar_registerpatient_app.json file automagically in my module which the required module. I have even stripped down the file to contents below. Any ideas?

[ { “id”: “aijar.registrationapp.registerPatient”, “instanceOf”: “registrationapp.registerPatient”, “label”: “Register Patient”, “description”: “Create a new Patient Record”, “extensions”: [ { “id”: “aijar.registrationapp.registerPatient.homepageLink”, “extensionPointId”: “org.openmrs.referenceapplication.homepageLink”, “type”: “link”, “label”: “”, “url”: “aijar/”, “icon”: “icon-user”, “order”: 1, “requiredPrivilege”: “App: registrationapp.registerPatient” } ] } ]

I don’t know why this wouldn’t be picked up automatically.

If I were looking into this I would probably run this under the debugger with a breakpoint at

and see if I can figure out what is happening.

Where are you saving the json file? It has to be in the omod/src/main/resources/apps folder to be picked up

Thanks @darius @wyclif my files were in src/main/webapp/resources so I think its time for me to go for the weekend … I owe you an issue fix or documentation review so do feel free to collect when the opportunity arises.