在文档的查询部分http://www.hl7.org/implement/standards/fhir/query.htm中,搜索请求的定义如下
GET .../[resourcetype]/(?parameters)
然后我们找到(没有/之前的?)
GET .../patient?_id=23
我们也找到了搜索关键字
GET [baseurl]/diagnosticreport/search?subject.name="peter"
我向格雷厄姆的测试服务器提出了3个请求
http://hl7connect.healthintersections.com.au/svc/fhir/practitioner/?given=Henry
http://hl7connect.healthintersections.com.au/svc/fhir/practitioner?given=Henry
http://hl7connect.healthintersections.com.au/svc/fhir/practitioner/search?given=Henry
一切顺利。 All给出了相同的href(用于链接)表单(使用搜索关键字)
<link href="http://hl7connect.healthintersections.com.au/svc/fhir/practitioner/search?_format=text/xml+fhir&search-id=c7d9338a-b64a-41db-875d-d3c68a12c6&given=Henry&search-sort=_id" rel="self" xmlns="http://www.w3.org/2005/Atom" />
我向Ewout的测试服务器/
提出了这3个请求http://fhir.furore.com/fhir/practitioner/search?given=Henry
http://fhir.furore.com/fhir/practitioner?given=Henry
http://fhir.furore.com/fhir/practitioner/?given=Henry
前两个请求有效,并返回相同的链接
<link rel="self" href="http://fhir.furore.com/fhir/practitioner/search?given=Henry" />
第三次失败:资源/?param。
那么好的语法是什么? 他们都没事吧?
答案 0 :(得分:1)
这很可能是规范中的一个错误。尾部斜杠不应该在规范中,并且Ewout的服务器没有错。我在选票评论中注意到这是一个问题
我不确定我的服务器是不是错了 - 我认为没有理由禁止那里的斜线,但这肯定不是意图。可能是我的错误从我的实现中复制和粘贴
答案 1 :(得分:1)
“/ search”是默认命令,因此省略它会得到相同的结果。因此,Ewout服务器接受的两个选项都被认为是正确的。
答案 2 :(得分:1)
鉴于我们要修复搜索规范,我不会尝试支持第三种语法。此外,我的服务器正在使用.NET WCF REST框架的默认行为,试图强制其他语法也将迫使其他.NET WCF REST开发人员采取额外的步骤。如果可能的话,我想尽量避免!