Extension

SIL-Thailand
SIL-Thailand
Published in
1 min readDec 13, 2019

กลไก Extension เป็นสิ่งที่ทำให้ FHIR แตกต่างจาก HL7 version 3 โดย FHIR นั้นมีปรัชญา “80%” กล่าวคือ element ของ resource จะรวมอยู่ใน Core Dataset ก็ต่อเมื่อมีระบบในปัจจุบันใช้งานหรือสนับสนุนอยู่ 80% ตรงกันข้ามกับ HL7 v3 (และ openEHR) ที่มีแนวคิดของ “maximal dataset” (ซึ่งมีผลทำให้เกิดการ “บวม” ของมาตรฐาน และการอภิปรายถกเถียงกันไม่มีที่สิ้นสุด ส่งผลต่อเวลาอันยาวนานในการพัฒนา) การจำกัด specification ไว้เพียง elements สามัญทั่วไปทำให้ง่ายต่อการอ่านทำความเข้าใจและนำไปใช้

แต่บริการทางการแพทย์หรือด้านสุขภาพนั้นมีความหลากหลายอย่างมาก ในบางครั้งมี data elements จำนวนหนึ่งถูกใช้งานแต่อยู่ในวงจำกัด elements ที่ไม่ได้อยู่ใน Core Dataset นี้จะถูกจัดการด้วยกลไกของ FHIR Extension

Extension ประกอบด้วย

http://www.hl7.org/implement/standards/fhir/extensibility.html
  • url อ้างอิงไปยัง profile ที่นิยาม Extension
  • value[x] ค่าข้อมูลของ Extension

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

  • Official HL7 registry สำหรับ data element ที่ไม่อยู่ใน “80%” ของที่ใช้งานในระบบทั่วไป แต่ก็มีความต้องการใช้งานอยู่บ่อยๆ ตัวอย่างเช่น ศาสนาที่ผู้ป่วยนับถือ
  • Country registry สำหรับกำหนด Extension ที่จำเพาะกับการใช้งานในประเทศนั้น เช่น Extension สำหรับชนเผ่า Maori ในนิวซีแลนด์ (ซึ่งไม่น่ามีที่ใช้งานในยุโรปหรืออเมริกา)

เมื่อมีการใช้งาน Extension ใดแล้ว ไม่ควรมีการเปลี่ยนแปลงที่ break Extension นั้น ควรสร้าง Extension ใหม่ถ้าจำเป็น

Simple Extensions

การเพิ่ม element เข้าไปเป็นเก็บค่าข้อมูลที่ไม่ได้อยู่ใน Core Dataset เป็นรูปแบบพื้นฐานที่สุดของการใช้ Extension

แต่ละ element ที่เพิ่มพิเศษเข้ามาจำเป็นต้องมี Extension ของตัวเอง

Extension สามารถซ้อน (nested) อยู่ข้างใน Extension ลงไปอีกได้

Extending Core Dataset

Extension สามารถนำมาใช้งานเมื่อจำเป็นต้องดัดแปลงหรือขยาย Core element ตัวอย่างเช่น Patient.name บรรจุ element สำหรับ family name (นามสกุล) given name (ชื่อ) prefix and suffix (คำนำหน้าและลงท้าย) เมื่อเราต้องการระบุชื่อกลางโดยใช้ given name ทำได้โดยนิยาม Extension ใน profile หลังจากนั้นอ้างอิง Extension ใน resource instance ดังนี้

<name>
<use value="official"/>
<given value="Östlund">
<extension url="http://hl7.org/fhir/StructureDefinition/iso21090-EN-qualifier" >
<valueCode value="MID"/>
</extension>
</given>
</name>

(รายละเอียดดูได้ที่ https://www.hl7.org/fhir/extensibility-examples.html#name-parts)

It is possible for an extension to change the meaning of an element within a resource, e.g. to quantify or negate its primary meaning. — HL7

Next: Datatypes

--

--