【问题标题】:removing an extension from a FHIR Basic object从 FHIR 基本对象中删除扩展
【发布时间】:2021-07-08 23:17:24
【问题描述】:

我正在使用 Java。

我正在为我刚刚编写的 FHIR 代码编写测试。我想从现有的 Basic 对象中删除扩展。我正在从文件中读取该对象,因此我可以创建另一个文件而无需扩展名。但是Extensibility 页面上的 FHIR 规范非常有帮助地指出 "If a system modifies a resource it SHOULD remove any extensions that it does not understand from the modified element and its descendants, because it cannot know whether the modifications it has made might invalidate the value of the unknown extension" 他们只是没有就如何做到这一点提供任何建议,而且我在探索 Basic 对象时还没有找到一种方法。

【问题讨论】:

  • FHIR 对象只是 POJO,对吧?因此,删除它们应该像遍历扩展一样简单,如果它们未被识别,则将它们从数组中删除。我错过了什么吗?
  • 谢谢@seesharper!我想我昨晚发布问题时很累!

标签: java hl7-fhir


【解决方案1】:

回答我自己的问题:

import java.util.List;
import org.hl7.fhir.r4.model.Extension;
import org.hl7.fhir.r4.model.Basic;

List<Extension> extensions = basicObj.getExtension();
extensions.forEach(e -> e.removeExtension());

上面确实删除了 basicObj.extensions 数组中的所有扩展。然而,它也产生了我没想到的效果(因为我对 FHIR 还是很陌生):所有从上面删除的扩展中继承下来的扩展都被保留并添加到 basicObj.extensions 数组中。我想这是记录在案的行为,我只是还没有越过那条线......

【讨论】:

    猜你喜欢
    • 2019-09-09
    • 1970-01-01
    • 2019-02-25
    • 2017-01-18
    • 2013-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多