阅片报告添加备注
continuous-integration/drone/push Build is passing Details

main
wangxiaoshuang 2025-09-17 11:31:13 +08:00
parent 2432829ea5
commit 0c0e4315d5
2 changed files with 37 additions and 31 deletions

View File

@ -73,7 +73,7 @@
<template v-if="index > 0 && CriterionType === 10 && scope.row.QuestionType === 21"> <template v-if="index > 0 && CriterionType === 10 && scope.row.QuestionType === 21">
<el-select v-if="scope.row.Type === 'calculation' && scope.row.DictionaryCode" <el-select v-if="scope.row.Type === 'calculation' && scope.row.DictionaryCode"
v-model="tumorEvaluationObj[task.VisitTaskId]" size="mini" v-model="tumorEvaluationObj[task.VisitTaskId]" size="mini"
@change="(val) => handleTumorEvaluationChange(val, task.VisitTaskId)"> @change="(val) => handleTumorEvaluationChange(val, task.VisitTaskId)" :title="scope.row.Remark">
<template v-for="item of $d[scope.row.DictionaryCode]"> <template v-for="item of $d[scope.row.DictionaryCode]">
<el-option :key="item.id" :value="item.value" :label="item.label" v-if="item.value !== 5" /> <el-option :key="item.id" :value="item.value" :label="item.label" v-if="item.value !== 5" />
</template> </template>
@ -87,10 +87,10 @@
<template> <template>
<!-- 输入框 --> <!-- 输入框 -->
<el-input v-if="scope.row.Type === 'input'" v-model="taskReasonObj[task.VisitTaskId]" size="mini" <el-input v-if="scope.row.Type === 'input'" v-model="taskReasonObj[task.VisitTaskId]" size="mini"
@change="(val) => evaluateReasonObjChange(val, task.VisitTaskId)" /> @change="(val) => evaluateReasonObjChange(val, task.VisitTaskId)" :title="scope.row.Remark" />
<el-input v-else-if="scope.row.Type === 'textarea'" v-model="taskReasonObj[task.VisitTaskId]" <el-input v-else-if="scope.row.Type === 'textarea'" v-model="taskReasonObj[task.VisitTaskId]"
:autosize="{ minRows: 2, maxRows: 4 }" size="mini" maxlength="500" :autosize="{ minRows: 2, maxRows: 4 }" size="mini" maxlength="500"
@change="(val) => evaluateReasonObjChange(val, task.VisitTaskId)" /> @change="(val) => evaluateReasonObjChange(val, task.VisitTaskId)" :title="scope.row.Remark" />
<!-- 系统评估结果为xxx,与当前调整的结果不一致请填写调整原因 --> <!-- 系统评估结果为xxx,与当前调整的结果不一致请填写调整原因 -->
<p v-if="tumorEvaluationObj[task.VisitTaskId] !== currentTumorEvaluationObj[task.VisitTaskId] && currentTumorEvaluationObj[task.VisitTaskId]" <p v-if="tumorEvaluationObj[task.VisitTaskId] !== currentTumorEvaluationObj[task.VisitTaskId] && currentTumorEvaluationObj[task.VisitTaskId]"
style="width: 140px;padding:0 2px;white-space: normal;word-break: break-all;word-wrap: break-word;" style="width: 140px;padding:0 2px;white-space: normal;word-break: break-all;word-wrap: break-word;"
@ -113,7 +113,7 @@
<!-- 输入框 --> <!-- 输入框 -->
<el-input v-model="visitIntervalDay" size="mini" <el-input v-model="visitIntervalDay" size="mini"
@input="visitIntervalDay = visitIntervalDay.replace(/^0+(\d)|[^\d]+/g, '')" type="text" @input="visitIntervalDay = visitIntervalDay.replace(/^0+(\d)|[^\d]+/g, '')" type="text"
@change="visitIntervalDayChange" /> @change="visitIntervalDayChange" :title="scope.row.Remark" />
</template> </template>
</template> </template>
<template v-else-if="CriterionType === 10 && scope.row.QuestionType === 22"> <template v-else-if="CriterionType === 10 && scope.row.QuestionType === 22">
@ -126,7 +126,8 @@
<!-- 是否存在疾病基线时可修改 --> <!-- 是否存在疾病基线时可修改 -->
<template v-if="task.IsBaseLine && scope.row.QuestionType === 15"> <template v-if="task.IsBaseLine && scope.row.QuestionType === 15">
<el-select v-if="scope.row.Type === 'select' && scope.row.DictionaryCode" <el-select v-if="scope.row.Type === 'select' && scope.row.DictionaryCode"
v-model="currentExistDisease" size="mini" @change="handleExistDiseaseChange"> v-model="currentExistDisease" size="mini" @change="handleExistDiseaseChange"
:title="scope.row.Remark">
<el-option v-for="item of $d[scope.row.DictionaryCode]" :key="item.id" :value="item.value" <el-option v-for="item of $d[scope.row.DictionaryCode]" :key="item.id" :value="item.value"
:label="item.label" /> :label="item.label" />
</el-select> </el-select>
@ -135,7 +136,8 @@
<template <template
v-else-if="!task.IsBaseLine && (scope.row.QuestionType === 13 || scope.row.QuestionType === 42)"> v-else-if="!task.IsBaseLine && (scope.row.QuestionType === 13 || scope.row.QuestionType === 42)">
<el-select v-if="scope.row.Type === 'select' && scope.row.DictionaryCode" <el-select v-if="scope.row.Type === 'select' && scope.row.DictionaryCode"
v-model="currentEvaluateResult" size="mini" @change="handleEvaluateResultChange"> v-model="currentEvaluateResult" size="mini" @change="handleEvaluateResultChange"
:title="scope.row.Remark">
<template v-if="CriterionType === 1 && tLesionCount"> <template v-if="CriterionType === 1 && tLesionCount">
<el-option v-for="item of $d[scope.row.DictionaryCode]" <el-option v-for="item of $d[scope.row.DictionaryCode]"
v-show="(!task.IsBaseLine && item.value > -1) && (task.CrterionDictionaryGroup.indexOf(item.raw.CrterionDictionaryGroup) > -1) && (item.value !== 1 && item.value !== 3)" v-show="(!task.IsBaseLine && item.value > -1) && (task.CrterionDictionaryGroup.indexOf(item.raw.CrterionDictionaryGroup) > -1) && (item.value !== 1 && item.value !== 3)"
@ -163,10 +165,10 @@
<template> <template>
<!-- 输入框 --> <!-- 输入框 -->
<el-input v-if="scope.row.Type === 'input'" v-model="currentTaskReason" size="mini" <el-input v-if="scope.row.Type === 'input'" v-model="currentTaskReason" size="mini"
@change="evaluateReasonChange" /> @change="evaluateReasonChange" :title="scope.row.Remark" />
<el-input v-else-if="scope.row.Type === 'textarea'" v-model="currentTaskReason" <el-input v-else-if="scope.row.Type === 'textarea'" v-model="currentTaskReason"
:autosize="{ minRows: 2, maxRows: 4 }" size="mini" maxlength="500" :autosize="{ minRows: 2, maxRows: 4 }" size="mini" maxlength="500"
@change="evaluateReasonChange" /> @change="evaluateReasonChange" :title="scope.row.Remark" />
<!-- 系统评估结果为xxx,与当前调整的结果不一致请填写调整原因 --> <!-- 系统评估结果为xxx,与当前调整的结果不一致请填写调整原因 -->
<p v-if="currentEvaluateResult !== tumorEvaluate" <p v-if="currentEvaluateResult !== tumorEvaluate"
style="width: 140px;padding:0 2px;white-space: normal;word-break: break-all;word-wrap: break-word;" style="width: 140px;padding:0 2px;white-space: normal;word-break: break-all;word-wrap: break-word;"

View File

@ -441,33 +441,37 @@ export default {
bsIdx = this.visitTaskList.findIndex(i => i.IsBaseLineTask) bsIdx = this.visitTaskList.findIndex(i => i.IsBaseLineTask)
} }
if (bsIdx > -1) { try {
var trialId = this.$router.currentRoute.query.trialId if (bsIdx > -1) {
await store.dispatch('reading/getMeasuredData', this.visitTaskList[bsIdx].VisitTaskId) var trialId = this.$router.currentRoute.query.trialId
await store.dispatch('reading/getStudyInfo', { trialId: trialId, subjectVisitId: this.visitTaskList[bsIdx].VisitId, visitTaskId: this.visitTaskList[bsIdx].VisitTaskId, taskBlindName: this.visitTaskList[bsIdx].TaskBlindName }) await store.dispatch('reading/getMeasuredData', this.visitTaskList[bsIdx].VisitTaskId)
await store.dispatch('reading/getStudyInfo', { trialId: trialId, subjectVisitId: this.visitTaskList[bsIdx].VisitId, visitTaskId: this.visitTaskList[bsIdx].VisitTaskId, taskBlindName: this.visitTaskList[bsIdx].TaskBlindName })
const firstObj = this.getFirstMarkedSeries(this.visitTaskList[bsIdx].MeasureData, [...this.visitTaskList[bsIdx].StudyList]) const firstObj = this.getFirstMarkedSeries(this.visitTaskList[bsIdx].MeasureData, [...this.visitTaskList[bsIdx].StudyList])
seriesList.push(firstObj.series) seriesList.push(firstObj.series)
const secondObj = this.getSecondMarkedSeries(firstObj, { ...this.visitTaskList[idx] }) const secondObj = this.getSecondMarkedSeries(firstObj, { ...this.visitTaskList[idx] })
this.studyIndex = secondObj.studyIndex this.studyIndex = secondObj.studyIndex
this.seriesIndex = secondObj.seriesIndex this.seriesIndex = secondObj.seriesIndex
seriesList.push(secondObj.series) seriesList.push(secondObj.series)
this.studyList[secondObj.studyIndex].SeriesList[secondObj.seriesIndex].isFirstRender = true this.studyList[secondObj.studyIndex].SeriesList[secondObj.seriesIndex].isFirstRender = true
this.studyIndex = secondObj.studyIndex this.studyIndex = secondObj.studyIndex
this.seriesIndex = secondObj.seriesIndex this.seriesIndex = secondObj.seriesIndex
this.activeNames = [`${this.studyList[secondObj.studyIndex].StudyId}`] this.activeNames = [`${this.studyList[secondObj.studyIndex].StudyId}`]
} else { } else {
const sIdx = this.studyList.findIndex(s => s.IsDicom && !i.IsCriticalSequence) const sIdx = this.studyList.findIndex(s => s.IsDicom && !i.IsCriticalSequence)
const series = this.studyList[sIdx].SeriesList[0] const series = this.studyList[sIdx].SeriesList[0]
const imageIdIndex = Math.floor(series.imageIds.length / 2) const imageIdIndex = Math.floor(series.imageIds.length / 2)
series.imageIdIndex = imageIdIndex > 0 ? imageIdIndex - 1 : 0 series.imageIdIndex = imageIdIndex > 0 ? imageIdIndex - 1 : 0
seriesList.push(series) seriesList.push(series)
this.studyIndex = sIdx this.studyIndex = sIdx
this.seriesIndex = 0 this.seriesIndex = 0
this.activeNames = [`${this.studyList[sIdx].StudyId}`] this.activeNames = [`${this.studyList[sIdx].StudyId}`]
}
} catch (err) {
console.log(err)
} }
} }