I've more or less decided on a solution, but wanted to have other pair of eyeball just in case I've gone insane.
Suppose that we have several different funders, and they want us to collect demographic & statistics. No problem!
Further suppose that our users want to report something about a person once and have the common information apply forward to specific reporting requirements of each funders. Erm, no problem?
Still, suppose that each funder had their own list which isn't identical to other.
Let us use ethnicity for example.
Suppose one want us to report ethnicity using one of those value:
while another wants this:
To be clear, there are already flags in place for 'Others', 'Unknown', and so that is not a problem.
Given the users' requirement that they want to select from one list and have database figure out how this value will apply to a particular report, my solution was to implement only the most narrow definition, while querying for broader definition using something like "If it's that value, it's like this value, so use this value for this report." Brain-dead to set up but hell to maintain (e.g. if funder decided to modify their list, I have to manually redefine the whole thing)
Therefore the list shown to my users would be like:
I've considered doing a set (e.g. Asian + Hispanic from a series of checkbox or multi-select listbox), but decided that this may violate the requirement of "just one selection'n'forget it" imposed by the users and make it even more complicated than the previous idea.
Anyone else has a suggestion or opinions on how you would implement this or maybe share if you've had similar requirement and how you implemented this?
Suppose that we have several different funders, and they want us to collect demographic & statistics. No problem!
Further suppose that our users want to report something about a person once and have the common information apply forward to specific reporting requirements of each funders. Erm, no problem?
Still, suppose that each funder had their own list which isn't identical to other.
Let us use ethnicity for example.
Suppose one want us to report ethnicity using one of those value:
Code:
Caucasian
African-American
Alaskan Native
Native American
Asian
Pacific Islanders
Hispanic
while another wants this:
Code:
Caucasian (Not of Hispanic Origin)
Caucasian (Of Hispanic Origin)
Black
Native Americans
Asian/Pacific Islanders
To be clear, there are already flags in place for 'Others', 'Unknown', and so that is not a problem.
Given the users' requirement that they want to select from one list and have database figure out how this value will apply to a particular report, my solution was to implement only the most narrow definition, while querying for broader definition using something like "If it's that value, it's like this value, so use this value for this report." Brain-dead to set up but hell to maintain (e.g. if funder decided to modify their list, I have to manually redefine the whole thing)
Therefore the list shown to my users would be like:
Code:
Caucasian (Not of Hispanic Origin) 'May resolve to 'Caucasian'
Caucasian (Of Hispanic Origin) 'May resolve to Hispanic'
Africian-American 'May resolve to Black
Alaskan Native 'May resolve to Native American
Native American 'No resolution necessary
Hispanic 'May resolve to Caucasian of Hispanic Origin
Asian 'May resolve to Asian/Pacific Islanders
Pacific Islanders 'Ditto
I've considered doing a set (e.g. Asian + Hispanic from a series of checkbox or multi-select listbox), but decided that this may violate the requirement of "just one selection'n'forget it" imposed by the users and make it even more complicated than the previous idea.
Anyone else has a suggestion or opinions on how you would implement this or maybe share if you've had similar requirement and how you implemented this?