如何推断 FHIR"选择"属性的正确数据类型



我使用Fire.ly.NET SDK将FHIR JSON解析为POCO,然后将特定信息发送到下游进程。

作为其中的一部分,我需要读取变量的FHIRchoice属性,该属性基本上可以是许多不同的类型。Fire.ly文档提供了有关如何设置其中一个属性的信息,但不能读取这些属性。

我已经做了这样的事情,但我不确定这是否会起作用,因为我正在分析的数据没有设置以下字段:

var deceasedDateTime = patient.Deceased as FhirDateTime;
var deceasedBool = patient.Deceased as FhirBoolean;

有人知道解析这些属性的正确方法是什么吗?

如果进行模式匹配,效果会更好:


if(patient.Deceased is FhirDateTime fdt)
{
// do things with fdt
} 
else if(patient.Deceased is FhirBoolean fb)
{
// etc.
|


var x = patient.Deceased switch
{
FhirDateTime dft =>  something,
FhirBoolean => something else,

};

回答了我自己的问题。

choice属性设置变量后,只需根据期望值对其进行键入检查即可。

例如:

var deceasedType = patient.Deceased?.GetType();
if (deceasedType != null && deceasedType == typeof(FhirDateTime))
{
// foo
}
else if (deceasedType != null && deceasedType == typeof(FhirBoolean))
{
// bar
}

最新更新