Lugano 2014 without FDG-PET
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
3c661ae86a
commit
1e49dedd23
|
|
@ -467,7 +467,14 @@
|
||||||
:is-show="isShow"
|
:is-show="isShow"
|
||||||
:is-reading-show-subject-info="isReadingShowSubjectInfo"
|
:is-reading-show-subject-info="isReadingShowSubjectInfo"
|
||||||
/>
|
/>
|
||||||
|
<LuganoWithoutPETQuestionList
|
||||||
|
v-else-if="CriterionType === 18"
|
||||||
|
ref="measurementList"
|
||||||
|
:question-form-change-state="questionFormChangeState"
|
||||||
|
:question-form-change-num="questionFormChangeNum"
|
||||||
|
:is-show="isShow"
|
||||||
|
:is-reading-show-subject-info="isReadingShowSubjectInfo"
|
||||||
|
/>
|
||||||
<RecistQuestionList
|
<RecistQuestionList
|
||||||
v-else-if="CriterionType === 1"
|
v-else-if="CriterionType === 1"
|
||||||
ref="measurementList"
|
ref="measurementList"
|
||||||
|
|
@ -792,6 +799,7 @@ import RecistBMQuestionList from './RecistBM/QuestionList'
|
||||||
import IRecistQuestionList from './IRecist/QuestionList'
|
import IRecistQuestionList from './IRecist/QuestionList'
|
||||||
import PCWGQuestionList from './PCWG/QuestionList'
|
import PCWGQuestionList from './PCWG/QuestionList'
|
||||||
import LuganoQuestionList from './Lugano/QuestionList'
|
import LuganoQuestionList from './Lugano/QuestionList'
|
||||||
|
import LuganoWithoutPETQuestionList from './LuganoWithoutPET/QuestionList'
|
||||||
import IVUSList from './IVUS/QuestionList'
|
import IVUSList from './IVUS/QuestionList'
|
||||||
import OCTList from './OCT/QuestionList'
|
import OCTList from './OCT/QuestionList'
|
||||||
import MRIPDFF from './MRIPDFF/QuestionList'
|
import MRIPDFF from './MRIPDFF/QuestionList'
|
||||||
|
|
@ -825,6 +833,7 @@ export default {
|
||||||
RecistBMQuestionList,
|
RecistBMQuestionList,
|
||||||
IRecistQuestionList,
|
IRecistQuestionList,
|
||||||
LuganoQuestionList,
|
LuganoQuestionList,
|
||||||
|
LuganoWithoutPETQuestionList,
|
||||||
IVUSList,
|
IVUSList,
|
||||||
OCTList,
|
OCTList,
|
||||||
MRIPDFF,
|
MRIPDFF,
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -1,36 +1,23 @@
|
||||||
<template>
|
<template>
|
||||||
<el-form v-if="globalForm.taskList.length > 0" ref="globalRuleForm" :model="globalForm" class="global-form">
|
<el-form v-if="globalForm.taskList.length > 0" ref="globalRuleForm" :model="globalForm" class="global-form">
|
||||||
<el-table
|
<el-table v-loading="loading" :data="globalForm.taskList">
|
||||||
v-loading="loading"
|
|
||||||
:data="globalForm.taskList"
|
|
||||||
>
|
|
||||||
<!-- 访视名称 -->
|
<!-- 访视名称 -->
|
||||||
<el-table-column
|
<el-table-column prop="BlindName" :label="$t('trials:globalReview:table:visitName')" show-overflow-tooltip
|
||||||
prop="BlindName"
|
width="150" />
|
||||||
:label="$t('trials:globalReview:table:visitName')"
|
|
||||||
show-overflow-tooltip
|
|
||||||
width="150"
|
|
||||||
/>
|
|
||||||
<!-- 评估结果 -->
|
<!-- 评估结果 -->
|
||||||
<el-table-column
|
<el-table-column :label="$t('trials:globalReview:table:evaluationRes')" align="center" prop="">
|
||||||
:label="$t('trials:globalReview:table:evaluationRes')"
|
|
||||||
align="center"
|
|
||||||
prop=""
|
|
||||||
>
|
|
||||||
<template>
|
<template>
|
||||||
<el-table-column
|
<el-table-column v-for="(qs, index) in globalInfo.evaluationQsList" :key="index" prop="" :label="qs"
|
||||||
v-for="(qs,index) in globalInfo.evaluationQsList"
|
show-overflow-tooltip width="150">
|
||||||
:key="index"
|
|
||||||
prop=""
|
|
||||||
:label="qs"
|
|
||||||
show-overflow-tooltip
|
|
||||||
width="150"
|
|
||||||
>
|
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<template v-if="(scope.row.IsBaseLine && (scope.row.BeforeQuestionList[index].GlobalReadingShowType ===1 || scope.row.BeforeQuestionList[index].GlobalReadingShowType ===5)) || (!scope.row.IsBaseLine && (scope.row.BeforeQuestionList[index].GlobalReadingShowType ===2 || scope.row.BeforeQuestionList[index].GlobalReadingShowType ===6)) || (scope.row.BeforeQuestionList[index].GlobalReadingShowType ===0 || scope.row.BeforeQuestionList[index].GlobalReadingShowType ===4)">
|
<template
|
||||||
<div v-if="scope.row.BeforeQuestionList.length>index && scope.row.BeforeQuestionList[index].Answer" :style="{color: scope.row.BeforeQuestionList[index].IsGlobalAnswer ? '#f66' : null}">
|
v-if="(scope.row.IsBaseLine && (scope.row.BeforeQuestionList[index].GlobalReadingShowType === 1 || scope.row.BeforeQuestionList[index].GlobalReadingShowType === 5)) || (!scope.row.IsBaseLine && (scope.row.BeforeQuestionList[index].GlobalReadingShowType === 2 || scope.row.BeforeQuestionList[index].GlobalReadingShowType === 6)) || (scope.row.BeforeQuestionList[index].GlobalReadingShowType === 0 || scope.row.BeforeQuestionList[index].GlobalReadingShowType === 4)">
|
||||||
|
<div v-if="scope.row.BeforeQuestionList.length > index && scope.row.BeforeQuestionList[index].Answer"
|
||||||
|
:style="{ color: scope.row.BeforeQuestionList[index].IsGlobalAnswer ? '#f66' : null }">
|
||||||
<span v-if="scope.row.BeforeQuestionList[index].DictionaryCode">
|
<span v-if="scope.row.BeforeQuestionList[index].DictionaryCode">
|
||||||
{{ $fd(scope.row.BeforeQuestionList[index].DictionaryCode,parseInt(scope.row.BeforeQuestionList[index].Answer)) }}
|
{{
|
||||||
|
$fd(scope.row.BeforeQuestionList[index].DictionaryCode, parseInt(scope.row.BeforeQuestionList[index].Answer))
|
||||||
|
}}
|
||||||
</span>
|
</span>
|
||||||
<span v-else>{{ scope.row.BeforeQuestionList[index].Answer }}</span>
|
<span v-else>{{ scope.row.BeforeQuestionList[index].Answer }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -41,213 +28,146 @@
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- 是否同意访视结果 -->
|
<!-- 是否同意访视结果 -->
|
||||||
<el-table-column
|
<el-table-column prop="" :label="$t('trials:globalReview:table:isAgreeEvaluationRes')" show-overflow-tooltip
|
||||||
prop=""
|
width="170">
|
||||||
:label="$t('trials:globalReview:table:isAgreeEvaluationRes')"
|
|
||||||
show-overflow-tooltip
|
|
||||||
width="170"
|
|
||||||
>
|
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-form-item
|
<el-form-item v-if="readingTaskState < 2" :prop="`${scope.$index}${scope.row.AgreeOrNot[0].GlobalAnswerType}`"
|
||||||
v-if="readingTaskState<2"
|
label="" :rules="[
|
||||||
:prop="`${scope.$index}${scope.row.AgreeOrNot[0].GlobalAnswerType}`"
|
{ required: true, message: $t('common:ruleMessage:select'), trigger: ['change', 'blur'] },
|
||||||
label=""
|
]" class="form-item">
|
||||||
:rules="[
|
<el-radio-group v-model="globalForm[`${scope.$index}${scope.row.AgreeOrNot[0].GlobalAnswerType}`]"
|
||||||
{ required: true,message: $t('common:ruleMessage:select'), trigger: ['change','blur']},
|
@change="handleAgreeOrNotChange(scope.$index, scope.row.AgreeOrNot[0].GlobalAnswerType)">
|
||||||
]"
|
<el-radio v-for="item of $d.ReadingYesOrNo" :key="'AgreeOrNot' + item.value" :label="String(item.value)">
|
||||||
class="form-item"
|
|
||||||
>
|
|
||||||
<el-radio-group
|
|
||||||
v-model="globalForm[`${scope.$index}${scope.row.AgreeOrNot[0].GlobalAnswerType}`]"
|
|
||||||
@change="handleAgreeOrNotChange(scope.$index,scope.row.AgreeOrNot[0].GlobalAnswerType)"
|
|
||||||
>
|
|
||||||
<el-radio
|
|
||||||
v-for="item of $d.ReadingYesOrNo"
|
|
||||||
:key="'AgreeOrNot' + item.value"
|
|
||||||
:label="String(item.value)"
|
|
||||||
>
|
|
||||||
{{ item.label }}
|
{{ item.label }}
|
||||||
</el-radio>
|
</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-tag v-else-if="scope.row.AgreeOrNot.length > 0 && parseInt(scope.row.AgreeOrNot[0].Answer) === 1" type="primary">
|
<el-tag v-else-if="scope.row.AgreeOrNot.length > 0 && parseInt(scope.row.AgreeOrNot[0].Answer) === 1"
|
||||||
{{ $fd('ReadingYesOrNo',parseInt(scope.row.AgreeOrNot[0].Answer)) }}
|
type="primary">
|
||||||
|
{{ $fd('ReadingYesOrNo', parseInt(scope.row.AgreeOrNot[0].Answer)) }}
|
||||||
</el-tag>
|
</el-tag>
|
||||||
<el-tag v-else-if="scope.row.AgreeOrNot.length > 0 && parseInt(scope.row.AgreeOrNot[0].Answer) === 0" type="danger"> {{ $fd('ReadingYesOrNo',parseInt(scope.row.AgreeOrNot[0].Answer)) }}</el-tag>
|
<el-tag v-else-if="scope.row.AgreeOrNot.length > 0 && parseInt(scope.row.AgreeOrNot[0].Answer) === 0"
|
||||||
|
type="danger"> {{ $fd('ReadingYesOrNo', parseInt(scope.row.AgreeOrNot[0].Answer)) }}</el-tag>
|
||||||
<span v-else />
|
<span v-else />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<!-- 调整后结果 -->
|
<!-- 调整后结果 -->
|
||||||
<el-table-column
|
<el-table-column :label="$t('trials:globalReview:table:adjustedRes')" align="center" prop="">
|
||||||
:label="$t('trials:globalReview:table:adjustedRes')"
|
<template v-for="(qs, index) in globalInfo.adjustedQsList">
|
||||||
align="center"
|
<el-table-column v-if="qs.isShow" :key="index" prop="" :label="qs.questionName" show-overflow-tooltip
|
||||||
prop=""
|
width="150">
|
||||||
>
|
|
||||||
<template>
|
|
||||||
<el-table-column
|
|
||||||
v-for="(qs,index) in globalInfo.adjustedQsList"
|
|
||||||
v-if="qs.isShow"
|
|
||||||
:key="index"
|
|
||||||
prop=""
|
|
||||||
:label="qs.questionName"
|
|
||||||
show-overflow-tooltip
|
|
||||||
width="150"
|
|
||||||
>
|
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<div v-if="readingTaskState<2 && (scope.row.AfterQuestionList[index].GlobalReadingShowType === 0 || (scope.row.IsBaseLine && scope.row.AfterQuestionList[index].GlobalReadingShowType === 1) || (!scope.row.IsBaseLine && scope.row.AfterQuestionList[index].GlobalReadingShowType === 2))">
|
<div
|
||||||
|
v-if="readingTaskState < 2 && (scope.row.AfterQuestionList[index].GlobalReadingShowType === 0 || (scope.row.IsBaseLine && scope.row.AfterQuestionList[index].GlobalReadingShowType === 1) || (!scope.row.IsBaseLine && scope.row.AfterQuestionList[index].GlobalReadingShowType === 2))">
|
||||||
<!-- <span v-if="(scope.row.IsBaseLine && scope.row.AfterQuestionList[index].LimitEdit === 2) || (!scope.row.IsBaseLine && scope.row.AfterQuestionList[index].LimitEdit === 1)">
|
<!-- <span v-if="(scope.row.IsBaseLine && scope.row.AfterQuestionList[index].LimitEdit === 2) || (!scope.row.IsBaseLine && scope.row.AfterQuestionList[index].LimitEdit === 1)">
|
||||||
{{ $fd(scope.row.AfterQuestionList[index].DictionaryCode, parseInt(scope.row.AfterQuestionList[index].VisitAnswer)) }}
|
{{ $fd(scope.row.AfterQuestionList[index].DictionaryCode, parseInt(scope.row.AfterQuestionList[index].VisitAnswer)) }}
|
||||||
</span> -->
|
</span> -->
|
||||||
|
|
||||||
<el-form-item
|
<el-form-item style="margin-bottom: 0;"
|
||||||
style="margin-bottom: 0;"
|
:prop="`${scope.$index}${scope.row.AfterQuestionList[index].QuestionId ? scope.row.AfterQuestionList[index].QuestionId : scope.row.AfterQuestionList[index].GlobalAnswerType}`"
|
||||||
:prop="`${scope.$index}${scope.row.AfterQuestionList[index].QuestionId?scope.row.AfterQuestionList[index].QuestionId:scope.row.AfterQuestionList[index].GlobalAnswerType}`"
|
label="" :rules="[
|
||||||
label=""
|
{ required: parseInt(globalForm[`${scope.$index}${scope.row.AgreeOrNot[0].GlobalAnswerType}`]) === 0, message: $t('common:ruleMessage:specify'), trigger: ['change', 'blur'] },
|
||||||
:rules="[
|
]">
|
||||||
{ required:parseInt(globalForm[`${scope.$index}${scope.row.AgreeOrNot[0].GlobalAnswerType}`]) === 0,message: $t('common:ruleMessage:specify'), trigger: ['change','blur']},
|
<label
|
||||||
]"
|
v-if="parseInt(globalForm[`${scope.$index}${scope.row.AgreeOrNot[0].GlobalAnswerType}`]) === 0" />
|
||||||
>
|
|
||||||
<label v-if="parseInt(globalForm[`${scope.$index}${scope.row.AgreeOrNot[0].GlobalAnswerType}`]) === 0" />
|
|
||||||
<!-- 裁判问题 -->
|
<!-- 裁判问题 -->
|
||||||
<template v-if="scope.row.AfterQuestionList[index].GlobalAnswerType === 0 ">
|
<template v-if="scope.row.AfterQuestionList[index].GlobalAnswerType === 0">
|
||||||
<el-tooltip v-if="getText(globalForm[`${scope.$index}${scope.row.AfterQuestionList[index].QuestionId?scope.row.AfterQuestionList[index].QuestionId:String(scope.row.AfterQuestionList[index].GlobalAnswerType)}`], scope.row.AfterQuestionList[index])" class="item" effect="dark" :content="getText(globalForm[`${scope.$index}${scope.row.AfterQuestionList[index].QuestionId?scope.row.AfterQuestionList[index].QuestionId:String(scope.row.AfterQuestionList[index].GlobalAnswerType)}`], scope.row.AfterQuestionList[index])" placement="top-start">
|
<el-tooltip
|
||||||
|
v-if="getText(globalForm[`${scope.$index}${scope.row.AfterQuestionList[index].QuestionId ? scope.row.AfterQuestionList[index].QuestionId : String(scope.row.AfterQuestionList[index].GlobalAnswerType)}`], scope.row.AfterQuestionList[index])"
|
||||||
|
class="item" effect="dark"
|
||||||
|
:content="getText(globalForm[`${scope.$index}${scope.row.AfterQuestionList[index].QuestionId ? scope.row.AfterQuestionList[index].QuestionId : String(scope.row.AfterQuestionList[index].GlobalAnswerType)}`], scope.row.AfterQuestionList[index])"
|
||||||
|
placement="top-start">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="globalForm[`${scope.$index}${scope.row.AfterQuestionList[index].QuestionId?scope.row.AfterQuestionList[index].QuestionId:String(scope.row.AfterQuestionList[index].GlobalAnswerType)}`]"
|
v-model="globalForm[`${scope.$index}${scope.row.AfterQuestionList[index].QuestionId ? scope.row.AfterQuestionList[index].QuestionId : String(scope.row.AfterQuestionList[index].GlobalAnswerType)}`]"
|
||||||
style="width:90%;"
|
style="width:90%;"
|
||||||
:disabled="parseInt(globalForm[`${scope.$index}${scope.row.AgreeOrNot[0].GlobalAnswerType}`]) !== 0"
|
:disabled="parseInt(globalForm[`${scope.$index}${scope.row.AgreeOrNot[0].GlobalAnswerType}`]) !== 0">
|
||||||
>
|
|
||||||
<template v-if="scope.row.AfterQuestionList[index].TypeValue">
|
<template v-if="scope.row.AfterQuestionList[index].TypeValue">
|
||||||
<el-option
|
<el-option v-for="val in scope.row.AfterQuestionList[index].TypeValue.split('|')" :key="val"
|
||||||
v-for="val in scope.row.AfterQuestionList[index].TypeValue.split('|')"
|
:label="val" :value="val" />
|
||||||
:key="val"
|
|
||||||
:label="val"
|
|
||||||
:value="val"
|
|
||||||
/>
|
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="scope.row.AfterQuestionList[index].DictionaryCode && scope.row.AfterQuestionList[index].QuestionType === 13">
|
<template
|
||||||
<el-option
|
v-else-if="scope.row.AfterQuestionList[index].DictionaryCode && scope.row.AfterQuestionList[index].QuestionType === 13">
|
||||||
v-for="item of $d[scope.row.AfterQuestionList[index].DictionaryCode]"
|
<el-option v-for="item of $d[scope.row.AfterQuestionList[index].DictionaryCode]"
|
||||||
v-show="item.value!==-1"
|
v-show="item.value !== -1" :key="item.id" :value="String(item.value)" :label="item.label"
|
||||||
:key="item.id"
|
:disabled="String(getBeforeAnswer(scope.row.AfterQuestionList[index].QuestionName, scope.row)) === String(item.value)" />
|
||||||
:value="String(item.value)"
|
|
||||||
:label="item.label"
|
|
||||||
:disabled="String(getBeforeAnswer(scope.row.AfterQuestionList[index].QuestionName,scope.row)) === String(item.value)"
|
|
||||||
/>
|
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="scope.row.AfterQuestionList[index].DictionaryCode">
|
<template v-else-if="scope.row.AfterQuestionList[index].DictionaryCode">
|
||||||
<el-option
|
<el-option v-for="item of $d[scope.row.AfterQuestionList[index].DictionaryCode]"
|
||||||
v-for="item of $d[scope.row.AfterQuestionList[index].DictionaryCode]"
|
:key="item.id" :value="String(item.value)"
|
||||||
:key="item.id"
|
:disabled="String(getBeforeAnswer(scope.row.AfterQuestionList[index].QuestionName, scope.row)) === String(item.value)"
|
||||||
:value="String(item.value)"
|
:label="item.label" />
|
||||||
:disabled="String(getBeforeAnswer(scope.row.AfterQuestionList[index].QuestionName,scope.row)) === String(item.value)"
|
|
||||||
:label="item.label"
|
|
||||||
/>
|
|
||||||
</template>
|
</template>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
<el-select
|
<el-select v-else
|
||||||
v-else
|
v-model="globalForm[`${scope.$index}${scope.row.AfterQuestionList[index].QuestionId ? scope.row.AfterQuestionList[index].QuestionId : String(scope.row.AfterQuestionList[index].GlobalAnswerType)}`]"
|
||||||
v-model="globalForm[`${scope.$index}${scope.row.AfterQuestionList[index].QuestionId?scope.row.AfterQuestionList[index].QuestionId:String(scope.row.AfterQuestionList[index].GlobalAnswerType)}`]"
|
|
||||||
style="width:90%;"
|
style="width:90%;"
|
||||||
:disabled="parseInt(globalForm[`${scope.$index}${scope.row.AgreeOrNot[0].GlobalAnswerType}`]) !== 0"
|
:disabled="parseInt(globalForm[`${scope.$index}${scope.row.AgreeOrNot[0].GlobalAnswerType}`]) !== 0">
|
||||||
>
|
|
||||||
<template v-if="scope.row.AfterQuestionList[index].TypeValue">
|
<template v-if="scope.row.AfterQuestionList[index].TypeValue">
|
||||||
<el-option
|
<el-option v-for="val in scope.row.AfterQuestionList[index].TypeValue.split('|')" :key="val"
|
||||||
v-for="val in scope.row.AfterQuestionList[index].TypeValue.split('|')"
|
:label="val" :value="val" />
|
||||||
:key="val"
|
|
||||||
:label="val"
|
|
||||||
:value="val"
|
|
||||||
/>
|
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="scope.row.AfterQuestionList[index].DictionaryCode && scope.row.AfterQuestionList[index].QuestionType === 13">
|
<template
|
||||||
<template v-if="getLesionCount(scope.row.LesionCountList,0)">
|
v-else-if="scope.row.AfterQuestionList[index].DictionaryCode && scope.row.AfterQuestionList[index].QuestionType === 13">
|
||||||
<el-option
|
<template v-if="getLesionCount(scope.row.LesionCountList, 0)">
|
||||||
v-for="item of $d[scope.row.AfterQuestionList[index].DictionaryCode]"
|
<el-option v-for="item of $d[scope.row.AfterQuestionList[index].DictionaryCode]"
|
||||||
v-show="item.value!==-1 && item.value !== 1 && item.value !== 3"
|
v-show="item.value !== -1 && item.value !== 1 && item.value !== 3" :key="item.id"
|
||||||
:key="item.id"
|
:value="String(item.value)" :label="item.label"
|
||||||
:value="String(item.value)"
|
:disabled="String(getBeforeAnswer(scope.row.AfterQuestionList[index].QuestionName, scope.row)) === String(item.value)" />
|
||||||
:label="item.label"
|
|
||||||
:disabled="String(getBeforeAnswer(scope.row.AfterQuestionList[index].QuestionName,scope.row)) === String(item.value)"
|
|
||||||
/>
|
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="getLesionCount(scope.row.LesionCountList,1)">
|
<template v-else-if="getLesionCount(scope.row.LesionCountList, 1)">
|
||||||
<el-option
|
<el-option v-for="item of $d[scope.row.AfterQuestionList[index].DictionaryCode]"
|
||||||
v-for="item of $d[scope.row.AfterQuestionList[index].DictionaryCode]"
|
v-show="item.value !== -1 && item.value !== 1 && item.value !== 6" :key="item.id"
|
||||||
v-show="item.value!==-1 && item.value !== 1 && item.value !== 6"
|
:value="String(item.value)" :label="item.label"
|
||||||
:key="item.id"
|
:disabled="String(getBeforeAnswer(scope.row.AfterQuestionList[index].QuestionName, scope.row)) === String(item.value)" />
|
||||||
:value="String(item.value)"
|
|
||||||
:label="item.label"
|
|
||||||
:disabled="String(getBeforeAnswer(scope.row.AfterQuestionList[index].QuestionName,scope.row)) === String(item.value)"
|
|
||||||
/>
|
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<el-option
|
<el-option v-for="item of $d[scope.row.AfterQuestionList[index].DictionaryCode]"
|
||||||
v-for="item of $d[scope.row.AfterQuestionList[index].DictionaryCode]"
|
v-show="item.value === 1 || item.value === 2 || item.value === 4" :key="item.id"
|
||||||
v-show="item.value === 1 || item.value === 2 || item.value === 4"
|
:value="String(item.value)" :label="item.label"
|
||||||
:key="item.id"
|
:disabled="String(getBeforeAnswer(scope.row.AfterQuestionList[index].QuestionName, scope.row)) === String(item.value)" />
|
||||||
:value="String(item.value)"
|
|
||||||
:label="item.label"
|
|
||||||
:disabled="String(getBeforeAnswer(scope.row.AfterQuestionList[index].QuestionName,scope.row)) === String(item.value)"
|
|
||||||
/>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="scope.row.AfterQuestionList[index].DictionaryCode">
|
<template v-else-if="scope.row.AfterQuestionList[index].DictionaryCode">
|
||||||
<el-option
|
<el-option v-for="item of $d[scope.row.AfterQuestionList[index].DictionaryCode]"
|
||||||
v-for="item of $d[scope.row.AfterQuestionList[index].DictionaryCode]"
|
v-show="item.value !== 6" :key="item.id" :value="String(item.value)"
|
||||||
v-show="item.value !== 6"
|
:disabled="String(getBeforeAnswer(scope.row.AfterQuestionList[index].QuestionName, scope.row)) === String(item.value)"
|
||||||
:key="item.id"
|
:label="item.label" />
|
||||||
:value="String(item.value)"
|
|
||||||
:disabled="String(getBeforeAnswer(scope.row.AfterQuestionList[index].QuestionName,scope.row)) === String(item.value)"
|
|
||||||
:label="item.label"
|
|
||||||
/>
|
|
||||||
</template>
|
</template>
|
||||||
</el-select>
|
</el-select>
|
||||||
</template>
|
</template>
|
||||||
<!-- 评估更新类型 GlobalAnswerType:3 -->
|
<!-- 评估更新类型 GlobalAnswerType:3 -->
|
||||||
<template v-if="scope.row.AfterQuestionList[index].GlobalAnswerType === 3">
|
<template v-if="scope.row.AfterQuestionList[index].GlobalAnswerType === 3">
|
||||||
<el-tooltip v-if="getText(globalForm[`${scope.$index}${scope.row.AfterQuestionList[index].GlobalAnswerType}`], scope.row.AfterQuestionList[index], scope.row.AfterQuestionList[index].GlobalAnswerType)" class="item" effect="dark" :content="getText(globalForm[`${scope.$index}${scope.row.AfterQuestionList[index].GlobalAnswerType}`], scope.row.AfterQuestionList[index], scope.row.AfterQuestionList[index].GlobalAnswerType)" placement="top-start">
|
<el-tooltip
|
||||||
|
v-if="getText(globalForm[`${scope.$index}${scope.row.AfterQuestionList[index].GlobalAnswerType}`], scope.row.AfterQuestionList[index], scope.row.AfterQuestionList[index].GlobalAnswerType)"
|
||||||
|
class="item" effect="dark"
|
||||||
|
:content="getText(globalForm[`${scope.$index}${scope.row.AfterQuestionList[index].GlobalAnswerType}`], scope.row.AfterQuestionList[index], scope.row.AfterQuestionList[index].GlobalAnswerType)"
|
||||||
|
placement="top-start">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="globalForm[`${scope.$index}${scope.row.AfterQuestionList[index].GlobalAnswerType}`]"
|
v-model="globalForm[`${scope.$index}${scope.row.AfterQuestionList[index].GlobalAnswerType}`]"
|
||||||
style="width:90%;"
|
style="width:90%;"
|
||||||
:disabled="parseInt(globalForm[`${scope.$index}${scope.row.AgreeOrNot[0].GlobalAnswerType}`]) !== 0"
|
:disabled="parseInt(globalForm[`${scope.$index}${scope.row.AgreeOrNot[0].GlobalAnswerType}`]) !== 0">
|
||||||
>
|
<el-option v-for="val in globalInfo.assessTypeList"
|
||||||
<el-option
|
|
||||||
v-for="val in globalInfo.assessTypeList"
|
|
||||||
v-show="(scope.row.IsBaseLine && val.IsBaseLineUse) || (!scope.row.IsBaseLine && val.IsFollowVisitUse)"
|
v-show="(scope.row.IsBaseLine && val.IsBaseLineUse) || (!scope.row.IsBaseLine && val.IsFollowVisitUse)"
|
||||||
:key="val.Code"
|
:key="val.Code" :label="language === 'en' ? val.Value : val.ValueCN" :value="val.Code" />
|
||||||
:label="language === 'en'?val.Value:val.ValueCN"
|
|
||||||
:value="val.Code"
|
|
||||||
/>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
<el-select
|
<el-select v-else
|
||||||
v-else
|
|
||||||
v-model="globalForm[`${scope.$index}${scope.row.AfterQuestionList[index].GlobalAnswerType}`]"
|
v-model="globalForm[`${scope.$index}${scope.row.AfterQuestionList[index].GlobalAnswerType}`]"
|
||||||
style="width:90%;"
|
style="width:90%;"
|
||||||
:disabled="parseInt(globalForm[`${scope.$index}${scope.row.AgreeOrNot[0].GlobalAnswerType}`]) !== 0"
|
:disabled="parseInt(globalForm[`${scope.$index}${scope.row.AgreeOrNot[0].GlobalAnswerType}`]) !== 0">
|
||||||
>
|
<el-option v-for="val in globalInfo.assessTypeList"
|
||||||
<el-option
|
|
||||||
v-for="val in globalInfo.assessTypeList"
|
|
||||||
v-show="(scope.row.IsBaseLine && val.IsBaseLineUse) || (!scope.row.IsBaseLine && val.IsFollowVisitUse)"
|
v-show="(scope.row.IsBaseLine && val.IsBaseLineUse) || (!scope.row.IsBaseLine && val.IsFollowVisitUse)"
|
||||||
:key="val.Code"
|
:key="val.Code" :label="language === 'en' ? val.Value : val.ValueCN" :value="val.Code" />
|
||||||
:label="language === 'en'?val.Value:val.ValueCN"
|
|
||||||
:value="val.Code"
|
|
||||||
/>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</template>
|
</template>
|
||||||
<el-input
|
<el-input v-if="scope.row.AfterQuestionList[index].GlobalAnswerType === 1"
|
||||||
v-if="scope.row.AfterQuestionList[index].GlobalAnswerType === 1"
|
v-model="globalForm[`${scope.$index}${scope.row.AfterQuestionList[index].QuestionId ? scope.row.AfterQuestionList[index].QuestionId : String(scope.row.AfterQuestionList[index].GlobalAnswerType)}`]"
|
||||||
v-model="globalForm[`${scope.$index}${scope.row.AfterQuestionList[index].QuestionId?scope.row.AfterQuestionList[index].QuestionId:String(scope.row.AfterQuestionList[index].GlobalAnswerType)}`]"
|
type="textarea" maxlength="100" show-word-limit style="width:90%;" :autosize="{ minRows: 2 }"
|
||||||
type="textarea"
|
:disabled="parseInt(globalForm[`${scope.$index}${scope.row.AgreeOrNot[0].GlobalAnswerType}`]) !== 0" />
|
||||||
maxlength="100"
|
|
||||||
show-word-limit
|
|
||||||
style="width:90%;"
|
|
||||||
:autosize="{ minRows: 2 }"
|
|
||||||
:disabled="parseInt(globalForm[`${scope.$index}${scope.row.AgreeOrNot[0].GlobalAnswerType}`]) !== 0"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
|
|
@ -255,7 +175,9 @@
|
||||||
{{ getAssessType(scope.row.AfterQuestionList[index].Answer) }}
|
{{ getAssessType(scope.row.AfterQuestionList[index].Answer) }}
|
||||||
</span>
|
</span>
|
||||||
<span v-else-if="scope.row.AfterQuestionList[index].DictionaryCode">
|
<span v-else-if="scope.row.AfterQuestionList[index].DictionaryCode">
|
||||||
{{ $fd(scope.row.AfterQuestionList[index].DictionaryCode,parseInt(scope.row.AfterQuestionList[index].Answer)) }}
|
{{
|
||||||
|
$fd(scope.row.AfterQuestionList[index].DictionaryCode, parseInt(scope.row.AfterQuestionList[index].Answer))
|
||||||
|
}}
|
||||||
</span>
|
</span>
|
||||||
<span v-else>{{ scope.row.AfterQuestionList[index].Answer }}</span>
|
<span v-else>{{ scope.row.AfterQuestionList[index].Answer }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -282,18 +204,10 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column :label="$t('common:action:action')" min-width="150" fixed="right">
|
||||||
:label="$t('common:action:action')"
|
|
||||||
min-width="150"
|
|
||||||
fixed="right"
|
|
||||||
>
|
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button
|
<el-button circle :title="$t('trials:globalReview:table:view')" icon="el-icon-view"
|
||||||
circle
|
@click="handleView(scope.row)" />
|
||||||
:title="$t('trials:globalReview:table:view')"
|
|
||||||
icon="el-icon-view"
|
|
||||||
@click="handleView(scope.row)"
|
|
||||||
/>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
@ -362,7 +276,7 @@ export default {
|
||||||
var isReadingTaskViewInOrder = this.$router.currentRoute.query.isReadingTaskViewInOrder
|
var isReadingTaskViewInOrder = this.$router.currentRoute.query.isReadingTaskViewInOrder
|
||||||
var trialReadingCriterionId = this.$router.currentRoute.query.TrialReadingCriterionId
|
var trialReadingCriterionId = this.$router.currentRoute.query.TrialReadingCriterionId
|
||||||
var path = ''
|
var path = ''
|
||||||
if (readingTool === 0 || readingTool === 2 ) {
|
if (readingTool === 0 || readingTool === 2) {
|
||||||
path = `/readingDicoms?TrialReadingCriterionId=${trialReadingCriterionId}&trialId=${this.globalInfo.trialId}&subjectCode=${this.globalInfo.subjectCode}&subjectId=${this.globalInfo.subjectId}&visitTaskId=${visitTaskId}&isReadingTaskViewInOrder=${isReadingTaskViewInOrder}&criterionType=${criterionType}&readingTool=${readingTool}&TokenKey=${token}`
|
path = `/readingDicoms?TrialReadingCriterionId=${trialReadingCriterionId}&trialId=${this.globalInfo.trialId}&subjectCode=${this.globalInfo.subjectCode}&subjectId=${this.globalInfo.subjectId}&visitTaskId=${visitTaskId}&isReadingTaskViewInOrder=${isReadingTaskViewInOrder}&criterionType=${criterionType}&readingTool=${readingTool}&TokenKey=${token}`
|
||||||
} else {
|
} else {
|
||||||
path = `/noneDicomReading?trialId=${this.globalInfo.trialId}&subjectCode=${this.globalInfo.subjectCode}&subjectId=${this.globalInfo.subjectId}&visitTaskId=${visitTaskId}&isReadingTaskViewInOrder=${isReadingTaskViewInOrder}&criterionType=${criterionType}&readingTool=${readingTool}&TokenKey=${token}`
|
path = `/noneDicomReading?trialId=${this.globalInfo.trialId}&subjectCode=${this.globalInfo.subjectCode}&subjectId=${this.globalInfo.subjectId}&visitTaskId=${visitTaskId}&isReadingTaskViewInOrder=${isReadingTaskViewInOrder}&criterionType=${criterionType}&readingTool=${readingTool}&TokenKey=${token}`
|
||||||
|
|
@ -389,16 +303,18 @@ export default {
|
||||||
if (i.QuestionId) {
|
if (i.QuestionId) {
|
||||||
obj.questionId = i.QuestionId
|
obj.questionId = i.QuestionId
|
||||||
obj.globalAnswerType = i.GlobalAnswerType
|
obj.globalAnswerType = i.GlobalAnswerType
|
||||||
obj.answer = this.globalForm[ `${index}${i.QuestionId}`]
|
obj.answer = this.globalForm[`${index}${i.QuestionId}`]
|
||||||
} else {
|
} else {
|
||||||
obj.questionId = ''
|
obj.questionId = ''
|
||||||
obj.globalAnswerType = i.GlobalAnswerType
|
obj.globalAnswerType = i.GlobalAnswerType
|
||||||
obj.answer = this.globalForm[ `${index}${i.GlobalAnswerType}`]
|
obj.answer = this.globalForm[`${index}${i.GlobalAnswerType}`]
|
||||||
}
|
}
|
||||||
answerList.push(obj)
|
answerList.push(obj)
|
||||||
})
|
})
|
||||||
answerList.push({ questionId: '', globalAnswerType: item.AgreeOrNot[0].GlobalAnswerType,
|
answerList.push({
|
||||||
answer: this.globalForm[ `${index}${item.AgreeOrNot[0].GlobalAnswerType}`] })
|
questionId: '', globalAnswerType: item.AgreeOrNot[0].GlobalAnswerType,
|
||||||
|
answer: this.globalForm[`${index}${item.AgreeOrNot[0].GlobalAnswerType}`]
|
||||||
|
})
|
||||||
|
|
||||||
visitTaskAnswerList.push({ visitTaskId: item.VisitTaskId, answerList: answerList })
|
visitTaskAnswerList.push({ visitTaskId: item.VisitTaskId, answerList: answerList })
|
||||||
})
|
})
|
||||||
|
|
@ -419,7 +335,7 @@ export default {
|
||||||
} else {
|
} else {
|
||||||
resolve(false)
|
resolve(false)
|
||||||
}
|
}
|
||||||
} catch(e) {
|
} catch (e) {
|
||||||
console.log(e)
|
console.log(e)
|
||||||
this.loading = false
|
this.loading = false
|
||||||
resolve(false)
|
resolve(false)
|
||||||
|
|
@ -475,18 +391,22 @@ export default {
|
||||||
color: #F56C6C;
|
color: #F56C6C;
|
||||||
margin-right: 4px;
|
margin-right: 4px;
|
||||||
}
|
}
|
||||||
::v-deep .el-textarea .el-input__count{
|
|
||||||
background: rgba(0,0,0,0);
|
::v-deep .el-textarea .el-input__count {
|
||||||
|
background: rgba(0, 0, 0, 0);
|
||||||
line-height: normal;
|
line-height: normal;
|
||||||
}
|
}
|
||||||
::v-deep .el-form-item{
|
|
||||||
|
::v-deep .el-form-item {
|
||||||
margin-bottom: 0px;
|
margin-bottom: 0px;
|
||||||
}
|
}
|
||||||
.global-form{
|
|
||||||
::v-deep .el-form-item__content{
|
.global-form {
|
||||||
|
::v-deep .el-form-item__content {
|
||||||
padding-bottom: 10px;
|
padding-bottom: 10px;
|
||||||
}
|
}
|
||||||
::v-deep .form-item .el-form-item__error{
|
|
||||||
|
::v-deep .form-item .el-form-item__error {
|
||||||
top: 60%;
|
top: 60%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,427 @@
|
||||||
|
<template>
|
||||||
|
<el-form v-if="globalForm.taskList.length > 0" ref="globalRuleForm" :model="globalForm" class="global-form">
|
||||||
|
<el-table v-loading="loading" :data="globalForm.taskList">
|
||||||
|
<!-- 访视名称 -->
|
||||||
|
<el-table-column prop="BlindName" :label="$t('trials:globalReview:table:visitName')" show-overflow-tooltip
|
||||||
|
width="150" />
|
||||||
|
<!-- 评估结果 -->
|
||||||
|
<el-table-column :label="$t('trials:globalReview:table:evaluationRes')" align="center" prop="">
|
||||||
|
<template>
|
||||||
|
<el-table-column v-for="(qs, index) in globalInfo.evaluationQsList" :key="index" prop="" :label="qs"
|
||||||
|
show-overflow-tooltip width="150">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<template
|
||||||
|
v-if="(scope.row.IsBaseLine && (scope.row.BeforeQuestionList[index].GlobalReadingShowType === 1 || scope.row.BeforeQuestionList[index].GlobalReadingShowType === 5)) || (!scope.row.IsBaseLine && (scope.row.BeforeQuestionList[index].GlobalReadingShowType === 2 || scope.row.BeforeQuestionList[index].GlobalReadingShowType === 6)) || (scope.row.BeforeQuestionList[index].GlobalReadingShowType === 0 || scope.row.BeforeQuestionList[index].GlobalReadingShowType === 4)">
|
||||||
|
<div v-if="scope.row.BeforeQuestionList.length > index && scope.row.BeforeQuestionList[index].Answer"
|
||||||
|
:style="{ color: scope.row.BeforeQuestionList[index].IsGlobalAnswer ? '#f66' : null }">
|
||||||
|
<span v-if="scope.row.BeforeQuestionList[index].DictionaryCode">
|
||||||
|
{{
|
||||||
|
$fd(scope.row.BeforeQuestionList[index].DictionaryCode,
|
||||||
|
parseInt(scope.row.BeforeQuestionList[index].Answer))
|
||||||
|
}}
|
||||||
|
</span>
|
||||||
|
<span v-else>{{ scope.row.BeforeQuestionList[index].Answer }}</span>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<!-- 是否同意访视结果 -->
|
||||||
|
<el-table-column prop="" :label="$t('trials:globalReview:table:isAgreeEvaluationRes')" show-overflow-tooltip
|
||||||
|
width="170">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-form-item v-if="readingTaskState < 2"
|
||||||
|
:prop="`${scope.$index}${scope.row.AgreeOrNot[0].GlobalAnswerType}`" label="" :rules="[
|
||||||
|
{ required: true, message: $t('common:ruleMessage:select'), trigger: ['change', 'blur'] },
|
||||||
|
]" class="form-item">
|
||||||
|
<el-radio-group
|
||||||
|
v-model="globalForm[`${scope.$index}${scope.row.AgreeOrNot[0].GlobalAnswerType}`]"
|
||||||
|
@change="handleAgreeOrNotChange(scope.$index, scope.row.AgreeOrNot[0].GlobalAnswerType)">
|
||||||
|
<el-radio v-for="item of $d.ReadingYesOrNo" :key="'AgreeOrNot' + item.value"
|
||||||
|
:label="String(item.value)">
|
||||||
|
{{ item.label }}
|
||||||
|
</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-tag
|
||||||
|
v-else-if="scope.row.AgreeOrNot.length > 0 && parseInt(scope.row.AgreeOrNot[0].Answer) === 1"
|
||||||
|
type="primary">
|
||||||
|
{{ $fd('ReadingYesOrNo', parseInt(scope.row.AgreeOrNot[0].Answer)) }}
|
||||||
|
</el-tag>
|
||||||
|
<el-tag
|
||||||
|
v-else-if="scope.row.AgreeOrNot.length > 0 && parseInt(scope.row.AgreeOrNot[0].Answer) === 0"
|
||||||
|
type="danger"> {{ $fd('ReadingYesOrNo', parseInt(scope.row.AgreeOrNot[0].Answer)) }}</el-tag>
|
||||||
|
<span v-else />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<!-- 调整后结果 -->
|
||||||
|
<el-table-column :label="$t('trials:globalReview:table:adjustedRes')" align="center" prop="">
|
||||||
|
<template v-for="(qs, index) in globalInfo.adjustedQsList">
|
||||||
|
<el-table-column v-if="qs.isShow" :key="index" prop="" :label="qs.questionName"
|
||||||
|
show-overflow-tooltip width="150">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<div
|
||||||
|
v-if="readingTaskState < 2 && (scope.row.AfterQuestionList[index].GlobalReadingShowType === 0 || (scope.row.IsBaseLine && scope.row.AfterQuestionList[index].GlobalReadingShowType === 1) || (!scope.row.IsBaseLine && scope.row.AfterQuestionList[index].GlobalReadingShowType === 2))">
|
||||||
|
<el-form-item style="margin-bottom: 0;"
|
||||||
|
:prop="`${scope.$index}${scope.row.AfterQuestionList[index].QuestionId ? scope.row.AfterQuestionList[index].QuestionId : scope.row.AfterQuestionList[index].GlobalAnswerType}`"
|
||||||
|
label="" :rules="[
|
||||||
|
{ required: parseInt(globalForm[`${scope.$index}${scope.row.AgreeOrNot[0].GlobalAnswerType}`]) === 0, message: $t('common:ruleMessage:specify'), trigger: ['change', 'blur'] },
|
||||||
|
]">
|
||||||
|
<label
|
||||||
|
v-if="parseInt(globalForm[`${scope.$index}${scope.row.AgreeOrNot[0].GlobalAnswerType}`]) === 0" />
|
||||||
|
<!-- 裁判问题 -->
|
||||||
|
<template v-if="scope.row.AfterQuestionList[index].GlobalAnswerType === 0">
|
||||||
|
<el-tooltip
|
||||||
|
v-if="getText(globalForm[`${scope.$index}${scope.row.AfterQuestionList[index].QuestionId ? scope.row.AfterQuestionList[index].QuestionId : String(scope.row.AfterQuestionList[index].GlobalAnswerType)}`], scope.row.AfterQuestionList[index])"
|
||||||
|
class="item" effect="dark"
|
||||||
|
:content="getText(globalForm[`${scope.$index}${scope.row.AfterQuestionList[index].QuestionId ? scope.row.AfterQuestionList[index].QuestionId : String(scope.row.AfterQuestionList[index].GlobalAnswerType)}`], scope.row.AfterQuestionList[index])"
|
||||||
|
placement="top-start">
|
||||||
|
<el-select
|
||||||
|
v-model="globalForm[`${scope.$index}${scope.row.AfterQuestionList[index].QuestionId ? scope.row.AfterQuestionList[index].QuestionId : String(scope.row.AfterQuestionList[index].GlobalAnswerType)}`]"
|
||||||
|
style="width:90%;"
|
||||||
|
:disabled="parseInt(globalForm[`${scope.$index}${scope.row.AgreeOrNot[0].GlobalAnswerType}`]) !== 0">
|
||||||
|
<template v-if="scope.row.AfterQuestionList[index].TypeValue">
|
||||||
|
<el-option
|
||||||
|
v-for="val in scope.row.AfterQuestionList[index].TypeValue.split('|')"
|
||||||
|
:key="val" :label="val" :value="val" />
|
||||||
|
</template>
|
||||||
|
<template
|
||||||
|
v-else-if="scope.row.AfterQuestionList[index].DictionaryCode && scope.row.AfterQuestionList[index].QuestionType === 13">
|
||||||
|
<el-option
|
||||||
|
v-for="item of $d[scope.row.AfterQuestionList[index].DictionaryCode]"
|
||||||
|
v-show="item.value !== -1" :key="item.id"
|
||||||
|
:value="String(item.value)" :label="item.label"
|
||||||
|
:disabled="String(getBeforeAnswer(scope.row.AfterQuestionList[index].QuestionName, scope.row)) === String(item.value)" />
|
||||||
|
</template>
|
||||||
|
<template v-else-if="scope.row.AfterQuestionList[index].DictionaryCode">
|
||||||
|
<el-option
|
||||||
|
v-for="item of $d[scope.row.AfterQuestionList[index].DictionaryCode]"
|
||||||
|
:key="item.id" :value="String(item.value)"
|
||||||
|
:disabled="String(getBeforeAnswer(scope.row.AfterQuestionList[index].QuestionName, scope.row)) === String(item.value)"
|
||||||
|
:label="item.label" />
|
||||||
|
</template>
|
||||||
|
</el-select>
|
||||||
|
</el-tooltip>
|
||||||
|
<el-select v-else
|
||||||
|
v-model="globalForm[`${scope.$index}${scope.row.AfterQuestionList[index].QuestionId ? scope.row.AfterQuestionList[index].QuestionId : String(scope.row.AfterQuestionList[index].GlobalAnswerType)}`]"
|
||||||
|
style="width:90%;"
|
||||||
|
:disabled="parseInt(globalForm[`${scope.$index}${scope.row.AgreeOrNot[0].GlobalAnswerType}`]) !== 0">
|
||||||
|
<template v-if="scope.row.AfterQuestionList[index].TypeValue">
|
||||||
|
<el-option
|
||||||
|
v-for="val in scope.row.AfterQuestionList[index].TypeValue.split('|')"
|
||||||
|
:key="val" :label="val" :value="val" />
|
||||||
|
</template>
|
||||||
|
<template
|
||||||
|
v-else-if="scope.row.AfterQuestionList[index].DictionaryCode && scope.row.AfterQuestionList[index].QuestionType === 13">
|
||||||
|
<template v-if="getLesionCount(scope.row.LesionCountList, 0)">
|
||||||
|
<el-option
|
||||||
|
v-for="item of $d[scope.row.AfterQuestionList[index].DictionaryCode]"
|
||||||
|
v-show="item.value !== -1 && item.value !== 1 && item.value !== 3"
|
||||||
|
:key="item.id" :value="String(item.value)" :label="item.label"
|
||||||
|
:disabled="String(getBeforeAnswer(scope.row.AfterQuestionList[index].QuestionName, scope.row)) === String(item.value)" />
|
||||||
|
</template>
|
||||||
|
<template v-else-if="getLesionCount(scope.row.LesionCountList, 1)">
|
||||||
|
<el-option
|
||||||
|
v-for="item of $d[scope.row.AfterQuestionList[index].DictionaryCode]"
|
||||||
|
v-show="item.value !== -1 && item.value !== 1 && item.value !== 6"
|
||||||
|
:key="item.id" :value="String(item.value)" :label="item.label"
|
||||||
|
:disabled="String(getBeforeAnswer(scope.row.AfterQuestionList[index].QuestionName, scope.row)) === String(item.value)" />
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<el-option
|
||||||
|
v-for="item of $d[scope.row.AfterQuestionList[index].DictionaryCode]"
|
||||||
|
v-show="item.value === 1 || item.value === 2 || item.value === 4"
|
||||||
|
:key="item.id" :value="String(item.value)" :label="item.label"
|
||||||
|
:disabled="String(getBeforeAnswer(scope.row.AfterQuestionList[index].QuestionName, scope.row)) === String(item.value)" />
|
||||||
|
</template>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
<template v-else-if="scope.row.AfterQuestionList[index].DictionaryCode">
|
||||||
|
<el-option
|
||||||
|
v-for="item of $d[scope.row.AfterQuestionList[index].DictionaryCode]"
|
||||||
|
v-show="item.value !== 6" :key="item.id" :value="String(item.value)"
|
||||||
|
:disabled="String(getBeforeAnswer(scope.row.AfterQuestionList[index].QuestionName, scope.row)) === String(item.value)"
|
||||||
|
:label="item.label" />
|
||||||
|
</template>
|
||||||
|
</el-select>
|
||||||
|
</template>
|
||||||
|
<!-- 评估更新类型 GlobalAnswerType:3 -->
|
||||||
|
<template v-if="scope.row.AfterQuestionList[index].GlobalAnswerType === 3">
|
||||||
|
<el-tooltip
|
||||||
|
v-if="getText(globalForm[`${scope.$index}${scope.row.AfterQuestionList[index].GlobalAnswerType}`], scope.row.AfterQuestionList[index], scope.row.AfterQuestionList[index].GlobalAnswerType)"
|
||||||
|
class="item" effect="dark"
|
||||||
|
:content="getText(globalForm[`${scope.$index}${scope.row.AfterQuestionList[index].GlobalAnswerType}`], scope.row.AfterQuestionList[index], scope.row.AfterQuestionList[index].GlobalAnswerType)"
|
||||||
|
placement="top-start">
|
||||||
|
<el-select
|
||||||
|
v-model="globalForm[`${scope.$index}${scope.row.AfterQuestionList[index].GlobalAnswerType}`]"
|
||||||
|
style="width:90%;"
|
||||||
|
:disabled="parseInt(globalForm[`${scope.$index}${scope.row.AgreeOrNot[0].GlobalAnswerType}`]) !== 0">
|
||||||
|
<el-option v-for="val in globalInfo.assessTypeList"
|
||||||
|
v-show="(scope.row.IsBaseLine && val.IsBaseLineUse) || (!scope.row.IsBaseLine && val.IsFollowVisitUse)"
|
||||||
|
:key="val.Code" :label="language === 'en' ? val.Value : val.ValueCN"
|
||||||
|
:value="val.Code" />
|
||||||
|
</el-select>
|
||||||
|
</el-tooltip>
|
||||||
|
<el-select v-else
|
||||||
|
v-model="globalForm[`${scope.$index}${scope.row.AfterQuestionList[index].GlobalAnswerType}`]"
|
||||||
|
style="width:90%;"
|
||||||
|
:disabled="parseInt(globalForm[`${scope.$index}${scope.row.AgreeOrNot[0].GlobalAnswerType}`]) !== 0">
|
||||||
|
<el-option v-for="val in globalInfo.assessTypeList"
|
||||||
|
v-show="(scope.row.IsBaseLine && val.IsBaseLineUse) || (!scope.row.IsBaseLine && val.IsFollowVisitUse)"
|
||||||
|
:key="val.Code" :label="language === 'en' ? val.Value : val.ValueCN"
|
||||||
|
:value="val.Code" />
|
||||||
|
</el-select>
|
||||||
|
</template>
|
||||||
|
<el-input v-if="scope.row.AfterQuestionList[index].GlobalAnswerType === 1"
|
||||||
|
v-model="globalForm[`${scope.$index}${scope.row.AfterQuestionList[index].QuestionId ? scope.row.AfterQuestionList[index].QuestionId : String(scope.row.AfterQuestionList[index].GlobalAnswerType)}`]"
|
||||||
|
type="textarea" maxlength="100" show-word-limit style="width:90%;"
|
||||||
|
:autosize="{ minRows: 2 }"
|
||||||
|
:disabled="parseInt(globalForm[`${scope.$index}${scope.row.AgreeOrNot[0].GlobalAnswerType}`]) !== 0" />
|
||||||
|
</el-form-item>
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
<span v-if="scope.row.AfterQuestionList[index].GlobalAnswerType === 3">
|
||||||
|
{{ getAssessType(scope.row.AfterQuestionList[index].Answer) }}
|
||||||
|
</span>
|
||||||
|
<span v-else-if="scope.row.AfterQuestionList[index].DictionaryCode">
|
||||||
|
{{
|
||||||
|
$fd(scope.row.AfterQuestionList[index].DictionaryCode,
|
||||||
|
parseInt(scope.row.AfterQuestionList[index].Answer))
|
||||||
|
}}
|
||||||
|
</span>
|
||||||
|
<span v-else>{{ scope.row.AfterQuestionList[index].Answer }}</span>
|
||||||
|
</div>
|
||||||
|
<!-- <div v-else-if="readingTaskState<2 && (scope.row.AfterQuestionList[index].GlobalReadingShowType === 4 || (scope.row.IsBaseLine && scope.row.AfterQuestionList[index].GlobalReadingShowType === 5) || (!scope.row.IsBaseLine && scope.row.AfterQuestionList[index].GlobalReadingShowType === 6))">
|
||||||
|
<span v-if="scope.row.AfterQuestionList[index].GlobalAnswerType === 3">
|
||||||
|
{{ getAssessType(scope.row.AfterQuestionList[index].Answer) }}
|
||||||
|
</span>
|
||||||
|
<span v-else-if="scope.row.AfterQuestionList[index].DictionaryCode">
|
||||||
|
{{ $fd(scope.row.AfterQuestionList[index].DictionaryCode,parseInt(scope.row.AfterQuestionList[index].Answer)) }}
|
||||||
|
</span>
|
||||||
|
<span v-else>{{ scope.row.AfterQuestionList[index].Answer }}</span>
|
||||||
|
</div> -->
|
||||||
|
<!-- <div v-else-if="scope.row.AfterQuestionList.length>index && scope.row.AfterQuestionList[index].Answer">
|
||||||
|
|
||||||
|
<span v-if="scope.row.AfterQuestionList[index].GlobalAnswerType === 3">
|
||||||
|
{{ getAssessType(scope.row.AfterQuestionList[index].Answer) }}
|
||||||
|
</span>
|
||||||
|
<span v-else-if="scope.row.AfterQuestionList[index].DictionaryCode">
|
||||||
|
{{ $fd(scope.row.AfterQuestionList[index].DictionaryCode,parseInt(scope.row.AfterQuestionList[index].Answer)) }}
|
||||||
|
</span>
|
||||||
|
<span v-else>{{ scope.row.AfterQuestionList[index].Answer }}</span>
|
||||||
|
</div> -->
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column :label="$t('common:action:action')" min-width="150" fixed="right">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button circle :title="$t('trials:globalReview:table:view')" icon="el-icon-view"
|
||||||
|
@click="handleView(scope.row)" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</el-form>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { getToken } from '@/utils/auth'
|
||||||
|
import { batchSubmitGlobalReadingInfo } from '@/api/trials'
|
||||||
|
import { mapGetters } from 'vuex'
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
globalInfo: {
|
||||||
|
type: Object,
|
||||||
|
default() {
|
||||||
|
return {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
globalForm: {
|
||||||
|
type: Object,
|
||||||
|
default() {
|
||||||
|
return {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
readingTaskState: {
|
||||||
|
type: Number,
|
||||||
|
required: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
loading: false,
|
||||||
|
assessTypes: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapGetters(['language'])
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
console.log(this.globalInfo)
|
||||||
|
this.assessTypes = this.globalInfo.assessTypeList.filter(i => i.IsBaseLineUse === this.isBaseline)
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getText(val, row, type) {
|
||||||
|
if (type === 3) {
|
||||||
|
var o = this.globalInfo.assessTypeList.find(v => {
|
||||||
|
return parseInt(v.Code) === parseInt(val)
|
||||||
|
})
|
||||||
|
if (!o) {
|
||||||
|
return ''
|
||||||
|
}
|
||||||
|
return this.language === 'en' ? o.Value : o.ValueCN
|
||||||
|
} else if (row.TypeValue) {
|
||||||
|
return val
|
||||||
|
} else if (row.DictionaryCode) {
|
||||||
|
return this.$fd(row.DictionaryCode, parseInt(val))
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
handleView(row) {
|
||||||
|
var token = getToken()
|
||||||
|
var visitTaskId = row.VisitTaskId
|
||||||
|
var criterionType = this.$router.currentRoute.query.criterionType
|
||||||
|
var readingTool = this.$router.currentRoute.query.readingTool
|
||||||
|
readingTool = isNaN(parseInt(readingTool)) ? null : parseInt(readingTool)
|
||||||
|
var isReadingTaskViewInOrder = this.$router.currentRoute.query.isReadingTaskViewInOrder
|
||||||
|
var trialReadingCriterionId = this.$router.currentRoute.query.TrialReadingCriterionId
|
||||||
|
var path = ''
|
||||||
|
if (readingTool === 0 || readingTool === 2) {
|
||||||
|
path = `/readingDicoms?TrialReadingCriterionId=${trialReadingCriterionId}&trialId=${this.globalInfo.trialId}&subjectCode=${this.globalInfo.subjectCode}&subjectId=${this.globalInfo.subjectId}&visitTaskId=${visitTaskId}&isReadingTaskViewInOrder=${isReadingTaskViewInOrder}&criterionType=${criterionType}&readingTool=${readingTool}&TokenKey=${token}`
|
||||||
|
} else {
|
||||||
|
path = `/noneDicomReading?trialId=${this.globalInfo.trialId}&subjectCode=${this.globalInfo.subjectCode}&subjectId=${this.globalInfo.subjectId}&visitTaskId=${visitTaskId}&isReadingTaskViewInOrder=${isReadingTaskViewInOrder}&criterionType=${criterionType}&readingTool=${readingTool}&TokenKey=${token}`
|
||||||
|
}
|
||||||
|
const routeData = this.$router.resolve({ path })
|
||||||
|
var newWindow = window.open(routeData.href, '_blank')
|
||||||
|
this.$emit('setOpenWindow', newWindow)
|
||||||
|
},
|
||||||
|
getLesionCount(lesionList, lesionType) {
|
||||||
|
const lesion = lesionList.find(i => i.LesionType === lesionType)
|
||||||
|
return lesion ? lesion.Count : 0
|
||||||
|
},
|
||||||
|
handleSave(isPrompt = true) {
|
||||||
|
return new Promise(async (resolve, reject) => {
|
||||||
|
try {
|
||||||
|
let valid = await this.$refs['globalRuleForm'].validate()
|
||||||
|
if (valid) {
|
||||||
|
this.loading = true
|
||||||
|
var visitTaskAnswerList = []
|
||||||
|
this.globalForm.taskList.forEach((item, index) => {
|
||||||
|
var answerList = []
|
||||||
|
item.AfterQuestionList.map(i => {
|
||||||
|
var obj = {}
|
||||||
|
if (i.QuestionId) {
|
||||||
|
obj.questionId = i.QuestionId
|
||||||
|
obj.globalAnswerType = i.GlobalAnswerType
|
||||||
|
obj.answer = this.globalForm[`${index}${i.QuestionId}`]
|
||||||
|
} else {
|
||||||
|
obj.questionId = ''
|
||||||
|
obj.globalAnswerType = i.GlobalAnswerType
|
||||||
|
obj.answer = this.globalForm[`${index}${i.GlobalAnswerType}`]
|
||||||
|
}
|
||||||
|
answerList.push(obj)
|
||||||
|
})
|
||||||
|
answerList.push({
|
||||||
|
questionId: '', globalAnswerType: item.AgreeOrNot[0].GlobalAnswerType,
|
||||||
|
answer: this.globalForm[`${index}${item.AgreeOrNot[0].GlobalAnswerType}`]
|
||||||
|
})
|
||||||
|
|
||||||
|
visitTaskAnswerList.push({ visitTaskId: item.VisitTaskId, answerList: answerList })
|
||||||
|
})
|
||||||
|
var params = {
|
||||||
|
globalTaskId: this.globalInfo.visitTaskId,
|
||||||
|
subjectId: this.globalInfo.subjectId,
|
||||||
|
trialId: this.globalInfo.trialId,
|
||||||
|
visitTaskAnswerList
|
||||||
|
}
|
||||||
|
await batchSubmitGlobalReadingInfo(params)
|
||||||
|
this.loading = false
|
||||||
|
if (isPrompt) {
|
||||||
|
this.$message.success(this.$t('common:message:savedSuccessfully'))
|
||||||
|
}
|
||||||
|
this.$emit('getGlInfo')
|
||||||
|
resolve(true)
|
||||||
|
|
||||||
|
} else {
|
||||||
|
resolve(false)
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e)
|
||||||
|
this.loading = false
|
||||||
|
resolve(false)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getBeforeAnswer(qsId, row) {
|
||||||
|
var i = row.BeforeQuestionList.findIndex(item => item.QuestionName === qsId)
|
||||||
|
|
||||||
|
if (i > -1 && row.BeforeQuestionList[i].Answer) {
|
||||||
|
var answer = ''
|
||||||
|
if (row.BeforeQuestionList[i].DictionaryCode) {
|
||||||
|
answer = row.BeforeQuestionList[i].Answer
|
||||||
|
} else {
|
||||||
|
answer = row.BeforeQuestionList[i].Answer
|
||||||
|
}
|
||||||
|
return answer
|
||||||
|
} else {
|
||||||
|
return ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
handleAgreeOrNotChange(index, globalAnswerType) {
|
||||||
|
var agreeOrNot = parseInt(this.globalForm[`${index}${globalAnswerType}`])
|
||||||
|
if (agreeOrNot === 1) {
|
||||||
|
var qsList = this.globalForm.taskList[index].AfterQuestionList
|
||||||
|
qsList.map(v => {
|
||||||
|
if (v.QuestionId) {
|
||||||
|
this.globalForm[`${index}${v.QuestionId}`] = ''
|
||||||
|
} else if (v.GlobalAnswerType !== globalAnswerType) {
|
||||||
|
this.globalForm[`${index}${v.GlobalAnswerType}`] = ''
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getAssessType(v) {
|
||||||
|
console.log(this.language)
|
||||||
|
var i = this.globalInfo.assessTypeList.findIndex(i => String(i.Code) === String(v))
|
||||||
|
if (i > -1) {
|
||||||
|
return this.language === 'en' ? this.globalInfo.assessTypeList[i].Value : this.globalInfo.assessTypeList[i].ValueCN
|
||||||
|
} else {
|
||||||
|
return ''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
::v-deep .el-form-item label:before {
|
||||||
|
content: '*';
|
||||||
|
color: #F56C6C;
|
||||||
|
margin-right: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-textarea .el-input__count {
|
||||||
|
background: rgba(0, 0, 0, 0);
|
||||||
|
line-height: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-form-item {
|
||||||
|
margin-bottom: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.global-form {
|
||||||
|
::v-deep .el-form-item__content {
|
||||||
|
padding-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .form-item .el-form-item__error {
|
||||||
|
top: 60%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -93,9 +93,8 @@
|
||||||
align="center"
|
align="center"
|
||||||
prop=""
|
prop=""
|
||||||
>
|
>
|
||||||
<template>
|
<template v-for="(qs,index) in globalInfo.adjustedQsList">
|
||||||
<el-table-column
|
<el-table-column
|
||||||
v-for="(qs,index) in globalInfo.adjustedQsList"
|
|
||||||
v-if="qs.isShow"
|
v-if="qs.isShow"
|
||||||
:key="index"
|
:key="index"
|
||||||
prop=""
|
prop=""
|
||||||
|
|
|
||||||
|
|
@ -24,12 +24,8 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if=" readingTaskState < 2" style="text-align:right;margin:5px 0;">
|
<div v-if="readingTaskState < 2" style="text-align:right;margin:5px 0;">
|
||||||
<el-button
|
<el-button type="primary" size="small" @click="skipTask">
|
||||||
type="primary"
|
|
||||||
size="small"
|
|
||||||
@click="skipTask"
|
|
||||||
>
|
|
||||||
<!-- 跳过 -->
|
<!-- 跳过 -->
|
||||||
{{ $t('trials:readingReport:button:skip') }}
|
{{ $t('trials:readingReport:button:skip') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
@ -41,71 +37,30 @@
|
||||||
{{ $t('trials:globalReview:button:submit') }}
|
{{ $t('trials:globalReview:button:submit') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
<customize-table
|
<customize-table v-if="CriterionType === 0 && Object.keys(globalInfo).length !== 0" ref="globalTbl"
|
||||||
v-if="CriterionType === 0 && Object.keys(globalInfo).length !== 0"
|
:global-info="globalInfo" :global-form="globalInfo.globalForm" :reading-task-state="readingTaskState"
|
||||||
ref="globalTbl"
|
@getGlInfo="getGlInfo" @setOpenWindow="setOpenWindow" />
|
||||||
:global-info="globalInfo"
|
<recist-table v-if="CriterionType === 1 && Object.keys(globalInfo).length !== 0" ref="globalTbl"
|
||||||
:global-form="globalInfo.globalForm"
|
:global-info="globalInfo" :global-form="globalInfo.globalForm" :reading-task-state="readingTaskState"
|
||||||
:reading-task-state="readingTaskState"
|
@getGlInfo="getGlInfo" @setOpenWindow="setOpenWindow" />
|
||||||
@getGlInfo="getGlInfo"
|
<lugano-table v-if="CriterionType === 2 && Object.keys(globalInfo).length !== 0" ref="globalTbl"
|
||||||
@setOpenWindow="setOpenWindow"
|
:global-info="globalInfo" :global-form="globalInfo.globalForm" :reading-task-state="readingTaskState"
|
||||||
/>
|
@getGlInfo="getGlInfo" @handleView="handleView" @setOpenWindow="setOpenWindow" />
|
||||||
<recist-table
|
<luganoWithoutPET-table v-if="CriterionType === 18 && Object.keys(globalInfo).length !== 0" ref="globalTbl"
|
||||||
v-if="CriterionType === 1 && Object.keys(globalInfo).length !== 0"
|
:global-info="globalInfo" :global-form="globalInfo.globalForm" :reading-task-state="readingTaskState"
|
||||||
ref="globalTbl"
|
@getGlInfo="getGlInfo" @handleView="handleView" @setOpenWindow="setOpenWindow" />
|
||||||
:global-info="globalInfo"
|
<pcwg3-table v-if="CriterionType === 10 && Object.keys(globalInfo).length !== 0" ref="globalTbl"
|
||||||
:global-form="globalInfo.globalForm"
|
:global-info="globalInfo" :global-form="globalInfo.globalForm" :reading-task-state="readingTaskState"
|
||||||
:reading-task-state="readingTaskState"
|
@getGlInfo="getGlInfo" @handleView="handleView" @setOpenWindow="setOpenWindow" />
|
||||||
@getGlInfo="getGlInfo"
|
<irecist-table v-if="CriterionType === 3 && Object.keys(globalInfo).length !== 0" ref="globalTbl"
|
||||||
@setOpenWindow="setOpenWindow"
|
:global-info="globalInfo" :global-form="globalInfo.globalForm" :reading-task-state="readingTaskState"
|
||||||
/>
|
@getGlInfo="getGlInfo" @setOpenWindow="setOpenWindow" />
|
||||||
<lugano-table
|
<recistbm-table v-if="CriterionType === 17 && Object.keys(globalInfo).length !== 0" ref="globalTbl"
|
||||||
v-if="CriterionType === 2 && Object.keys(globalInfo).length !== 0"
|
:global-info="globalInfo" :global-form="globalInfo.globalForm" :reading-task-state="readingTaskState"
|
||||||
ref="globalTbl"
|
@getGlInfo="getGlInfo" @setOpenWindow="setOpenWindow" />
|
||||||
:global-info="globalInfo"
|
<mrecist-table v-if="CriterionType === 7 && Object.keys(globalInfo).length !== 0" ref="globalTbl"
|
||||||
:global-form="globalInfo.globalForm"
|
:global-info="globalInfo" :global-form="globalInfo.globalForm" :reading-task-state="readingTaskState"
|
||||||
:reading-task-state="readingTaskState"
|
@getGlInfo="getGlInfo" @setOpenWindow="setOpenWindow" />
|
||||||
@getGlInfo="getGlInfo"
|
|
||||||
@handleView="handleView"
|
|
||||||
@setOpenWindow="setOpenWindow"
|
|
||||||
/>
|
|
||||||
<pcwg3-table
|
|
||||||
v-if="CriterionType === 10 && Object.keys(globalInfo).length !== 0"
|
|
||||||
ref="globalTbl"
|
|
||||||
:global-info="globalInfo"
|
|
||||||
:global-form="globalInfo.globalForm"
|
|
||||||
:reading-task-state="readingTaskState"
|
|
||||||
@getGlInfo="getGlInfo"
|
|
||||||
@handleView="handleView"
|
|
||||||
@setOpenWindow="setOpenWindow"
|
|
||||||
/>
|
|
||||||
<irecist-table
|
|
||||||
v-if="CriterionType === 3 && Object.keys(globalInfo).length !== 0"
|
|
||||||
ref="globalTbl"
|
|
||||||
:global-info="globalInfo"
|
|
||||||
:global-form="globalInfo.globalForm"
|
|
||||||
:reading-task-state="readingTaskState"
|
|
||||||
@getGlInfo="getGlInfo"
|
|
||||||
@setOpenWindow="setOpenWindow"
|
|
||||||
/>
|
|
||||||
<recistbm-table
|
|
||||||
v-if="CriterionType === 17 && Object.keys(globalInfo).length !== 0"
|
|
||||||
ref="globalTbl"
|
|
||||||
:global-info="globalInfo"
|
|
||||||
:global-form="globalInfo.globalForm"
|
|
||||||
:reading-task-state="readingTaskState"
|
|
||||||
@getGlInfo="getGlInfo"
|
|
||||||
@setOpenWindow="setOpenWindow"
|
|
||||||
/>
|
|
||||||
<mrecist-table
|
|
||||||
v-if="CriterionType === 7 && Object.keys(globalInfo).length !== 0"
|
|
||||||
ref="globalTbl"
|
|
||||||
:global-info="globalInfo"
|
|
||||||
:global-form="globalInfo.globalForm"
|
|
||||||
:reading-task-state="readingTaskState"
|
|
||||||
@getGlInfo="getGlInfo"
|
|
||||||
@setOpenWindow="setOpenWindow"
|
|
||||||
/>
|
|
||||||
|
|
||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
|
|
@ -114,51 +69,28 @@
|
||||||
<!-- 既往全局阅片结果 -->
|
<!-- 既往全局阅片结果 -->
|
||||||
<span style="font-weight: bold;">{{ $t('trials:globalReview:title:previousRes') }}</span>
|
<span style="font-weight: bold;">{{ $t('trials:globalReview:title:previousRes') }}</span>
|
||||||
</div>
|
</div>
|
||||||
<el-table
|
<el-table v-loading="historyLoading" :data="historyTaskList">
|
||||||
v-loading="historyLoading"
|
|
||||||
:data="historyTaskList"
|
|
||||||
>
|
|
||||||
<!-- 全局 -->
|
<!-- 全局 -->
|
||||||
<el-table-column
|
<el-table-column prop="TaskBlindName" :label="$t('trials:globalReview:table:globalReading')"
|
||||||
prop="TaskBlindName"
|
show-overflow-tooltip width="200" />
|
||||||
:label="$t('trials:globalReview:table:globalReading')"
|
<el-table-column prop="VisitBlindName" :label="$t('trials:globalReview:table:cutOffVisitName')"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip width="200" />
|
||||||
width="200"
|
<el-table-column :label="$t('common:action:action')" width="200">
|
||||||
/>
|
|
||||||
<el-table-column
|
|
||||||
prop="VisitBlindName"
|
|
||||||
:label="$t('trials:globalReview:table:cutOffVisitName')"
|
|
||||||
show-overflow-tooltip
|
|
||||||
width="200"
|
|
||||||
/>
|
|
||||||
<el-table-column
|
|
||||||
:label="$t('common:action:action')"
|
|
||||||
width="200"
|
|
||||||
>
|
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<!-- 查看详情 -->
|
<!-- 查看详情 -->
|
||||||
<el-button
|
<el-button circle :title="$t('trials:globalReview:table:view')" icon="el-icon-view"
|
||||||
circle
|
@click="handleView(scope.row)" />
|
||||||
:title="$t('trials:globalReview:table:view')"
|
|
||||||
icon="el-icon-view"
|
|
||||||
@click="handleView(scope.row)"
|
|
||||||
/>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
<!-- 签名框 -->
|
<!-- 签名框 -->
|
||||||
<el-dialog
|
<el-dialog v-if="signVisible" :visible.sync="signVisible" :close-on-click-modal="false" width="600px"
|
||||||
v-if="signVisible"
|
custom-class="base-dialog-wrapper">
|
||||||
:visible.sync="signVisible"
|
|
||||||
:close-on-click-modal="false"
|
|
||||||
width="600px"
|
|
||||||
custom-class="base-dialog-wrapper"
|
|
||||||
>
|
|
||||||
<div slot="title">
|
<div slot="title">
|
||||||
<span style="font-size:18px;">{{ $t('common:dialogTitle:sign') }}</span>
|
<span style="font-size:18px;">{{ $t('common:dialogTitle:sign') }}</span>
|
||||||
<span style="font-size:12px;margin-left:5px">{{ `(${$t('common:label:sign')}${ currentUser })` }}</span>
|
<span style="font-size:12px;margin-left:5px">{{ `(${$t('common:label:sign')}${currentUser})` }}</span>
|
||||||
</div>
|
</div>
|
||||||
<SignForm ref="signForm" :sign-code-enum="signCode" @closeDialog="closeSignDialog" />
|
<SignForm ref="signForm" :sign-code-enum="signCode" @closeDialog="closeSignDialog" />
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
@ -177,13 +109,14 @@ import pcwg3Table from './components/PCWG3Table'
|
||||||
import irecistTable from './components/IRecistTable'
|
import irecistTable from './components/IRecistTable'
|
||||||
import recistbmTable from './components/RecistBMTable'
|
import recistbmTable from './components/RecistBMTable'
|
||||||
import luganoTable from './components/LuganoTable'
|
import luganoTable from './components/LuganoTable'
|
||||||
|
import luganoWithoutPETTable from './components/LuganoTable'
|
||||||
import mrecistTable from './components/MRecistTable.vue'
|
import mrecistTable from './components/MRecistTable.vue'
|
||||||
import SignForm from '@/views/trials/components/newSignForm'
|
import SignForm from '@/views/trials/components/newSignForm'
|
||||||
import { changeURLStatic } from '@/utils/history.js'
|
import { changeURLStatic } from '@/utils/history.js'
|
||||||
import store from '@/store'
|
import store from '@/store'
|
||||||
export default {
|
export default {
|
||||||
name: 'GlobalReview',
|
name: 'GlobalReview',
|
||||||
components: { CustomizeTable, RecistTable, pcwg3Table, irecistTable, recistbmTable,luganoTable,mrecistTable, SignForm },
|
components: { CustomizeTable, RecistTable, pcwg3Table, irecistTable, recistbmTable, luganoTable, luganoWithoutPETTable, mrecistTable, SignForm },
|
||||||
props: {
|
props: {
|
||||||
trialId: {
|
trialId: {
|
||||||
type: String,
|
type: String,
|
||||||
|
|
@ -294,19 +227,19 @@ export default {
|
||||||
console.log(qs)
|
console.log(qs)
|
||||||
if (qs.GlobalAnswerType === 1 && (this.CriterionType === 10)) {
|
if (qs.GlobalAnswerType === 1 && (this.CriterionType === 10)) {
|
||||||
// 访视阅片备注
|
// 访视阅片备注
|
||||||
adjustedQsList.push({questionName:this.$t('trials:globalReview:table:visitRemark'),isShow:true})
|
adjustedQsList.push({ questionName: this.$t('trials:globalReview:table:visitRemark'), isShow: true })
|
||||||
} else if (qs.GlobalAnswerType === 1 && (this.CriterionType !== 10)) {
|
} else if (qs.GlobalAnswerType === 1 && (this.CriterionType !== 10)) {
|
||||||
// 全局阅片备注
|
// 全局阅片备注
|
||||||
adjustedQsList.push({questionName:this.$t('trials:globalReview:table:globalRemark'),isShow:true})
|
adjustedQsList.push({ questionName: this.$t('trials:globalReview:table:globalRemark'), isShow: true })
|
||||||
} else if (qs.GlobalAnswerType === 3 && (this.CriterionType !== 10)) {
|
} else if (qs.GlobalAnswerType === 3 && (this.CriterionType !== 10)) {
|
||||||
// 评估更新类型
|
// 评估更新类型
|
||||||
adjustedQsList.push({questionName:this.$t('trials:globalReview:table:updateType'),isShow:true})
|
adjustedQsList.push({ questionName: this.$t('trials:globalReview:table:updateType'), isShow: true })
|
||||||
} else {
|
} else {
|
||||||
var isShow = true
|
var isShow = true
|
||||||
if(this.CriterionType === 2 && (qs.QuestionType === 39 || qs.QuestionType === 40 || qs.QuestionType === 41)){
|
if ((this.CriterionType === 2 || this.CriterionType === 18) && (qs.QuestionType === 39 || qs.QuestionType === 40 || qs.QuestionType === 41)) {
|
||||||
isShow = false
|
isShow = false
|
||||||
}
|
}
|
||||||
adjustedQsList.push({questionName:qs.QuestionName,isShow:isShow})
|
adjustedQsList.push({ questionName: qs.QuestionName, isShow: isShow })
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
qs.AgreeOrNot.map(qs => {
|
qs.AgreeOrNot.map(qs => {
|
||||||
|
|
@ -390,8 +323,8 @@ export default {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true
|
distinguishCancelAndClose: true
|
||||||
})
|
})
|
||||||
.then(() => {})
|
.then(() => { })
|
||||||
.catch(() => {})
|
.catch(() => { })
|
||||||
} else {
|
} else {
|
||||||
// 自动保存
|
// 自动保存
|
||||||
let res = await this.$refs['globalTbl'].handleSave(false)
|
let res = await this.$refs['globalTbl'].handleSave(false)
|
||||||
|
|
@ -420,7 +353,7 @@ export default {
|
||||||
},
|
},
|
||||||
signInfo: signInfo
|
signInfo: signInfo
|
||||||
}
|
}
|
||||||
try{
|
try {
|
||||||
let res = await submitGlobalReadingInfo(params)
|
let res = await submitGlobalReadingInfo(params)
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.$message.success(this.$t('common:message:savedSuccessfully'))
|
this.$message.success(this.$t('common:message:savedSuccessfully'))
|
||||||
|
|
@ -471,7 +404,7 @@ export default {
|
||||||
readingTool = isNaN(parseInt(readingTool)) ? null : parseInt(readingTool)
|
readingTool = isNaN(parseInt(readingTool)) ? null : parseInt(readingTool)
|
||||||
var isReadingTaskViewInOrder = this.$router.currentRoute.query.isReadingTaskViewInOrder
|
var isReadingTaskViewInOrder = this.$router.currentRoute.query.isReadingTaskViewInOrder
|
||||||
var path = ''
|
var path = ''
|
||||||
if (readingTool === 0 || readingTool === 2 ) {
|
if (readingTool === 0 || readingTool === 2) {
|
||||||
path = `/readingDicoms?TrialReadingCriterionId=${trialReadingCriterionId}&trialId=${this.trialId}&subjectCode=${this.subjectCode}&subjectId=${this.subjectId}&visitTaskId=${visitTaskId}&isReadingTaskViewInOrder=${isReadingTaskViewInOrder}&criterionType=${criterionType}&readingTool=${readingTool}&TokenKey=${token}`
|
path = `/readingDicoms?TrialReadingCriterionId=${trialReadingCriterionId}&trialId=${this.trialId}&subjectCode=${this.subjectCode}&subjectId=${this.subjectId}&visitTaskId=${visitTaskId}&isReadingTaskViewInOrder=${isReadingTaskViewInOrder}&criterionType=${criterionType}&readingTool=${readingTool}&TokenKey=${token}`
|
||||||
} else {
|
} else {
|
||||||
path = `/noneDicomReading?TrialReadingCriterionId=${trialReadingCriterionId}&trialId=${this.trialId}&subjectCode=${this.subjectCode}&subjectId=${this.subjectId}&visitTaskId=${visitTaskId}&isReadingTaskViewInOrder=${isReadingTaskViewInOrder}&criterionType=${criterionType}&readingTool=${readingTool}&TokenKey=${token}`
|
path = `/noneDicomReading?TrialReadingCriterionId=${trialReadingCriterionId}&trialId=${this.trialId}&subjectCode=${this.subjectCode}&subjectId=${this.subjectId}&visitTaskId=${visitTaskId}&isReadingTaskViewInOrder=${isReadingTaskViewInOrder}&criterionType=${criterionType}&readingTool=${readingTool}&TokenKey=${token}`
|
||||||
|
|
@ -501,14 +434,15 @@ export default {
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.glReview_wrapper{
|
.glReview_wrapper {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
.box-mr{
|
|
||||||
margin:10px 0;
|
.box-mr {
|
||||||
|
margin: 10px 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,14 @@
|
||||||
}}</el-button>
|
}}</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-form-item> -->
|
</el-form-item> -->
|
||||||
|
<!-- 查看培训记录 -->
|
||||||
|
<el-form-item :label="$t('trials:trials-workbench:inspectionManagement:from:IsViewTrainingRecord')"
|
||||||
|
prop="IsViewTrainingRecord">
|
||||||
|
<el-radio-group v-model="from.IsViewTrainingRecord">
|
||||||
|
<el-radio v-for="item in $d.YesOrNo" :key="item.id" :label="item.value">{{ item.label
|
||||||
|
}}</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
<!-- 稽查日期 -->
|
<!-- 稽查日期 -->
|
||||||
<el-form-item :label="$t('trials:trials-workbench:inspectionManagement:from:AuditTime')"
|
<el-form-item :label="$t('trials:trials-workbench:inspectionManagement:from:AuditTime')"
|
||||||
prop="AuditTime">
|
prop="AuditTime">
|
||||||
|
|
@ -112,6 +120,7 @@ export default {
|
||||||
})
|
})
|
||||||
this.from.ViewTime = []
|
this.from.ViewTime = []
|
||||||
this.from.IdnetityUserIdList = []
|
this.from.IdnetityUserIdList = []
|
||||||
|
this.from.IsViewTrainingRecord = false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
immediate: true,
|
immediate: true,
|
||||||
|
|
@ -142,6 +151,7 @@ export default {
|
||||||
AuditType: '',
|
AuditType: '',
|
||||||
IdnetityUserIdList: [],
|
IdnetityUserIdList: [],
|
||||||
IdnetityUserName: '',
|
IdnetityUserName: '',
|
||||||
|
IsViewTrainingRecord: false,
|
||||||
ViewTime: []
|
ViewTime: []
|
||||||
},
|
},
|
||||||
rules: {
|
rules: {
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,12 @@
|
||||||
<el-form-item :label="$t('trials:trials-workbench:inspectionManagement:table:IdentityUserName')">
|
<el-form-item :label="$t('trials:trials-workbench:inspectionManagement:table:IdentityUserName')">
|
||||||
<el-input v-model="searchData.IdentityUserName" clearable placeholder=""></el-input>
|
<el-input v-model="searchData.IdentityUserName" clearable placeholder=""></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item :label="$t('trials:trials-workbench:inspectionManagement:table:IsViewTrainingRecord')">
|
||||||
|
<el-select v-model="searchData.IsViewTrainingRecord" placeholder="" clearable>
|
||||||
|
<el-option v-for="item in $d.YesOrNo" :key="item.id" :label="item.label" :value="item.value">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item :label="$t('trials:trials-workbench:inspectionManagement:table:auditTime')">
|
<el-form-item :label="$t('trials:trials-workbench:inspectionManagement:table:auditTime')">
|
||||||
<el-date-picker v-model="auditTime" type="daterange" range-separator="-"
|
<el-date-picker v-model="auditTime" type="daterange" range-separator="-"
|
||||||
:start-placeholder="$t('imageInspect:daterange:startPlaceholder')"
|
:start-placeholder="$t('imageInspect:daterange:startPlaceholder')"
|
||||||
|
|
@ -99,6 +105,13 @@
|
||||||
</span> -->
|
</span> -->
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column prop="IsViewTrainingRecord" show-overflow-tooltip
|
||||||
|
:label="$t('trials:trials-workbench:inspectionManagement:table:IsViewTrainingRecord')"
|
||||||
|
sortable="custom">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ $fd('YesOrNo', scope.row.IsViewTrainingRecord) }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column prop="AuditTime" show-overflow-tooltip
|
<el-table-column prop="AuditTime" show-overflow-tooltip
|
||||||
:label="$t('trials:trials-workbench:inspectionManagement:table:auditTime')" sortable="custom">
|
:label="$t('trials:trials-workbench:inspectionManagement:table:auditTime')" sortable="custom">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
@ -166,6 +179,7 @@ const searchDataDefault = () => {
|
||||||
EndTime: '',
|
EndTime: '',
|
||||||
BeginCreateTime: '',
|
BeginCreateTime: '',
|
||||||
EndCreateTime: '',
|
EndCreateTime: '',
|
||||||
|
IsViewTrainingRecord: '',
|
||||||
PageIndex: 1,
|
PageIndex: 1,
|
||||||
PageSize: 20,
|
PageSize: 20,
|
||||||
Asc: false,
|
Asc: false,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue