===== Adding PROM data to CDM ===== ===Proposals now housed on github=== [[https://github.com/OHDSI/CommonDataModel/issues/90|link to github]] * Requestor: Colin Orr and Catherine Kerr, ICON plc * Revising party: Joshua Ransom, Anna Corning, Emelly Rusli, Rayhnuma Ahmed, Aaron Stern; SHYFT Analytics * Discussion: [[http://forums.ohdsi.org/t/linking-patient-survey-responses-together/2413/19|here]] ==== Background ==== ICON plc is currently engaged in a project with [[http://www.ichom.org/|ICHOM (International Consortium for Health Outcomes Measurement]]. //"ICHOM's mission is to unlock the potential of value-based healthcare by defining global Standard Sets of outcome measures that really matter to patients for the most relevant medical conditions and by driving adoption and reporting of these measures worldwide."// ICHOM brings together patient representatives, clinician leaders, and registry leaders from all over the world to develop Standard Sets, comprehensive yet parsimonious sets of outcomes and case-mix variables for specific medical conditions that ICHOM recommends all providers track. Each Standard Set focuses on patient-centered results, and provides an internationally-agreed upon method for measuring each of these outcomes. ICHOM believes that standardized outcomes measurement will open up new possibilities to compare performance globally, allow clinicians to learn from each other, and rapidly improve the care provided to patients. ICHOM Standard Sets include baseline conditions and risk factors to enable meaningful case-mix adjustment globally, ensuring that comparisons of outcomes will take into account the differences in patient populations across not just providers, but also countries and regions. They also include high-level treatment variables to allow stratification of outcomes by major treatment types. A comprehensive data dictionary, as well as scoring guides for patient-reported outcomes is provided for each Standard Set. ==== Proposal ==== ICON plc is developing a platform to ingest, store and analyse the outcome measures and is using the OMOP Common Data Model to store the data. The current CDM satisfies many of the requirements, but there are some gaps, specifically: * We need to store data relating to each PROM (Patient_reported Outcome Measure) questionnaire that is completed by a patient. We propose introducing a new SURVEY table. Each row in the table represents an instance of a completed survey and serves to link a number of observations together in the RESPONSE table as well as providing additional information about the survey itself. * The patient responses are stored as key-value pairs in the RESPONSE table, but we need to be able to group responses together according to the survey they belong to. We also need to know the timing of the observation in relation to the treatment the patient received - for example, 'baseline', or 'six month followup', so that we can compare outcomes. We propose adding the SURVEY and RESPONSE tables to fit these requirements. * Patient responses will be stored in the RESPONSE table as either: \\ RESPONSE_AS_CONCEPT_ID, RESPONSE_AS_NUMBER, RESPONSE_AS_STRING, and/or RESPONSE_AS_DATETIME. We require an extension to the concept table to include the following domain/vocabulary additions: ^ Domain ^ Vocabulary ^ | SURVEY | LOINC (PhenX and EQ-5D are both captured within this existing vocabulary), OMOP Custom (including ICHOM?) \\ *each survey included may require end user license agreements | | QUESTION | LOINC (PhenX and EQ-5D are both captured within this existing vocabulary), OMOP Custom (including ICHOM?) \\ *each survey included may require end user license agreements | * QUESTION_CONCEPT_ID and QUESTION_SOURCE_VALUE may be used to record individual questions or groupings of questions that represent a survey Section (these relationships could be managed within the FACT_RELATIONSHIP table as well) * Extensions to the concept table will include the ICHOM Data Dictionaries for each Standard Set. This requires new concepts for each data point in each Standard Set AND a concept for each allowable value for each data point. The ICHOM vocabulary will grow with each Standard Set that is defined by ICHOM. Each Standard Set is likely to generate 500 to 1,000 concepts and the objective is for 50 Standard Sets, thus requiring in the order of 50,000 new concepts. === SURVEY table === (other potential table name options: PRO, PATIENT_REPORTED_OUTCOME, PROM, others?) ^ Field \\ //Proposed revision// ^ Required ^ Type ^ Description ^ Field \\ //Reference from original proposal, if revised// ^ | SURVEY_ \\ OCCURRENCE_ID | Yes | integer | Unique identifier for each completed survey | SURVEY_ID | | SURVEY_ \\ CONCEPT_ID | Yes | integer | A foreign key that refers to a survey Concept identifier in the Standardized Vocabularies | | | PERSON_ID | Yes | integer | A foreign key identifier to the Person in the PERSON table about whom the survey was completed | | | VISIT_ \\ OCCURRENCE_ID | No | integer | A foreign key to the visit in the visit table during which the the treatment was carried out that relates to this survey | | | SURVEY_DATE | Yes | date | Date on which the survey was completed | | | ASSISTED_ \\ CONCEPT_ID | No | integer | A foreign key that refers to a data source Concept identifier in the Standardized Vocabularies \\ Example: \\ Yes = concept_id 45877994; LOINC concept_code LA33-6 \\ No = concept_id 45878245; LOINC concept_code LA32-8 | ASSISTED_IND \\ _CONCEPT_ID | | ASSISTED_IND | No | varchar(10) | ICHOM code representing whether patient required assistance to complete the survey - 1=Completed without assistance, 2=Completed with assistance | | SURVEY_RECORDER \\ _CONCEPT_ID | No | integer | A foreign key that refers to a data source Concept identifier in the Standardized Vocabularies \\ Example: \\ Research Associate = concept_id 4074477; SNOMED concept_code 224614003 \\ Patient = concept_id 4023409; SNOMED concept_code 116154003 | DATA_SOURCE \\ _CONCEPT_ID | | SURVEY_RECORDER \\ _SOURCE_VALUE | No | varchar(10) | ICHOM code representing role of person who completed the survey - e.g. 1=Administrative, 2=Clinician, 3=Patient-reported | DATA_SOURCE | | TIMING_ \\ CONCEPT_ID | No | integer | A foreign key that refers to a timing Concept identifier in the Standardized Vocabularies \\ Example: \\ 3 month follow-up = concept_id 44789369; SNOMED obs concept_code 200521000000107 | | | TIMING_ \\ SOURCE_VALUE | No | varchar(100) | Text string representing the timing of the survey - e.g. 'BASELINE' | | | COLLECTION_ \\ METHOD_CONCEPT_ID | No | varchar(10) | A foreign key that refers to a collection method Concept identifier in the Standardized Vocabularies \\ Example: \\ Telephone Reported = concept_id 4084141; obs SNOMED concept_code 281313006 | | | COLLECTION_METHOD | No | varchar(10) | The collection type as it appears in the source data.This code is mapped to a Standard Concept in the Standardized Vocabularies and the original code is stored here for reference. \\ Example: \\ ICHOM code representing method of capturing responses in survey - e.g. 1=Paper, 2=Telephone, 3=Electronic Questionnaire | | | DURATION | No | varchar(50) | Time taken to complete survey HH:MM:SS | | | SURVEY_ \\ SOURCE_VALUE | No | varchar(100) | The survey name/title as it appears in the source data. This code is mapped to a Standard Concept in the Standardized Vocabularies and the original code is stored here for reference. | SURVEY_NAME | | SURVEY_ \\ SOURCE_IDENTIFIER | No | varchar(100) | Unique identifier for each completed survey in source system | SURVEY_ \\ SOURCE_VALUE | | VALIDATED_ \\ SURVEY_ \\ CONCEPT_ID | No | Integer | A foreign key that refers to a data source Concept identifier in the Standardized Vocabularies \\ Example: \\ Yes = concept_id 45877994; LOINC concept_code LA33-6 \\ No = concept_id 45878245; LOINC concept_code LA32-8 | | | VALIDATED_SURVEY \\ _SOURCE_VALUE | No | varchar(50) | The validated survey identifier as it appears in the source data. This code is mapped to a Standard Concept in the Standardized Vocabularies and the original code is stored here for reference. | | === RESPONSE table === ^ Field ^ Required ^ Type ^ Description ^ | RESPONSE_OCCURRENCE_ID | Yes | integer | Unique identifier for each response. | | PERSON_ID | Yes | integer | A foreign key identifier to the Person in the PERSON table about whom the response was recorded. | | SURVEY_OCCURRENCE_ID | Yes | integer | A foreign key to SURVEY table about which survey the question and response occurred. | | QUESTION_CONCEPT_ID | Yes | integer | A foreign key that refers to a question Concept identifier in the Standardized Vocabularies | | QUESTION_SOURCE_VALUE | No | varchar(255) | The question as it appears in the source data. This code is mapped to a Standard Concept in the Standardized Vocabularies and the original code is, stored here for reference. | | RESPONSE_DATE | Yes | date | Date on which the response was recorded | | RESPONSE_DATETIME | No | datetime | Date and time on which the response was recorded | | RESPONSE_AS_CONCEPT_ID | Yes | integer | Foreign key that refers to a response Concept identifier in the Standardized Vocabularies | | RESPONSE _AS_STRING | No | varchar(255) | The response stored as a string. This is applicable to questions where the result is expressed as verbatim text. | | RESPONSE _AS_NUMBER | No | float | The response stored as a number. This is applicable to questions where the result is expressed as a numeric value. | | RESPONSE_AS_DATETIME | No | datetime | The response stored as a datetime. This is applicable to questions where the result is expressed as a historical date/time. | | RESPONSE_RANGE_LOW | No | varchar(50) | The lowest value of the range of responses for the question. | | RESPONSE_RANGE_HIGH | No | varchar(50) | The highest value of the range of responses for the question | ==== Use Cases ==== Example is for observation made through Question 1 (HPS1) on the HOOSPS survey (Hip Disability and Osteoarthritis Outcome Score). The question asks the degree of difficulty in descending stairs due to the patient's hip problem. The patient answers "Moderate". === CONCEPT table - example === ^ CONCEPT_ID ^ CONCEPT _NAME ^ DOMAIN_ID ^ VOCABULARY_ID ^ CONCEPT_ CLASS_ID ^ STANDARD _CONCEPT ^ CONCEPT _CODE ^ | 2020 | HPS1 | Metadata | Domain | Domain | | ICHOM generated | | 2021 | None | HPS1 | ICHOM Observation | PRO Measure | S | 0 | | 2022 | Mild | HPS1 | ICHOM Observation | PRO Measure | S | 1 | | 2023 | Moderate | HPS1 | ICHOM Observation | PRO Measure | S | 2 | | 2024 | Severe | HPS1 | ICHOM Observation | PRO Measure | S | 3 | | 2025 | Extreme | HPS1 | ICHOM Observation | PRO Measure | S | 4 | The patient response is captured as a code 0..4 and the CONCEPT_ID is determined by finding a match for the question Variable ID (HPS1) in DOMAIN_ID and the response in the CONCEPT_CODE. === SURVEY table - example === ^ Column ^ Value ^ Comment ^ | SURVEY_OCCURRENCE_ID | 19073 | | | SURVEY_CONCEPT_ID | 3501 | Concept for HOOSPS survey | | PERSON_ID | 21405 | | | VISIT_OCCURRENCE_ID | 13403 | | | SURVEY_DATE | 2016-07-14 | | | ASSISTANCE_CONCEPT_ID | 3601 | Concept for "Completed without assistance" | | ASSISTANCE_SOURCE_VALUE | 1 | ICHOM value for "Completed without assistance" | | SURVEY_RECORDER_CONCEPT_ID | 3611 | Concept for "Patient-reported" | | SURVEY_RECORDER_SOURCE_VALUE | 3 | ICHOM value for "Patient-reported" | | TIMING_CONCEPT_ID | 3621 | Concept for "BASELINE" timing | | TIMING_SOURCE_VALUE | BASELINE | | | COLLECTION_METHOD_CONCEPT_ID | 3631 | Concept for "Electronic questionnaire" | | COLLECTION_METHOD_SOURCE_VALUE | 3 | ICHOM value for "Electronic questionnaire" | | DURATION_TIME | 00:07:45 | Patient took 7 minutes and 45 seconds to complete online survey | | SURVEY_SOURCE_VALUE | HOOSPS | | | SURVEY_SOURCE_IDENTIFIER | HS001234 | | | VALIDATED_SURVEY_CONCEPT_ID | 3701 | Concept for "Validated survey" | | VALIDATED_SURVEY_SOURCE_VALUE | 1 | ICHOM value for "Validated Survey" | === RESPONSE table - example === ^ Column ^ Value ^ Comment ^ | RESPONSE_OCCURRENCE_ID | 794657 | | | PERSON_ID | 21405 | | | SURVEY_OCCURRENCE_ID | 19073 | | | QUESTION_CONCEPT_ID | 2020 | Concept for HPS1 | | QUESTION_SOURCE_VALUE | HPS1 | | | RESPONSE_DATE | 2016-07-14 | | | RESPONSE_DATETIME | | | | RESPONSE_AS_CONCEPT_ID | 2023 | Concept for "Moderate" | | RESPONSE _AS_STRING | | | | RESPONSE _AS_NUMBER | | | | RESPONSE_AS_DATETIME | | | | RESPONSE_RANGE_LOW | 0 | | | RESPONSE_RANGE_HIGH | 4 | |