💡
原文英文,约900词,阅读约需4分钟。
📝
内容提要
这篇文章讨论了在FHIR规范中对JSON属性进行排序的问题。作者提供了两种方法来按照规范对资源属性进行排序,一种是将资源转换为XML再转换回JSON,另一种是只对外层属性进行排序。作者还介绍了一个方法来从IRIS for Health FHIR Repository中返回正确排序的资源。作者还分享了一些关于%Set()和%Remove()方法的经验教训。
🎯
关键要点
- 文章讨论了FHIR规范中JSON属性排序的问题。
- FHIR规范中属性有特定的顺序,JSON对象通常不遵循该顺序。
- 将FHIR资源转换为XML再转换回JSON是最彻底但较慢的排序方法。
- 深度排序方法比浅度排序方法慢40-50倍,但能正确排序所有层级的属性。
- 浅度排序方法只对外层属性进行排序,速度较快,仅需约0.04毫秒。
- 作者分享了在IRIS for Health FHIR Repository中返回正确排序资源的方法。
- 使用%Set()方法时,属性会在最后一个空位添加,导致顺序反转。
- 作者尝试使用%Clear()方法简化代码,但遇到未实现的错误。
❓
延伸问答
FHIR规范中JSON属性的排序有什么重要性?
FHIR规范中属性有特定的顺序,确保数据一致性和可读性。
如何将FHIR资源按照规范排序?
可以将FHIR资源转换为XML再转换回JSON,或者使用浅度排序方法只对外层属性进行排序。
深度排序和浅度排序的速度差异有多大?
深度排序方法比浅度排序方法慢40-50倍,深度排序约需1.5-2毫秒,而浅度排序仅需约0.04毫秒。
在IRIS for Health FHIR Repository中如何返回正确排序的资源?
可以通过设置modifyOriginalObject参数来返回正确排序的资源。
%Set()方法在排序中有什么问题?
%Set()方法会在最后一个空位添加属性,导致顺序反转。
使用%Clear()方法时遇到了什么问题?
使用%Clear()方法时出现了未实现的错误,无法简化代码。
🏷️
标签
➡️