#7914 - Fix for contacts being empty or s tring (#7915)
[openemr.git] / src / FHIR / R4 / FHIRElement / FHIRQuantity.php
blobbc0526bc6b112945d98494e260404f3f9b68ba06
1 <?php
3 namespace OpenEMR\FHIR\R4\FHIRElement;
5 /*!
6 * This class was generated with the PHPFHIR library (https://github.com/dcarbone/php-fhir) using
7 * class definitions from HL7 FHIR (https://www.hl7.org/fhir/)
9 * Class creation date: June 14th, 2019
11 * PHPFHIR Copyright:
13 * Copyright 2016-2017 Daniel Carbone (daniel.p.carbone@gmail.com)
15 * Licensed under the Apache License, Version 2.0 (the "License");
16 * you may not use this file except in compliance with the License.
17 * You may obtain a copy of the License at
19 * http://www.apache.org/licenses/LICENSE-2.0
21 * Unless required by applicable law or agreed to in writing, software
22 * distributed under the License is distributed on an "AS IS" BASIS,
23 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
24 * See the License for the specific language governing permissions and
25 * limitations under the License.
28 * FHIR Copyright Notice:
30 * Copyright (c) 2011+, HL7, Inc.
31 * All rights reserved.
33 * Redistribution and use in source and binary forms, with or without modification,
34 * are permitted provided that the following conditions are met:
36 * * Redistributions of source code must retain the above copyright notice, this
37 * list of conditions and the following disclaimer.
38 * * Redistributions in binary form must reproduce the above copyright notice,
39 * this list of conditions and the following disclaimer in the documentation
40 * and/or other materials provided with the distribution.
41 * * Neither the name of HL7 nor the names of its contributors may be used to
42 * endorse or promote products derived from this software without specific
43 * prior written permission.
45 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
46 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
47 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
48 * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
49 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
50 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
51 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
52 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
53 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
54 * POSSIBILITY OF SUCH DAMAGE.
57 * Generated on Thu, Dec 27, 2018 22:37+1100 for FHIR v4.0.0
59 * Note: the schemas & schematrons do not contain all of the rules about what makes resources
60 * valid. Implementers will still need to be familiar with the content of the specification and with
61 * any profiles that apply to the resources in order to make a conformant implementation.
65 use OpenEMR\FHIR\R4\FHIRElement;
67 /**
68 * A measured amount (or an amount that can potentially be measured). Note that measured amounts include amounts that are not precisely quantified, including amounts involving arbitrary units and floating currencies.
69 * If the element is present, it must have a value for at least one of the defined elements, an @id referenced from the Narrative, or extensions
71 class FHIRQuantity extends FHIRElement implements \JsonSerializable
73 /**
74 * The value of the measured amount. The value includes an implicit precision in the presentation of the value.
75 * @var \OpenEMR\FHIR\R4\FHIRElement\FHIRDecimal
77 public $value = null;
79 /**
80 * How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is "<" , then the real value is < stated value.
81 * @var \OpenEMR\FHIR\R4\FHIRElement\FHIRQuantityComparator
83 public $comparator = null;
85 /**
86 * A human-readable form of the unit.
87 * @var \OpenEMR\FHIR\R4\FHIRElement\FHIRString
89 public $unit = null;
91 /**
92 * The identification of the system that provides the coded form of the unit.
93 * @var \OpenEMR\FHIR\R4\FHIRElement\FHIRUri
95 public $system = null;
97 /**
98 * A computer processable form of the unit in some unit representation system.
99 * @var \OpenEMR\FHIR\R4\FHIRElement\FHIRCode
101 public $code = null;
104 * @var string
106 private $_fhirElementName = 'Quantity';
109 * The value of the measured amount. The value includes an implicit precision in the presentation of the value.
110 * @return \OpenEMR\FHIR\R4\FHIRElement\FHIRDecimal
112 public function getValue()
114 return $this->value;
118 * The value of the measured amount. The value includes an implicit precision in the presentation of the value.
119 * @param \OpenEMR\FHIR\R4\FHIRElement\FHIRDecimal $value
120 * @return $this
122 public function setValue($value)
124 $this->value = $value;
125 return $this;
129 * How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is "<" , then the real value is < stated value.
130 * @return \OpenEMR\FHIR\R4\FHIRElement\FHIRQuantityComparator
132 public function getComparator()
134 return $this->comparator;
138 * How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is "<" , then the real value is < stated value.
139 * @param \OpenEMR\FHIR\R4\FHIRElement\FHIRQuantityComparator $comparator
140 * @return $this
142 public function setComparator($comparator)
144 $this->comparator = $comparator;
145 return $this;
149 * A human-readable form of the unit.
150 * @return \OpenEMR\FHIR\R4\FHIRElement\FHIRString
152 public function getUnit()
154 return $this->unit;
158 * A human-readable form of the unit.
159 * @param \OpenEMR\FHIR\R4\FHIRElement\FHIRString $unit
160 * @return $this
162 public function setUnit($unit)
164 $this->unit = $unit;
165 return $this;
169 * The identification of the system that provides the coded form of the unit.
170 * @return \OpenEMR\FHIR\R4\FHIRElement\FHIRUri
172 public function getSystem()
174 return $this->system;
178 * The identification of the system that provides the coded form of the unit.
179 * @param \OpenEMR\FHIR\R4\FHIRElement\FHIRUri $system
180 * @return $this
182 public function setSystem($system)
184 $this->system = $system;
185 return $this;
189 * A computer processable form of the unit in some unit representation system.
190 * @return \OpenEMR\FHIR\R4\FHIRElement\FHIRCode
192 public function getCode()
194 return $this->code;
198 * A computer processable form of the unit in some unit representation system.
199 * @param \OpenEMR\FHIR\R4\FHIRElement\FHIRCode $code
200 * @return $this
202 public function setCode($code)
204 $this->code = $code;
205 return $this;
209 * @return string
211 public function get_fhirElementName()
213 return $this->_fhirElementName;
217 * @param mixed $data
219 public function __construct($data = [])
221 if (is_array($data)) {
222 if (isset($data['value'])) {
223 $this->setValue($data['value']);
225 if (isset($data['comparator'])) {
226 $this->setComparator($data['comparator']);
228 if (isset($data['unit'])) {
229 $this->setUnit($data['unit']);
231 if (isset($data['system'])) {
232 $this->setSystem($data['system']);
234 if (isset($data['code'])) {
235 $this->setCode($data['code']);
237 } elseif (null !== $data) {
238 throw new \InvalidArgumentException('$data expected to be array of values, saw "' . gettype($data) . '"');
240 parent::__construct($data);
244 * @return string
246 public function __toString()
248 return (string)$this->getValue();
252 * @return array
254 public function jsonSerialize(): mixed
256 $json = parent::jsonSerialize();
257 if (isset($this->value)) {
258 $json['value'] = $this->value;
260 if (isset($this->comparator)) {
261 $json['comparator'] = $this->comparator;
263 if (isset($this->unit)) {
264 $json['unit'] = $this->unit;
266 if (isset($this->system)) {
267 $json['system'] = $this->system;
269 if (isset($this->code)) {
270 $json['code'] = $this->code;
272 return $json;
276 * @param boolean $returnSXE
277 * @param \SimpleXMLElement $sxe
278 * @return string|\SimpleXMLElement
280 public function xmlSerialize($returnSXE = false, $sxe = null)
282 if (null === $sxe) {
283 $sxe = new \SimpleXMLElement('<Quantity xmlns="http://hl7.org/fhir"></Quantity>');
285 parent::xmlSerialize(true, $sxe);
286 if (isset($this->value)) {
287 $this->value->xmlSerialize(true, $sxe->addChild('value'));
289 if (isset($this->comparator)) {
290 $this->comparator->xmlSerialize(true, $sxe->addChild('comparator'));
292 if (isset($this->unit)) {
293 $this->unit->xmlSerialize(true, $sxe->addChild('unit'));
295 if (isset($this->system)) {
296 $this->system->xmlSerialize(true, $sxe->addChild('system'));
298 if (isset($this->code)) {
299 $this->code->xmlSerialize(true, $sxe->addChild('code'));
301 if ($returnSXE) {
302 return $sxe;
304 return $sxe->saveXML();