Esempio n. 1
0
        /// <summary>
        /// Serialize to a JSON object
        /// </summary>
        public new void SerializeJson(Utf8JsonWriter writer, JsonSerializerOptions options, bool includeStartObject = true)
        {
            if (includeStartObject)
            {
                writer.WriteStartObject();
            }
            ((fhirCsR4.Models.BackboneElement) this).SerializeJson(writer, options, false);

            if (Quantity != null)
            {
                writer.WritePropertyName("quantity");
                Quantity.SerializeJson(writer, options);
            }

            if (SubstanceCodeableConcept != null)
            {
                writer.WritePropertyName("substanceCodeableConcept");
                SubstanceCodeableConcept.SerializeJson(writer, options);
            }

            if (SubstanceReference != null)
            {
                writer.WritePropertyName("substanceReference");
                SubstanceReference.SerializeJson(writer, options);
            }

            if (includeStartObject)
            {
                writer.WriteEndObject();
            }
        }
        /// <summary>
        /// Serialize to a JSON object
        /// </summary>
        public new void SerializeJson(Utf8JsonWriter writer, JsonSerializerOptions options, bool includeStartObject = true)
        {
            if (includeStartObject)
            {
                writer.WriteStartObject();
            }
            if (!string.IsNullOrEmpty(ResourceType))
            {
                writer.WriteString("resourceType", (string)ResourceType !);
            }


            ((fhirCsR4.Models.DomainResource) this).SerializeJson(writer, options, false);

            if ((Identifier != null) && (Identifier.Count != 0))
            {
                writer.WritePropertyName("identifier");
                writer.WriteStartArray();

                foreach (Identifier valIdentifier in Identifier)
                {
                    valIdentifier.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if ((PartOf != null) && (PartOf.Count != 0))
            {
                writer.WritePropertyName("partOf");
                writer.WriteStartArray();

                foreach (Reference valPartOf in PartOf)
                {
                    valPartOf.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if (!string.IsNullOrEmpty(Status))
            {
                writer.WriteString("status", (string)Status !);
            }

            if (_Status != null)
            {
                writer.WritePropertyName("_status");
                _Status.SerializeJson(writer, options);
            }

            if (StatusReasonCodeableConcept != null)
            {
                writer.WritePropertyName("statusReasonCodeableConcept");
                StatusReasonCodeableConcept.SerializeJson(writer, options);
            }

            if (StatusReasonReference != null)
            {
                writer.WritePropertyName("statusReasonReference");
                StatusReasonReference.SerializeJson(writer, options);
            }

            if (Category != null)
            {
                writer.WritePropertyName("category");
                Category.SerializeJson(writer, options);
            }

            if (MedicationCodeableConcept != null)
            {
                writer.WritePropertyName("medicationCodeableConcept");
                MedicationCodeableConcept.SerializeJson(writer, options);
            }

            if (MedicationReference != null)
            {
                writer.WritePropertyName("medicationReference");
                MedicationReference.SerializeJson(writer, options);
            }

            if (Subject != null)
            {
                writer.WritePropertyName("subject");
                Subject.SerializeJson(writer, options);
            }

            if (Context != null)
            {
                writer.WritePropertyName("context");
                Context.SerializeJson(writer, options);
            }

            if ((SupportingInformation != null) && (SupportingInformation.Count != 0))
            {
                writer.WritePropertyName("supportingInformation");
                writer.WriteStartArray();

                foreach (Reference valSupportingInformation in SupportingInformation)
                {
                    valSupportingInformation.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if ((Performer != null) && (Performer.Count != 0))
            {
                writer.WritePropertyName("performer");
                writer.WriteStartArray();

                foreach (MedicationDispensePerformer valPerformer in Performer)
                {
                    valPerformer.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if (Location != null)
            {
                writer.WritePropertyName("location");
                Location.SerializeJson(writer, options);
            }

            if ((AuthorizingPrescription != null) && (AuthorizingPrescription.Count != 0))
            {
                writer.WritePropertyName("authorizingPrescription");
                writer.WriteStartArray();

                foreach (Reference valAuthorizingPrescription in AuthorizingPrescription)
                {
                    valAuthorizingPrescription.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if (Type != null)
            {
                writer.WritePropertyName("type");
                Type.SerializeJson(writer, options);
            }

            if (Quantity != null)
            {
                writer.WritePropertyName("quantity");
                Quantity.SerializeJson(writer, options);
            }

            if (DaysSupply != null)
            {
                writer.WritePropertyName("daysSupply");
                DaysSupply.SerializeJson(writer, options);
            }

            if (!string.IsNullOrEmpty(WhenPrepared))
            {
                writer.WriteString("whenPrepared", (string)WhenPrepared !);
            }

            if (_WhenPrepared != null)
            {
                writer.WritePropertyName("_whenPrepared");
                _WhenPrepared.SerializeJson(writer, options);
            }

            if (!string.IsNullOrEmpty(WhenHandedOver))
            {
                writer.WriteString("whenHandedOver", (string)WhenHandedOver !);
            }

            if (_WhenHandedOver != null)
            {
                writer.WritePropertyName("_whenHandedOver");
                _WhenHandedOver.SerializeJson(writer, options);
            }

            if (Destination != null)
            {
                writer.WritePropertyName("destination");
                Destination.SerializeJson(writer, options);
            }

            if ((Receiver != null) && (Receiver.Count != 0))
            {
                writer.WritePropertyName("receiver");
                writer.WriteStartArray();

                foreach (Reference valReceiver in Receiver)
                {
                    valReceiver.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if ((Note != null) && (Note.Count != 0))
            {
                writer.WritePropertyName("note");
                writer.WriteStartArray();

                foreach (Annotation valNote in Note)
                {
                    valNote.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if ((DosageInstruction != null) && (DosageInstruction.Count != 0))
            {
                writer.WritePropertyName("dosageInstruction");
                writer.WriteStartArray();

                foreach (Dosage valDosageInstruction in DosageInstruction)
                {
                    valDosageInstruction.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if (Substitution != null)
            {
                writer.WritePropertyName("substitution");
                Substitution.SerializeJson(writer, options);
            }

            if ((DetectedIssue != null) && (DetectedIssue.Count != 0))
            {
                writer.WritePropertyName("detectedIssue");
                writer.WriteStartArray();

                foreach (Reference valDetectedIssue in DetectedIssue)
                {
                    valDetectedIssue.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if ((EventHistory != null) && (EventHistory.Count != 0))
            {
                writer.WritePropertyName("eventHistory");
                writer.WriteStartArray();

                foreach (Reference valEventHistory in EventHistory)
                {
                    valEventHistory.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if (includeStartObject)
            {
                writer.WriteEndObject();
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Serialize to a JSON object
        /// </summary>
        public new void SerializeJson(Utf8JsonWriter writer, JsonSerializerOptions options, bool includeStartObject = true)
        {
            if (includeStartObject)
            {
                writer.WriteStartObject();
            }
            ((fhirCsR4.Models.BackboneElement) this).SerializeJson(writer, options, false);

            if ((SupportingInfoSequence != null) && (SupportingInfoSequence.Count != 0))
            {
                writer.WritePropertyName("supportingInfoSequence");
                writer.WriteStartArray();

                foreach (uint valSupportingInfoSequence in SupportingInfoSequence)
                {
                    writer.WriteNumberValue(valSupportingInfoSequence);
                }

                writer.WriteEndArray();
            }

            if (Category != null)
            {
                writer.WritePropertyName("category");
                Category.SerializeJson(writer, options);
            }

            if (ProductOrService != null)
            {
                writer.WritePropertyName("productOrService");
                ProductOrService.SerializeJson(writer, options);
            }

            if ((Modifier != null) && (Modifier.Count != 0))
            {
                writer.WritePropertyName("modifier");
                writer.WriteStartArray();

                foreach (CodeableConcept valModifier in Modifier)
                {
                    valModifier.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if (Provider != null)
            {
                writer.WritePropertyName("provider");
                Provider.SerializeJson(writer, options);
            }

            if (Quantity != null)
            {
                writer.WritePropertyName("quantity");
                Quantity.SerializeJson(writer, options);
            }

            if (UnitPrice != null)
            {
                writer.WritePropertyName("unitPrice");
                UnitPrice.SerializeJson(writer, options);
            }

            if (Facility != null)
            {
                writer.WritePropertyName("facility");
                Facility.SerializeJson(writer, options);
            }

            if ((Diagnosis != null) && (Diagnosis.Count != 0))
            {
                writer.WritePropertyName("diagnosis");
                writer.WriteStartArray();

                foreach (CoverageEligibilityRequestItemDiagnosis valDiagnosis in Diagnosis)
                {
                    valDiagnosis.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if ((Detail != null) && (Detail.Count != 0))
            {
                writer.WritePropertyName("detail");
                writer.WriteStartArray();

                foreach (Reference valDetail in Detail)
                {
                    valDetail.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if (includeStartObject)
            {
                writer.WriteEndObject();
            }
        }
Esempio n. 4
0
        /// <summary>
        /// Serialize to a JSON object
        /// </summary>
        public new void SerializeJson(Utf8JsonWriter writer, JsonSerializerOptions options, bool includeStartObject = true)
        {
            if (includeStartObject)
            {
                writer.WriteStartObject();
            }
            if (!string.IsNullOrEmpty(ResourceType))
            {
                writer.WriteString("resourceType", (string)ResourceType !);
            }


            ((fhirCsR4.Models.DomainResource) this).SerializeJson(writer, options, false);

            if ((Identifier != null) && (Identifier.Count != 0))
            {
                writer.WritePropertyName("identifier");
                writer.WriteStartArray();

                foreach (Identifier valIdentifier in Identifier)
                {
                    valIdentifier.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if ((DefinitionUri != null) && (DefinitionUri.Count != 0))
            {
                writer.WritePropertyName("definitionUri");
                writer.WriteStartArray();

                foreach (string valDefinitionUri in DefinitionUri)
                {
                    writer.WriteStringValue(valDefinitionUri);
                }

                writer.WriteEndArray();
            }

            if ((_DefinitionUri != null) && (_DefinitionUri.Count != 0))
            {
                writer.WritePropertyName("_definitionUri");
                writer.WriteStartArray();

                foreach (Element val_DefinitionUri in _DefinitionUri)
                {
                    val_DefinitionUri.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if ((DefinitionCanonical != null) && (DefinitionCanonical.Count != 0))
            {
                writer.WritePropertyName("definitionCanonical");
                writer.WriteStartArray();

                foreach (string valDefinitionCanonical in DefinitionCanonical)
                {
                    writer.WriteStringValue(valDefinitionCanonical);
                }

                writer.WriteEndArray();
            }

            if ((_DefinitionCanonical != null) && (_DefinitionCanonical.Count != 0))
            {
                writer.WritePropertyName("_definitionCanonical");
                writer.WriteStartArray();

                foreach (Element val_DefinitionCanonical in _DefinitionCanonical)
                {
                    val_DefinitionCanonical.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if (!string.IsNullOrEmpty(Status))
            {
                writer.WriteString("status", (string)Status !);
            }

            if (_Status != null)
            {
                writer.WritePropertyName("_status");
                _Status.SerializeJson(writer, options);
            }

            if ((PartOf != null) && (PartOf.Count != 0))
            {
                writer.WritePropertyName("partOf");
                writer.WriteStartArray();

                foreach (Reference valPartOf in PartOf)
                {
                    valPartOf.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if (Code != null)
            {
                writer.WritePropertyName("code");
                Code.SerializeJson(writer, options);
            }

            if (Subject != null)
            {
                writer.WritePropertyName("subject");
                Subject.SerializeJson(writer, options);
            }

            if (Context != null)
            {
                writer.WritePropertyName("context");
                Context.SerializeJson(writer, options);
            }

            if (!string.IsNullOrEmpty(OccurrenceDateTime))
            {
                writer.WriteString("occurrenceDateTime", (string)OccurrenceDateTime !);
            }

            if (_OccurrenceDateTime != null)
            {
                writer.WritePropertyName("_occurrenceDateTime");
                _OccurrenceDateTime.SerializeJson(writer, options);
            }

            if (OccurrencePeriod != null)
            {
                writer.WritePropertyName("occurrencePeriod");
                OccurrencePeriod.SerializeJson(writer, options);
            }

            if (OccurrenceTiming != null)
            {
                writer.WritePropertyName("occurrenceTiming");
                OccurrenceTiming.SerializeJson(writer, options);
            }

            if ((Performer != null) && (Performer.Count != 0))
            {
                writer.WritePropertyName("performer");
                writer.WriteStartArray();

                foreach (ChargeItemPerformer valPerformer in Performer)
                {
                    valPerformer.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if (PerformingOrganization != null)
            {
                writer.WritePropertyName("performingOrganization");
                PerformingOrganization.SerializeJson(writer, options);
            }

            if (RequestingOrganization != null)
            {
                writer.WritePropertyName("requestingOrganization");
                RequestingOrganization.SerializeJson(writer, options);
            }

            if (CostCenter != null)
            {
                writer.WritePropertyName("costCenter");
                CostCenter.SerializeJson(writer, options);
            }

            if (Quantity != null)
            {
                writer.WritePropertyName("quantity");
                Quantity.SerializeJson(writer, options);
            }

            if ((Bodysite != null) && (Bodysite.Count != 0))
            {
                writer.WritePropertyName("bodysite");
                writer.WriteStartArray();

                foreach (CodeableConcept valBodysite in Bodysite)
                {
                    valBodysite.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if (FactorOverride != null)
            {
                writer.WriteNumber("factorOverride", (decimal)FactorOverride !);
            }

            if (_FactorOverride != null)
            {
                writer.WritePropertyName("_factorOverride");
                _FactorOverride.SerializeJson(writer, options);
            }

            if (PriceOverride != null)
            {
                writer.WritePropertyName("priceOverride");
                PriceOverride.SerializeJson(writer, options);
            }

            if (!string.IsNullOrEmpty(OverrideReason))
            {
                writer.WriteString("overrideReason", (string)OverrideReason !);
            }

            if (_OverrideReason != null)
            {
                writer.WritePropertyName("_overrideReason");
                _OverrideReason.SerializeJson(writer, options);
            }

            if (Enterer != null)
            {
                writer.WritePropertyName("enterer");
                Enterer.SerializeJson(writer, options);
            }

            if (!string.IsNullOrEmpty(EnteredDate))
            {
                writer.WriteString("enteredDate", (string)EnteredDate !);
            }

            if (_EnteredDate != null)
            {
                writer.WritePropertyName("_enteredDate");
                _EnteredDate.SerializeJson(writer, options);
            }

            if ((Reason != null) && (Reason.Count != 0))
            {
                writer.WritePropertyName("reason");
                writer.WriteStartArray();

                foreach (CodeableConcept valReason in Reason)
                {
                    valReason.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if ((Service != null) && (Service.Count != 0))
            {
                writer.WritePropertyName("service");
                writer.WriteStartArray();

                foreach (Reference valService in Service)
                {
                    valService.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if (ProductReference != null)
            {
                writer.WritePropertyName("productReference");
                ProductReference.SerializeJson(writer, options);
            }

            if (ProductCodeableConcept != null)
            {
                writer.WritePropertyName("productCodeableConcept");
                ProductCodeableConcept.SerializeJson(writer, options);
            }

            if ((Account != null) && (Account.Count != 0))
            {
                writer.WritePropertyName("account");
                writer.WriteStartArray();

                foreach (Reference valAccount in Account)
                {
                    valAccount.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if ((Note != null) && (Note.Count != 0))
            {
                writer.WritePropertyName("note");
                writer.WriteStartArray();

                foreach (Annotation valNote in Note)
                {
                    valNote.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if ((SupportingInformation != null) && (SupportingInformation.Count != 0))
            {
                writer.WritePropertyName("supportingInformation");
                writer.WriteStartArray();

                foreach (Reference valSupportingInformation in SupportingInformation)
                {
                    valSupportingInformation.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if (includeStartObject)
            {
                writer.WriteEndObject();
            }
        }
Esempio n. 5
0
        /// <summary>
        /// Serialize to a JSON object
        /// </summary>
        public new void SerializeJson(Utf8JsonWriter writer, JsonSerializerOptions options, bool includeStartObject = true)
        {
            if (includeStartObject)
            {
                writer.WriteStartObject();
            }
            if (!string.IsNullOrEmpty(ResourceType))
            {
                writer.WriteString("resourceType", (string)ResourceType !);
            }


            ((fhirCsR4.Models.DomainResource) this).SerializeJson(writer, options, false);

            if ((Identifier != null) && (Identifier.Count != 0))
            {
                writer.WritePropertyName("identifier");
                writer.WriteStartArray();

                foreach (Identifier valIdentifier in Identifier)
                {
                    valIdentifier.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if (!string.IsNullOrEmpty(Status))
            {
                writer.WriteString("status", (string)Status !);
            }

            if (_Status != null)
            {
                writer.WritePropertyName("_status");
                _Status.SerializeJson(writer, options);
            }

            if (Category != null)
            {
                writer.WritePropertyName("category");
                Category.SerializeJson(writer, options);
            }

            if (!string.IsNullOrEmpty(Priority))
            {
                writer.WriteString("priority", (string)Priority !);
            }

            if (_Priority != null)
            {
                writer.WritePropertyName("_priority");
                _Priority.SerializeJson(writer, options);
            }

            if (ItemCodeableConcept != null)
            {
                writer.WritePropertyName("itemCodeableConcept");
                ItemCodeableConcept.SerializeJson(writer, options);
            }

            if (ItemReference != null)
            {
                writer.WritePropertyName("itemReference");
                ItemReference.SerializeJson(writer, options);
            }

            if (Quantity != null)
            {
                writer.WritePropertyName("quantity");
                Quantity.SerializeJson(writer, options);
            }

            if ((Parameter != null) && (Parameter.Count != 0))
            {
                writer.WritePropertyName("parameter");
                writer.WriteStartArray();

                foreach (SupplyRequestParameter valParameter in Parameter)
                {
                    valParameter.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if (!string.IsNullOrEmpty(OccurrenceDateTime))
            {
                writer.WriteString("occurrenceDateTime", (string)OccurrenceDateTime !);
            }

            if (_OccurrenceDateTime != null)
            {
                writer.WritePropertyName("_occurrenceDateTime");
                _OccurrenceDateTime.SerializeJson(writer, options);
            }

            if (OccurrencePeriod != null)
            {
                writer.WritePropertyName("occurrencePeriod");
                OccurrencePeriod.SerializeJson(writer, options);
            }

            if (OccurrenceTiming != null)
            {
                writer.WritePropertyName("occurrenceTiming");
                OccurrenceTiming.SerializeJson(writer, options);
            }

            if (!string.IsNullOrEmpty(AuthoredOn))
            {
                writer.WriteString("authoredOn", (string)AuthoredOn !);
            }

            if (_AuthoredOn != null)
            {
                writer.WritePropertyName("_authoredOn");
                _AuthoredOn.SerializeJson(writer, options);
            }

            if (Requester != null)
            {
                writer.WritePropertyName("requester");
                Requester.SerializeJson(writer, options);
            }

            if ((Supplier != null) && (Supplier.Count != 0))
            {
                writer.WritePropertyName("supplier");
                writer.WriteStartArray();

                foreach (Reference valSupplier in Supplier)
                {
                    valSupplier.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if ((ReasonCode != null) && (ReasonCode.Count != 0))
            {
                writer.WritePropertyName("reasonCode");
                writer.WriteStartArray();

                foreach (CodeableConcept valReasonCode in ReasonCode)
                {
                    valReasonCode.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if ((ReasonReference != null) && (ReasonReference.Count != 0))
            {
                writer.WritePropertyName("reasonReference");
                writer.WriteStartArray();

                foreach (Reference valReasonReference in ReasonReference)
                {
                    valReasonReference.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if (DeliverFrom != null)
            {
                writer.WritePropertyName("deliverFrom");
                DeliverFrom.SerializeJson(writer, options);
            }

            if (DeliverTo != null)
            {
                writer.WritePropertyName("deliverTo");
                DeliverTo.SerializeJson(writer, options);
            }

            if (includeStartObject)
            {
                writer.WriteEndObject();
            }
        }
        /// <summary>
        /// Serialize to a JSON object
        /// </summary>
        public new void SerializeJson(Utf8JsonWriter writer, JsonSerializerOptions options, bool includeStartObject = true)
        {
            if (includeStartObject)
            {
                writer.WriteStartObject();
            }
            ((fhirCsR4.Models.BackboneElement) this).SerializeJson(writer, options, false);

            if ((Identifier != null) && (Identifier.Count != 0))
            {
                writer.WritePropertyName("identifier");
                writer.WriteStartArray();

                foreach (Identifier valIdentifier in Identifier)
                {
                    valIdentifier.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if (Type != null)
            {
                writer.WritePropertyName("type");
                Type.SerializeJson(writer, options);
            }

            if (Quantity != null)
            {
                writer.WritePropertyName("quantity");
                Quantity.SerializeJson(writer, options);
            }

            if ((Material != null) && (Material.Count != 0))
            {
                writer.WritePropertyName("material");
                writer.WriteStartArray();

                foreach (CodeableConcept valMaterial in Material)
                {
                    valMaterial.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if ((AlternateMaterial != null) && (AlternateMaterial.Count != 0))
            {
                writer.WritePropertyName("alternateMaterial");
                writer.WriteStartArray();

                foreach (CodeableConcept valAlternateMaterial in AlternateMaterial)
                {
                    valAlternateMaterial.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if ((Device != null) && (Device.Count != 0))
            {
                writer.WritePropertyName("device");
                writer.WriteStartArray();

                foreach (Reference valDevice in Device)
                {
                    valDevice.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if ((ManufacturedItem != null) && (ManufacturedItem.Count != 0))
            {
                writer.WritePropertyName("manufacturedItem");
                writer.WriteStartArray();

                foreach (Reference valManufacturedItem in ManufacturedItem)
                {
                    valManufacturedItem.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if ((PackageItem != null) && (PackageItem.Count != 0))
            {
                writer.WritePropertyName("packageItem");
                writer.WriteStartArray();

                foreach (MedicinalProductPackagedPackageItem valPackageItem in PackageItem)
                {
                    valPackageItem.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if (PhysicalCharacteristics != null)
            {
                writer.WritePropertyName("physicalCharacteristics");
                PhysicalCharacteristics.SerializeJson(writer, options);
            }

            if ((OtherCharacteristics != null) && (OtherCharacteristics.Count != 0))
            {
                writer.WritePropertyName("otherCharacteristics");
                writer.WriteStartArray();

                foreach (CodeableConcept valOtherCharacteristics in OtherCharacteristics)
                {
                    valOtherCharacteristics.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if ((ShelfLifeStorage != null) && (ShelfLifeStorage.Count != 0))
            {
                writer.WritePropertyName("shelfLifeStorage");
                writer.WriteStartArray();

                foreach (ProductShelfLife valShelfLifeStorage in ShelfLifeStorage)
                {
                    valShelfLifeStorage.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if ((Manufacturer != null) && (Manufacturer.Count != 0))
            {
                writer.WritePropertyName("manufacturer");
                writer.WriteStartArray();

                foreach (Reference valManufacturer in Manufacturer)
                {
                    valManufacturer.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if (includeStartObject)
            {
                writer.WriteEndObject();
            }
        }
        /// <summary>
        /// Serialize to a JSON object
        /// </summary>
        public new void SerializeJson(Utf8JsonWriter writer, JsonSerializerOptions options, bool includeStartObject = true)
        {
            if (includeStartObject)
            {
                writer.WriteStartObject();
            }
            if (!string.IsNullOrEmpty(ResourceType))
            {
                writer.WriteString("resourceType", (string)ResourceType !);
            }


            ((fhirCsR4.Models.DomainResource) this).SerializeJson(writer, options, false);

            if (ManufacturedDoseForm != null)
            {
                writer.WritePropertyName("manufacturedDoseForm");
                ManufacturedDoseForm.SerializeJson(writer, options);
            }

            if (UnitOfPresentation != null)
            {
                writer.WritePropertyName("unitOfPresentation");
                UnitOfPresentation.SerializeJson(writer, options);
            }

            if (Quantity != null)
            {
                writer.WritePropertyName("quantity");
                Quantity.SerializeJson(writer, options);
            }

            if ((Manufacturer != null) && (Manufacturer.Count != 0))
            {
                writer.WritePropertyName("manufacturer");
                writer.WriteStartArray();

                foreach (Reference valManufacturer in Manufacturer)
                {
                    valManufacturer.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if ((Ingredient != null) && (Ingredient.Count != 0))
            {
                writer.WritePropertyName("ingredient");
                writer.WriteStartArray();

                foreach (Reference valIngredient in Ingredient)
                {
                    valIngredient.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if (PhysicalCharacteristics != null)
            {
                writer.WritePropertyName("physicalCharacteristics");
                PhysicalCharacteristics.SerializeJson(writer, options);
            }

            if ((OtherCharacteristics != null) && (OtherCharacteristics.Count != 0))
            {
                writer.WritePropertyName("otherCharacteristics");
                writer.WriteStartArray();

                foreach (CodeableConcept valOtherCharacteristics in OtherCharacteristics)
                {
                    valOtherCharacteristics.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if (includeStartObject)
            {
                writer.WriteEndObject();
            }
        }