/**
  * @return array
  */
 public function jsonSerialize()
 {
     $json = parent::jsonSerialize();
     if (null !== $this->code) {
         $json['code'] = $this->code->jsonSerialize();
     }
     if (null !== $this->schedule) {
         $json['schedule'] = $this->schedule->jsonSerialize();
     }
     return $json;
 }
 /**
  * @return array
  */
 public function jsonSerialize()
 {
     $json = parent::jsonSerialize();
     if (null !== $this->text) {
         $json['text'] = $this->text->jsonSerialize();
     }
     if (null !== $this->additionalInstructions) {
         $json['additionalInstructions'] = $this->additionalInstructions->jsonSerialize();
     }
     if (null !== $this->timing) {
         $json['timing'] = $this->timing->jsonSerialize();
     }
     if (null !== $this->asNeededBoolean) {
         $json['asNeededBoolean'] = $this->asNeededBoolean->jsonSerialize();
     }
     if (null !== $this->asNeededCodeableConcept) {
         $json['asNeededCodeableConcept'] = $this->asNeededCodeableConcept->jsonSerialize();
     }
     if (null !== $this->siteCodeableConcept) {
         $json['siteCodeableConcept'] = $this->siteCodeableConcept->jsonSerialize();
     }
     if (null !== $this->siteReference) {
         $json['siteReference'] = $this->siteReference->jsonSerialize();
     }
     if (null !== $this->route) {
         $json['route'] = $this->route->jsonSerialize();
     }
     if (null !== $this->method) {
         $json['method'] = $this->method->jsonSerialize();
     }
     if (null !== $this->doseRange) {
         $json['doseRange'] = $this->doseRange->jsonSerialize();
     }
     if (null !== $this->doseQuantity) {
         $json['doseQuantity'] = $this->doseQuantity->jsonSerialize();
     }
     if (null !== $this->rateRatio) {
         $json['rateRatio'] = $this->rateRatio->jsonSerialize();
     }
     if (null !== $this->rateRange) {
         $json['rateRange'] = $this->rateRange->jsonSerialize();
     }
     if (null !== $this->maxDosePerPeriod) {
         $json['maxDosePerPeriod'] = $this->maxDosePerPeriod->jsonSerialize();
     }
     return $json;
 }
 /**
  * @return array
  */
 public function jsonSerialize()
 {
     $json = parent::jsonSerialize();
     if (null !== $this->schedule) {
         $json['schedule'] = $this->schedule->jsonSerialize();
     }
     if (null !== $this->quantity) {
         $json['quantity'] = $this->quantity->jsonSerialize();
     }
     if (null !== $this->rateQuantity) {
         $json['rateQuantity'] = $this->rateQuantity->jsonSerialize();
     }
     if (null !== $this->rateRatio) {
         $json['rateRatio'] = $this->rateRatio->jsonSerialize();
     }
     return $json;
 }
 /**
  * @return array
  */
 public function jsonSerialize()
 {
     $json = parent::jsonSerialize();
     $json['resourceType'] = $this->_fhirElementName;
     if (null !== $this->bodySiteCodeableConcept) {
         $json['bodySiteCodeableConcept'] = $this->bodySiteCodeableConcept->jsonSerialize();
     }
     if (null !== $this->bodySiteReference) {
         $json['bodySiteReference'] = $this->bodySiteReference->jsonSerialize();
     }
     if (null !== $this->status) {
         $json['status'] = $this->status->jsonSerialize();
     }
     if (null !== $this->device) {
         $json['device'] = $this->device->jsonSerialize();
     }
     if (null !== $this->encounter) {
         $json['encounter'] = $this->encounter->jsonSerialize();
     }
     if (0 < count($this->identifier)) {
         $json['identifier'] = array();
         foreach ($this->identifier as $identifier) {
             $json['identifier'][] = $identifier->jsonSerialize();
         }
     }
     if (0 < count($this->indication)) {
         $json['indication'] = array();
         foreach ($this->indication as $indication) {
             $json['indication'][] = $indication->jsonSerialize();
         }
     }
     if (0 < count($this->notes)) {
         $json['notes'] = array();
         foreach ($this->notes as $notes) {
             $json['notes'][] = $notes->jsonSerialize();
         }
     }
     if (0 < count($this->prnReason)) {
         $json['prnReason'] = array();
         foreach ($this->prnReason as $prnReason) {
             $json['prnReason'][] = $prnReason->jsonSerialize();
         }
     }
     if (null !== $this->orderedOn) {
         $json['orderedOn'] = $this->orderedOn->jsonSerialize();
     }
     if (null !== $this->recordedOn) {
         $json['recordedOn'] = $this->recordedOn->jsonSerialize();
     }
     if (null !== $this->subject) {
         $json['subject'] = $this->subject->jsonSerialize();
     }
     if (null !== $this->timingTiming) {
         $json['timingTiming'] = $this->timingTiming->jsonSerialize();
     }
     if (null !== $this->timingPeriod) {
         $json['timingPeriod'] = $this->timingPeriod->jsonSerialize();
     }
     if (null !== $this->timingDateTime) {
         $json['timingDateTime'] = $this->timingDateTime->jsonSerialize();
     }
     if (null !== $this->priority) {
         $json['priority'] = $this->priority->jsonSerialize();
     }
     return $json;
 }
 /**
  * @return array
  */
 public function jsonSerialize()
 {
     $json = parent::jsonSerialize();
     if (null !== $this->category) {
         $json['category'] = $this->category->jsonSerialize();
     }
     if (null !== $this->code) {
         $json['code'] = $this->code->jsonSerialize();
     }
     if (0 < count($this->reasonCode)) {
         $json['reasonCode'] = array();
         foreach ($this->reasonCode as $reasonCode) {
             $json['reasonCode'][] = $reasonCode->jsonSerialize();
         }
     }
     if (0 < count($this->reasonReference)) {
         $json['reasonReference'] = array();
         foreach ($this->reasonReference as $reasonReference) {
             $json['reasonReference'][] = $reasonReference->jsonSerialize();
         }
     }
     if (0 < count($this->goal)) {
         $json['goal'] = array();
         foreach ($this->goal as $goal) {
             $json['goal'][] = $goal->jsonSerialize();
         }
     }
     if (null !== $this->status) {
         $json['status'] = $this->status->jsonSerialize();
     }
     if (null !== $this->statusReason) {
         $json['statusReason'] = $this->statusReason->jsonSerialize();
     }
     if (null !== $this->prohibited) {
         $json['prohibited'] = $this->prohibited->jsonSerialize();
     }
     if (null !== $this->scheduledTiming) {
         $json['scheduledTiming'] = $this->scheduledTiming->jsonSerialize();
     }
     if (null !== $this->scheduledPeriod) {
         $json['scheduledPeriod'] = $this->scheduledPeriod->jsonSerialize();
     }
     if (null !== $this->scheduledString) {
         $json['scheduledString'] = $this->scheduledString->jsonSerialize();
     }
     if (null !== $this->location) {
         $json['location'] = $this->location->jsonSerialize();
     }
     if (0 < count($this->performer)) {
         $json['performer'] = array();
         foreach ($this->performer as $performer) {
             $json['performer'][] = $performer->jsonSerialize();
         }
     }
     if (null !== $this->productCodeableConcept) {
         $json['productCodeableConcept'] = $this->productCodeableConcept->jsonSerialize();
     }
     if (null !== $this->productReference) {
         $json['productReference'] = $this->productReference->jsonSerialize();
     }
     if (null !== $this->dailyAmount) {
         $json['dailyAmount'] = $this->dailyAmount->jsonSerialize();
     }
     if (null !== $this->quantity) {
         $json['quantity'] = $this->quantity->jsonSerialize();
     }
     if (null !== $this->description) {
         $json['description'] = $this->description->jsonSerialize();
     }
     return $json;
 }
 /**
  * @return array
  */
 public function jsonSerialize()
 {
     $json = parent::jsonSerialize();
     $json['resourceType'] = $this->_fhirElementName;
     if (null !== $this->type) {
         $json['type'] = $this->type->jsonSerialize();
     }
     if (null !== $this->identifier) {
         $json['identifier'] = $this->identifier->jsonSerialize();
     }
     if (null !== $this->unit) {
         $json['unit'] = $this->unit->jsonSerialize();
     }
     if (null !== $this->source) {
         $json['source'] = $this->source->jsonSerialize();
     }
     if (null !== $this->parent) {
         $json['parent'] = $this->parent->jsonSerialize();
     }
     if (null !== $this->operationalStatus) {
         $json['operationalStatus'] = $this->operationalStatus->jsonSerialize();
     }
     if (null !== $this->color) {
         $json['color'] = $this->color->jsonSerialize();
     }
     if (null !== $this->category) {
         $json['category'] = $this->category->jsonSerialize();
     }
     if (null !== $this->measurementPeriod) {
         $json['measurementPeriod'] = $this->measurementPeriod->jsonSerialize();
     }
     if (0 < count($this->calibration)) {
         $json['calibration'] = array();
         foreach ($this->calibration as $calibration) {
             $json['calibration'][] = $calibration->jsonSerialize();
         }
     }
     return $json;
 }
 /**
  * @return array
  */
 public function jsonSerialize()
 {
     $json = parent::jsonSerialize();
     if (null !== $this->valueBoolean) {
         $json['valueBoolean'] = $this->valueBoolean->jsonSerialize();
     }
     if (null !== $this->valueInteger) {
         $json['valueInteger'] = $this->valueInteger->jsonSerialize();
     }
     if (null !== $this->valueDecimal) {
         $json['valueDecimal'] = $this->valueDecimal->jsonSerialize();
     }
     if (null !== $this->valueBase64Binary) {
         $json['valueBase64Binary'] = $this->valueBase64Binary->jsonSerialize();
     }
     if (null !== $this->valueInstant) {
         $json['valueInstant'] = $this->valueInstant->jsonSerialize();
     }
     if (null !== $this->valueString) {
         $json['valueString'] = $this->valueString->jsonSerialize();
     }
     if (null !== $this->valueUri) {
         $json['valueUri'] = $this->valueUri->jsonSerialize();
     }
     if (null !== $this->valueDate) {
         $json['valueDate'] = $this->valueDate->jsonSerialize();
     }
     if (null !== $this->valueDateTime) {
         $json['valueDateTime'] = $this->valueDateTime->jsonSerialize();
     }
     if (null !== $this->valueTime) {
         $json['valueTime'] = $this->valueTime->jsonSerialize();
     }
     if (null !== $this->valueCode) {
         $json['valueCode'] = $this->valueCode->jsonSerialize();
     }
     if (null !== $this->valueOid) {
         $json['valueOid'] = $this->valueOid->jsonSerialize();
     }
     if (null !== $this->valueUuid) {
         $json['valueUuid'] = $this->valueUuid->jsonSerialize();
     }
     if (null !== $this->valueId) {
         $json['valueId'] = $this->valueId->jsonSerialize();
     }
     if (null !== $this->valueUnsignedInt) {
         $json['valueUnsignedInt'] = $this->valueUnsignedInt->jsonSerialize();
     }
     if (null !== $this->valuePositiveInt) {
         $json['valuePositiveInt'] = $this->valuePositiveInt->jsonSerialize();
     }
     if (null !== $this->valueMarkdown) {
         $json['valueMarkdown'] = $this->valueMarkdown->jsonSerialize();
     }
     if (null !== $this->valueAnnotation) {
         $json['valueAnnotation'] = $this->valueAnnotation->jsonSerialize();
     }
     if (null !== $this->valueAttachment) {
         $json['valueAttachment'] = $this->valueAttachment->jsonSerialize();
     }
     if (null !== $this->valueIdentifier) {
         $json['valueIdentifier'] = $this->valueIdentifier->jsonSerialize();
     }
     if (null !== $this->valueCodeableConcept) {
         $json['valueCodeableConcept'] = $this->valueCodeableConcept->jsonSerialize();
     }
     if (null !== $this->valueCoding) {
         $json['valueCoding'] = $this->valueCoding->jsonSerialize();
     }
     if (null !== $this->valueQuantity) {
         $json['valueQuantity'] = $this->valueQuantity->jsonSerialize();
     }
     if (null !== $this->valueRange) {
         $json['valueRange'] = $this->valueRange->jsonSerialize();
     }
     if (null !== $this->valuePeriod) {
         $json['valuePeriod'] = $this->valuePeriod->jsonSerialize();
     }
     if (null !== $this->valueRatio) {
         $json['valueRatio'] = $this->valueRatio->jsonSerialize();
     }
     if (null !== $this->valueReference) {
         $json['valueReference'] = $this->valueReference->jsonSerialize();
     }
     if (null !== $this->valueSampledData) {
         $json['valueSampledData'] = $this->valueSampledData->jsonSerialize();
     }
     if (null !== $this->valueSignature) {
         $json['valueSignature'] = $this->valueSignature->jsonSerialize();
     }
     if (null !== $this->valueHumanName) {
         $json['valueHumanName'] = $this->valueHumanName->jsonSerialize();
     }
     if (null !== $this->valueAddress) {
         $json['valueAddress'] = $this->valueAddress->jsonSerialize();
     }
     if (null !== $this->valueContactPoint) {
         $json['valueContactPoint'] = $this->valueContactPoint->jsonSerialize();
     }
     if (null !== $this->valueTiming) {
         $json['valueTiming'] = $this->valueTiming->jsonSerialize();
     }
     if (null !== $this->valueMeta) {
         $json['valueMeta'] = $this->valueMeta->jsonSerialize();
     }
     if (null !== $this->url) {
         $json['url'] = $this->url;
     }
     return $json;
 }
 /**
  * @return array
  */
 public function jsonSerialize()
 {
     $json = parent::jsonSerialize();
     if (null !== $this->path) {
         $json['path'] = $this->path->jsonSerialize();
     }
     if (0 < count($this->representation)) {
         $json['representation'] = array();
         foreach ($this->representation as $representation) {
             $json['representation'][] = $representation->jsonSerialize();
         }
     }
     if (null !== $this->name) {
         $json['name'] = $this->name->jsonSerialize();
     }
     if (null !== $this->label) {
         $json['label'] = $this->label->jsonSerialize();
     }
     if (0 < count($this->code)) {
         $json['code'] = array();
         foreach ($this->code as $code) {
             $json['code'][] = $code->jsonSerialize();
         }
     }
     if (null !== $this->slicing) {
         $json['slicing'] = $this->slicing->jsonSerialize();
     }
     if (null !== $this->short) {
         $json['short'] = $this->short->jsonSerialize();
     }
     if (null !== $this->definition) {
         $json['definition'] = $this->definition->jsonSerialize();
     }
     if (null !== $this->comments) {
         $json['comments'] = $this->comments->jsonSerialize();
     }
     if (null !== $this->requirements) {
         $json['requirements'] = $this->requirements->jsonSerialize();
     }
     if (0 < count($this->alias)) {
         $json['alias'] = array();
         foreach ($this->alias as $alias) {
             $json['alias'][] = $alias->jsonSerialize();
         }
     }
     if (null !== $this->min) {
         $json['min'] = $this->min->jsonSerialize();
     }
     if (null !== $this->max) {
         $json['max'] = $this->max->jsonSerialize();
     }
     if (null !== $this->base) {
         $json['base'] = $this->base->jsonSerialize();
     }
     if (0 < count($this->type)) {
         $json['type'] = array();
         foreach ($this->type as $type) {
             $json['type'][] = $type->jsonSerialize();
         }
     }
     if (null !== $this->nameReference) {
         $json['nameReference'] = $this->nameReference->jsonSerialize();
     }
     if (null !== $this->defaultValueBoolean) {
         $json['defaultValueBoolean'] = $this->defaultValueBoolean->jsonSerialize();
     }
     if (null !== $this->defaultValueInteger) {
         $json['defaultValueInteger'] = $this->defaultValueInteger->jsonSerialize();
     }
     if (null !== $this->defaultValueDecimal) {
         $json['defaultValueDecimal'] = $this->defaultValueDecimal->jsonSerialize();
     }
     if (null !== $this->defaultValueBase64Binary) {
         $json['defaultValueBase64Binary'] = $this->defaultValueBase64Binary->jsonSerialize();
     }
     if (null !== $this->defaultValueInstant) {
         $json['defaultValueInstant'] = $this->defaultValueInstant->jsonSerialize();
     }
     if (null !== $this->defaultValueString) {
         $json['defaultValueString'] = $this->defaultValueString->jsonSerialize();
     }
     if (null !== $this->defaultValueUri) {
         $json['defaultValueUri'] = $this->defaultValueUri->jsonSerialize();
     }
     if (null !== $this->defaultValueDate) {
         $json['defaultValueDate'] = $this->defaultValueDate->jsonSerialize();
     }
     if (null !== $this->defaultValueDateTime) {
         $json['defaultValueDateTime'] = $this->defaultValueDateTime->jsonSerialize();
     }
     if (null !== $this->defaultValueTime) {
         $json['defaultValueTime'] = $this->defaultValueTime->jsonSerialize();
     }
     if (null !== $this->defaultValueCode) {
         $json['defaultValueCode'] = $this->defaultValueCode->jsonSerialize();
     }
     if (null !== $this->defaultValueOid) {
         $json['defaultValueOid'] = $this->defaultValueOid->jsonSerialize();
     }
     if (null !== $this->defaultValueUuid) {
         $json['defaultValueUuid'] = $this->defaultValueUuid->jsonSerialize();
     }
     if (null !== $this->defaultValueId) {
         $json['defaultValueId'] = $this->defaultValueId->jsonSerialize();
     }
     if (null !== $this->defaultValueUnsignedInt) {
         $json['defaultValueUnsignedInt'] = $this->defaultValueUnsignedInt->jsonSerialize();
     }
     if (null !== $this->defaultValuePositiveInt) {
         $json['defaultValuePositiveInt'] = $this->defaultValuePositiveInt->jsonSerialize();
     }
     if (null !== $this->defaultValueMarkdown) {
         $json['defaultValueMarkdown'] = $this->defaultValueMarkdown->jsonSerialize();
     }
     if (null !== $this->defaultValueAnnotation) {
         $json['defaultValueAnnotation'] = $this->defaultValueAnnotation->jsonSerialize();
     }
     if (null !== $this->defaultValueAttachment) {
         $json['defaultValueAttachment'] = $this->defaultValueAttachment->jsonSerialize();
     }
     if (null !== $this->defaultValueIdentifier) {
         $json['defaultValueIdentifier'] = $this->defaultValueIdentifier->jsonSerialize();
     }
     if (null !== $this->defaultValueCodeableConcept) {
         $json['defaultValueCodeableConcept'] = $this->defaultValueCodeableConcept->jsonSerialize();
     }
     if (null !== $this->defaultValueCoding) {
         $json['defaultValueCoding'] = $this->defaultValueCoding->jsonSerialize();
     }
     if (null !== $this->defaultValueQuantity) {
         $json['defaultValueQuantity'] = $this->defaultValueQuantity->jsonSerialize();
     }
     if (null !== $this->defaultValueRange) {
         $json['defaultValueRange'] = $this->defaultValueRange->jsonSerialize();
     }
     if (null !== $this->defaultValuePeriod) {
         $json['defaultValuePeriod'] = $this->defaultValuePeriod->jsonSerialize();
     }
     if (null !== $this->defaultValueRatio) {
         $json['defaultValueRatio'] = $this->defaultValueRatio->jsonSerialize();
     }
     if (null !== $this->defaultValueReference) {
         $json['defaultValueReference'] = $this->defaultValueReference->jsonSerialize();
     }
     if (null !== $this->defaultValueSampledData) {
         $json['defaultValueSampledData'] = $this->defaultValueSampledData->jsonSerialize();
     }
     if (null !== $this->defaultValueSignature) {
         $json['defaultValueSignature'] = $this->defaultValueSignature->jsonSerialize();
     }
     if (null !== $this->defaultValueHumanName) {
         $json['defaultValueHumanName'] = $this->defaultValueHumanName->jsonSerialize();
     }
     if (null !== $this->defaultValueAddress) {
         $json['defaultValueAddress'] = $this->defaultValueAddress->jsonSerialize();
     }
     if (null !== $this->defaultValueContactPoint) {
         $json['defaultValueContactPoint'] = $this->defaultValueContactPoint->jsonSerialize();
     }
     if (null !== $this->defaultValueTiming) {
         $json['defaultValueTiming'] = $this->defaultValueTiming->jsonSerialize();
     }
     if (null !== $this->defaultValueMeta) {
         $json['defaultValueMeta'] = $this->defaultValueMeta->jsonSerialize();
     }
     if (null !== $this->meaningWhenMissing) {
         $json['meaningWhenMissing'] = $this->meaningWhenMissing->jsonSerialize();
     }
     if (null !== $this->fixedBoolean) {
         $json['fixedBoolean'] = $this->fixedBoolean->jsonSerialize();
     }
     if (null !== $this->fixedInteger) {
         $json['fixedInteger'] = $this->fixedInteger->jsonSerialize();
     }
     if (null !== $this->fixedDecimal) {
         $json['fixedDecimal'] = $this->fixedDecimal->jsonSerialize();
     }
     if (null !== $this->fixedBase64Binary) {
         $json['fixedBase64Binary'] = $this->fixedBase64Binary->jsonSerialize();
     }
     if (null !== $this->fixedInstant) {
         $json['fixedInstant'] = $this->fixedInstant->jsonSerialize();
     }
     if (null !== $this->fixedString) {
         $json['fixedString'] = $this->fixedString->jsonSerialize();
     }
     if (null !== $this->fixedUri) {
         $json['fixedUri'] = $this->fixedUri->jsonSerialize();
     }
     if (null !== $this->fixedDate) {
         $json['fixedDate'] = $this->fixedDate->jsonSerialize();
     }
     if (null !== $this->fixedDateTime) {
         $json['fixedDateTime'] = $this->fixedDateTime->jsonSerialize();
     }
     if (null !== $this->fixedTime) {
         $json['fixedTime'] = $this->fixedTime->jsonSerialize();
     }
     if (null !== $this->fixedCode) {
         $json['fixedCode'] = $this->fixedCode->jsonSerialize();
     }
     if (null !== $this->fixedOid) {
         $json['fixedOid'] = $this->fixedOid->jsonSerialize();
     }
     if (null !== $this->fixedUuid) {
         $json['fixedUuid'] = $this->fixedUuid->jsonSerialize();
     }
     if (null !== $this->fixedId) {
         $json['fixedId'] = $this->fixedId->jsonSerialize();
     }
     if (null !== $this->fixedUnsignedInt) {
         $json['fixedUnsignedInt'] = $this->fixedUnsignedInt->jsonSerialize();
     }
     if (null !== $this->fixedPositiveInt) {
         $json['fixedPositiveInt'] = $this->fixedPositiveInt->jsonSerialize();
     }
     if (null !== $this->fixedMarkdown) {
         $json['fixedMarkdown'] = $this->fixedMarkdown->jsonSerialize();
     }
     if (null !== $this->fixedAnnotation) {
         $json['fixedAnnotation'] = $this->fixedAnnotation->jsonSerialize();
     }
     if (null !== $this->fixedAttachment) {
         $json['fixedAttachment'] = $this->fixedAttachment->jsonSerialize();
     }
     if (null !== $this->fixedIdentifier) {
         $json['fixedIdentifier'] = $this->fixedIdentifier->jsonSerialize();
     }
     if (null !== $this->fixedCodeableConcept) {
         $json['fixedCodeableConcept'] = $this->fixedCodeableConcept->jsonSerialize();
     }
     if (null !== $this->fixedCoding) {
         $json['fixedCoding'] = $this->fixedCoding->jsonSerialize();
     }
     if (null !== $this->fixedQuantity) {
         $json['fixedQuantity'] = $this->fixedQuantity->jsonSerialize();
     }
     if (null !== $this->fixedRange) {
         $json['fixedRange'] = $this->fixedRange->jsonSerialize();
     }
     if (null !== $this->fixedPeriod) {
         $json['fixedPeriod'] = $this->fixedPeriod->jsonSerialize();
     }
     if (null !== $this->fixedRatio) {
         $json['fixedRatio'] = $this->fixedRatio->jsonSerialize();
     }
     if (null !== $this->fixedReference) {
         $json['fixedReference'] = $this->fixedReference->jsonSerialize();
     }
     if (null !== $this->fixedSampledData) {
         $json['fixedSampledData'] = $this->fixedSampledData->jsonSerialize();
     }
     if (null !== $this->fixedSignature) {
         $json['fixedSignature'] = $this->fixedSignature->jsonSerialize();
     }
     if (null !== $this->fixedHumanName) {
         $json['fixedHumanName'] = $this->fixedHumanName->jsonSerialize();
     }
     if (null !== $this->fixedAddress) {
         $json['fixedAddress'] = $this->fixedAddress->jsonSerialize();
     }
     if (null !== $this->fixedContactPoint) {
         $json['fixedContactPoint'] = $this->fixedContactPoint->jsonSerialize();
     }
     if (null !== $this->fixedTiming) {
         $json['fixedTiming'] = $this->fixedTiming->jsonSerialize();
     }
     if (null !== $this->fixedMeta) {
         $json['fixedMeta'] = $this->fixedMeta->jsonSerialize();
     }
     if (null !== $this->patternBoolean) {
         $json['patternBoolean'] = $this->patternBoolean->jsonSerialize();
     }
     if (null !== $this->patternInteger) {
         $json['patternInteger'] = $this->patternInteger->jsonSerialize();
     }
     if (null !== $this->patternDecimal) {
         $json['patternDecimal'] = $this->patternDecimal->jsonSerialize();
     }
     if (null !== $this->patternBase64Binary) {
         $json['patternBase64Binary'] = $this->patternBase64Binary->jsonSerialize();
     }
     if (null !== $this->patternInstant) {
         $json['patternInstant'] = $this->patternInstant->jsonSerialize();
     }
     if (null !== $this->patternString) {
         $json['patternString'] = $this->patternString->jsonSerialize();
     }
     if (null !== $this->patternUri) {
         $json['patternUri'] = $this->patternUri->jsonSerialize();
     }
     if (null !== $this->patternDate) {
         $json['patternDate'] = $this->patternDate->jsonSerialize();
     }
     if (null !== $this->patternDateTime) {
         $json['patternDateTime'] = $this->patternDateTime->jsonSerialize();
     }
     if (null !== $this->patternTime) {
         $json['patternTime'] = $this->patternTime->jsonSerialize();
     }
     if (null !== $this->patternCode) {
         $json['patternCode'] = $this->patternCode->jsonSerialize();
     }
     if (null !== $this->patternOid) {
         $json['patternOid'] = $this->patternOid->jsonSerialize();
     }
     if (null !== $this->patternUuid) {
         $json['patternUuid'] = $this->patternUuid->jsonSerialize();
     }
     if (null !== $this->patternId) {
         $json['patternId'] = $this->patternId->jsonSerialize();
     }
     if (null !== $this->patternUnsignedInt) {
         $json['patternUnsignedInt'] = $this->patternUnsignedInt->jsonSerialize();
     }
     if (null !== $this->patternPositiveInt) {
         $json['patternPositiveInt'] = $this->patternPositiveInt->jsonSerialize();
     }
     if (null !== $this->patternMarkdown) {
         $json['patternMarkdown'] = $this->patternMarkdown->jsonSerialize();
     }
     if (null !== $this->patternAnnotation) {
         $json['patternAnnotation'] = $this->patternAnnotation->jsonSerialize();
     }
     if (null !== $this->patternAttachment) {
         $json['patternAttachment'] = $this->patternAttachment->jsonSerialize();
     }
     if (null !== $this->patternIdentifier) {
         $json['patternIdentifier'] = $this->patternIdentifier->jsonSerialize();
     }
     if (null !== $this->patternCodeableConcept) {
         $json['patternCodeableConcept'] = $this->patternCodeableConcept->jsonSerialize();
     }
     if (null !== $this->patternCoding) {
         $json['patternCoding'] = $this->patternCoding->jsonSerialize();
     }
     if (null !== $this->patternQuantity) {
         $json['patternQuantity'] = $this->patternQuantity->jsonSerialize();
     }
     if (null !== $this->patternRange) {
         $json['patternRange'] = $this->patternRange->jsonSerialize();
     }
     if (null !== $this->patternPeriod) {
         $json['patternPeriod'] = $this->patternPeriod->jsonSerialize();
     }
     if (null !== $this->patternRatio) {
         $json['patternRatio'] = $this->patternRatio->jsonSerialize();
     }
     if (null !== $this->patternReference) {
         $json['patternReference'] = $this->patternReference->jsonSerialize();
     }
     if (null !== $this->patternSampledData) {
         $json['patternSampledData'] = $this->patternSampledData->jsonSerialize();
     }
     if (null !== $this->patternSignature) {
         $json['patternSignature'] = $this->patternSignature->jsonSerialize();
     }
     if (null !== $this->patternHumanName) {
         $json['patternHumanName'] = $this->patternHumanName->jsonSerialize();
     }
     if (null !== $this->patternAddress) {
         $json['patternAddress'] = $this->patternAddress->jsonSerialize();
     }
     if (null !== $this->patternContactPoint) {
         $json['patternContactPoint'] = $this->patternContactPoint->jsonSerialize();
     }
     if (null !== $this->patternTiming) {
         $json['patternTiming'] = $this->patternTiming->jsonSerialize();
     }
     if (null !== $this->patternMeta) {
         $json['patternMeta'] = $this->patternMeta->jsonSerialize();
     }
     if (null !== $this->exampleBoolean) {
         $json['exampleBoolean'] = $this->exampleBoolean->jsonSerialize();
     }
     if (null !== $this->exampleInteger) {
         $json['exampleInteger'] = $this->exampleInteger->jsonSerialize();
     }
     if (null !== $this->exampleDecimal) {
         $json['exampleDecimal'] = $this->exampleDecimal->jsonSerialize();
     }
     if (null !== $this->exampleBase64Binary) {
         $json['exampleBase64Binary'] = $this->exampleBase64Binary->jsonSerialize();
     }
     if (null !== $this->exampleInstant) {
         $json['exampleInstant'] = $this->exampleInstant->jsonSerialize();
     }
     if (null !== $this->exampleString) {
         $json['exampleString'] = $this->exampleString->jsonSerialize();
     }
     if (null !== $this->exampleUri) {
         $json['exampleUri'] = $this->exampleUri->jsonSerialize();
     }
     if (null !== $this->exampleDate) {
         $json['exampleDate'] = $this->exampleDate->jsonSerialize();
     }
     if (null !== $this->exampleDateTime) {
         $json['exampleDateTime'] = $this->exampleDateTime->jsonSerialize();
     }
     if (null !== $this->exampleTime) {
         $json['exampleTime'] = $this->exampleTime->jsonSerialize();
     }
     if (null !== $this->exampleCode) {
         $json['exampleCode'] = $this->exampleCode->jsonSerialize();
     }
     if (null !== $this->exampleOid) {
         $json['exampleOid'] = $this->exampleOid->jsonSerialize();
     }
     if (null !== $this->exampleUuid) {
         $json['exampleUuid'] = $this->exampleUuid->jsonSerialize();
     }
     if (null !== $this->exampleId) {
         $json['exampleId'] = $this->exampleId->jsonSerialize();
     }
     if (null !== $this->exampleUnsignedInt) {
         $json['exampleUnsignedInt'] = $this->exampleUnsignedInt->jsonSerialize();
     }
     if (null !== $this->examplePositiveInt) {
         $json['examplePositiveInt'] = $this->examplePositiveInt->jsonSerialize();
     }
     if (null !== $this->exampleMarkdown) {
         $json['exampleMarkdown'] = $this->exampleMarkdown->jsonSerialize();
     }
     if (null !== $this->exampleAnnotation) {
         $json['exampleAnnotation'] = $this->exampleAnnotation->jsonSerialize();
     }
     if (null !== $this->exampleAttachment) {
         $json['exampleAttachment'] = $this->exampleAttachment->jsonSerialize();
     }
     if (null !== $this->exampleIdentifier) {
         $json['exampleIdentifier'] = $this->exampleIdentifier->jsonSerialize();
     }
     if (null !== $this->exampleCodeableConcept) {
         $json['exampleCodeableConcept'] = $this->exampleCodeableConcept->jsonSerialize();
     }
     if (null !== $this->exampleCoding) {
         $json['exampleCoding'] = $this->exampleCoding->jsonSerialize();
     }
     if (null !== $this->exampleQuantity) {
         $json['exampleQuantity'] = $this->exampleQuantity->jsonSerialize();
     }
     if (null !== $this->exampleRange) {
         $json['exampleRange'] = $this->exampleRange->jsonSerialize();
     }
     if (null !== $this->examplePeriod) {
         $json['examplePeriod'] = $this->examplePeriod->jsonSerialize();
     }
     if (null !== $this->exampleRatio) {
         $json['exampleRatio'] = $this->exampleRatio->jsonSerialize();
     }
     if (null !== $this->exampleReference) {
         $json['exampleReference'] = $this->exampleReference->jsonSerialize();
     }
     if (null !== $this->exampleSampledData) {
         $json['exampleSampledData'] = $this->exampleSampledData->jsonSerialize();
     }
     if (null !== $this->exampleSignature) {
         $json['exampleSignature'] = $this->exampleSignature->jsonSerialize();
     }
     if (null !== $this->exampleHumanName) {
         $json['exampleHumanName'] = $this->exampleHumanName->jsonSerialize();
     }
     if (null !== $this->exampleAddress) {
         $json['exampleAddress'] = $this->exampleAddress->jsonSerialize();
     }
     if (null !== $this->exampleContactPoint) {
         $json['exampleContactPoint'] = $this->exampleContactPoint->jsonSerialize();
     }
     if (null !== $this->exampleTiming) {
         $json['exampleTiming'] = $this->exampleTiming->jsonSerialize();
     }
     if (null !== $this->exampleMeta) {
         $json['exampleMeta'] = $this->exampleMeta->jsonSerialize();
     }
     if (null !== $this->minValueBoolean) {
         $json['minValueBoolean'] = $this->minValueBoolean->jsonSerialize();
     }
     if (null !== $this->minValueInteger) {
         $json['minValueInteger'] = $this->minValueInteger->jsonSerialize();
     }
     if (null !== $this->minValueDecimal) {
         $json['minValueDecimal'] = $this->minValueDecimal->jsonSerialize();
     }
     if (null !== $this->minValueBase64Binary) {
         $json['minValueBase64Binary'] = $this->minValueBase64Binary->jsonSerialize();
     }
     if (null !== $this->minValueInstant) {
         $json['minValueInstant'] = $this->minValueInstant->jsonSerialize();
     }
     if (null !== $this->minValueString) {
         $json['minValueString'] = $this->minValueString->jsonSerialize();
     }
     if (null !== $this->minValueUri) {
         $json['minValueUri'] = $this->minValueUri->jsonSerialize();
     }
     if (null !== $this->minValueDate) {
         $json['minValueDate'] = $this->minValueDate->jsonSerialize();
     }
     if (null !== $this->minValueDateTime) {
         $json['minValueDateTime'] = $this->minValueDateTime->jsonSerialize();
     }
     if (null !== $this->minValueTime) {
         $json['minValueTime'] = $this->minValueTime->jsonSerialize();
     }
     if (null !== $this->minValueCode) {
         $json['minValueCode'] = $this->minValueCode->jsonSerialize();
     }
     if (null !== $this->minValueOid) {
         $json['minValueOid'] = $this->minValueOid->jsonSerialize();
     }
     if (null !== $this->minValueUuid) {
         $json['minValueUuid'] = $this->minValueUuid->jsonSerialize();
     }
     if (null !== $this->minValueId) {
         $json['minValueId'] = $this->minValueId->jsonSerialize();
     }
     if (null !== $this->minValueUnsignedInt) {
         $json['minValueUnsignedInt'] = $this->minValueUnsignedInt->jsonSerialize();
     }
     if (null !== $this->minValuePositiveInt) {
         $json['minValuePositiveInt'] = $this->minValuePositiveInt->jsonSerialize();
     }
     if (null !== $this->minValueMarkdown) {
         $json['minValueMarkdown'] = $this->minValueMarkdown->jsonSerialize();
     }
     if (null !== $this->minValueAnnotation) {
         $json['minValueAnnotation'] = $this->minValueAnnotation->jsonSerialize();
     }
     if (null !== $this->minValueAttachment) {
         $json['minValueAttachment'] = $this->minValueAttachment->jsonSerialize();
     }
     if (null !== $this->minValueIdentifier) {
         $json['minValueIdentifier'] = $this->minValueIdentifier->jsonSerialize();
     }
     if (null !== $this->minValueCodeableConcept) {
         $json['minValueCodeableConcept'] = $this->minValueCodeableConcept->jsonSerialize();
     }
     if (null !== $this->minValueCoding) {
         $json['minValueCoding'] = $this->minValueCoding->jsonSerialize();
     }
     if (null !== $this->minValueQuantity) {
         $json['minValueQuantity'] = $this->minValueQuantity->jsonSerialize();
     }
     if (null !== $this->minValueRange) {
         $json['minValueRange'] = $this->minValueRange->jsonSerialize();
     }
     if (null !== $this->minValuePeriod) {
         $json['minValuePeriod'] = $this->minValuePeriod->jsonSerialize();
     }
     if (null !== $this->minValueRatio) {
         $json['minValueRatio'] = $this->minValueRatio->jsonSerialize();
     }
     if (null !== $this->minValueReference) {
         $json['minValueReference'] = $this->minValueReference->jsonSerialize();
     }
     if (null !== $this->minValueSampledData) {
         $json['minValueSampledData'] = $this->minValueSampledData->jsonSerialize();
     }
     if (null !== $this->minValueSignature) {
         $json['minValueSignature'] = $this->minValueSignature->jsonSerialize();
     }
     if (null !== $this->minValueHumanName) {
         $json['minValueHumanName'] = $this->minValueHumanName->jsonSerialize();
     }
     if (null !== $this->minValueAddress) {
         $json['minValueAddress'] = $this->minValueAddress->jsonSerialize();
     }
     if (null !== $this->minValueContactPoint) {
         $json['minValueContactPoint'] = $this->minValueContactPoint->jsonSerialize();
     }
     if (null !== $this->minValueTiming) {
         $json['minValueTiming'] = $this->minValueTiming->jsonSerialize();
     }
     if (null !== $this->minValueMeta) {
         $json['minValueMeta'] = $this->minValueMeta->jsonSerialize();
     }
     if (null !== $this->maxValueBoolean) {
         $json['maxValueBoolean'] = $this->maxValueBoolean->jsonSerialize();
     }
     if (null !== $this->maxValueInteger) {
         $json['maxValueInteger'] = $this->maxValueInteger->jsonSerialize();
     }
     if (null !== $this->maxValueDecimal) {
         $json['maxValueDecimal'] = $this->maxValueDecimal->jsonSerialize();
     }
     if (null !== $this->maxValueBase64Binary) {
         $json['maxValueBase64Binary'] = $this->maxValueBase64Binary->jsonSerialize();
     }
     if (null !== $this->maxValueInstant) {
         $json['maxValueInstant'] = $this->maxValueInstant->jsonSerialize();
     }
     if (null !== $this->maxValueString) {
         $json['maxValueString'] = $this->maxValueString->jsonSerialize();
     }
     if (null !== $this->maxValueUri) {
         $json['maxValueUri'] = $this->maxValueUri->jsonSerialize();
     }
     if (null !== $this->maxValueDate) {
         $json['maxValueDate'] = $this->maxValueDate->jsonSerialize();
     }
     if (null !== $this->maxValueDateTime) {
         $json['maxValueDateTime'] = $this->maxValueDateTime->jsonSerialize();
     }
     if (null !== $this->maxValueTime) {
         $json['maxValueTime'] = $this->maxValueTime->jsonSerialize();
     }
     if (null !== $this->maxValueCode) {
         $json['maxValueCode'] = $this->maxValueCode->jsonSerialize();
     }
     if (null !== $this->maxValueOid) {
         $json['maxValueOid'] = $this->maxValueOid->jsonSerialize();
     }
     if (null !== $this->maxValueUuid) {
         $json['maxValueUuid'] = $this->maxValueUuid->jsonSerialize();
     }
     if (null !== $this->maxValueId) {
         $json['maxValueId'] = $this->maxValueId->jsonSerialize();
     }
     if (null !== $this->maxValueUnsignedInt) {
         $json['maxValueUnsignedInt'] = $this->maxValueUnsignedInt->jsonSerialize();
     }
     if (null !== $this->maxValuePositiveInt) {
         $json['maxValuePositiveInt'] = $this->maxValuePositiveInt->jsonSerialize();
     }
     if (null !== $this->maxValueMarkdown) {
         $json['maxValueMarkdown'] = $this->maxValueMarkdown->jsonSerialize();
     }
     if (null !== $this->maxValueAnnotation) {
         $json['maxValueAnnotation'] = $this->maxValueAnnotation->jsonSerialize();
     }
     if (null !== $this->maxValueAttachment) {
         $json['maxValueAttachment'] = $this->maxValueAttachment->jsonSerialize();
     }
     if (null !== $this->maxValueIdentifier) {
         $json['maxValueIdentifier'] = $this->maxValueIdentifier->jsonSerialize();
     }
     if (null !== $this->maxValueCodeableConcept) {
         $json['maxValueCodeableConcept'] = $this->maxValueCodeableConcept->jsonSerialize();
     }
     if (null !== $this->maxValueCoding) {
         $json['maxValueCoding'] = $this->maxValueCoding->jsonSerialize();
     }
     if (null !== $this->maxValueQuantity) {
         $json['maxValueQuantity'] = $this->maxValueQuantity->jsonSerialize();
     }
     if (null !== $this->maxValueRange) {
         $json['maxValueRange'] = $this->maxValueRange->jsonSerialize();
     }
     if (null !== $this->maxValuePeriod) {
         $json['maxValuePeriod'] = $this->maxValuePeriod->jsonSerialize();
     }
     if (null !== $this->maxValueRatio) {
         $json['maxValueRatio'] = $this->maxValueRatio->jsonSerialize();
     }
     if (null !== $this->maxValueReference) {
         $json['maxValueReference'] = $this->maxValueReference->jsonSerialize();
     }
     if (null !== $this->maxValueSampledData) {
         $json['maxValueSampledData'] = $this->maxValueSampledData->jsonSerialize();
     }
     if (null !== $this->maxValueSignature) {
         $json['maxValueSignature'] = $this->maxValueSignature->jsonSerialize();
     }
     if (null !== $this->maxValueHumanName) {
         $json['maxValueHumanName'] = $this->maxValueHumanName->jsonSerialize();
     }
     if (null !== $this->maxValueAddress) {
         $json['maxValueAddress'] = $this->maxValueAddress->jsonSerialize();
     }
     if (null !== $this->maxValueContactPoint) {
         $json['maxValueContactPoint'] = $this->maxValueContactPoint->jsonSerialize();
     }
     if (null !== $this->maxValueTiming) {
         $json['maxValueTiming'] = $this->maxValueTiming->jsonSerialize();
     }
     if (null !== $this->maxValueMeta) {
         $json['maxValueMeta'] = $this->maxValueMeta->jsonSerialize();
     }
     if (null !== $this->maxLength) {
         $json['maxLength'] = $this->maxLength->jsonSerialize();
     }
     if (0 < count($this->condition)) {
         $json['condition'] = array();
         foreach ($this->condition as $condition) {
             $json['condition'][] = $condition->jsonSerialize();
         }
     }
     if (0 < count($this->constraint)) {
         $json['constraint'] = array();
         foreach ($this->constraint as $constraint) {
             $json['constraint'][] = $constraint->jsonSerialize();
         }
     }
     if (null !== $this->mustSupport) {
         $json['mustSupport'] = $this->mustSupport->jsonSerialize();
     }
     if (null !== $this->isModifier) {
         $json['isModifier'] = $this->isModifier->jsonSerialize();
     }
     if (null !== $this->isSummary) {
         $json['isSummary'] = $this->isSummary->jsonSerialize();
     }
     if (null !== $this->binding) {
         $json['binding'] = $this->binding->jsonSerialize();
     }
     if (0 < count($this->mapping)) {
         $json['mapping'] = array();
         foreach ($this->mapping as $mapping) {
             $json['mapping'][] = $mapping->jsonSerialize();
         }
     }
     return $json;
 }
 /**
  * @return array
  */
 public function jsonSerialize()
 {
     $json = parent::jsonSerialize();
     $json['resourceType'] = $this->_fhirElementName;
     if (0 < count($this->identifier)) {
         $json['identifier'] = array();
         foreach ($this->identifier as $identifier) {
             $json['identifier'][] = $identifier->jsonSerialize();
         }
     }
     if (null !== $this->subject) {
         $json['subject'] = $this->subject->jsonSerialize();
     }
     if (null !== $this->code) {
         $json['code'] = $this->code->jsonSerialize();
     }
     if (0 < count($this->bodySite)) {
         $json['bodySite'] = array();
         foreach ($this->bodySite as $bodySite) {
             $json['bodySite'][] = $bodySite->jsonSerialize();
         }
     }
     if (null !== $this->reasonCodeableConcept) {
         $json['reasonCodeableConcept'] = $this->reasonCodeableConcept->jsonSerialize();
     }
     if (null !== $this->reasonReference) {
         $json['reasonReference'] = $this->reasonReference->jsonSerialize();
     }
     if (null !== $this->scheduledDateTime) {
         $json['scheduledDateTime'] = $this->scheduledDateTime->jsonSerialize();
     }
     if (null !== $this->scheduledPeriod) {
         $json['scheduledPeriod'] = $this->scheduledPeriod->jsonSerialize();
     }
     if (null !== $this->scheduledTiming) {
         $json['scheduledTiming'] = $this->scheduledTiming->jsonSerialize();
     }
     if (null !== $this->encounter) {
         $json['encounter'] = $this->encounter->jsonSerialize();
     }
     if (null !== $this->performer) {
         $json['performer'] = $this->performer->jsonSerialize();
     }
     if (null !== $this->status) {
         $json['status'] = $this->status->jsonSerialize();
     }
     if (0 < count($this->notes)) {
         $json['notes'] = array();
         foreach ($this->notes as $notes) {
             $json['notes'][] = $notes->jsonSerialize();
         }
     }
     if (null !== $this->asNeededBoolean) {
         $json['asNeededBoolean'] = $this->asNeededBoolean->jsonSerialize();
     }
     if (null !== $this->asNeededCodeableConcept) {
         $json['asNeededCodeableConcept'] = $this->asNeededCodeableConcept->jsonSerialize();
     }
     if (null !== $this->orderedOn) {
         $json['orderedOn'] = $this->orderedOn->jsonSerialize();
     }
     if (null !== $this->orderer) {
         $json['orderer'] = $this->orderer->jsonSerialize();
     }
     if (null !== $this->priority) {
         $json['priority'] = $this->priority->jsonSerialize();
     }
     return $json;
 }