自定义阅片更改及非dicom阅片添加个性化配置
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
6b10d07e2a
commit
272c28a988
|
@ -76,7 +76,7 @@
|
|||
<el-input
|
||||
v-if="question.Type==='input'"
|
||||
v-model="questionForm[question.Id]"
|
||||
:disabled="question.TableQuestionType === 2"
|
||||
:disabled="question.TableQuestionType === 2 || readingTaskState === 2"
|
||||
/>
|
||||
<!-- 多行文本输入框 -->
|
||||
<el-input
|
||||
|
@ -84,13 +84,14 @@
|
|||
v-model="questionForm[question.Id]"
|
||||
type="textarea"
|
||||
:autosize="{ minRows: 2, maxRows: 4}"
|
||||
:disabled="readingTaskState === 2"
|
||||
/>
|
||||
<!-- 下拉框 -->
|
||||
<el-select
|
||||
v-if="question.Type==='select'"
|
||||
v-model="questionForm[question.Id]"
|
||||
clearable
|
||||
:disabled="(question.TableQuestionType === 2 || question.QuestionGenre === 2) && !!question.DictionaryCode"
|
||||
:disabled="(question.TableQuestionType === 2 || question.QuestionGenre === 2) && !!question.DictionaryCode || readingTaskState === 2"
|
||||
@change="((val)=>{formItemChange(val, question)})"
|
||||
>
|
||||
<template v-if="question.TableQuestionType === 1">
|
||||
|
@ -132,6 +133,7 @@
|
|||
v-if="question.Type==='radio'"
|
||||
v-model="questionForm[question.Id]"
|
||||
@change="((val)=>{formItemChange(val, question)})"
|
||||
:disabled="readingTaskState === 2"
|
||||
>
|
||||
<el-radio
|
||||
v-for="val in question.TypeValue.split('|')"
|
||||
|
@ -145,6 +147,7 @@
|
|||
<el-checkbox-group
|
||||
v-if="question.Type==='checkbox'"
|
||||
v-model="questionForm[question.Id]"
|
||||
:disabled="readingTaskState === 2"
|
||||
>
|
||||
<el-checkbox
|
||||
v-for="val in question.TypeValue.split('|')"
|
||||
|
@ -158,12 +161,12 @@
|
|||
<el-input
|
||||
v-if="question.Type === 'class' && question.ClassifyShowType === 1"
|
||||
v-model="questionForm[question.Id]"
|
||||
:disabled="!question.ClassifyEditType"
|
||||
:disabled="!question.ClassifyEditType || readingTaskState === 2"
|
||||
/>
|
||||
<el-select
|
||||
v-if="question.Type === 'class' && question.ClassifyShowType === 2"
|
||||
v-model="questionForm[question.Id]"
|
||||
:disabled="!question.ClassifyEditType"
|
||||
:disabled="!question.ClassifyEditType || readingTaskState === 2"
|
||||
@change="(val) => { formItemChange(val, question) }"
|
||||
>
|
||||
<el-option
|
||||
|
@ -176,7 +179,7 @@
|
|||
<el-radio-group
|
||||
v-if="question.Type === 'class' && question.ClassifyShowType === 3"
|
||||
v-model="questionForm[question.Id]"
|
||||
:disabled="!question.ClassifyEditType"
|
||||
:disabled="!question.ClassifyEditType || readingTaskState === 2"
|
||||
@change="(val) => { formItemChange(val, question) }"
|
||||
>
|
||||
<el-radio
|
||||
|
@ -190,7 +193,7 @@
|
|||
<el-input
|
||||
v-if="question.Type === 'class' && question.ClassifyShowType === 4"
|
||||
type="number"
|
||||
:disabled="!question.ClassifyEditType"
|
||||
:disabled="!question.ClassifyEditType || readingTaskState === 2"
|
||||
v-model="questionForm[question.Id]"
|
||||
@change="(val) => { formItemNumberChange(val, question) }"
|
||||
/>
|
||||
|
@ -215,6 +218,7 @@
|
|||
v-model="questionForm[question.Id]"
|
||||
clearable
|
||||
@change="(val) => { formItemNumberChange(val, question) }"
|
||||
:disabled="readingTaskState === 2"
|
||||
>
|
||||
<el-option
|
||||
v-for="val in question.TypeValue.split('|')"
|
||||
|
@ -229,6 +233,7 @@
|
|||
@change="(val) => { formItemNumberChange(val, question) }"
|
||||
@blur="handleBlur(questionForm[question.Id], questionForm, question.Id)"
|
||||
v-model="questionForm[question.Id]"
|
||||
:disabled="readingTaskState === 2"
|
||||
>
|
||||
<!-- <template slot="append">1</template> -->
|
||||
<template slot="append" v-if="question.Unit !== 0">{{question.Unit !== 4 ? $fd('ValueUnit', question.Unit) : question.CustomUnit}}</template>
|
||||
|
@ -238,7 +243,7 @@
|
|||
type="number"
|
||||
v-if="question.Type === 'number' && !question.TypeValue && question.DataSource === 1"
|
||||
@blur="handleBlur(questionForm[question.Id], questionForm, question.Id)"
|
||||
:disabled="question.DataSource === 1"
|
||||
:disabled="question.DataSource === 1 || readingTaskState === 2"
|
||||
v-model="questionForm[question.Id]"
|
||||
>
|
||||
<!-- <template slot="append">2</template> -->
|
||||
|
@ -248,6 +253,7 @@
|
|||
<!-- 上传图像 -->
|
||||
<el-upload
|
||||
v-if="question.Type==='upload'"
|
||||
:disabled="readingTaskState === 2"
|
||||
action
|
||||
:accept="question.FileType"
|
||||
:limit="question.ImageCount === 0 ? 100 : question.ImageCount"
|
||||
|
@ -258,7 +264,7 @@
|
|||
:file-list="fileList"
|
||||
:class="{disabled:question.ImageCount === 0 ? false : fileList.length >= question.ImageCount}"
|
||||
>
|
||||
<el-button slot="default" class="el-icon-plus">
|
||||
<el-button slot="default" class="el-icon-plus" v-if="readingTaskState < 2">
|
||||
{{this.$t('common:button:upload')}}
|
||||
</el-button>
|
||||
</el-upload>
|
||||
|
@ -446,6 +452,13 @@ export default {
|
|||
this.formItemNumberChange(this.question.Id, false)
|
||||
}
|
||||
},
|
||||
readingTaskState: {
|
||||
deep: true,
|
||||
immediate: true,
|
||||
handler(v, oldv) {
|
||||
console.log(v)
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
var digitPlaces = Number(localStorage.getItem('digitPlaces'))
|
||||
|
|
|
@ -194,7 +194,7 @@
|
|||
</template>
|
||||
</template>
|
||||
<template v-else-if="task.VisitTaskId === visitTaskId && scope.row.Type === 'upload'">
|
||||
<CustomizeReportPageUpload
|
||||
<customize-report-page-upload
|
||||
v-if="scope.row.Type==='upload' && (scope.row.xfIndex || scope.row.xfIndex === 0)"
|
||||
:visitTaskId="visitTaskId"
|
||||
:question="scope.row"
|
||||
|
@ -202,8 +202,8 @@
|
|||
:readingTaskState="readingTaskState"
|
||||
:initUrl="questionForm[scope.row.QuestionId][scope.row.xfIndex][scope.row.TableQuestionId]"
|
||||
@setImageUrl="(url) => {setImageUrl(scope.row.QuestionId, scope.row.xfIndex, scope.row.TableQuestionId, url, scope.row.RowId)}"
|
||||
></CustomizeReportPageUpload>
|
||||
<CustomizeReportPageUpload
|
||||
></customize-report-page-upload>
|
||||
<customize-report-page-upload
|
||||
v-else-if="scope.row.Type==='upload'"
|
||||
:visitTaskId="visitTaskId"
|
||||
:question="scope.row"
|
||||
|
@ -211,25 +211,25 @@
|
|||
:readingTaskState="readingTaskState"
|
||||
:initUrl="questionForm[scope.row.QuestionId]"
|
||||
@setImageUrl="(url) => {setImageUrl(scope.row.QuestionId, scope.row.xfIndex, scope.row.TableQuestionId, url)}"
|
||||
></CustomizeReportPageUpload>
|
||||
></customize-report-page-upload>
|
||||
</template>
|
||||
<template v-else-if="scope.row.Type === 'upload'">
|
||||
<CustomizeReportPageUpload
|
||||
<customize-report-page-upload
|
||||
v-if="scope.row.Type==='upload' && (scope.row.xfIndex || scope.row.xfIndex === 0)"
|
||||
:visitTaskId="visitTaskId"
|
||||
:question="scope.row"
|
||||
:task="task"
|
||||
:readingTaskState="readingTaskState"
|
||||
:initUrl="scope.row.Answers[task.VisitTaskId]"
|
||||
></CustomizeReportPageUpload>
|
||||
<CustomizeReportPageUpload
|
||||
></customize-report-page-upload>
|
||||
<customize-report-page-upload
|
||||
v-else-if="scope.row.Type==='upload'"
|
||||
:visitTaskId="visitTaskId"
|
||||
:question="scope.row"
|
||||
:task="task"
|
||||
:readingTaskState="readingTaskState"
|
||||
:initUrl="scope.row.Answers[task.VisitTaskId]"
|
||||
></CustomizeReportPageUpload>
|
||||
></customize-report-page-upload>
|
||||
</template>
|
||||
<template v-else-if="scope.row.QuestionType=== 22">
|
||||
{{ scope.row.Answers[task.VisitTaskId] === '-1' ? '未知' : scope.row.Answers[task.VisitTaskId] }}
|
||||
|
@ -276,6 +276,7 @@
|
|||
<script>
|
||||
import { changeCalculationAnswer, getReadingReportEvaluation, changeDicomReadingQuestionAnswer, submitDicomVisitTask, verifyVisitTaskQuestions, getQuestionCalculateRelation } from '@/api/trials'
|
||||
import { setSkipReadingCache } from '@/api/reading'
|
||||
import { getAutoCutNextTask } from '@/api/user'
|
||||
import DicomEvent from './../components/DicomEvent'
|
||||
import CustomizeReportPageUpload from './CustomizeReportPageUpload'
|
||||
import const_ from '@/const/sign-code'
|
||||
|
@ -736,15 +737,16 @@ export default {
|
|||
}
|
||||
},
|
||||
// 签名并确认
|
||||
signConfirm(signInfo) {
|
||||
async signConfirm(signInfo) {
|
||||
this.loading = true
|
||||
try {
|
||||
var params = {
|
||||
data: {
|
||||
visitTaskId: this.visitTaskId
|
||||
},
|
||||
signInfo: signInfo
|
||||
}
|
||||
submitDicomVisitTask(params).then(res => {
|
||||
let res = await submitDicomVisitTask(params)
|
||||
if (res.IsSuccess) {
|
||||
this.$message.success(this.$t('common:message:savedSuccessfully'))
|
||||
if (this.$refs['signForm']) {
|
||||
|
@ -752,41 +754,36 @@ export default {
|
|||
}
|
||||
|
||||
this.signVisible = false
|
||||
// window.location.reload()
|
||||
// window.opener.postMessage('refreshTaskList', window.location)
|
||||
|
||||
// 设置当前任务阅片状态为已读
|
||||
this.readingTaskState = 2
|
||||
store.dispatch('reading/setVisitTaskReadingTaskState', { visitTaskId: this.visitTaskId, readingTaskState: 2 })
|
||||
DicomEvent.$emit('setReadingState', 2)
|
||||
window.opener.postMessage('refreshTaskList', window.location)
|
||||
const res = await getAutoCutNextTask()
|
||||
let isAutoTask = res.Result.AutoCutNextTask
|
||||
if (isAutoTask) {
|
||||
window.location.reload()
|
||||
} else {
|
||||
this.$confirm(this.$t('trials:oncologyReview:title:msg2'), {
|
||||
type: 'warning',
|
||||
distinguishCancelAndClose: true
|
||||
})
|
||||
.then(() => {
|
||||
// var token = getToken()
|
||||
// var subjectCode = this.$router.currentRoute.query.subjectCode
|
||||
// var subjectId = this.$router.currentRoute.query.subjectId
|
||||
// var trialId = this.$router.currentRoute.query.trialId
|
||||
|
||||
// this.$router.push({
|
||||
// path: `/readingPage?subjectCode=${subjectCode}&subjectId=${subjectId}&trialId=${trialId}&TokenKey=${token}`
|
||||
// })
|
||||
// DicomEvent.$emit('getNextTask')
|
||||
window.location.reload()
|
||||
})
|
||||
.catch(action => {
|
||||
|
||||
})
|
||||
}
|
||||
}
|
||||
this.loading = false
|
||||
}).catch(() => {
|
||||
} catch(e) {
|
||||
this.loading = false
|
||||
if (this.$refs['signForm'] && this.$refs['signForm'].btnLoading) {
|
||||
this.$refs['signForm'].btnLoading = false
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
previewDicoms(task) {
|
||||
var token = getToken()
|
||||
|
|
|
@ -5,28 +5,28 @@
|
|||
<!-- 全局阅片 -->
|
||||
<global-review
|
||||
v-else-if="taskInfo && taskInfo.ReadingCategory=== 2"
|
||||
:trialId="trialId"
|
||||
:subjectId="taskInfo.SubjectId"
|
||||
:visitTaskId="taskInfo.VisitTaskId"
|
||||
:readingCategory="taskInfo.ReadingCategory"
|
||||
:subjectCode="taskInfo.SubjectCode"
|
||||
:taskBlindName="taskInfo.TaskBlindName"
|
||||
:isReadingShowSubjectInfo="taskInfo.IsReadingShowSubjectInfo"
|
||||
:isReadingShowPreviousResults="taskInfo.IsReadingShowPreviousResults"
|
||||
:isExistsClinicalData="taskInfo.IsExistsClinicalData"
|
||||
:trial-id="trialId"
|
||||
:subject-id="taskInfo.SubjectId"
|
||||
:visit-task-id="taskInfo.VisitTaskId"
|
||||
:reading-category="taskInfo.ReadingCategory"
|
||||
:subject-code="taskInfo.SubjectCode"
|
||||
:task-blind-name="taskInfo.TaskBlindName"
|
||||
:is-reading-show-subject-info="taskInfo.IsReadingShowSubjectInfo"
|
||||
:is-reading-show-previous-results="taskInfo.IsReadingShowPreviousResults"
|
||||
:is-exists-clinical-data="taskInfo.IsExistsClinicalData"
|
||||
/>
|
||||
<!-- 裁判阅片 -->
|
||||
<ad-review
|
||||
v-else-if="taskInfo && taskInfo.ReadingCategory=== 4"
|
||||
:trialId="trialId"
|
||||
:subjectId="taskInfo.SubjectId"
|
||||
:visitTaskId="taskInfo.VisitTaskId"
|
||||
:readingCategory="taskInfo.ReadingCategory"
|
||||
:subjectCode="taskInfo.SubjectCode"
|
||||
:taskBlindName="taskInfo.TaskBlindName"
|
||||
:isReadingShowSubjectInfo="taskInfo.IsReadingShowSubjectInfo"
|
||||
:isReadingShowPreviousResults="taskInfo.IsReadingShowPreviousResults"
|
||||
:isExistsClinicalData="taskInfo.IsExistsClinicalData"
|
||||
:trial-id="trialId"
|
||||
:subject-id="taskInfo.SubjectId"
|
||||
:visit-task-id="taskInfo.VisitTaskId"
|
||||
:reading-category="taskInfo.ReadingCategory"
|
||||
:subject-code="taskInfo.SubjectCode"
|
||||
:task-blind-name="taskInfo.TaskBlindName"
|
||||
:is-reading-show-subject-info="taskInfo.IsReadingShowSubjectInfo"
|
||||
:is-reading-show-previous-results="taskInfo.IsReadingShowPreviousResults"
|
||||
:is-exists-clinical-data="taskInfo.IsExistsClinicalData"
|
||||
/>
|
||||
<!-- 肿瘤学阅片 -->
|
||||
<!-- <oncology-review v-else-if="taskInfo && taskInfo.ReadingCategory=== 5" /> -->
|
||||
|
@ -134,7 +134,7 @@ export default {
|
|||
} catch (e) {
|
||||
this.loading = false
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
@ -148,7 +148,7 @@ export default {
|
|||
height:80%;
|
||||
}
|
||||
::v-deep .el-dialog__body{
|
||||
padding: 20px 20px 0 20px;
|
||||
padding: 10px;
|
||||
height: calc(100% - 70px);
|
||||
}
|
||||
.el-dialog__header{
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
<template>
|
||||
<div v-loading="loading" class="ecrf-list-container">
|
||||
<el-form
|
||||
v-if="taskInfo"
|
||||
ref="questions"
|
||||
size="small"
|
||||
:model="questionForm"
|
||||
class="ecrf-form"
|
||||
v-if="taskInfo"
|
||||
>
|
||||
<!-- <FormItem
|
||||
v-for="question of questions"
|
||||
|
@ -21,13 +21,13 @@
|
|||
<QuestionFormItem
|
||||
v-for="question of questions"
|
||||
:key="question.Id"
|
||||
:visitTaskId="visitTaskId"
|
||||
:visit-task-id="visitTaskId"
|
||||
:question="question"
|
||||
:question-form="questionForm"
|
||||
:reading-task-state="readingTaskState"
|
||||
:criterion-id="criterionId"
|
||||
:CalculationList="calculationList"
|
||||
:IsBaseline="isBaseline"
|
||||
:calculation-list="calculationList"
|
||||
:is-baseline="isBaseline"
|
||||
@resetFormItemData="resetFormItemData"
|
||||
@setFormItemData="setFormItemData"
|
||||
/>
|
||||
|
@ -67,7 +67,7 @@
|
|||
|
||||
<script>
|
||||
|
||||
import { getCustomTableQuestionAnswer, changeDicomReadingQuestionAnswer, getTrialReadingQuestion, saveVisitTaskQuestions, submitVisitTaskQuestionsInDto, getQuestionCalculateRelation } from '@/api/trials'
|
||||
import { getCustomTableQuestionAnswer, changeDicomReadingQuestionAnswer, submitVisitTaskQuestionsInDto, getQuestionCalculateRelation } from '@/api/trials'
|
||||
import { setSkipReadingCache } from '@/api/reading'
|
||||
import const_ from '@/const/sign-code'
|
||||
import store from '@/store'
|
||||
|
@ -125,6 +125,7 @@ export default {
|
|||
currentTaskState: {
|
||||
immediate: true,
|
||||
handler(state) {
|
||||
console.log(state)
|
||||
if (state === 2) {
|
||||
this.readingTaskState = 2
|
||||
}
|
||||
|
@ -154,7 +155,7 @@ export default {
|
|||
this.$set(this.questionForm, v.Id, v.TableQuestions.Answers)
|
||||
}
|
||||
if (v.Type === 'class') {
|
||||
this.classArr.push({triggerId: v.ClassifyQuestionId, classId: v.Id, classifyAlgorithms: v.ClassifyAlgorithms, classifyType: v.ClassifyType})
|
||||
this.classArr.push({ triggerId: v.ClassifyQuestionId, classId: v.Id, classifyAlgorithms: v.ClassifyAlgorithms, classifyType: v.ClassifyType })
|
||||
}
|
||||
if (v.Type === 'number') {
|
||||
this.$set(this.questionForm, v.Id, v.Answer === '' ? '' : parseFloat(v.Answer).toFixed(this.digitPlaces))
|
||||
|
@ -166,13 +167,10 @@ export default {
|
|||
this.questions = res.Result.SinglePage
|
||||
this.loading = false
|
||||
}
|
||||
|
||||
} catch(e) {
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
this.loading = false
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
setChild(obj) {
|
||||
obj.forEach(i => {
|
||||
|
@ -190,7 +188,7 @@ export default {
|
|||
this.$set(this.questionForm, i.Id, i.TableQuestions.Answers)
|
||||
}
|
||||
if (i.Type === 'class') {
|
||||
this.classArr.push({triggerId: i.ClassifyQuestionId, classId: i.Id, classifyAlgorithms: i.ClassifyAlgorithms, classifyType: i.ClassifyType})
|
||||
this.classArr.push({ triggerId: i.ClassifyQuestionId, classId: i.Id, classifyAlgorithms: i.ClassifyAlgorithms, classifyType: i.ClassifyType })
|
||||
}
|
||||
if (i.Type === 'number') {
|
||||
this.$set(this.questionForm, i.Id, i.Answer === '' ? '' : parseFloat(i.Answer).toFixed(this.digitPlaces))
|
||||
|
@ -223,14 +221,14 @@ export default {
|
|||
visitTaskId: this.visitTaskId,
|
||||
answers: answers
|
||||
}
|
||||
let res = await changeDicomReadingQuestionAnswer(params)
|
||||
const res = await changeDicomReadingQuestionAnswer(params)
|
||||
if (res.IsSuccess) {
|
||||
if (isMsg) {
|
||||
this.$message.success(this.$t('common:message:savedSuccessfully'))
|
||||
}
|
||||
this.loading = false
|
||||
}
|
||||
} catch(e) {
|
||||
} catch (e) {
|
||||
this.loading = false
|
||||
}
|
||||
},
|
||||
|
@ -381,20 +379,24 @@ export default {
|
|||
::v-deep .el-table--border th.gutter:last-of-type {
|
||||
border: none;
|
||||
}
|
||||
::v-deep .el-dialog__header {
|
||||
background-color: #000;
|
||||
color: #fff;
|
||||
.el-dialog__title {
|
||||
color: #fff;
|
||||
::v-deep .el-dialog{
|
||||
background: #1e1e1e;
|
||||
border: 1px solid #ddd;
|
||||
color: #ddd;
|
||||
.el-dialog__title{
|
||||
color:#fff;
|
||||
}
|
||||
.el-input .el-input__inner{
|
||||
background-color: transparent;
|
||||
color: #ddd;
|
||||
border: 1px solid #5e5e5e;
|
||||
}
|
||||
::v-deep .el-dialog__body {
|
||||
background-color: #000;
|
||||
color: #fff;
|
||||
.el-input.is-disabled .el-input__inner{
|
||||
background-color: #646464a1;
|
||||
}
|
||||
.el-form-item__label{
|
||||
color: #dfdfdf
|
||||
}
|
||||
::v-deep .el-dialog__footer {
|
||||
background-color: #000;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
<div class="none-dicom-viewer">
|
||||
<!-- tools -->
|
||||
<div class="tools-wrapper">
|
||||
<div class="tools-left">
|
||||
<!-- 布局 -->
|
||||
<div class="tool-item" :title="$t('trials:reading:button:layout')">
|
||||
<el-dropdown @command="handleCommand">
|
||||
|
@ -102,6 +103,11 @@
|
|||
<svg-icon icon-class="refresh" class="svg-icon" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<el-button type="text" @click="previewConfig">{{ $t('trials:reading:button:customCfg') }}</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- viewports -->
|
||||
<div class="viewports-wrapper">
|
||||
<div class="grid-container" :style="gridStyle">
|
||||
|
@ -237,6 +243,16 @@
|
|||
<el-button type="primary" @click="saveForm">{{ $t('common:button:save') }}</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog
|
||||
v-if="personalConfigDialog.visible"
|
||||
:visible.sync="personalConfigDialog.visible"
|
||||
:close-on-click-modal="false"
|
||||
:title="personalConfigDialog.title"
|
||||
width="600px"
|
||||
>
|
||||
<Others />
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
|
@ -258,6 +274,7 @@ import hardcodedMetaDataProvider from './../js/hardcodedMetaDataProvider'
|
|||
import registerWebImageLoader from './../js/registerWebImageLoader'
|
||||
import { mapGetters } from 'vuex'
|
||||
import store from '@/store'
|
||||
import Others from '@/views/trials/trials-panel/reading/dicoms/components/Others'
|
||||
const { ViewportType } = Enums
|
||||
const renderingEngineId = 'myRenderingEngine'
|
||||
const {
|
||||
|
@ -278,6 +295,7 @@ const {
|
|||
const { MouseBindings, Events: toolsEvents } = csToolsEnums
|
||||
export default {
|
||||
name: 'ImageViewer',
|
||||
components: { Others },
|
||||
props: {
|
||||
relatedStudyInfo: {
|
||||
type: Object,
|
||||
|
@ -310,6 +328,7 @@ export default {
|
|||
imageType: ['image/jpeg', 'image/jpg', 'image/bmp', 'image/png'],
|
||||
digitPlaces: 2,
|
||||
dialogVisible: false,
|
||||
personalConfigDialog: { visible: false, title: this.$t('trials:reading:button:customCfg') }, // 个性化配置
|
||||
form: {
|
||||
length: null,
|
||||
annotationObj: {}
|
||||
|
@ -1180,6 +1199,9 @@ export default {
|
|||
// 查看临床数据
|
||||
viewCD(id) {
|
||||
this.$emit('previewCD', id)
|
||||
},
|
||||
previewConfig() {
|
||||
this.personalConfigDialog.visible = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1194,11 +1216,17 @@ export default {
|
|||
.tools-wrapper {
|
||||
height: 50px;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
border-bottom: 1px solid #727272;
|
||||
color: #ddd;
|
||||
padding: 0 5px;
|
||||
.tools-left {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
}
|
||||
.tool-item {
|
||||
padding: 5px;
|
||||
margin: 0 5px;
|
||||
|
@ -1317,5 +1345,24 @@ export default {
|
|||
}
|
||||
}
|
||||
}
|
||||
::v-deep .el-dialog{
|
||||
background: #1e1e1e;
|
||||
border: 1px solid #ddd;
|
||||
color: #ddd;
|
||||
.el-dialog__title{
|
||||
color:#fff;
|
||||
}
|
||||
.el-input .el-input__inner{
|
||||
background-color: transparent;
|
||||
color: #ddd;
|
||||
border: 1px solid #5e5e5e;
|
||||
}
|
||||
.el-input.is-disabled .el-input__inner{
|
||||
background-color: #646464a1;
|
||||
}
|
||||
.el-form-item__label{
|
||||
color: #dfdfdf
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -239,6 +239,7 @@
|
|||
<script>
|
||||
import { changeCalculationAnswer, getReadingReportEvaluation, submitDicomVisitTask, verifyVisitTaskQuestions, getQuestionCalculateRelation } from '@/api/trials'
|
||||
import { setSkipReadingCache } from '@/api/reading'
|
||||
import { getAutoCutNextTask } from '@/api/user'
|
||||
import const_ from '@/const/sign-code'
|
||||
import SignForm from '@/views/trials/components/newSignForm'
|
||||
import PreviewFile from '@/components/PreviewFile/index'
|
||||
|
@ -618,15 +619,16 @@ export default {
|
|||
}
|
||||
},
|
||||
// 签名并确认
|
||||
signConfirm(signInfo) {
|
||||
async signConfirm(signInfo) {
|
||||
this.loading = true
|
||||
try {
|
||||
var params = {
|
||||
data: {
|
||||
visitTaskId: this.visitTaskId
|
||||
},
|
||||
signInfo: signInfo
|
||||
}
|
||||
submitDicomVisitTask(params).then(res => {
|
||||
const res = await submitDicomVisitTask(params)
|
||||
if (res.IsSuccess) {
|
||||
this.$message.success(this.$t('common:message:savedSuccessfully'))
|
||||
if (this.$refs['signForm']) {
|
||||
|
@ -634,43 +636,39 @@ export default {
|
|||
}
|
||||
|
||||
this.signVisible = false
|
||||
// window.location.reload()
|
||||
// window.opener.postMessage('refreshTaskList', window.location)
|
||||
|
||||
// 设置当前任务阅片状态为已读
|
||||
this.readingTaskState = 2
|
||||
this.taskInfo.ReadingTaskState = 2
|
||||
localStorage.setItem('taskInfo', JSON.stringify(this.taskInfo))
|
||||
store.dispatch('noneDicomReview/setCurrentTaskState', 2)
|
||||
// DicomEvent.$emit('setReadingState', 2)
|
||||
window.opener.postMessage('refreshTaskList', window.location)
|
||||
this.$confirm(this.$t('trials:oncologyReview:title:msg2'), {
|
||||
const res = await getAutoCutNextTask()
|
||||
const isAutoTask = res.Result.AutoCutNextTask
|
||||
if (isAutoTask) {
|
||||
window.location.reload()
|
||||
} else {
|
||||
// '当前阅片任务已完成,是否进入下一个阅片任务?'
|
||||
this.$confirm(this.$t('trials:readingReport:message:msg4'), {
|
||||
type: 'warning',
|
||||
distinguishCancelAndClose: true
|
||||
})
|
||||
.then(() => {
|
||||
// var token = getToken()
|
||||
// var subjectCode = this.$router.currentRoute.query.subjectCode
|
||||
// var subjectId = this.$router.currentRoute.query.subjectId
|
||||
// var trialId = this.$router.currentRoute.query.trialId
|
||||
|
||||
// this.$router.push({
|
||||
// path: `/readingPage?subjectCode=${subjectCode}&subjectId=${subjectId}&trialId=${trialId}&TokenKey=${token}`
|
||||
// })
|
||||
// DicomEvent.$emit('getNextTask')
|
||||
window.location.reload()
|
||||
})
|
||||
.catch(action => {
|
||||
|
||||
// changeURLStatic('visitTaskId', this.visitTaskId)
|
||||
})
|
||||
}
|
||||
}
|
||||
this.loading = false
|
||||
}).catch(() => {
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
this.loading = false
|
||||
if (this.$refs['signForm'] && this.$refs['signForm'].btnLoading) {
|
||||
this.$refs['signForm'].btnLoading = false
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
previewDicoms(task) {
|
||||
var token = getToken()
|
||||
|
@ -822,6 +820,25 @@ export default {
|
|||
height: 30px;
|
||||
line-height: 40px;
|
||||
}
|
||||
::v-deep .el-dialog{
|
||||
background: #1e1e1e;
|
||||
border: 1px solid #ddd;
|
||||
color: #ddd;
|
||||
.el-dialog__title{
|
||||
color:#fff;
|
||||
}
|
||||
.el-input .el-input__inner{
|
||||
background-color: transparent;
|
||||
color: #ddd;
|
||||
border: 1px solid #5e5e5e;
|
||||
}
|
||||
.el-input.is-disabled .el-input__inner{
|
||||
background-color: #646464a1;
|
||||
}
|
||||
.el-form-item__label{
|
||||
color: #dfdfdf
|
||||
}
|
||||
}
|
||||
}
|
||||
::v-deep .el-switch__label{
|
||||
color:#fff;
|
||||
|
|
Loading…
Reference in New Issue