text: import { OHIF } from 'meteor/ohif:core';
  import 'meteor/ohif:viewerbase';
  
  /**
   * Constants
   */
  
  const STRING = 'string';
  const propertyReplacementMap = {
      modalities: 'ModalitiesInStudy',
      patientBirthdate: 'PatientBirthDate'
  };
  
  /**
   * OHIF Viewers specialized version of StudySummary class
   */
  export class OHIFStudySummary extends OHIF.viewerbase.metadata.StudySummary {
  
      // @Override
      addTags(tagMap) {
          const _hasOwn = Object.prototype.hasOwnProperty;
          const _tagMap = Object.create(null);
          for (let property in tagMap) {
              if (_hasOwn.call(tagMap, property)) {
                  let standardProperty = OHIFStudySummary.getStandardPropertyName(property);
                  if (standardProperty) {
                      _tagMap[standardProperty] = tagMap[property];
                  }
              }
          }
          super.addTags(_tagMap);
      }
  
      /**
       * Turns a non-standard, OHIF specific, DICOM property name into a standard one.
       * @param {string} property A string representing a non-conforming keyword.
       * @returns {string|undefined} Returns a standard-conforming property name.
       */
      static getStandardPropertyName(property) {
          let standardProperty;
          if (typeof property === STRING && property.charAt(0) !== '_') {
              if (property in propertyReplacementMap) {
                  standardProperty = propertyReplacementMap[propertyReplacementMap];
              } else {
                  standardProperty = property.replace(/^sop/, 'SOP').replace(/Uid$/, 'UID').replace(/Id$/, 'ID');
                  standardProperty = standardProperty.charAt(0).toUpperCase() + standardProperty.substr(1);
              }
          }
          return standardProperty;
      }
  
  }
  