001package org.hl7.fhir.dstu2016may.model;
002
003
004
005
006/*
007  Copyright (c) 2011+, HL7, Inc.
008  All rights reserved.
009  
010  Redistribution and use in source and binary forms, with or without modification, 
011  are permitted provided that the following conditions are met:
012  
013   * Redistributions of source code must retain the above copyright notice, this 
014     list of conditions and the following disclaimer.
015   * Redistributions in binary form must reproduce the above copyright notice, 
016     this list of conditions and the following disclaimer in the documentation 
017     and/or other materials provided with the distribution.
018   * Neither the name of HL7 nor the names of its contributors may be used to 
019     endorse or promote products derived from this software without specific 
020     prior written permission.
021  
022  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
023  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
024  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
025  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
026  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
027  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
028  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
029  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
030  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
031  POSSIBILITY OF SUCH DAMAGE.
032  
033*/
034
035// Generated on Sun, May 8, 2016 03:05+1000 for FHIR v1.4.0
036import java.util.ArrayList;
037import java.util.List;
038
039import org.hl7.fhir.exceptions.FHIRException;
040import org.hl7.fhir.utilities.Utilities;
041
042import ca.uhn.fhir.model.api.annotation.Child;
043import ca.uhn.fhir.model.api.annotation.Description;
044import ca.uhn.fhir.model.api.annotation.ResourceDef;
045import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
046/**
047 * A photo, video, or audio recording acquired or used in healthcare. The actual content may be inline or provided by direct reference.
048 */
049@ResourceDef(name="Media", profile="http://hl7.org/fhir/Profile/Media")
050public class Media extends DomainResource {
051
052    public enum DigitalMediaType {
053        /**
054         * The media consists of one or more unmoving images, including photographs, computer-generated graphs and charts, and scanned documents
055         */
056        PHOTO, 
057        /**
058         * The media consists of a series of frames that capture a moving image
059         */
060        VIDEO, 
061        /**
062         * The media consists of a sound recording
063         */
064        AUDIO, 
065        /**
066         * added to help the parsers
067         */
068        NULL;
069        public static DigitalMediaType fromCode(String codeString) throws FHIRException {
070            if (codeString == null || "".equals(codeString))
071                return null;
072        if ("photo".equals(codeString))
073          return PHOTO;
074        if ("video".equals(codeString))
075          return VIDEO;
076        if ("audio".equals(codeString))
077          return AUDIO;
078        throw new FHIRException("Unknown DigitalMediaType code '"+codeString+"'");
079        }
080        public String toCode() {
081          switch (this) {
082            case PHOTO: return "photo";
083            case VIDEO: return "video";
084            case AUDIO: return "audio";
085            case NULL: return null;
086            default: return "?";
087          }
088        }
089        public String getSystem() {
090          switch (this) {
091            case PHOTO: return "http://hl7.org/fhir/digital-media-type";
092            case VIDEO: return "http://hl7.org/fhir/digital-media-type";
093            case AUDIO: return "http://hl7.org/fhir/digital-media-type";
094            case NULL: return null;
095            default: return "?";
096          }
097        }
098        public String getDefinition() {
099          switch (this) {
100            case PHOTO: return "The media consists of one or more unmoving images, including photographs, computer-generated graphs and charts, and scanned documents";
101            case VIDEO: return "The media consists of a series of frames that capture a moving image";
102            case AUDIO: return "The media consists of a sound recording";
103            case NULL: return null;
104            default: return "?";
105          }
106        }
107        public String getDisplay() {
108          switch (this) {
109            case PHOTO: return "Photo";
110            case VIDEO: return "Video";
111            case AUDIO: return "Audio";
112            case NULL: return null;
113            default: return "?";
114          }
115        }
116    }
117
118  public static class DigitalMediaTypeEnumFactory implements EnumFactory<DigitalMediaType> {
119    public DigitalMediaType fromCode(String codeString) throws IllegalArgumentException {
120      if (codeString == null || "".equals(codeString))
121            if (codeString == null || "".equals(codeString))
122                return null;
123        if ("photo".equals(codeString))
124          return DigitalMediaType.PHOTO;
125        if ("video".equals(codeString))
126          return DigitalMediaType.VIDEO;
127        if ("audio".equals(codeString))
128          return DigitalMediaType.AUDIO;
129        throw new IllegalArgumentException("Unknown DigitalMediaType code '"+codeString+"'");
130        }
131        public Enumeration<DigitalMediaType> fromType(Base code) throws FHIRException {
132          if (code == null || code.isEmpty())
133            return null;
134          String codeString = ((PrimitiveType) code).asStringValue();
135          if (codeString == null || "".equals(codeString))
136            return null;
137        if ("photo".equals(codeString))
138          return new Enumeration<DigitalMediaType>(this, DigitalMediaType.PHOTO);
139        if ("video".equals(codeString))
140          return new Enumeration<DigitalMediaType>(this, DigitalMediaType.VIDEO);
141        if ("audio".equals(codeString))
142          return new Enumeration<DigitalMediaType>(this, DigitalMediaType.AUDIO);
143        throw new FHIRException("Unknown DigitalMediaType code '"+codeString+"'");
144        }
145    public String toCode(DigitalMediaType code) {
146      if (code == DigitalMediaType.PHOTO)
147        return "photo";
148      if (code == DigitalMediaType.VIDEO)
149        return "video";
150      if (code == DigitalMediaType.AUDIO)
151        return "audio";
152      return "?";
153      }
154    public String toSystem(DigitalMediaType code) {
155      return code.getSystem();
156      }
157    }
158
159    /**
160     * Identifiers associated with the image - these may include identifiers for the image itself, identifiers for the context of its collection (e.g. series ids) and context ids such as accession numbers or other workflow identifiers.
161     */
162    @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
163    @Description(shortDefinition="Identifier(s) for the image", formalDefinition="Identifiers associated with the image - these may include identifiers for the image itself, identifiers for the context of its collection (e.g. series ids) and context ids such as accession numbers or other workflow identifiers." )
164    protected List<Identifier> identifier;
165
166    /**
167     * Whether the media is a photo (still image), an audio recording, or a video recording.
168     */
169    @Child(name = "type", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=true)
170    @Description(shortDefinition="photo | video | audio", formalDefinition="Whether the media is a photo (still image), an audio recording, or a video recording." )
171    protected Enumeration<DigitalMediaType> type;
172
173    /**
174     * Details of the type of the media - usually, how it was acquired (what type of device). If images sourced from a DICOM system, are wrapped in a Media resource, then this is the modality.
175     */
176    @Child(name = "subtype", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=true)
177    @Description(shortDefinition="The type of acquisition equipment/process", formalDefinition="Details of the type of the media - usually, how it was acquired (what type of device). If images sourced from a DICOM system, are wrapped in a Media resource, then this is the modality." )
178    protected CodeableConcept subtype;
179
180    /**
181     * The name of the imaging view e.g. Lateral or Antero-posterior (AP).
182     */
183    @Child(name = "view", type = {CodeableConcept.class}, order=3, min=0, max=1, modifier=false, summary=true)
184    @Description(shortDefinition="Imaging view, e.g. Lateral or Antero-posterior", formalDefinition="The name of the imaging view e.g. Lateral or Antero-posterior (AP)." )
185    protected CodeableConcept view;
186
187    /**
188     * Who/What this Media is a record of.
189     */
190    @Child(name = "subject", type = {Patient.class, Practitioner.class, Group.class, Device.class, Specimen.class}, order=4, min=0, max=1, modifier=false, summary=true)
191    @Description(shortDefinition="Who/What this Media is a record of", formalDefinition="Who/What this Media is a record of." )
192    protected Reference subject;
193
194    /**
195     * The actual object that is the target of the reference (Who/What this Media is a record of.)
196     */
197    protected Resource subjectTarget;
198
199    /**
200     * The person who administered the collection of the image.
201     */
202    @Child(name = "operator", type = {Practitioner.class}, order=5, min=0, max=1, modifier=false, summary=true)
203    @Description(shortDefinition="The person who generated the image", formalDefinition="The person who administered the collection of the image." )
204    protected Reference operator;
205
206    /**
207     * The actual object that is the target of the reference (The person who administered the collection of the image.)
208     */
209    protected Practitioner operatorTarget;
210
211    /**
212     * The name of the device / manufacturer of the device  that was used to make the recording.
213     */
214    @Child(name = "deviceName", type = {StringType.class}, order=6, min=0, max=1, modifier=false, summary=true)
215    @Description(shortDefinition="Name of the device/manufacturer", formalDefinition="The name of the device / manufacturer of the device  that was used to make the recording." )
216    protected StringType deviceName;
217
218    /**
219     * Height of the image in pixels (photo/video).
220     */
221    @Child(name = "height", type = {PositiveIntType.class}, order=7, min=0, max=1, modifier=false, summary=true)
222    @Description(shortDefinition="Height of the image in pixels (photo/video)", formalDefinition="Height of the image in pixels (photo/video)." )
223    protected PositiveIntType height;
224
225    /**
226     * Width of the image in pixels (photo/video).
227     */
228    @Child(name = "width", type = {PositiveIntType.class}, order=8, min=0, max=1, modifier=false, summary=true)
229    @Description(shortDefinition="Width of the image in pixels (photo/video)", formalDefinition="Width of the image in pixels (photo/video)." )
230    protected PositiveIntType width;
231
232    /**
233     * The number of frames in a photo. This is used with a multi-page fax, or an imaging acquisition context that takes multiple slices in a single image, or an animated gif. If there is more than one frame, this SHALL have a value in order to alert interface software that a multi-frame capable rendering widget is required.
234     */
235    @Child(name = "frames", type = {PositiveIntType.class}, order=9, min=0, max=1, modifier=false, summary=true)
236    @Description(shortDefinition="Number of frames if > 1 (photo)", formalDefinition="The number of frames in a photo. This is used with a multi-page fax, or an imaging acquisition context that takes multiple slices in a single image, or an animated gif. If there is more than one frame, this SHALL have a value in order to alert interface software that a multi-frame capable rendering widget is required." )
237    protected PositiveIntType frames;
238
239    /**
240     * The duration of the recording in seconds - for audio and video.
241     */
242    @Child(name = "duration", type = {UnsignedIntType.class}, order=10, min=0, max=1, modifier=false, summary=true)
243    @Description(shortDefinition="Length in seconds (audio / video)", formalDefinition="The duration of the recording in seconds - for audio and video." )
244    protected UnsignedIntType duration;
245
246    /**
247     * The actual content of the media - inline or by direct reference to the media source file.
248     */
249    @Child(name = "content", type = {Attachment.class}, order=11, min=1, max=1, modifier=false, summary=false)
250    @Description(shortDefinition="Actual Media - reference or data", formalDefinition="The actual content of the media - inline or by direct reference to the media source file." )
251    protected Attachment content;
252
253    private static final long serialVersionUID = -2144305643L;
254
255  /**
256   * Constructor
257   */
258    public Media() {
259      super();
260    }
261
262  /**
263   * Constructor
264   */
265    public Media(Enumeration<DigitalMediaType> type, Attachment content) {
266      super();
267      this.type = type;
268      this.content = content;
269    }
270
271    /**
272     * @return {@link #identifier} (Identifiers associated with the image - these may include identifiers for the image itself, identifiers for the context of its collection (e.g. series ids) and context ids such as accession numbers or other workflow identifiers.)
273     */
274    public List<Identifier> getIdentifier() { 
275      if (this.identifier == null)
276        this.identifier = new ArrayList<Identifier>();
277      return this.identifier;
278    }
279
280    public boolean hasIdentifier() { 
281      if (this.identifier == null)
282        return false;
283      for (Identifier item : this.identifier)
284        if (!item.isEmpty())
285          return true;
286      return false;
287    }
288
289    /**
290     * @return {@link #identifier} (Identifiers associated with the image - these may include identifiers for the image itself, identifiers for the context of its collection (e.g. series ids) and context ids such as accession numbers or other workflow identifiers.)
291     */
292    // syntactic sugar
293    public Identifier addIdentifier() { //3
294      Identifier t = new Identifier();
295      if (this.identifier == null)
296        this.identifier = new ArrayList<Identifier>();
297      this.identifier.add(t);
298      return t;
299    }
300
301    // syntactic sugar
302    public Media addIdentifier(Identifier t) { //3
303      if (t == null)
304        return this;
305      if (this.identifier == null)
306        this.identifier = new ArrayList<Identifier>();
307      this.identifier.add(t);
308      return this;
309    }
310
311    /**
312     * @return {@link #type} (Whether the media is a photo (still image), an audio recording, or a video recording.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value
313     */
314    public Enumeration<DigitalMediaType> getTypeElement() { 
315      if (this.type == null)
316        if (Configuration.errorOnAutoCreate())
317          throw new Error("Attempt to auto-create Media.type");
318        else if (Configuration.doAutoCreate())
319          this.type = new Enumeration<DigitalMediaType>(new DigitalMediaTypeEnumFactory()); // bb
320      return this.type;
321    }
322
323    public boolean hasTypeElement() { 
324      return this.type != null && !this.type.isEmpty();
325    }
326
327    public boolean hasType() { 
328      return this.type != null && !this.type.isEmpty();
329    }
330
331    /**
332     * @param value {@link #type} (Whether the media is a photo (still image), an audio recording, or a video recording.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value
333     */
334    public Media setTypeElement(Enumeration<DigitalMediaType> value) { 
335      this.type = value;
336      return this;
337    }
338
339    /**
340     * @return Whether the media is a photo (still image), an audio recording, or a video recording.
341     */
342    public DigitalMediaType getType() { 
343      return this.type == null ? null : this.type.getValue();
344    }
345
346    /**
347     * @param value Whether the media is a photo (still image), an audio recording, or a video recording.
348     */
349    public Media setType(DigitalMediaType value) { 
350        if (this.type == null)
351          this.type = new Enumeration<DigitalMediaType>(new DigitalMediaTypeEnumFactory());
352        this.type.setValue(value);
353      return this;
354    }
355
356    /**
357     * @return {@link #subtype} (Details of the type of the media - usually, how it was acquired (what type of device). If images sourced from a DICOM system, are wrapped in a Media resource, then this is the modality.)
358     */
359    public CodeableConcept getSubtype() { 
360      if (this.subtype == null)
361        if (Configuration.errorOnAutoCreate())
362          throw new Error("Attempt to auto-create Media.subtype");
363        else if (Configuration.doAutoCreate())
364          this.subtype = new CodeableConcept(); // cc
365      return this.subtype;
366    }
367
368    public boolean hasSubtype() { 
369      return this.subtype != null && !this.subtype.isEmpty();
370    }
371
372    /**
373     * @param value {@link #subtype} (Details of the type of the media - usually, how it was acquired (what type of device). If images sourced from a DICOM system, are wrapped in a Media resource, then this is the modality.)
374     */
375    public Media setSubtype(CodeableConcept value) { 
376      this.subtype = value;
377      return this;
378    }
379
380    /**
381     * @return {@link #view} (The name of the imaging view e.g. Lateral or Antero-posterior (AP).)
382     */
383    public CodeableConcept getView() { 
384      if (this.view == null)
385        if (Configuration.errorOnAutoCreate())
386          throw new Error("Attempt to auto-create Media.view");
387        else if (Configuration.doAutoCreate())
388          this.view = new CodeableConcept(); // cc
389      return this.view;
390    }
391
392    public boolean hasView() { 
393      return this.view != null && !this.view.isEmpty();
394    }
395
396    /**
397     * @param value {@link #view} (The name of the imaging view e.g. Lateral or Antero-posterior (AP).)
398     */
399    public Media setView(CodeableConcept value) { 
400      this.view = value;
401      return this;
402    }
403
404    /**
405     * @return {@link #subject} (Who/What this Media is a record of.)
406     */
407    public Reference getSubject() { 
408      if (this.subject == null)
409        if (Configuration.errorOnAutoCreate())
410          throw new Error("Attempt to auto-create Media.subject");
411        else if (Configuration.doAutoCreate())
412          this.subject = new Reference(); // cc
413      return this.subject;
414    }
415
416    public boolean hasSubject() { 
417      return this.subject != null && !this.subject.isEmpty();
418    }
419
420    /**
421     * @param value {@link #subject} (Who/What this Media is a record of.)
422     */
423    public Media setSubject(Reference value) { 
424      this.subject = value;
425      return this;
426    }
427
428    /**
429     * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Who/What this Media is a record of.)
430     */
431    public Resource getSubjectTarget() { 
432      return this.subjectTarget;
433    }
434
435    /**
436     * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Who/What this Media is a record of.)
437     */
438    public Media setSubjectTarget(Resource value) { 
439      this.subjectTarget = value;
440      return this;
441    }
442
443    /**
444     * @return {@link #operator} (The person who administered the collection of the image.)
445     */
446    public Reference getOperator() { 
447      if (this.operator == null)
448        if (Configuration.errorOnAutoCreate())
449          throw new Error("Attempt to auto-create Media.operator");
450        else if (Configuration.doAutoCreate())
451          this.operator = new Reference(); // cc
452      return this.operator;
453    }
454
455    public boolean hasOperator() { 
456      return this.operator != null && !this.operator.isEmpty();
457    }
458
459    /**
460     * @param value {@link #operator} (The person who administered the collection of the image.)
461     */
462    public Media setOperator(Reference value) { 
463      this.operator = value;
464      return this;
465    }
466
467    /**
468     * @return {@link #operator} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The person who administered the collection of the image.)
469     */
470    public Practitioner getOperatorTarget() { 
471      if (this.operatorTarget == null)
472        if (Configuration.errorOnAutoCreate())
473          throw new Error("Attempt to auto-create Media.operator");
474        else if (Configuration.doAutoCreate())
475          this.operatorTarget = new Practitioner(); // aa
476      return this.operatorTarget;
477    }
478
479    /**
480     * @param value {@link #operator} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The person who administered the collection of the image.)
481     */
482    public Media setOperatorTarget(Practitioner value) { 
483      this.operatorTarget = value;
484      return this;
485    }
486
487    /**
488     * @return {@link #deviceName} (The name of the device / manufacturer of the device  that was used to make the recording.). This is the underlying object with id, value and extensions. The accessor "getDeviceName" gives direct access to the value
489     */
490    public StringType getDeviceNameElement() { 
491      if (this.deviceName == null)
492        if (Configuration.errorOnAutoCreate())
493          throw new Error("Attempt to auto-create Media.deviceName");
494        else if (Configuration.doAutoCreate())
495          this.deviceName = new StringType(); // bb
496      return this.deviceName;
497    }
498
499    public boolean hasDeviceNameElement() { 
500      return this.deviceName != null && !this.deviceName.isEmpty();
501    }
502
503    public boolean hasDeviceName() { 
504      return this.deviceName != null && !this.deviceName.isEmpty();
505    }
506
507    /**
508     * @param value {@link #deviceName} (The name of the device / manufacturer of the device  that was used to make the recording.). This is the underlying object with id, value and extensions. The accessor "getDeviceName" gives direct access to the value
509     */
510    public Media setDeviceNameElement(StringType value) { 
511      this.deviceName = value;
512      return this;
513    }
514
515    /**
516     * @return The name of the device / manufacturer of the device  that was used to make the recording.
517     */
518    public String getDeviceName() { 
519      return this.deviceName == null ? null : this.deviceName.getValue();
520    }
521
522    /**
523     * @param value The name of the device / manufacturer of the device  that was used to make the recording.
524     */
525    public Media setDeviceName(String value) { 
526      if (Utilities.noString(value))
527        this.deviceName = null;
528      else {
529        if (this.deviceName == null)
530          this.deviceName = new StringType();
531        this.deviceName.setValue(value);
532      }
533      return this;
534    }
535
536    /**
537     * @return {@link #height} (Height of the image in pixels (photo/video).). This is the underlying object with id, value and extensions. The accessor "getHeight" gives direct access to the value
538     */
539    public PositiveIntType getHeightElement() { 
540      if (this.height == null)
541        if (Configuration.errorOnAutoCreate())
542          throw new Error("Attempt to auto-create Media.height");
543        else if (Configuration.doAutoCreate())
544          this.height = new PositiveIntType(); // bb
545      return this.height;
546    }
547
548    public boolean hasHeightElement() { 
549      return this.height != null && !this.height.isEmpty();
550    }
551
552    public boolean hasHeight() { 
553      return this.height != null && !this.height.isEmpty();
554    }
555
556    /**
557     * @param value {@link #height} (Height of the image in pixels (photo/video).). This is the underlying object with id, value and extensions. The accessor "getHeight" gives direct access to the value
558     */
559    public Media setHeightElement(PositiveIntType value) { 
560      this.height = value;
561      return this;
562    }
563
564    /**
565     * @return Height of the image in pixels (photo/video).
566     */
567    public int getHeight() { 
568      return this.height == null || this.height.isEmpty() ? 0 : this.height.getValue();
569    }
570
571    /**
572     * @param value Height of the image in pixels (photo/video).
573     */
574    public Media setHeight(int value) { 
575        if (this.height == null)
576          this.height = new PositiveIntType();
577        this.height.setValue(value);
578      return this;
579    }
580
581    /**
582     * @return {@link #width} (Width of the image in pixels (photo/video).). This is the underlying object with id, value and extensions. The accessor "getWidth" gives direct access to the value
583     */
584    public PositiveIntType getWidthElement() { 
585      if (this.width == null)
586        if (Configuration.errorOnAutoCreate())
587          throw new Error("Attempt to auto-create Media.width");
588        else if (Configuration.doAutoCreate())
589          this.width = new PositiveIntType(); // bb
590      return this.width;
591    }
592
593    public boolean hasWidthElement() { 
594      return this.width != null && !this.width.isEmpty();
595    }
596
597    public boolean hasWidth() { 
598      return this.width != null && !this.width.isEmpty();
599    }
600
601    /**
602     * @param value {@link #width} (Width of the image in pixels (photo/video).). This is the underlying object with id, value and extensions. The accessor "getWidth" gives direct access to the value
603     */
604    public Media setWidthElement(PositiveIntType value) { 
605      this.width = value;
606      return this;
607    }
608
609    /**
610     * @return Width of the image in pixels (photo/video).
611     */
612    public int getWidth() { 
613      return this.width == null || this.width.isEmpty() ? 0 : this.width.getValue();
614    }
615
616    /**
617     * @param value Width of the image in pixels (photo/video).
618     */
619    public Media setWidth(int value) { 
620        if (this.width == null)
621          this.width = new PositiveIntType();
622        this.width.setValue(value);
623      return this;
624    }
625
626    /**
627     * @return {@link #frames} (The number of frames in a photo. This is used with a multi-page fax, or an imaging acquisition context that takes multiple slices in a single image, or an animated gif. If there is more than one frame, this SHALL have a value in order to alert interface software that a multi-frame capable rendering widget is required.). This is the underlying object with id, value and extensions. The accessor "getFrames" gives direct access to the value
628     */
629    public PositiveIntType getFramesElement() { 
630      if (this.frames == null)
631        if (Configuration.errorOnAutoCreate())
632          throw new Error("Attempt to auto-create Media.frames");
633        else if (Configuration.doAutoCreate())
634          this.frames = new PositiveIntType(); // bb
635      return this.frames;
636    }
637
638    public boolean hasFramesElement() { 
639      return this.frames != null && !this.frames.isEmpty();
640    }
641
642    public boolean hasFrames() { 
643      return this.frames != null && !this.frames.isEmpty();
644    }
645
646    /**
647     * @param value {@link #frames} (The number of frames in a photo. This is used with a multi-page fax, or an imaging acquisition context that takes multiple slices in a single image, or an animated gif. If there is more than one frame, this SHALL have a value in order to alert interface software that a multi-frame capable rendering widget is required.). This is the underlying object with id, value and extensions. The accessor "getFrames" gives direct access to the value
648     */
649    public Media setFramesElement(PositiveIntType value) { 
650      this.frames = value;
651      return this;
652    }
653
654    /**
655     * @return The number of frames in a photo. This is used with a multi-page fax, or an imaging acquisition context that takes multiple slices in a single image, or an animated gif. If there is more than one frame, this SHALL have a value in order to alert interface software that a multi-frame capable rendering widget is required.
656     */
657    public int getFrames() { 
658      return this.frames == null || this.frames.isEmpty() ? 0 : this.frames.getValue();
659    }
660
661    /**
662     * @param value The number of frames in a photo. This is used with a multi-page fax, or an imaging acquisition context that takes multiple slices in a single image, or an animated gif. If there is more than one frame, this SHALL have a value in order to alert interface software that a multi-frame capable rendering widget is required.
663     */
664    public Media setFrames(int value) { 
665        if (this.frames == null)
666          this.frames = new PositiveIntType();
667        this.frames.setValue(value);
668      return this;
669    }
670
671    /**
672     * @return {@link #duration} (The duration of the recording in seconds - for audio and video.). This is the underlying object with id, value and extensions. The accessor "getDuration" gives direct access to the value
673     */
674    public UnsignedIntType getDurationElement() { 
675      if (this.duration == null)
676        if (Configuration.errorOnAutoCreate())
677          throw new Error("Attempt to auto-create Media.duration");
678        else if (Configuration.doAutoCreate())
679          this.duration = new UnsignedIntType(); // bb
680      return this.duration;
681    }
682
683    public boolean hasDurationElement() { 
684      return this.duration != null && !this.duration.isEmpty();
685    }
686
687    public boolean hasDuration() { 
688      return this.duration != null && !this.duration.isEmpty();
689    }
690
691    /**
692     * @param value {@link #duration} (The duration of the recording in seconds - for audio and video.). This is the underlying object with id, value and extensions. The accessor "getDuration" gives direct access to the value
693     */
694    public Media setDurationElement(UnsignedIntType value) { 
695      this.duration = value;
696      return this;
697    }
698
699    /**
700     * @return The duration of the recording in seconds - for audio and video.
701     */
702    public int getDuration() { 
703      return this.duration == null || this.duration.isEmpty() ? 0 : this.duration.getValue();
704    }
705
706    /**
707     * @param value The duration of the recording in seconds - for audio and video.
708     */
709    public Media setDuration(int value) { 
710        if (this.duration == null)
711          this.duration = new UnsignedIntType();
712        this.duration.setValue(value);
713      return this;
714    }
715
716    /**
717     * @return {@link #content} (The actual content of the media - inline or by direct reference to the media source file.)
718     */
719    public Attachment getContent() { 
720      if (this.content == null)
721        if (Configuration.errorOnAutoCreate())
722          throw new Error("Attempt to auto-create Media.content");
723        else if (Configuration.doAutoCreate())
724          this.content = new Attachment(); // cc
725      return this.content;
726    }
727
728    public boolean hasContent() { 
729      return this.content != null && !this.content.isEmpty();
730    }
731
732    /**
733     * @param value {@link #content} (The actual content of the media - inline or by direct reference to the media source file.)
734     */
735    public Media setContent(Attachment value) { 
736      this.content = value;
737      return this;
738    }
739
740      protected void listChildren(List<Property> childrenList) {
741        super.listChildren(childrenList);
742        childrenList.add(new Property("identifier", "Identifier", "Identifiers associated with the image - these may include identifiers for the image itself, identifiers for the context of its collection (e.g. series ids) and context ids such as accession numbers or other workflow identifiers.", 0, java.lang.Integer.MAX_VALUE, identifier));
743        childrenList.add(new Property("type", "code", "Whether the media is a photo (still image), an audio recording, or a video recording.", 0, java.lang.Integer.MAX_VALUE, type));
744        childrenList.add(new Property("subtype", "CodeableConcept", "Details of the type of the media - usually, how it was acquired (what type of device). If images sourced from a DICOM system, are wrapped in a Media resource, then this is the modality.", 0, java.lang.Integer.MAX_VALUE, subtype));
745        childrenList.add(new Property("view", "CodeableConcept", "The name of the imaging view e.g. Lateral or Antero-posterior (AP).", 0, java.lang.Integer.MAX_VALUE, view));
746        childrenList.add(new Property("subject", "Reference(Patient|Practitioner|Group|Device|Specimen)", "Who/What this Media is a record of.", 0, java.lang.Integer.MAX_VALUE, subject));
747        childrenList.add(new Property("operator", "Reference(Practitioner)", "The person who administered the collection of the image.", 0, java.lang.Integer.MAX_VALUE, operator));
748        childrenList.add(new Property("deviceName", "string", "The name of the device / manufacturer of the device  that was used to make the recording.", 0, java.lang.Integer.MAX_VALUE, deviceName));
749        childrenList.add(new Property("height", "positiveInt", "Height of the image in pixels (photo/video).", 0, java.lang.Integer.MAX_VALUE, height));
750        childrenList.add(new Property("width", "positiveInt", "Width of the image in pixels (photo/video).", 0, java.lang.Integer.MAX_VALUE, width));
751        childrenList.add(new Property("frames", "positiveInt", "The number of frames in a photo. This is used with a multi-page fax, or an imaging acquisition context that takes multiple slices in a single image, or an animated gif. If there is more than one frame, this SHALL have a value in order to alert interface software that a multi-frame capable rendering widget is required.", 0, java.lang.Integer.MAX_VALUE, frames));
752        childrenList.add(new Property("duration", "unsignedInt", "The duration of the recording in seconds - for audio and video.", 0, java.lang.Integer.MAX_VALUE, duration));
753        childrenList.add(new Property("content", "Attachment", "The actual content of the media - inline or by direct reference to the media source file.", 0, java.lang.Integer.MAX_VALUE, content));
754      }
755
756      @Override
757      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
758        switch (hash) {
759        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
760        case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // Enumeration<DigitalMediaType>
761        case -1867567750: /*subtype*/ return this.subtype == null ? new Base[0] : new Base[] {this.subtype}; // CodeableConcept
762        case 3619493: /*view*/ return this.view == null ? new Base[0] : new Base[] {this.view}; // CodeableConcept
763        case -1867885268: /*subject*/ return this.subject == null ? new Base[0] : new Base[] {this.subject}; // Reference
764        case -500553564: /*operator*/ return this.operator == null ? new Base[0] : new Base[] {this.operator}; // Reference
765        case 780988929: /*deviceName*/ return this.deviceName == null ? new Base[0] : new Base[] {this.deviceName}; // StringType
766        case -1221029593: /*height*/ return this.height == null ? new Base[0] : new Base[] {this.height}; // PositiveIntType
767        case 113126854: /*width*/ return this.width == null ? new Base[0] : new Base[] {this.width}; // PositiveIntType
768        case -1266514778: /*frames*/ return this.frames == null ? new Base[0] : new Base[] {this.frames}; // PositiveIntType
769        case -1992012396: /*duration*/ return this.duration == null ? new Base[0] : new Base[] {this.duration}; // UnsignedIntType
770        case 951530617: /*content*/ return this.content == null ? new Base[0] : new Base[] {this.content}; // Attachment
771        default: return super.getProperty(hash, name, checkValid);
772        }
773
774      }
775
776      @Override
777      public void setProperty(int hash, String name, Base value) throws FHIRException {
778        switch (hash) {
779        case -1618432855: // identifier
780          this.getIdentifier().add(castToIdentifier(value)); // Identifier
781          break;
782        case 3575610: // type
783          this.type = new DigitalMediaTypeEnumFactory().fromType(value); // Enumeration<DigitalMediaType>
784          break;
785        case -1867567750: // subtype
786          this.subtype = castToCodeableConcept(value); // CodeableConcept
787          break;
788        case 3619493: // view
789          this.view = castToCodeableConcept(value); // CodeableConcept
790          break;
791        case -1867885268: // subject
792          this.subject = castToReference(value); // Reference
793          break;
794        case -500553564: // operator
795          this.operator = castToReference(value); // Reference
796          break;
797        case 780988929: // deviceName
798          this.deviceName = castToString(value); // StringType
799          break;
800        case -1221029593: // height
801          this.height = castToPositiveInt(value); // PositiveIntType
802          break;
803        case 113126854: // width
804          this.width = castToPositiveInt(value); // PositiveIntType
805          break;
806        case -1266514778: // frames
807          this.frames = castToPositiveInt(value); // PositiveIntType
808          break;
809        case -1992012396: // duration
810          this.duration = castToUnsignedInt(value); // UnsignedIntType
811          break;
812        case 951530617: // content
813          this.content = castToAttachment(value); // Attachment
814          break;
815        default: super.setProperty(hash, name, value);
816        }
817
818      }
819
820      @Override
821      public void setProperty(String name, Base value) throws FHIRException {
822        if (name.equals("identifier"))
823          this.getIdentifier().add(castToIdentifier(value));
824        else if (name.equals("type"))
825          this.type = new DigitalMediaTypeEnumFactory().fromType(value); // Enumeration<DigitalMediaType>
826        else if (name.equals("subtype"))
827          this.subtype = castToCodeableConcept(value); // CodeableConcept
828        else if (name.equals("view"))
829          this.view = castToCodeableConcept(value); // CodeableConcept
830        else if (name.equals("subject"))
831          this.subject = castToReference(value); // Reference
832        else if (name.equals("operator"))
833          this.operator = castToReference(value); // Reference
834        else if (name.equals("deviceName"))
835          this.deviceName = castToString(value); // StringType
836        else if (name.equals("height"))
837          this.height = castToPositiveInt(value); // PositiveIntType
838        else if (name.equals("width"))
839          this.width = castToPositiveInt(value); // PositiveIntType
840        else if (name.equals("frames"))
841          this.frames = castToPositiveInt(value); // PositiveIntType
842        else if (name.equals("duration"))
843          this.duration = castToUnsignedInt(value); // UnsignedIntType
844        else if (name.equals("content"))
845          this.content = castToAttachment(value); // Attachment
846        else
847          super.setProperty(name, value);
848      }
849
850      @Override
851      public Base makeProperty(int hash, String name) throws FHIRException {
852        switch (hash) {
853        case -1618432855:  return addIdentifier(); // Identifier
854        case 3575610: throw new FHIRException("Cannot make property type as it is not a complex type"); // Enumeration<DigitalMediaType>
855        case -1867567750:  return getSubtype(); // CodeableConcept
856        case 3619493:  return getView(); // CodeableConcept
857        case -1867885268:  return getSubject(); // Reference
858        case -500553564:  return getOperator(); // Reference
859        case 780988929: throw new FHIRException("Cannot make property deviceName as it is not a complex type"); // StringType
860        case -1221029593: throw new FHIRException("Cannot make property height as it is not a complex type"); // PositiveIntType
861        case 113126854: throw new FHIRException("Cannot make property width as it is not a complex type"); // PositiveIntType
862        case -1266514778: throw new FHIRException("Cannot make property frames as it is not a complex type"); // PositiveIntType
863        case -1992012396: throw new FHIRException("Cannot make property duration as it is not a complex type"); // UnsignedIntType
864        case 951530617:  return getContent(); // Attachment
865        default: return super.makeProperty(hash, name);
866        }
867
868      }
869
870      @Override
871      public Base addChild(String name) throws FHIRException {
872        if (name.equals("identifier")) {
873          return addIdentifier();
874        }
875        else if (name.equals("type")) {
876          throw new FHIRException("Cannot call addChild on a primitive type Media.type");
877        }
878        else if (name.equals("subtype")) {
879          this.subtype = new CodeableConcept();
880          return this.subtype;
881        }
882        else if (name.equals("view")) {
883          this.view = new CodeableConcept();
884          return this.view;
885        }
886        else if (name.equals("subject")) {
887          this.subject = new Reference();
888          return this.subject;
889        }
890        else if (name.equals("operator")) {
891          this.operator = new Reference();
892          return this.operator;
893        }
894        else if (name.equals("deviceName")) {
895          throw new FHIRException("Cannot call addChild on a primitive type Media.deviceName");
896        }
897        else if (name.equals("height")) {
898          throw new FHIRException("Cannot call addChild on a primitive type Media.height");
899        }
900        else if (name.equals("width")) {
901          throw new FHIRException("Cannot call addChild on a primitive type Media.width");
902        }
903        else if (name.equals("frames")) {
904          throw new FHIRException("Cannot call addChild on a primitive type Media.frames");
905        }
906        else if (name.equals("duration")) {
907          throw new FHIRException("Cannot call addChild on a primitive type Media.duration");
908        }
909        else if (name.equals("content")) {
910          this.content = new Attachment();
911          return this.content;
912        }
913        else
914          return super.addChild(name);
915      }
916
917  public String fhirType() {
918    return "Media";
919
920  }
921
922      public Media copy() {
923        Media dst = new Media();
924        copyValues(dst);
925        if (identifier != null) {
926          dst.identifier = new ArrayList<Identifier>();
927          for (Identifier i : identifier)
928            dst.identifier.add(i.copy());
929        };
930        dst.type = type == null ? null : type.copy();
931        dst.subtype = subtype == null ? null : subtype.copy();
932        dst.view = view == null ? null : view.copy();
933        dst.subject = subject == null ? null : subject.copy();
934        dst.operator = operator == null ? null : operator.copy();
935        dst.deviceName = deviceName == null ? null : deviceName.copy();
936        dst.height = height == null ? null : height.copy();
937        dst.width = width == null ? null : width.copy();
938        dst.frames = frames == null ? null : frames.copy();
939        dst.duration = duration == null ? null : duration.copy();
940        dst.content = content == null ? null : content.copy();
941        return dst;
942      }
943
944      protected Media typedCopy() {
945        return copy();
946      }
947
948      @Override
949      public boolean equalsDeep(Base other) {
950        if (!super.equalsDeep(other))
951          return false;
952        if (!(other instanceof Media))
953          return false;
954        Media o = (Media) other;
955        return compareDeep(identifier, o.identifier, true) && compareDeep(type, o.type, true) && compareDeep(subtype, o.subtype, true)
956           && compareDeep(view, o.view, true) && compareDeep(subject, o.subject, true) && compareDeep(operator, o.operator, true)
957           && compareDeep(deviceName, o.deviceName, true) && compareDeep(height, o.height, true) && compareDeep(width, o.width, true)
958           && compareDeep(frames, o.frames, true) && compareDeep(duration, o.duration, true) && compareDeep(content, o.content, true)
959          ;
960      }
961
962      @Override
963      public boolean equalsShallow(Base other) {
964        if (!super.equalsShallow(other))
965          return false;
966        if (!(other instanceof Media))
967          return false;
968        Media o = (Media) other;
969        return compareValues(type, o.type, true) && compareValues(deviceName, o.deviceName, true) && compareValues(height, o.height, true)
970           && compareValues(width, o.width, true) && compareValues(frames, o.frames, true) && compareValues(duration, o.duration, true)
971          ;
972      }
973
974      public boolean isEmpty() {
975        return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (type == null || type.isEmpty())
976           && (subtype == null || subtype.isEmpty()) && (view == null || view.isEmpty()) && (subject == null || subject.isEmpty())
977           && (operator == null || operator.isEmpty()) && (deviceName == null || deviceName.isEmpty())
978           && (height == null || height.isEmpty()) && (width == null || width.isEmpty()) && (frames == null || frames.isEmpty())
979           && (duration == null || duration.isEmpty()) && (content == null || content.isEmpty());
980      }
981
982  @Override
983  public ResourceType getResourceType() {
984    return ResourceType.Media;
985   }
986
987 /**
988   * Search parameter: <b>patient</b>
989   * <p>
990   * Description: <b>Who/What this Media is a record of</b><br>
991   * Type: <b>reference</b><br>
992   * Path: <b>Media.subject</b><br>
993   * </p>
994   */
995  @SearchParamDefinition(name="patient", path="Media.subject", description="Who/What this Media is a record of", type="reference" )
996  public static final String SP_PATIENT = "patient";
997 /**
998   * <b>Fluent Client</b> search parameter constant for <b>patient</b>
999   * <p>
1000   * Description: <b>Who/What this Media is a record of</b><br>
1001   * Type: <b>reference</b><br>
1002   * Path: <b>Media.subject</b><br>
1003   * </p>
1004   */
1005  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT);
1006
1007/**
1008   * Constant for fluent queries to be used to add include statements. Specifies
1009   * the path value of "<b>Media:patient</b>".
1010   */
1011  public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("Media:patient").toLocked();
1012
1013 /**
1014   * Search parameter: <b>created</b>
1015   * <p>
1016   * Description: <b>Date attachment was first created</b><br>
1017   * Type: <b>date</b><br>
1018   * Path: <b>Media.content.creation</b><br>
1019   * </p>
1020   */
1021  @SearchParamDefinition(name="created", path="Media.content.creation", description="Date attachment was first created", type="date" )
1022  public static final String SP_CREATED = "created";
1023 /**
1024   * <b>Fluent Client</b> search parameter constant for <b>created</b>
1025   * <p>
1026   * Description: <b>Date attachment was first created</b><br>
1027   * Type: <b>date</b><br>
1028   * Path: <b>Media.content.creation</b><br>
1029   * </p>
1030   */
1031  public static final ca.uhn.fhir.rest.gclient.DateClientParam CREATED = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_CREATED);
1032
1033 /**
1034   * Search parameter: <b>subject</b>
1035   * <p>
1036   * Description: <b>Who/What this Media is a record of</b><br>
1037   * Type: <b>reference</b><br>
1038   * Path: <b>Media.subject</b><br>
1039   * </p>
1040   */
1041  @SearchParamDefinition(name="subject", path="Media.subject", description="Who/What this Media is a record of", type="reference" )
1042  public static final String SP_SUBJECT = "subject";
1043 /**
1044   * <b>Fluent Client</b> search parameter constant for <b>subject</b>
1045   * <p>
1046   * Description: <b>Who/What this Media is a record of</b><br>
1047   * Type: <b>reference</b><br>
1048   * Path: <b>Media.subject</b><br>
1049   * </p>
1050   */
1051  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUBJECT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SUBJECT);
1052
1053/**
1054   * Constant for fluent queries to be used to add include statements. Specifies
1055   * the path value of "<b>Media:subject</b>".
1056   */
1057  public static final ca.uhn.fhir.model.api.Include INCLUDE_SUBJECT = new ca.uhn.fhir.model.api.Include("Media:subject").toLocked();
1058
1059 /**
1060   * Search parameter: <b>subtype</b>
1061   * <p>
1062   * Description: <b>The type of acquisition equipment/process</b><br>
1063   * Type: <b>token</b><br>
1064   * Path: <b>Media.subtype</b><br>
1065   * </p>
1066   */
1067  @SearchParamDefinition(name="subtype", path="Media.subtype", description="The type of acquisition equipment/process", type="token" )
1068  public static final String SP_SUBTYPE = "subtype";
1069 /**
1070   * <b>Fluent Client</b> search parameter constant for <b>subtype</b>
1071   * <p>
1072   * Description: <b>The type of acquisition equipment/process</b><br>
1073   * Type: <b>token</b><br>
1074   * Path: <b>Media.subtype</b><br>
1075   * </p>
1076   */
1077  public static final ca.uhn.fhir.rest.gclient.TokenClientParam SUBTYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_SUBTYPE);
1078
1079 /**
1080   * Search parameter: <b>view</b>
1081   * <p>
1082   * Description: <b>Imaging view, e.g. Lateral or Antero-posterior</b><br>
1083   * Type: <b>token</b><br>
1084   * Path: <b>Media.view</b><br>
1085   * </p>
1086   */
1087  @SearchParamDefinition(name="view", path="Media.view", description="Imaging view, e.g. Lateral or Antero-posterior", type="token" )
1088  public static final String SP_VIEW = "view";
1089 /**
1090   * <b>Fluent Client</b> search parameter constant for <b>view</b>
1091   * <p>
1092   * Description: <b>Imaging view, e.g. Lateral or Antero-posterior</b><br>
1093   * Type: <b>token</b><br>
1094   * Path: <b>Media.view</b><br>
1095   * </p>
1096   */
1097  public static final ca.uhn.fhir.rest.gclient.TokenClientParam VIEW = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VIEW);
1098
1099 /**
1100   * Search parameter: <b>type</b>
1101   * <p>
1102   * Description: <b>photo | video | audio</b><br>
1103   * Type: <b>token</b><br>
1104   * Path: <b>Media.type</b><br>
1105   * </p>
1106   */
1107  @SearchParamDefinition(name="type", path="Media.type", description="photo | video | audio", type="token" )
1108  public static final String SP_TYPE = "type";
1109 /**
1110   * <b>Fluent Client</b> search parameter constant for <b>type</b>
1111   * <p>
1112   * Description: <b>photo | video | audio</b><br>
1113   * Type: <b>token</b><br>
1114   * Path: <b>Media.type</b><br>
1115   * </p>
1116   */
1117  public static final ca.uhn.fhir.rest.gclient.TokenClientParam TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TYPE);
1118
1119 /**
1120   * Search parameter: <b>identifier</b>
1121   * <p>
1122   * Description: <b>Identifier(s) for the image</b><br>
1123   * Type: <b>token</b><br>
1124   * Path: <b>Media.identifier</b><br>
1125   * </p>
1126   */
1127  @SearchParamDefinition(name="identifier", path="Media.identifier", description="Identifier(s) for the image", type="token" )
1128  public static final String SP_IDENTIFIER = "identifier";
1129 /**
1130   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
1131   * <p>
1132   * Description: <b>Identifier(s) for the image</b><br>
1133   * Type: <b>token</b><br>
1134   * Path: <b>Media.identifier</b><br>
1135   * </p>
1136   */
1137  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
1138
1139 /**
1140   * Search parameter: <b>operator</b>
1141   * <p>
1142   * Description: <b>The person who generated the image</b><br>
1143   * Type: <b>reference</b><br>
1144   * Path: <b>Media.operator</b><br>
1145   * </p>
1146   */
1147  @SearchParamDefinition(name="operator", path="Media.operator", description="The person who generated the image", type="reference" )
1148  public static final String SP_OPERATOR = "operator";
1149 /**
1150   * <b>Fluent Client</b> search parameter constant for <b>operator</b>
1151   * <p>
1152   * Description: <b>The person who generated the image</b><br>
1153   * Type: <b>reference</b><br>
1154   * Path: <b>Media.operator</b><br>
1155   * </p>
1156   */
1157  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam OPERATOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_OPERATOR);
1158
1159/**
1160   * Constant for fluent queries to be used to add include statements. Specifies
1161   * the path value of "<b>Media:operator</b>".
1162   */
1163  public static final ca.uhn.fhir.model.api.Include INCLUDE_OPERATOR = new ca.uhn.fhir.model.api.Include("Media:operator").toLocked();
1164
1165
1166}