From e9f32c01b2d7e0e59bdb53e56bef100ffbf66c77 Mon Sep 17 00:00:00 2001 From: "Stephanie S. Hong" Date: Tue, 27 Oct 2026 14:26:32 -0400 Subject: [PATCH] Concept map v1.8.2: import_bun_creatinine_ratio -> 3018311 (BUN/creatinine, LOINC 3097-3) --- CHANGELOG.md | 29 ++++++ CITATION.cff | 4 +- codemeta.json | 6 +- ...i_readi_redcap_value_set_mapping_data.yaml | 12 +-- ...ed_cap_data_dictionary_with_extensions.csv | 2 +- .../scripts/count_concept_map.sql | 12 +-- .../scripts/validate_concept_map_vocab.sql | 2 +- ...i_readi_redcap_value_set_mapping.sssom.tsv | 2 +- ..._readi_redcap_value_set_mapping.sssom.yaml | 2 +- ..._readi_redcap_value_set_mapping_common.csv | 2 +- ...dcap_value_set_mapping_common_map2omop.csv | 2 +- ...ng_map2omop_open_source_public_version.csv | 2 +- .../scripts/README.md | 17 ++++ .../build_unit_concept_lookup_extended.py | 40 +++++++++ .../scripts/unit_concept_lookup_extended.csv | 90 +++++++++++++++++++ 15 files changed, 200 insertions(+), 24 deletions(-) create mode 100644 redCapDataDictionaryWithExtension/value-set-mapping-common/scripts/build_unit_concept_lookup_extended.py create mode 100644 redCapDataDictionaryWithExtension/value-set-mapping-common/scripts/unit_concept_lookup_extended.csv diff --git a/CHANGELOG.md b/CHANGELOG.md index 5633826..1855375 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,35 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). ## [Unreleased] +## [v1.8.2] - 2026-10-27 + +The new BUN/creatinine field holds BUN ÷ creatinine, so it moves to the BUN/creatinine LOINC code. The data team confirmed the values (for example BUN 15 mg/dL, creatinine 0.77 mg/dL → ratio 19.5; BUN 37, creatinine 1.01 → 36.6). One row is edited in place, so every line number is the same as in v1.8.1. The ETL must apply this change: the field's MEASUREMENT concept changes. Also added: an extended unit lookup that pairs each measurement field's concept with its unit concept. + +### Changed — target concept + +| Line | Field | v1.8.1 | v1.8.2 | +|---|---|---|---| +| 2125 | `import_bun_creatinine_ratio` | 3033837 *Creatinine/Urea nitrogen [Mass Ratio] in Serum or Plasma* (LOINC 31045-8) | **3018311** *Urea nitrogen/Creatinine [Mass Ratio] in Serum or Plasma* (LOINC 3097-3), exactMatch 1 | + +- `SRC_CODE` 31045-8 → 3097-3 (the LOINC code, as for the other imported labs); `SRC_CODE_ID` and `SRC_CD_DESCRIPTION` "Creatinine/BUN ratio" → "BUN/Creatinine ratio". +- Unit row `import_bun_creatinine_ratio_u` (line 2126, 8523 *ratio*) unchanged; `unit_concept_lookup.csv` unchanged (114 rows). +- Not changed: line 554, `import_buncreatinineratio` (the original field), stays 3033837 *Creatinine/Urea nitrogen*: its stored values are creatinine ÷ BUN (all 3,981 current values; median 0.053). Its `MODIFIER` still says to remap it to 3018311 if that field's formula and values are corrected. +- This replaces the v1.7 decision that both fields map to creatinine ÷ BUN. + +### Added — extended unit lookup + +- `value-set-mapping-common/scripts/unit_concept_lookup_extended.csv` (89 rows): one row per field key of `unit_concept_lookup.csv`, with the field's measurement concept (`lab_concept_id`, name, vocabulary, code, from its question row) and unit concept (`unit_concept_id`, name, unit text, from its unit row), the REDCap form and label, and the concept map line numbers. Reference only: the ETL join still uses `unit_concept_lookup.csv`. `import_ldl_cholesterol` (key from the unit field `import_ldl_cholesterol_u`) carries the LDL calculation concept, with a note. +- `build_unit_concept_lookup_extended.py`: rebuilds it from the concept map and `unit_concept_lookup.csv` (checks that every unit matches the lookup and every concept is in the Measurement domain). Scripts README: file list and column definitions. + +### Changed — master REDCap data dictionary + +- The `import_bun_creatinine_ratio` row takes the new values; `Origin` = Changed, `Date_of_Variable_Modification` 10/27/2026. 3,150 rows; every concept map row has a master row with the same values. + +### Regenerated + +- map2omop (2,112 rows) and open-source public (1,997) versions, SSSOM (2,067 rows; 75 incomplete) and LinkML (2,142 records) from the v1.8.2 common file. +- Counts: standard 1,515 (400 concepts, +1: 3018311 is new and 3033837 is still used by line 554); custom 489 (342); mapped 2,004 (69.0%, 742 concepts); designated but unmapped 138; not designated 764. LOINC 1,190/277. `count_concept_map.sql` expected values updated to v1.8.2; `validate_concept_map_vocab.sql` V0 comment (2,142 rows). + ## [v1.8.1] - 2026-10-26 NRBC is switched off: it is not collected. The data team confirmed that the Labcorp *CBC, Platelet, No Differential* reports returned to AI-READI do not include NRBC, and that no REDCap field will be added ("We do not collect data for NRBC. This value is not provided in the reports returned to us from LabCorp."). A redacted Labcorp report (UAB) lists exactly 9 results: WBC, RBC, hemoglobin, hematocrit, MCV, MCH, MCHC, RDW and platelets. Two rows are edited in place, so every line number is the same as in v1.8. No concept changes; the ETL is not affected (the field matches no data). diff --git a/CITATION.cff b/CITATION.cff index 7252a9e..2d93ca2 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -16,8 +16,8 @@ repository-code: "https://github.com/AI-READI/DataElementMaps" repository-artifact: "https://github.com/AI-READI/DataElementMaps/blob/main/manuscript-tvst2026/ai_readi_redcap_value_set_mapping_common.csv" url: "https://aireadi.org" license: MIT -version: "v1.8.1" -date-released: "2026-10-26" +version: "v1.8.2" +date-released: "2026-10-27" identifiers: - type: doi value: "10.5281/zenodo.23375723" diff --git a/codemeta.json b/codemeta.json index 11f8fc6..7d1f7a4 100644 --- a/codemeta.json +++ b/codemeta.json @@ -7,11 +7,11 @@ "codeRepository": "https://github.com/AI-READI/DataElementMaps", "downloadUrl": "https://github.com/AI-READI/DataElementMaps", "issueTracker": "https://github.com/AI-READI/DataElementMaps/issues", - "version": "v1.8.1", - "datePublished": "2026-10-26", + "version": "v1.8.2", + "datePublished": "2026-10-27", "releaseNotes": "Concept map v1.6: maps the A/G ratio, BUN/creatinine ratio (stored as creatinine/BUN), BMI and waist circumference to standard LOINC concepts, adds the unit ratio for the three ratio fields, and excludes the leftover answers of two removed questions. ETL re-run required. See CHANGELOG.md.", "dateCreated": "2023-06-28", - "dateModified": "2026-10-26", + "dateModified": "2026-10-27", "applicationCategory": "Scientific", "developmentStatus": "active", "isPartOf": "https://aireadi.org/", diff --git a/redCapDataDictionaryWithExtension/linkml/ai_readi_redcap_value_set_mapping_data.yaml b/redCapDataDictionaryWithExtension/linkml/ai_readi_redcap_value_set_mapping_data.yaml index 8804dee..c7a77f5 100644 --- a/redCapDataDictionaryWithExtension/linkml/ai_readi_redcap_value_set_mapping_data.yaml +++ b/redCapDataDictionaryWithExtension/linkml/ai_readi_redcap_value_set_mapping_data.yaml @@ -45808,15 +45808,15 @@ mappings: field_type: text field_id: import_bun_creatinine_ratio question_or_answer: Question - src_code: 31045-8 - src_code_id: Creatinine/BUN ratio - src_cd_description: Creatinine/BUN ratio - target_concept_id: 3033837 - target_concept_name: Creatinine/Urea nitrogen [Mass Ratio] in Serum or Plasma + src_code: 3097-3 + src_code_id: BUN/Creatinine ratio + src_cd_description: BUN/Creatinine ratio + target_concept_id: 3018311 + target_concept_name: Urea nitrogen/Creatinine [Mass Ratio] in Serum or Plasma target_domain_id: Measurement target_vocabulary_id: LOINC target_concept_class_id: Lab Test - target_concept_code: 31045-8 + target_concept_code: 3097-3 target_standard_concept: S predicate_id: skos:exactMatch confidence: 1.0 diff --git a/redCapDataDictionaryWithExtension/redcap-data-dictionary/_master_red_cap_data_dictionary_with_extensions.csv b/redCapDataDictionaryWithExtension/redcap-data-dictionary/_master_red_cap_data_dictionary_with_extensions.csv index a9e3eb1..49a2976 100644 --- a/redCapDataDictionaryWithExtension/redcap-data-dictionary/_master_red_cap_data_dictionary_with_extensions.csv +++ b/redCapDataDictionaryWithExtension/redcap-data-dictionary/_master_red_cap_data_dictionary_with_extensions.csv @@ -3226,7 +3226,7 @@ Added,10/24/2026,Yes,Yes,open-source,No,retinal_imaging_v2,yesno,rttr_osr,,Answe Added,10/24/2026,Yes,Yes,open-source,No,retinal_imaging_v2,yesno,rttr_osm1,,Answer,1,rttr_osm1_1,Yes,745759,,"Computerized ophthalmic diagnostic imaging (eg, optical coherence tomography [OCT]), posterior segment, with interpretation and report, unilateral or bilateral; retina, including OCT angiography",Procedure,CPT4,CPT4,92137,S,skos:closeMatch,1,left eye|45888270,,45888270,Left eye,, Added,10/24/2026,Yes,Yes,open-source,No,retinal_imaging_v2,yesno,rttr_osm2,,Answer,1,rttr_osm2_1,Yes,745759,,"Computerized ophthalmic diagnostic imaging (eg, optical coherence tomography [OCT]), posterior segment, with interpretation and report, unilateral or bilateral; retina, including OCT angiography",Procedure,CPT4,CPT4,92137,S,skos:closeMatch,1,left eye|45888270,,45888270,Left eye,, Added,10/24/2026,Yes,Yes,open-source,No,retinal_imaging_v2,yesno,rtfl_os,,Answer,1,rtfl_os_1,Yes,4063911,,Ocular fundus photography,Procedure,SNOMED,Procedure,20067007,S,skos:closeMatch,0.75,left eye|45888270,,45888270,Left eye,, -Added,10/24/2026,Yes,Yes,open-source,No,imported,text,import_bun_creatinine_ratio,,Question,31045-8,Creatinine/BUN ratio,Creatinine/BUN ratio,3033837,,Creatinine/Urea nitrogen [Mass Ratio] in Serum or Plasma,Measurement,LOINC,Lab Test,31045-8,S,skos:exactMatch,1,,,,,, +Changed,10/27/2026,Yes,Yes,open-source,No,imported,text,import_bun_creatinine_ratio,,Question,3097-3,BUN/Creatinine ratio,BUN/Creatinine ratio,3018311,,Urea nitrogen/Creatinine [Mass Ratio] in Serum or Plasma,Measurement,LOINC,Lab Test,3097-3,S,skos:exactMatch,1,,,,,, Added,10/24/2026,Yes,Yes,open-source,No,imported,text,import_bun_creatinine_ratio_u,,Unit,ratio,import_bun_creatinine_ratio_u,ratio,8523,,ratio,Unit,UCUM,Unit,{ratio},S,skos:exactMatch,1,fixed unit; no REDCap unit field,,,,, Changed,10/26/2026,No,No,open-source,No,lab_results,text,,,Question,lbscat_nrbc,,NRBC - %,40761514,,Nucleated erythrocytes/Leukocytes [Ratio] in Blood by Automated count,Measurement,LOINC,Lab Test,58413-6,S,skos:exactMatch,1,,,,,, Changed,10/26/2026,No,No,open-source,No,lab_results,text,lbscat_nrbc_u,,Unit,%,lbscat_nrbc_u,percent,8554,,percent,Unit,UCUM,Unit,%,S,skos:exactMatch,1,fixed unit; no REDCap unit field,,,,, diff --git a/redCapDataDictionaryWithExtension/scripts/count_concept_map.sql b/redCapDataDictionaryWithExtension/scripts/count_concept_map.sql index 4082c32..59d0983 100644 --- a/redCapDataDictionaryWithExtension/scripts/count_concept_map.sql +++ b/redCapDataDictionaryWithExtension/scripts/count_concept_map.sql @@ -121,8 +121,8 @@ FROM rows ORDER BY CASE category WHEN 'Standard' THEN 1 WHEN 'Custom' THEN 2 WHEN 'Mapped total' THEN 3 WHEN 'Designated but unmapped' THEN 4 WHEN 'Not designated' THEN 5 ELSE 6 END; --- Expected (v1.8.1): Standard 1,515 (52.1%) / 399; Custom 489 (16.8%) / 342; --- Mapped 2,004 (69.0%) / 741; Designated-unmapped 138 (4.7%); +-- Expected (v1.8.2): Standard 1,515 (52.1%) / 400; Custom 489 (16.8%) / 342; +-- Mapped 2,004 (69.0%) / 742; Designated-unmapped 138 (4.7%); -- Not designated 764 (26.3%); Total 2,906. -- 2. Elements and distinct concepts by vocabulary ---------------------------------- @@ -134,7 +134,7 @@ FROM mapping_classified WHERE mapping_category IN ('Standard','Custom') GROUP BY mapping_category, TARGET_VOCABULARY_ID ORDER BY mapping_category DESC, elements DESC; --- Expected (v1.8.1): LOINC 1,190/276; SNOMED 171/74; UCUM 132/40; CPT4 12/1; PPI 5/5; +-- Expected (v1.8.2): LOINC 1,190/277; SNOMED 171/74; UCUM 132/40; CPT4 12/1; PPI 5/5; -- Ethnicity 4/2; OMOP Extension 1/1; AIREADI 390/265; AIREADI-Vision 69/47; AIREADI-MOCA 30/30. -- 3. Designated-but-unmapped breakdown ------------------------------------------------- @@ -143,7 +143,7 @@ FROM mapping_classified WHERE mapping_category = 'Designated but unmapped' GROUP BY unmapped_reason ORDER BY n DESC; --- Expected (v1.8.1): reference range 46; survey timestamp 34; superseded unit row 20; specimen handling 12; +-- Expected (v1.8.2): reference range 46; survey timestamp 34; superseded unit row 20; specimen handling 12; -- BCVA 10; answer to an excluded question 7; no matching concept 5; not collected (NRBC) 2; -- REDCap administrative 1; MoCA paper flag 1 (total 138). @@ -156,9 +156,9 @@ FROM mapping_classified WHERE mapping_category IN ('Standard','Custom') GROUP BY mapping_category, PREDICATE_ID, CONFIDENCE ORDER BY mapping_category DESC, PREDICATE_ID, CONFIDENCE DESC; --- Expected (v1.8.1, standard): exact 1,255; close 258 (170 at 1, 88 at 0.75); related 2; +-- Expected (v1.8.2, standard): exact 1,255; close 258 (170 at 1, 88 at 0.75); related 2; -- confidence 1 = 1,425; 0.75 = 89; 0.5 = 1. --- Expected (v1.8.1, custom): all 489 exact match at confidence 1. +-- Expected (v1.8.2, custom): all 489 exact match at confidence 1. -- 5. Laterality qualifiers --------------------------------------------------------------- SELECT qualifier_concept_id, qualifier_source_value, COUNT(*) AS n diff --git a/redCapDataDictionaryWithExtension/scripts/validate_concept_map_vocab.sql b/redCapDataDictionaryWithExtension/scripts/validate_concept_map_vocab.sql index eacd1ee..dd9f60b 100644 --- a/redCapDataDictionaryWithExtension/scripts/validate_concept_map_vocab.sql +++ b/redCapDataDictionaryWithExtension/scripts/validate_concept_map_vocab.sql @@ -19,7 +19,7 @@ SELECT *, TRY_CAST(TRIM(CAST(qualifier_concept_id AS STRING)) AS BIGINT) AS qid FROM redcapsurveydb.ai_readi_redcap_value_set_mapping_common; --- V0. Row count (v1.4 and v1.5: 2,076; v1.6: 2,079; v1.7: 2,127; v1.8 and v1.8.1: 2,142) +-- V0. Row count (v1.4 and v1.5: 2,076; v1.6: 2,079; v1.7: 2,127; v1.8 to v1.8.2: 2,142) SELECT COUNT(*) AS n_rows FROM cmap; -- V1. Standard (non-custom) targets missing from the vocabulary, not standard, or invalid. Expect 0 rows. diff --git a/redCapDataDictionaryWithExtension/sssom/ai_readi_redcap_value_set_mapping.sssom.tsv b/redCapDataDictionaryWithExtension/sssom/ai_readi_redcap_value_set_mapping.sssom.tsv index 9e782f5..15f73e8 100644 --- a/redCapDataDictionaryWithExtension/sssom/ai_readi_redcap_value_set_mapping.sssom.tsv +++ b/redCapDataDictionaryWithExtension/sssom/ai_readi_redcap_value_set_mapping.sssom.tsv @@ -2047,7 +2047,7 @@ AIREADI_REDCAP:retinal_imaging_v2.1.rttr_osr_1 Yes skos:exactMatch OMOP:1073298 AIREADI_REDCAP:retinal_imaging_v2.1.rttr_osm1_1 Yes skos:closeMatch OMOP:745759 Computerized ophthalmic diagnostic imaging (eg, optical coherence tomography [OCT]), posterior segment, with interpretation and report, unilateral or bilateral; retina, including OCT angiography semapv:ManualMappingCuration 1 AI-READI REDCap CPT4 AI-READI manual_curation left eye|45888270 retinal_imaging_v2 yesno rttr_osm1 1 rttr_osm1_1 Answer 745759 Procedure CPT4 CPT4 92137 S No open-source Yes 45888270 Left eye AIREADI_REDCAP:retinal_imaging_v2.1.rttr_osm2_1 Yes skos:closeMatch OMOP:745759 Computerized ophthalmic diagnostic imaging (eg, optical coherence tomography [OCT]), posterior segment, with interpretation and report, unilateral or bilateral; retina, including OCT angiography semapv:ManualMappingCuration 1 AI-READI REDCap CPT4 AI-READI manual_curation left eye|45888270 retinal_imaging_v2 yesno rttr_osm2 1 rttr_osm2_1 Answer 745759 Procedure CPT4 CPT4 92137 S No open-source Yes 45888270 Left eye AIREADI_REDCAP:retinal_imaging_v2.1.rtfl_os_1 Yes skos:closeMatch OMOP:4063911 Ocular fundus photography semapv:ManualMappingCuration 0.75 AI-READI REDCap SNOMED AI-READI manual_curation left eye|45888270 retinal_imaging_v2 yesno rtfl_os 1 rtfl_os_1 Answer 4063911 Procedure SNOMED Procedure 20067007 S No open-source Yes 45888270 Left eye -AIREADI_REDCAP:imported.31045-8.Creatinine_BUN_ratio Creatinine/BUN ratio skos:exactMatch OMOP:3033837 Creatinine/Urea nitrogen [Mass Ratio] in Serum or Plasma semapv:ManualMappingCuration 1 AI-READI REDCap LOINC AI-READI manual_curation imported text import_bun_creatinine_ratio 31045-8 Creatinine/BUN ratio Question 3033837 Measurement LOINC Lab Test 31045-8 S No open-source Yes +AIREADI_REDCAP:imported.3097-3.BUN_Creatinine_ratio BUN/Creatinine ratio skos:exactMatch OMOP:3018311 Urea nitrogen/Creatinine [Mass Ratio] in Serum or Plasma semapv:ManualMappingCuration 1 AI-READI REDCap LOINC AI-READI manual_curation imported text import_bun_creatinine_ratio 3097-3 BUN/Creatinine ratio Question 3018311 Measurement LOINC Lab Test 3097-3 S No open-source Yes AIREADI_REDCAP:imported.ratio.import_bun_creatinine_ratio_u ratio skos:exactMatch OMOP:8523 ratio semapv:ManualMappingCuration 1 AI-READI REDCap UCUM AI-READI manual_curation fixed unit; no REDCap unit field imported text import_bun_creatinine_ratio_u ratio import_bun_creatinine_ratio_u Unit 8523 Unit UCUM Unit {ratio} S No open-source Yes AIREADI_REDCAP:lab_results.lbscat_nrbc NRBC - % skos:exactMatch OMOP:40761514 Nucleated erythrocytes/Leukocytes [Ratio] in Blood by Automated count semapv:ManualMappingCuration 1 AI-READI REDCap LOINC AI-READI manual_curation lab_results text lbscat_nrbc Question 40761514 Measurement LOINC Lab Test 58413-6 S No open-source No AIREADI_REDCAP:lab_results.missing.lbscat_nrbc_u percent skos:exactMatch OMOP:8554 percent semapv:ManualMappingCuration 1 AI-READI REDCap UCUM AI-READI manual_curation fixed unit; no REDCap unit field lab_results text lbscat_nrbc_u % lbscat_nrbc_u Unit 8554 Unit UCUM Unit % S No open-source No diff --git a/redCapDataDictionaryWithExtension/sssom/ai_readi_redcap_value_set_mapping.sssom.yaml b/redCapDataDictionaryWithExtension/sssom/ai_readi_redcap_value_set_mapping.sssom.yaml index beb56bd..ef5598b 100644 --- a/redCapDataDictionaryWithExtension/sssom/ai_readi_redcap_value_set_mapping.sssom.yaml +++ b/redCapDataDictionaryWithExtension/sssom/ai_readi_redcap_value_set_mapping.sssom.yaml @@ -15,4 +15,4 @@ curie_map: semapv: https://w3id.org/semapv/vocab/ subject_source: AI-READI REDCap object_source: OMOP Standardized Vocabularies -mapping_date: '2026-10-26' +mapping_date: '2026-10-27' diff --git a/redCapDataDictionaryWithExtension/value-set-mapping-common/_ai_readi_redcap_value_set_mapping_common.csv b/redCapDataDictionaryWithExtension/value-set-mapping-common/_ai_readi_redcap_value_set_mapping_common.csv index 20e96e5..3d19fce 100644 --- a/redCapDataDictionaryWithExtension/value-set-mapping-common/_ai_readi_redcap_value_set_mapping_common.csv +++ b/redCapDataDictionaryWithExtension/value-set-mapping-common/_ai_readi_redcap_value_set_mapping_common.csv @@ -2122,7 +2122,7 @@ Yes,Yes,open-source,No,retinal_imaging_v2,yesno,rttr_osr,,Answer,1,rttr_osr_1,Ye Yes,Yes,open-source,No,retinal_imaging_v2,yesno,rttr_osm1,,Answer,1,rttr_osm1_1,Yes,745759,,"Computerized ophthalmic diagnostic imaging (eg, optical coherence tomography [OCT]), posterior segment, with interpretation and report, unilateral or bilateral; retina, including OCT angiography",Procedure,CPT4,CPT4,92137,S,skos:closeMatch,1,left eye|45888270,,45888270,Left eye Yes,Yes,open-source,No,retinal_imaging_v2,yesno,rttr_osm2,,Answer,1,rttr_osm2_1,Yes,745759,,"Computerized ophthalmic diagnostic imaging (eg, optical coherence tomography [OCT]), posterior segment, with interpretation and report, unilateral or bilateral; retina, including OCT angiography",Procedure,CPT4,CPT4,92137,S,skos:closeMatch,1,left eye|45888270,,45888270,Left eye Yes,Yes,open-source,No,retinal_imaging_v2,yesno,rtfl_os,,Answer,1,rtfl_os_1,Yes,4063911,,Ocular fundus photography,Procedure,SNOMED,Procedure,20067007,S,skos:closeMatch,0.75,left eye|45888270,,45888270,Left eye -Yes,Yes,open-source,No,imported,text,import_bun_creatinine_ratio,,Question,31045-8,Creatinine/BUN ratio,Creatinine/BUN ratio,3033837,,Creatinine/Urea nitrogen [Mass Ratio] in Serum or Plasma,Measurement,LOINC,Lab Test,31045-8,S,skos:exactMatch,1,,,, +Yes,Yes,open-source,No,imported,text,import_bun_creatinine_ratio,,Question,3097-3,BUN/Creatinine ratio,BUN/Creatinine ratio,3018311,,Urea nitrogen/Creatinine [Mass Ratio] in Serum or Plasma,Measurement,LOINC,Lab Test,3097-3,S,skos:exactMatch,1,,,, Yes,Yes,open-source,No,imported,text,import_bun_creatinine_ratio_u,,Unit,ratio,import_bun_creatinine_ratio_u,ratio,8523,,ratio,Unit,UCUM,Unit,{ratio},S,skos:exactMatch,1,fixed unit; no REDCap unit field,,, No,No,open-source,No,lab_results,text,,,Question,lbscat_nrbc,,NRBC - %,40761514,,Nucleated erythrocytes/Leukocytes [Ratio] in Blood by Automated count,Measurement,LOINC,Lab Test,58413-6,S,skos:exactMatch,1,,,, No,No,open-source,No,lab_results,text,lbscat_nrbc_u,,Unit,%,lbscat_nrbc_u,percent,8554,,percent,Unit,UCUM,Unit,%,S,skos:exactMatch,1,fixed unit; no REDCap unit field,,, diff --git a/redCapDataDictionaryWithExtension/value-set-mapping-common/_ai_readi_redcap_value_set_mapping_common_map2omop.csv b/redCapDataDictionaryWithExtension/value-set-mapping-common/_ai_readi_redcap_value_set_mapping_common_map2omop.csv index 3950a45..bd08a53 100644 --- a/redCapDataDictionaryWithExtension/value-set-mapping-common/_ai_readi_redcap_value_set_mapping_common_map2omop.csv +++ b/redCapDataDictionaryWithExtension/value-set-mapping-common/_ai_readi_redcap_value_set_mapping_common_map2omop.csv @@ -2094,7 +2094,7 @@ Yes,Yes,open-source,No,retinal_imaging_v2,yesno,rttr_osr,,Answer,1,rttr_osr_1,Ye Yes,Yes,open-source,No,retinal_imaging_v2,yesno,rttr_osm1,,Answer,1,rttr_osm1_1,Yes,745759,,"Computerized ophthalmic diagnostic imaging (eg, optical coherence tomography [OCT]), posterior segment, with interpretation and report, unilateral or bilateral; retina, including OCT angiography",Procedure,CPT4,CPT4,92137,S,skos:closeMatch,1,left eye|45888270,,45888270,Left eye Yes,Yes,open-source,No,retinal_imaging_v2,yesno,rttr_osm2,,Answer,1,rttr_osm2_1,Yes,745759,,"Computerized ophthalmic diagnostic imaging (eg, optical coherence tomography [OCT]), posterior segment, with interpretation and report, unilateral or bilateral; retina, including OCT angiography",Procedure,CPT4,CPT4,92137,S,skos:closeMatch,1,left eye|45888270,,45888270,Left eye Yes,Yes,open-source,No,retinal_imaging_v2,yesno,rtfl_os,,Answer,1,rtfl_os_1,Yes,4063911,,Ocular fundus photography,Procedure,SNOMED,Procedure,20067007,S,skos:closeMatch,0.75,left eye|45888270,,45888270,Left eye -Yes,Yes,open-source,No,imported,text,import_bun_creatinine_ratio,,Question,31045-8,Creatinine/BUN ratio,Creatinine/BUN ratio,3033837,,Creatinine/Urea nitrogen [Mass Ratio] in Serum or Plasma,Measurement,LOINC,Lab Test,31045-8,S,skos:exactMatch,1,,,, +Yes,Yes,open-source,No,imported,text,import_bun_creatinine_ratio,,Question,3097-3,BUN/Creatinine ratio,BUN/Creatinine ratio,3018311,,Urea nitrogen/Creatinine [Mass Ratio] in Serum or Plasma,Measurement,LOINC,Lab Test,3097-3,S,skos:exactMatch,1,,,, Yes,Yes,open-source,No,imported,text,import_bun_creatinine_ratio_u,,Unit,ratio,import_bun_creatinine_ratio_u,ratio,8523,,ratio,Unit,UCUM,Unit,{ratio},S,skos:exactMatch,1,fixed unit; no REDCap unit field,,, Yes,Yes,protected,No,current_medications,dropdown,cmdosu,,Answer,19,cmdosu_19,Milligram per Gram (mg/g),8723,,milligram per gram,Unit,UCUM,Unit,mg/g,S,skos:exactMatch,1,,,, Yes,Yes,protected,No,current_medications,dropdown,cmdosu,,Answer,20,cmdosu_20,Milligram per Milliliter (mg/mL),8861,,milligram per milliliter,Unit,UCUM,Unit,mg/mL,S,skos:exactMatch,1,,,, diff --git a/redCapDataDictionaryWithExtension/value-set-mapping-common/_ai_readi_redcap_value_set_mapping_map2omop_open_source_public_version.csv b/redCapDataDictionaryWithExtension/value-set-mapping-common/_ai_readi_redcap_value_set_mapping_map2omop_open_source_public_version.csv index 5c4dd05..4b7bc99 100644 --- a/redCapDataDictionaryWithExtension/value-set-mapping-common/_ai_readi_redcap_value_set_mapping_map2omop_open_source_public_version.csv +++ b/redCapDataDictionaryWithExtension/value-set-mapping-common/_ai_readi_redcap_value_set_mapping_map2omop_open_source_public_version.csv @@ -1985,7 +1985,7 @@ Yes,Yes,open-source,No,retinal_imaging_v2,yesno,rttr_osr,,Answer,1,rttr_osr_1,Ye Yes,Yes,open-source,No,retinal_imaging_v2,yesno,rttr_osm1,,Answer,1,rttr_osm1_1,Yes,745759,,"Computerized ophthalmic diagnostic imaging (eg, optical coherence tomography [OCT]), posterior segment, with interpretation and report, unilateral or bilateral; retina, including OCT angiography",Procedure,CPT4,CPT4,92137,S,skos:closeMatch,1,left eye|45888270,,45888270,Left eye Yes,Yes,open-source,No,retinal_imaging_v2,yesno,rttr_osm2,,Answer,1,rttr_osm2_1,Yes,745759,,"Computerized ophthalmic diagnostic imaging (eg, optical coherence tomography [OCT]), posterior segment, with interpretation and report, unilateral or bilateral; retina, including OCT angiography",Procedure,CPT4,CPT4,92137,S,skos:closeMatch,1,left eye|45888270,,45888270,Left eye Yes,Yes,open-source,No,retinal_imaging_v2,yesno,rtfl_os,,Answer,1,rtfl_os_1,Yes,4063911,,Ocular fundus photography,Procedure,SNOMED,Procedure,20067007,S,skos:closeMatch,0.75,left eye|45888270,,45888270,Left eye -Yes,Yes,open-source,No,imported,text,import_bun_creatinine_ratio,,Question,31045-8,Creatinine/BUN ratio,Creatinine/BUN ratio,3033837,,Creatinine/Urea nitrogen [Mass Ratio] in Serum or Plasma,Measurement,LOINC,Lab Test,31045-8,S,skos:exactMatch,1,,,, +Yes,Yes,open-source,No,imported,text,import_bun_creatinine_ratio,,Question,3097-3,BUN/Creatinine ratio,BUN/Creatinine ratio,3018311,,Urea nitrogen/Creatinine [Mass Ratio] in Serum or Plasma,Measurement,LOINC,Lab Test,3097-3,S,skos:exactMatch,1,,,, Yes,Yes,open-source,No,imported,text,import_bun_creatinine_ratio_u,,Unit,ratio,import_bun_creatinine_ratio_u,ratio,8523,,ratio,Unit,UCUM,Unit,{ratio},S,skos:exactMatch,1,fixed unit; no REDCap unit field,,, Yes,Yes,open-source,No,device_return,yesno,dvamwenyn,,Answer,1,dvamwenyn_1,Yes,45877994,,Yes,Meas Value,LOINC,Answer,LA33-6,S,skos:exactMatch,1,,,, Yes,Yes,open-source,No,device_return,yesno,dvamwenyn,,Answer,0,dvamwenyn_0,No,45878245,,No,Meas Value,LOINC,Answer,LA32-8,S,skos:exactMatch,1,,,, diff --git a/redCapDataDictionaryWithExtension/value-set-mapping-common/scripts/README.md b/redCapDataDictionaryWithExtension/value-set-mapping-common/scripts/README.md index 68f6665..3a1097b 100644 --- a/redCapDataDictionaryWithExtension/value-set-mapping-common/scripts/README.md +++ b/redCapDataDictionaryWithExtension/value-set-mapping-common/scripts/README.md @@ -7,6 +7,7 @@ Scripts to fill `MEASUREMENT.unit_concept_id` from the AI-READI concept map (`.. | `USAGE.md` | **Step-by-step usage** | | `00_load_concept_map.sql` | Loads the mapping file as `concept_map` (only needed for option B; set the file path) | | `unit_concept_lookup.csv` | **The ready-made lookup table** (114 rows): load it and skip building it | +| `unit_concept_lookup_extended.csv` | **Reference view** of the 89 field keys (v1.8.2): per measurement field, its lab/measurement concept (ID, name, vocabulary, code) and its unit concept (ID, name, unit text), with the concept map lines they come from. Not needed by the join; rebuilt with `build_unit_concept_lookup_extended.py` | | `01a_load_unit_concept_lookup_csv.sql` | Option A: creates `unit_lookup` from `unit_concept_lookup.csv` | | `01_create_unit_lookup.sql` | Option B: **one query** that builds `unit_lookup` from the concept map (same 114 rows) | | `02_view_unit_lookup.sql` | Review `unit_lookup`: counts, field and unit-text lists, duplicate check | @@ -16,6 +17,22 @@ Scripts to fill `MEASUREMENT.unit_concept_id` from the AI-READI concept map (`.. | `06_check_units_after_etl.sql` | Checks units in MEASUREMENT after the ETL re-run | | `medication_route_lookup.csv`, `07_`, `07a_`, `08_` | Medication route lookup for `DRUG_EXPOSURE.route_concept_id` (see the end of this file) | +## Extended lookup (`unit_concept_lookup_extended.csv`) + +One row per field key of `unit_concept_lookup.csv` (89 rows), for review and for joining units to measurement concepts. "Lab" columns cover every measurement field with a unit: labs, CBC, vital signs, autorefractor and MoCA. + +| Column | Meaning | +|---|---| +| `lookup_key` | Measurement field name (REDCap field ID), the same key as `unit_concept_lookup.csv` | +| `form_name` | REDCap form | +| `lab_name` | REDCap label (imported labs: the short label, e.g. `HbA1c`) | +| `lab_concept_id`, `lab_concept_name`, `lab_vocabulary_id`, `lab_concept_code` | Measurement concept of the field's question row (`measurement_concept_id`) | +| `unit_concept_id`, `unit_concept_name`, `unit_source_value` | Unit concept of the field's unit row (`unit_concept_id`) | +| `map_line_lab`, `map_line_unit` | Line numbers of those rows in the concept map | +| `note` | The LDL exception (unit field `import_ldl_cholesterol_u`) | + +Rebuild after any change to the concept map: `python redCapDataDictionaryWithExtension/value-set-mapping-common/scripts/build_unit_concept_lookup_extended.py .` (from the repository root). + ## Usage ```sql diff --git a/redCapDataDictionaryWithExtension/value-set-mapping-common/scripts/build_unit_concept_lookup_extended.py b/redCapDataDictionaryWithExtension/value-set-mapping-common/scripts/build_unit_concept_lookup_extended.py new file mode 100644 index 0000000..9097788 --- /dev/null +++ b/redCapDataDictionaryWithExtension/value-set-mapping-common/scripts/build_unit_concept_lookup_extended.py @@ -0,0 +1,40 @@ +"""Build unit_concept_lookup_extended.csv: one row per field key of unit_concept_lookup.csv, with the measurement +(lab) concept from the field's question row and the unit concept from its unit row. +Usage (from the repository root): python redCapDataDictionaryWithExtension/value-set-mapping-common/scripts/build_unit_concept_lookup_extended.py . +Re-run after every change to the concept map or to unit_concept_lookup.csv.""" +import csv, sys +repo = sys.argv[1] +D = f'{repo}/redCapDataDictionaryWithExtension/value-set-mapping-common' +r = list(csv.reader(open(f'{D}/_ai_readi_redcap_value_set_mapping_common.csv', newline='', encoding='utf-8'))) +C = {c: i for i, c in enumerate(r[0])} +g = lambda x, k: x[C[k]].strip() +q, u = {}, {} +for n, x in enumerate(r[1:], 2): + if g(x, 'Map_to_OMOP') != 'Yes': continue + t = g(x, 'temp_Question_or_Answer') + if t == 'Question': q.setdefault(g(x, 'FIELD_ID') or g(x, 'SRC_CODE'), (n, x)) + elif t == 'Unit' and g(x, 'FIELD_ID'): u.setdefault(g(x, 'FIELD_ID'), (n, x)) +# measurement fields whose unit field does not follow _u +UNIT_FIELD = {'import_ldl_cholesterol_calculation': 'import_ldl_cholesterol_u'} +# lookup keys built from a unit field whose measurement field has another name +LAB_FIELD = {'import_ldl_cholesterol': 'import_ldl_cholesterol_calculation'} +NOTE = {'import_ldl_cholesterol': 'Key from unit field import_ldl_cholesterol_u; the measurement field is import_ldl_cholesterol_calculation', + 'import_ldl_cholesterol_calculation': 'Unit field is import_ldl_cholesterol_u (different name)'} +lk = [x for x in csv.DictReader(open(f'{D}/scripts/unit_concept_lookup.csv', encoding='utf-8')) if x['key_type'] == 'field'] +cols = ['lookup_key', 'form_name', 'lab_name', 'lab_concept_id', 'lab_concept_name', 'lab_vocabulary_id', 'lab_concept_code', + 'unit_concept_id', 'unit_concept_name', 'unit_source_value', 'map_line_lab', 'map_line_unit', 'note'] +out = [] +for k in lk: + key = k['lookup_key'] + qn, qx = q[LAB_FIELD.get(key, key)] + un, ux = u[UNIT_FIELD.get(key, key + '_u')] + assert g(ux, 'TARGET_CONCEPT_ID') == k['unit_concept_id'] and g(ux, 'SRC_CODE') == k['unit_source_value'], key + assert g(qx, 'TARGET_DOMAIN_ID') == 'Measurement', key + # lab name: imported labs keep the short REDCap label in SRC_CODE_ID (SRC_CD_DESCRIPTION is the LOINC name) + name = g(qx, 'SRC_CODE_ID') if g(qx, 'FIELD_ID') and g(qx, 'SRC_CODE_ID') else g(qx, 'SRC_CD_DESCRIPTION') + out.append([key, g(qx, 'FORM_NAME'), name, g(qx, 'TARGET_CONCEPT_ID'), g(qx, 'TARGET_CONCEPT_NAME'), + g(qx, 'TARGET_VOCABULARY_ID'), g(qx, 'TARGET_CONCEPT_CODE'), k['unit_concept_id'], g(ux, 'TARGET_CONCEPT_NAME'), + k['unit_source_value'], qn, un, NOTE.get(key, '')]) +with open(f'{D}/scripts/unit_concept_lookup_extended.csv', 'w', newline='', encoding='utf-8') as f: + w = csv.writer(f, lineterminator='\n'); w.writerow(cols); w.writerows(out) +print(len(out), 'rows') diff --git a/redCapDataDictionaryWithExtension/value-set-mapping-common/scripts/unit_concept_lookup_extended.csv b/redCapDataDictionaryWithExtension/value-set-mapping-common/scripts/unit_concept_lookup_extended.csv new file mode 100644 index 0000000..0ce8fb3 --- /dev/null +++ b/redCapDataDictionaryWithExtension/value-set-mapping-common/scripts/unit_concept_lookup_extended.csv @@ -0,0 +1,90 @@ +lookup_key,form_name,lab_name,lab_concept_id,lab_concept_name,lab_vocabulary_id,lab_concept_code,unit_concept_id,unit_concept_name,unit_source_value,map_line_lab,map_line_unit,note +bmi_vsorres,physical_assessment,BMI,3038553,Body mass index (BMI) [Ratio],LOINC,39156-5,9531,kilogram per square meter,kg/m2,858,2023, +bp1_diabp_vsorres,physical_assessment,Diastolic (mmHg),3012888,Diastolic blood pressure,LOINC,8462-4,8876,millimeter mercury column,mmHg,863,2027, +bp1_sysbp_vsorres,physical_assessment,Systolic (mmHg),3004249,Systolic blood pressure,LOINC,8480-6,8876,millimeter mercury column,mmHg,862,2026, +bp2_diabp_vsorres,physical_assessment,Diastolic (mmHg),3012888,Diastolic blood pressure,LOINC,8462-4,8876,millimeter mercury column,mmHg,866,2030, +bp2_sysbp_vsorres,physical_assessment,Systolic (mmHg),3004249,Systolic blood pressure,LOINC,8480-6,8876,millimeter mercury column,mmHg,865,2029, +clock_visuospatial_executive,imported,Visuospatial Executive - Clock,2005200348,Clock drawings score,AIREADI-MOCA,,44777566,score,score,619,2052, +clock_visuospatial_executive_time,imported,Visuospatial Executive - Clock (Time),2005200349,Time taken to do clock in seconds,AIREADI-MOCA,,8555,second,s,620,2053, +cube_visuospatial_executive,imported,Visuospatial Executive - Cube,2005200346,Cube drawings score,AIREADI-MOCA,,44777566,score,score,617,2050, +cube_visuospatial_executive_time,imported,Visuospatial Executive - Cube (Time),2005200347,Time taken to do cube in seconds,AIREADI-MOCA,,8555,second,s,618,2051, +delayed_recall_with_no_clue,imported,Delayed Recall (with no clue),2005200368,MOCA delayed recall with no cue score,AIREADI-MOCA,,44777566,score,score,639,2072, +delayed_recall_with_no_clue_time,imported,Delayed Recall (with no clue) (Time),2005200369,Time in seconds to perform the MOCA delayed recall with no cue task,AIREADI-MOCA,,8555,second,s,640,2073, +digitspan,imported,Attention - Digitspan,2005200356,Repeating digits score,AIREADI-MOCA,,44777566,score,score,627,2060, +digitspan_time,imported,Attention - Digitspan (Time),2005200357,Time in seconds to perform the repeating digits task,AIREADI-MOCA,,8555,second,s,628,2061, +fluency_language,imported,Language - Fluency,2005200364,Maximal one-minute recall of words beginning with 'F' score,AIREADI-MOCA,,44777566,score,score,635,2068, +fluency_language_time,imported,Language - Fluency (Time),2005200365,Time in seconds to perform the words beginning with 'F' recall task,AIREADI-MOCA,,8555,second,s,636,2069, +height_vsorres,physical_assessment,Height (cm),3036277,Body height,LOINC,8302-2,8582,centimeter,cm,856,2021, +hip_vsorres,physical_assessment,Hip Circumference (cm),4111665,Hip circumference,SNOMED,284472007,8582,centimeter,cm,860,2025, +import_ag_ratio,imported,A/G Ratio (calculated field),3020509,Albumin/Globulin [Mass Ratio] in Serum or Plasma,LOINC,1759-0,8523,ratio,ratio,584,2078, +import_albumin,imported,Albumin,3024561,Albumin [Mass/volume] in Serum or Plasma,LOINC,1751-7,8713,gram per deciliter,g/dL,579,580, +import_alkaline_phosphatase,imported,Alkaline Phosphatase,3035995,Alkaline phosphatase [Enzymatic activity/volume] in Serum or Plasma,LOINC,6768-6,8923,international unit per liter,IU/L,586,587, +import_alt_got,imported,ALT (GPT),3006923,Alanine aminotransferase [Enzymatic activity/volume] in Serum or Plasma,LOINC,1742-6,8923,international unit per liter,IU/L,596,597, +import_ast_got,imported,AST (GOT),3013721,Aspartate aminotransferase [Enzymatic activity/volume] in Serum or Plasma,LOINC,1920-8,8923,international unit per liter,IU/L,592,593, +import_bilirubin_total,imported,"Bilirubin, Total",3024128,Bilirubin.total [Mass/volume] in Serum or Plasma,LOINC,1975-2,8840,milligram per deciliter,mg/dL,585,2020, +import_bun,imported,BUN,3013682,Urea nitrogen [Mass/volume] in Serum or Plasma,LOINC,3094-0,8840,milligram per deciliter,mg/dL,544,545, +import_bun_creatinine_ratio,imported,BUN/Creatinine ratio,3018311,Urea nitrogen/Creatinine [Mass Ratio] in Serum or Plasma,LOINC,3097-3,8523,ratio,ratio,2125,2126, +import_buncreatinineratio,imported,BUN/Creatinine ratio,3033837,Creatinine/Urea nitrogen [Mass Ratio] in Serum or Plasma,LOINC,31045-8,8523,ratio,ratio,554,2080, +import_c_peptide,imported,C-Peptide,3010084,C peptide [Mass/volume] in Serum or Plasma,LOINC,1986-9,8725,nanogram per liter,ng/L,513,514, +import_calcium,imported,Calcium,3006906,Calcium [Mass/volume] in Serum or Plasma,LOINC,17861-6,8840,milligram per deciliter,mg/dL,571,572, +import_carbon_dioxide_total,imported,"Carbon Dioxide, Total",3015632,"Carbon dioxide, total [Moles/volume] in Serum or Plasma",LOINC,2028-9,9557,milliequivalent per liter,mEq/L,567,568, +import_chloride,imported,Chloride,3014576,Chloride [Moles/volume] in Serum or Plasma,LOINC,2075-0,9557,milliequivalent per liter,mEq/L,563,564, +import_creatinine,imported,Creatinine,3016723,Creatinine [Mass/volume] in Serum or Plasma,LOINC,2160-0,8840,milligram per deciliter,mg/dL,548,549, +import_crp_hs,imported,CRP-HS,3010156,C reactive protein [Mass/volume] in Serum or Plasma by High sensitivity method,LOINC,30522-7,8751,milligram per liter,mg/L,524,525, +import_globulin_total_norc,imported,"Globulin, total (calculated field)",3021886,Globulin [Mass/volume] in Serum,LOINC,2336-6,8713,gram per deciliter,g/dL,583,2019, +import_glucose,imported,Glucose,3004501,Glucose [Mass/volume] in Serum or Plasma,LOINC,2345-7,8840,milligram per deciliter,mg/dL,540,541, +import_hba1c,imported,HbA1c,3004410,Hemoglobin A1c/Hemoglobin.total in Blood,LOINC,4548-4,8554,percent,%,603,604, +import_hdl_cholesterol,imported,HDL Cholesterol,3007070,Cholesterol in HDL [Mass/volume] in Serum or Plasma,LOINC,2085-9,8840,milligram per deciliter,mg/dL,534,535, +import_insulin,imported,Insulin,3022466,Insulin [Mass/volume] in Serum or Plasma,LOINC,3695-4,8842,nanogram per milliliter,ng/mL,517,518, +import_ldl_cholesterol,imported,LDL Cholesterol (calculated field),3028288,Cholesterol in LDL [Mass/volume] in Serum or Plasma by calculation,LOINC,13457-7,8840,milligram per deciliter,mg/dL,537,538,Key from unit field import_ldl_cholesterol_u; the measurement field is import_ldl_cholesterol_calculation +import_ldl_cholesterol_calculation,imported,LDL Cholesterol (calculated field),3028288,Cholesterol in LDL [Mass/volume] in Serum or Plasma by calculation,LOINC,13457-7,8840,milligram per deciliter,mg/dL,537,538,Unit field is import_ldl_cholesterol_u (different name) +import_nt_probnp,imported,NT-proBNP,3029187,Natriuretic peptide.B prohormone N-Terminal [Mass/volume] in Serum or Plasma,LOINC,33762-6,8845,picogram per milliliter,pg/mL,505,506, +import_potassium,imported,Potassium,3023103,Potassium [Moles/volume] in Serum or Plasma,LOINC,2823-3,9557,milliequivalent per liter,mEq/L,559,560, +import_protein_total,imported,"Protein, total",3020630,Protein [Mass/volume] in Serum or Plasma,LOINC,2885-2,8713,gram per deciliter,g/dL,575,576, +import_sodium,imported,Sodium,3019550,Sodium [Moles/volume] in Serum or Plasma,LOINC,2951-2,9557,milliequivalent per liter,mEq/L,555,556, +import_total_cholesterol,imported,Total Cholesterol,3027114,Cholesterol [Mass/volume] in Serum or Plasma,LOINC,2093-3,8840,milligram per deciliter,mg/dL,528,529, +import_triglycerides,imported,Triglycerides,3022192,Triglyceride [Mass/volume] in Serum or Plasma,LOINC,2571-8,8840,milligram per deciliter,mg/dL,531,532, +import_troponin_t,imported,Troponin-T,40769783,Troponin T.cardiac [Mass/volume] in Serum or Plasma by High sensitivity method,LOINC,67151-1,8725,nanogram per liter,ng/L,509,510, +import_uarc,imported,uACR,3020682,Albumin/Creatinine [Ratio] in Urine,LOINC,32294-1,8723,milligram per gram,mg/g,1715,2047, +import_urine_albumin,imported,Urine Albumin,3012516,Albumin [Mass/volume] in Urine,LOINC,1754-1,8751,milligram per liter,mg/L,612,613, +import_urine_creatinine,imported,Urine creatinine,3017250,Creatinine [Mass/volume] in Urine,LOINC,2161-8,8840,milligram per deciliter,mg/dL,610,611, +lbscat_a1c,lab_results,Hemoglobin - g/dL,3000963,Hemoglobin [Mass/volume] in Blood,LOINC,718-7,8713,gram per deciliter,g/dL,674,2034, +lbscat_hct,lab_results,Hematocrit - %,3023314,Hematocrit [Volume Fraction] of Blood by Automated count,LOINC,4544-3,8554,percent,%,675,2035, +lbscat_mch,lab_results,MCH - pg,3012030,MCH [Entitic mass] by Automated count,LOINC,785-6,8564,picogram,pg,677,2037, +lbscat_mchc,lab_results,MCHC - g/dL,3009744,MCHC [Entitic Mass/volume] in Red Blood Cells by Automated count,LOINC,786-4,8713,gram per deciliter,g/dL,678,2038, +lbscat_mcv,lab_results,MCV - fL,3023599,MCV [Entitic mean volume] in Red Blood Cells by Automated count,LOINC,787-2,8583,femtoliter,fL,676,2036, +lbscat_plt,lab_results,Platelets - x10E3/µL,3024929,Platelets [#/volume] in Blood by Automated count,LOINC,777-3,8848,thousand per microliter,x10E3/µL,680,2040, +lbscat_rbc,lab_results,Red Blood Cells (RBC) - x10E6/µL,3020416,Erythrocytes [#/volume] in Blood by Automated count,LOINC,789-8,8815,million per microliter,x10E6/µL,673,2033, +lbscat_rdw,lab_results,RDW - %,3019897,Erythrocyte [DistWidth] in Red Blood Cells by Automated count,LOINC,788-0,8554,percent,%,679,2039, +lbscat_wbc,lab_results,White Blood Cells (WBC) - x10E3/µL,3000905,Leukocytes [#/volume] in Blood by Automated count,LOINC,6690-2,8848,thousand per microliter,x10E3/µL,672,2032, +lettera,imported,Attention - Letter A,2005200358,Letter tapping score,AIREADI-MOCA,,44777566,score,score,629,2062, +lettera_time,imported,Attention - Letter A (Time),2005200359,Time in seconds to perform the letter tapping task,AIREADI-MOCA,,8555,second,s,630,2063, +memory_trial1,imported,Memory - Trial 1,2005200352,Words correctly repeated (1st trial) score,AIREADI-MOCA,,44777566,score,score,623,2056, +memory_trial1_time,imported,Memory - Trial 1 (Time),2005200353,Time in seconds to perform the words correctly repeated (1st trial),AIREADI-MOCA,,8555,second,s,624,2057, +memory_trial2,imported,Memory - Trial 2,2005200354,Words correctly repeated (2nd trial) score,AIREADI-MOCA,,44777566,score,score,625,2058, +memory_trial2_time,imported,Memory - Trial 2 (Time),2005200355,Time in seconds to perform the words correctly repeated (2nd trial),AIREADI-MOCA,,8555,second,s,626,2059, +moca_abstraction,imported,Abstraction,2005200366,MOCA abstraction score,AIREADI-MOCA,,44777566,score,score,637,2070, +moca_abstraction_time,imported,Abstraction (Time),2005200367,Time in seconds to perform MOCA abstraction task,AIREADI-MOCA,,8555,second,s,638,2071, +moca_combined_mis_score,imported,Combined MIS Score,2005200373,"MOCA delayed recall with no cue, cue, and multiple choice cue (Combined score)",AIREADI-MOCA,,44777566,score,score,644,2076, +moca_orientation,imported,Orientation,2005200370,"MOCA orientation date, month, year, day, place, city score",AIREADI-MOCA,,44777566,score,score,641,2074, +moca_orientation_time,imported,Orientation (Time),2005200371,"Time in seconds to perform the MOCA orientation date, month, year, day, place, city task",AIREADI-MOCA,,8555,second,s,642,2075, +moca_total_score,imported,Total Score,606671,Montreal Cognitive Assessment version 8.1,SNOMED,1148423001,44777566,score,score,647,2077, +naming,imported,Naming,2005200350,Animal name recall task score,AIREADI-MOCA,,44777566,score,score,621,2054, +naming_time,imported,Naming (Time),2005200351,Time in seconds to perform the animal name recall task,AIREADI-MOCA,,8555,second,s,622,2055, +pulse_vsorres,physical_assessment,Heart Rate (bpm),3027018,Heart rate,LOINC,8867-4,8541,per minute,bpm,864,2028, +pulse_vsorres_2,physical_assessment,Heart Rate (bpm),3027018,Heart rate,LOINC,8867-4,8541,per minute,bpm,867,2031, +repetition,imported,Language - Repetition,2005200362,Repeats sentences II score,AIREADI-MOCA,,44777566,score,score,633,2066, +repetition_time,imported,Language - Repetition (Time),2005200363,Time in seconds to perform repeats sentences II task,AIREADI-MOCA,,8555,second,s,634,2067, +subtraction,imported,Attention - Subtraction,2005200360,Serial 7 subtraction score,AIREADI-MOCA,,44777566,score,score,631,2064, +subtraction_time,imported,Attention - Subtraction (Time),2005200361,Time in seconds to perform the serial 7 subtraction task,AIREADI-MOCA,,8555,second,s,632,2065, +trails_visuospatial_executive,imported,Visuospatial Executive - Trails,2005200344,Trail drawings score,AIREADI-MOCA,,44777566,score,score,615,2048, +trails_visuospatial_executive_time,imported,Visuospatial Executive - Trails (Time),2005200345,Time taken to do trails in seconds,AIREADI-MOCA,,8555,second,s,616,2049, +viaodaxi,bcva,OD - Autorefractor - Axis,3034190,Right eye Axis Autorefractor.auto,LOINC,28689-8,9484,degree,degree,6,2043, +viaodcyl,bcva,OD - Autorefractor - Cylinder,3033346,Right eye Cylinder Autorefractor.auto,LOINC,28688-0,9291,diopter,diopter,5,2042, +viaodsph,bcva,OD - Autorefractor - Sphere,3000744,Right eye Sphere Autorefractor.auto,LOINC,28687-2,9291,diopter,diopter,4,2041, +viaosaxi,bcva,OS - Autorefractor - Axis,3001254,Left eye Axis Autorefractor.auto,LOINC,28693-0,9484,degree,degree,10,2046, +viaoscyl,bcva,OS - Autorefractor - Cylinder,3002343,Left eye Cylinder Autorefractor.auto,LOINC,28692-2,9291,diopter,diopter,8,2045, +viaossph,bcva,OS - Autorefractor - Sphere,3003500,Left eye Sphere Autorefractor.auto,LOINC,28691-4,9291,diopter,diopter,7,2044, +waist_vsorres,physical_assessment,Waist Circumference (cm),3016258,Waist Circumference at umbilicus by Tape measure,LOINC,8280-0,8582,centimeter,cm,859,2024, +weight_vsorres,physical_assessment,Weight (kilograms),3025315,Body weight,LOINC,29463-7,9529,kilogram,kilograms,857,2022, +whr_vsorres,physical_assessment,Waist to Hip Ratio (WHR),4087501,Waist/hip ratio,SNOMED,248367009,8523,ratio,ratio,861,2079,