我使用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
}