mappingVersion: 2

source:
  profile: redcap

target:
  model: beacon
  schemaVersion: '2.0.0'

project:
  id: 3tr_ibd
  version: 3TR-dev-0.1
  description: Mapping file for a REDCap project exported as raw data

defaults:
  ontology: ncit

records:
  visitId:
    sourceField: redcap_event_name
  baseline:
    strategy: firstNonNull
    sourceFields: [ids_complete, consent, consent_date, consent_noneu, consent_devices, consent_recontact, consent_week2_endo, diagnosis, diagnosis_year, used_drug, sex, gender, age, age_first_diagnosis, ethnicity, education, height, consents_and_demographics_complete, comorb_asthma, comorb_copd, comorb_ms, comorb_sle, comorb_ra, comorb_pso, comorb_ad, comorb_cancer, comorb_hypertension, comorb_diabetes, comorb_lipids, comorb_stroke, comorb_other_ai, diet, food_intolerance___1, food_intolerance___2, food_intolerance___3, food_intolerance___4, food_intolerance___5, food_intolerance___6, smoking, alcohol, recreational_drugs, family_history, familymember___1, familymember___2, familymember___3, familymember___4, familymember___5, familymember___6, familymember___7, familymember___8, familymember___9, immunodeficiency, past_surgery, surgery_details___1, surgery_details___2, surgery_details___3, surgery_details___4, surgery_details___5, surgery_details___6, surgery_details___7, surgery_details___8, surgery_details___99, extraintestinal_details___1, extraintestinal_details___2, extraintestinal_details___3, extraintestinal_details___4, extraintestinal_details___5, extraintestinal_details___6, prior_biologics___1, prior_biologics___2, prior_biologics___3, prior_biologics___4, prior_biologics___5, prior_biologics___6, prior_biologics___7, prior_biologics___8, prior_biologics___9, prednisolone_status, prednisolone_dose, prednisolone_duration, prednisolone_start, budesonide_oral_status, budesonide_rectal_status, asa_oral_status, asa_rectal_status, mtx_status, aza_status, mp_status, anamnesis_complete, covid19_complete, response, low_activity, remission, cdeis]

beacon:
  individuals:
    id:
      sourceFields: [study_id, redcap_event_name]
      primaryKey: study_id
      separator: ':'
      missingValue: NA

    sex:
      sourceField: sex
      query: { from: value }

    ethnicity:
      sourceField: ethnicity
      query:
        from: value
        aliases:
          Caucasian: White

    diseases:
      rules:
        - sourceField: diagnosis
          when: { nonEmpty: true }
          diseaseCode:
            query:
              from: value
              aliases:
                'Ulcerative Colitis (UC)': Ulcerative Colitis
                "Crohn's Disease (CD)": Crohn Disease
          ageOfOnset:
            sourceField: age_first_diagnosis
          familyHistory:
            sourceField: family_history

    exposures:
      defaults:
        unit: { query: { from: value } }
      rules:
        - sourceField: alcohol
          when: { notValues: ['No', 'False'] }
          exposureCode: { query: Alcohol }
          unit:
            query:
              from: value
              aliases:
                Non-drinker: Non-Drinker
                Ex-drinker: Current non-drinker with Past Alcohol Consumption
                occasional drinking: Alcohol Consumption Equal to or Less than 2 Drinks per Day for Men and 1 Drink or Less per Day for Women
                regular drinking: Alcohol Consumption More than 2 Drinks per Day for Men and More than 1 Drink per Day for Women
                unknown: Unknown
        - sourceField: smoking
          when: { notValues: ['No', 'False'] }
          exposureCode: { query: Smoking }
          unit:
            query:
              from: value
              aliases:
                Never smoked: Never Smoker
                Ex-smoker: Former Smoker
                Current smoker: Current Smoker
        - sourceField: cigarettes_days
          exposureCode: { query: Average Number Cigarettes Smoked a Day }
        - sourceField: cigarettes_years
          exposureCode: { query: Total Years Have Smoked Cigarettes }
        - sourceField: packyears
          exposureCode: { query: Pack Year }
        - sourceField: smoking_quit
          exposureCode: { query: Smoking Cessation Year }

    info:
      sourceFields: [study_id, dob, diet, redcap_event_name, age, first_name, last_name, consent, consent_date, consent_noneu, consent_devices, consent_recontact, consent_week2_endo, education, zipcode, consents_and_demographics_complete]
      ageRange: { sourceField: age }

    interventionsOrProcedures:
      rules:
        - sourceField: surgery_details___1
          procedureCode: { query: Ileocolectomy }
          bodySite: { query: Intestine }
        - sourceField: surgery_details___2
          procedureCode: { query: Colostomy }
          bodySite: { query: Intestine }
        - sourceField: surgery_details___3
          procedureCode: { query: Ileostomy }
          bodySite: { query: Intestine }
        - sourceField: surgery_details___4
          procedureCode: { query: Fistula Repair }
          bodySite: { query: Intestine }
        - sourceField: surgery_details___5
          procedureCode: { query: Colectomy }
          bodySite: { query: Intestine }
        - sourceField: surgery_details___6
          procedureCode: { query: Hemicolectomy }
          bodySite: { query: Intestine }
        - sourceField: surgery_details___7
          procedureCode: { query: Colon Resection }
          bodySite: { query: Intestine }
        - sourceField: surgery_details___8
          procedureCode: { query: Strictureplasty }
          bodySite: { query: Intestine }
        - sourceField: surgery_details___99
          procedureCode: { query: Other }
          bodySite: { query: Intestine }
        - sourceField: endoscopy_performed
          procedureCode: { query: Gastrointestinal Endoscopy }
          dateOfProcedure: { sourceField: endoscopy_date }
        - sourceField: endoscopy_complete
          procedureCode: { query: { from: value } }
        - sourceField: intestinal_surgery
          procedureCode: { query: { from: value } }
        - sourceField: partial_mayo
          procedureCode: { query: { from: value } }
        - sourceField: complete_mayo
          procedureCode: { query: { from: value } }
        - sourceField: prev_endosc_dilatation
          procedureCode: { query: { from: value } }

    measures:
      defaults:
        measurementValue:
          quantity:
            unit:
              query:
                from: fieldNote
                aliases:
                  'xx.xx /10^-9 l': Cells per Microliter
                  'x.xx /10^-9 l': Cells per Microliter
                  'xxxx /10^-9 l': Cells per Microliter
                  'xx.x g/dl': Gram per Deciliter
                  'xx.x fl': Femtoliter
                  'xx.x': Picogram
                  'xx.x pg': Picogram
                  'xx.x µmol/l': Micromole per Liter
                  'xxx.x µmol/l': Micromole per Liter
                  'xxx µmol/l': Micromole per Liter
                  'ml/min/1.73': Glomerular Filtration Rate Adjusted for BSA
                  'xxx ml/min/1.73': Glomerular Filtration Rate Adjusted for BSA
                  'xx.x U/l': International Unit per Liter
                  'pg/dl': Picogram per Deciliter
                  'mg/dl': Milligram per Deciliter
                  'xxx.x mg/l': Milligram per Liter per Milligram
                  'µg/dl': Microgram per Deciliter
                  'ng/dl': Nanogram per Deciliter
                  'xxxx.x ng/l': Nanogram per Liter
                  'mg/kg stool': Microgram per Kilogram
                  'xx.x %': Percentage
            referenceRange: { from: redcapDictionary }
        procedure:
          procedureCode: { query: Blood Test Result }
      rules:
        - { sourceField: leucocytes, assayCode: { query: Leukocyte Count } }
        - { sourceField: hemoglobin, assayCode: { query: Hemoglobin Measurement } }
        - { sourceField: hematokrit, assayCode: { query: Hematocrit Measurement } }
        - { sourceField: mcv, assayCode: { query: Erythrocyte Mean Corpuscular Volume } }
        - { sourceField: mhc, assayCode: { query: Erythrocyte Mean Corpuscular Hemoglobin } }
        - { sourceField: thrombocytes, assayCode: { query: Platelet Count } }
        - { sourceField: neutrophils, assayCode: { query: Neutrophil Count } }
        - { sourceField: lymphocytes, assayCode: { query: Lymphocyte Count } }
        - { sourceField: eosinophils, assayCode: { query: Eosinophil Count } }
        - { sourceField: creatinine, assayCode: { query: Creatinine Measurement } }
        - { sourceField: gfr, assayCode: { query: Glomerular Filtration Rate } }
        - { sourceField: bilirubin, assayCode: { query: Total Bilirubin Measurement } }
        - { sourceField: gpt, assayCode: { query: 'Serum Glutamic Pyruvic Transaminase, CTCAE' } }
        - { sourceField: ggt, assayCode: { query: Serum Gamma Glutamyl Transpeptidase Measurement } }
        - { sourceField: lipase, assayCode: { query: Lipase Measurement } }
        - { sourceField: crp, assayCode: { query: C-Reactive Protein Measurement } }
        - { sourceField: iron, assayCode: { query: Iron Measurement } }
        - { sourceField: il6, assayCode: { query: Interleukin-6 } }
        - sourceField: calprotectin
          assayCode: { query: Calprotectin Measurement }
          procedure: { procedureCode: { query: Feces } }
        - sourceField: nancy_index_acute
          assayCode: { query: nancy_index_acute }
          procedure: { procedureCode: { query: Histologic } }
        - sourceField: nancy_index_chronic
          assayCode: { query: nancy_index_chronic }
          procedure: { procedureCode: { query: Histologic } }
        - sourceField: nancy_index_ulceration
          assayCode: { query: nancy_index_ulceration }
          procedure: { procedureCode: { query: Histologic } }
        - { sourceField: endo_mayo, assayCode: { query: endo_mayo } }

    phenotypicFeatures:
      rules:
        - { sourceField: comorb_asthma, featureType: { query: Asthma } }
        - { sourceField: comorb_copd, featureType: { query: Chronic Obstructive Pulmonary Disease } }
        - { sourceField: comorb_ms, featureType: { query: Multiple Sclerosis } }
        - { sourceField: comorb_sle, featureType: { query: Systemic Lupus Erythematosus } }
        - { sourceField: comorb_ra, featureType: { query: Rheumatoid Arthritis } }
        - { sourceField: comorb_pso, featureType: { query: Psoriasis } }
        - { sourceField: comorb_ad, featureType: { query: Atopy } }
        - { sourceField: comorb_cancer, featureType: { query: Cancer Diagnosis } }
        - sourceField: comorb_cancer_specified
          when: { nonEmpty: true }
          featureType:
            query:
              from: value
              aliases: { cancer: Cancer Patient }
        - { sourceField: comorb_hypertension, featureType: { query: Hypertension } }
        - { sourceField: comorb_diabetes, featureType: { query: Diabetes Mellitus } }
        - { sourceField: comorb_lipids, featureType: { query: Dyslipidemia } }
        - { sourceField: comorb_stroke, featureType: { query: Stroke } }
        - { sourceField: comorb_other_ai, featureType: { query: Other } }
        - sourceField: comorb_other_ai_specified
          when: { nonEmpty: true }
          featureType:
            query:
              from: value
              aliases:
                atopic dermatitis: eczema
                COPD: Chronic Obstructive Pulmonary Disease
                'demyelating disease/multiple sclerosis': Multiple Sclerosis
                'Hyper-/dyslipidemia': Dyslipidemia
        - { sourceField: immunodeficiency, featureType: { query: Primary Immunodeficiency Syndrome } }
        - { sourceField: rectal_bleeding, featureType: { query: Rectal Hemorrhage } }

    treatments:
      defaults:
        routeOfAdministration: { query: Oral Route of Administration }
        cumulativeDose:
          unit: { query: Week }
        doseIntervals:
          quantity:
            unit: { query: Milligram }
      rules:
        - sourceField: asa_oral_status
          when: { values: [former treatment, current treatment] }
          treatmentCode: { query: aspirin }
          cumulativeDose:
            value: { sourceField: asa_oral_duration }
          doseIntervals:
            quantity:
              value: { sourceField: asa_oral_dose }
        - sourceField: aza_status
          when: { values: [former treatment, current treatment] }
          treatmentCode: { query: azathioprine }
          cumulativeDose: { value: { sourceField: aza_duration } }
          doseIntervals: { quantity: { value: { sourceField: aza_dose } } }
        - sourceField: mtx_status
          when: { values: [former treatment, current treatment] }
          treatmentCode: { query: methotrexate }
          cumulativeDose: { value: { sourceField: mtx_duration } }
          doseIntervals: { quantity: { value: { sourceField: mtx_dose } } }
        - sourceField: mp_status
          when: { values: [former treatment, current treatment] }
          treatmentCode: { query: mercaptopurine }
          cumulativeDose: { value: { sourceField: mp_duration } }
          doseIntervals: { quantity: { value: { sourceField: mp_dose } } }
        - sourceField: prednisolone_status
          when: { values: [former treatment, current treatment] }
          treatmentCode: { query: prednisolone }
          cumulativeDose: { value: { sourceField: prednisolone_duration } }
          doseIntervals: { quantity: { value: { sourceField: prednisolone_dose } } }

  biosamples:
    defaults:
      id: { from: sourceValue }
      individualId: { from: individualId }
      biosampleStatus:
        term: { id: 'NCIT:C126101', label: Not Available }
      sampleOriginType: { query: Whole Blood }
      collectionDate: { sourceField: study_blood_date }
    rules:
      - sourceField: id_pbmc
        sampleOriginType: { query: Peripheral Blood Mononuclear Cell }
        info: { sourceFields: [number_pbmc, study_blood_remarks] }
      - sourceField: id_heparin
        optional: true
        info: { sourceFields: [number_heparin, study_blood_remarks] }
      - sourceField: id_smart
        optional: true
        info: { sourceFields: [number_smart, study_blood_remarks] }
      - sourceField: id_serum
        sampleOriginType: { query: Serum }
        info: { sourceFields: [number_serum, study_blood_remarks] }
      - sourceField: id_cispt
        info: { sourceFields: [number_cispt, study_blood_remarks] }
      - sourceField: id_plasma
        sampleOriginType: { query: Plasma }
        info: { sourceFields: [number_plasma, study_blood_remarks] }
      - sourceField: id_pax
        info: { sourceFields: [number_pax, study_blood_remarks] }
      - sourceField: id_least_bio_native
        sampleOriginType: { query: Tissue }
        collectionDate: { sourceField: endoscopy_date }
        info: { sourceFields: [number_least_bio_native, biopsy_remarks] }
      - sourceField: id_least_bio_native_2
        sampleOriginType: { query: Tissue }
        collectionDate: { sourceField: endoscopy_date }
        info: { sourceFields: [number_least_bio_native_2, biopsy_remarks] }
      - sourceField: id_least_bio_freezing
        sampleOriginType: { query: Tissue }
        collectionDate: { sourceField: endoscopy_date }
        info: { sourceFields: [number_least_bio_freezing, biopsy_remarks] }
      - sourceField: id_least_bio_freezing_2
        sampleOriginType: { query: Tissue }
        collectionDate: { sourceField: endoscopy_date }
        info: { sourceFields: [number_least_bio_freezing_2, biopsy_remarks] }
      - sourceField: id_most_bio_native
        sampleOriginType: { query: Tissue }
        collectionDate: { sourceField: endoscopy_date }
        info: { sourceFields: [number_most_bio_native, biopsy_remarks] }
      - sourceField: id_most_bio_native_2
        sampleOriginType: { query: Tissue }
        collectionDate: { sourceField: endoscopy_date }
        info: { sourceFields: [number_most_bio_native_2, biopsy_remarks] }
      - sourceField: id_most_bio_freezing
        sampleOriginType: { query: Tissue }
        collectionDate: { sourceField: endoscopy_date }
        info: { sourceFields: [number_most_bio_freezing, biopsy_remarks] }
      - sourceField: id_most_bio_freezing_2
        sampleOriginType: { query: Tissue }
        collectionDate: { sourceField: endoscopy_date }
        info: { sourceFields: [number_most_bio_freezing_2, biopsy_remarks] }