2  การแปลงข้อมูล

คำเตือน

เว็บไซต์นี้อยู่ระหว่างจัดทำ จึงยังมีเนื้อหาไม่ครบถ้วน
ท่านสามารถร่วมเพิ่มเติมหรือแก้ไขเนื้อหาต่าง ๆ ได้ที่ GitHub: sidataplus/omop-book

Tip

ท่านสามารถศึกษาการแปลงข้อมูลเป็น OMOP CDM ได้บนเว็บไซต์ The Book of OHDSI บทที่ 4 – 6 ก่อน

2.1 OMOP CDM

Observational Medical Outcomes Partnership Common Data Model (OMOP CDM) มีองค์ประกอบหลัก 3 ส่วน คือ

  1. Tables
  2. Vocabularies
  3. Conventions

2.1.1 Tables

OMOP CDM version 5.4 จะเก็บในรูปแบบ relational database ประกอบด้วย 6 หมวดหมู่ 39 tables ดัง รูปที่ 2.1

รูปที่ 2.1: ตารางข้อมูลตามมาตรฐาน OMOP CDM (ที่มา https://ohdsi.github.io/CommonDataModel/)

โดย 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”.
Tip

ตัวอย่างข้อมูล OMOP CDM

2.1.2 Vocabularies

Vocabularies คลังชุดคำศัพท์ ประกอบด้วย

  1. Standard concepts คำศัพท์มาตรฐาน เช่น SNOMED-CT LOINC RxNORM ICD9Proc เป็นต้น สำหรับการใช้ข้อมูลร่วมกันระดับนานาชาติ
  2. Non-standard concepts เช่น ICD10 เป็นต้น รวมถึงรหัสในประเทศไทย เช่น TMT, TMLT เป็นต้น
  3. 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: ข้อตกลงการเก็บข้อมูลในตาราง PERSON

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

รูปที่ 2.3: ETL Process
Tip

การทำ ETL ในปัจจุบัน มักมีการ Load ข้อมูลเข้าฐานข้อมูลใหม่ก่อนจะเริ่ม Transform ดังนั้นกระบวนการทำงานที่จริงจะเป็น ELTL แต่คำว่า ETL ยังคงเป็นที่นิยมใช้และเข้าใจโดยทั่วไป