IVUS和OCT阅片前准备
continuous-integration/drone/push Build encountered an error
Details
continuous-integration/drone/push Build encountered an error
Details
parent
27caa4ff77
commit
fe8398df9d
|
@ -34,6 +34,7 @@ const getters = {
|
||||||
paymentHistoryQuery: state => state.financials.paymentHistoryQuery,
|
paymentHistoryQuery: state => state.financials.paymentHistoryQuery,
|
||||||
revenusQuery: state => state.financials.revenusQuery,
|
revenusQuery: state => state.financials.revenusQuery,
|
||||||
visitTaskList: state => state.reading.visitTaskList,
|
visitTaskList: state => state.reading.visitTaskList,
|
||||||
|
BodyPart: state => state.reading.BodyPart,
|
||||||
organList: state => state.reading.organList,
|
organList: state => state.reading.organList,
|
||||||
seriesStack: state => state.reading.seriesStack,
|
seriesStack: state => state.reading.seriesStack,
|
||||||
activeHangingAgreement: state => state.reading.activeHangingAgreement,
|
activeHangingAgreement: state => state.reading.activeHangingAgreement,
|
||||||
|
|
|
@ -32,7 +32,8 @@ const getDefaultState = () => {
|
||||||
lastCanvasTaskId: '',
|
lastCanvasTaskId: '',
|
||||||
imageQuality: null,
|
imageQuality: null,
|
||||||
imageQualityIssues: null,
|
imageQualityIssues: null,
|
||||||
currentLoadIns: []
|
currentLoadIns: [],
|
||||||
|
BodyPart: []
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function getQuestions(questions) {
|
function getQuestions(questions) {
|
||||||
|
@ -171,6 +172,28 @@ function getQuestionAnswer(questions, questionMark, answers) {
|
||||||
return ''
|
return ''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
async function getBodyPart(bodyPart, other) {
|
||||||
|
if (!bodyPart && !other) return ''
|
||||||
|
var separator = ','
|
||||||
|
if (bodyPart.indexOf('|') > -1) {
|
||||||
|
separator = '|'
|
||||||
|
} else if (bodyPart.indexOf(',') > -1) {
|
||||||
|
separator = ','
|
||||||
|
} else if (bodyPart.indexOf(',') > -1) {
|
||||||
|
separator = ','
|
||||||
|
}
|
||||||
|
let BodyPart = {}
|
||||||
|
BodyPart.Bodypart = await Vue.prototype.$getBodyPart(Vue.prototype.$route.query.trialId)
|
||||||
|
var arr = bodyPart.split(separator)
|
||||||
|
var newArr = arr.map((i) => {
|
||||||
|
return Vue.prototype.$fd('Bodypart', i.trim(), 'Code', BodyPart, 'Name')
|
||||||
|
})
|
||||||
|
if (other) {
|
||||||
|
newArr.push(other)
|
||||||
|
}
|
||||||
|
newArr = newArr.filter(Boolean)
|
||||||
|
return newArr
|
||||||
|
}
|
||||||
// function getKeySeriesInfo(keyInstance, series) {
|
// function getKeySeriesInfo(keyInstance, series) {
|
||||||
// const obj = {}
|
// const obj = {}
|
||||||
// const set = new Set()
|
// const set = new Set()
|
||||||
|
@ -850,6 +873,14 @@ const actions = {
|
||||||
var studyList = []
|
var studyList = []
|
||||||
var keyImages = []
|
var keyImages = []
|
||||||
getReadingVisitStudyList(obj.trialId, obj.subjectVisitId, obj.visitTaskId).then(res => {
|
getReadingVisitStudyList(obj.trialId, obj.subjectVisitId, obj.visitTaskId).then(res => {
|
||||||
|
try {
|
||||||
|
res.Result.forEach(async item => {
|
||||||
|
let arr = await getBodyPart(item.BodyPartForEdit, item.BodyPartForEditOther)
|
||||||
|
state.BodyPart[item.StudyId] = arr
|
||||||
|
})
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err)
|
||||||
|
}
|
||||||
const i = res.Result.findIndex(i => i.IsCriticalSequence)
|
const i = res.Result.findIndex(i => i.IsCriticalSequence)
|
||||||
if (i > -1) {
|
if (i > -1) {
|
||||||
const seriesList = res.Result[i].SeriesList && res.Result[i].SeriesList
|
const seriesList = res.Result[i].SeriesList && res.Result[i].SeriesList
|
||||||
|
|
|
@ -7,7 +7,12 @@
|
||||||
<el-tooltip class="item" effect="dark" :content="$t('trials:reading:button:clinicalData')" placement="bottom">
|
<el-tooltip class="item" effect="dark" :content="$t('trials:reading:button:clinicalData')" placement="bottom">
|
||||||
<svg-icon icon-class="documentation" class="svg-icon" />
|
<svg-icon icon-class="documentation" class="svg-icon" />
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
|
</div>
|
||||||
|
<!-- 检查部位 -->
|
||||||
|
<div v-else-if="CriterionType == 19 || CriterionType == 20" class="info-cd" @click.stop="handleViewBP($event)">
|
||||||
|
<el-tooltip class="item" effect="dark" :content="$t('trials:reading:button:BodyPart')" placement="bottom">
|
||||||
|
<svg-icon icon-class="documentation" class="svg-icon" />
|
||||||
|
</el-tooltip>
|
||||||
</div>
|
</div>
|
||||||
<!-- 切换访视 -->
|
<!-- 切换访视 -->
|
||||||
<div v-if="stack.imageRendered && isReadingTaskViewInOrder === 1" class="info-visit"
|
<div v-if="stack.imageRendered && isReadingTaskViewInOrder === 1" class="info-visit"
|
||||||
|
@ -35,7 +40,8 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="info-image">
|
<div class="info-image">
|
||||||
<div v-show="mousePosition.mo">
|
<div v-show="mousePosition.mo">
|
||||||
Pos: {{ mousePosition.x ? mousePosition.x.toFixed(0) : '' }}, {{ mousePosition.y ? mousePosition.y.toFixed(0) : '' }}
|
Pos: {{ mousePosition.x ? mousePosition.x.toFixed(0) : '' }}, {{ mousePosition.y ? mousePosition.y.toFixed(0) :
|
||||||
|
'' }}
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
v-if="(dicomInfo.modality === 'CT' || dicomInfo.modality === 'DR' || dicomInfo.modality === 'CR') && mousePosition.mo">
|
v-if="(dicomInfo.modality === 'CT' || dicomInfo.modality === 'DR' || dicomInfo.modality === 'CR') && mousePosition.mo">
|
||||||
|
@ -2004,8 +2010,13 @@ export default {
|
||||||
e.stopImmediatePropagation()
|
e.stopImmediatePropagation()
|
||||||
e.stopPropagation()
|
e.stopPropagation()
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
|
},
|
||||||
|
handleViewBP(e) {
|
||||||
|
DicomEvent.$emit('previewBP', this.series.studyId)
|
||||||
|
e.stopImmediatePropagation()
|
||||||
|
e.stopPropagation()
|
||||||
|
e.preventDefault()
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -1,57 +1,44 @@
|
||||||
<template>
|
<template>
|
||||||
<div ref="container" style="width:100%;height:100%" class="dicom-container">
|
<div ref="container" style="width:100%;height:100%" class="dicom-container">
|
||||||
<!-- 访视阅片 -->
|
<!-- 访视阅片 -->
|
||||||
<div v-if="readingCategory === 1 && (CriterionType === 7 || ((CriterionType === 1 || CriterionType === 0) && readingVersionEnum === 1)) " class="reading-wrapper">
|
<div
|
||||||
|
v-if="readingCategory === 1 && (CriterionType === 7 || ((CriterionType === 1 || CriterionType === 0) && readingVersionEnum === 1))"
|
||||||
|
class="reading-wrapper">
|
||||||
<VisitReview :reading-tool="readingTool" />
|
<VisitReview :reading-tool="readingTool" />
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="(isReadingTaskViewInOrder === 1 || ((isReadingTaskViewInOrder !== 1) && isShow)) && readingCategory=== 1 && CriterionType !== 0" class="reading-wrapper">
|
<div
|
||||||
|
v-else-if="(isReadingTaskViewInOrder === 1 || ((isReadingTaskViewInOrder !== 1) && isShow)) && readingCategory === 1 && CriterionType !== 0"
|
||||||
|
class="reading-wrapper">
|
||||||
<el-tabs v-model="activeName" v-loading="loading" :before-leave="beforeLeave">
|
<el-tabs v-model="activeName" v-loading="loading" :before-leave="beforeLeave">
|
||||||
<!-- 阅片 -->
|
<!-- 阅片 -->
|
||||||
<el-tab-pane :label="$t('trials:reading:tabTitle:review')" name="read">
|
<el-tab-pane :label="$t('trials:reading:tabTitle:review')" name="read">
|
||||||
<ReadPage
|
<ReadPage v-if="tabs.includes('read')" :trial-id="trialId" :visit-task-id="visitTaskId"
|
||||||
v-if="tabs.includes('read')"
|
:subject-id="subjectId" :subject-code="subjectCode" :is-show="isShow"
|
||||||
:trial-id="trialId"
|
:question-form-change-state="questionFormChangeState" :question-form-change-num="questionFormChangeNum"
|
||||||
:visit-task-id="visitTaskId"
|
|
||||||
:subject-id="subjectId"
|
|
||||||
:subject-code="subjectCode"
|
|
||||||
:is-show="isShow"
|
|
||||||
:question-form-change-state="questionFormChangeState"
|
|
||||||
:question-form-change-num="questionFormChangeNum"
|
|
||||||
:is-reading-show-subject-info="isReadingShowSubjectInfo"
|
:is-reading-show-subject-info="isReadingShowSubjectInfo"
|
||||||
:is-reading-task-view-in-order="isReadingTaskViewInOrder"
|
:is-reading-task-view-in-order="isReadingTaskViewInOrder" :is-exists-clinical-data="isExistsClinicalData"
|
||||||
:is-exists-clinical-data="isExistsClinicalData"
|
:is-exists-no-dicom-file="isExistsNoDicomFile" :is-exists-manual="isExistsManual"
|
||||||
:is-exists-no-dicom-file="isExistsNoDicomFile"
|
:ise-c-r-f-show-in-dicom-reading="IseCRFShowInDicomReading" @previewCD="previewCD" />
|
||||||
:is-exists-manual="isExistsManual"
|
|
||||||
:ise-c-r-f-show-in-dicom-reading="IseCRFShowInDicomReading"
|
|
||||||
@previewCD="previewCD"
|
|
||||||
/>
|
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<!-- 报告 -->
|
<!-- 报告 -->
|
||||||
<el-tab-pane v-if="!IseCRFShowInDicomReading" :label="$t('trials:reading:tabTitle:report')" name="report">
|
<el-tab-pane v-if="!IseCRFShowInDicomReading" :label="$t('trials:reading:tabTitle:report')" name="report">
|
||||||
<ReportPage v-if="tabs.includes('report') && isShow" ref="reportPage" :question-form-change-state="questionFormChangeState" :visit-task-id="visitTaskId" />
|
<ReportPage v-if="tabs.includes('report') && isShow" ref="reportPage"
|
||||||
|
:question-form-change-state="questionFormChangeState" :visit-task-id="visitTaskId" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="(isReadingTaskViewInOrder === 1 || ((isReadingTaskViewInOrder !== 1) && isShow)) && readingCategory=== 1 && CriterionType === 0" class="reading-wrapper">
|
<div
|
||||||
|
v-else-if="(isReadingTaskViewInOrder === 1 || ((isReadingTaskViewInOrder !== 1) && isShow)) && readingCategory === 1 && CriterionType === 0"
|
||||||
|
class="reading-wrapper">
|
||||||
<el-tabs v-model="activeName" v-loading="loading" :before-leave="beforeLeaveCustomize">
|
<el-tabs v-model="activeName" v-loading="loading" :before-leave="beforeLeaveCustomize">
|
||||||
<!-- 阅片 -->
|
<!-- 阅片 -->
|
||||||
<el-tab-pane :label="$t('trials:reading:tabTitle:review')" name="read">
|
<el-tab-pane :label="$t('trials:reading:tabTitle:review')" name="read">
|
||||||
<CustomizeReadPage
|
<CustomizeReadPage v-if="tabs.includes('read')" :trial-id="trialId"
|
||||||
v-if="tabs.includes('read')"
|
:trial-reading-criterion-id="TrialReadingCriterionId" :visit-task-id="visitTaskId" :subject-id="subjectId"
|
||||||
:trial-id="trialId"
|
:subject-code="subjectCode" :is-show="isShow" :is-reading-show-subject-info="isReadingShowSubjectInfo"
|
||||||
:trial-reading-criterion-id="TrialReadingCriterionId"
|
|
||||||
:visit-task-id="visitTaskId"
|
|
||||||
:subject-id="subjectId"
|
|
||||||
:subject-code="subjectCode"
|
|
||||||
:is-show="isShow"
|
|
||||||
:is-reading-show-subject-info="isReadingShowSubjectInfo"
|
|
||||||
:is-reading-task-view-in-order="isReadingTaskViewInOrder"
|
:is-reading-task-view-in-order="isReadingTaskViewInOrder"
|
||||||
:ise-c-r-f-show-in-dicom-reading="IseCRFShowInDicomReading"
|
:ise-c-r-f-show-in-dicom-reading="IseCRFShowInDicomReading" :is-exists-clinical-data="isExistsClinicalData"
|
||||||
:is-exists-clinical-data="isExistsClinicalData"
|
:is-exists-no-dicom-file="isExistsNoDicomFile" :is-exists-manual="isExistsManual" @previewCD="previewCD" />
|
||||||
:is-exists-no-dicom-file="isExistsNoDicomFile"
|
|
||||||
:is-exists-manual="isExistsManual"
|
|
||||||
@previewCD="previewCD"
|
|
||||||
/>
|
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<!-- 报告 -->
|
<!-- 报告 -->
|
||||||
<el-tab-pane v-if="!IseCRFShowInDicomReading" :label="$t('trials:reading:tabTitle:report')" name="report">
|
<el-tab-pane v-if="!IseCRFShowInDicomReading" :label="$t('trials:reading:tabTitle:report')" name="report">
|
||||||
|
@ -60,70 +47,40 @@
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</div>
|
</div>
|
||||||
<!-- 全局阅片 -->
|
<!-- 全局阅片 -->
|
||||||
<GlobalReview
|
<GlobalReview v-else-if="isShow && readingCategory === 2" :trial-id="trialId" :subject-id="subjectId"
|
||||||
v-else-if="isShow && readingCategory === 2"
|
:visit-task-id="visitTaskId" :reading-category="readingCategory" :subject-code="subjectCode"
|
||||||
:trial-id="trialId"
|
:task-blind-name="taskBlindName" :is-reading-show-subject-info="isReadingShowSubjectInfo"
|
||||||
:subject-id="subjectId"
|
|
||||||
:visit-task-id="visitTaskId"
|
|
||||||
:reading-category="readingCategory"
|
|
||||||
:subject-code="subjectCode"
|
|
||||||
:task-blind-name="taskBlindName"
|
|
||||||
:is-reading-show-subject-info="isReadingShowSubjectInfo"
|
|
||||||
:is-reading-show-previous-results="isReadingShowPreviousResults"
|
:is-reading-show-previous-results="isReadingShowPreviousResults"
|
||||||
:is-exists-clinical-data="isExistsClinicalData"
|
:is-exists-clinical-data="isExistsClinicalData" />
|
||||||
/>
|
|
||||||
<!-- 裁判阅片 -->
|
<!-- 裁判阅片 -->
|
||||||
<AdReview
|
<AdReview v-else-if="isShow && readingCategory === 4" :trial-id="trialId" :subject-id="subjectId"
|
||||||
v-else-if="isShow && readingCategory === 4"
|
:visit-task-id="visitTaskId" :reading-category="readingCategory" :subject-code="subjectCode"
|
||||||
:trial-id="trialId"
|
:task-blind-name="taskBlindName" :is-reading-show-subject-info="isReadingShowSubjectInfo"
|
||||||
:subject-id="subjectId"
|
|
||||||
:visit-task-id="visitTaskId"
|
|
||||||
:reading-category="readingCategory"
|
|
||||||
:subject-code="subjectCode"
|
|
||||||
:task-blind-name="taskBlindName"
|
|
||||||
:is-reading-show-subject-info="isReadingShowSubjectInfo"
|
|
||||||
:is-reading-show-previous-results="isReadingShowPreviousResults"
|
:is-reading-show-previous-results="isReadingShowPreviousResults"
|
||||||
:is-exists-clinical-data="isExistsClinicalData"
|
:is-exists-clinical-data="isExistsClinicalData" />
|
||||||
/>
|
|
||||||
|
|
||||||
<!-- 肿瘤学阅片 -->
|
<!-- 肿瘤学阅片 -->
|
||||||
<OncologyReview
|
<OncologyReview v-else-if="isShow && readingCategory === 5" :trial-id="trialId" :subject-id="subjectId"
|
||||||
v-else-if="isShow && readingCategory === 5"
|
:visit-task-id="visitTaskId" :reading-category="readingCategory" :subject-code="subjectCode"
|
||||||
:trial-id="trialId"
|
:task-blind-name="taskBlindName" :is-reading-show-subject-info="isReadingShowSubjectInfo"
|
||||||
:subject-id="subjectId"
|
|
||||||
:visit-task-id="visitTaskId"
|
|
||||||
:reading-category="readingCategory"
|
|
||||||
:subject-code="subjectCode"
|
|
||||||
:task-blind-name="taskBlindName"
|
|
||||||
:is-reading-show-subject-info="isReadingShowSubjectInfo"
|
|
||||||
:is-reading-show-previous-results="isReadingShowPreviousResults"
|
:is-reading-show-previous-results="isReadingShowPreviousResults"
|
||||||
:is-exists-clinical-data="isExistsClinicalData"
|
:is-exists-clinical-data="isExistsClinicalData" />
|
||||||
/>
|
|
||||||
|
|
||||||
<el-dialog
|
<el-dialog :visible.sync="dialogVisible" :custom-class="isFullscreen ? 'full-dialog-container' : 'dialog-container'"
|
||||||
:visible.sync="dialogVisible"
|
:show-close="false" :close-on-click-modal="false" :fullscreen="isFullscreen">
|
||||||
:custom-class="isFullscreen?'full-dialog-container':'dialog-container'"
|
|
||||||
:show-close="false"
|
|
||||||
:close-on-click-modal="false"
|
|
||||||
:fullscreen="isFullscreen"
|
|
||||||
>
|
|
||||||
<span slot="title" class="dialog-footer">
|
<span slot="title" class="dialog-footer">
|
||||||
<!-- 当前阅片任务存在临床数据,请查看。若已查看,请点击“确认” -->
|
<!-- 当前阅片任务存在临床数据,请查看。若已查看,请点击“确认” -->
|
||||||
<span v-if="!closeCDVisible">{{ $t('trials:reading:dagTitle:msg1') }}</span>
|
<span v-if="!closeCDVisible">{{ $t('trials:reading:dagTitle:msg1') }}</span>
|
||||||
<div style="position: absolute;right: 20px;top: 10px;">
|
<div style="position: absolute;right: 20px;top: 10px;">
|
||||||
<svg-icon :icon-class="isFullscreen?'exit-fullscreen':'fullscreen'" style="cursor: pointer;font-size: 20px;" @click="isFullscreen=!isFullscreen" />
|
<svg-icon :icon-class="isFullscreen ? 'exit-fullscreen' : 'fullscreen'"
|
||||||
<svg-icon v-if="closeCDVisible" icon-class="dClose" style="cursor: pointer;font-size: 25px;margin-left: 10px;" @click="dialogVisible = false" />
|
style="cursor: pointer;font-size: 20px;" @click="isFullscreen = !isFullscreen" />
|
||||||
|
<svg-icon v-if="closeCDVisible" icon-class="dClose" style="cursor: pointer;font-size: 25px;margin-left: 10px;"
|
||||||
|
@click="dialogVisible = false" />
|
||||||
</div>
|
</div>
|
||||||
</span>
|
</span>
|
||||||
<div style="height: 100%;margin:0;display: flex;flex-direction: column;">
|
<div style="height: 100%;margin:0;display: flex;flex-direction: column;">
|
||||||
<ClinicalData
|
<ClinicalData v-if="dialogVisible" style="flex: 1" :trial-id="trialId" :subject-id="subjectId"
|
||||||
v-if="dialogVisible"
|
:visit-task-id="cdVisitTaskId" :is-reading-show-subject-info="isReadingShowSubjectInfo" />
|
||||||
style="flex: 1"
|
|
||||||
:trial-id="trialId"
|
|
||||||
:subject-id="subjectId"
|
|
||||||
:visit-task-id="cdVisitTaskId"
|
|
||||||
:is-reading-show-subject-info="isReadingShowSubjectInfo"
|
|
||||||
/>
|
|
||||||
<div v-if="!closeCDVisible" style="text-align:right">
|
<div v-if="!closeCDVisible" style="text-align:right">
|
||||||
<!-- 确认 -->
|
<!-- 确认 -->
|
||||||
<el-button type="primary" @click="handleConfirmCD">{{ $t('trials:reading:button:confirm') }}</el-button>
|
<el-button type="primary" @click="handleConfirmCD">{{ $t('trials:reading:button:confirm') }}</el-button>
|
||||||
|
@ -131,12 +88,7 @@
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
<el-dialog
|
<el-dialog :visible.sync="tipVisible" :show-close="false" :close-on-click-modal="false" width="500px">
|
||||||
:visible.sync="tipVisible"
|
|
||||||
:show-close="false"
|
|
||||||
:close-on-click-modal="false"
|
|
||||||
width="500px"
|
|
||||||
>
|
|
||||||
<span slot="title" class="dialog-footer">
|
<span slot="title" class="dialog-footer">
|
||||||
<!-- 提示 -->
|
<!-- 提示 -->
|
||||||
{{ $t('trials:iRecist:warnning:msg44') }}
|
{{ $t('trials:iRecist:warnning:msg44') }}
|
||||||
|
@ -169,7 +121,27 @@
|
||||||
<el-button type="primary" @click="tipVisible = false">{{ $t('trials:reading:button:confirm') }}</el-button>
|
<el-button type="primary" @click="tipVisible = false">{{ $t('trials:reading:button:confirm') }}</el-button>
|
||||||
</span>
|
</span>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
<el-dialog :visible.sync="dialogBodyPartVisible"
|
||||||
|
:custom-class="isFullscreen ? 'full-dialog-container' : 'dialog-container'" :show-close="false"
|
||||||
|
:close-on-click-modal="false" :fullscreen="isFullscreen">
|
||||||
|
<span slot="title" class="dialog-footer">
|
||||||
|
<!-- <span>{{ $t('trials:reading:dagTitle:msg1') }}</span> -->
|
||||||
|
<div style="position: absolute;right: 20px;top: 10px;">
|
||||||
|
<svg-icon :icon-class="isFullscreen ? 'exit-fullscreen' : 'fullscreen'"
|
||||||
|
style="cursor: pointer;font-size: 20px;" @click="isFullscreen = !isFullscreen" />
|
||||||
|
<svg-icon icon-class="dClose" style="cursor: pointer;font-size: 25px;margin-left: 10px;"
|
||||||
|
@click="dialogBodyPartVisible = false" />
|
||||||
|
</div>
|
||||||
|
</span>
|
||||||
|
<div style="height: 100%;margin:0;display: flex;flex-direction: column;">
|
||||||
|
<span>{{ Array.isArray(this.BodyPartForEdit) ? this.BodyPartForEdit.join("|") : '' }}</span>
|
||||||
|
<div style="text-align:right">
|
||||||
|
<!-- 确认 -->
|
||||||
|
<el-button type="primary" @click="dialogBodyPartVisible = false">{{ $t('trials:reading:button:confirm')
|
||||||
|
}}</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
@ -188,6 +160,7 @@ import store from '@/store'
|
||||||
// import { getToken } from '@/utils/auth'
|
// import { getToken } from '@/utils/auth'
|
||||||
import { changeURLStatic } from '@/utils/history.js'
|
import { changeURLStatic } from '@/utils/history.js'
|
||||||
import requestPoolManager from '@/utils/request-pool'
|
import requestPoolManager from '@/utils/request-pool'
|
||||||
|
import { mapGetters } from 'vuex'
|
||||||
export default {
|
export default {
|
||||||
name: 'Reading',
|
name: 'Reading',
|
||||||
components: {
|
components: {
|
||||||
|
@ -235,9 +208,14 @@ export default {
|
||||||
tipVisible: false,
|
tipVisible: false,
|
||||||
closeCDVisible: false,
|
closeCDVisible: false,
|
||||||
cdVisitTaskId: '',
|
cdVisitTaskId: '',
|
||||||
readingVersionEnum: null
|
readingVersionEnum: null,
|
||||||
|
dialogBodyPartVisible: false,
|
||||||
|
BodyPartForEdit: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
computed: {
|
||||||
|
...mapGetters(['BodyPart'])
|
||||||
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
requestPoolManager.resetRequestPool()
|
requestPoolManager.resetRequestPool()
|
||||||
requestPoolManager.setSortType(0)
|
requestPoolManager.setSortType(0)
|
||||||
|
@ -264,6 +242,12 @@ export default {
|
||||||
this.dialogVisible = true
|
this.dialogVisible = true
|
||||||
this.cdVisitTaskId = taskId
|
this.cdVisitTaskId = taskId
|
||||||
})
|
})
|
||||||
|
DicomEvent.$on('previewBP', (studyId) => {
|
||||||
|
console.log(this.BodyPart, 'this.BodyPart')
|
||||||
|
this.BodyPartForEdit = this.BodyPart[studyId]
|
||||||
|
this.isFullscreen = false
|
||||||
|
this.dialogBodyPartVisible = true
|
||||||
|
})
|
||||||
this.activeName = this.$router.currentRoute.query.tabName ? this.$router.currentRoute.query.tabName : 'read'
|
this.activeName = this.$router.currentRoute.query.tabName ? this.$router.currentRoute.query.tabName : 'read'
|
||||||
this.tabs.push(this.activeName)
|
this.tabs.push(this.activeName)
|
||||||
this.trialId = this.$router.currentRoute.query.trialId
|
this.trialId = this.$router.currentRoute.query.trialId
|
||||||
|
@ -514,98 +498,115 @@ export default {
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
::v-deep.el-message-box__headerbtn{
|
::v-deep.el-message-box__headerbtn {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
.dicom-container{
|
|
||||||
.reading-wrapper{
|
.dicom-container {
|
||||||
width: 100%;
|
.reading-wrapper {
|
||||||
height: 100%;
|
width: 100%;
|
||||||
padding: 0 5px;
|
|
||||||
box-sizing: border-box;
|
|
||||||
background-color: #000;
|
|
||||||
::v-deep.el-tabs{
|
|
||||||
box-sizing: border-box;
|
|
||||||
height: 100%;
|
height: 100%;
|
||||||
display: flex;
|
padding: 0 5px;
|
||||||
flex-direction: column;
|
box-sizing: border-box;
|
||||||
.el-tabs__item{
|
background-color: #000;
|
||||||
color: #fff;
|
|
||||||
}
|
::v-deep.el-tabs {
|
||||||
.el-tabs__header{
|
|
||||||
height: 50px;
|
|
||||||
margin:0px;
|
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
|
||||||
.el-tabs__content{
|
|
||||||
flex: 1;
|
|
||||||
margin:0px;
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
.el-tabs__item{
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
.el-tab-pane{
|
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
|
||||||
|
.el-tabs__item {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-tabs__header {
|
||||||
|
height: 50px;
|
||||||
|
margin: 0px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-tabs__content {
|
||||||
|
flex: 1;
|
||||||
|
margin: 0px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-tabs__item {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-tab-pane {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
::v-deep.hot-keys-label {
|
||||||
::v-deep.hot-keys-label{
|
color: #dfdfdf !important;
|
||||||
color: #dfdfdf !important;
|
}
|
||||||
}
|
|
||||||
::v-deep.shortcut-key-input span{
|
|
||||||
color: #dfdfdf !important;
|
|
||||||
}
|
|
||||||
// ::v-deep .el-dialog{
|
|
||||||
// background: #1e1e1e;
|
|
||||||
// ::v-deep .el-dialog__body{
|
|
||||||
// padding: 10px;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// }
|
::v-deep.shortcut-key-input span {
|
||||||
::v-deep.el-dialog{
|
color: #dfdfdf !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ::v-deep .el-dialog{
|
||||||
|
// background: #1e1e1e;
|
||||||
|
// ::v-deep .el-dialog__body{
|
||||||
|
// padding: 10px;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// }
|
||||||
|
::v-deep.el-dialog {
|
||||||
background: #1e1e1e;
|
background: #1e1e1e;
|
||||||
border: 1px solid #ddd;
|
border: 1px solid #ddd;
|
||||||
color: #ddd;
|
color: #ddd;
|
||||||
.el-dialog__title{
|
|
||||||
color:#fff;
|
.el-dialog__title {
|
||||||
|
color: #fff;
|
||||||
}
|
}
|
||||||
.el-input .el-input__inner{
|
|
||||||
|
.el-input .el-input__inner {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
color: #ddd;
|
color: #ddd;
|
||||||
border: 1px solid #5e5e5e;
|
border: 1px solid #5e5e5e;
|
||||||
}
|
}
|
||||||
.el-input.is-disabled .el-input__inner{
|
|
||||||
|
.el-input.is-disabled .el-input__inner {
|
||||||
background-color: #646464a1;
|
background-color: #646464a1;
|
||||||
}
|
}
|
||||||
.el-form-item__label{
|
|
||||||
|
.el-form-item__label {
|
||||||
color: #dfdfdf
|
color: #dfdfdf
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
::v-deep.dialog-container{
|
|
||||||
margin-top: 50px !important;
|
|
||||||
width:75%;
|
|
||||||
height:80%;
|
|
||||||
}
|
}
|
||||||
::v-deep.el-dialog__body{
|
|
||||||
padding: 20px;
|
::v-deep.dialog-container {
|
||||||
height: calc(100% - 70px);
|
margin-top: 50px !important;
|
||||||
}
|
width: 75%;
|
||||||
.el-dialog__header{
|
height: 80%;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep.el-dialog__body {
|
||||||
|
padding: 20px;
|
||||||
|
height: calc(100% - 70px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-dialog__header {
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .el-radio__input.is-disabled.is-checked .el-radio__inner {
|
::v-deep .el-radio__input.is-disabled.is-checked .el-radio__inner {
|
||||||
background-color: #428bca;
|
background-color: #428bca;
|
||||||
border-color: #428bca;
|
border-color: #428bca;
|
||||||
}
|
}
|
||||||
|
|
||||||
.full-dialog-container{
|
.full-dialog-container {
|
||||||
::v-deep.is-fullscreen .el-dialog__body{
|
::v-deep.is-fullscreen .el-dialog__body {
|
||||||
height: calc(100% - 70px);
|
height: calc(100% - 70px);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -70,7 +70,7 @@
|
||||||
<el-table-column prop="BodyPartForEdit" :label="$t('trials:uploadedDicoms:table:bodyPart')" min-width="100"
|
<el-table-column prop="BodyPartForEdit" :label="$t('trials:uploadedDicoms:table:bodyPart')" min-width="100"
|
||||||
show-overflow-tooltip sortable>
|
show-overflow-tooltip sortable>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ getBodyPart(scope.row.BodyPartForEdit) }}
|
{{ getBodyPart(scope.row.BodyPartForEdit, scope.row.BodyPartForEditOther) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- 序列数量 -->
|
<!-- 序列数量 -->
|
||||||
|
@ -499,7 +499,7 @@
|
||||||
<!-- 检查部位 -->
|
<!-- 检查部位 -->
|
||||||
<el-form-item :label="$t('trials:audit:table:bodyPart')" prop="BodyPartForEdit" :rules="[
|
<el-form-item :label="$t('trials:audit:table:bodyPart')" prop="BodyPartForEdit" :rules="[
|
||||||
{
|
{
|
||||||
required: true,
|
required: studyForm.BodyPartForEditOther ? false : true,
|
||||||
message: $t('common:ruleMessage:specify'),
|
message: $t('common:ruleMessage:specify'),
|
||||||
trigger: 'blur',
|
trigger: 'blur',
|
||||||
},
|
},
|
||||||
|
@ -508,6 +508,8 @@
|
||||||
<el-checkbox v-for="bodyPart in trialBodyPartTypes" :key="bodyPart" :label="bodyPart">{{
|
<el-checkbox v-for="bodyPart in trialBodyPartTypes" :key="bodyPart" :label="bodyPart">{{
|
||||||
$fd('Bodypart', bodyPart, 'Code', BodyPart, 'Name')
|
$fd('Bodypart', bodyPart, 'Code', BodyPart, 'Name')
|
||||||
}}</el-checkbox>
|
}}</el-checkbox>
|
||||||
|
<el-input :placeholder="$t('trials:audit:placeholder:BodyPartForEditOther')"
|
||||||
|
v-model="studyForm.BodyPartForEditOther" style="width:150px;margin-left: 30px;"></el-input>
|
||||||
</el-checkbox-group>
|
</el-checkbox-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 序列数量 -->
|
<!-- 序列数量 -->
|
||||||
|
@ -604,6 +606,7 @@ export default {
|
||||||
BodyPartForEdit: [],
|
BodyPartForEdit: [],
|
||||||
SeriesCount: null,
|
SeriesCount: null,
|
||||||
StudyTime: '',
|
StudyTime: '',
|
||||||
|
BodyPartForEditOther: ''
|
||||||
},
|
},
|
||||||
uploadQueues: dicomStore.studyList, // 上传队列
|
uploadQueues: dicomStore.studyList, // 上传队列
|
||||||
selectArr: [], // 已勾选待上传文件
|
selectArr: [], // 已勾选待上传文件
|
||||||
|
@ -709,6 +712,7 @@ export default {
|
||||||
modality: this.studyForm.Modality,
|
modality: this.studyForm.Modality,
|
||||||
bodyPart: this.studyForm.BodyPart,
|
bodyPart: this.studyForm.BodyPart,
|
||||||
StudyName: this.studyForm.StudyName,
|
StudyName: this.studyForm.StudyName,
|
||||||
|
BodyPartForEditOther: this.studyForm.BodyPartForEditOther,
|
||||||
}
|
}
|
||||||
updateModality(this.trialId, params)
|
updateModality(this.trialId, params)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
|
@ -1441,7 +1445,7 @@ export default {
|
||||||
seriesInstanceUid: v.seriesUid,
|
seriesInstanceUid: v.seriesUid,
|
||||||
SOPClassUID: o.SOPClassUID,
|
SOPClassUID: o.SOPClassUID,
|
||||||
TransferSytaxUID: o.TransferSytaxUID,
|
TransferSytaxUID: o.TransferSytaxUID,
|
||||||
MediaStorageSOPInstanceUID:o.MediaStorageSOPInstanceUID,
|
MediaStorageSOPInstanceUID: o.MediaStorageSOPInstanceUID,
|
||||||
MediaStorageSOPClassUID: o.MediaStorageSOPClassUID,
|
MediaStorageSOPClassUID: o.MediaStorageSOPClassUID,
|
||||||
sopInstanceUid: o.instanceUid,
|
sopInstanceUid: o.instanceUid,
|
||||||
instanceNumber: o.instanceNumber,
|
instanceNumber: o.instanceNumber,
|
||||||
|
@ -1530,7 +1534,7 @@ export default {
|
||||||
seriesInstanceUid: v.seriesUid,
|
seriesInstanceUid: v.seriesUid,
|
||||||
SOPClassUID: o.SOPClassUID,
|
SOPClassUID: o.SOPClassUID,
|
||||||
TransferSytaxUID: o.TransferSytaxUID,
|
TransferSytaxUID: o.TransferSytaxUID,
|
||||||
MediaStorageSOPInstanceUID:o.MediaStorageSOPInstanceUID,
|
MediaStorageSOPInstanceUID: o.MediaStorageSOPInstanceUID,
|
||||||
MediaStorageSOPClassUID: o.MediaStorageSOPClassUID,
|
MediaStorageSOPClassUID: o.MediaStorageSOPClassUID,
|
||||||
sopInstanceUid: o.instanceUid,
|
sopInstanceUid: o.instanceUid,
|
||||||
instanceNumber: o.instanceNumber,
|
instanceNumber: o.instanceNumber,
|
||||||
|
@ -1867,8 +1871,8 @@ export default {
|
||||||
return ''
|
return ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
getBodyPart(bodyPart) {
|
getBodyPart(bodyPart, other) {
|
||||||
if (!bodyPart) return ''
|
if (!bodyPart && !other) return ''
|
||||||
var separator = ','
|
var separator = ','
|
||||||
if (bodyPart.indexOf('|') > -1) {
|
if (bodyPart.indexOf('|') > -1) {
|
||||||
separator = '|'
|
separator = '|'
|
||||||
|
@ -1881,6 +1885,10 @@ export default {
|
||||||
var newArr = arr.map((i) => {
|
var newArr = arr.map((i) => {
|
||||||
return this.$fd('Bodypart', i.trim(), 'Code', this.BodyPart, 'Name')
|
return this.$fd('Bodypart', i.trim(), 'Code', this.BodyPart, 'Name')
|
||||||
})
|
})
|
||||||
|
if (other) {
|
||||||
|
newArr.push(other)
|
||||||
|
}
|
||||||
|
newArr = newArr.filter(Boolean)
|
||||||
return newArr.join(' | ')
|
return newArr.join(' | ')
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
<!-- 检查部位 -->
|
<!-- 检查部位 -->
|
||||||
<el-table-column prop="BodyPart" :label="$t('trials:uploadNonDicoms:table:bodyPart')" sortable>
|
<el-table-column prop="BodyPart" :label="$t('trials:uploadNonDicoms:table:bodyPart')" sortable>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ getBodyPart(scope.row.BodyPart) }}
|
{{ getBodyPart(scope.row.BodyPart, scope.row.BodyPartForEditOther) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- 文件 -->
|
<!-- 文件 -->
|
||||||
|
@ -163,7 +163,7 @@
|
||||||
<!-- 检查部位 -->
|
<!-- 检查部位 -->
|
||||||
<el-form-item :label="$t('trials:uploadNonDicoms:table:bodyPart')" prop="BodyParts" :rules="[
|
<el-form-item :label="$t('trials:uploadNonDicoms:table:bodyPart')" prop="BodyParts" :rules="[
|
||||||
{
|
{
|
||||||
required: true,
|
required: form.BodyPartForEditOther ? false : true,
|
||||||
message: $t('common:ruleMessage:specify'),
|
message: $t('common:ruleMessage:specify'),
|
||||||
trigger: 'blur',
|
trigger: 'blur',
|
||||||
},
|
},
|
||||||
|
@ -172,6 +172,8 @@
|
||||||
<el-checkbox v-for="bodyPart in trialBodyPartTypes" :key="bodyPart" :label="bodyPart">{{
|
<el-checkbox v-for="bodyPart in trialBodyPartTypes" :key="bodyPart" :label="bodyPart">{{
|
||||||
$fd('Bodypart', bodyPart, 'Code', BodyPart, 'Name')
|
$fd('Bodypart', bodyPart, 'Code', BodyPart, 'Name')
|
||||||
}}</el-checkbox>
|
}}</el-checkbox>
|
||||||
|
<el-input :placeholder="$t('trials:audit:placeholder:BodyPartForEditOther')"
|
||||||
|
v-model="form.BodyPartForEditOther" style="width:150px;margin-left: 30px;"></el-input>
|
||||||
</el-checkbox-group>
|
</el-checkbox-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 检查日期 -->
|
<!-- 检查日期 -->
|
||||||
|
@ -381,6 +383,7 @@ export default {
|
||||||
Modality: '',
|
Modality: '',
|
||||||
ImageDate: '',
|
ImageDate: '',
|
||||||
StudyName: '',
|
StudyName: '',
|
||||||
|
BodyPartForEditOther: ""
|
||||||
},
|
},
|
||||||
pickerOption: {
|
pickerOption: {
|
||||||
disabledDate: (time) => {
|
disabledDate: (time) => {
|
||||||
|
@ -484,12 +487,13 @@ export default {
|
||||||
this.form.StudyName = ''
|
this.form.StudyName = ''
|
||||||
this.form.ImageDate = ''
|
this.form.ImageDate = ''
|
||||||
this.form.BodyParts = []
|
this.form.BodyParts = []
|
||||||
|
this.form.BodyPartForEditOther = ''
|
||||||
this.dialogVisible = true
|
this.dialogVisible = true
|
||||||
},
|
},
|
||||||
// 打开比编辑弹框,并初始化数据
|
// 打开比编辑弹框,并初始化数据
|
||||||
handleEdit(row) {
|
handleEdit(row) {
|
||||||
this.title = this.$t('trials:uploadNonDicoms:dialogTitle:edit')
|
this.title = this.$t('trials:uploadNonDicoms:dialogTitle:edit')
|
||||||
const { CodeView, Id, BodyPart, Modality, ImageDate, StudyName } = {
|
const { CodeView, Id, BodyPart, Modality, ImageDate, StudyName, BodyPartForEditOther } = {
|
||||||
...row,
|
...row,
|
||||||
}
|
}
|
||||||
this.form.CodeView = CodeView
|
this.form.CodeView = CodeView
|
||||||
|
@ -499,6 +503,7 @@ export default {
|
||||||
this.form.StudyName = StudyName
|
this.form.StudyName = StudyName
|
||||||
this.form.ImageDate = ImageDate
|
this.form.ImageDate = ImageDate
|
||||||
this.form.BodyParts = this.form.BodyPart.split(', ')
|
this.form.BodyParts = this.form.BodyPart.split(', ')
|
||||||
|
this.form.BodyPartForEditOther = BodyPartForEditOther
|
||||||
this.dialogVisible = true
|
this.dialogVisible = true
|
||||||
},
|
},
|
||||||
// 保存非Dicom检查信息
|
// 保存非Dicom检查信息
|
||||||
|
@ -1018,8 +1023,8 @@ export default {
|
||||||
})
|
})
|
||||||
window.open(routeData.href, '_blank')
|
window.open(routeData.href, '_blank')
|
||||||
},
|
},
|
||||||
getBodyPart(bodyPart) {
|
getBodyPart(bodyPart, other) {
|
||||||
if (!bodyPart) return ''
|
if (!bodyPart && !other) return ''
|
||||||
var separator = ','
|
var separator = ','
|
||||||
if (bodyPart.indexOf('|') > -1) {
|
if (bodyPart.indexOf('|') > -1) {
|
||||||
separator = '|'
|
separator = '|'
|
||||||
|
@ -1032,6 +1037,10 @@ export default {
|
||||||
var newArr = arr.map((i) => {
|
var newArr = arr.map((i) => {
|
||||||
return this.$fd('Bodypart', i.trim(), 'Code', this.BodyPart, 'Name')
|
return this.$fd('Bodypart', i.trim(), 'Code', this.BodyPart, 'Name')
|
||||||
})
|
})
|
||||||
|
if (other) {
|
||||||
|
newArr.push(other)
|
||||||
|
}
|
||||||
|
newArr = newArr.filter(Boolean)
|
||||||
return newArr.join(' | ')
|
return newArr.join(' | ')
|
||||||
},
|
},
|
||||||
// 设置已删除序列行样式
|
// 设置已删除序列行样式
|
||||||
|
|
|
@ -100,7 +100,7 @@
|
||||||
<i class="el-icon-warning" style="color: #f44336; font-size: 16px" />
|
<i class="el-icon-warning" style="color: #f44336; font-size: 16px" />
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
<span v-else>{{
|
<span v-else>{{
|
||||||
getBodyPart(scope.row.BodyPartForEdit)
|
getBodyPart(scope.row.BodyPartForEdit, scope.row.BodyPartForEditOther)
|
||||||
}}</span>
|
}}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
@ -284,7 +284,7 @@
|
||||||
<!-- 检查部位 -->
|
<!-- 检查部位 -->
|
||||||
<el-table-column prop="BodyPart" :label="$t('trials:audit:table:nonDicomsBodypart')" sortable>
|
<el-table-column prop="BodyPart" :label="$t('trials:audit:table:nonDicomsBodypart')" sortable>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ getBodyPart(scope.row.BodyPart) }}
|
{{ getBodyPart(scope.row.BodyPart, scope.row.BodyPartForEditOther) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- 文件 -->
|
<!-- 文件 -->
|
||||||
|
@ -635,7 +635,7 @@
|
||||||
<!-- 检查部位 -->
|
<!-- 检查部位 -->
|
||||||
<el-form-item :label="$t('trials:audit:table:bodyPart')" prop="BodyPartForEdit" :rules="[
|
<el-form-item :label="$t('trials:audit:table:bodyPart')" prop="BodyPartForEdit" :rules="[
|
||||||
{
|
{
|
||||||
required: true,
|
required: studyForm.BodyPartForEditOther ? false : true,
|
||||||
message: $t('common:ruleMessage:specify'),
|
message: $t('common:ruleMessage:specify'),
|
||||||
trigger: 'blur',
|
trigger: 'blur',
|
||||||
},
|
},
|
||||||
|
@ -644,6 +644,8 @@
|
||||||
<el-checkbox v-for="bodyPart in trialBodyPartTypes" :key="bodyPart" :label="bodyPart">{{
|
<el-checkbox v-for="bodyPart in trialBodyPartTypes" :key="bodyPart" :label="bodyPart">{{
|
||||||
$fd('Bodypart', bodyPart, 'Code', BodyPart, 'Name')
|
$fd('Bodypart', bodyPart, 'Code', BodyPart, 'Name')
|
||||||
}}</el-checkbox>
|
}}</el-checkbox>
|
||||||
|
<el-input :placeholder="$t('trials:audit:placeholder:BodyPartForEditOther')"
|
||||||
|
v-model="studyForm.BodyPartForEditOther" style="width:150px;margin-left: 30px;"></el-input>
|
||||||
</el-checkbox-group>
|
</el-checkbox-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 序列数量 -->
|
<!-- 序列数量 -->
|
||||||
|
@ -742,7 +744,7 @@
|
||||||
<!-- 检查部位 -->
|
<!-- 检查部位 -->
|
||||||
<el-form-item :label="$t('trials:audit:table:nonDicomsBodypart')" prop="BodyParts" :rules="[
|
<el-form-item :label="$t('trials:audit:table:nonDicomsBodypart')" prop="BodyParts" :rules="[
|
||||||
{
|
{
|
||||||
required: true,
|
required: noneDicomForm.BodyPartForEditOther ? false : true,
|
||||||
message: $t('common:ruleMessage:specify'),
|
message: $t('common:ruleMessage:specify'),
|
||||||
trigger: 'blur',
|
trigger: 'blur',
|
||||||
},
|
},
|
||||||
|
@ -751,6 +753,8 @@
|
||||||
<el-checkbox v-for="bodyPart in trialBodyPartTypes" :key="bodyPart" :label="bodyPart">{{
|
<el-checkbox v-for="bodyPart in trialBodyPartTypes" :key="bodyPart" :label="bodyPart">{{
|
||||||
$fd('Bodypart', bodyPart, 'Code', BodyPart, 'Name')
|
$fd('Bodypart', bodyPart, 'Code', BodyPart, 'Name')
|
||||||
}}</el-checkbox>
|
}}</el-checkbox>
|
||||||
|
<el-input :placeholder="$t('trials:audit:placeholder:BodyPartForEditOther')"
|
||||||
|
v-model="noneDicomForm.BodyPartForEditOther" style="width:150px;margin-left: 30px;"></el-input>
|
||||||
</el-checkbox-group>
|
</el-checkbox-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 检查日期 -->
|
<!-- 检查日期 -->
|
||||||
|
@ -1018,7 +1022,8 @@ export default {
|
||||||
BodyPartForEdit: [],
|
BodyPartForEdit: [],
|
||||||
SeriesCount: null,
|
SeriesCount: null,
|
||||||
StudyTime: '',
|
StudyTime: '',
|
||||||
ModifyReason: ''
|
ModifyReason: '',
|
||||||
|
BodyPartForEditOther: ''
|
||||||
},
|
},
|
||||||
currentQCRow: {},
|
currentQCRow: {},
|
||||||
isAudit: false, // 审核过之后功能按钮禁用标识
|
isAudit: false, // 审核过之后功能按钮禁用标识
|
||||||
|
@ -1037,7 +1042,8 @@ export default {
|
||||||
Modality: '',
|
Modality: '',
|
||||||
ImageDate: '',
|
ImageDate: '',
|
||||||
StudyName: '',
|
StudyName: '',
|
||||||
ModifyReason: ''
|
ModifyReason: '',
|
||||||
|
BodyPartForEditOther: ''
|
||||||
},
|
},
|
||||||
subjectClinicalData: {},
|
subjectClinicalData: {},
|
||||||
moment,
|
moment,
|
||||||
|
@ -2155,7 +2161,9 @@ export default {
|
||||||
this.$set(this.studyForm, 'Modality', row.ModalityForEdit)
|
this.$set(this.studyForm, 'Modality', row.ModalityForEdit)
|
||||||
// this.studyForm.Modality = row.ModalityForEdit
|
// this.studyForm.Modality = row.ModalityForEdit
|
||||||
this.studyForm.BodyPartForEdit = bodyPart
|
this.studyForm.BodyPartForEdit = bodyPart
|
||||||
|
// this.studyForm.BodyPartForEditOther = BodyPartForEditOther
|
||||||
this.$set(this.studyForm, 'ModifyReason', '')
|
this.$set(this.studyForm, 'ModifyReason', '')
|
||||||
|
console.log(this.studyForm, 'this.studyForm')
|
||||||
},
|
},
|
||||||
// 更新拍片部位/拍片类型信息
|
// 更新拍片部位/拍片类型信息
|
||||||
handleUpdateStudyInfo() {
|
handleUpdateStudyInfo() {
|
||||||
|
@ -2171,6 +2179,7 @@ export default {
|
||||||
modality: this.studyForm.Modality,
|
modality: this.studyForm.Modality,
|
||||||
bodyPart: this.studyForm.BodyPart,
|
bodyPart: this.studyForm.BodyPart,
|
||||||
StudyName: this.studyForm.StudyName,
|
StudyName: this.studyForm.StudyName,
|
||||||
|
BodyPartForEditOther: this.studyForm.BodyPartForEditOther,
|
||||||
}
|
}
|
||||||
if (this.isAuditToEdit) {
|
if (this.isAuditToEdit) {
|
||||||
this.btnLoading = false
|
this.btnLoading = false
|
||||||
|
@ -2206,6 +2215,7 @@ export default {
|
||||||
ModifyReason: this.studyForm.ModifyReason,
|
ModifyReason: this.studyForm.ModifyReason,
|
||||||
Modality: this.studyForm.Modality,
|
Modality: this.studyForm.Modality,
|
||||||
BodyPart: this.studyForm.BodyPart,
|
BodyPart: this.studyForm.BodyPart,
|
||||||
|
BodyPartForEditOther: this.studyForm.BodyPartForEditOther,
|
||||||
},
|
},
|
||||||
signInfo
|
signInfo
|
||||||
}
|
}
|
||||||
|
@ -2241,7 +2251,7 @@ export default {
|
||||||
|
|
||||||
// 打开非Dicom信息编辑框
|
// 打开非Dicom信息编辑框
|
||||||
handleEditNoneDicomInfo(row) {
|
handleEditNoneDicomInfo(row) {
|
||||||
const { CodeView, Id, BodyPart, Modality, ImageDate, StudyName } = {
|
const { CodeView, Id, BodyPart, Modality, ImageDate, StudyName, BodyPartForEditOther } = {
|
||||||
...row,
|
...row,
|
||||||
}
|
}
|
||||||
this.noneDicomForm.StudyName = StudyName
|
this.noneDicomForm.StudyName = StudyName
|
||||||
|
@ -2252,6 +2262,7 @@ export default {
|
||||||
this.noneDicomForm.ImageDate = ImageDate
|
this.noneDicomForm.ImageDate = ImageDate
|
||||||
this.noneDicomForm.BodyParts = BodyPart.split(', ')
|
this.noneDicomForm.BodyParts = BodyPart.split(', ')
|
||||||
this.noneDicomForm.ModifyReason = null
|
this.noneDicomForm.ModifyReason = null
|
||||||
|
this.noneDicomForm.BodyPartForEditOther = BodyPartForEditOther
|
||||||
this.editNoneDicomVisible = true
|
this.editNoneDicomVisible = true
|
||||||
},
|
},
|
||||||
// 更新非Dicom部位/拍片类型信息
|
// 更新非Dicom部位/拍片类型信息
|
||||||
|
@ -2434,8 +2445,8 @@ export default {
|
||||||
})
|
})
|
||||||
this.open = window.open(routeData.href, '_blank')
|
this.open = window.open(routeData.href, '_blank')
|
||||||
},
|
},
|
||||||
getBodyPart(bodyPart) {
|
getBodyPart(bodyPart, other) {
|
||||||
if (!bodyPart) return ''
|
if (!bodyPart && !other) return ''
|
||||||
var separator = ','
|
var separator = ','
|
||||||
if (bodyPart.indexOf('|') > -1) {
|
if (bodyPart.indexOf('|') > -1) {
|
||||||
separator = '|'
|
separator = '|'
|
||||||
|
@ -2448,6 +2459,10 @@ export default {
|
||||||
var newArr = arr.map((i) => {
|
var newArr = arr.map((i) => {
|
||||||
return this.$fd('Bodypart', i.trim(), 'Code', this.BodyPart, 'Name')
|
return this.$fd('Bodypart', i.trim(), 'Code', this.BodyPart, 'Name')
|
||||||
})
|
})
|
||||||
|
if (other) {
|
||||||
|
newArr.push(other)
|
||||||
|
}
|
||||||
|
newArr = newArr.filter(Boolean)
|
||||||
return newArr.join(' | ')
|
return newArr.join(' | ')
|
||||||
},
|
},
|
||||||
openManuals() {
|
openManuals() {
|
||||||
|
|
Loading…
Reference in New Issue