openEMPI Identifiers - South African National Pregnancy Register

54 views
Skip to first unread message

pie...@jembi.org

unread,
Mar 4, 2014, 10:16:25 AM3/4/14
to client-...@googlegroups.com
Hi everyone,

I've just joined Jembi and I'm starting to implement the National Pregnancy Register. We are using openEMPI as the Client Registry. I have some questions about identifiers and I'm hoping someone from this community can give me a hand.

We have a requirement that persons can have more than one identifier (SA National ID as well as a facility id and possibly a passport number as well), and an autogenerated global id that will be used for referencing records in other registries. I'm able to add a person via the api when specifying a SA National Id (I created this as a new identifier), but only when the <global-identifier> section in the mpi-config.xml is not present. As soon as I add that the addPerson call fails with a null pointer exception. Details are below. 


The getGlobalIdentifierById call also responds with a 404 error ...(...openempi-admin/openempi-ws-rest/person-query-resource/getGlobalIdentifierById) is not available.

If anyone has any input and/or explanation about how the identifiers work please reply. 

Many thanks,

Pierre



example addPerson payloads (with <global-identifier> xml present in mpi-config.xml)

<person>

   <familyName>TestFamily</familyName>

   <givenName>TestGiven</givenName>

   <middleName>TestMiddle</middleName>

   <dateOfBirth>2012-06-12T00:00:00-04:00</dateOfBirth>

</person>

FAIL -  stack trace below


<person>

   <familyName>TestFamily</familyName>

   <givenName> TestGiven</givenName>

   <middleName> TestMiddle </middleName>

</person>

SUCCESS


<person>

   <familyName> TestFamily </familyName>

   <givenName>TestGiven </givenName>

   <middleName> TestMiddle </middleName>

   <dateOfBirth>2012-06-12T00:00:00-04:00</dateOfBirth>

   <personIdentifiers>

    <identifier>7404271222127</identifier>

      <identifierDomain>

         <namespaceIdentifier>SANID</namespaceIdentifier>

     </identifierDomain>

   </personIdentifiers>

</person>

FAIL (but works when the global-identifier section is removed from the config) - stack trace below


The error message is:

<html><head><title>Apache Tomcat/7.0.26 - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 500 - </h1><HR size="1" noshade="noshade"><p><b>type</b> Exception report</p><p><b>message</b> <u></u></p><p><b>description</b> <u>The server encountered an internal error () that prevented it from fulfilling this request.</u></p><p><b>exception</b> <pre>java.lang.NullPointerException

org.openhie.openempi.service.impl.PersonManagerServiceImpl.getGlobalPersonIdentifierCopy(PersonManagerServiceImpl.java:1656)

org.openhie.openempi.service.impl.PersonManagerServiceImpl.findAndProcessAddRecordLinks(PersonManagerServiceImpl.java:1368)

org.openhie.openempi.service.impl.PersonManagerServiceImpl.addPerson(PersonManagerServiceImpl.java:103)

sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

java.lang.reflect.Method.invoke(Method.java:606)

org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)

org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)

org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)

com.sun.proxy.$Proxy35.addPerson(Unknown Source)

org.openempi.webservices.restful.resources.PersonManagerResource.addPerson(PersonManagerResource.java:58)

sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

java.lang.reflect.Method.invoke(Method.java:606)

com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)

com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185)

com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)

com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288)

com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)

com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)

com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)

com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)

com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1483)

com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1414)

com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1363)

com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1353)

com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:414)

com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537)

com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:708)

javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

</pre></p><p><b>note</b> <u>The full stack trace of the root cause is available in the Apache Tomcat/7.0.26 logs.</u></p><HR size="1" noshade="noshade"><h3>Apache Tomcat/7.0.26</h3></body></html>

Jeremy Keiper

unread,
Mar 4, 2014, 2:11:31 PM3/4/14
to client-...@googlegroups.com
Are you sure that the global identifier type you chose in the mpi-config.xml is actually available in the system?  Also, you will have to restart your app server if you make a change to mpi-config.xml (although I'm sure you knew that already).

I believe the default identifier type for global identifier assignment is ECID but I might be wrong ... and you should be able to find what identifier types have been defined already in the user interface under admin ...

Inline image 1


Jeremy Keiper
OpenMRS Core Developer
AMPATH / IU-Kenya Support


--
You received this message because you are subscribed to the Google Groups "Client Registry" group.
To unsubscribe from this group and stop receiving emails from it, send an email to client-regist...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Pierre Dane

unread,
Mar 4, 2014, 5:30:06 PM3/4/14
to client-...@googlegroups.com, client-...@googlegroups.com
hi Jeremy,

thanks for your reply. unfortunately i am sure the identifier exists, and I did restart the web server. I could give you login details to our ec2 instance if you have time to have a look at the set up- it's only in dev stage and there is no sensitive information in the db as yet. I'm very keen to learn more about how identifiers work so let me know if you have space to discuss this issue. 

all the best,

Pierre 


On 4 Mar 2014, at 21:11, Jeremy Keiper <jer...@openmrs.org> wrote:

Are you sure that the global identifier type you chose in the mpi-config.xml is actually available in the system?  Also, you will have to restart your app server if you make a change to mpi-config.xml (although I'm sure you knew that already).

I believe the default identifier type for global identifier assignment is ECID but I might be wrong ... and you should be able to find what identifier types have been defined already in the user interface under admin ...

<image.png>
You received this message because you are subscribed to a topic in the Google Groups "Client Registry" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/client-registry/Fu0i6wZeMhY/unsubscribe.
To unsubscribe from this group and all its topics, send an email to client-regist...@googlegroups.com.

Wayne Chelliah

unread,
Mar 5, 2014, 4:05:31 AM3/5/14
to client-...@googlegroups.com, pie...@jembi.org, Jeremy Keiper
Hi Odysseas and Shaun,

According to my calender, we have the monthly OHIE Client Registry Community Call scheduled for this Friday (7th March @ 3pm CAT). 

Will it be possible to add the above discussion point to the meeting agenda.

Regards
Wayne
Wayne Naidoo
Technical Project Manager, Jembi Health Systems  SOUTH AFRICA
Mobile: +27 84 3011 681 | Skype: wcnaidoo
E-mail: wa...@jembi.org

Odysseas Pentakalos, Ph.D.

unread,
Mar 5, 2014, 5:32:49 AM3/5/14
to client-...@googlegroups.com
Hi Wayne,

From looking at the error message that Pierre has included in his email, this looks like a technical issue that is usually addressed in the OpenEMPI user forum. The
link for that forum is below:

https://kenai.com/projects/openempi/forums/user-forum

If you can also send me the connection information for your EC2 instance, we can investigate the issue when we have some time.

Best regards,
Odysseas
-- 
Odysseas Pentakalos, Ph.D., PMP
Chief Technology Officer
SYSNET International, Inc.
2930 Oak Shadow Drive
Oak Hill, Virginia 20171
mailto:odys...@sysnetint.com
(703) 855-2029
Reply all
Reply to author
Forward
0 new messages