Eliminate the surveyed households ID from the pre-loaded CSV list options

1. What is the problem? Be very detailed.
I am doing a survey of 1000 households, spread across multiple villages.
I have all the household names from previous survey which is pre-loaded (with CSV) in options list.
The challenge is once I complete the survey of a farmer from population of 1000, how can I eliminate the name from the option list.
This will help enumerator to assess and collect the remaining farmers plus avoid duplication.

2. What app or server are you using and on what device and operating system? Include version numbers.
ODK collect app with Nokia C30 Andorid phone

3. What you have you tried to fix the problem?
I did it manually as a trial, enumerator collects the data and upload on google sheet then manually I export the data and update the CSV which again downloaded in ODK collect.

4. What steps can we take to reproduce the problem?
NA

5. Anything else we should know or have? If you have a test form or screenshots or logs, attach below.
NA

You would need an external program done in python/Windows batch /linux bash script etc. to periodically update the CSV (pull data reference file) attached to the form. To get the new pending list, fieldworkers would need to periodically get a new blank form after submitting completed interviews.

A work-around to achieve the same result is to:
1 Assign the enumerators village/sub villages with only csv files belonging to those household within those particular villages/sub villages attached. (replace the original csv file with this in the tablet sd card)
2. Use a repeat group feature to track the household interviewed and warn if there is duplication.
Note: For this to work, each enumerator should be assigned unique households i.e no overlap.

This means every interviewer will have their own unique local CSV file that the preload function would be making reference to. Is it?

@Stephen_K_ojwang

Thanks for the work-arounds.
The challenge with first work-around is, it is a lot of manual process for user to upload data to ODK server then someone at server need to download the data and upload back to server as external media/CSV, then user download the blank form again.

Second work-around, do you mean listing all farmers in one single question only then with repeat identify those surveyed or not? with this approach, I need to survey all the farmers first then enter in one go, else survey first farmer then save and using edit add more farmers (using repeat question logic).

I am looking for something where the transaction is automatic (whenever internet connection is available).

Yes, sure make a uniques csv file for each enumerator based on the assigned location/village

[quote="Prashant_K, post:1, topic:36475"]
household names from previous survey which is pre-loaded (with CSV) in options list.
[/quote] .... Download and use this with a unique primary key as an external csv file. Split this csv file according to the number of enumerators/assigned location. This is what I meant by step 1. Then step 2 use a repeat group to host all the household surveyed. So whenever a new household id is entered it is checked against the space delimited list for a duplicate -which is then used as a constraint to warn of a duplicate entry.
Note:

  1. This is a 2-step work-around.
  2. Each enumerator will do only one submission for all the household interviewed.
  3. String functions can be used to check for the duplicate entries.
  4. There will be no constant manual update of the csv files as it is done once prior to survey. 5. There will be no constant download of the new blank forms from the server.
    I hope now this clarifies all your issues.

Hi Stephan,

Thanks for the clarification, though I still have a doubt how it will work in the APP.
The flow with use of repeat function will work If I complete my survey of all households in one go. Otherwise, I will have to go to edit the saved form and then complete the form. correct?
or I am completely missing the flow?

May be I write the case again,
I have 10 villages, with 40-50 farmers in each village. I have name of the farmers and village name etc.
In ODK i select the village then using pulldata, i fetch list of farmers from resp. village.
I go to each farmer and ask 2 questions, if he is interested in planting trees in his farm and if yes, size of the land.
now I complete 35 farmers out of 40 farmers. How can I easily know which 5 farmers are remaining?

Thanks in advance !

Exactly, you are right this is the workflow..
"The flow with use of repeat function will work If I complete my survey of all households in one go. Otherwise, I will have to go to edit the saved form and then complete the form. correct?
or I am completely missing the flow?"

thanks for clarification.
I am not able to eliminate the farmer names those are selected in repeat group.
any chance someone can help. attached is the excel form, csv and xml

1_planting_2022_form_design.xlsx (27.0 KB)

1_planting_2022.xml (5.3 KB)
farmers_db_csv.csv (846 Bytes)