Hi, Everyone, Please I need a help, I have project that will be use for health facility assessment, Please how can I put a restriction on my form that only entry will come to that facility,
e.g some of our data collectors are sending us duplicate form/submission from 1 single facility.
thank you
Hi @saliero
Do you know why they are submitting duplicate entries?
Hi @saliero, It will be best if you share your ODK form if it does not have any sensitive information. Some approaches will involve using IDs for each entry/submission and validating these IDs using entities. But this can be best solved by looking at your form structure and what data points you are collecting.
Hi Mr. Chimwemwe, thank you so much for the response, Okay share your mail, however, please how can I put a date restriction on my form, I want to restrict backdating when feeling the form
Not really but sometimes they did that after they realize there is a mistake on the initial form submitted
As of now there is no native feature that can stop data collectors from re-entering and submitting the form of same facility. When they re-submit you will end up having duplicate records with same facility ID (I hope you have put one unique ID for uniquely identifying facilities in the form). In this scenario one way to solve the problem is that you can share this problem with your data collectors, and have an agreement with them - that only the most latest record submitted by them will be considered in the main data for analysis; and when you analyse and make report from submissions, you drop the duplicate records for same facility by first sorting them by submission time and Facility ID in descending order, and then removing any duplicate record on basis of the unique facility id. I hope this approach helps you.
Hi Mr Joybindroo, I really appreciate your input here, thank you,
also a quick one please can you assist me with this, I want make a date constraint on my form, I want avoid putting a previous date during data collection.
thank you once again
A while has passed since this thread was started but it's a good question so I did want to make sure it gets an answer.
In general, @Chimwemwe is correct that this is a good use case for Entities -- preventing duplicate submissions requires maintaining some information between those form submissions and that's exactly what Entities are designed for.
Here is a sample form that illustrates one approach to addressing this need. The idea is to start with a list of known facilities as an Entity List. The form starts by letting a user select one of those facilities. The facility list is filtered to only show facilities that have not been updated during the current calendar month. When a report is completed and submitted, the latest report date is saved which removes the facility from the list to select from until the calendar month changes.
If you want to try this form, you can first upload the form to Central and then publish it. This will create a facilities
Entity List. You can then go to that list and upload a CSV with some facility data, for example by downloading the facilities
sheet from the form I linked to. You can learn more about uploading a CSV to create Entity data in the documentation.
There are many variations to this general idea. For example:
- You could compute 30 days since the last report instead of using the calendar month
- You could show a map of facilities instead of a text-based list
- You could have the data collector fill in a facility ID or scan a facility QR code instead of having them select a facility from a list