HL7中国FHIR Connectathon测试实施指南
2024.5.5 - release
本指南适用于HL7中国的FHIR Connectathon测试。
该操作是为了从答卷中提取数据所设计的提取操作定义。
从业务需求来说,表单填报完成后,需要对答卷中问题答案进行汇总、统计、分析。
本操作就是将问卷中被标记为“提取”的项目进行资源转换,转换为更利于统计的观察资源(Observation)。
URL: [base]/QuestionnaireResponse/[id]/$extract
Parameters
Use | Name | Scope | Cardinality | Type | Binding | Documentation |
OUT | return | 0..1 | Resource | 提取到的资源. 可能是一个独立的资源,也可以是一个含有多个资源的Bundle资源(transaction)。 | ||
OUT | issues | 0..1 | OperationOutcome | 出现错误时返回的异常信息。 |
通过使用POST
方法来发起从答卷中提取观察数据的能力:
POST http://[ip]:[port]/[form]/QuestionnaireResponse/[id]/$extract
[other headers]
无消息体。
如果在问卷中标记为提取的项的数量大于1,则应返回包含多个Observation
的Bundle
资源,如果数量仅有1个,则直接返回Observation
资源即可。
如下示例中的观察数据的形式并不是固定这样的,仅是示例而已。要根据你的业务需要,确定需要哪些元素。
提取项数量大于1:
HTTP/1.1 200 OK
[other headers]
<?xml version="1.0" encoding="UTF-8"?>
<Bundle xmlns="http://hl7.org/fhir">
<type value="collection"/>
<total value="2"/>
<entry>
<fullUrl value="urn:uuid:2866af9c-137d-4458-a8a9-eeeec0ce5583"/>
<resource>
<Observation>
<status value="final"/>
<code>
<text value="item-04"/>
</code>
<subject>
<identifier>
<system value="urn:ietf:rfc:3986"/>
<value value="urn::uuid::123456765432345678765434"/>
</identifier>
</subject>
<issued value="2013-04-03T15:30:10+01:00"/>
<valueInteger value="2"/>
</Observation>
</resource>
</entry>
<entry>
<fullUrl value="urn:uuid:2866af9c-137d-4458-a8a9-eeeec0ce5584"/>
<resource>
<Observation>
<status value="final"/>
<code>
<text value="item-05"/>
</code>
<subject>
<identifier>
<system value="urn:ietf:rfc:3986"/>
<value value="urn::uuid::123456765432345678765434"/>
</identifier>
</subject>
<issued value="2013-04-03T15:30:10+01:00"/>
<valueInteger value="1"/>
</Observation>
</resource>
</entry>
</Bundle>
提取项数量等于1:
HTTP/1.1 200 OK
[other headers]
<?xml version="1.0" encoding="UTF-8"?>
<Observation xmlns="http://hl7.org/fhir">
<status value="final"/>
<code>
<text value="item-04"/>
</code>
<subject>
<identifier>
<system value="urn:ietf:rfc:3986"/>
<value value="urn::uuid::123456765432345678765434"/>
</identifier>
</subject>
<issued value="2013-04-03T15:30:10+01:00"/>
<valueInteger value="2"/>
</Observation>
如果在提取过程中发生错误,则应抛出异常:
HTTP/1.1 500 Internal Server Error
[other headers]
<?xml version="1.0" encoding="UTF-8"?>
<OperationOutcome xmlns="http://hl7.org/fhir">
<id value="allok"/>
<issue>
<severity value="error"/>
<code value="processing"/>
<details>
<coding>
<system value="http://hl7.org.cn/fhir/CodeSystem/operationoutcome-form-code"/>
<code value="FormError"/>
<display value="其它的、不明确的处理错误"/>
</coding>
</details>
<diagnostics value="在提取过程中出现XX问题"/>
</issue>
</OperationOutcome>