有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java HAPI FHIR检索患者

我对HAPI FHIR客户端非常陌生,一直在无休止地浏览教程和文档,试图帮助我开发我正在尝试开发的程序,但现在在查询服务器以搜索同一医生正在治疗的患者列表时,我陷入了困境。换句话说,我希望用户输入医生ID号,系统返回患者列表及其详细信息。在输入从业者的ID号时,我能够查询服务器以获得所有的遭遇,这些ID号都放在一个包中,但我不知道从那里去哪里。我已经放置了用于获取捆绑包的代码行,并且可以验证它是否有效,因为在计算捆绑包中的资源数量时,我得到了正确的数量。pracID是用户输入的整数

Bundle response = client.search().forResource(Encounter.class).where(Encounter.PRACTITIONER.hasId(Integer.toString(pracID))).returnBundle(Bundle.class).execute();

我还在IntelliJ上用Java编写代码,使用R4版本的上下文客户端。我将非常感谢任何帮助。提前谢谢


共 (1) 个答案

  1. # 1 楼答案

    我认为通往罗马的道路很多,但我的第一个简单方法是:可以尝试使用搜索参数_include递归地查找患者数据。此搜索参数将搜索所有遭遇对象以查找相应的主题:

    Bundle response = 
       client.search()
       .forResource(Encounter.class)
       .where(Encounter.PRACTITIONER.hasId(Integer.toString(pracID)))
       .include(Patient.INCLUDE_ALL.asRecursive())
       .returnBundle(Bundle.class).execute(); 
    

    如果链接可用,那么捆绑包现在不仅应该包含遭遇对象,还应该包含患者对象,可以按如下方式检索以进行进一步处理:

    List<Patient> listPatients = new ArrayList<Patient>();
    response.getEntry().forEach(entry -> { 
          if (entry.getResource() instanceof Patient) {
            listPatients.add((Patient) entry.getResource());
          }
    });