Open joeflack4 opened 6 years ago
@jkpr Recently had me look through the ODK Collect release note history for the purposes of evaluating possible future upgrades of JHU Collect. Here is what I found.
@joeflack4 It'd be good to understand what critical features JHU Collect has that ODK Collect doesn't have. It'd also be good to understand what would it take to get those critical features added to ODK Collect in a generic way so JHU doesn't have the burden of keeping your fork in sync with the mainline.
@yanokwa What are you doing here!
I'll confer with James. We can get a list for you. Any preference on where you'd like that list to ultimately be posted?
@joeflack4 I'M EVERYWHERE!
I think putting a list at the top of this issue would be a good place to start.
@yanokwa Sounds good. I've updated this info with some of the unique implementations of features that JHU Collect has. Let me know if that is helpful.
@yanokwa: We would like to update our fork of ODK Collect this year, preferably before November. You have said it would be nice to pull this feature into community ODK Collect. What are the next steps to move this forward so that it can become a part of community ODK Collect? What timelines are we looking at? How can we help? It would be great for us if we could get it done before November.
I am putting below some more details about form linking to add to what @joeflack4 has written.
A standard use case is the following:
PMA2020 uses this scheme to interview a household and identify eligible females for later questioning on topics like reproductive health.
Some features of form linking are the following:
We at PMA2020 have used the form linking functionality only in the context of repeat groups. If a single repeat group has an associated child form and the repeat group is deleted, then the child form is deleted.
It may be useful to allow different child forms with different eligibility and to allow form linking outside of repeat groups.
I think the high-level process is that JHU files this as a feature request at https://forum.opendatakit.org/c/features so we can start a discussion with the technical steering committee. Paging @lognaturel for feedback.
It's unlikely this can be pulled into Collect as is, so November would be a challenge. What would make it less of a challenge is if JHU could resource a technical person (ideally an Android dev) to take the lead on bringing this functionality into the core.
@jkpr Added your comments to the issue. @yanokwa I will go ahead and post this to the features forum, thanks for the direction. As for working internally on this (would come from the PMA2020 grant), I do not know what our capacity is / will be in the near future for that. We are currently transitioning to a new grant. I believe we will know more in the coming months.
Edit: Posted, https://forum.opendatakit.org/t/form-linking/14565.
Just noting a bugfix that we'll benefit from when upgrading; something that's been solved in ODK Collect.
Error in choice filter during begin repeat
This guy was having an error: XPath evaluation: type mismatch This field is repeated
I noticed I was having this as well. Yaw mentioned that this was an issue in older versions. In this case, the guy was using the KoBo Toolbox app.
General Notes
What JHU Collect has that ODK Collect doesn't
Independent, novel features
Form linking
If I recall correctly, this was developed by @yanokwa. In the source file there is a
save_form
andsave_instance
binding (I believe this may be the correct term). The corresponding fields exist in the source XlsForm.A standard use case is the following:
PMA2020 uses this scheme to interview a household (household questionnaire) and identify eligible females for later questioning (female questionnaire) on topics like reproductive health. The household questionnaire might have the following fields:
hidden string
type (similar to acalculate
), with the value offq-v1
in thesave_form
field of the XlsForm. The value "fq-v1" represents theform_id
in the settings worksheet of the child form. In this case, it would be short for "female questionnaire, version 1".type
is possible), with values of the structureXML_ROOT/PATH/TO/NODE
in thesave_instance
field of the XlsForm. The "XML_ROOT" would be found in thexml_root
field of the settings worksheet of the child form. If, for example, my "XML_ROOT" was "FQ" (female questionnaire), and I had a question with the namefirst_name
in a group calledconfirm_info
, the following value would be entered insave_instance
:/FQ/confirm_info/first_name
.Given this setup, we would expect the following behavior in JHU Collect:
save_instance
in the parent form, the question would be pre-populated with whatever the value was in the parent form (household questionnaire).Some features of form linking are the following:
We at PMA2020 have used the form linking functionality only in the context of repeat groups. If a single repeat group has an associated child form and the repeat group is deleted, then the child form is deleted.
In the future, it may be useful to allow different child forms with different eligibility and to allow form linking outside of repeat groups.
Hidden fields
JHU Collect has fields like "hidden string", "hidden int", etc. However I am not sure if there is an advantage to using these fields over a calculate, other than the advantage of strong typing. @jkpr may be able to say more.
Variations of features that exist in ODK Collect
User in-app behavior analytics
JHU Collect's implementation may be more granular, but the underlying mechanism (plain text file attachment) is probably inferior to what exists in ODK Collect. I do not use either, so I'm not too sure on the differences. @jkpr would be able to speak more on JHU Collects implementation.
Ethiopian calendar implementation
I think this is very similar to what ODK Collect has, and probably not as good.
What ODK Collect has that JHU Collect doesn't
Essential or very desired
New Features
Bugfixes
Nice to have
New Features
General Updates
ethiopian
(depending on how different from JHU Collect)Developer updates
Bugfixes
Other updates of possible interest
New Features
General Updates
Developer Updates