首页 > 解决方案 > 从 FHIR 基本对象中删除扩展

问题描述

我在 Java 中工作。

我正在为我刚刚编写的 FHIR 代码编写测试。我想从现有的 Basic 对象中删除扩展名。我正在从文件中读取该对象,因此我可以创建另一个文件而无需扩展名。但是可扩展性页面上的 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 对象时还没有找到一种方法来做到这一点。

标签: javahl7-fhir

解决方案


回答我自己的问题:

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 数组中。我想这是记录在案的行为,我只是还没有越过那条线......


推荐阅读