遍历分页 fhir 响应
Iterating over a paged fhir response
我 运行 对 hapi fhir 数据库进行了查询,该数据库向我返回了分页结果。我在 java 中使用 hapi base 来实际进行搜索,根据此处的文档:http://hapifhir.io/doc_rest_client.html
Bundle bundle = client.search().forResource(Basic.class).returnBundle(ca.uhn.fhir.model.dstu2.resource.Bundle.class).execute();
do {
for (Entry entry: bundle.getEntry())
System.out.println(entry.getFullUrl());
if (bundle.getLink(Bundle.LINK_NEXT) != null)
bundle = client.loadPage().next(bundle).execute();
else
bundle = null;
}
while (bundle != null);
代码 运行 获取第一个包,并按预期打印出 url,但是当它尝试执行下一个包时,我得到一个 ConnectionException 'Connection refused: connect'。
服务器似乎仍然有响应,但是我可以重新运行我的程序并返回完全相同的结果。
知道为什么连接会被拒绝吗?当我尝试从邮递员手动 运行 它时,我遇到了类似的问题。
你所做的看起来确实是正确的。如果您手动执行搜索(例如,使用浏览器或邮递员或其他任何方式),下一个 link 会是什么样子?如果您也直接在浏览器中使用 link 是否有效?
例如,如果我 运行 我机器上的本地 CLI 并执行搜索,我会在响应中看到以下内容:
"link": [
{
"relation": "self",
"url": "http://localhost:8080/baseDstu3/_history"
},
{
"relation": "next",
"url": "http://localhost:8080/baseDstu3?_getpages=d8454866-624d-4bb3-b7a0-0858e4870e7e&_getpagesoffset=10&_count=10&_pretty=true&_bundletype=history"
}
],
如果我将下一个 link (http://localhost:8080/baseDstu3?_getpages=d8454866-624d-4bb3-b7a0-0858e4870e7e&_getpagesoffset=10&_count=10&_pretty=true&_bundletype=history
) 插入浏览器,我将获得下一页。
你能试试看效果如何吗?
以防万一有人无意中发现了这一点。我正在进行某种重定向(由我的团队的另一名成员设置)。基本上我的基础 url 是 localhost:8080,但下一个地址返回为 localhost:1080(我不完全理解为什么)。
他更改了服务器中的配置以使其不重定向。
我 运行 对 hapi fhir 数据库进行了查询,该数据库向我返回了分页结果。我在 java 中使用 hapi base 来实际进行搜索,根据此处的文档:http://hapifhir.io/doc_rest_client.html
Bundle bundle = client.search().forResource(Basic.class).returnBundle(ca.uhn.fhir.model.dstu2.resource.Bundle.class).execute();
do {
for (Entry entry: bundle.getEntry())
System.out.println(entry.getFullUrl());
if (bundle.getLink(Bundle.LINK_NEXT) != null)
bundle = client.loadPage().next(bundle).execute();
else
bundle = null;
}
while (bundle != null);
代码 运行 获取第一个包,并按预期打印出 url,但是当它尝试执行下一个包时,我得到一个 ConnectionException 'Connection refused: connect'。
服务器似乎仍然有响应,但是我可以重新运行我的程序并返回完全相同的结果。
知道为什么连接会被拒绝吗?当我尝试从邮递员手动 运行 它时,我遇到了类似的问题。
你所做的看起来确实是正确的。如果您手动执行搜索(例如,使用浏览器或邮递员或其他任何方式),下一个 link 会是什么样子?如果您也直接在浏览器中使用 link 是否有效?
例如,如果我 运行 我机器上的本地 CLI 并执行搜索,我会在响应中看到以下内容:
"link": [
{
"relation": "self",
"url": "http://localhost:8080/baseDstu3/_history"
},
{
"relation": "next",
"url": "http://localhost:8080/baseDstu3?_getpages=d8454866-624d-4bb3-b7a0-0858e4870e7e&_getpagesoffset=10&_count=10&_pretty=true&_bundletype=history"
}
],
如果我将下一个 link (http://localhost:8080/baseDstu3?_getpages=d8454866-624d-4bb3-b7a0-0858e4870e7e&_getpagesoffset=10&_count=10&_pretty=true&_bundletype=history
) 插入浏览器,我将获得下一页。
你能试试看效果如何吗?
以防万一有人无意中发现了这一点。我正在进行某种重定向(由我的团队的另一名成员设置)。基本上我的基础 url 是 localhost:8080,但下一个地址返回为 localhost:1080(我不完全理解为什么)。
他更改了服务器中的配置以使其不重定向。