text: // Generated by CoffeeScript 1.12.7
  (function() {
    var Address, Attachment, BackboneElement, CORE, CodeableConcept, Coding, ContactPoint, DT, DomainResource, Element, ElementDefinition, Extension, HumanName, Identifier, ImagingObjectSelection, InstanceComponent, Narrative, Parameters, Period, Quantity, Range, Ratio, Reference, Resource, SampledData, SeriesComponent, StudyComponent, Timing,
      extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
      hasProp = {}.hasOwnProperty;
  
    DT = require('../cql-datatypes');
  
    CORE = require('./core');
  
    Element = CORE.Element;
  
    Resource = CORE.Resource;
  
    Timing = CORE.Timing;
  
    Period = CORE.Period;
  
    Parameters = CORE.Parameters;
  
    Coding = CORE.Coding;
  
    Resource = CORE.Resource;
  
    Range = CORE.Range;
  
    Quantity = CORE.Quantity;
  
    Attachment = CORE.Attachment;
  
    BackboneElement = CORE.BackboneElement;
  
    DomainResource = CORE.DomainResource;
  
    ContactPoint = CORE.ContactPoint;
  
    ElementDefinition = CORE.ElementDefinition;
  
    Extension = CORE.Extension;
  
    HumanName = CORE.HumanName;
  
    Address = CORE.Address;
  
    Ratio = CORE.Ratio;
  
    SampledData = CORE.SampledData;
  
    Reference = CORE.Reference;
  
    CodeableConcept = CORE.CodeableConcept;
  
    Identifier = CORE.Identifier;
  
    Narrative = CORE.Narrative;
  
    Element = CORE.Element;
  
  
    /** 
    Embedded class
    @class InstanceComponent
    @exports  InstanceComponent as InstanceComponent
     */
  
    InstanceComponent = (function(superClass) {
      extend(InstanceComponent, superClass);
  
      function InstanceComponent(json) {
        this.json = json;
        InstanceComponent.__super__.constructor.call(this, this.json);
      }
  
  
      /**
      SOP class uid of the selected instance.
      @returns {oid}
       */
  
      InstanceComponent.prototype.sopClass = function() {
        if (this.json['sopClass']) {
          return new oid(this.json['sopClass']);
        }
      };
  
  
      /**
      SOP Instance uid of the selected instance.
      @returns {oid}
       */
  
      InstanceComponent.prototype.uid = function() {
        if (this.json['uid']) {
          return new oid(this.json['uid']);
        }
      };
  
  
      /**
      The DICOM Application Entity Title where the DICOM SOP instance can be retrieved.
      @returns {Array} an array of {@link String} objects
       */
  
      InstanceComponent.prototype.retrieveAETitle = function() {
        return this.json['retrieveAETitle'];
      };
  
  
      /**
      WADO-RS URL to retrieve the DICOM SOP Instance.
      @returns {Array} an array of {@link String} objects
       */
  
      InstanceComponent.prototype.retrieveUrl = function() {
        return this.json['retrieveUrl'];
      };
  
      return InstanceComponent;
  
    })(BackboneElement);
  
  
    /** 
    Embedded class
    @class SeriesComponent
    @exports  SeriesComponent as SeriesComponent
     */
  
    SeriesComponent = (function(superClass) {
      extend(SeriesComponent, superClass);
  
      function SeriesComponent(json) {
        this.json = json;
        SeriesComponent.__super__.constructor.call(this, this.json);
      }
  
  
      /**
      Series instance uid of the SOP instances in the selection.
      @returns {oid}
       */
  
      SeriesComponent.prototype.uid = function() {
        if (this.json['uid']) {
          return new oid(this.json['uid']);
        }
      };
  
  
      /**
      The DICOM Application Entity Title where the series can be retrieved.
      Note that this AE Title is provided to retrieve all SOP instances of the series not only those in the selection.
      @returns {Array} an array of {@link String} objects
       */
  
      SeriesComponent.prototype.retrieveAETitle = function() {
        return this.json['retrieveAETitle'];
      };
  
  
      /**
      WADO-RS URL to retrieve the series Note that this URL retrieves all SOP instances of the series not only those in the selection.
      @returns {Array} an array of {@link String} objects
       */
  
      SeriesComponent.prototype.retrieveUrl = function() {
        return this.json['retrieveUrl'];
      };
  
  
      /**
      Identity and locating information of the selected DICOM SOP instances.
      @returns {Array} an array of {@link InstanceComponent} objects
       */
  
      SeriesComponent.prototype.instance = function() {
        var i, item, len, ref, results;
        if (this.json['instance']) {
          ref = this.json['instance'];
          results = [];
          for (i = 0, len = ref.length; i < len; i++) {
            item = ref[i];
            results.push(new InstanceComponent(item));
          }
          return results;
        }
      };
  
      return SeriesComponent;
  
    })(BackboneElement);
  
  
    /** 
    Embedded class
    @class StudyComponent
    @exports  StudyComponent as StudyComponent
     */
  
    StudyComponent = (function(superClass) {
      extend(StudyComponent, superClass);
  
      function StudyComponent(json) {
        this.json = json;
        StudyComponent.__super__.constructor.call(this, this.json);
      }
  
  
      /**
      Study instance uid of the SOP instances in the selection.
      @returns {oid}
       */
  
      StudyComponent.prototype.uid = function() {
        if (this.json['uid']) {
          return new oid(this.json['uid']);
        }
      };
  
  
      /**
      The DICOM Application Entity Title where the study can be retrieved.
      Note that this AE Title is provided to retrieve all SOP instances of the study, not only those in the selection.
      @returns {Array} an array of {@link String} objects
       */
  
      StudyComponent.prototype.retrieveAETitle = function() {
        return this.json['retrieveAETitle'];
      };
  
  
      /**
      WADO-RS URL to retrieve the study. Note that this URL retrieves all SOP instances of the study, not only those in the selection.
      @returns {Array} an array of {@link String} objects
       */
  
      StudyComponent.prototype.retrieveUrl = function() {
        return this.json['retrieveUrl'];
      };
  
  
      /**
      Series indetity and locating information of the DICOM SOP instances in the selection.
      @returns {Array} an array of {@link SeriesComponent} objects
       */
  
      StudyComponent.prototype.series = function() {
        var i, item, len, ref, results;
        if (this.json['series']) {
          ref = this.json['series'];
          results = [];
          for (i = 0, len = ref.length; i < len; i++) {
            item = ref[i];
            results.push(new SeriesComponent(item));
          }
          return results;
        }
      };
  
      return StudyComponent;
  
    })(BackboneElement);
  
  
    /**
    A set of DICOM SOP Instances of a patient, selected for some application purpose, e.g., quality assurance, teaching, conference, consulting, etc.  Objects selected can be from different studies, but must be of the same patient.
    @class ImagingObjectSelection
    @exports ImagingObjectSelection as ImagingObjectSelection
     */
  
    ImagingObjectSelection = (function(superClass) {
      extend(ImagingObjectSelection, superClass);
  
      function ImagingObjectSelection(json) {
        this.json = json;
        ImagingObjectSelection.__super__.constructor.call(this, this.json);
      }
  
  
      /**
      Instance UID of the DICOM KOS SOP Instances represenetd in this resource.
      @returns {oid}
       */
  
      ImagingObjectSelection.prototype.uid = function() {
        if (this.json['uid']) {
          return new oid(this.json['uid']);
        }
      };
  
  
      /**
      A patient resource reference which is the patient subject of all DICOM SOP Instances in this key object selection.
      @returns {Reference}
       */
  
      ImagingObjectSelection.prototype.patient = function() {
        if (this.json['patient']) {
          return new Reference(this.json['patient']);
        }
      };
  
  
      /**
      The reason for, or significance of, the selection of objects referenced in the resource.
      @returns {CodeableConcept}
       */
  
      ImagingObjectSelection.prototype.title = function() {
        if (this.json['title']) {
          return new CodeableConcept(this.json['title']);
        }
      };
  
  
      /**
      Text description of the DICOM SOP instances selected in the key object selection. This should be aligned with the content of the title element, and can provide further explanation of the SOP instances in the selection.
      @returns {Array} an array of {@link String} objects
       */
  
      ImagingObjectSelection.prototype.description = function() {
        return this.json['description'];
      };
  
  
      /**
      Author of key object selection. It can be a human authtor or a device which made the decision of the SOP instances selected. For example, a radiologist selected a set of imaging SOP instances to attached in a diagnostic report, and a CAD application may author a selection to describe SOP instances it used to generate a detection conclusion.
      @returns {Reference}
       */
  
      ImagingObjectSelection.prototype.author = function() {
        if (this.json['author']) {
          return new Reference(this.json['author']);
        }
      };
  
  
      /**
      Date and time when the key object selection was authored. Note that this is the date and time the DICOM SOP instances in the selection were selected (selection decision making). It is different from the creation date and time of the selection resource.
      @returns {Array} an array of {@link Date} objects
       */
  
      ImagingObjectSelection.prototype.authoringTime = function() {
        if (this.json['authoringTime']) {
          return DT.DateTime.parse(this.json['authoringTime']);
        }
      };
  
  
      /**
      Study identity and locating information of the DICOM SOP instances in the selection.
      @returns {Array} an array of {@link StudyComponent} objects
       */
  
      ImagingObjectSelection.prototype.study = function() {
        var i, item, len, ref, results;
        if (this.json['study']) {
          ref = this.json['study'];
          results = [];
          for (i = 0, len = ref.length; i < len; i++) {
            item = ref[i];
            results.push(new StudyComponent(item));
          }
          return results;
        }
      };
  
      return ImagingObjectSelection;
  
    })(DomainResource);
  
    module.exports.ImagingObjectSelection = ImagingObjectSelection;
  
  }).call(this);
  
  //# sourceMappingURL=imagingobjectselection.js.map
  