Commit 09feed9b authored by Reza Sahebgharan's avatar Reza Sahebgharan

fix(bind devices combobox to clients db): bind device combo worklist to clients collection

Closes KRN-47
parent bf9eeda2
Pipeline #1009 passed with stage
in 36 minutes and 38 seconds
...@@ -170,6 +170,7 @@ export default { ...@@ -170,6 +170,7 @@ export default {
if ( if (
hislink != undefined && hislink != undefined &&
hislink != null && hislink != null &&
hislink.length > 0 &&
hislink[0].Name != undefined hislink[0].Name != undefined
) )
currentDevicemap.push({ ...devicemap, HisName: hislink[0].Name }); currentDevicemap.push({ ...devicemap, HisName: hislink[0].Name });
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<v-col cols="12" sm="6" class="d-flex justify-space-around align-baseline"> <v-col cols="12" sm="6" class="d-flex justify-space-around align-baseline">
<v-combobox <v-combobox
v-model="selectedDevice" v-model="selectedDevice"
:items="deviceCodeItems" :items="clientsItems"
:search-input.sync="deviceComboSearch" :search-input.sync="deviceComboSearch"
hide-selected hide-selected
:label="$t('WorkList.deviceComboboxLabel')" :label="$t('WorkList.deviceComboboxLabel')"
...@@ -17,8 +17,8 @@ ...@@ -17,8 +17,8 @@
clearable clearable
dense dense
class="ma-4" class="ma-4"
item-text="GroupName" item-text="Caption"
item-value="GroupName" item-value="Caption"
return-object return-object
> >
<template v-if="noDataCombo" v-slot:no-data> <template v-if="noDataCombo" v-slot:no-data>
...@@ -83,7 +83,6 @@ ...@@ -83,7 +83,6 @@
<strong>{{$t('WorkList.editBtn')}}</strong> <strong>{{$t('WorkList.editBtn')}}</strong>
</v-btn> </v-btn>
<v-divider class="mx-4" inset vertical></v-divider> <v-divider class="mx-4" inset vertical></v-divider>
<v-dialog v-model="editDialog" max-width="900px"> <v-dialog v-model="editDialog" max-width="900px">
<v-card class="grey lighten-4"> <v-card class="grey lighten-4">
...@@ -511,7 +510,8 @@ ...@@ -511,7 +510,8 @@
<script> <script>
import Worklist from "../../imports/api/collections/worklist.js"; import Worklist from "../../imports/api/collections/worklist.js";
import DeviceCode from "../../imports/api/collections/devicecode.js";
import Clients from "../../imports/api/collections/clients.js";
import HisWorklist from "./HisWorklist.vue"; import HisWorklist from "./HisWorklist.vue";
export default { export default {
...@@ -549,11 +549,11 @@ export default { ...@@ -549,11 +549,11 @@ export default {
debugger; debugger;
if ( if (
this.selectedDevice && this.selectedDevice &&
this.devicemap != this.selectedDevice.GroupName this.devicemap != this.selectedDevice.Caption
) { ) {
let self = this; let self = this;
Meteor.call("Fetchworklist", this.selectedDevice.GroupName, function() { Meteor.call("Fetchworklist", this.selectedDevice.Caption, function() {
self.devicemap = self.selectedDevice.GroupName; self.devicemap = self.selectedDevice.Caption;
}); });
} }
...@@ -609,7 +609,7 @@ export default { ...@@ -609,7 +609,7 @@ export default {
close() { close() {
this.editDialog = false; this.editDialog = false;
}, },
nextPatient() { nextPatient() {
let index = this.sortedItems.findIndex( let index = this.sortedItems.findIndex(
patient => patient._id == this.selectedItem._id patient => patient._id == this.selectedItem._id
...@@ -725,18 +725,10 @@ export default { ...@@ -725,18 +725,10 @@ export default {
}, },
selectedItem: undefined, selectedItem: undefined,
sortedItems: undefined sortedItems: undefined
}), }),
mounted() {
Meteor.call("getDeviceCodes");
// this.selected = [this.desserts[1]];
},
computed: { computed: {
deviceCodeItems() { clientsItems() {
// return this.devicecode.map(device => { return this.clients;
// return device.GroupName;
// });
return this.devicecode;
}, },
headerOfTable() { headerOfTable() {
let headers = []; let headers = [];
...@@ -793,24 +785,26 @@ export default { ...@@ -793,24 +785,26 @@ export default {
worklist: function() { worklist: function() {
return [this.devicemap]; return [this.devicemap];
}, },
devicecode: []
clients: []
}, },
worklist() { worklist() {
return Worklist.find({}).fetch(); return Worklist.find({}).fetch();
}, },
devicecode() {
return DeviceCode.find({}).fetch(); clients() {
return Clients.find({}).fetch();
} }
}, },
watch: { watch: {
"$subReady.worklist"(ready) {}, "$subReady.worklist"(ready) {},
selectedDevice(newDevice, oldDevice) { selectedDevice(newDevice, oldDevice) {
console.log(newDevice); console.log(newDevice);
if (this.selectedDevice && this.selectedDevice.GroupName) { if (this.selectedDevice && this.selectedDevice.Caption) {
let self = this; let self = this;
this.fetchWorklistLoading = true; this.fetchWorklistLoading = true;
Meteor.call("Fetchworklist", this.selectedDevice.GroupName, function() { Meteor.call("Fetchworklist", this.selectedDevice.Caption, function() {
self.devicemap = self.selectedDevice.GroupName; self.devicemap = self.selectedDevice.Caption;
console.log(self.devicemap); console.log(self.devicemap);
self.fetchWorklistLoading = false; self.fetchWorklistLoading = false;
}); });
......
...@@ -174,13 +174,13 @@ const messages = { ...@@ -174,13 +174,13 @@ const messages = {
Login: { Login: {
loginHeader: 'ورود کاربر', loginHeader: 'ورود کاربر',
registerBtn: 'ثبت نام', registerBtn: 'ثبت نام',
username: 'نام کاربری', username: 'شناسه کاربری',
password: 'رمز ورود', password: 'رمز ورود',
loginBtn: 'ورود', loginBtn: 'ورود',
passwordHint: 'حداقل 8 کاراکتر', passwordHint: 'حداقل 8 کاراکتر',
required: 'مورد نیاز', required: 'مورد نیاز',
min8Character: 'حداقل 8 کاراکتر', min8Character: 'حداقل 8 کاراکتر',
usernameAlert: 'لطفا نام کاربری را وارد نمایید', usernameAlert: 'لطفا شناسه کاربری را وارد نمایید',
passwordAlert: 'لطفا رمز ورود را وارد نمایید', passwordAlert: 'لطفا رمز ورود را وارد نمایید',
errorUserNotFound: 'کاربر یافت نشد', errorUserNotFound: 'کاربر یافت نشد',
errorIncorrectPassword: 'رمز نادرست', errorIncorrectPassword: 'رمز نادرست',
...@@ -189,17 +189,17 @@ const messages = { ...@@ -189,17 +189,17 @@ const messages = {
Register: { Register: {
registerHeader: 'ثبت نام کاربر', registerHeader: 'ثبت نام کاربر',
loginBtn: 'ورود', loginBtn: 'ورود',
username: 'نام کاربری', username: 'شناسه کاربری',
password: 'رمز ورود', password: 'رمز ورود',
repeatPassword: 'تکرار رمز ورود', repeatPassword: 'تکرار رمز ورود',
registerBtn: 'ثبت نام و ورود', registerBtn: 'ثبت نام و ورود',
required: 'مورد نیاز', required: 'مورد نیاز',
min8Character: 'حداقل 8 کاراکتر', min8Character: 'حداقل 8 کاراکتر',
matchPass: "رمز عبور و تکرار آن باید مشابه باشند", matchPass: "رمز عبور و تکرار آن باید مشابه باشند",
usernameAlert: 'لطفا نام کاربری را وارد نمایید', usernameAlert: 'لطفا شناسه کاربری را وارد نمایید',
firstPassAlert: 'لطفا رمز را وارد نمایید', firstPassAlert: 'لطفا رمز را وارد نمایید',
secondPassAlert: 'لطفا رمز را وارد نمایید', secondPassAlert: 'لطفا رمز را وارد نمایید',
error403: 'نام کاربری وجود دارد', error403: 'شناسه کاربری وجود دارد',
loadingText: 'در حال ایجاد کاربر', loadingText: 'در حال ایجاد کاربر',
userCreated: 'کاربر ایجاد شد' userCreated: 'کاربر ایجاد شد'
}, },
...@@ -211,8 +211,8 @@ const messages = { ...@@ -211,8 +211,8 @@ const messages = {
}, },
ChangePassword: { ChangePassword: {
formHeader: 'تغییر رمز', formHeader: 'تغییر رمز',
username: 'نام کاربری', username: 'شناسه کاربری',
usernameAlert: 'لطفا نام کاربری را وارد نمایید', usernameAlert: 'لطفا شناسه کاربری را وارد نمایید',
oldPassword: 'رمز فعلی', oldPassword: 'رمز فعلی',
oldPasswordAlert: 'لطفا رمز فعلی را وارد نمایید', oldPasswordAlert: 'لطفا رمز فعلی را وارد نمایید',
newPassword: 'رمز جدید', newPassword: 'رمز جدید',
...@@ -303,13 +303,11 @@ const messages = { ...@@ -303,13 +303,11 @@ const messages = {
editBtn: "ویرایش", editBtn: "ویرایش",
userSelectStatement: "لطفا یکی از کاربر ها را انتخاب نمایید", userSelectStatement: "لطفا یکی از کاربر ها را انتخاب نمایید",
userDeleteStatement: "کاربر حذف گردید", userDeleteStatement: "کاربر حذف گردید",
UsernameTxtBox: "نام کاربری", UsernameTxtBox: "شناسه کاربری",
FullNameTxtBox: "نام و نام خانوادگی", FullNameTxtBox: "نام و نام خانوادگی",
ResetPasswordBtn: "تغییر رمز", ResetPasswordBtn: "تغییر رمز",
matchPassword: "رمز و تکرار آن می بایست یکی باشد", matchPassword: "رمز و تکرار آن می بایست یکی باشد",
minimum5Character: "رمز باید حداقل دارای 5 کاراکتر باشد" minimum5Character: "رمز باید حداقل دارای 5 کاراکتر باشد"
}, },
HisWorklist: { HisWorklist: {
title: "لیست بیماران" title: "لیست بیماران"
......
import { Mongo } from 'meteor/mongo';
import { Meteor } from 'meteor/meteor';
let DeviceCode;
if (Meteor.isClient || Meteor.isCordova) {
DeviceCode = new Mongo.Collection('devicecode')
}
if (Meteor.isServer) {
DeviceCode = new Mongo.Collection('devicecode', { connection: null })
}
export default DeviceCode;
\ No newline at end of file
import { Meteor } from 'meteor/meteor';
import { check } from 'meteor/check';
import { HTTP } from 'meteor/http';
import DeviceCode from '../collections/devicecode.js';
Meteor.methods({
'getDeviceCodes' () {
this.unblock();
if (this.userId) {
try {
const result = HTTP.call('GET', `${Meteor.settings.worklistUrl}/HISIntegration.svc/rest/getdevicecodes`);
let deviceCodeHttpResult = JSON.parse(result.content);
DeviceCode.remove({});
deviceCodeHttpResult.Devices.forEach((device) => {
DeviceCode.insert({
...device
});
});
return true
} catch (e) {
// Got a network error, timeout, or HTTP error in the 400 or 500 range.
return false;
}
}
}
});
\ No newline at end of file
import DeviceCode from '../../collections/devicecode.js';
import { check } from 'meteor/check';
Meteor.publish("devicecode", function() {
if (!this.userId) {
return this.ready();
}
return DeviceCode.find({}, {
disableOplog: true,
// pollingThrottleMs: 1000,
pollingIntervalMs: 1000
});
});
\ No newline at end of file
...@@ -2,7 +2,7 @@ import { Meteor } from 'meteor/meteor'; ...@@ -2,7 +2,7 @@ import { Meteor } from 'meteor/meteor';
import '../imports/api/methods/worklist.js'; import '../imports/api/methods/worklist.js';
import '../imports/api/methods/changePassword.js'; import '../imports/api/methods/changePassword.js';
import '../imports/api/methods/devicecode.js';
import '../imports/api/methods/brands.js'; import '../imports/api/methods/brands.js';
import '../imports/api/methods/hisLink.js'; import '../imports/api/methods/hisLink.js';
import '../imports/api/methods/clients.js'; import '../imports/api/methods/clients.js';
...@@ -11,7 +11,7 @@ import '../imports/api/methods/users.js' ...@@ -11,7 +11,7 @@ import '../imports/api/methods/users.js'
import '../imports/api/server/publications/worklist.js'; import '../imports/api/server/publications/worklist.js';
import '../imports/api/server/publications/devicecode.js';
import '../imports/api/server/publications/hislink.js'; import '../imports/api/server/publications/hislink.js';
import '../imports/api/server/publications/brands.js'; import '../imports/api/server/publications/brands.js';
import '../imports/api/server/publications/clients.js'; import '../imports/api/server/publications/clients.js';
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment