Why do I get a UI Framework Error when using Awaiting Admission?

Hello, i have installed the new OpenMRS 2.2 as Standalone (demonstration mode and update from 2.1) and as enterprise edition. All Versions work good so far, but I can’t work the Awaiting Admission module. I always get the following error in all implementations:

UI Framework Error
Root Error
org.openmrs.ui.framework.UiFrameworkException: viewProvider coreapps does not have a view named awaitingAdmission
	at org.openmrs.ui.framework.page.PageFactory.getView(PageFactory.java:292)
	at org.openmrs.ui.framework.page.PageFactory.processThisFragment(PageFactory.java:181)
	at org.openmrs.ui.framework.page.PageFactory.process(PageFactory.java:114)
	at org.openmrs.ui.framework.page.PageFactory.handle(PageFactory.java:84)
	at org.openmrs.module.uiframework.PageController.handlePath(PageController.java:110)
	at org.openmrs.module.uiframework.PageController.handleUrlWithDotPage(PageController.java:77)
	at sun.reflect.GeneratedMethodAccessor668.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
	at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:440)
	at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:428)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:953)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:844)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:829)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.openmrs.module.web.filter.ForcePasswordChangeFilter.doFilter(ForcePasswordChangeFilter.java:61)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.openmrs.module.web.filter.ModuleFilterChain.doFilter(ModuleFilterChain.java:72)
	at org.openmrs.module.web.filter.ModuleFilter.doFilter(ModuleFilter.java:54)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.openmrs.web.filter.OpenmrsFilter.doFilterInternal(OpenmrsFilter.java:109)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:230)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.openmrs.web.filter.StartupFilter.doFilter(StartupFilter.java:105)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.openmrs.web.filter.StartupFilter.doFilter(StartupFilter.java:105)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.openmrs.web.filter.StartupFilter.doFilter(StartupFilter.java:105)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Unknown Source)

Is this problem known and is there a solution to solve it?

Hi Sebastian,

Where do you see Awaiting Admissions? I don’t think that function is intended to be included in OpenMRS 2.2 out of the box, but it’s something that PIH uses in Mirebalais. (So it may need a bit of configuration for your case.)

I see it on the home screen of Openmrs 2.2 referenceapplication after enableing it in Systemadministration > Manage Apps. After the first start the modules coreapps.awaitingAdmission, referenceapplication.personalRelationships and registrationapp.basicRegisterPatient are disabled. The module referenceapplication.personalRelationships can’t be enabled.

One other question: I can’t change the language of the referenceapplication over the admin page (Settings>Locale, Manage Locales And Themes or bottom of the admin page), The default language in admin page is english for me, but the referenceapplication is in german. Is there an other option to change it?

Sounds like we need to consider a more robust future strategy to allow for “feature toggles” that will allow us to hide work in progress code more effectively but allow us to release it nonetheless.

1 Like

Hi Sebastian,

You won’t actually be able to use the Awaiting Admission app without making code changes. If you were just curious what that function does, my suggestion is to forget about it, and turn it off.

If you’re interested in making this work in the OpenMRS reference application, here’s a bit more info (I can expound more if you/someone is actually interested):

  • someone is considered Awaiting Admission if they have an encounter with a disposition of type ADMIT.
  • OpenMRS 2.2 does not give you a place to capture disposition in the visit note out of the box.
  • You’d need a custom form similar to this PIH one
  • you’d need dispositionConfig.json similar to this

@paul, this was turned off. It’s just that we have now added a feature that lets admins turn apps back on through the UI. :slight_smile: I guess we now need a way of documenting that something was turned off because it’s incomplete.

I don’t fully understand what you’re asking.

If I go to the legacy UI (System Administration -> Advanced Administration), and change my session locale (from the footer), then go Home, I do see my selected language (translated incompletely):

I would expect that if you change the default locale from Manage Locales and Themes, then you log out and back in again, this should set things to the default locale.

An individual user can go to My Profile in the top-right of the old UI, and set their Default Locale (which will be applied when they log in).

For some reason it seems like you can’t set the default locale for a user that doesn’t have one via Manage Users in the old UI, so you’d have to be a superuser and “Become this user” to set that for someone else.

Clearly all of this is very sub-optimal. Hopefully someone can finish off https://issues.openmrs.org/browse/RA-61 for the next OpenMRS release!

Ok, thanks darius. I only wants to know the function of the module.

And the language change work over my profile, but I must enter my old password for secret question, when I only want to change the default locale. This could maybe more user friendly.

I can second the IDgen module error as the source of the Reference Application problem in mysql 5.7. many instances default to strict without allow_invalid_date. The default non-null value is invalid because a date can not be all zeros.

See:

You may be able to use a session sql_mode=ALLOW_INVALID_DATES as a work around, however there should be a better solution implemented, perhaps using the null value for non-filled dates:

I am currently trying to pass it with the sessionVariables property in the jdbc call in openmrs-runtime.properties, but so far not having much success–might be my syntax:

Another potential option might be to change the module to not zero for the default date.