ถ้าจะให้หมอบันทึก ICD-10 เอง บันทึกเป็น SNOMED CT ดีกว่า

ในการใช้งานระบบสารสนเทศสุขภาพ ถ้าระบบนั้นจะมีฟิลด์ให้ใส่คำวินิจฉัย (diagnosis) ผู้พัฒนาระบบก็มักจะให้ใส่เป็น ICD-10 ในความเห็นผมนี่ไม่ใช่แนวทางที่ดีนัก

คือจริง ๆ แล้ว ICD-10 ไม่ได้ออกแบบมาให้หมอเป็นคนบันทึกเอง และอาจารย์หลาย ๆ ท่านที่สอน ICD-10 ในไทยก็ไม่ได้สนับสนุนให้ทำแบบนั้น หมอควรเขียนเป็นข้อความ diagnosis แบบ free text และให้มี coder เป็นคนระบุ ICD-10 การที่หมอไม่ต้องคีย์ ICD-10 เองก็เป็นสิ่งที่ที่อื่น ๆ ทั่วโลกทำกัน (และจริง ๆ ขั้นตอนการหา ICD-10 code จากหนังสือก็เป็นการหาจาก index ไม่ใช่การกรองเอาตาม text แบบที่ระบบในปัจจุบันมักทำกัน) แต่ในเมืองไทยมักจะให้หมอเป็นคนคีย์ ICD-10 เอง ด้วยเหตุผลต่าง ๆ กันไป (แล้ว coder ก็มักจะต้องมาแก้อยู่ดี)

สมมติเราไม่ต้องให้หมอคีย์ ICD-10 แล้ว ให้ลง diagnosis เป็น free text อย่างเดียว ข้อดีก็คือทำให้สามารถบันทึกข้อมูลได้อย่างที่อยากจะบันทึกจริง ๆ แต่ข้อเสียคือใช้ประโยชน์ต่อได้ยาก (ยกเว้นเทคโนโลยี NLP จะดีกว่านี้ ซึ่งจริง ๆ ก็อาจจะอีกไม่นาน) ทางออก ณ ปัจจุบัน เลยออกมาในรูปแบบการใช้ interface terminology คือเป็นชุดของคำศัพท์สำเร็จรูปแล้วให้หมอเลือกจากชุดคำศัพท์เหล่านั้น ชุดคำศัพท์นี้ถ้ายิ่งทำได้ละเอียดก็ยิ่งทำให้หมอเลือกสามารถเลือกคำได้ใกล้เคียงกับการพิมพ์ free text

ในปัจจุบัน ผมยังไม่เห็นใครพัฒนา interface terminology สำหรับบริบทของไทยแบบเป็น product จริงจัง หรือนำ interface terminology จากต่างประเทศมาใช้ ดังนั้นแนวทางที่น่าจะพอใช้ได้ก็คือการนำ reference terminology ที่เรามีอยู่แล้วอย่าง SNOMED CT มาใช้เป็น interface terminology แน่นอนว่าไม่ได้สมบูรณ์หรอก แต่โดยรวมก็ดีกว่าการคีย์ด้วย classification (เช่น ICD-10) และแนวทางนี้ก็ค่อนข้างใช้กันแพร่หลายในสากล บทความนี้จะมาให้รายละเอียดประเด็นนี้ครับ

หมายเหตุ: จริง ๆ ปัญหาหลาย ๆ อย่างที่ผมพูดถึงในบทความนี้ถูกแก้ไปแล้วใน ICD-11 นะครับ ผมเคยพูดไปในคลิปนี้ ซึ่งก็นานมาแล้ว แนวคิดผมปัจจุบันคือบันทึกด้วยระบบไหนก็ได้ครับ (ICD-11, SNOMED CT, interface terminology อื่น ๆ) โดยต้องมีช่อง diagnosis free text ไว้เสมอ เผื่อไม่สามารถคีย์ด้วยคำสำเร็จรูปได้ แต่ตอนวิเคราะห์ข้อมูลถ้า convert เป็น SNOMED CT จะทำอะไรยาก ๆ ได้ง่ายที่สุด ไว้มีโอกาสมาพูดถึงประเด็นนี้ครับ

(ขอบคุณภาพ featured image จาก National Cancer Institute ที่ Unsplash)

1. Interface terminology vs. Reference terminology vs. Classification

ในทางการแพทย์มีการใช้ terminology เยอะ ก็คือใช้ ระบบรหัสและคำศัพท์ เพื่อมาสื่อความหมายที่ต้องการและทำให้การแลกเปลี่ยนและรวมข้อมูลเป็นไปโดยสมบูรณ์ถูกต้อง ระบบคำศัพท์มีมากมายหลายระบบ แต่กลุ่มที่เรามักเกี่ยวข้องบ่อย ๆ ก็คือ 3 กลุ่มนี้ ซึ่งต้องแยกความแตกต่างให้ได้ก่อนครับ

ในบทความนี้ผมจะใช้คำว่า “concept” อยู่บ่อย ๆ concept หมายถึง 1 clinical idea หรือ 1 สิ่งใน healthcare domain

  1. Interface terminology: ระบบคำศัพท์ที่ออกแบบมาเพื่อใช้ใน user interface (UI) เช่น การแสดงผล หรือการป้อนข้อมูล เน้นทำให้การใช้งานมีความสะดวกที่สุด ซึ่งอาจมีคำศัพท์เฉพาะ คำย่อ ที่ใช้กันในบริบทหนึ่ง ๆ แต่อาจไม่ใช่คำที่ใช้ในวงกว้างหรือในสากล หลังจาก user เลือกคำหนึ่ง ๆ แล้ว ก็ค่อย map ไป reference terminology หรือ classification ต่อไป กลุ่มนี้ในต่างประเทศ เช่น IMO
  2. Reference terminology: ระบบคำศัพท์ที่ออกแบบมาเพื่อเป็นมาตรฐานในการสื่อความหมายถึง concept หนึ่ง ๆ คำที่ใช้ รวมถึงคำย่อ จะเป็นคำสากล จะไม่มีคำที่มีความหมายกำกวมในนั้น (เช่น Not elsewhere classified, Unspecified) จะมี formal machine-readable definition, มี relationship และอื่น ๆ ตัวอย่างในกลุ่มนี้ เช่น SNOMED CT, LOINC
  3. Classification หรือบางคนก็เรียก administrative termonology: ระบบที่ออกแบบมาเพื่อจำแนกโรคเป็น “กลุ่มโรค”​ ต่าง ๆ กลุ่มนี้จริง ๆ มีเยอะมาก แต่ที่เราจะพูดถึงกันวันนี้ก็คือ รหัส ICD รหัส ICD เป็นรหัสกลุ่มโรคนะครับ ไม่ใช่รหัสโรค 1 รหัสจะประกอบด้วยหลายโรคอยู่ในนั้น ประโยชน์หลักคือเพื่อใช้ในการจัดการทางสถิติ

ทั้ง 3 กลุ่มจะมีความซ้อนทับกันอยู่ โดยเฉพาะ 1 กับ 2 จะมีความซ้อนทับค่อนข้างสูง ดังนั้น โดยรวมแล้วการนำ reference terminology มาทำหน้าที่เป็น interface terminology จึงค่อนข้างใช้งานได้ (แม้จะไม่ได้สมบูรณ์ 100%) แต่ classification จะห่างออกมานิด การเอามาทำ interface terminology (แบบที่เราชอบทำกัน) จึงฝืน ๆ หน่อย

Image from SOO-YONG SHIN website

บันทึกเป็น SNOMED CT ไปก็แปลงเป็น ICD-10 ได้อยู่แล้ว

ข้อกังวลอันดับหนึ่งเรื่อง SNOMED CT คือ “ถ้าใช้แล้วจะเบิกจ่ายได้ไหม” ขอยืนยันว่าได้แน่นอนครับ เพราะในไฟล์เผยแพร่ของ SNOMED CT เองเขาก็มี mapping เป็น ICD-10 มาให้อยู่แล้ว และที่ผมดูเวอร์ชั่นล่าสุด (เม.ย. 2024) 69% ของ concept ในหมวด finding (หมวดที่เอาไว้บันทึกสิ่งที่ตรวจพบ) จำนวน 121,976 concept สามารถแปลงไปเป็น ICD-10 ได้โดยอัตโนมัติเลย อีก 13% ที่แปลงอัตโนมัติได้แต่ต้องใช้ข้อมูลอื่นประกอบ (เพศ อายุ) ที่เหลือคือแปลงอัตโนมัติไม่ได้ ต้องใช้คนดู พวกนี้มีหลายเหตุผลครับซึ่งไม่ขอลงรายละเอียดในที่นี้

แต่ถ้าเราเทียบกับ workflow ปัจจุบันที่ให้หมอคีย์ ICD-10 มา coder ก็ต้องมาตรวจซ้ำอยู่ดี คือไม่ว่าจะลงเป็นอะไร coder ก็ต้องตรวจ แต่ลงเป็น SNOMED CT แล้วให้ระบบแปลงเป็น ICD-10 ให้ ผมว่ายังมีโอกาสจะได้ ICD-10 ที่ถูกมากกว่าให้หมอมาลง ICD-10 เองอีกครับ คืองานของ coder เบาลงด้วยซ้ำนะครับ

คำถามที่ตามมาคือ “แล้วถ้าระบบมันแปลง SNOMED CT เป็น ICD-10 ผิดล่ะ” อันนี้ก็อย่างที่บอกว่ายังไงก็มี coder ตรวจอยู่ดีครับ ถ้ามันผิด coder ก็แก้ แล้วก็ค่อยทำไฟล์สำหรับแปลงใหม่ (mapping reference set) สำหรับใช้ในองค์กรก็ได้ หรือส่งเรื่องไปแก้ที่ SNOMED กลางก็ได้ (ผมก็เคยเคยส่งไปแก้ เขาก็แก้ให้)

2. ทำไมการคีย์เป็น SNOMED CT ดีกว่า ICD-10

เวลาผมกล่าวถึงการคีย์เป็น SNOMED CT ประสบการณ์จะเป็นคล้าย ๆ ในภาพด้านล่างครับ คือไม่ต้องจำรหัสอะไร อยากพิมพ์อะไรก็พิมพ์ไปได้เลย ระบบจะไปกรองจากคำต่าง ๆ ในระบบมาให้เลือกให้ตรงตามเงื่อนไขที่ทางผู้พัฒนากำหนดไว้

ภาพจากเว็บไซต์ https://ihtsdo.github.io/snomed-ui-examples/ เป็นตัวอย่างการ implement SNOMED CT ที่ SNOMED International ทำไว้ ลองไปเล่น ๆ กันดูได้ครับ

คำศัพท์ใน SNOMED CT ใกล้เคียงกับศัพท์ที่แพทย์ใช้มากกว่า

กลุ่มนี้คือคำศัพท์ที่ ICD-10 เป็นคำศัพท์ที่ใช้เพื่อการจัดกลุ่มโรค แต่ไม่ค่อยสอดคล้องกับคำที่แพทย์อยากบันทึกคำวินิจฉัย ยกตัวอย่างเช่น

ICD-10SNOMED CT
H11.1 Conjunctival degenerations and depositsต้อลม สามารถพิมพ์ “Pinguecula”
N61 Inflammatory disorders of breastสามารถพิมพ์ “Mastitis”
N92.0 Excessive and frequent menstruation with regular cycleสามารถพิมพ์ “Menorrhagia”
N95.1 Menopausal and female climacteric statesสามารถพิมพ์ “Menopausal syndrome”
T62.9 Noxious substance eaten as food, unspecifiedสามารถพิมพ์ “Food poisoning” หรือถ้าต้องการให้ละเอียดขึ้นก็พิมพ์ “bacterial food poisoning” (จะตรงกับ A05.9 แทน)
T63.0 Toxic effect: Snake venomสามารถพิมพ์ “Snake bite poisoning”

อย่างไรก็ดี ผมว่ากลุ่มนี้พบค่อนข้างน้อย โรคที่พบบ่อยจริง ๆ ก็มักใช้คำศัพท์ที่เป็นศัพท์ที่แพทย์คุ้นเคยหรือใกล้เคียงอยู่แล้ว

SNOMED CT มีระบบ synonym ใช้หา concept ที่ต้องการได้

กลุ่มนี้ก็คือกลุ่มที่ใช้ศัพท์แพทย์อยู่ แต่บางทีเราก็ถนัดเรียกด้วยคำอื่นมากกว่า ทำให้ค้นหาได้ง่ายขึ้น ยกตัวอย่างเช่น

ICD-10SNOMED CT
B01.9 Varicella without complicationสามารถพิมพ์ “chickenpox”, “Varicella”
B08.4 Enteroviral vesicular stomatitis with exanthemสามารถพิมพ์ “hand foot mouth”
B35.1 Tinea unguiumสมมติเราลืมว่าเล็บเรียกว่าอะไร เราก็พิมพ์ “Tinea of nail” ได้
C22.1 Intrahepatic bile duct carcinomaสามารถพิมพ์ “Cholangiocarcinoma”​
D17 Benign lipomatous neoplasmสามารถพิมพ์ “Lipoma”
E05.0 Thyrotoxicosis with diffuse goitreสามารถพิมพ์ “Toxic diffuse goiter”, “Graves’ disease”, ฯลฯ
M94.0 Chondrocostal junction syndrome [Tietze]สามารถพิมพ์ “Costochondritis”
N10 Acute tubulo-interstitial nephritisสามารถพิมพ์ “Acute pyelonephritis”
N20.0 Calculus of kidneyสามารถพิมพ์ “Kidney stone”

SNOMED CT มักมี concept ที่มีรายละเอียดมากกว่า ในหลาย ๆ สถานการณ์

อย่างที่กล่าวไปว่า ICD-10 เป็นรหัสของกลุ่มโรค ดังนั้นโดยหลักการออกแบบแล้ว เขาจึงไม่จำเป็นต้องทำให้ละเอียดมาก ๆ อะไร ซึ่งบางครั้งสิ่งที่แพทย์ต้องการบันทึกอาจมีรายละเอียดมากไปกว่าที่ ICD-10 จัดกลุ่มไว้ ยกตัวอย่างนะครับ หมวดมะเร็งทั้งหมวด ICD-10 จะไม่ได้มีรายละเอียดมากนัก (เขาน่าจะอยากให้ไปใช้ ICD-O เป็นตัวบันทึก)

ภาพจากเว็บไซต์ https://icd.who.int/browse10/2019/en#/C50

แต่ถ้าเป็น SNOMED CT Breast เฉพาะ CA breast มี children concept ให้เลือกบันทึกกว่า 195 concept

ภาพจาก SNOMED CT International Browser (URL) โดยใช้ ECL query เพื่อแสดง children ทั้งหมดของ 254837009 | Malignant neoplasm of breast (disorder) |

หรือดูอย่าง “I63 Cerebral infarction” ครับ มี option ให้เลือกบันทึก 9 รหัส

ภาพจากเว็บไซต์ https://icd.who.int/browse10/2019/en#/I63

แต่ถ้าเป็น SNOMED CT 432504007 | Cerebral infarction (disorder) | มี children concept กว่า 64 concepts

ภาพจาก SNOMED CT International Browser (URL) โดยใช้ ECL query เพื่อแสดง children ทั้งหมดของ 432504007 | Cerebral infarction (disorder) |

หรืออย่าง “L02.2 Cutaneous abscess, furuncle and carbuncle of trunk” เราก็ไม่ทราบว่าสรุปเป็น abscess, furuncle หรือ carbuncle, และก็ไม่ทราบว่าตรงไหนของ trunk แต่ถ้าเป็น SNOMED CT เราระบุได้ละเอียดกว่า

ภาพจาก SNOMED CT International Browser (URL)

SNOMED CT มักมีการระบุตำแหน่งที่ละเอียดกว่า

ยกตัวอย่างเช่น ICD-10 ในหมวด M ที่ใช้ subclassification เลข 0-9 ในการระบุตำแหน่งที่เกิดโรค ซึ่งเป็นการแบ่งกลุ่มแบบกว้าง ๆ เช่น 1 หมายถึง Shoulder region ซึ่งรวม clavicle, scapula, acromioclavicula joint, ฯลฯ เข้าไว้ด้วยกัน ดังนั้นสมมติเราได้รหัสมาเป็น “M25.01 Haemarthrosis: Shoulder region” เราก็ไม่รู้อยู่ดีว่าคือ joint ไหนของ shoulder region ไม่ทราบว่าข้างซ้ายหรือขวา แต่ถ้าเป็น SNOMED-CT เราสามารถระบุ joint ที่ต้องการได้เลย

ภาพจาก SNOMED CT International Browser (URL)

อย่างไรก็ดี ผมคิดว่าแนวปฏิบัติที่ดีในการบันทึก diagnosis คือการมีอย่างน้อย 2 ฟิลด์นะครับ 1) diagnosis ว่าเป็นอะไร 2) body site ว่าเป็นตรงไหน (อาจเป็น optional) แบบนั้นก็อาจทำให้การบันทึกตำแหน่งโดยละเอียดทำได้สะดวกกว่า การใช้รหัสเพียงอย่างเดียว

SNOMED CT สามารถใช้คำย่อในการค้นหาคำได้

ยกตัวอย่างเช่น

ICD-10SNOMED CT
J44.1 Chronic obstructive pulmonary disease with acute exacerbation, unspecifiedสามารถพิมพ์ “COPD Acute” เพื่อหา 195951007 | Acute exacerbation of chronic obstructive pulmonary disease (disorder) |
K21 Gastro-oesophageal reflux disease สามารถพิมพ์ “GERD” เพื่อหา 235595009 | Gastroesophageal reflux disease (disorder) |
K92.2 Gastrointestinal haemorrhage, unspecifiedสามารถพิมพ์ “GI bleed” เพื่อหา74474003 | Gastrointestinal hemorrhage (disorder) |
O23 Infections of genitourinary tract in pregnancyสามารถพิมพ์ “UTI preg” เพื่อหา 307534009 | Urinary tract infection in pregnancy (disorder) |

อย่างไรก็ดี ผมคิดว่าการหาด้วยคำย่อใน SNOMED CT ก็มีความ unreliable อยู่เช่นกันครับ เช่น เราสามารถพิมพ์ “GERD” แบบตัวอย่างข้างบนได้ แต่ไม่สามารถใช้ GERD เพื่อหา 266435005 | Gastroesophageal reflux disease without esophagitis (disorder) | ได้ เพราะ concept นี้ไม่ได้นำคำว่า GERD ไปใส่ใน synonym ทางออกมี 2 ทางคือให้ในช่องค้นหาสามารถเปิดการ browse ตาม hierarchy ได้ (ทำยากกว่า) หรือไม่ก็ต้องเป็นระบบถ้าหาด้วยคำย่อไม่เจอให้ลองหาด้วยคำเต็มดูอีกที เป็นต้นครับ

ICD-10 ออกแบบมาให้ใช้การเปิดหนังสือเป็นหลัก

ลองดูตัวอย่างหน้านี้นะครับ

ภาพจากเว็บไซต์ https://icd.who.int/browse10/2019/en#/C30-C39 แต่เนื้อหาในหนังสือก็เหมือนกันครับ

สังเกตไหมครับ “C34.0 Main bronchus” คือถ้ามาแค่นี้อยู่ในช่องค้นหาของระบบคอม จะไม่สามารถรู้ได้เลยนะครับว่าคือโรคอะไร ในหนังสือเรารู้เพราะเรามองขึ้นไปข้างบนและอ่านหัวข้อได้ (C34) แต่ในคอมไม่ใช่แบบนั้น ผมเคยเจอระบบที่เอา ICD-10 text เข้าไปตรง ๆ แบบนี้มาบ้างเหมือนกันครับ ซึ่งทำแบบนี้ไม่ได้นะครับ

ในเว็บไซต์ของ ICD-10 เองใช้วิธีเติมคำเข้าไปครับ เป็น “C34.0 Malignant neoplasm: Main bronchus”

ภาพจากเว็บไซต์ https://icd.who.int/browse10/2019/en#/C30-C39 ครับ

ถ้าเรียก FHIR Terminology server for IG publishing (https://tx.fhir.org/) จะแก้ปัญหาอีกวิธีโดยการใส่เป็น designation เพิ่มให้ concept ครับ สรุปก็คือ ICD-10 ออกแบบมาสำหรับหนังสือกระดาษเป็นเล่ม ถ้าจะเอามาใช้ในคอม เอามาตรง ๆ ไม่ได้ ต้องแปลงบางคำก่อน ซึ่งบางคนไม่ได้แปลง หรือแปลงแต่ไม่ถูก ต้องลองเช็ค ICD-10 ที่ท่านใช้อยู่ดี ๆ ครับ แต่ถ้าเราคีย์เป็น SNOMED CT เราก็ไม่ต้องมีปัญหาตรงนี้

ICD-10 term ใช้คำ British English

อันนี้ดูจะไม่ใช่เรื่องใหญ่ครับ แต่สำหรับผมเองผมคุ้นเคยกับศัพท์แพทย์ที่เขียนแบบ US English มากกว่า เวลาจะพิมพ์หาก็เลยง่ายกว่า ใน SNOMED CT สามารถเลือกได้ว่าจะเอาคำ US หรือ UK หรือทั้งคู่ มาใส่ให้ค้นหาครับ (ICD-10 มี US English ใน index แต่ระบบส่วนใหญ่ไม่ได้ implement จาก index)

ยกตัวอย่างเช่น Oesophagitis (UK) – Esophagitis (US), Haemorrhage (UK) – Hemorrahge (US), Hyperglycaemia (UK) – Hyperglycemia (US), Oedema (UK) – Edema (US), Dysmenorrhoea (UK) – Dysmenorrhea (US) เป็นต้นครับ ส่วนตัวผมถนัด US English มากกว่า

3. ข้อเสียของการคีย์เป็น SNOMED CT

ก็ยังไม่เหมือนคีย์ free text อยู่ดี

ถึงแม้ SNOMED CT จะมีคำศัพท์จำนวนมาก แต่จะอย่างไรก็ออกแบบมาเพื่อเป็น reference terminology เป็นหลัก ไม่ใช่ interface terminology ดังนั้น SNOMED CT จะไม่ได้มีคำที่อาจทำให้การคีย์ง่ายขึ้น เช่น คำย่อที่ไม่สากล คำที่อาจทำให้ความหมายกำกวม เป็นต้น ทางออกที่อาจทำได้ก็คือการพัฒนา SNOMED CT extension ที่รวมเอาคำที่อยากจะใส่เพิ่มเข้ามาใช้ในกลุ่มของเราเอง ก็เป็นทางหนึ่งที่ทำได้ครับ

อีกข้อจำกัดคือ ถ้าอยากพิมพ์ diagnosis text ยาว ๆ “A with B with C with D s/p E with complication” อะไรแบบนี้ จริง ๆ จะประกอบรหัส (postcoordination) จนสื่อความหมายแบบนี้ได้ก็อาจจะได้ แต่มันก็ไม่ค่อย practical และก็อาจจะใช้ประโยชน์ต่อได้น้อย ผมว่าทางออก ณ ปัจจุบันน่าจะอยู่ในรูปการใช้ information model มาจัดการมากกว่าการใช้ code เพียงอย่างเดียว เช่น การทำเป็นหลายฟิลด์สำหรับแต่ละเรื่อง หัตถการหรือ complication ก็ไปอยู่ฟิลด์แยกไป เป็นต้นครับ (ลองดูตัวอย่าง FHIR Condition, Procedure) ถ้าจะต่อยอดจากนี้ ทำ information model ดี ๆ แล้วให้คีย์ free text ในช่องคีย์ diagnosis เลยก็ได้ครับ แล้วเอา NLP มาจับลง model อีกที

ถ้าจัดการไม่ดีจะมีโอกาสคีย์ diagnosis ที่ไม่ละเอียดมากกว่า

ข้อนี้ อ.วรรษา เปาอินทร์ เป็นผู้ชี้ให้ผมเห็นครับ อาจารย์ให้ข้อสังเกตว่ารพ.ที่ใช้ SNOMED CT กลายเป็นว่ามักจะมีคุณภาพการบันทึก diagnosis ที่แย่กว่ารพ.ที่ไม่ใช้ น่าสนใจไหมครับ ทั้ง ๆ ที่โดยหลักการแล้ว SNOMED CT ละเอียดกว่า ก็น่าจะมีคุณภาพที่ดีกว่า

ผมนั่งคิดประเด็นนี้ เห็นว่าเป็นไปได้จริงเหมือนกันครับ ผมคิดว่าสาเหตุเกิดจากการที่ term ใน SNOMED CT มีความละเอียดหลากหลายมาก ตั้งแต่หยาบไปจนละเอียด ทำให้บางครั้งหมอเสิร์ชเจอคำที่หยาบแล้วก็เลือกเลย ไม่หาต่อไปถึงคำที่ละเอียดกว่า อันนี้ทางออกคงต้องทำ 3 ทาง

  1. ผลักดันให้หมอพยายามคีย์ให้ละเอียด อันนี้ก็แล้วแต่แต่ละรพ.จะไปผลักดันกันครับ
  2. จำกัดไม่ให้เลือกคำที่ไม่ละเอียด อันนี้ก็ต้องมาทำลิสต์ว่ากลุ่มไหนบ้างจะไม่ให้เลือกแล้วเอาออกจาก value set แต่ผมยังคิดวิธีเลือกคำง่าย ๆ ไม่ออกเหมือนกันครับ (คำแบบไหนถือว่าละเอียด แบบไหนถือว่าไม่ละเอียด?) และในทางคลินิกมันก็แปลก ๆ ที่จะมาจำกัดไม่ให้เลือก diagnosis บางอย่าง
  3. ให้เก็บฟิลด์ diagnosis free text ไว้เสมอ เผื่อหมออยากมาเขียนเพิ่ม เขาอาจจะเลือกคำที่ไม่ละเอียดก็ได้ แต่ใช้วิธีมาเติม free text เพื่อให้รายละเอียดเพิ่มเติม อันนี้ก็ยังดีกว่าลงมาแบบไม่ละเอียดแล้วทำอะไรต่อไม่ได้เลย

4. สรุปแนวทางที่ดีที่สุด ณ 2024 ในความเห็นผม

ณ เม.ย. 2024 นี้ ผมคิดว่าไอเดียเรื่องการสร้างฟิลด์สำหรับบันทึก diagnosis ของผมเป็นแบบนี้ครับ

  1. ถ้ามี interface terminology ให้ใช้ (เช่นไปซื้อมา หรือพัฒนาเอง) และเหมาะสมกับการทำ UI มากกว่า SNOMED CT ก็สามารถใช้ได้เลยครับ
  2. ถ้าไม่มี ทางเลือกก็จะเหลือเอา SNOMED CT และ ICD-11 มาเป็น interface terminology ถ้าสามารถ implement การประกอบรหัส (postcoordination) ของ ICD-11 ได้ ผมเห็นว่า ICD-11 มีความละเอียดเพียงพอในทางคลินิก สามารถเลือกใช้ได้เช่นกัน
  3. ถ้าไม่สามารถ implement postcoordination ของ ICD-11 ได้ ผมคิดว่าใช้ SNOMED CT ดีกว่า หรือถ้าจะ implement SNOMED CT postcoordination ร่วมด้วยก็จะยิ่งเยี่ยมเลยครับ (SNOMED CT ก็มีวิธีประกอบ concept หลาย ๆ concept เพื่อสื่อความหมายครับ)
  4. ไม่ว่าจะเลือก terminology ไหน ขอให้เก็บช่อง diagnosis free text ไว้เสมอ
  5. ไม่ว่า UI จะ implement terminology ไหน ตอนเก็บหลังบ้านควรมีทาง map ไป SNOMED CT ให้ได้ เพราะในปัจจุบันมีแค่ SNOMED CT เท่านั้นที่มี concept model และ relationship โดยละเอียด ซึ่งสิ่งนี้เป็นหัวใจสำคัญมากของการใช้ประโยชน์จากข้อมูลทำอะไรยาก ๆ ต่อไป
  6. ผมไม่ค่อยแม่น ICD-11 แต่เท่าที่ทราบคือ convert เป็น ICD-10 ได้อัตโนมัติอยู่แล้ว SNOMED CT ก็เช่นกัน ดังนั้นตอนจะสรุปชาร์ทก็ค่อย convert เป็น ICD-10 และให้ coder ตรวจอีกรอบเพื่อส่งเบิกต่อไป ถ้า coder เห็นต่างจากระบบอัตโนมัติ โดยปกติควรเชื่อ coder มากกว่า

พอพูดแบบนี้เดี๋ยวก็จะมีคนบอก implement SNOMED CT ยาก ซับซ้อน ผมก็ไม่ค่อยเข้าใจว่า myth นี้มันมายังไง และการ implement SNOMED นี่มันยากกว่า ICD-10 ยังไง (ก็อาจยากกว่านิด ๆ ล่ะมั้งครับ) คือที่ทำโปรแกรมกันจนรันได้ในระบบใหญ่ ๆ ทุกวันนี้ยากกว่านี้เยอะทั้งนั้น จริง ๆ software developer ส่วนใหญ่ที่ผมเจอ พอพูดเรื่องนี้ให้ฟังส่วนใหญ่ก็บอก “เอ่า มันก็ไม่มีอะไรยากหนิหมอ” ทั้งนั้น 😅

ส่วนหมอก็ใช้ง่ายขึ้นอยู่แล้ว จริง ๆ ก็ไม่ต้องมีเทรนอะไร เขาอยากพิมพ์อะไรก็ให้เขาพิมพ์ไป ไม่เจอก็ไปพิมพ์ในช่อง free text ส่วน coder ก็ง่ายขึ้นเพราะ ICD-10 ที่มาจากระบบอัตโนมัติมันก็โอเคระดับนึง สรุปว่า stakeholder ส่วนใหญ่ก็ win กันหมด


ก็จบแล้วครับสำหรับบทความนี้ ยาวมาก เห็นด้วยเห็นต่าง คิดเห็นอย่างไรแลกเปลี่ยนกันได้ครับ

Leave a Reply

Your email address will not be published. Required fields are marked *