Hello- We are try to map the ‘standard’ SOGI questionnaire to OMOP CDM/Concepts and wondering if any site has already started this and would be willing to share. Epic has a standard flowsheet, so at least any Epic user, would be starting with same set of data collection points (variables) and possible responses (values) @MPhilofsky- if you know anything other work at CU on this. THanks
SOGI Sexual Orientation Gender Identity
Hello @schillil,
We’ve got this same task on our roadmap. We’re planning to tackle it over the next 6-8 weeks, so I would be happy to compare notes.
We’ve designed a custom table in Epic Caboodle into which we’ll load the records from Clarity’s social_hx
and social_hx_alc_use
tables. Then we’ll load our OMOP observation
table from there.
Did this a few years ago, may work as a starting point
4.9.3 OBSERVATION FROM SOCIAL HISTORY
Social histories, social_hx, cover life style questions about a person’s smoking, drinking, drug use and sexual behavior. Most questions result in a YES or NO answer, a few questions result in a number, such as drinks per day, and type of contraceptive use will be recorded as value as string. The following table shows the concept identifiers to use. Note: for some Y/N questions the table reports both Y and N values, for others, only add a record if the response is Y (yes). When the value_as_string is Yes or No, also define the value_as_concept_id as 4188539 (Yes) or 4188540 (No). Do NOT create a record when the SOCIAL_HX column resolves to NOT ASKED.
4.9.3.1 Tobacco Use
Tobacco related patient observations should have the Observation.observation_concept_id set to 4041306 (Tobacco use and exposure). The concept describing the observations will be in the value_as_concept_id column. The existence of a record, assumes that the answer to the question is Yes.
Observation | Social_hx Column | Possible Response | Value as Concept Id | Notes |
---|---|---|---|---|
Tobacco Use | tobacco_user_c | 1-Yes | 4298794 (Smoker) | Need to validate against ZC_TOBACCO_USER |
2-Never | 4144272 (Never smoked tobacco) | |||
3-Not Asked | Do not create a record | |||
4-Quit | 4310250 (Ex-smoker) | |||
5-Passive | 4009853 (Second hand cigarette smoke) | |||
Packs Per Day | tobacco_pak_per_dy | If < 0.5 then | 4052029 (Light cigarette smoker (1-9 cigs/day)) | The value is text. The answers assume the text can be parsed into a number. |
>= 0.5 and < 1 | 4052030 (Moderate cigarette smoker (10-19 cigs/day)) | |||
>= 1 | 4052947 (Heavy cigarette smoker (20-39 cigs/day)) | |||
Tobacco use years | tobacco_used_years | Numeric 4151768 (Pack years) | The value is text. The answers assume the text can be parsed into a number. Multiple Tobacco Use Years times Packs Per Day. If Packs Per Day not defined or cannot be parsed use 1. The result will go in value as number. | |
Cigarettes Use | cigarettes_yn | Y-Yes | 4276526 (Cigarette smoker) | |
N-No | Do not create a record | |||
Pipe Use | pipes_yn | Y-Yes | 4218917 (Pipe smoker) | |
N-No | Do not create a record | |||
Cigar Use | cigars_yn | Y-Yes | 4246415 (Cigar smoker) | |
N-No | Do not create a record | |||
Snuff Use | snuff_yn | Y-Yes | 4043053 (Snuff user) | |
N-No | Do not create a record | |||
Chewing Use | chew_yn | Y-Yes | 4218741 (Chews tobacco) | |
N-No | Do not create a record | |||
Smoking Start Date | smoking_start_date | Date | 4141787 (Smoking started) | |
Smoking Quit Date | smoking_quit_date | Date | Set to zero No matching concept |
Observation field mapping for Social History, Tobacco Use:
Destination Field | Source Field | Applied Rule | Comment |
---|---|---|---|
OBSERVATION_ID | Observation sequence | ||
PERSON_ID | Social_hx.pat_id | Look up OMOP person id using the Clarity pat_id. | |
OBSERVATION_CONCEPT_ID | 4041306 (Tobacco use and exposure) | ||
OBSERVATION_DATE | Social_hx.contact_date | ||
OBSERVATION_DATETIME | Social_hx.contact_date | Same as observation date. | If date portion is not available default to 00.00.00 |
OBSERVATION_TYPE_CONCEPT_ID | 38000280 | ‘Observation recorded from EHR’ concept_id 38000280 | |
VALUE_AS_NUMBER | tobacco_pak_per_daytobacco_used_years | See description in above table | |
VALUE_AS_STRING | tobacco_user_c, cigarettes_yn, pipes_yn, cigars_yn, snuff_yn, chew_yn, smoking_start_date , smoking_quit_date | Set to the value for the Social History columns in the above table | |
VALUE_AS_CONCEPT_ID | Set to the value as concept_id in the table above | ||
QUALIFIER_CONCEPT_ID | Set to zero | ||
UNIT_CONCEPT_ID | Set to zero | ||
PROVIDER_ID | NULL | Foreign key into provider | |
VISIT_OCCURRENCE_ID | Social_hx.pat_enc_csn_id | Look up visit_occurence_id from visit_occurrence using pat_enc_csn_id | |
OBSERVATION_SOURCE_VALUE | tobacco_user_c, cigarettes_yn, pipes_yn, cigars_yn, snuff_yn, ,chew_yn, ,smoking_start_date, ,smoking_quit_date | Set to the values in the Observation column from the table above. | |
OBSERVATION_SOURCE_CONCEPT_ID | Set to zero | A foreign key to a concept that refers to the code used in the source. | |
UNIT_SOURCE_VALUE | Set to ‘packs per day’ for tobacco_pak_per_day and ‘years’ for tobacco_used_years | ||
QUALIFIER_SOURCE_VALUE | Set to NULL |
4.9.3.2 Lifestyle
Lifestyle questions are also contained in the Pat Encounter (pat_enc) file. They will be mapped OMOP fields using the following table. Do not include entries if empty in the source data.
Observation | Social_hx Column | Observation Concept Id | Concept Name | Units | Notes |
---|---|---|---|---|---|
Alcohol User | alcohol_use_c | 4226563 | Risk control behavior: alcohol use | none | 1-YES 2-NO 3-NOT ASKED |
Alcohol Oz per week | alcohol_oz_per_wk | 4052351 | AI - Alcohol intake | oz per week | No matching concept. Concatinate the number of ounces with ‘oz. per week’ and put in value as string. |
IV Drug User | iv_drug_user_yn | 4038710 | Drug injection behavior | none | Y-YES N-NO |
Sexually Active | sexually_active_c | no matching concept still fill in observation source value “sexually active”, value as string Y-YES N-NO | |||
Female Partner | female_partner_yn | 4283657 | Sexual orientation | none | If ‘Y’ value as string = ‘female’ |
Male Partner | male_partner_yn | 4283657 | Sexual orientation | none If ‘Y’ value as string = ‘male’ | |
Condom use | condom_yn | 4314454 | Contraceptive use behaviour | none If ‘Y’ value as string =“condom” | |
Pill Use | pill_yn | 4314454 | Contraceptive use behaviour | none | If ‘Y’ value as string = “pill” |
Diaphram use | diaphragm_yn | 4314454 | Contraceptive use behavior | none | If ‘Y’ value as string = “diaphram” |
IUD use | iud_yn | 4314454 | Contraceptive use behaviour | none | If ‘Y’ value as string = “iud” |
Surgical use | surgical_yn | 4314454 | Contraceptive use behaviour | none | If ‘Y’ value as string = “surgical” |
spermicide use | spermicide_yn | 4314454 | Contraceptive use behaviour | none | If ‘Y’ value as string = “spermicide” |
Implant use | implant_yn | 4314454 | Contraceptive use behaviour | none | If ‘Y’ value as string = “implant” |
Rhythm use | rhythm_yn | 4314454 | Contraceptive use behaviour | none | If ‘Y’ value as string = “rhythm” |
Injection use | injection_yn | 4314454 | Contraceptive use behaviour | none | If ‘Y’ value as string = “injection” |
Sponge use | sponge_yn | 4314454 | Contraceptive use behaviour | none | If ‘Y’ value as string = “sponge” |
Inserts use | inserts_yn | 4314454 | Contraceptive use behaviour | none | If ‘Y’ value as string = “insert” |
Abstinence | abstinence_yn | 4314454 | Contraceptive use behaviour | none | If ‘Y’ value as string = “abstinence” |
I’d love to participate. We use the full SOGI on Epic and have a fair amount of data to test against. Nothing, I think, is mapped yet.
Colorado hasn’t mapped the SOGI questionnaire to standard concepts. I haven’t analyzed these source data, but most questionnaires will map to the v6 Survey table. The Survey table is under active discussion in regards to UKB project and CDM v6 adoption. I thought there was a Survey WG, but I didn’t find info on the OHDSI wiki page.
@MPhilofsky @David_Dorr @DTorok @quinnt
Thank you all for the speedy reply. We are outlining all the elements/questions in the SOGI and the acceptable values as a first step. If anyone has done this already please share. If not, we’ll share what we do as soon as we finish. I can also start an OHDSI team site, where we could share this stuff. @quinnt (@David_Dorr) I’d be interested in the Caboodle structure you set up-- b/c Epic is proprietary we cannot post that somewhere available to all- so might share by email. Im at lisa.schilling@cuanschutz.edu. I’ll follow up in a bit but wanted to reply asap. THANKS!!
@MPhilofsky @David_Dorr @DTorok @quinnt
Update- We have taken the Epic Foundation SOGI form (which should be standard, as SOGI is ‘standard’) and aligned all the questions-response pairs in an xls to support OMOP mapping. I tell you that so you don’t repeat this effort- what you may all need to do is add additional responses that your organization may have allowed, which we did not.
Next steps-
- Where is the best place to post this xls so we can use it collaboratively? We’ve got some EpicIDs in the xls, which I might remove, but I could send that xls version via email, if you wanted.
- We will need to make a decision regarding which OMOP table- Survey or Observation (for the most part). I need to use this work before my institution rolls out V6 (we are V5.3.1). I’m not sure what the deciding features are for surveys- but SOGI is now considered part of our clinical exam, much like a past medical or surgical history, so I’d advocate for Observation, but I say that without understanding the philosophy/intent of the Survey table.
2a. We should present to the CDM WG regarding our intent and may sure we’re aligned with the community. - SOGI specific meeting- we should meet to kick this off-- will you all email me at lisa.schilling@cuanschutz.edu with subject OMOP SOGI, and I’ll work on setting something up.
Thanks!
@DTorok @quinnt @David_Dorr @MPhilofsky @marypmancuso
Update- I’m presenting the SOGI mapping to the CDM WG on 2/16 at 1 pm ET, 11 am MT with the goal of covering the below: (same as #2 above)- I hope you can join
We will need to make a decision regarding which OMOP table- Survey or Observation (for the most part). I need to use this work before my institution rolls out V6 (we are V5.3.1). I’m not sure what the deciding features are for surveys- but SOGI is now considered part of our clinical exam, much like a past medical or surgical history, so I’d advocate for Observation, but I say that without understanding the philosophy/intent of the Survey table.
2a. make sure we’re aligned with the community.
@quinnt Hi Tim. Will you be attending the CDM meeting on 2/16? Would you email me at lisa.schilling@cuanschutz.edu, so I can send you info outside the forum. Lisa
The content is in OBSERVATION, @schillil. SURVEY contains metadata about conducting a survey.
Did you end up putting the spreadsheet anywhere to take a look?