该存储库包含 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
字段中使用``标签,尽管这是可能的。可能存在冲突,从而导致重复替换和意外结果。