Unable to render findPatient.page after overriding it


OpenMRS version: 1.11.6 Created a custom module(overriding search patient functionality) Module: fingerprint Repository: https://github.com/smuwanga/openmrs-module-ugandaemr-fingerprint I have coreapps-omod-1.11.0.omod on the server at /openmrs/WEB-INF/bundledModules/coreapps-omod-1.11.0.omod In an attempt to override the patient search in core-apps module, I have created my own module called fingerprint. I am unable to render the findpatient.page like it is in coreapps. Not sure how to configure this.

Am happy to be helped.


UI Framework Error
Root Error
java.lang.ClassNotFoundException: org.openmrs.module.coreapps.helper.BreadcrumbHelper
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1858)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1709)
	at org.openmrs.module.ModuleClassLoader.loadClass(ModuleClassLoader.java:594)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
	at org.openmrs.module.fingerprint.page.controller.findpatient.FindPatientPageController.get(FindPatientPageController.java:31)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at org.openmrs.ui.framework.UiFrameworkUtil.invokeMethodWithArguments(UiFrameworkUtil.java:109)
	at org.openmrs.ui.framework.UiFrameworkUtil.executeControllerMethod(UiFrameworkUtil.java:68)
	at org.openmrs.ui.framework.page.PageFactory.handleRequestWithController(PageFactory.java:217)
	at org.openmrs.ui.framework.page.PageFactory.processThisFragment(PageFactory.java:159)
	at org.openmrs.ui.framework.page.PageFactory.process(PageFactory.java:115)
	at org.openmrs.ui.framework.page.PageFactory.handle(PageFactory.java:85)
	at org.openmrs.module.uiframework.PageController.handlePath(PageController.java:115)
	at org.openmrs.module.uiframework.PageController.handleUrlWithDotPage(PageController.java:82)

@wyclif @burke @darius @dkayiwa @k_joseph @carapai @slubwama @ssmusoke

When you go to the modules management page, is the coreapps module started?

Yes, coreapps module is started.

Did you include the coreapps module in your config.xml?

Yes. I did.

Here is the fingerprint/omod/src/main/resources/config.xml


Where exactly in the file? On which line number?

Offhand, without looking at your code, is out possible you included the core apps dependency without specifying scope of provided?

-Darius (by phone)

@smuwanga my guess is that you need to do more to achieve what you want, to override the find patient page in the RA, you need to do the following:

  • Disable the find patient app that comes with the RA from the System Administration -> Manage apps page
  • In your module, add a custom find patient app with its own page and controller if necessary, you’ll need to duplicate this app and change a few things like the appId, description, URL and privilege

@smuwanga this does not look correct https://github.com/smuwanga/openmrs-module-ugandaemr-fingerprint/blob/master/omod/src/main/resources/config.xml#L72

Thank you @dkayiwa. I corrected that xml config for coreapps.
@Thanks @wyclif, on disabling the find patient app in the ReferenceApplication, all worked well. @darius, yes. Seems I hadn’t specified the scope pretty well.

The page is rendered.

View for the patientDashboard seems not to be rendering.

I thought the patient dashboad would be reused with me rewriting its code.

@wyclif @darius @dkayiwa @k_joseph

Use the current snapshot version of the uiframework module.

1 Like

@dkayiwa. uiframework version 3.8 has worked.


By the way it looks like in findpatientfingerprint_app.json you forgot to change the id of the extension and the value of the app parameter in the url.

1 Like