Я использую библиотеку Hl7.Fhir.R4 в своем проекте, которая представляет собой API Wrapper (в ASP. NET Core 2.2) вокруг Azure API для FHIR . В модели представления я объявил элемент FHIR ( универсальный тип данных FHIR ) в качестве свойства. Пример:
public class MyPatient
{
public string Name { get; set;}
public Hl7.Fhir.Model.CodeableConcept MaritalStatus { get; set;} //This is
//defined in the library
}
Теперь проблема : «MaritalStatus» не анализируется с json на объект c# (, определенный в библиотеке ), правильно (т.е. это просто 'не нуль'). Также не возникает никаких исключений.
Объясняется с подробностями: Это JSON Я получаю от внешнего интерфейса:
{
"name": "TheName",
"maritalStatus": {
"coding": [
{
"system": "terminology.hl7.org/CodeSystem/v3-MaritalStatus",
"code": "U",
"display": "unmarried"
}
],
"text": "Unmarried"
}
}
Это моя модель (C# класс) против JSON, которую я получаю от внешнего интерфейса:
public class MyPatient
{
public string Name { get; set;}
public Hl7.Fhir.Model.CodeableConcept MaritalStatus { get; set;}
}
Это действие контроллера (на уровне оболочки - мой проект), которое развлекает запрос:
[HttpPut("{id}")]
[Consumes("application/json")]
[Produces("application/json")]
public async Task<ActionResult> Update([Required][FromRoute] string id,[Required][FromBody] MyPatient myPatient)
{
if (ModelState.IsValid)
{
Hl7.Fhir.Model.Patient patient = await _fhirClient.ReadAsync<Patient>(location: "Patient/" + id);
patient.MaritalStatus = myPatient.MaritalStatus;
patient.Name[0].Text = myPatient.Name;
patient = await _fhirClient.UpdateAsync<Patient>(patient);
return Ok();
}//ends If ModelState.IsValid
return BadRequest();
}//ends Update