openEMPI Identifiers - South African National Pregnancy Register

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 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 xml present in mpi-config.xml)

TestFamily

TestGiven

TestMiddle

2012-06-12T00:00:00-04:00

FAIL - stack trace below

TestFamily

TestGiven

TestMiddle

SUCCESS

TestFamily

TestGiven

TestMiddle

2012-06-12T00:00:00-04:00

<identifier>7404271222127</identifier>

  <identifierDomain>

SANID

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

The error message is:

Apache Tomcat/7.0.26 - Error report

HTTP Status 500 -


type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

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)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.26 logs.


Apache Tomcat/7.0.26

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

···

Jeremy Keiper
OpenMRS Core Developer
AMPATH / IU-Kenya Support

On Tue, Mar 4, 2014 at 10:16 AM, pierre@jembi.org wrote:

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 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 xml present in mpi-config.xml)

TestFamily

TestGiven

TestMiddle

2012-06-12T00:00:00-04:00

FAIL - stack trace below

TestFamily

TestGiven

TestMiddle

SUCCESS

TestFamily

TestGiven

TestMiddle

2012-06-12T00:00:00-04:00

7404271222127

<identifierDomain>

SANID

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

The error message is:

Apache Tomcat/7.0.26 - Error report

HTTP Status 500 -


type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

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)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.26 logs.


Apache Tomcat/7.0.26

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-registry+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/groups/opt_out.

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

···

Jeremy Keiper
OpenMRS Core Developer
AMPATH / IU-Kenya Support

On Tue, Mar 4, 2014 at 10:16 AM, pierre@jembi.org wrote:

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 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 xml present in mpi-config.xml)

TestFamily

TestGiven

TestMiddle

2012-06-12T00:00:00-04:00

FAIL - stack trace below

TestFamily

TestGiven

TestMiddle

SUCCESS

TestFamily

TestGiven

TestMiddle

2012-06-12T00:00:00-04:00

7404271222127

<identifierDomain>

SANID

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

The error message is:

Apache Tomcat/7.0.26 - Error report

HTTP Status 500 -


type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

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)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.26 logs.


Apache Tomcat/7.0.26

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-registry+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/groups/opt_out.

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

···

On Wed, Mar 5, 2014 at 12:30 AM, Pierre Dane pierre@jembi.org wrote:

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 jeremy@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-registry+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/groups/opt_out.

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-registry+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/groups/opt_out.


Wayne Naidoo

Technical Project Manager, Jembi Health Systems | SOUTH AFRICA

Mobile: +27 84 3011 681 | Skype: wcnaidoo
E-mail: wayne@jembi.org

Jeremy Keiper
OpenMRS Core Developer
AMPATH / IU-Kenya Support

On Tue, Mar 4, 2014 at 10:16 AM, pierre@jembi.org wrote:

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 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 xml present in mpi-config.xml)

TestFamily

TestGiven

TestMiddle

2012-06-12T00:00:00-04:00

FAIL - stack trace below

TestFamily

TestGiven

TestMiddle

SUCCESS

TestFamily

TestGiven

TestMiddle

2012-06-12T00:00:00-04:00

7404271222127

<identifierDomain>

SANID

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

The error message is:

Apache Tomcat/7.0.26 - Error report

HTTP Status 500 -


type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

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)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.26 logs.


Apache Tomcat/7.0.26

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-registry+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/groups/opt_out.

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

···

On 03/05/2014 04:05 AM, Wayne Chelliah wrote:

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

On Wed, Mar 5, 2014 at 12:30 AM, Pierre Dane <pierre@jembi.org > <mailto:pierre@jembi.org>> wrote:

    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 <jeremy@openmrs.org > <mailto:jeremy@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>

    Jeremy Keiper
    OpenMRS Core Developer
    AMPATH / IU-Kenya Support

    On Tue, Mar 4, 2014 at 10:16 AM, <pierre@jembi.org >> <mailto:pierre@jembi.org>> wrote:

        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>

        -- 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-registry+unsubscribe@googlegroups.com
        <mailto:client-registry%2Bunsubscribe@googlegroups.com>.
        For more options, visit https://groups.google.com/groups/opt_out.

    -- 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-registry+unsubscribe@googlegroups.com
    <mailto:client-registry+unsubscribe@googlegroups.com>.

    For more options, visit https://groups.google.com/groups/opt_out.

    -- 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-registry+unsubscribe@googlegroups.com
    <mailto:client-registry+unsubscribe@googlegroups.com>.
    For more options, visit https://groups.google.com/groups/opt_out.

--
Wayne Naidoo
Technical Project Manager, Jembi Health Systems | SOUTH AFRICA
Mobile: +27 84 3011 681 | Skype: wcnaidoo
E-mail: wayne@jembi.org <mailto:wayne@jembi.org>
--
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-registry+unsubscribe@googlegroups.com <mailto:client-registry+unsubscribe@googlegroups.com>.
For more options, visit https://groups.google.com/groups/opt_out.

--
Odysseas Pentakalos, Ph.D., PMP
Chief Technology Officer
SYSNET International, Inc.
2930 Oak Shadow Drive
Oak Hill, Virginia 20171
mailto:odysseas@sysnetint.com
(703) 855-2029