commit
87332ae9d8
|
|
@ -37,7 +37,7 @@ export default {
|
||||||
// console.log(type, No);
|
// console.log(type, No);
|
||||||
if (type !== "Chrome" && type !== "Edge") {
|
if (type !== "Chrome" && type !== "Edge") {
|
||||||
this.tip = this.$t("browser:tip:changeBorwser");
|
this.tip = this.$t("browser:tip:changeBorwser");
|
||||||
this.getSystemInfo()
|
// this.getSystemInfo()
|
||||||
return (this.visible = true);
|
return (this.visible = true);
|
||||||
}
|
}
|
||||||
let res = await this.getInfo();
|
let res = await this.getInfo();
|
||||||
|
|
@ -53,10 +53,10 @@ export default {
|
||||||
this.tip += "、";
|
this.tip += "、";
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
this.getSystemInfo()
|
// this.getSystemInfo()
|
||||||
return (this.visible = true);
|
return (this.visible = true);
|
||||||
}
|
}
|
||||||
this.getSystemInfo()
|
// this.getSystemInfo()
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,13 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="trials-navbar" style="position: relative">
|
<div class="trials-navbar" style="position: relative">
|
||||||
<div class="leftMenu">
|
<div class="leftMenu">
|
||||||
<img v-if="language === 'zh'" src="@/assets/zzlogo2.png" alt="" />
|
|
||||||
<img
|
<img
|
||||||
v-else-if="NODE_ENV === 'usa'"
|
v-if="NODE_ENV === 'usa'"
|
||||||
src="@/assets/title-logo.png"
|
src="@/assets/title-logo.png"
|
||||||
alt=""
|
alt=""
|
||||||
class="title-logo"
|
class="title-logo"
|
||||||
/>
|
/>
|
||||||
<img v-else src="@/assets/zzlogo4.png" alt="" />
|
<img v-else src="@/assets/system.png" alt="" style="width: 150px;height: 50px;margin-bottom: -7px;"/>
|
||||||
<span style="white-space: nowrap" v-if="NODE_ENV !== 'usa'">
|
<span style="white-space: nowrap" v-if="NODE_ENV !== 'usa'">
|
||||||
<!-- 中心影像系统(EICS) -->
|
<!-- 中心影像系统(EICS) -->
|
||||||
{{ $t('trials:trials:title:eics') }}
|
{{ $t('trials:trials:title:eics') }}
|
||||||
|
|
|
||||||
|
|
@ -495,17 +495,18 @@
|
||||||
<h2 v-else style="color:#ddd">
|
<h2 v-else style="color:#ddd">
|
||||||
Developing...
|
Developing...
|
||||||
</h2>
|
</h2>
|
||||||
|
<div v-if="iseCRFShowInDicomReading && currentReadingTaskState < 2" v-show="listShow" class="form-footer">
|
||||||
|
<el-button type="primary" size="small" @click="skipTask">
|
||||||
|
<!-- 跳过 -->
|
||||||
|
{{ $t('trials:readingReport:button:skip') }}
|
||||||
|
</el-button>
|
||||||
|
<el-button type="primary" size="small" @click="submit">
|
||||||
|
<!-- 提交 -->
|
||||||
|
{{ $t('common:button:submit') }}
|
||||||
|
</el-button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="iseCRFShowInDicomReading && currentReadingTaskState < 2" v-show="listShow" class="form-footer">
|
|
||||||
<el-button type="primary" size="small" @click="skipTask">
|
|
||||||
<!-- 跳过 -->
|
|
||||||
{{ $t('trials:readingReport:button:skip') }}
|
|
||||||
</el-button>
|
|
||||||
<el-button type="primary" size="small" @click="submit">
|
|
||||||
<!-- 提交 -->
|
|
||||||
{{ $t('common:button:submit') }}
|
|
||||||
</el-button>
|
|
||||||
</div>
|
|
||||||
</transition>
|
</transition>
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -704,6 +705,7 @@ import { getAutoCutNextTask } from '@/api/user'
|
||||||
import const_ from '@/const/sign-code'
|
import const_ from '@/const/sign-code'
|
||||||
import { changeURLStatic } from '@/utils/history.js'
|
import { changeURLStatic } from '@/utils/history.js'
|
||||||
import SystemInfo from "@/utils/systemInfo";
|
import SystemInfo from "@/utils/systemInfo";
|
||||||
|
import md5 from 'js-md5'
|
||||||
export default {
|
export default {
|
||||||
name: 'DicomViewer',
|
name: 'DicomViewer',
|
||||||
components: {
|
components: {
|
||||||
|
|
@ -987,6 +989,7 @@ export default {
|
||||||
|
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
console.log(this.iseCRFShowInDicomReading, this.currentReadingTaskState, this.listShow)
|
||||||
this.getHotKeys()
|
this.getHotKeys()
|
||||||
this.getWwcTpl()
|
this.getWwcTpl()
|
||||||
this.getTrialCriterion()
|
this.getTrialCriterion()
|
||||||
|
|
@ -1138,6 +1141,7 @@ export default {
|
||||||
let windowHeight = document.documentElement.clientHeight;
|
let windowHeight = document.documentElement.clientHeight;
|
||||||
this.AspectRatio = windowWidth / windowHeight
|
this.AspectRatio = windowWidth / windowHeight
|
||||||
};
|
};
|
||||||
|
this.getSystemInfoReading()
|
||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
DicomEvent.$off('updateImage')
|
DicomEvent.$off('updateImage')
|
||||||
|
|
@ -2501,6 +2505,30 @@ export default {
|
||||||
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
async getSystemInfoReading() {
|
||||||
|
return new Promise(async resolve => {
|
||||||
|
let whitelisting = localStorage.getItem('whitelisting') ? JSON.parse(localStorage.getItem('whitelisting')) : []
|
||||||
|
let user = md5(sessionStorage.getItem('identityUserId'))
|
||||||
|
let r = whitelisting.some(item => item === user)
|
||||||
|
if (r) return resolve(true)
|
||||||
|
const systemInfo = new SystemInfo();
|
||||||
|
const allInfo = systemInfo.getAllInfo();
|
||||||
|
let deviceMemory = allInfo.hardware.deviceMemory; // 设备内存
|
||||||
|
let { width, height } = allInfo.screen; // 分辨率
|
||||||
|
// let discrete = allInfo.webgl.gpuType.discrete; // 是否独立显卡
|
||||||
|
// let estimatedMemory = allInfo.webgl.memoryInfo.estimatedMemory; // 显卡内存
|
||||||
|
// parseFloat(deviceMemory) < 16 ||
|
||||||
|
if (width < 1920 || height < 1080) {
|
||||||
|
let res = await this.$confirm(this.$t('browser:tip:Configuration'))
|
||||||
|
whitelisting.push(user)
|
||||||
|
localStorage.setItem('whitelisting', JSON.stringify(whitelisting))
|
||||||
|
resolve(res)
|
||||||
|
} else {
|
||||||
|
resolve(true)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
@ -2786,7 +2814,7 @@ export default {
|
||||||
|
|
||||||
.form-footer {
|
.form-footer {
|
||||||
background: #000;
|
background: #000;
|
||||||
padding: 10px 0;
|
padding: 5px 0;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -112,9 +112,8 @@
|
||||||
</el-input>
|
</el-input>
|
||||||
<el-input
|
<el-input
|
||||||
v-else
|
v-else
|
||||||
type="number"
|
|
||||||
@change="(val) => { formItemChange(val, item) }"
|
@change="(val) => { formItemChange(val, item) }"
|
||||||
@input="(val) => questionForm[item.Id] = val.replace(/[^\d.]/g, '')"
|
@input="numberInput(item.Id)"
|
||||||
@blur="handleBlur(questionForm[item.Id], questionForm, item)"
|
@blur="handleBlur(questionForm[item.Id], questionForm, item)"
|
||||||
v-model.trim="questionForm[item.Id]" :disabled="readingTaskState === 2">
|
v-model.trim="questionForm[item.Id]" :disabled="readingTaskState === 2">
|
||||||
<template slot="append" v-if="item.Unit !== 0">{{ item.Unit !== 4 ? $fd('ValueUnit', item.Unit) : item.CustomUnit }}</template>
|
<template slot="append" v-if="item.Unit !== 0">{{ item.Unit !== 4 ? $fd('ValueUnit', item.Unit) : item.CustomUnit }}</template>
|
||||||
|
|
@ -369,7 +368,7 @@ export default {
|
||||||
const type = ['number', 'radio', 'select', 'input', 'textarea', 'calculation']
|
const type = ['number', 'radio', 'select', 'input', 'textarea', 'calculation']
|
||||||
questions.forEach(item => {
|
questions.forEach(item => {
|
||||||
if (type.includes(item.Type)) {
|
if (type.includes(item.Type)) {
|
||||||
const answer = item.Type === 'select' && item.OptionTypeEnum === 1 && item.Answer ? JSON.parse(item.Answer) : item.Type === 'number' || item.Type === 'calculation' ? isNaN(parseFloat(item.Answer)) ? null : item.Answer : item.Answer
|
const answer = item.Type === 'select' && item.OptionTypeEnum === 1 && item.Answer ? JSON.parse(item.Answer) : item.Answer
|
||||||
this.$set(this.questionForm, item.Id, answer)
|
this.$set(this.questionForm, item.Id, answer)
|
||||||
}
|
}
|
||||||
if (item.QuestionType === 1013) {
|
if (item.QuestionType === 1013) {
|
||||||
|
|
@ -498,7 +497,6 @@ export default {
|
||||||
|
|
||||||
},
|
},
|
||||||
formItemChange(val, item) {
|
formItemChange(val, item) {
|
||||||
console.log('formItemChange: ', item.QuestionName, val)
|
|
||||||
this.formChanged = true
|
this.formChanged = true
|
||||||
// if (item.Type === 'number') {
|
// if (item.Type === 'number') {
|
||||||
// this.limitBlur(item.Id, item.ValueType)
|
// this.limitBlur(item.Id, item.ValueType)
|
||||||
|
|
@ -546,6 +544,7 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
numberOrNEInput(id) {
|
numberOrNEInput(id) {
|
||||||
|
this.formChanged = true
|
||||||
// this.questionForm[id] = this.questionForm[id].toUpperCase();
|
// this.questionForm[id] = this.questionForm[id].toUpperCase();
|
||||||
if (!this.questionForm[id]) {
|
if (!this.questionForm[id]) {
|
||||||
return
|
return
|
||||||
|
|
@ -564,6 +563,11 @@ export default {
|
||||||
this.questionForm[id] = value
|
this.questionForm[id] = value
|
||||||
this.$set(this.questionForm, id, value)
|
this.$set(this.questionForm, id, value)
|
||||||
},
|
},
|
||||||
|
numberInput(id) {
|
||||||
|
this.formChanged = true
|
||||||
|
let value = this.questionForm[id].replace(/[^\d.]/g, '')
|
||||||
|
this.$set(this.questionForm, id, value)
|
||||||
|
},
|
||||||
handleNumberOrNEBlur(item) {
|
handleNumberOrNEBlur(item) {
|
||||||
if (this.questionForm[item.Id] && !isNaN(parseFloat(this.questionForm[item.Id]))) {
|
if (this.questionForm[item.Id] && !isNaN(parseFloat(this.questionForm[item.Id]))) {
|
||||||
if (item.ValueType === 3) {
|
if (item.ValueType === 3) {
|
||||||
|
|
@ -802,7 +806,7 @@ export default {
|
||||||
uploadTpl(lesionType, TableName) {
|
uploadTpl(lesionType, TableName) {
|
||||||
this.upload.lesionType = lesionType
|
this.upload.lesionType = lesionType
|
||||||
this.upload.TableName = TableName
|
this.upload.TableName = TableName
|
||||||
this.upload.title = `导入( ${this.$fd('LesionType', lesionType)} )`
|
this.upload.title = `${this.$fd('LesionType', lesionType)}`
|
||||||
this.upload.visible = true
|
this.upload.visible = true
|
||||||
},
|
},
|
||||||
async downloadTpl() {
|
async downloadTpl() {
|
||||||
|
|
@ -834,9 +838,8 @@ export default {
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.measurement-wrapper {
|
.measurement-wrapper {
|
||||||
height: 100%;
|
height: calc(100% - 50px);
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
|
|
||||||
.container {
|
.container {
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -56,11 +56,11 @@ export default {
|
||||||
var data = new FormData()
|
var data = new FormData()
|
||||||
data.append('file', param.file)
|
data.append('file', param.file)
|
||||||
data.append('visitTaskId', this.visitTaskId)
|
data.append('visitTaskId', this.visitTaskId)
|
||||||
data.append('readingImportType', 0)
|
data.append('readingImportType', 3)
|
||||||
data.append('TableName', this.TableName)
|
data.append('TableName', this.TableName)
|
||||||
await readingImport(data)
|
await readingImport(data)
|
||||||
this.$emit('close')
|
this.$emit('close')
|
||||||
this.$message.success('导入成功!')
|
this.$message.success(this.$t('common:message:savedSuccessfully'))
|
||||||
loading.close()
|
loading.close()
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
loading.close()
|
loading.close()
|
||||||
|
|
|
||||||
|
|
@ -67,13 +67,13 @@
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column v-if="readingTaskState < 2" :label="$t('common:action:action')" width="90px"
|
<el-table-column v-if="readingTaskState < 2 && item.LesionType === 104" :label="$t('common:action:action')" width="90px"
|
||||||
fixed="right">
|
fixed="right">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button type="text" size="mini" @click="handleAddOrEdit('edit', item, scope.$index)">
|
<el-button type="text" size="mini" @click="handleAddOrEdit('edit', item, scope.$index)">
|
||||||
{{ $t('common:button:edit') }}
|
{{ $t('common:button:edit') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button v-if="item.LesionType === 112 || item.LesionType === 111" type="text" size="mini"
|
<el-button type="text" size="mini"
|
||||||
@click="handleDelete(item, scope.$index)">
|
@click="handleDelete(item, scope.$index)">
|
||||||
{{ $t('common:button:delete') }}
|
{{ $t('common:button:delete') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
@ -120,9 +120,8 @@
|
||||||
</el-input>
|
</el-input>
|
||||||
<el-input
|
<el-input
|
||||||
v-else
|
v-else
|
||||||
type="number"
|
|
||||||
@change="(val) => { formItemChange(val, item) }"
|
@change="(val) => { formItemChange(val, item) }"
|
||||||
@input="(val) => questionForm[item.Id] = val.replace(/[^\d.]/g, '')"
|
@input="numberInput(item.Id)"
|
||||||
@blur="handleBlur(questionForm[item.Id], questionForm, item)"
|
@blur="handleBlur(questionForm[item.Id], questionForm, item)"
|
||||||
v-model.trim="questionForm[item.Id]" :disabled="readingTaskState === 2">
|
v-model.trim="questionForm[item.Id]" :disabled="readingTaskState === 2">
|
||||||
<template slot="append" v-if="item.Unit !== 0">{{ item.Unit !== 4 ? $fd('ValueUnit', item.Unit) : item.CustomUnit }}</template>
|
<template slot="append" v-if="item.Unit !== 0">{{ item.Unit !== 4 ? $fd('ValueUnit', item.Unit) : item.CustomUnit }}</template>
|
||||||
|
|
@ -369,7 +368,7 @@ export default {
|
||||||
const type = ['number', 'radio', 'select', 'input', 'textarea', 'calculation']
|
const type = ['number', 'radio', 'select', 'input', 'textarea', 'calculation']
|
||||||
questions.forEach(item => {
|
questions.forEach(item => {
|
||||||
if (type.includes(item.Type)) {
|
if (type.includes(item.Type)) {
|
||||||
const answer = item.Type === 'select' && item.OptionTypeEnum === 1 && item.Answer ? JSON.parse(item.Answer) : item.Type === 'number' || item.Type === 'calculation' ? isNaN(parseFloat(item.Answer)) ? null : item.Answer : item.Answer
|
const answer = item.Type === 'select' && item.OptionTypeEnum === 1 && item.Answer ? JSON.parse(item.Answer) : item.Answer
|
||||||
this.$set(this.questionForm, item.Id, answer)
|
this.$set(this.questionForm, item.Id, answer)
|
||||||
}
|
}
|
||||||
if (item.QuestionType === 1013) {
|
if (item.QuestionType === 1013) {
|
||||||
|
|
@ -541,6 +540,7 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
numberOrNEInput(id) {
|
numberOrNEInput(id) {
|
||||||
|
this.formChanged = true
|
||||||
// this.questionForm[id] = this.questionForm[id].toUpperCase();
|
// this.questionForm[id] = this.questionForm[id].toUpperCase();
|
||||||
if (!this.questionForm[id]) {
|
if (!this.questionForm[id]) {
|
||||||
return
|
return
|
||||||
|
|
@ -559,6 +559,11 @@ export default {
|
||||||
this.questionForm[id] = value
|
this.questionForm[id] = value
|
||||||
this.$set(this.questionForm, id, value)
|
this.$set(this.questionForm, id, value)
|
||||||
},
|
},
|
||||||
|
numberInput(id) {
|
||||||
|
this.formChanged = true
|
||||||
|
let value = this.questionForm[id].replace(/[^\d.]/g, '')
|
||||||
|
this.$set(this.questionForm, id, value)
|
||||||
|
},
|
||||||
handleNumberOrNEBlur(item) {
|
handleNumberOrNEBlur(item) {
|
||||||
if (this.questionForm[item.Id] && !this.questionForm[item.Id].startsWith('N')) {
|
if (this.questionForm[item.Id] && !this.questionForm[item.Id].startsWith('N')) {
|
||||||
if (item.ValueType === 3) {
|
if (item.ValueType === 3) {
|
||||||
|
|
@ -805,7 +810,7 @@ export default {
|
||||||
uploadTpl(lesionType, TableName) {
|
uploadTpl(lesionType, TableName) {
|
||||||
this.upload.lesionType = lesionType
|
this.upload.lesionType = lesionType
|
||||||
this.upload.TableName = TableName
|
this.upload.TableName = TableName
|
||||||
this.upload.title = `导入( ${this.$fd('LesionType', lesionType)} )`
|
this.upload.title = `${this.$fd('LesionType', lesionType)}`
|
||||||
this.upload.visible = true
|
this.upload.visible = true
|
||||||
},
|
},
|
||||||
async downloadTpl(lesionType) {
|
async downloadTpl(lesionType) {
|
||||||
|
|
@ -813,7 +818,7 @@ export default {
|
||||||
const params = {
|
const params = {
|
||||||
visitTaskId: this.visitTaskId
|
visitTaskId: this.visitTaskId
|
||||||
}
|
}
|
||||||
if (lesionType === 112) {
|
if (lesionType === 104) {
|
||||||
await getOCTFCTTemplate(params)
|
await getOCTFCTTemplate(params)
|
||||||
} else {
|
} else {
|
||||||
await getOCTLipidAngleTemplate(params)
|
await getOCTLipidAngleTemplate(params)
|
||||||
|
|
@ -841,7 +846,7 @@ export default {
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.measurement-wrapper {
|
.measurement-wrapper {
|
||||||
height: 100%;
|
height: calc(100% - 50px);
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
// overflow: hidden;
|
// overflow: hidden;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -72,15 +72,17 @@ export default {
|
||||||
data.append('file', param.file)
|
data.append('file', param.file)
|
||||||
data.append('visitTaskId', this.visitTaskId)
|
data.append('visitTaskId', this.visitTaskId)
|
||||||
data.append('TableName', this.TableName)
|
data.append('TableName', this.TableName)
|
||||||
if (this.lesionType === 112) {
|
data.append('readingImportType', 3)
|
||||||
data.append('readingImportType', 1)
|
await readingImport(data)
|
||||||
await readingImport(data)
|
// if (this.lesionType === 112) {
|
||||||
} else {
|
// data.append('readingImportType', 1)
|
||||||
data.append('readingImportType', 2)
|
// await readingImport(data)
|
||||||
await readingImport(data)
|
// } else {
|
||||||
}
|
// data.append('readingImportType', 2)
|
||||||
|
// await readingImport(data)
|
||||||
|
// }
|
||||||
this.$emit('close')
|
this.$emit('close')
|
||||||
this.$message.success('导入成功!')
|
this.$message.success(this.$t('common:message:savedSuccessfully'))
|
||||||
loading.close()
|
loading.close()
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
loading.close()
|
loading.close()
|
||||||
|
|
|
||||||
|
|
@ -91,7 +91,7 @@
|
||||||
@change="((val) => { formItemChange(val, question) })" />
|
@change="((val) => { formItemChange(val, question) })" />
|
||||||
<!-- 下拉框 -->
|
<!-- 下拉框 -->
|
||||||
<el-select v-else-if="question.Type === 'select'" v-model="questionForm[question.Id]"
|
<el-select v-else-if="question.Type === 'select'" v-model="questionForm[question.Id]"
|
||||||
:disabled="readingTaskState >= 2 || ((question.TableQuestionType === 2 || question.QuestionGenre === 2) && !!question.DictionaryCode) || isFirstChangeTask || question.QuestionType === 50 || question.QuestionType === 55"
|
:disabled="readingTaskState >= 2 || ((question.TableQuestionType === 2 || question.QuestionGenre === 2) && !!question.DictionaryCode) || isFirstChangeTask || question.QuestionType === 50 || question.QuestionType === 55 || question.QuestionType === 1026"
|
||||||
clearable :multiple="question.OptionTypeEnum === 1" @change="((val) => { formItemChange(val, question) })">
|
clearable :multiple="question.OptionTypeEnum === 1" @change="((val) => { formItemChange(val, question) })">
|
||||||
<template v-if="question.TableQuestionType === 1">
|
<template v-if="question.TableQuestionType === 1">
|
||||||
<el-option v-for="item in organList" :key="item.Id" :label="item[question.DataTableColumn]"
|
<el-option v-for="item in organList" :key="item.Id" :label="item[question.DataTableColumn]"
|
||||||
|
|
|
||||||
|
|
@ -234,7 +234,10 @@ export default {
|
||||||
obj.forEach(i => {
|
obj.forEach(i => {
|
||||||
i.IsBaseLineTask = this.isBaseLineTask
|
i.IsBaseLineTask = this.isBaseLineTask
|
||||||
if (i.Type !== 'group' && i.Type !== 'summary' && i.Id) {
|
if (i.Type !== 'group' && i.Type !== 'summary' && i.Id) {
|
||||||
const answer = i.Type === 'select' && i.OptionTypeEnum === 1 && i.Answer ? JSON.parse(i.Answer) : i.Answer
|
let answer = i.Type === 'select' && i.OptionTypeEnum === 1 && i.Answer ? JSON.parse(i.Answer) : i.Answer
|
||||||
|
if (i.DictionaryCode && i.Type === 'calculation') {
|
||||||
|
answer = this.$fd(i.DictionaryCode, parseInt(i.Answer))
|
||||||
|
}
|
||||||
this.$set(this.questionForm, i.Id, answer ? answer : null)
|
this.$set(this.questionForm, i.Id, answer ? answer : null)
|
||||||
if (i.QuestionType === 44) {
|
if (i.QuestionType === 44) {
|
||||||
// 影响质量评估
|
// 影响质量评估
|
||||||
|
|
|
||||||
|
|
@ -500,6 +500,7 @@ import downloadDicomAndNonedicom from '@/components/downloadDicomAndNonedicom'
|
||||||
import { getNetWorkSpeed, setNetWorkSpeedSizeAll, workSpeedclose } from "@/utils"
|
import { getNetWorkSpeed, setNetWorkSpeedSizeAll, workSpeedclose } from "@/utils"
|
||||||
import readingChart from '@/components/readingChart'
|
import readingChart from '@/components/readingChart'
|
||||||
import SystemInfo from "@/utils/systemInfo";
|
import SystemInfo from "@/utils/systemInfo";
|
||||||
|
import md5 from 'js-md5'
|
||||||
const { visibility } = annotation
|
const { visibility } = annotation
|
||||||
const { ViewportType, Events } = Enums
|
const { ViewportType, Events } = Enums
|
||||||
const renderingEngineId = 'myRenderingEngine'
|
const renderingEngineId = 'myRenderingEngine'
|
||||||
|
|
@ -812,6 +813,7 @@ export default {
|
||||||
this.open.postMessage({ type: 'addNoneDicomMeasureData', data: data }, window.location)
|
this.open.postMessage({ type: 'addNoneDicomMeasureData', data: data }, window.location)
|
||||||
})
|
})
|
||||||
document.addEventListener("click", this.foo);
|
document.addEventListener("click", this.foo);
|
||||||
|
this.getSystemInfoReading();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
setMPRInfo(obj) {
|
setMPRInfo(obj) {
|
||||||
|
|
@ -3567,6 +3569,30 @@ export default {
|
||||||
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
async getSystemInfoReading() {
|
||||||
|
return new Promise(async resolve => {
|
||||||
|
let whitelisting = localStorage.getItem('whitelisting') ? JSON.parse(localStorage.getItem('whitelisting')) : []
|
||||||
|
let user = md5(sessionStorage.getItem('identityUserId'))
|
||||||
|
let r = whitelisting.some(item => item === user)
|
||||||
|
if (r) return resolve(true)
|
||||||
|
const systemInfo = new SystemInfo();
|
||||||
|
const allInfo = systemInfo.getAllInfo();
|
||||||
|
let deviceMemory = allInfo.hardware.deviceMemory; // 设备内存
|
||||||
|
let { width, height } = allInfo.screen; // 分辨率
|
||||||
|
// let discrete = allInfo.webgl.gpuType.discrete; // 是否独立显卡
|
||||||
|
// let estimatedMemory = allInfo.webgl.memoryInfo.estimatedMemory; // 显卡内存
|
||||||
|
// parseFloat(deviceMemory) < 16 ||
|
||||||
|
if (width < 1920 || height < 1080) {
|
||||||
|
let res = await this.$confirm(this.$t('browser:tip:Configuration'))
|
||||||
|
whitelisting.push(user)
|
||||||
|
localStorage.setItem('whitelisting', JSON.stringify(whitelisting))
|
||||||
|
resolve(res)
|
||||||
|
} else {
|
||||||
|
resolve(true)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
},
|
||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
DicomEvent.$off('isCanActiveNoneDicomTool')
|
DicomEvent.$off('isCanActiveNoneDicomTool')
|
||||||
|
|
|
||||||
|
|
@ -92,6 +92,7 @@ export default {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
getTrialCriterionList(this.$route.query.trialId, false).then(res => {
|
getTrialCriterionList(this.$route.query.trialId, false).then(res => {
|
||||||
this.trialCriterionList = res.Result.filter(item => [1, 18, 2, 3, 7, 10, 17].includes(Number(item.CriterionType)))
|
this.trialCriterionList = res.Result.filter(item => [1, 18, 2, 3, 7, 10, 17].includes(Number(item.CriterionType)))
|
||||||
|
this.loading = false
|
||||||
if (this.trialCriterionList.length > 0) {
|
if (this.trialCriterionList.length > 0) {
|
||||||
this.TrialReadingCriterionId = this.trialCriterionList[0].TrialReadingCriterionId
|
this.TrialReadingCriterionId = this.trialCriterionList[0].TrialReadingCriterionId
|
||||||
this.getList()
|
this.getList()
|
||||||
|
|
|
||||||
|
|
@ -145,23 +145,29 @@ export default {
|
||||||
titleText: this.$t("trials:reportForms:cjart:title:VisitFinishedStat"),
|
titleText: this.$t("trials:reportForms:cjart:title:VisitFinishedStat"),
|
||||||
seriesData: [],
|
seriesData: [],
|
||||||
max: 0,
|
max: 0,
|
||||||
legendData: [
|
legendData: []
|
||||||
this.$t("trials:reportForms:cjart:title:UploadedCount"),
|
|
||||||
this.$t("trials:reportForms:cjart:title:QCFinishedCount"),
|
|
||||||
this.$t("trials:reportForms:cjart:title:CheckFinishedCount"),
|
|
||||||
this.$t("trials:reportForms:cjart:title:ReadingFinishedCount")
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
res.Result.ReadingFinishedCount = res.Result.CriterionList[0].ReadingFinishedCount
|
res.Result.ReadingFinishedCount = res.Result.CriterionList[0].ReadingFinishedCount
|
||||||
let keys = ['UploadedCount', 'QCFinishedCount', 'CheckFinishedCount', 'ReadingFinishedCount']
|
let keys = ['UploadedCount', 'QCFinishedCount', 'CheckFinishedCount', 'ReadingFinishedCount']
|
||||||
obj.legendData.forEach((item, index) => {
|
keys.forEach((item, index) => {
|
||||||
let o = {
|
if (res.Result[item] != null) {
|
||||||
name: item,
|
let o = {
|
||||||
value: res.Result[keys[index]]
|
name: this.$t(`trials:reportForms:cjart:title:${item}`),
|
||||||
|
value: res.Result[item]
|
||||||
|
}
|
||||||
|
obj.legendData.push(o.name)
|
||||||
|
obj.seriesData.push(o)
|
||||||
|
arr.push(res.Result[item])
|
||||||
}
|
}
|
||||||
obj.seriesData.push(o)
|
|
||||||
arr.push(res.Result[keys[index]])
|
|
||||||
})
|
})
|
||||||
|
// obj.legendData.forEach((item, index) => {
|
||||||
|
// let o = {
|
||||||
|
// name: item,
|
||||||
|
// value: res.Result[keys[index]]
|
||||||
|
// }
|
||||||
|
// obj.seriesData.push(o)
|
||||||
|
// arr.push(res.Result[keys[index]])
|
||||||
|
// })
|
||||||
obj.max = Math.max(...arr)
|
obj.max = Math.max(...arr)
|
||||||
this.initChart_left(obj)
|
this.initChart_left(obj)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue