Efficiently capturing age and/or birthdate

Hi all,

My name is Christian Neumann and I'm currently working with Partners In
Health in/for Malawi to evaluate a simple referral-tracking system. After
my first steps with CommCare I'm now reaching out to you to see if there
are more elegant ways to some of my problems. I'll split them in multiple
emails to better keep track of them; so there might be a couple of them
today and tomorrow coming in from me ... :wink:

My first topic is around birthdates and I'm curious to learn if there are
best practices around the data entry.

So far I'm using a date question with the three 'rollers' for day, month,
and year. As a default, the form displays todays date. This requires a lot
of 'rolling' especially for the entry of years if someone is older. It
takes me plenty of 'swipe downs' with my finger (and with this data entry
time) for a 50 years old person. I'm not sure how, but I wonder if there is
a more efficient and less tedious way?

Maybe as an alternative path before the data entry of the precise date, an
simple integer question for age could be helpful. Ideally this would feed
into the birthdate question and pre-populate it at least with the correct
year.

And finally I would like to know how to handle cases where the precise
birthdate isn't know at all (in Malawi especially older people often don't
know their exact birthdates). As I'm coming from the OpenMRS world we can
capture 'estimated' birthdates as part of the OpenMRS default data model.
In essence, this is mostly an ordinary date field with an additional flag
to indicate that this date isn't necessarily precise. Is there a similar
built-in concept in CommCare?

Thanks a lot,
christian

Hi Christian,

To answer the first part for your question, you can use the date
calculation to calculate the Date of Birth based on an integer question.
See examples in this
article: https://confluence.dimagi.com/display/commcarepublic/Calculations+with+Dates+and+Times
You can basically capture age and then have something like date(today() -
/data/age*365.25)) to output the Date of Birth

For the second part, in situations where the precise Date of Birth is not
known, you can still use the above method to capture an estimated age and
then a date of birth can be calculated based on this. You can then add a
label question that will display this date of birth and stating that it is
not necessarily precise.

Hope this helps,

Best,

Kishan

路路路 On Thursday, June 16, 2016 at 6:48:11 PM UTC+5:30, Christian Neumann wrote: > > Hi all, > > My name is Christian Neumann and I'm currently working with Partners In > Health in/for Malawi to evaluate a simple referral-tracking system. After > my first steps with CommCare I'm now reaching out to you to see if there > are more elegant ways to some of my problems. I'll split them in multiple > emails to better keep track of them; so there might be a couple of them > today and tomorrow coming in from me ... ;) > > My first topic is around birthdates and I'm curious to learn if there are > best practices around the data entry. > > So far I'm using a date question with the three 'rollers' for day, month, > and year. As a default, the form displays todays date. This requires a lot > of 'rolling' especially for the entry of years if someone is older. It > takes me plenty of 'swipe downs' with my finger (and with this data entry > time) for a 50 years old person. I'm not sure how, but I wonder if there is > a more efficient and less tedious way? > > Maybe as an alternative path before the data entry of the precise date, an > simple integer question for age could be helpful. Ideally this would feed > into the birthdate question and pre-populate it at least with the correct > year. > > And finally I would like to know how to handle cases where the precise > birthdate isn't know at all (in Malawi especially older people often don't > know their exact birthdates). As I'm coming from the OpenMRS world we can > capture 'estimated' birthdates as part of the OpenMRS default data model. > In essence, this is mostly an ordinary date field with an additional flag > to indicate that this date isn't necessarily precise. Is there a similar > built-in concept in CommCare? > > Thanks a lot, > christian >

Hey Christian,

I'll also add that this difficulty with the date picker widget has been
identified previously and we're currently working on a new, more usable
version that we hope to include in an upcoming CommCare release.

Sincerely,
Will

路路路 On Thu, Jun 16, 2016 at 10:29 AM, Kishan Sampat wrote:

Hi Christian,

To answer the first part for your question, you can use the date
calculation to calculate the Date of Birth based on an integer question.
See examples in this article:
Calculations with Dates and Times - CommCare Public - Dimagi Confluence
You can basically capture age and then have something like date(today() -
/data/age*365.25)) to output the Date of Birth

For the second part, in situations where the precise Date of Birth is not
known, you can still use the above method to capture an estimated age and
then a date of birth can be calculated based on this. You can then add a
label question that will display this date of birth and stating that it is
not necessarily precise.

Hope this helps,

Best,

Kishan

On Thursday, June 16, 2016 at 6:48:11 PM UTC+5:30, Christian Neumann wrote:

Hi all,

My name is Christian Neumann and I'm currently working with Partners In
Health in/for Malawi to evaluate a simple referral-tracking system. After
my first steps with CommCare I'm now reaching out to you to see if there
are more elegant ways to some of my problems. I'll split them in multiple
emails to better keep track of them; so there might be a couple of them
today and tomorrow coming in from me ... :wink:

My first topic is around birthdates and I'm curious to learn if there are
best practices around the data entry.

So far I'm using a date question with the three 'rollers' for day, month,
and year. As a default, the form displays todays date. This requires a lot
of 'rolling' especially for the entry of years if someone is older. It
takes me plenty of 'swipe downs' with my finger (and with this data entry
time) for a 50 years old person. I'm not sure how, but I wonder if there is
a more efficient and less tedious way?

Maybe as an alternative path before the data entry of the precise date,
an simple integer question for age could be helpful. Ideally this would
feed into the birthdate question and pre-populate it at least with the
correct year.

And finally I would like to know how to handle cases where the precise
birthdate isn't know at all (in Malawi especially older people often don't
know their exact birthdates). As I'm coming from the OpenMRS world we can
capture 'estimated' birthdates as part of the OpenMRS default data model.
In essence, this is mostly an ordinary date field with an additional flag
to indicate that this date isn't necessarily precise. Is there a similar
built-in concept in CommCare?

Thanks a lot,
christian

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

Hi Christian,

On the date question, you can select and hold any of the fields inside the
2 blue bars and should get relevant number/month boxes to manually type in
the date info. This might be a more efficient option to avoid so much
scrolling.

Lauren

Lauren N. Fox
Dimagi, Inc.
Maputo, Mozambique

Moz: +258 82 78 49 245
dimagi.com http://www.dimagi.com/ *| *commcarehq.org

We're Hiring! Check out our current openings.
http://www.dimagi.com/about/careers/

路路路 On Thu, Jun 16, 2016 at 4:29 PM, Kishan Sampat wrote:

Hi Christian,

To answer the first part for your question, you can use the date
calculation to calculate the Date of Birth based on an integer question.
See examples in this article:
Calculations with Dates and Times - CommCare Public - Dimagi Confluence
You can basically capture age and then have something like date(today() -
/data/age*365.25)) to output the Date of Birth

For the second part, in situations where the precise Date of Birth is not
known, you can still use the above method to capture an estimated age and
then a date of birth can be calculated based on this. You can then add a
label question that will display this date of birth and stating that it is
not necessarily precise.

Hope this helps,

Best,

Kishan

On Thursday, June 16, 2016 at 6:48:11 PM UTC+5:30, Christian Neumann wrote:

Hi all,

My name is Christian Neumann and I'm currently working with Partners In
Health in/for Malawi to evaluate a simple referral-tracking system. After
my first steps with CommCare I'm now reaching out to you to see if there
are more elegant ways to some of my problems. I'll split them in multiple
emails to better keep track of them; so there might be a couple of them
today and tomorrow coming in from me ... :wink:

My first topic is around birthdates and I'm curious to learn if there are
best practices around the data entry.

So far I'm using a date question with the three 'rollers' for day, month,
and year. As a default, the form displays todays date. This requires a lot
of 'rolling' especially for the entry of years if someone is older. It
takes me plenty of 'swipe downs' with my finger (and with this data entry
time) for a 50 years old person. I'm not sure how, but I wonder if there is
a more efficient and less tedious way?

Maybe as an alternative path before the data entry of the precise date,
an simple integer question for age could be helpful. Ideally this would
feed into the birthdate question and pre-populate it at least with the
correct year.

And finally I would like to know how to handle cases where the precise
birthdate isn't know at all (in Malawi especially older people often don't
know their exact birthdates). As I'm coming from the OpenMRS world we can
capture 'estimated' birthdates as part of the OpenMRS default data model.
In essence, this is mostly an ordinary date field with an additional flag
to indicate that this date isn't necessarily precise. Is there a similar
built-in concept in CommCare?

Thanks a lot,
christian

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

Thanks everybody,

All good information/tips. I think I鈥檒l start with Kishan鈥檚 suggestion and
am glad that Lauren pointed out the select-and-hold feature for more
efficient numeric entry.

christian

路路路 On Thursday, June 16, 2016 at 4:32:25 PM UTC+2, Lauren Fox wrote: > > Hi Christian, > > On the date question, you can select and hold any of the fields inside the > 2 blue bars and should get relevant number/month boxes to manually type in > the date info. This might be a more efficient option to avoid so much > scrolling. > > Lauren > > *Lauren N. Fox* > Dimagi, Inc. > Maputo, Mozambique > > Moz: +258 82 78 49 245 > dimagi.com *| *commcarehq.org > > **We're Hiring! Check out our current openings. > ** > > On Thu, Jun 16, 2016 at 4:29 PM, Kishan Sampat <ksa...@dimagi.com > wrote: > >> Hi Christian, >> >> To answer the first part for your question, you can use the date >> calculation to calculate the Date of Birth based on an integer question. >> See examples in this article: >> https://confluence.dimagi.com/display/commcarepublic/Calculations+with+Dates+and+Times >> You can basically capture age and then have something like date(today() - >> /data/age*365.25)) to output the Date of Birth >> >> For the second part, in situations where the precise Date of Birth is not >> known, you can still use the above method to capture an estimated age and >> then a date of birth can be calculated based on this. You can then add a >> label question that will display this date of birth and stating that it is >> not necessarily precise. >> >> Hope this helps, >> >> Best, >> >> Kishan >> >> On Thursday, June 16, 2016 at 6:48:11 PM UTC+5:30, Christian Neumann wrote: >>> >>> Hi all, >>> >>> My name is Christian Neumann and I'm currently working with Partners In >>> Health in/for Malawi to evaluate a simple referral-tracking system. After >>> my first steps with CommCare I'm now reaching out to you to see if there >>> are more elegant ways to some of my problems. I'll split them in multiple >>> emails to better keep track of them; so there might be a couple of them >>> today and tomorrow coming in from me ... ;) >>> >>> My first topic is around birthdates and I'm curious to learn if there >>> are best practices around the data entry. >>> >>> So far I'm using a date question with the three 'rollers' for day, >>> month, and year. As a default, the form displays todays date. This requires >>> a lot of 'rolling' especially for the entry of years if someone is older. >>> It takes me plenty of 'swipe downs' with my finger (and with this data >>> entry time) for a 50 years old person. I'm not sure how, but I wonder if >>> there is a more efficient and less tedious way? >>> >>> Maybe as an alternative path before the data entry of the precise date, >>> an simple integer question for age could be helpful. Ideally this would >>> feed into the birthdate question and pre-populate it at least with the >>> correct year. >>> >>> And finally I would like to know how to handle cases where the precise >>> birthdate isn't know at all (in Malawi especially older people often don't >>> know their exact birthdates). As I'm coming from the OpenMRS world we can >>> capture 'estimated' birthdates as part of the OpenMRS default data model. >>> In essence, this is mostly an ordinary date field with an additional flag >>> to indicate that this date isn't necessarily precise. Is there a similar >>> built-in concept in CommCare? >>> >>> Thanks a lot, >>> christian >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "commcare-users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to commcare-user...@googlegroups.com . >> For more options, visit https://groups.google.com/d/optout. >> > >

Getting a bit stuck while I have the feeling it should be straight-forward.

Regarding the birthdate/age I thought I simply have an integer question
about the age first and use this to calculate an approximation for the
birthdate. The calculated approximated birthdate then feeds as a default
value into a 2nd (birth)date question and the user can fine-tune from there.

I鈥檝e tried different combinations of hidden and default values without
luck. Is there another simple way? Do I really need to dig into case
properties
(https://confluence.dimagi.com/display/commcarepublic/Defining+a+Default+Value)?

Thanks,
christian

路路路 On Monday, June 20, 2016 at 6:07:22 AM UTC+2, Christian Neumann wrote: > > Thanks everybody, > > All good information/tips. I think I'll start with Kishan's suggestion and > am glad that Lauren pointed out the select-and-hold feature for more > efficient numeric entry. > > christian > > On Thursday, June 16, 2016 at 4:32:25 PM UTC+2, Lauren Fox wrote: >> >> Hi Christian, >> >> On the date question, you can select and hold any of the fields inside >> the 2 blue bars and should get relevant number/month boxes to manually type >> in the date info. This might be a more efficient option to avoid so much >> scrolling. >> >> Lauren >> >> *Lauren N. Fox* >> Dimagi, Inc. >> Maputo, Mozambique >> >> Moz: +258 82 78 49 245 >> dimagi.com *| *commcarehq.org >> >> **We're Hiring! Check out our current openings. >> ** >> >> On Thu, Jun 16, 2016 at 4:29 PM, Kishan Sampat wrote: >> >>> Hi Christian, >>> >>> To answer the first part for your question, you can use the date >>> calculation to calculate the Date of Birth based on an integer question. >>> See examples in this article: >>> https://confluence.dimagi.com/display/commcarepublic/Calculations+with+Dates+and+Times >>> You can basically capture age and then have something like date(today() - >>> /data/age*365.25)) to output the Date of Birth >>> >>> For the second part, in situations where the precise Date of Birth is >>> not known, you can still use the above method to capture an estimated age >>> and then a date of birth can be calculated based on this. You can then add >>> a label question that will display this date of birth and stating that it >>> is not necessarily precise. >>> >>> Hope this helps, >>> >>> Best, >>> >>> Kishan >>> >>> On Thursday, June 16, 2016 at 6:48:11 PM UTC+5:30, Christian Neumann wrote: >>>> >>>> Hi all, >>>> >>>> My name is Christian Neumann and I'm currently working with Partners In >>>> Health in/for Malawi to evaluate a simple referral-tracking system. After >>>> my first steps with CommCare I'm now reaching out to you to see if there >>>> are more elegant ways to some of my problems. I'll split them in multiple >>>> emails to better keep track of them; so there might be a couple of them >>>> today and tomorrow coming in from me ... ;) >>>> >>>> My first topic is around birthdates and I'm curious to learn if there >>>> are best practices around the data entry. >>>> >>>> So far I'm using a date question with the three 'rollers' for day, >>>> month, and year. As a default, the form displays todays date. This requires >>>> a lot of 'rolling' especially for the entry of years if someone is older. >>>> It takes me plenty of 'swipe downs' with my finger (and with this data >>>> entry time) for a 50 years old person. I'm not sure how, but I wonder if >>>> there is a more efficient and less tedious way? >>>> >>>> Maybe as an alternative path before the data entry of the precise date, >>>> an simple integer question for age could be helpful. Ideally this would >>>> feed into the birthdate question and pre-populate it at least with the >>>> correct year. >>>> >>>> And finally I would like to know how to handle cases where the precise >>>> birthdate isn't know at all (in Malawi especially older people often don't >>>> know their exact birthdates). As I'm coming from the OpenMRS world we can >>>> capture 'estimated' birthdates as part of the OpenMRS default data model. >>>> In essence, this is mostly an ordinary date field with an additional flag >>>> to indicate that this date isn't necessarily precise. Is there a similar >>>> built-in concept in CommCare? >>>> >>>> Thanks a lot, >>>> christian >>>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "commcare-users" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to commcare-user...@googlegroups.com. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >>