简体   繁体   中英

How do you get the property value from a FHIR property using FhirClient

I am using the following code to call the NHS Retrieve Reference Data method

var result = await fhirClient.ReadAsync<CodeSystem>(url);

which returns the following Json (this is a snippet of the full json)

concept": [
{
  "code": "BOOKED_CLINICAL_NEED",
  "display": "Booked more urgently due to clinical need",
  "property": [
    {
      "code": "effectiveFrom",
      "valueDateTime": "2019-07-23T17:09:56.000Z"
    },
    {
      "code": "commentIsMandatory",
      "valueBoolean": true
    },
    {
      "code": "canCancelAppointment",
      "valueBoolean": false
    }
  ]
}

I have used the GetExtensionValue method for other calls when the data is within an extension but I can't find a similar method for properties.

Is there a simple method or do I need to just cast into the required type manually?

Thanks in advance

There is no convenience method for this. However, the properties per concept are a list, so you could for example iterate over the concepts and select the properties with boolean values using regular list methods:

foreach (var c in myCodeSystem.Concept)
{
    var booleanProperties = c.Property.Where(p => (p.Value.TypeName == "boolean"));
    // do something with these properties
}

or find all concepts that have a boolean property:

var conceptsWithDateTimeProperties = myCodeSystem.Concept.Where(c => c.Property.Exists(p => (p.Value.TypeName == "dateTime")));

Of course you can make your selections as specific as you need.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM