I am in the planning phase of building a Drupal 7 site that is supposed to function as a data portal with features like surveys and data dashboards. We have a definition of surveys that we need to run through the site and we have a list of people (participant) who will be answering our surveys. There are three surveys. The first is the initial evaluation, the second is the follow-up, and the third is the assessment. Each participant will answer the initial evaluation once. Each participant will answer the follow-up as many times as he or she wants. Each participant will answer the assessment survey as many times as he or she wants.

Also, each survey will be answered in an interview bases. So, one of our field workers will be asking the participant the survey questions and filling in the answers via the web form.

Given that a participant has one initial evaluation, 0 or many follow-up, surveys and 0 or more assessments, I am not sure how to plan out the data model in Drupal.

Another issue I am trying to figure out how to handle is not allowing the initial evaluation survey to be created more than once for a participant. I have done this sort of thing before in other programming based frameworks, but not a CMS. I have no idea what modules might handle this for me.

Thanks for help.

Comments

greenstick’s picture

I may be missing something here, but if one of your field workers is doing the actual input - can't you rely on them to either 'pass' or 'fail' the participant following the initial survey? Are the follow ups and and assessments then entered by a field worker as well - or is the participant given access to the forms at that point assuming they're permitted after the initial interview?

acatejr’s picture

@greenstick You didn't miss anything. I left out some details because my description of the application could have become too long. The assessments or surveys don't have any sort of pass/fail or grading. They surveys are just questions like "What is your birth date?", "What is your address?", "How many people live in your household?" At the end of one of the surveys the field worker is just saving the information. Another nuance is many of the participants do not speak English, so the field worker has to interact with the survey.

greenstick’s picture

Well, depending on how much a 'field worker' can be trusted to do things and the organizational structure you want, a kind of easy way would be to:

  • Set up a new user role for field workers.
  • Set up a new user role for participants.
  • Give the field workers permission to add new participants as users.
  • Have the field workers actually input the data through the participant account.

Done like that, webforms already has the ability to restrict the number of submissions on a per-form basis to users, in which case the initial evaluation could be set to allow only one submission per user, ever, while the other forms allow unlimited or a set number of submissions.

This keeps each participants submissions tied to that 'user', even if they didn't actually complete the forms personally.

You could use some type of user reference in the Webform alternatively that the field worker selected, but off the top of my head it would seem both harder to restrict, and harder to set up all around.

acatejr’s picture

@greenstick Thank you. I am thinking more and more on the same terms as you. I think the survey participants should be entering the data in the forms themselves and the field workers should only be offering interface guidance or help.