Esempio n. 1
0
import AbstractIndexRoute from 'hospitalrun/routes/abstract-index-route';
import { translationMacro as t } from 'ember-i18n';

export default AbstractIndexRoute.extend({
  modelName: 'inc-category',
  newButtonAction: 'newItem',
  newButtonText: t('incident.buttons.newCategory'),
  pageTitle: t('incident.titles.incidentCategories'),

  actions: {
    editItem(category) {
      this.transitionTo('inc-category.edit', category);
    },

    newItem() {
      this.transitionTo('inc-category.edit', 'new');
    }
  }
});
Esempio n. 2
0
import AbstractIndexRoute from 'hospitalrun/routes/abstract-index-route';
export default AbstractIndexRoute.extend({
    modelName: 'ministry',
    pageTitle: 'Edit Monthly Reports'
    });
Esempio n. 3
0
export default AbstractIndexRoute.extend(UserSession, {
  modelName: 'inv-request',
  newButtonAction: function() {
    if (this.currentUserCan('add_inventory_request')) {
      return 'newRequest';
    } else {
      return null;
    }
  }.property(),
  newButtonText: t('buttons.newRequestPlus'),
  pageTitle: t('navigation.subnav.requests'),

  _getStartKeyFromItem: function(item) {
    var itemId = this._getPouchIdFromItem(item);
    return ['Requested', null, itemId];
  },

  _modelQueryParams: function() {
    var maxValue = this.get('maxValue');
    return {
      options: {
        startkey: ['Requested', null, null],
        endkey: ['Requested', maxValue, maxValue]
      },
      mapReduce: 'inventory_request_by_status'
    };
  },

  actions: {
    fulfill: function(item) {
      item.set('dateCompleted', new Date());
      this.transitionTo('inventory.request', item);
    }
  }
});
Esempio n. 4
0
import { t } from 'hospitalrun/macro';
import UserSession from 'hospitalrun/mixins/user-session';

export default AbstractIndexRoute.extend(UserSession, {
  modelName: 'patient',
  newButtonAction: computed(function() {
    if (this.currentUserCan('add_patient')) {
      return 'newItem';
    } else {
      return null;
    }
  }),
  newButtonText: t('patients.buttons.newPatient'),
  pageTitle: computed('intl.locale', () => {
    return t('patients.titles.patientListing');
  }),

  _getStartKeyFromItem(item) {
    let displayPatientId = item.get('displayPatientId');
    let id = this._getPouchIdFromItem(item);
    return [displayPatientId, id];
  },

  _modelQueryParams() {
    return {
      mapReduce: 'patient_by_display_id'
    };
  }

});
export default AbstractIndexRoute.extend(DateFormat, {
  database: Ember.inject.service(),
  itemsPerPage: null, // Fetch all outpatient visits as one page
  modelName: 'visit',
  newButtonAction: 'patientCheckIn',
  newButtonText: t('patients.buttons.patientCheckIn'),
  selectedVisitDate: null,
  showingTodaysPatients: true,
  pageTitle: computed('showingTodaysPatients', 'selectedVisitDate', function() {
    let i18n = this.get('i18n');
    let showingTodaysPatients = this.get('showingTodaysPatients');
    if (showingTodaysPatients) {
      return i18n.t('patients.titles.todaysOutpatients');
    } else {
      let selectedVisitDate = this._dateFormat(this.get('selectedVisitDate'));
      return i18n.t('patients.titles.outpatientsForDate', { visitDate: selectedVisitDate });
    }
  }),

  queryParams: {
    visitDate: { refreshModel: true },
    visitLocation: { refreshModel: false }
  },

  _getStartKeyFromItem(item) {
    let displayPatientId = item.get('displayPatientId');
    return [displayPatientId, `patient_${item.get('id')}`];
  },

  _modelQueryParams(params) {
    let database = this.get('database');
    let maxId = database.getMaxPouchId('visit');
    let minId = database.getMinPouchId('visit');
    let { visitDate } = params;
    if (isEmpty(visitDate)) {
      visitDate = moment();
    } else {
      visitDate = moment(parseInt(visitDate));
    }
    if (visitDate.isSame(moment(), 'day')) {
      this.set('showingTodaysPatients', true);
    } else {
      this.set('showingTodaysPatients', false);
      this.set('selectedVisitDate', visitDate.toDate());
    }
    let endOfDay = visitDate.endOf('day').valueOf();
    let startOfDay = visitDate.startOf('day').valueOf();
    return {
      mapReduce: 'visit_by_date',
      options: {
        endkey: [endOfDay, endOfDay, maxId],
        startkey: [startOfDay, null, minId]
      }
    };
  },

  model(params) {
    return this._super(params).then((model) => {
      let visitDate = new Date();
      if (!isEmpty(params.visitDate)) {
        visitDate.setTime(params.visitDate);
      }
      model.set('selectedVisitDate', visitDate);
      model.set('display_selectedVisitDate', this._dateFormat(visitDate));
      model.set('selectedLocation', params.visitLocation);
      return model;
    });
  },

  actions: {
    finishCheckOut(visit) {
      this.controller.send('finishCheckOut', visit);
    },

    patientCheckIn() {
      this.controller.send('patientCheckIn');
    }
  }

});
Esempio n. 6
0
import AbstractIndexRoute from 'hospitalrun/routes/abstract-index-route';
export default AbstractIndexRoute.extend({
    modelName: 'appointment',
    pageTitle: 'Appointment Listing'
});
export default AbstractIndexRoute.extend({
  modelName: 'invoice',
  pageTitle: 'Invoice Listing',

  _getStartKeyFromItem(item) {
    let billDateAsTime = item.get('billDateAsTime');
    let id = this._getPouchIdFromItem(item);
    let searchStatus = item.get('status');
    return [searchStatus, billDateAsTime, id];
  },

  _modelQueryParams(params) {
    let queryParams;
    let maxId = this._getMaxPouchId();
    let maxValue = this.get('maxValue');
    let minId = this._getMinPouchId();
    let searchStatus = params.status;
    if (Ember.isEmpty(searchStatus)) {
      searchStatus = 'Billed';
    }
    this.set('pageTitle', `${searchStatus} Invoices`);
    queryParams = {
      options: {
        startkey: [searchStatus, null, minId],
        endkey: [searchStatus, maxValue, maxId]
      },
      mapReduce: 'invoice_by_status'
    };

    if (searchStatus === 'All') {
      delete queryParams.options.startkey;
      delete queryParams.options.endkey;
    }
    return queryParams;

  },

  queryParams: {
    startKey: { refreshModel: true },
    status: { refreshModel: true }
  }
});
Esempio n. 8
0
import AbstractIndexRoute from 'hospitalrun/routes/abstract-index-route';
import UserSession from 'hospitalrun/mixins/user-session';
import { translationMacro as t } from 'ember-i18n';
export default AbstractIndexRoute.extend(UserSession, {
  newButtonAction: function() {
    if (this.currentUserCan('add_user')) {
      return 'newItem';
    } else {
      return null;
    }
  }.property(),
  newButtonText: t('user.plus_new_user'),
  pageTitle: t('user.users_page_tile'),
  model: function() {
    return this.store.findAll('user');
  }
});
Esempio n. 9
0
import AbstractIndexRoute from 'hospitalrun/routes/abstract-index-route';
import UserSession from "hospitalrun/mixins/user-session";
export default AbstractIndexRoute.extend(UserSession, {
    newButtonAction: function() {
        if (this.currentUserCan('add_user')) {
            return 'newItem';
        } else {
            return null;
        }
    }.property(),    
    newButtonText: '+ new user',
    pageTitle: 'User Listing',
    model: function() {
        return this.store.find('user');
    }
});
Esempio n. 10
0
import AbstractIndexRoute from 'hospitalrun/routes/abstract-index-route';
import UserSession from 'hospitalrun/mixins/user-session';
import { translationMacro as t } from 'ember-i18n';
export default AbstractIndexRoute.extend(UserSession, {
  modelName: 'inventory',
  newButtonAction: function() {
    if (this.currentUserCan('add_inventory_item')) {
      return 'newItem';
    } else {
      return null;
    }
  }.property(),
  newButtonText: t('buttons.new_item'),
  pageTitle: t('inventory.labels.items'),

  _modelQueryParams: function() {
    return {
      mapReduce: 'inventory_by_name'
    };
  },

  _getStartKeyFromItem: function(item) {
    var inventoryId = this._getPouchIdFromItem(item);
    return [item.get('name'), inventoryId];
  }

});
Esempio n. 11
0
export default AbstractIndexRoute.extend(UserSession, {
  category: null,
  modelName: 'pricing',
  pageTitle: 'All Pricing Items',

  _getStartKeyFromItem(item) {
    let category = item.get('category');
    let id = this._getPouchIdFromItem(item);
    let name = item.get('name');
    let pricingType = item.get('pricingType');
    return [category, name, pricingType, id];
  },

  _modelQueryParams() {
    let category = this.get('category');
    let maxId = this._getMaxPouchId();
    let queryParams = {
      mapReduce: 'pricing_by_category'
    };
    if (!Ember.isEmpty(category)) {
      queryParams.options = {
        startkey: [category, null, null, null],
        endkey: [category, {}, {}, maxId]
      };
    }
    return queryParams;
  },

  actions: {
    newItem() {
      if (this.currentUserCan('add_pricing')) {
        let routeId = 'new';
        let routeParts = this.routeName.split('.');
        if (routeParts.length === 2 && routeParts[1] !== 'index') {
          routeId += routeParts[1].capitalize();
        }
        this.transitionTo('pricing.edit', routeId);
      }
    }
  }
});
Esempio n. 12
0
import AbstractIndexRoute from 'hospitalrun/routes/abstract-index-route';
import { translationMacro as t } from 'ember-i18n';
import Ember from 'ember';
const { computed } = Ember;

export default AbstractIndexRoute.extend({
  hideNewButton: true,
  pageTitle: computed('i18n.locale', () => {
    return t('admin.lookup.pageTitle');
  }),
  model() {
    return this.store.findAll('lookup').catch((error) => this.send('error', error));
  },

  afterModel(model) {
    model.set('lookupType', 'anesthesia_types');
  },

  actions: {
    deleteValue(value) {
      this.controller.send('deleteValue', value);
    }
  }
});
Esempio n. 13
0
export default AbstractIndexRoute.extend(ModalHelper, {
  category: null,
  modelName: 'price-profile',
  pageTitle: 'Pricing Profiles',

  actions: {
    editItem(item) {
      this.send('openModal', 'pricing.profiles.edit', item);
    },

    deleteItem(item) {
      let message = 'Are you sure you want to delete this profile?';
      let model = Ember.Object.create({
        itemToDelete: item
      });
      let title = 'Delete Profile';
      this.displayConfirm(title, message, 'deletePricingProfile', model);
    },

    deletePricingProfile(model) {
      model.itemToDelete.set('archived', true);
      model.itemToDelete.save().then(()=> {
        model.itemToDelete.unloadRecord();
      });
    },

    newItem() {
      let newItem = this.store.createRecord('price-profile');
      this.send('openModal', 'pricing.profiles.edit', newItem);
    },

    refreshProfiles() {
      this.refresh();
    }
  }
});
Esempio n. 14
0
export default AbstractIndexRoute.extend({
  editReturn: 'appointments.index',
  modelName: 'appointment',
  newButtonText: computed('intl.locale', () => {
    return t('appointments.buttons.newButton');
  }),
  pageTitle: computed('intl.locale', () => {
    return t('appointments.thisWeek');
  }),

  _getStartKeyFromItem(item) {
    let endDate = item.get('endDate');
    let id = this._getPouchIdFromItem(item);
    let startDate = item.get('startDate');
    if (endDate && endDate !== '') {
      endDate = new Date(endDate);
      if (endDate.getTime) {
        endDate = endDate.getTime();
      }
    }
    if (startDate && startDate !== '') {
      startDate = new Date(startDate);
      if (startDate.getTime) {
        startDate = startDate.getTime();
      }
    }

    return [startDate, endDate, id];
  },

  _modelQueryParams() {
    let endOfWeek = moment().endOf('week').toDate().getTime();
    let startOfWeek = moment().startOf('week').toDate().getTime();
    let maxId = this._getMaxPouchId();
    return {
      options: {
        startkey: [startOfWeek, null, null],
        endkey: [endOfWeek, endOfWeek, maxId]
      },
      mapReduce: 'appointments_by_date'
    };
  },

  actions: {
    editAppointment(appointment) {
      appointment.set('returnTo', this.get('editReturn'));
      this.send('editItem', appointment);
    }
  }
});
Esempio n. 15
0
import EmberObject from '@ember/object';
import { resolve } from 'rsvp';
import AbstractIndexRoute from 'hospitalrun/routes/abstract-index-route';
import { translationMacro as t } from 'ember-i18n';
export default AbstractIndexRoute.extend({
  pageTitle: t('inventory.titles.inventoryReport'),

  // No model for reports; data gets retrieved when report is run.
  model() {
    return resolve(EmberObject.create({}));
  }

});
Esempio n. 16
0
import EmberObject from '@ember/object';
import { resolve } from 'rsvp';
import AbstractIndexRoute from 'hospitalrun/routes/abstract-index-route';
export default AbstractIndexRoute.extend({
  pageTitle: 'Incident Report',

  // No model for reports; data gets retrieved when report is run.
  model() {
    return resolve(EmberObject.create({}));
  }

});
Esempio n. 17
0
import AbstractIndexRoute from 'hospitalrun/routes/abstract-index-route';
import { translationMacro as t } from 'ember-i18n';

export default AbstractIndexRoute.extend({
  modelName: 'lab',
  pageTitle: t('labs.requestsTitle'),
  searchStatus: 'Requested',

  _getStartKeyFromItem(item) {
    let labDateAsTime = item.get('labDateAsTime');
    let id = this._getPouchIdFromItem(item);
    let requestedDateAsTime = item.get('requestedDateAsTime');
    let searchStatus = this.get('searchStatus');
    return [searchStatus, requestedDateAsTime, labDateAsTime, id];
  },

  _modelQueryParams() {
    let maxId = this._getMaxPouchId();
    let maxValue = this.get('maxValue');
    let minId = this._getMinPouchId();
    let searchStatus = this.get('searchStatus');
    return {
      options: {
        startkey: [searchStatus, null, null, minId],
        endkey: [searchStatus, maxValue, maxValue, maxId]
      },
      mapReduce: 'lab_by_status'
    };
  }
});
Esempio n. 18
0
export default AbstractIndexRoute.extend(ModalHelper, UserSession, {
  newButtonAction: computed(function() {
    if (this.currentUserCan('update_config')) {
      return 'newItem';
    } else {
      return null;
    }
  }),
  newButtonText: t('admin.customForms.buttons.newForm'),

  pageTitle: t('admin.customForms.titles.customForms'),
  model() {
    let store = this.get('store');
    return store.findAll('custom-form');
  },

  actions: {
    deleteItem(item) {
      let i18n = this.get('i18n');
      let message = i18n.t('admin.customForms.messages.deleteForm');
      let model = Ember.Object.create({
        itemToDelete: item
      });
      let title = i18n.t('admin.customForms.titles.deleteForm');
      this.displayConfirm(title, message, 'deleteCustomForm', model);
    },

    deleteCustomForm(model) {
      model.itemToDelete.set('archived', true);
      model.itemToDelete.save().then(()=> {
        model.itemToDelete.unloadRecord();
      });
    },

    editItem(item) {
      this.transitionTo('admin.custom-forms.edit', item);
    },

    newItem() {
      this.transitionTo('admin.custom-forms.edit', 'new');
    }

  }
});
Esempio n. 19
0
import AbstractIndexRoute from 'hospitalrun/routes/abstract-index-route';
import { translationMacro as t } from 'ember-i18n';

export default AbstractIndexRoute.extend({
  modelName: 'patient',

  pageTitle: t('patients.titles.patientListing'),

  _getStartKeyFromItem(item) {
    let displayPatientId = item.get('displayPatientId');
    let id = this._getPouchIdFromItem(item);
    return [displayPatientId, id];
  },

  _modelQueryParams() {
    return {
      mapReduce: 'patient_by_display_id'
    };
  }
});
Esempio n. 20
0
import AbstractIndexRoute from 'hospitalrun/routes/abstract-index-route';
import { translationMacro as t } from 'ember-i18n';
export default AbstractIndexRoute.extend({
  hideNewButton: true,
  pageTitle: t('admin.lookup.pageTitle'),
  model() {
    return this.store.findAll('lookup');
  },

  afterModel(model) {
    model.set('lookupType', 'anesthesia_types');
  },

  actions: {
    refreshLookupLists() {
      this.refresh();
    }
  }
});
Esempio n. 21
0
import AbstractIndexRoute from 'hospitalrun/routes/abstract-index-route';
export default AbstractIndexRoute.extend({
  modelName: 'patient',
  pageTitle: 'Admitted patients',

  _getStartKeyFromItem: function(item) {
    var displayPatientId = item.get('displayPatientId');
    return [displayPatientId, 'patient_' + item.get('id')];
  },

  _modelQueryParams: function() {
    return {
      options: {
        key: true
      },
      mapReduce: 'patient_by_admission'
    };
  }
});