HL7v2 到 FHIR 的转换默认 CodeSystem 规则不起作用
HL7v2 to FHIR conversion default CodeSystem rules not working
在 HL7v2 到 FHIR 的转换中 CodeSystem templates,它们的默认值,即 if-then-else 规则中的“else”部分,不起作用。
例如,对于 Resource/_Patient.liquid 模板中的 Patient.communication.language,它有以下行将语言代码映射到包含“代码”、“显示”和“系统”的字典".
{% include 'DataType/CWECodeableConcept' mapping: 'CodeSystem/Language', CWE: PID.15 -%}
在CodeSystem/_Language.liquid模板中,如果没有匹配的代码,则输出输入值。
{% else -%}
"code" : "{{ inCode }}",
"display" : "{{ inCode }}",
"system" : "",
{% endif -%}
我的案例有 PID.15="English" 并且没有匹配的代码。所以,我希望得到以下输出。
{
"code" : "English",
"display" : "English",
"system" : "",
}
发生的事情是根本没有输出。
我也尝试添加以下规则,但没有成功。
{% elsif inCode == 'English' -%}
"code" : "{{ inCode }}",
"display" : "{{ inCode }}",
"system" : "",
我看来 CodeSystem/_Language.liquid 不会进行更改,也不会处理具有“else”条件的不匹配代码。我在 Visual Studio 代码中使用“FHIR 转换器”扩展测试了更改。我该怎么做才能使 CodeSystem/_Language.liquid 中的“else”条件正常工作?
试试这个:
在 /CodeSystem/CodeSystem.json 文件中进行必要的更改,这应该对您有用。
另外,将 VS Code 扩展更新到最新版本。
"CodeSystem/Language": {
"A": {
"code": "A's code",
"display": "A's display",
"system": "A's system"
},
"__default__": {
"code": "English",
"display": "English",
"system": "English"
}
},
解释:
以下语句调用_DataType/CWECodeableConcept并将'CodeSystem/Language'传递给mapping参数,以及PID的值。 15 到 CWE 参数。
{% include 'DataType/CWECodeableConcept' mapping: 'CodeSystem/Language', CWE: PID.15 -%}
在 _CWECodeableConcept.liquid 内部,因为填充了 mapping,所以它执行 if 块,而不是 else 块。
{% if mapping -%}
"code":"{{ CWE.1.Value | get_property: mapping, 'code' }}",
"display":"{{ CWE.1.Value | get_property: mapping, 'display' }}",
"system":"{{ CWE.1.Value | get_property: mapping, 'system' }}",
"version":"{{ CWE.1.Value | get_property: mapping, 'version' }}",
{% else -%}
"code":"{{ CWE.1.Value }}",
"display":"{{ CWE.2.Value }}",
"system":"{{ CWE.3.Value }}",
"version":"{{ CWE.7.Value }}",
{% endif -%}
if块内部,get_property用于获取值对应的映射CodeSystem/Language的code、display、system、version在 CWE.(1|4|10).Value.
get_property 使用 /CodeSystem/CodeSystem.json 文件,而不是 CodeSystem 文件夹下的单个文件。
get_property 的行为已记录 here。但是,文档没有提到它使用的配置文件的名称。我们正在修复下一个版本中的文档。
为了加快周转速度,我们建议在 FHIR 转换器上提出问题 github repo。
在 HL7v2 到 FHIR 的转换中 CodeSystem templates,它们的默认值,即 if-then-else 规则中的“else”部分,不起作用。
例如,对于 Resource/_Patient.liquid 模板中的 Patient.communication.language,它有以下行将语言代码映射到包含“代码”、“显示”和“系统”的字典".
{% include 'DataType/CWECodeableConcept' mapping: 'CodeSystem/Language', CWE: PID.15 -%}
在CodeSystem/_Language.liquid模板中,如果没有匹配的代码,则输出输入值。
{% else -%}
"code" : "{{ inCode }}",
"display" : "{{ inCode }}",
"system" : "",
{% endif -%}
我的案例有 PID.15="English" 并且没有匹配的代码。所以,我希望得到以下输出。
{
"code" : "English",
"display" : "English",
"system" : "",
}
发生的事情是根本没有输出。
我也尝试添加以下规则,但没有成功。
{% elsif inCode == 'English' -%}
"code" : "{{ inCode }}",
"display" : "{{ inCode }}",
"system" : "",
我看来 CodeSystem/_Language.liquid 不会进行更改,也不会处理具有“else”条件的不匹配代码。我在 Visual Studio 代码中使用“FHIR 转换器”扩展测试了更改。我该怎么做才能使 CodeSystem/_Language.liquid 中的“else”条件正常工作?
试试这个:
在 /CodeSystem/CodeSystem.json 文件中进行必要的更改,这应该对您有用。
另外,将 VS Code 扩展更新到最新版本。
"CodeSystem/Language": {
"A": {
"code": "A's code",
"display": "A's display",
"system": "A's system"
},
"__default__": {
"code": "English",
"display": "English",
"system": "English"
}
},
解释:
以下语句调用_DataType/CWECodeableConcept并将'CodeSystem/Language'传递给mapping参数,以及PID的值。 15 到 CWE 参数。
{% include 'DataType/CWECodeableConcept' mapping: 'CodeSystem/Language', CWE: PID.15 -%}
在 _CWECodeableConcept.liquid 内部,因为填充了 mapping,所以它执行 if 块,而不是 else 块。
{% if mapping -%}
"code":"{{ CWE.1.Value | get_property: mapping, 'code' }}",
"display":"{{ CWE.1.Value | get_property: mapping, 'display' }}",
"system":"{{ CWE.1.Value | get_property: mapping, 'system' }}",
"version":"{{ CWE.1.Value | get_property: mapping, 'version' }}",
{% else -%}
"code":"{{ CWE.1.Value }}",
"display":"{{ CWE.2.Value }}",
"system":"{{ CWE.3.Value }}",
"version":"{{ CWE.7.Value }}",
{% endif -%}
if块内部,get_property用于获取值对应的映射CodeSystem/Language的code、display、system、version在 CWE.(1|4|10).Value.
get_property 使用 /CodeSystem/CodeSystem.json 文件,而不是 CodeSystem 文件夹下的单个文件。
get_property 的行为已记录 here。但是,文档没有提到它使用的配置文件的名称。我们正在修复下一个版本中的文档。
为了加快周转速度,我们建议在 FHIR 转换器上提出问题 github repo。