阅片布局调整及中心调研更改
parent
4ad67e5501
commit
cd630a70fb
|
@ -61,7 +61,7 @@
|
|||
</el-form-item>
|
||||
<!-- 平均刻盘周期(天) -->
|
||||
<el-form-item :label="$t('trials:researchForm:form:engravingCycle')">
|
||||
<el-input-number v-model="form.AverageEngravingCycle" :disabled="!(state === 0 && userTypeEnumInt === 0) || isHistory" controls-position="right" :min="0" style="width:100%;" />
|
||||
<el-input-number v-if="!notShowFieldList.includes('AverageEngravingCycle')" v-model="form.AverageEngravingCycle" :disabled="!(state === 0 && userTypeEnumInt === 0) || isHistory" controls-position="right" :min="0" style="width:100%;" />
|
||||
</el-form-item>
|
||||
</div>
|
||||
<!-- 请确认参与本项目影像采集的影像技师具备对应的资质(如:“技师证”,对应设备的“大型设备上岗证”) -->
|
||||
|
|
|
@ -56,7 +56,7 @@
|
|||
<!-- <el-divider /> -->
|
||||
<!-- 平均刻盘周期(天) -->
|
||||
<el-form-item :label="$t('trials:researchForm:form:engravingCycle')">
|
||||
<el-input-number v-model="form.AverageEngravingCycle" :disabled="!(state === 0 && userTypeEnumInt === 0) || isHistory" controls-position="right" :min="0" />
|
||||
<el-input-number v-if="!notShowFieldList.includes('AverageEngravingCycle')" v-model="form.AverageEngravingCycle" :disabled="!(state === 0 && userTypeEnumInt === 0) || isHistory" controls-position="right" :min="0" />
|
||||
</el-form-item>
|
||||
<!-- 请确认参与本项目影像采集的影像技师具备对应的资质(如:“技师证”,对应设备的“大型设备上岗证”) -->
|
||||
<el-form-item v-if="!notShowFieldList.includes('IsConfirmImagingTechnologist')" :label="$t('trials:researchForm:form:isQualified')">
|
||||
|
|
|
@ -47,7 +47,14 @@
|
|||
>
|
||||
<svg-icon icon-class="arrow" class="svg-icon" />
|
||||
</div>
|
||||
|
||||
<!-- 矩形工具RectangleROITool -->
|
||||
<div
|
||||
:class="['tool-item', readingTaskState === 2 ? 'tool-disabled' : '', activeTool === 'RectangleROI' ? 'tool-item-active' : '']"
|
||||
:title="$t('trials:dicom-show:RectangleRoi')"
|
||||
@click.prevent="setAnnotateToolActive('RectangleROI')"
|
||||
>
|
||||
<svg-icon icon-class="rectangle" class="svg-icon" />
|
||||
</div>
|
||||
<!-- 自由曲线 -->
|
||||
<div
|
||||
:class="['tool-item', readingTaskState === 2 ? 'tool-disabled' : '', activeTool === 'PlanarFreehandROI' ? 'tool-item-active' : '']"
|
||||
|
@ -110,7 +117,7 @@
|
|||
>
|
||||
{{ `${taskInfo.SubjectCode} ${v.taskInfo.TaskBlindName} ` }}
|
||||
</h2>
|
||||
<div v-if="v.currentFileName">{{ v.currentFileName }}</div>
|
||||
<!-- <div v-if="v.currentFileName">{{ v.currentFileName }}</div> -->
|
||||
</div>
|
||||
<div
|
||||
v-if="taskInfo && taskInfo.IsReadingTaskViewInOrder === 1 && v.taskInfo"
|
||||
|
@ -142,9 +149,57 @@
|
|||
<div :style="{top: v.height + '%'}" class="slider" @click.stop.prevent="() => {return}" @mousedown.stop="sliderMousedown($event, index)" />
|
||||
</div>
|
||||
</div>
|
||||
<div v-show="v.fileType === 'application/pdf'" class="content">
|
||||
<div v-show="v.fileType === 'application/pdf' && fullScreenIndex === null " class="content flex_col">
|
||||
<div class="content-top" style="height: 50px;">
|
||||
<div class="left-top-text">
|
||||
<div
|
||||
v-if="v.taskInfo.IsExistsClinicalData"
|
||||
class="cd-info"
|
||||
:title="$t('trials:reading:button:clinicalData')"
|
||||
@click.stop="viewCD(v.taskInfo.VisitTaskId)"
|
||||
>
|
||||
<svg-icon icon-class="documentation" class="svg-icon" />
|
||||
</div>
|
||||
<h2
|
||||
v-if="taskInfo && taskInfo.IsReadingShowSubjectInfo && v.taskInfo"
|
||||
class="subject-info"
|
||||
>
|
||||
{{ `${taskInfo.SubjectCode} ${v.taskInfo.TaskBlindName} ` }}
|
||||
</h2>
|
||||
<!-- <div v-if="v.currentFileName">{{ v.currentFileName }}</div> -->
|
||||
</div>
|
||||
<div
|
||||
v-if="taskInfo && taskInfo.IsReadingTaskViewInOrder === 1 && v.taskInfo"
|
||||
class="top-center-tool"
|
||||
>
|
||||
<div class="toggle-visit-container">
|
||||
<div
|
||||
class="arrw_icon"
|
||||
:style="{ cursor: v.taskInfo.VisitTaskNum !== 0 ? 'pointer' : 'not-allowed', color: v.taskInfo.VisitTaskNum !== 0 ? '#fff': '#6b6b6b' }"
|
||||
@click.stop.prevent="toggleTask($event, v.taskInfo.VisitTaskNum, -1)"
|
||||
@dblclick.stop="preventDefault($event)"
|
||||
>
|
||||
<i class="el-icon-caret-left" />
|
||||
</div>
|
||||
<div class="arrow_text">
|
||||
{{ v.taskInfo.TaskBlindName }}
|
||||
</div>
|
||||
<div
|
||||
class="arrw_icon"
|
||||
:style="{ cursor: v.taskInfo.VisitTaskNum < taskInfo.VisitNum ? 'pointer' : 'not-allowed', color: v.taskInfo.VisitTaskNum < taskInfo.VisitNum ? '#fff': '#6b6b6b' }"
|
||||
@click.stop.prevent="toggleTask($event, v.taskInfo.VisitTaskNum, 1)"
|
||||
@dblclick.stop="preventDefault($event)"
|
||||
>
|
||||
<i class="el-icon-caret-right" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-main" style="flex: 1;">
|
||||
<iframe v-if="v.currentFilePath" :ref="`iframe-${index}`" :src="`/static/pdfjs/web/viewer.html?file=${OSSclientConfig.basePath}${v.currentFilePath}?index=${index}`" width="100%" height="100%" frameborder="0" crossorigin="anonymous" />
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -176,6 +231,7 @@ const {
|
|||
ZoomTool,
|
||||
PlanarRotateTool,
|
||||
ArrowAnnotateTool,
|
||||
RectangleROITool,
|
||||
PlanarFreehandROITool,
|
||||
EraserTool
|
||||
} = cornerstoneTools
|
||||
|
@ -344,6 +400,7 @@ export default {
|
|||
cornerstoneTools.addTool(ZoomTool)
|
||||
cornerstoneTools.addTool(PlanarRotateTool)
|
||||
cornerstoneTools.addTool(ArrowAnnotateTool)
|
||||
cornerstoneTools.addTool(RectangleROITool)
|
||||
cornerstoneTools.addTool(PlanarFreehandROITool)
|
||||
cornerstoneTools.addTool(EraserTool)
|
||||
|
||||
|
@ -364,6 +421,7 @@ export default {
|
|||
return doneChangingTextCallback(await this.customPrompt())
|
||||
}
|
||||
})
|
||||
toolGroup.addTool(RectangleROITool.toolName)
|
||||
toolGroup.addTool(PlanarFreehandROITool.toolName, {
|
||||
allowOpenContours: false
|
||||
// cachedStats: false
|
||||
|
@ -377,9 +435,11 @@ export default {
|
|||
toolGroup.setToolPassive(PlanarRotateTool.toolName)
|
||||
if (this.readingTaskState < 2) {
|
||||
toolGroup.setToolPassive(ArrowAnnotateTool.toolName)
|
||||
toolGroup.setToolPassive(RectangleROITool.toolName)
|
||||
toolGroup.setToolPassive(PlanarFreehandROITool.toolName)
|
||||
} else {
|
||||
toolGroup.setToolEnabled(ArrowAnnotateTool.toolName)
|
||||
toolGroup.setToolEnabled(RectangleROITool.toolName)
|
||||
toolGroup.setToolEnabled(PlanarFreehandROITool.toolName)
|
||||
}
|
||||
toolGroup.setToolPassive(EraserTool.toolName)
|
||||
|
@ -585,6 +645,8 @@ export default {
|
|||
},
|
||||
// 切换全屏
|
||||
toggleFullScreen(e, index) {
|
||||
const i = this.viewportInfos.findIndex(i => i.index === index)
|
||||
if (i === -1 && this.viewportInfos[i].fileType !== 'image/jpeg') return
|
||||
this.fullScreenIndex = this.fullScreenIndex === index ? null : index
|
||||
this.activeCanvasIndex = index
|
||||
},
|
||||
|
@ -685,7 +747,7 @@ export default {
|
|||
const { annotation } = e.detail
|
||||
if (!annotation) return
|
||||
if (!annotation.annotationId) return
|
||||
if (!annotation.data.contour.closed) return
|
||||
if (annotation.metadata.toolName === 'PlanarFreehandROI' && !annotation.data.contour.closed) return
|
||||
const i = this.viewportInfos.findIndex(i => i.index === this.activeCanvasIndex)
|
||||
if (i === -1) return
|
||||
if (this.viewportInfos[i].taskInfo.VisitTaskId !== this.taskInfo.VisitTaskId) return
|
||||
|
@ -711,7 +773,7 @@ export default {
|
|||
if (this.readingTaskState === 2) return
|
||||
const { annotation } = e.detail
|
||||
if (!annotation) return
|
||||
if (!annotation.data.contour.closed) return
|
||||
if (annotation.metadata.toolName === 'PlanarFreehandROI' && !annotation.data.contour.closed) return
|
||||
const i = this.viewportInfos.findIndex(i => i.index === this.activeCanvasIndex)
|
||||
if (i === -1) return
|
||||
if (this.viewportInfos[i].taskInfo.VisitTaskId !== this.taskInfo.VisitTaskId) return
|
||||
|
@ -885,7 +947,10 @@ export default {
|
|||
grid-column: 1 / -1;
|
||||
grid-row: 1 / -1;
|
||||
}
|
||||
|
||||
.flex_col {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.content {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="ps">
|
||||
<el-collapse v-model="activeNames">
|
||||
<el-collapse v-model="activeNames" @change="handleChange">
|
||||
<el-collapse-item v-for="(study, index) in studyList" :key="`${study.Id}`" :name="`${study.Id}`">
|
||||
<template slot="title">
|
||||
<div
|
||||
|
@ -48,7 +48,7 @@
|
|||
<el-image
|
||||
style="width: 100%;height: 100%;"
|
||||
:src="`${OSSclientConfig.basePath}${k.Path}?x-oss-process=image/resize,w_50,h_50/format,png`"
|
||||
fit="fill"
|
||||
fit="contain"
|
||||
crossorigin="anonymous"
|
||||
/>
|
||||
</div>
|
||||
|
@ -90,7 +90,7 @@ export default {
|
|||
this.studyList = this.visitTaskInfo.StudyList
|
||||
if (this.studyList.length === 0) return
|
||||
this.$nextTick(() => {
|
||||
this.activeNames.push(this.studyList[0].Id)
|
||||
this.activeStudy(this.studyList[0].Id)
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
|
@ -98,7 +98,7 @@ export default {
|
|||
setInitActiveFile() {
|
||||
if (this.studyList.length === 0) return
|
||||
this.$nextTick(() => {
|
||||
this.activeNames.push(this.studyList[0].Id)
|
||||
this.activeStudy(this.studyList[0].Id)
|
||||
this.selectFile(this.studyList[0], 0, 0)
|
||||
})
|
||||
},
|
||||
|
@ -113,12 +113,19 @@ export default {
|
|||
if (this.studyList.length === 0) return
|
||||
const i = this.studyList.findIndex(i => i.Id === obj.studyId)
|
||||
if (i === -1) return
|
||||
this.activeNames.push(obj.studyId)
|
||||
this.activeStudy(obj.studyId)
|
||||
this.activeStudyIndex = i
|
||||
const fileList = this.studyList[i].NoneDicomStudyFileList
|
||||
const fIndex = fileList.findIndex(f => f.Path === obj.path)
|
||||
if (fIndex === -1) return
|
||||
this.activeFileIndex = fIndex
|
||||
},
|
||||
activeStudy(id) {
|
||||
if (this.activeNames.indexOf(id) > -1) return
|
||||
this.activeNames.push(id)
|
||||
},
|
||||
handleChange(v) {
|
||||
console.log(v)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue