Dear ODKers,
I have been tasked with programming a household survey using ODK
Collect. The survey has the following sections:
- Collect a list of all household members from oldest to youngest.
For each household member ask a number of questions.
- For each child under five years of age ask questions about nutrition.
- For each child-bearing age woman in the household ask about malaria
knowledge.
Given my knowledge of XForms and Collect 1.1.5, I see two approaches
to implementing this survey:
-
Move all sections into loop #1. As we're collecting information on
each household member, if this household member is a child under five
ask the appropriate group of questions, if the household member is a
child-bearing age woman ask the questions about malaria knowledge.
-
Have the surveyor maintain a paper list of household members that
assigns ID numbers to each household member. The loops #2 and #3 have
no knowledge of what was input in loop #1 and we rely on the surveyor
to put the right household member IDs into loops #2 and #3.
Any suggestions for alternative solutions?
Andrew
These are definitely the two possibilities in a single form. Another option
is to consider separate forms but that would even have more issues getting
data from one form into another.
Option 1 is certainly the easiest. However, it depends on how many
questions there are about the child or woman. If it is only a few, then
this is definitely the way to go. If the nutrition/malaria questions are
extensive then it may not work so well to dive deep about one person.
Option 2 depends on how well XPATH expressions are supported in JR and
whether you can reference data in different iterations of loop #1 and even
determine how many iterations there were. In practice, though, this
approach isn't all that different than Option 1 as you still have to dive
into the details of each person one at a time.
I would go with 1 unless your field staff complains about the approach.
Gaetano
···
On Mon, Aug 8, 2011 at 1:45 PM, Andrew Marder wrote:
Dear ODKers,
I have been tasked with programming a household survey using ODK
Collect. The survey has the following sections:
- Collect a list of all household members from oldest to youngest.
For each household member ask a number of questions.
- For each child under five years of age ask questions about nutrition.
- For each child-bearing age woman in the household ask about malaria
knowledge.
Given my knowledge of XForms and Collect 1.1.5, I see two approaches
to implementing this survey:
-
Move all sections into loop #1. As we're collecting information on
each household member, if this household member is a child under five
ask the appropriate group of questions, if the household member is a
child-bearing age woman ask the questions about malaria knowledge.
-
Have the surveyor maintain a paper list of household members that
assigns ID numbers to each household member. The loops #2 and #3 have
no knowledge of what was input in loop #1 and we rely on the surveyor
to put the right household member IDs into loops #2 and #3.
Any suggestions for alternative solutions?
Andrew
--
Post: opendatakit@googlegroups.com
Unsubscribe: opendatakit+unsubscribe@googlegroups.com
Options: http://groups.google.com/group/opendatakit?hl=en
Hi Gaetano,
Thanks for the quick feedback.
These are definitely the two possibilities in a single form. Another option
is to consider separate forms but that would even have more issues getting
data from one form into another.
Option 1 is certainly the easiest. However, it depends on how many
questions there are about the child or woman. If it is only a few, then
this is definitely the way to go. If the nutrition/malaria questions are
extensive then it may not work so well to dive deep about one person.
Option 2 depends on how well XPATH expressions are supported in JR and
whether you can reference data in different iterations of loop #1 and even
determine how many iterations there were. In practice, though, this
approach isn't all that different than Option 1 as you still have to dive
into the details of each person one at a time.
The part I haven't figured out is how to get a counter in the repeat.
For instance if I was writing this in Python I would do something
like:
members =
while household has more members:
members.append( new household member )
for i in range(len(members)):
if members[i].age <5:
ask questions for child under five
The XPath I need to access will look like /household/member[i]/age. Is
this currently possible?
···
On Mon, Aug 8, 2011 at 5:24 PM, Gaetano Borriello wrote:
I would go with 1 unless your field staff complains about the approach.
Gaetano
On Mon, Aug 8, 2011 at 1:45 PM, Andrew Marder andrew.ei.marder@gmail.com wrote:
Dear ODKers,
I have been tasked with programming a household survey using ODK
Collect. The survey has the following sections:
- Collect a list of all household members from oldest to youngest.
For each household member ask a number of questions.
- For each child under five years of age ask questions about nutrition.
- For each child-bearing age woman in the household ask about malaria
knowledge.
Given my knowledge of XForms and Collect 1.1.5, I see two approaches
to implementing this survey:
-
Move all sections into loop #1. As we're collecting information on
each household member, if this household member is a child under five
ask the appropriate group of questions, if the household member is a
child-bearing age woman ask the questions about malaria knowledge.
-
Have the surveyor maintain a paper list of household members that
assigns ID numbers to each household member. The loops #2 and #3 have
no knowledge of what was input in loop #1 and we rely on the surveyor
to put the right household member IDs into loops #2 and #3.
Any suggestions for alternative solutions?
Andrew
--
Post: opendatakit@googlegroups.com
Unsubscribe: opendatakit+unsubscribe@googlegroups.com
Options: http://groups.google.com/group/opendatakit?hl=en
--
Post: opendatakit@googlegroups.com
Unsubscribe: opendatakit+unsubscribe@googlegroups.com
Options: http://groups.google.com/group/opendatakit?hl=en
To solve a similar problem we used relative paths,for eg.
../age<5
Regards
Deepak
Hi Gaetano,
Thanks for the quick feedback.
These are definitely the two possibilities in a single form. Another
option
is to consider separate forms but that would even have more issues
getting
data from one form into another.
Option 1 is certainly the easiest. However, it depends on how many
questions there are about the child or woman. If it is only a few, then
this is definitely the way to go. If the nutrition/malaria questions are
extensive then it may not work so well to dive deep about one person.
Option 2 depends on how well XPATH expressions are supported in JR and
whether you can reference data in different iterations of loop #1 and
even
···
On Aug 9, 2011 3:15 AM, "Andrew Marder" wrote:
> On Mon, Aug 8, 2011 at 5:24 PM, Gaetano Borriello wrote:
>> determine how many iterations there were. In practice, though, this
>> approach isn't all that different than Option 1 as you still have to dive
>> into the details of each person one at a time.
>
> The part I haven't figured out is how to get a counter in the repeat.
> For instance if I was writing this in Python I would do something
> like:
>
> members = []
> while household has more members:
> members.append( new household member )
>
> for i in range(len(members)):
> if members[i].age <5:
> ask questions for child under five
>
> The XPath I need to access will look like /household/member[i]/age. Is
> this currently possible?
>
>>
>> I would go with 1 unless your field staff complains about the approach.
>>
>> Gaetano
>>
>>
>>
>> On Mon, Aug 8, 2011 at 1:45 PM, Andrew Marder >>
>>> Dear ODKers,
>>>
>>> I have been tasked with programming a household survey using ODK
>>> Collect. The survey has the following sections:
>>>
>>> 1. Collect a list of all household members from oldest to youngest.
>>> For each household member ask a number of questions.
>>> 2. For each child under five years of age ask questions about nutrition.
>>> 3. For each child-bearing age woman in the household ask about malaria
>>> knowledge.
>>>
>>> Given my knowledge of XForms and Collect 1.1.5, I see two approaches
>>> to implementing this survey:
>>>
>>> 1. Move all sections into loop #1. As we're collecting information on
>>> each household member, if this household member is a child under five
>>> ask the appropriate group of questions, if the household member is a
>>> child-bearing age woman ask the questions about malaria knowledge.
>>>
>>> 2. Have the surveyor maintain a paper list of household members that
>>> assigns ID numbers to each household member. The loops #2 and #3 have
>>> no knowledge of what was input in loop #1 and we rely on the surveyor
>>> to put the right household member IDs into loops #2 and #3.
>>>
>>> Any suggestions for alternative solutions?
>>>
>>> Andrew
>>>
>>> --
>>> Post: opendatakit@googlegroups.com
>>> Unsubscribe: opendatakit+unsubscribe@googlegroups.com
>>> Options: http://groups.google.com/group/opendatakit?hl=en
>>
>> --
>> Post: opendatakit@googlegroups.com
>> Unsubscribe: opendatakit+unsubscribe@googlegroups.com
>> Options: http://groups.google.com/group/opendatakit?hl=en
>>
>
> --
> Post: opendatakit@googlegroups.com
> Unsubscribe: opendatakit+unsubscribe@googlegroups.com
> Options: http://groups.google.com/group/opendatakit?hl=en