当CRF表绑定标记以后,在阅片页面,当书包移动到CRF问题的答案上时,可以付款显示绑定的标记名称
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
3f6604eebf
commit
347fb3cde0
|
@ -73,8 +73,7 @@
|
|||
<template v-else>
|
||||
<el-form-item
|
||||
v-if="(question.ShowQuestion === 1 && question.ParentTriggerValueList.includes(questionForm[question.ParentId])) || question.ShowQuestion === 0"
|
||||
:title="question.Remark"
|
||||
:label="`${question.QuestionName}`" :prop="question.Id" :rules="[
|
||||
:title="question.Remark" :label="`${question.QuestionName}`" :prop="question.Id" :rules="[
|
||||
{
|
||||
required: (question.IsRequired === 0 || (question.IsRequired === 1 && question.RelevanceId && (question.RelevanceValueList.includes(isNaN(parseFloat(questionForm[question.RelevanceId])) ? questionForm[question.RelevanceId] : questionForm[question.RelevanceId].toString())))) && question.Type !== 'group' && question.Type !== 'summary',
|
||||
message: $t('common:ruleMessage:specify'), trigger: ['blur', 'change']
|
||||
|
@ -162,6 +161,7 @@
|
|||
<el-input type="number" @change="(val) => { formItemNumberChange(val, question) }"
|
||||
@blur="questionsMarkStatus[question.Id] && questionsMarkStatus[question.Id].isMarked ? () => { } : handleMarkedQsBlur(questionForm[question.Id], questionForm, question.Id, question)"
|
||||
v-model="questionForm[question.Id]"
|
||||
:title="questionsMarkStatus[question.Id] ? questionsMarkStatus[question.Id].OrderMarkName : ''"
|
||||
:disabled="(questionsMarkStatus[question.Id] && questionsMarkStatus[question.Id].isMarked && question.ImageMarkEnum === 2) || question.ImageMarkEnum === 1"
|
||||
style="width: 150px;">
|
||||
<template v-if="question.Unit !== 0" slot="append">
|
||||
|
@ -215,7 +215,8 @@
|
|||
@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) :
|
||||
<template slot="append" v-if="question.Unit !== 0">{{ question.Unit !== 4 ? $fd('ValueUnit', question.Unit)
|
||||
:
|
||||
question.CustomUnit }}</template>
|
||||
<template slot="append" v-else-if="question.ValueType === 2">%</template>
|
||||
|
||||
|
@ -225,14 +226,16 @@
|
|||
@blur="handleBlur(questionForm[question.Id], questionForm, question.Id)"
|
||||
:disabled="question.DataSource === 1 || readingTaskState === 2" v-model="questionForm[question.Id]">
|
||||
<!-- <template slot="append">2</template> -->
|
||||
<template slot="append" v-if="question.Unit !== 0">{{ question.Unit !== 4 ? $fd('ValueUnit', question.Unit) :
|
||||
<template slot="append" v-if="question.Unit !== 0">{{ question.Unit !== 4 ? $fd('ValueUnit', question.Unit)
|
||||
:
|
||||
question.CustomUnit }}</template>
|
||||
<template slot="append" v-else-if="question.ValueType === 2">%</template>
|
||||
</el-input>
|
||||
</template>
|
||||
<!-- 上传图像 -->
|
||||
<el-upload v-if="question.Type === 'upload'" :disabled="readingTaskState === 2" action :accept="question.FileType"
|
||||
:limit="question.ImageCount === 0 ? 100 : question.ImageCount" :on-preview="handlePictureCardPreview"
|
||||
<el-upload v-if="question.Type === 'upload'" :disabled="readingTaskState === 2" action
|
||||
:accept="question.FileType" :limit="question.ImageCount === 0 ? 100 : question.ImageCount"
|
||||
:on-preview="handlePictureCardPreview"
|
||||
:before-upload="(file) => { return handleBeforeUpload(file, question.FileType) }"
|
||||
:http-request="uploadScreenshot" :on-remove="handleRemove" :file-list="fileList"
|
||||
:class="{ disabled: question.ImageCount === 0 ? false : fileList.length >= question.ImageCount }">
|
||||
|
|
|
@ -7,40 +7,21 @@
|
|||
<span style="margin-left:5px;">{{ visitInfo.TaskBlindName }}</span>
|
||||
</h3>
|
||||
<div v-if="readingTaskState < 2">
|
||||
<el-tooltip class="item" effect="dark" :content="$t('trials:dicomReading:message:confirmReset')" placement="bottom">
|
||||
<i
|
||||
class="el-icon-refresh-left"
|
||||
@click="resetForm"
|
||||
/>
|
||||
<el-tooltip class="item" effect="dark" :content="$t('trials:dicomReading:message:confirmReset')"
|
||||
placement="bottom">
|
||||
<i class="el-icon-refresh-left" @click="resetForm" />
|
||||
</el-tooltip>
|
||||
</div>
|
||||
</div>
|
||||
<el-form
|
||||
v-if="taskInfo && rerender"
|
||||
ref="questions"
|
||||
size="small"
|
||||
:model="questionForm"
|
||||
class="ecrf-form"
|
||||
>
|
||||
<el-form v-if="taskInfo && rerender" ref="questions" size="small" :model="questionForm" class="ecrf-form">
|
||||
<template v-if="rerender">
|
||||
<QuestionFormItem
|
||||
v-for="question of questions"
|
||||
:key="question.Id"
|
||||
:visit-task-id="visitTaskId"
|
||||
:question="question"
|
||||
:question-form="questionForm"
|
||||
:reading-task-state="readingTaskState"
|
||||
:criterion-id="criterionId"
|
||||
:calculation-list="calculationList"
|
||||
:question-mark-info-list="questionMarkInfoList"
|
||||
:questions-mark-status="questionsMarkStatus"
|
||||
:is-baseline="isBaseLineTask"
|
||||
@resetFormItemData="resetFormItemData"
|
||||
@setFormItemData="setFormItemData"
|
||||
@getQuestions="getQuestions"
|
||||
@operateImageMarker="operateImageMarker"
|
||||
@unBindAnnotationToQuestion="unBindAnnotationToQuestion"
|
||||
/>
|
||||
<QuestionFormItem v-for="question of questions" :key="question.Id" :visit-task-id="visitTaskId"
|
||||
:question="question" :question-form="questionForm" :reading-task-state="readingTaskState"
|
||||
:criterion-id="criterionId" :calculation-list="calculationList"
|
||||
:question-mark-info-list="questionMarkInfoList" :questions-mark-status="questionsMarkStatus"
|
||||
:is-baseline="isBaseLineTask" @resetFormItemData="resetFormItemData" @setFormItemData="setFormItemData"
|
||||
@getQuestions="getQuestions" @operateImageMarker="operateImageMarker"
|
||||
@unBindAnnotationToQuestion="unBindAnnotationToQuestion" />
|
||||
</template>
|
||||
|
||||
<el-form-item v-if="readingTaskState < 2">
|
||||
|
@ -60,13 +41,8 @@
|
|||
</div>
|
||||
|
||||
<!-- 签名框 -->
|
||||
<el-dialog
|
||||
v-if="signVisible"
|
||||
:visible.sync="signVisible"
|
||||
:close-on-click-modal="false"
|
||||
width="600px"
|
||||
custom-class="base-dialog-wrapper"
|
||||
>
|
||||
<el-dialog v-if="signVisible" :visible.sync="signVisible" :close-on-click-modal="false" width="600px"
|
||||
custom-class="base-dialog-wrapper">
|
||||
<div slot="title">
|
||||
<span style="font-size:18px;">{{ $t('common:dialogTitle:sign') }}</span>
|
||||
<span style="font-size:12px;margin-left:5px">{{ `(${$t('common:label:sign')}${currentUser})` }}</span>
|
||||
|
@ -178,9 +154,9 @@ export default {
|
|||
this.questionsMarkStatus = {}
|
||||
this.questionMarkInfoList = res.OtherInfo.QuestionMarkInfoList.map(i => {
|
||||
if (i.RowId) {
|
||||
this.$set(this.questionsMarkStatus, `${i.RowId}_${i.TableQuestionId}`, {isMarked: i.MeasureData !== '', isSaved: true})
|
||||
this.$set(this.questionsMarkStatus, `${i.RowId}_${i.TableQuestionId}`, { isMarked: i.MeasureData !== '', isSaved: true, OrderMarkName: i.OrderMarkName })
|
||||
} else if (i.QuestionId) {
|
||||
this.$set(this.questionsMarkStatus, i.QuestionId, {isMarked: i.MeasureData !== '', isSaved: true})
|
||||
this.$set(this.questionsMarkStatus, i.QuestionId, { isMarked: i.MeasureData !== '', isSaved: true, OrderMarkName: i.OrderMarkName })
|
||||
}
|
||||
if (typeof i.MeasureData === 'string' && i.MeasureData) {
|
||||
i.MeasureData = JSON.parse(i.MeasureData)
|
||||
|
@ -588,7 +564,7 @@ export default {
|
|||
: obj.question.Id
|
||||
this.$set(this.questionsMarkStatus, key, {
|
||||
isMarked: false,
|
||||
isSaved: false
|
||||
isSaved: false,
|
||||
})
|
||||
},
|
||||
async handleSaveOuterQuestions(obj) {
|
||||
|
@ -614,7 +590,8 @@ export default {
|
|||
})
|
||||
this.$set(this.questionsMarkStatus, obj.question.Id, {
|
||||
isMarked: !!this.questionMarkInfoList[index]?.MeasureData,
|
||||
isSaved: true
|
||||
isSaved: true,
|
||||
OrderMarkName: this.questionMarkInfoList[index].OrderMarkName
|
||||
})
|
||||
} catch (e) {
|
||||
console.error('保存失败:', e)
|
||||
|
@ -628,7 +605,7 @@ export default {
|
|||
: obj.question.Id
|
||||
this.$set(this.questionsMarkStatus, key, {
|
||||
isMarked: false,
|
||||
isSaved: false
|
||||
isSaved: false,
|
||||
})
|
||||
},
|
||||
async handleSaveTableQuestions(obj) {
|
||||
|
@ -671,7 +648,7 @@ export default {
|
|||
}, -10)
|
||||
this.$set(this.questionsMarkStatus,
|
||||
`${this.operateRowId}_${this.operateQuestionId}`,
|
||||
{ isMarked: !!annotation, isSaved: true }
|
||||
{ isMarked: !!annotation, isSaved: true, OrderMarkName: annotation.data.label }
|
||||
)
|
||||
this.resetOperateState()
|
||||
} catch (e) {
|
||||
|
@ -751,6 +728,7 @@ export default {
|
|||
this.questionMarkInfoList.push({
|
||||
InstanceId: annotation.instanceId,
|
||||
SeriesId: annotation.seriesId,
|
||||
OrderMarkName: annotation.data.label,
|
||||
StudyId: annotation.studyId,
|
||||
MarkTool: annotation.metadata.toolName,
|
||||
PicturePath: '',
|
||||
|
@ -770,6 +748,7 @@ export default {
|
|||
InstanceId: annotation.instanceId,
|
||||
SeriesId: annotation.seriesId,
|
||||
StudyId: annotation.studyId,
|
||||
OrderMarkName: annotation.data.label,
|
||||
MarkTool: annotation.metadata.toolName,
|
||||
PicturePath: '',
|
||||
NumberOfFrames: annotation.numberOfFrames,
|
||||
|
@ -799,13 +778,13 @@ export default {
|
|||
|
||||
this.$set(this.questionsMarkStatus, keyId, {
|
||||
isMarked: true,
|
||||
isSaved: false
|
||||
isSaved: false,
|
||||
})
|
||||
} else {
|
||||
this.setAnswerToQuestion(annotation, item.QuestionId)
|
||||
this.$set(this.questionsMarkStatus, item.QuestionId, {
|
||||
isMarked: true,
|
||||
isSaved: false
|
||||
isSaved: false,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
@ -1002,17 +981,21 @@ export default {
|
|||
.questionList-wrapper {
|
||||
height: 100%;
|
||||
overflow-y: auto;
|
||||
|
||||
.container {
|
||||
padding: 10px;
|
||||
|
||||
.basic-info {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
h3 {
|
||||
color: #ddd;
|
||||
padding: 5px 0px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
i {
|
||||
color: #fff;
|
||||
font-size: 22px;
|
||||
|
@ -1020,11 +1003,13 @@ export default {
|
|||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
.ecrf-form {
|
||||
::v-deep .el-form-item__label {
|
||||
color: #ddd;
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .el-table,
|
||||
.el-table__expanded-cell {
|
||||
background-color: #000;
|
||||
|
@ -1038,43 +1023,51 @@ export default {
|
|||
color: #fff;
|
||||
border-color: #444444;
|
||||
}
|
||||
|
||||
::v-deep .el-table__body tr>td {
|
||||
background-color: #000 !important;
|
||||
color: #fff;
|
||||
border-color: #444444;
|
||||
}
|
||||
|
||||
::v-deep .el-table__body tr:hover>td {
|
||||
background-color: #858282 !important;
|
||||
color: #fff;
|
||||
border-color: #444444;
|
||||
}
|
||||
|
||||
::v-deep .el-table--border th.gutter:last-of-type {
|
||||
border: none;
|
||||
}
|
||||
|
||||
::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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// .ecrf-list-container{
|
||||
// min-height:400px;
|
||||
// color: #ddd;
|
||||
|
||||
// }
|
||||
</style>
|
||||
// }</style>
|
||||
|
|
|
@ -2,8 +2,7 @@
|
|||
<div class="criterion-table-form-item">
|
||||
<el-form-item
|
||||
v-if="(question.ShowQuestion === 1 && !!~question.ParentTriggerValueList.indexOf(questionForm[question.ParentId])) || question.ShowQuestion === 0"
|
||||
:title="question.Remark"
|
||||
:label="`${question.QuestionName}`" :prop="question.Id" :rules="[
|
||||
:title="question.Remark" :label="`${question.QuestionName}`" :prop="question.Id" :rules="[
|
||||
{
|
||||
required: (question.IsRequired === 0 || (question.IsRequired === 1 && question.RelevanceId && !!~question.RelevanceValueList.indexOf(questionForm[question.RelevanceId]))) && question.Type !== 'group' && question.Type !== 'summary',
|
||||
message: $t('common:ruleMessage:select'), trigger: ['blur', 'change']
|
||||
|
@ -84,6 +83,7 @@
|
|||
<el-input type="number" @change="(val) => { formItemNumberChange(val, question) }"
|
||||
@blur="questionsMarkStatus[question.Id] && questionsMarkStatus[question.Id].isMarked ? () => { } : handleMarkedQsBlur(questionForm[question.Id], questionForm, question.Id, question)"
|
||||
v-model="questionForm[question.Id]"
|
||||
:title="questionsMarkStatus[rowId ? `${rowId}_${question.Id}` : question.Id] ? questionsMarkStatus[rowId ? `${rowId}_${question.Id}` : question.Id].OrderMarkName : ''"
|
||||
:disabled="(questionsMarkStatus[question.Id] && questionsMarkStatus[question.Id].isMarked && question.ImageMarkEnum === 2) || question.ImageMarkEnum === 1"
|
||||
style="width: 150px;">
|
||||
<template v-if="question.Unit !== 0" slot="append">
|
||||
|
@ -188,7 +188,6 @@
|
|||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { submitTableQuestion } from '@/api/trials'
|
||||
export default {
|
||||
name: 'QuestionTableFormItem',
|
||||
props: {
|
||||
|
|
Loading…
Reference in New Issue