NOTE: I’m using the term survey and questionnaire interchangeably in the conversation below.
Not to beat a dead horse, but I’ve been reading about CDM v6 and questionnaires / surveys on these forums. We’re trying to “future proof”, to a certain extent, and would like to follow best practices ahead of time rather than fixing everything later.
LOINC seems to store each survey, question, and answer as a separate concept, and uses the concept_relationship
table to link them. Panel contains
and Has Answer
are relationships used.
To use a concrete example, here are the links for the LOINC Kansas City Cardiomyopathy Questionnaire (KCCQ):
- survey itself: Athena
- one of the questions, “Bothered by fatigue over the past 2 weeks” : Athena
- one of the answers, “Extremely bothersome”, Athena
We’re thinking of modeling our surveys, questions, and answers similarly.
We’ve also been reading a lot of info on the forums, Github, web, etc. about how surveys are done in CDM.
- Survey Data in CDM · Issue #90 · OHDSI/CommonDataModel · GitHub
- https://www.ohdsi.org/web/wiki/lib/exe/fetch.php?media=resources:using_the_omop_cdm_with_survey_and_registry_data_v6.0.pdf
- OMOP CDM v6.0
- documentation:next_cdm:add_survey [Observational Health Data Sciences and Informatics]
- Questionnaire
- How to link content/observations with different versions of survey
- Survey vocabularies
- Survey to CDM 5.4
There’s some inconsistencies (is the table called survey
or survey_conduct
?), but that’s a minor issue from my perspective, as we can rename a table really easily. We’re more interested in recommendations on how to store questionnaire questions and answers.
A few questions:
- Some people seem to recommend just using your own custom schema until v6 is finalized.
- Since Survey Data in CDM · Issue #90 · OHDSI/CommonDataModel · GitHub has been merged, is it safe to assume that the general schema will remain the same, and can be safely used for internal purposes? We’d prefer doing this, instead of reinventing the wheel.
- Are the relationships that LOINC uses, (i.e.,
Has Answer
,Panel contains
) canon? Should we continue doing this? - Should responses to surveys go in the
response
table,measurement
,observation
, orcondition
? Or a combination of them? Or it depends on the question answered?? - We want to perform statistical operations such as histograms and averages for survey responses. For example, “Degree of difficulty experienced due to your hip while descending stairs in the last week [HOOS]” has a range from None, Mild, Moderate, Severe, Extreme. We’d map these to 0 - 4 to get an average. What’s the best way to map these categories to numbers?
concept_relationship
with a custom relationship?
Anyway, any recommendations would be greatly appreciated, thank you!