พื้นที่เก็บข้อมูลนี้เป็นที่ตั้งของเอกสาร API ที่เปิดเผยต่อสาธารณะสำหรับการใช้งานมาตรฐาน HL7 ® FHIR ® ของ Cerner หรือที่เรียกว่า Ignite API ของ Cerner
สามารถดูเอกสารที่ปรับใช้ได้ที่ https://fhir.cerner.com/
รายงานข้อผิดพลาดหรือหมายเหตุในพื้นที่ที่เอกสารไม่ชัดเจนถือเป็นปัญหาของพื้นที่เก็บข้อมูล
ติดตั้งการพึ่งพาด้วย Bundler
$ bundle install
รวบรวมไซต์ด้วย nanoc
$ bundle exec nanoc
เริ่มต้นเว็บเซิร์ฟเวอร์ท้องถิ่นด้วย nanoc
$ bundle exec nanoc view
ไปที่ http://localhost:3000/ เพื่อดูไซต์ เมื่อทำการเปลี่ยนแปลงไซต์ ให้ทำซ้ำสองขั้นตอนสุดท้ายเพื่อคอมไพล์ใหม่และดูเนื้อหาใหม่
เราได้เพิ่มแอตทริบิวต์ที่ด้านบนของไฟล์มาร์กดาวน์บางไฟล์เพื่อกำหนดเค้าโครง โดยปกติสิ่งเหล่านี้จำเป็นสำหรับเพจที่ไม่ใช่เอกสาร API จริงเท่านั้น (กฎการคอมไพล์ของเราใช้แอตทริบิวต์เลย์เอาต์นั้นก่อนที่จะถอยกลับไปใช้เลย์เอาต์ API)
โครงร่างเองถูกกำหนดไว้ในไดเร็กทอรีโครงร่าง เค้าโครงบางอย่าง (เช่น เค้าโครง API หรือคำถามที่พบบ่อย) ถูกใช้เป็นเทมเพลตเพจตามที่กล่าวไว้ข้างต้น โครงร่างอื่นๆ (เช่น โครงร่างประเภททรัพยากร หรือโครงร่างส่วนหัว/ส่วนท้าย) ใช้เพื่อรวมเนื้อหาในหน้าอื่นๆ
มีกฎการประมวลผลล่วงหน้าที่ใช้การจับคู่โฟลเดอร์เพื่อเพิ่มเวอร์ชันและแอตทริบิวต์โซลูชันให้กับไฟล์มาร์กดาวน์ทั้งหมดสำหรับ API สิ่งเดียวที่คุณต้องทำเพื่อให้งานนี้สำเร็จคือใส่เอกสารประกอบทรัพยากรไว้ใน /[โซลูชัน]/[เวอร์ชัน]/ เส้นทางโฟลเดอร์
ปัจจุบันเวอร์ชันและแอตทริบิวต์โซลูชันถูกใช้เพื่อเฟล็กซ์คลาส CSS, ลิงก์เพจ และแถบเครื่องมือการนำทาง/แถบด้านข้างสำหรับเอกสารประกอบ API
โดยทั่วไปการดำเนินการสร้างและอัปเดตต้องใช้เนื้อหา JSON ซึ่งอาจน่าเบื่อในการจัดทำเอกสารด้วยตนเองผ่านการมาร์กดาวน์ เพื่อลดความซับซ้อนของกระบวนการนี้และเพื่อปรับปรุงความสอดคล้อง เราได้เพิ่มตัวช่วย definition_table
เพื่อสร้างตารางจากไฟล์เนื้อหา yaml
ตัวช่วย definition_table
ต้องใช้พารามิเตอร์ 3 ตัว ได้แก่ เนื้อหา การดำเนินการ และเวอร์ชัน
content
ระบุว่าไฟล์เนื้อหาใดที่จะโหลดversion
ระบุเวอร์ชันของไฟล์เนื้อหาaction
บ่งชี้ว่ารูปแบบเฉพาะของการกระทำใดที่กำหนดไว้ในไฟล์เนื้อหาเพื่อสะท้อนให้เห็นในตารางที่สร้างขึ้น โดยทั่วไปการดำเนินการจะเป็น :create หรือ :update การดำเนินการที่มีอยู่ถูกกำหนดไว้ในไฟล์เนื้อหาเอง การสร้างตารางฟิลด์ทำได้โดยการเรียกใช้เมธอด definition_table
ผ่านการเรียก ERB ในทุกไฟล์เอกสารที่ต้องการตาราง
ตัวอย่างเช่น เวอร์ชัน DSTU2 ของ DocumentReference Create สามารถสร้างได้โดยใช้:
<%= definition_table(:document_reference, :create, :dstu2) %>
ในขณะที่เวอร์ชันอื่นๆ ของ AllergyIntolerance Update สามารถสร้างขึ้นได้ (สมมติว่ามีคำจำกัดความที่เหมาะสม) โดยใช้:
<%= definition_table(:allergy_intolerance, :update, :r4) %>
ในความเป็นจริง พารามิเตอร์ version
อ้างอิงถึงโฟลเดอร์ย่อยใน lib/resources
ที่เก็บไฟล์เนื้อหาสำหรับเวอร์ชันนั้นไว้ ดังนั้น definition_table(:document_reference, :create, :dstu2)
จึงอ้างอิงถึง lib/resources/dstu2/document_reference.yaml
การเพิ่มเวอร์ชันใหม่หรือไฟล์เนื้อหาใหม่เป็นเพียงเรื่องของการสร้างโฟลเดอร์และไฟล์เนื้อหาที่มีชื่ออย่างเหมาะสม
definition_table
อ่านฟิลด์เหล่านี้จากคำจำกัดความ yaml เนื้อหาของทรัพยากร:
ตัวช่วย terminolgy_table
พร้อมใช้งานเพื่อสร้างตารางการเชื่อมโยงคำศัพท์จากไฟล์เนื้อหา yaml เดียวกันกับ definition_table
ตัวช่วย terminolgy_table
ต้องใช้พารามิเตอร์ 2 ตัว: เนื้อหาและเวอร์ชัน
content
ระบุว่าไฟล์เนื้อหาใดที่จะโหลดversion
ระบุเวอร์ชันของไฟล์เนื้อหา การสร้างตารางคำศัพท์ทำได้โดยการเรียกใช้เมธอด terminology_table
ผ่านการเรียก ERB ในไฟล์เอกสารใดก็ตามที่ต้องการตาราง
ตัวอย่างเช่น เวอร์ชัน DSTU2 ของ AllergyIntolerance สามารถสร้างได้โดยใช้:
<%= terminology_table(:allergy_intolerance, :dstu2) %>
การประมวลผลพารามิเตอร์ version
ได้รับการจัดการเหมือนกับ definition_table
terminology_table
อ่านฟิลด์เหล่านี้จากคำจำกัดความ yaml เนื้อหาของทรัพยากร:
เนื้อหาถูกกำหนดไว้ในไฟล์ YAML และฟิลด์ส่วนใหญ่เป็นทางเลือก หากไม่ได้ระบุไว้ เซลล์ตารางผลลัพธ์จะว่างเปล่า
definition_table
จะสร้างลิงก์ที่ซ้อนกันสำหรับแต่ละฟิลด์ที่ขึ้นต้นด้วย URL นี้field_name_base_url
lib/resources//types.yaml
ฟิลด์นี้จะเชื่อมโยงกับทรัพยากรที่ระบุเพื่อรักษาการจัดรูปแบบ
fields
นี้field_name_base_url
หากกำหนดไว้ใช้กฎการจัดรูปแบบ YAML มาตรฐาน
นอกเหนือจากฟิลด์ด้านบน แต่ละฟิลด์ยังสามารถมีฟิลด์ action
ที่ระบุว่าฟิลด์นั้นใช้กับการดำเนินการใดหรือการดำเนินการใด เมื่อกำหนดแล้ว ฟิลด์จะถูกรวมไว้เมื่อสร้างตารางด้วยการดำเนินการที่ระบุเท่านั้น รองรับการดำเนินการหลายรายการเช่นกัน และสามารถกำหนดเป็นรายการได้:
Make the field apply to a single action
- name: subject
...
action: create
Make the field apply to multiple actions
- name: subject
...
action:
- create
- update
ในทำนองเดียวกัน ค่าของฟิลด์สามารถยืดหยุ่นต่อการดำเนินการได้เช่นกัน:
Alter the required and note values for update and create
- name: id
required:
- update: 'Yes'
- create: 'No'
type: id
description: The logical id of the resource to update.
example: |
{
"id": "123412"
}
note:
- update: The id value must match the AllergyIntolerance/ value.
- create: The id field must not be set when performing an update operation.
ชื่อของการดำเนินการไม่ได้จำกัดอยู่เพียงการสร้างและอัปเดต แต่สามารถใช้การดำเนินการได้ครั้งละหนึ่งรายการเท่านั้นในการสร้างตารางฟิลด์
การลิงก์ได้รับการสนับสนุนในรูปแบบต่างๆ
ชื่อฟิลด์จะถูกเชื่อมโยงโดยอัตโนมัติตาม base_field_name_url
เว้นแต่จะถูกแทนที่ด้วยค่า url
ของฟิลด์
เซลล์ตารางประเภทจะสร้างลิงก์ตามคู่คีย์-ค่า URL ที่กำหนดไว้ใน lib/resources/
คำใดๆ ที่พบในฟิลด์ type
จะถูกแทนที่ด้วย URL ที่ระบุ
ช่อง description
และ note
ยังรองรับการเชื่อมโยงผ่านการใช้แท็ก `` และ []
คำที่อยู่ในแท็ก `` จะถูกลิงก์ตามไฟล์ types.yaml
หากเป็นไปได้ หรือจัดรูปแบบเป็นแท็ก หากไม่ใช่ คำที่อยู่ใน
[]
จะถือว่าเป็นการอ้างอิงไปยังช่องอื่นๆ ในตารางเดียวกัน
โดยทั่วไป เป็นการดีที่สุดที่จะไม่ใช้แท็ก `` ในช่อง type
แม้ว่าจะเป็นไปได้ก็ตาม อาจมีข้อขัดแย้งซึ่งอาจส่งผลให้เกิดการแทนที่ซ้ำและผลลัพธ์ที่ไม่ได้ตั้งใจ