← Back to team overview

dhis2-devs team mailing list archive

Re: WebApi failing Email, FileResources and

 

Ok, Calle, thanks for the info :) so when you say custom app.. I guess it's
Android?

-- 
Morten Olav Hansen
Senior Engineer, DHIS 2
University of Oslo
http://www.dhis2.org

On Fri, Jun 3, 2016 at 7:52 PM, Calle Hedberg <calle.hedberg@xxxxxxxxx>
wrote:

> Morten,
>
> Sorry if my brief wasn't 100% clear on that - the DHIS user reg is a
> separate thing. All users logging in will be able to view (but not change)
> the general routine stuff around positions available etc. The pin-code is
> used in the custom app to ensure that all applicant users can only view and
> edit their own registrations/applications - not others.
>
> Regards
> Calle
>
> On 3 June 2016 at 14:23, Mike Nelushi <mikeevolution@xxxxxxxxx> wrote:
>
>> Yes, its a custom app. Thanks.
>>
>> On Fri, Jun 3, 2016 at 2:21 PM, Morten Olav Hansen <morten@xxxxxxxxx>
>> wrote:
>>
>>> Ok, I just saw `Login using PIN-code for account`, maybe you are using a
>>> custom apps for this..
>>>
>>> I saw you bug report, we will have a look at it
>>>
>>> --
>>> Morten Olav Hansen
>>> Senior Engineer, DHIS 2
>>> University of Oslo
>>> http://www.dhis2.org
>>>
>>> On Fri, Jun 3, 2016 at 7:18 PM, Mike Nelushi <mikeevolution@xxxxxxxxx>
>>> wrote:
>>>
>>>> Hi Morten,
>>>>
>>>> The pinCode is not the the DHIS2-Account it is for specific program
>>>> that they registered for. But the main thing is to be able to send emails
>>>> and later sms because there will be a lot of notification/alerts to each
>>>> user(e.g if they sent a wrong file).
>>>>
>>>> Regards,
>>>> Mike
>>>>
>>>> On Fri, Jun 3, 2016 at 2:05 PM, Morten Olav Hansen <morten@xxxxxxxxx>
>>>> wrote:
>>>>
>>>>> Hi Calle
>>>>>
>>>>> Out of curiosity... how can they login with this "PIN-code" is it
>>>>> simply the set password for their account?
>>>>>
>>>>> --
>>>>> Morten Olav Hansen
>>>>> Senior Engineer, DHIS 2
>>>>> University of Oslo
>>>>> http://www.dhis2.org
>>>>>
>>>>> On Fri, Jun 3, 2016 at 6:52 PM, Calle Hedberg <calle.hedberg@xxxxxxxxx
>>>>> > wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> Since this instance is innovative and handling a somewhat unusual
>>>>>> scenario, it might be helpful to understand the background and conceptual
>>>>>> design:
>>>>>>
>>>>>> 1.
>>>>>> South Africa requires around 10,000 new health graduates (doctors,
>>>>>> nurses, physiotherapists and other professions allied to medicine) to do
>>>>>> one year of Community Service after graduation every year, and before they
>>>>>> take up normal work. Medical doctors also do internships in various
>>>>>> accredited hospitals as part of their practical studies.
>>>>>>
>>>>>> 2.
>>>>>> The CommServe instance contain routine data about the number of
>>>>>> community service or internship positions at all relevant health
>>>>>> facilities, together with some information on things like available
>>>>>> accommodation and distance to the nearest town, contact details, etc.
>>>>>>
>>>>>> 3.
>>>>>> Using a newly developed app, each of the ~10,000 graduates will in
>>>>>> the REGISTRATION phase
>>>>>> (a) register as a DHIS user (user reg)
>>>>>> (b) register as an applicant and submit relevant demography and
>>>>>> contact details about themselves (TRACKER app)
>>>>>> (c) submit relevant scanned PDF documents (copy of ID/Passport,
>>>>>> marriage certificate, graduation results, etc)
>>>>>> (d) be allocated a "PIN-code" that ensures that the candidate (and
>>>>>> ONLY that candidate) can log in again to the same registered "account"
>>>>>> (e) having the pin-code emailed to themselves (and nobody else) after
>>>>>> the registration process is completed, so that they don't forget it.
>>>>>>
>>>>>> 4.
>>>>>> Logging in again to the same account using the pin-code, each
>>>>>> graduate will in the first/second/third APPLICATION phase
>>>>>> (a) view available posts according to their profession (and in some
>>>>>> cases their location or bursary status)
>>>>>> (b) select five facilities of their choice for their community
>>>>>> service or internship.
>>>>>>
>>>>>> 5.
>>>>>> After each phase, the system is running a number of algorithms to
>>>>>> allocate graduates to health facilities, with confirmation emails / SMSs
>>>>>> sent out to each individual.
>>>>>> Every allocation means that applicant is not required to re-apply and
>>>>>> the post is removed from the available pool.
>>>>>> Those applicants not successful in round 1 because the applied only
>>>>>> for over-subscribed posts (where allocation will be done by lottery, so to
>>>>>> say) will go to round 2 and possibly 3.
>>>>>> In round 2 or 3, remaining applicants will again apply for 5 priority
>>>>>> postings among those remaining.
>>>>>>
>>>>>> As should be obvious from the above, it is critical that we are able
>>>>>> to send emails to each applicant individually, and it is also critical to
>>>>>> ensure that the uploading of scanned documents works as expected (NOTE: we
>>>>>> hope to be able to restrict such uploads to PDF format only, and preferably
>>>>>> also to a maximum size. Having applicants just using their smart-phones to
>>>>>> snap large-size pictures of documents is to be avoided).
>>>>>>
>>>>>> This is a high-profile application and it has already been approved
>>>>>> by the National Health Council, so it is critical to get the last few bugs
>>>>>> ironed out.
>>>>>>
>>>>>> Regards
>>>>>> Calle
>>>>>>
>>>>>> On 3 June 2016 at 13:27, Morten Olav Hansen <morten@xxxxxxxxx> wrote:
>>>>>>
>>>>>>> Before Lars answers
>>>>>>>
>>>>>>> Mike, can you provide us with a detailed bug report on launchpad? it
>>>>>>> will help us track this bug, I can have a look on Monday
>>>>>>>
>>>>>>> --
>>>>>>> Morten Olav Hansen
>>>>>>> Senior Engineer, DHIS 2
>>>>>>> University of Oslo
>>>>>>> http://www.dhis2.org
>>>>>>>
>>>>>>> On Fri, Jun 3, 2016 at 6:26 PM, Morten Olav Hansen <morten@xxxxxxxxx
>>>>>>> > wrote:
>>>>>>>
>>>>>>>> Hi Mike
>>>>>>>>
>>>>>>>> I'm adding in Lars.. It's been a while since i looked at it.. but I
>>>>>>>> don't think that is how it was designed, if you select an org unit.. it
>>>>>>>> will send to EVERYBODY connected to that (kinda like when you assign an OU
>>>>>>>> to a user), if you want to send to individual users.. you need to select
>>>>>>>> them manually...
>>>>>>>>
>>>>>>>> --
>>>>>>>> Morten Olav Hansen
>>>>>>>> Senior Engineer, DHIS 2
>>>>>>>> University of Oslo
>>>>>>>> http://www.dhis2.org
>>>>>>>>
>>>>>>>> On Fri, Jun 3, 2016 at 6:24 PM, Mike Nelushi <
>>>>>>>> mikeevolution@xxxxxxxxx> wrote:
>>>>>>>>
>>>>>>>>> Hi Morten,
>>>>>>>>>
>>>>>>>>> The messageConversations web-api is still a big issue because we
>>>>>>>>> need to send each user specific information to their e-mails.
>>>>>>>>>
>>>>>>>>> 1. Using  {"subject": subject, "text": message, "users": user}
>>>>>>>>>  json object, the mail gets stored on DHIS2 mail and does not send it to
>>>>>>>>> the user e-mail.
>>>>>>>>>
>>>>>>>>> LogUtil.java [http-apr-8080-exec-3])
>>>>>>>>> * INFO  2016-05-29 14:14:52,484 Invoking message sender: $Proxy53
>>>>>>>>> (DefaultMessageService.java [http-apr-8080-exec-3])
>>>>>>>>> * INFO  2016-05-29 14:14:52,529 Invoking message sender:
>>>>>>>>> SmsMessageSender (DefaultMessageService.java [http-apr-8080-exec-3])
>>>>>>>>> * ERROR 2016-05-29 14:14:52,579 Unexpected error occurred invoking
>>>>>>>>> async method 'public java.lang.String
>>>>>>>>> org.hisp.dhis.message.EmailMessageSender.sendMessage(java.lang.String,java.lang.String,jav
>>>>>>>>> a.lang.String,org.hisp.dhis.user.User,java.util.Set,boolean)'.
>>>>>>>>> (SimpleAsyncUncaughtExceptionHandler.java [taskScheduler-7])
>>>>>>>>> org.hibernate.LazyInitializationException: failed to lazily
>>>>>>>>> initialize a collection of role: org.hisp.dhis.user.User.organisationUnits,
>>>>>>>>> could not initialize proxy - no Session
>>>>>>>>>         at
>>>>>>>>> org.hibernate.collection.internal.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:569)
>>>>>>>>>         at
>>>>>>>>> org.hibernate.collection.internal.AbstractPersistentCollection.withTemporarySessionIfNeeded(AbstractPersistentCollection.java:188)
>>>>>>>>>         at
>>>>>>>>> org.hibernate.collection.internal.AbstractPersistentCollection.readSize(AbstractPersistentCollection.java:139)
>>>>>>>>>         at
>>>>>>>>> org.hibernate.collection.internal.PersistentSet.size(PersistentSet.java:156)
>>>>>>>>>         at
>>>>>>>>> org.hisp.dhis.common.IdentifiableObjectUtils.join(IdentifiableObjectUtils.java:76)
>>>>>>>>>         at
>>>>>>>>> org.hisp.dhis.user.User.getOrganisationUnitsName(User.java:288)
>>>>>>>>>         at
>>>>>>>>> org.hisp.dhis.message.EmailMessageSender.renderPlainContent(EmailMessageSender.java:188)
>>>>>>>>>         at
>>>>>>>>> org.hisp.dhis.message.EmailMessageSender.sendMessage(EmailMessageSender.java:115)
>>>>>>>>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>>>>>>>>> Method)
>>>>>>>>>         at
>>>>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>>>>>>>         at
>>>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>>>>>>         at java.lang.reflect.Method.invoke(Method.java:498)
>>>>>>>>>         at
>>>>>>>>> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)
>>>>>>>>>         at
>>>>>>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
>>>>>>>>>         at
>>>>>>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
>>>>>>>>>         at
>>>>>>>>> org.springframework.aop.interceptor.AsyncExecutionInterceptor$1.call(AsyncExecutionInterceptor.java:108)
>>>>>>>>>         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>>>>>>>>>         at
>>>>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
>>>>>>>>>         at
>>>>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
>>>>>>>>>         at
>>>>>>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>>>>>>>>>         at
>>>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>>>>>>>>>         at java.lang.Thread.run(Thread.java:745)
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 2, Using {"subject": subject, "text": message, "users": users,
>>>>>>>>> "organisationUnits": organisationUnits}, sends email to everyone in the
>>>>>>>>> Orgunit and we want to send to individuals.
>>>>>>>>>
>>>>>>>>> Please advice.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Regards,
>>>>>>>>> Mike
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Fri, Jun 3, 2016 at 4:58 AM, Morten Olav Hansen <
>>>>>>>>> morten@xxxxxxxxx> wrote:
>>>>>>>>>
>>>>>>>>>> Hi Mike
>>>>>>>>>>
>>>>>>>>>> I'm adding in the dev list, and Halvdan (who knows about file
>>>>>>>>>> resource API). I will have a look at the start as app functionality.
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Morten
>>>>>>>>>>
>>>>>>>>>> On Thu, Jun 2, 2016 at 5:00 PM, Mike Nelushi <
>>>>>>>>>> mikeevolution@xxxxxxxxx> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi Calle,
>>>>>>>>>>>
>>>>>>>>>>> Apologies, forgot to add you on this thread.
>>>>>>>>>>>
>>>>>>>>>>> Regards
>>>>>>>>>>> Mike
>>>>>>>>>>> On 2 Jun 2016 11:35, "Mike Nelushi" <mikeevolution@xxxxxxxxx>
>>>>>>>>>>> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi Morten,
>>>>>>>>>>>>
>>>>>>>>>>>> Its Mike here from HISP-SA.
>>>>>>>>>>>>
>>>>>>>>>>>> We have been strangling to send email to individual users on
>>>>>>>>>>>> our new Community Service Application which is going live tomorrow. At the
>>>>>>>>>>>> moment when I send an email to individuals it sends to everyone who is a
>>>>>>>>>>>> DHIS2 user. Im user the dhis2.23 messageConversations web-api for this.
>>>>>>>>>>>>
>>>>>>>>>>>> A. The following are the two json objects I've used, the first
>>>>>>>>>>>> one doesn't send messages at all the messages stays on dhis2 mail.
>>>>>>>>>>>> 1. var json_Data = {"subject": subject, "text": message,
>>>>>>>>>>>> "users": users};
>>>>>>>>>>>> 2.var json_Data = {"subject": subject, "text": message,
>>>>>>>>>>>> "users": users, "organisationUnits": organisationUnits};
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> The following is our email settings
>>>>>>>>>>>>
>>>>>>>>>>>> [image: Inline image 1]
>>>>>>>>>>>>
>>>>>>>>>>>> B. Second Issue is that when we call fileResources webapi to
>>>>>>>>>>>> save file is does work but when you retrieve the file it says the file was
>>>>>>>>>>>> not saved. The following is the object:
>>>>>>>>>>>>                                     var file = item[0].files[0];
>>>>>>>>>>>>                                     var formData = new
>>>>>>>>>>>> FormData();
>>>>>>>>>>>>                                     formData.append('file',
>>>>>>>>>>>> file);
>>>>>>>>>>>>
>>>>>>>>>>>> C. The start page function on Appearance settings is not
>>>>>>>>>>>> working if you choice your own custom APP, when logging in it does it go to
>>>>>>>>>>>> the landing page instead it goes to index.action.
>>>>>>>>>>>>
>>>>>>>>>>>> Can you please help us with this issues?
>>>>>>>>>>>>
>>>>>>>>>>>> Regards,
>>>>>>>>>>>> Mike
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>>
>>>>>> *******************************************
>>>>>>
>>>>>> Calle Hedberg
>>>>>>
>>>>>> 46D Alma Road, 7700 Rosebank, SOUTH AFRICA
>>>>>>
>>>>>> Tel/fax (home): +27-21-685-6472
>>>>>>
>>>>>> Cell: +27-82-853-5352
>>>>>>
>>>>>> Iridium SatPhone: +8816-315-19119
>>>>>>
>>>>>> Email: calle.hedberg@xxxxxxxxx
>>>>>>
>>>>>> Skype: calle_hedberg
>>>>>>
>>>>>> *******************************************
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
>
> --
>
> *******************************************
>
> Calle Hedberg
>
> 46D Alma Road, 7700 Rosebank, SOUTH AFRICA
>
> Tel/fax (home): +27-21-685-6472
>
> Cell: +27-82-853-5352
>
> Iridium SatPhone: +8816-315-19119
>
> Email: calle.hedberg@xxxxxxxxx
>
> Skype: calle_hedberg
>
> *******************************************
>
>

PNG image


Follow ups

References