該儲存庫包含 Cerner 實作 HL7 ® FHIR ®標準的面向公眾的 API 文檔,也稱為 Cerner 的 Ignite API。
可以在 https://fhir.cerner.com/ 查看部署的文件。
錯誤報告或文件不清楚的區域的註釋作為存儲庫問題受到歡迎。
使用捆綁器安裝相依性。
$ bundle install
使用 nanoc 編譯該網站。
$ bundle exec nanoc
使用 nanoc 啟動本機 Web 伺服器。
$ bundle exec nanoc view
導覽至 http://localhost:3000/ 查看該網站。對網站進行變更時,請重複最後兩個步驟以重新編譯並查看新內容。
我們在一些 Markdown 文件的頂部添加了屬性來分配佈局。這些通常僅適用於不是實際 API 文件的頁面(我們的編譯規則在回退到 API 佈局之前使用該佈局屬性)。
佈局本身在佈局目錄中定義。如上所述,某些佈局(例如 API 或 FAQ 佈局)用作頁面範本。其他版面配置(如資源類別版面或頁首/頁尾版面)用於包含其他頁面中的內容。
有一些預處理規則使用資料夾匹配將版本和解決方案屬性添加到 API 的所有 Markdown 檔案。要完成這項工作,您唯一需要做的就是將資源文件放在 /[solution]/[version]/ 資料夾路徑中。
版本和解決方案屬性目前用於調整 API 文件的 CSS 類別、頁面連結和導覽工具列/側邊欄。
建立和更新操作通常需要 JSON 主體,透過 Markdown 手動記錄可能很乏味。為了簡化此過程並提高一致性,我們新增了definition_table
幫助程式來從 yaml 內容檔案產生表。
definition_table
幫助器需要 3 個參數:內容、操作和版本。
content
指示要載入哪個內容檔案。version
表示內容檔案的版本。action
指示內容檔案中定義的哪些操作特定變體要反映在產生的表中。通常該操作是:create 或:update。可用的操作在內容文件本身中定義。生成字段表是透過在任何需要該表的文檔文件中透過 ERB 呼叫來呼叫definition_table
表方法來完成的。
例如,可以使用下列指令產生 DSTU2 版本的 DocumentReference Create:
<%= definition_table(:document_reference, :create, :dstu2) %>
而其他版本的過敏不耐受更新可以使用以下方法產生(假設有適當的定義):
<%= 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
幫助程式可用於從與definition_table
相同的 yaml 內容檔案產生術語綁定表。
terminolgy_table
幫助程式需要 2 個參數:內容和版本。
content
指示要載入哪個內容檔案。version
表示內容檔案的版本。產生術語表是透過在任何需要該表的文檔文件中透過 ERB 呼叫來呼叫terminology_table
方法來完成的。
例如,可以使用以下指令產生 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
產生的 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
值覆蓋。
Type 表格單元格將根據lib/resources/
中定義的 URL 鍵值對產生連結。在type
欄位中找到的任何單字都將替換為指定的 URL。
description
和note
欄位也支援透過使用 `` 和[]
標籤進行連結。如果可能的話, `` 標籤中包含的單字將根據types.yaml
檔案進行鏈接,如果沒有,則僅格式化為標籤。
[]
中的單字將被假定為對同一表中其他欄位的引用。
一般來說,最好不要在type
欄位中使用``標籤,儘管這是可能的。可能存在衝突,從而導致重複替換和意外結果。