Data Types

SIL-Thailand
SIL-Thailand
Published in
2 min readDec 20, 2019

แต่ละ element ใน resource หนึ่งๆ จะมี data type หรือประเภทข้อมูล โดยเฉพาะ

Data type ใน FHIR มี 4 ประเภท

  1. Simple/Primitive types ซึ่งเป็น element เดี่ยวๆ
  2. Complex types ซึ่งเป็นกลุ่มของ element
  3. Metadata types สำหรับใช้กับ metadata resources
  4. Special Purpose Data types สำหรับการใช้งานเฉพาะด้าน

Data Types บางตัวที่มีการใช้งานประจำ เช่น

Code

ใช้เมื่อระบบจำเป็นต้องสร้างตัวเลือกที่มีพื้นฐานบนรหัส (code) เช่น มีขั้นตอนการทำงานที่สัมพันธ์กับ resource อย่างเช่น อาจใช้ สถานะ (status) ของ Condition Resource กำหนดว่าจะแสดง condition (สภาวะการเจ็บป่วย) นั้น ในรายการสภาวะผู้ป่วย (patient’s list of conditions) หรือไม่

CodeableConcept

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

ลักษณะเด่นที่สำคัญของ CodeableConcept ได้แก่

  • สนับสนุนรหัสหลายๆ รหัส หรือ “การแปลงค่า (Translation)” ซึ่งยินยอมให้ resource กรณีตัวอย่างเดียวกัน (common resource instance) ถูกใช้ในสถานการณ์ที่ผู้รับที่แตกต่างกันอาจต้องการรหัสที่ไม่เหมือนกัน
  • ยินยอมให้มีการโยกย้าย (Migration) ระหว่างระบบรหัสเมื่อเวลาผ่านไป

การใช้งานทั่วไปของ CodeableConcept ที่พบประจำคือการส่งรหัสของ concept ที่เป็น local code พร้อมกับ translation อย่างน้อยหนึ่งรายการไปยังระบบรหัสสาธารณะเช่น LOINC หรือ SNOMED CT ตัวอย่างเช่น ผลทดสอบทางห้องปฏิบัติการที่เป็นเชิง qualitative สมมติระบบ Lab ของโรงพยาบาล Acme ใช้ local code = “NEG” และ translation กับรหัสมาตรฐาน SNOMED-CT

"valueCodeableConcept": {
"coding": [{
"system": "http://snomed.info/sct",
"code": "260385009",
"display": "Negative"
}, {
"system": "https://acme.lab/resultcodes",
"code": "NEG",
"display": "Negative"
}],
"text": "Negative for Chlamydia Trachomatis rRNA"
}
  • สนับสนุนการสื่อใจความของ concept ซึ่งสำคัญสำหรับสถานการณ์ที่ไม่มีรหัสที่เหมาะสมอยู่ หรือในกรณีที่ผู้รับไม่รู้จักระบบรหัส (code system) หรือต้องการดูรายละเอียดเดิมของ concept ซึ่งไม่สามารถแสดงให้เห็นโดย code นั้นได้
"valueCodeableConcept": {
"text": "uncoded free text result"
}

Reference/Resource reference

Reference เป็น data type พิเศษ ให้ resource หนึ่งอ้างถึงอีก resource หนึ่งได้ ตัวอย่างเช่น resource ทางคลินิกอย่าง Problem หรือ Observation จำเป็นต้องอ้างถึง Patient resource

Contained Resources

Contained Resource เป็นการอ้าง resource อีกแบบ​ โดย resource ที่ถูกอ้างถึงถูกบรรจุอยู่ใน “parent” resource จริงๆ

Contained Resource จะไม่มี identity เป็นของตัวเอง นั่นก็คือ มันไม่ได้ถูกจัดเก็บบน server ในที่ๆ เป็นอิสระจาก resource ที่บรรจุมัน

{
"resourceType" : "Condition",
"contained": [{
"resourceType" : "Practitioner",
"id" : "p1",
"name" : [{
"family" : "Person",
"given" : ["Patricia"]
}]
}],
"asserter" : {
"reference" : "#p1"
}
}

--

--