2 การแปลงข้อมูล
เว็บไซต์นี้อยู่ระหว่างจัดทำ จึงยังมีเนื้อหาไม่ครบถ้วน
ท่านสามารถร่วมเพิ่มเติมหรือแก้ไขเนื้อหาต่าง ๆ ได้ที่ GitHub: sidataplus/omop-book
ท่านสามารถศึกษาการแปลงข้อมูลเป็น OMOP CDM ได้บนเว็บไซต์ The Book of OHDSI บทที่ 4 – 6 ก่อน
2.1 OMOP CDM
Observational Medical Outcomes Partnership Common Data Model (OMOP CDM) มีองค์ประกอบหลัก 3 ส่วน คือ
- Tables
- Vocabularies
- Conventions
2.1.1 Tables
OMOP CDM version 5.4 จะเก็บในรูปแบบ relational database ประกอบด้วย 6 หมวดหมู่ 39 tables ดัง รูปที่ 2.1
โดย Tables ที่จำเป็นต้องมีในหมวด standardiized clinical tables คือ PERSON
และ OBSERVATION_PERIOD
ตัวอย่างการเก็บข้อมูลใน table PERSON
(ที่มา The Book of OHDSI)
Luaren is a 36-year-old woman
Her birthday is 12-March-1982
She is white
She is English
Column name | Value | Explanation |
---|---|---|
PERSON_ID | 1 | The PERSON_ID should be an integer, either directly from the source or generated as part of the build process. |
GENDER_CONCEPT_ID | 8532 | The concept ID referring to female gender is 8532. |
YEAR_OF_BIRTH | 1982 | |
MONTH_OF_BIRTH | 3 | |
DAY_OF_BIRTH | 12 | |
BIRTH_DATETIME | 1982-03-12 00:00:00 | When the time is not known midnight is used. |
DEATH_DATETIME | ||
RACE_CONCEPT_ID | 8527 | The concept ID referring to white race is 8527. English ethnicity is 4093769. Either one is correct, the latter will roll up to the former. Notice that ethnicities are stored here as part of Races, not in the ETHNICITY_CONCEPT_ID |
ETHNICITY_CONCEPT_ ID | 38003564 | This is a US-typical notation to distinguish Hispanics from the rest. Ethnicities, in this case English, is stored in the RACE_CONCEPT_ID. Outside the US this is not used. 38003564 refers to “Not hispanic”. |
LOCATION_ID | Her address is not known. | |
PROVIDER_ID | Her primary care Provider is not known. | |
CARE_SITE | Her primary Care Site is not known. | |
PERSON_SOURCE_ VALUE | 1 | Typically this would be her identifier in the source data, though often it is the same as the PERSON_ID. |
GENDER_SOURCE_ VALUE | F | The gender value as it appears in the source is stored here. |
GENDER_SOURCE_ CONCEPT_ID | 0 | If the gender value in the source was coded using a coding scheme supported by OHDSI that Concept would go here. For example, if her gender was “sex-F” in the source and it was stated to be in the PCORNet vocabulary concept 44814665 would go in this field. |
RACE_SOURCE_ VALUE | white | The race value as it appears in the source is stored here. |
RACE_SOURCE_ CONCEPT_ID | 0 | Same principle as GENDER_SOURCE_CONCEPT_ID. |
ETHNICITY_SOURCE_ VALUE | english | The ethnicity value as it appears in the source is stored here. |
ETHNICITY_SOURCE_ CONCEPT_ID | 0 | Same principle as GENDER_SOURCE_CONCEPT_ID. |
ตัวอย่างการเก็บข้อมูลใน table OBSERVATION_PERIOD
(ที่มา The Book of OHDSI)
Column name | Value | Explanation |
---|---|---|
OBSERVATION_ PERIOD_ID | 1 | This is typically an autogenerated value creating a unique identifier for each record in the table. |
PERSON_ID | 1 | This is a foreign key to Laura’s record in the PERSON table and links PERSON to OBSERVATION_PERIOD table. |
OBSERVATION_PERIOD_ START_DATE | 2010-01-06 | This is the start date of her earliest encounter on record. |
OBSERVATION_PERIOD_ END_DATE | 2013-01-24 | This is the end date of her latest encounter on record. |
PERIOD_TYPE_ CONCEPT_ID | 44814725 | The best option in the Vocabulary with the concept class “Obs Period Type” is 44814724, which stands for “Period covering healthcare encounters”. |
ตัวอย่างข้อมูล OMOP CDM
- .csv files: OHDSI/EunomiaDatasets, Synthea COVID19
- Local SQLite database: OHDSI/Eunomia
- Google Cloud: ข้อมูลสังเคราะห์จาก US Medicare
- AWS: Synthea
2.1.2 Vocabularies
Vocabularies คลังชุดคำศัพท์ ประกอบด้วย
- Standard concepts คำศัพท์มาตรฐาน เช่น SNOMED-CT LOINC RxNORM ICD9Proc เป็นต้น สำหรับการใช้ข้อมูลร่วมกันระดับนานาชาติ
- Non-standard concepts เช่น ICD10 เป็นต้น รวมถึงรหัสในประเทศไทย เช่น TMT, TMLT เป็นต้น
- Classification concepts ได้แก่ MedDRA (สำหรับกลุ่มโรค) และ ATC (สำหรับกลุ่มยา)
โดยรหัสทั้งหมดเก็บอยู่บน website Athena (https://athena.ohdsi.org/) และสามารถ download มาใช้งานได้โดยไม่เสียค่าใช้จ่าย
Domain | for Standard Concepts | for source concepts | for classification concepts |
---|---|---|---|
Condition | SNOMED, ICDO3 | SNOMED Veterinary | MedDRA |
Procedure | SNOMED, CPT4, HCPCS, ICD10PCS, ICD9Proc, OPCS4 | SNOMED Veterinary, HemOnc, NAACCR | None at this point |
Measurement | SNOMED, LOINC | SNOMED Veterinary, NAACCR, CPT4, HCPCS, OPCS4, PPI | None at this point |
Drug | RxNorm, RxNorm Extension, CVX | HCPCS, CPT4, HemOnc, NAAACCR | ATC |
Device | SNOMED | Others, currently not normalized | None at this point |
Observation | SNOMED | Others | None at this point |
Visit | CMS Place of Service, ABMT, NUCC | SNOMED, HCPCS, CPT4, UB04 | None at this point |
2.1.3 Conventions
Conventions เป็นข้อตกลงการเก็บข้อมูลในตารางต่าง ๆ โดยมีรายละเอียดทั้งหมดบนเว็บไซต์ CDM ตัวอย่างเช่น รูปที่ 2.2
2.2 กระบวนการแปลงข้อมูล
ประกอบด้วยกระบวนการหลัก 4 ขั้นตอน
ขั้นที่ | ขั้นตอน | เครื่องมือ | สิ่งที่ได้ | ผู้มีส่วนร่วม |
---|---|---|---|---|
1. | Map ข้อมูลต้นทางตาม OMOP CDM (หัวข้อ 2.1.1;หัวข้อ 2.1.3) | OHDSI Tools: WhiteRabbit, Rabbit-In-a-Hat, Perseus หรือสามารถใช้ spreadsheet ทั่วไป (Excel) ทำก็ได้เช่นกัน | ETL Specification | ผู้ที่เข้าใจข้อมูลต้นทาง และผู้ที่เข้าใจ OMOP CDM |
2. | Map รหัสที่เก็บต้นทางให้เป็น standard (หัวข้อ 2.1.2) | OHDSI Tools: Usagi | Concept code mapping | ผู้ที่เข้าใจรหัสต้นทาง เช่น ICD, TMT, TMLT |
3. | เขียน code Extract-Transform-Load (ETL) | ไม่มีเครื่องมือมาตรฐาน ขึ้นอยู่กับแต่ละองค์กรดำเนินการเอง (ตัวอย่าง ศิริราช บทที่ 4) | ข้อมูลและรหัสที่แปลงตาม OMOP CDM | Data engineer, Programmer |
4. | ตรวจสอบคุณภาพข้อมูลและรหัสที่แปลงแล้ว | OHDSI Tools: DataQualityDashboard, Achilles | Data quality report | Data engineer, Data users (researchers) |
กระบวนการ Extract-Transform-Load (ETL) คือ การนำข้อมูลออกมาจากฐานข้อมูลระบบต้นทาง (Extract) แปลงข้อมูล (Transform) ให้เป็นไปตาม ETL Spec ที่กำหนดไว้ โดยส่วนมากมักใช้ภาษา SQL ในการเขียนโปรแกรม และขนย้ายของมูลที่แปลงแล้วไปเก็บ (Load) ในอีกฐานข้อมูลหนึ่ง ตาม รูปที่ 2.3
การทำ ETL ในปัจจุบัน มักมีการ Load ข้อมูลเข้าฐานข้อมูลใหม่ก่อนจะเริ่ม Transform ดังนั้นกระบวนการทำงานที่จริงจะเป็น ELTL แต่คำว่า ETL ยังคงเป็นที่นิยมใช้และเข้าใจโดยทั่วไป