/// <summary> /// Deserialize JSON into a FHIR RiskAssessment#Prediction /// </summary> public static void DeserializeJson(this RiskAssessment.PredictionComponent current, ref Utf8JsonReader reader, JsonSerializerOptions options) { string propertyName; while (reader.Read()) { if (reader.TokenType == JsonTokenType.EndObject) { return; } if (reader.TokenType == JsonTokenType.PropertyName) { propertyName = reader.GetString(); if (Hl7.Fhir.Serialization.FhirSerializerOptions.Debug) { Console.WriteLine($"RiskAssessment.PredictionComponent >>> RiskAssessment#Prediction.{propertyName}, depth: {reader.CurrentDepth}, pos: {reader.BytesConsumed}"); } reader.Read(); current.DeserializeJsonProperty(ref reader, options, propertyName); } } throw new JsonException($"RiskAssessment.PredictionComponent: invalid state! depth: {reader.CurrentDepth}, pos: {reader.BytesConsumed}"); }
/// <summary> /// Deserialize JSON into a FHIR RiskAssessment#Prediction /// </summary> public static void DeserializeJsonProperty(this RiskAssessment.PredictionComponent current, ref Utf8JsonReader reader, JsonSerializerOptions options, string propertyName) { switch (propertyName) { case "outcome": current.Outcome = new Hl7.Fhir.Model.CodeableConcept(); ((Hl7.Fhir.Model.CodeableConcept)current.Outcome).DeserializeJson(ref reader, options); break; case "probabilityDecimal": if (reader.TokenType == JsonTokenType.Null) { current.Probability = new FhirDecimal(); reader.Skip(); } else { current.Probability = new FhirDecimal(reader.GetDecimal()); } break; case "_probabilityDecimal": if (current.Probability == null) { current.Probability = new FhirDecimal(); } ((Hl7.Fhir.Model.Element)current.Probability).DeserializeJson(ref reader, options); break; case "probabilityRange": current.Probability = new Hl7.Fhir.Model.Range(); ((Hl7.Fhir.Model.Range)current.Probability).DeserializeJson(ref reader, options); break; case "qualitativeRisk": current.QualitativeRisk = new Hl7.Fhir.Model.CodeableConcept(); ((Hl7.Fhir.Model.CodeableConcept)current.QualitativeRisk).DeserializeJson(ref reader, options); break; case "relativeRisk": if (reader.TokenType == JsonTokenType.Null) { current.RelativeRiskElement = new FhirDecimal(); reader.Skip(); } else { current.RelativeRiskElement = new FhirDecimal(reader.GetDecimal()); } break; case "_relativeRisk": if (current.RelativeRiskElement == null) { current.RelativeRiskElement = new FhirDecimal(); } ((Hl7.Fhir.Model.Element)current.RelativeRiskElement).DeserializeJson(ref reader, options); break; case "whenPeriod": current.When = new Hl7.Fhir.Model.Period(); ((Hl7.Fhir.Model.Period)current.When).DeserializeJson(ref reader, options); break; case "whenRange": current.When = new Hl7.Fhir.Model.Range(); ((Hl7.Fhir.Model.Range)current.When).DeserializeJson(ref reader, options); break; case "rationale": if (reader.TokenType == JsonTokenType.Null) { current.RationaleElement = new FhirString(); reader.Skip(); } else { current.RationaleElement = new FhirString(reader.GetString()); } break; case "_rationale": if (current.RationaleElement == null) { current.RationaleElement = new FhirString(); } ((Hl7.Fhir.Model.Element)current.RationaleElement).DeserializeJson(ref reader, options); break; // Complex: prediction, Export: PredictionComponent, Base: BackboneElement default: ((Hl7.Fhir.Model.BackboneElement)current).DeserializeJsonProperty(ref reader, options, propertyName); break; } }
/// <summary> /// Serialize a FHIR RiskAssessment#Prediction into JSON /// </summary> public static void SerializeJson(this RiskAssessment.PredictionComponent current, Utf8JsonWriter writer, JsonSerializerOptions options, bool includeStartObject = true) { if (includeStartObject) { writer.WriteStartObject(); } // Component: RiskAssessment#Prediction, Export: PredictionComponent, Base: BackboneElement (BackboneElement) ((Hl7.Fhir.Model.BackboneElement)current).SerializeJson(writer, options, false); if (current.Outcome != null) { writer.WritePropertyName("outcome"); current.Outcome.SerializeJson(writer, options); } if (current.Probability != null) { switch (current.Probability) { case FhirDecimal v_FhirDecimal: if (v_FhirDecimal != null) { if (v_FhirDecimal.Value != null) { writer.WriteNumber("probabilityDecimal", (decimal)v_FhirDecimal.Value); } if (v_FhirDecimal.HasExtensions() || (!string.IsNullOrEmpty(v_FhirDecimal.ElementId))) { JsonStreamUtilities.SerializeExtensionList(writer, options, "_probabilityDecimal", false, v_FhirDecimal.Extension, v_FhirDecimal.ElementId); } } break; case Range v_Range: writer.WritePropertyName("probabilityRange"); v_Range.SerializeJson(writer, options); break; } } if (current.QualitativeRisk != null) { writer.WritePropertyName("qualitativeRisk"); current.QualitativeRisk.SerializeJson(writer, options); } if (current.RelativeRiskElement != null) { if (current.RelativeRiskElement.Value != null) { writer.WriteNumber("relativeRisk", (decimal)current.RelativeRiskElement.Value); } if (current.RelativeRiskElement.HasExtensions() || (!string.IsNullOrEmpty(current.RelativeRiskElement.ElementId))) { JsonStreamUtilities.SerializeExtensionList(writer, options, "_relativeRisk", false, current.RelativeRiskElement.Extension, current.RelativeRiskElement.ElementId); } } if (current.When != null) { switch (current.When) { case Period v_Period: writer.WritePropertyName("whenPeriod"); v_Period.SerializeJson(writer, options); break; case Range v_Range: writer.WritePropertyName("whenRange"); v_Range.SerializeJson(writer, options); break; } } if (current.RationaleElement != null) { if (!string.IsNullOrEmpty(current.RationaleElement.Value)) { writer.WriteString("rationale", current.RationaleElement.Value); } if (current.RationaleElement.HasExtensions() || (!string.IsNullOrEmpty(current.RationaleElement.ElementId))) { JsonStreamUtilities.SerializeExtensionList(writer, options, "_rationale", false, current.RationaleElement.Extension, current.RationaleElement.ElementId); } } if (includeStartObject) { writer.WriteEndObject(); } }