Merge branch 'main' of https://gitea.frp.extimaging.com/XCKJ/irc_web into main
continuous-integration/drone/push Build is running
Details
continuous-integration/drone/push Build is running
Details
commit
e0ecd3f4ac
|
|
@ -77,12 +77,10 @@ export default {
|
||||||
},
|
},
|
||||||
async init() {
|
async init() {
|
||||||
let studyList = Object.assign(this.visitInfo.StudyList, {})
|
let studyList = Object.assign(this.visitInfo.StudyList, {})
|
||||||
console.log(studyList, 'studyList')
|
|
||||||
let s = await this.getSegmentationList()
|
let s = await this.getSegmentationList()
|
||||||
this.segmentionList = s
|
this.segmentionList = s
|
||||||
let StudyIds = s.map(item => item.StudyId)
|
let StudyIds = s.map(item => item.StudyId)
|
||||||
let SeriesIds = s.map(item => item.SeriesId)
|
let SeriesIds = s.map(item => item.SeriesId)
|
||||||
console.log(SeriesIds, 'SeriesIds')
|
|
||||||
studyList = studyList.filter(item => StudyIds.includes(item.StudyId))
|
studyList = studyList.filter(item => StudyIds.includes(item.StudyId))
|
||||||
studyList.forEach(study => {
|
studyList.forEach(study => {
|
||||||
study.SeriesArr = study.SeriesList.filter(item => SeriesIds.includes(item.Id))
|
study.SeriesArr = study.SeriesList.filter(item => SeriesIds.includes(item.Id))
|
||||||
|
|
|
||||||
|
|
@ -23,9 +23,9 @@
|
||||||
:title="$t('trials:dicom-show:Eraser')" @click.prevent="setToolActive('CircularEraser')">
|
:title="$t('trials:dicom-show:Eraser')" @click.prevent="setToolActive('CircularEraser')">
|
||||||
<svg-icon icon-class="clear" class="svg-icon" />
|
<svg-icon icon-class="clear" class="svg-icon" />
|
||||||
</div>
|
</div>
|
||||||
<div :class="['tool-item']">
|
<!-- <div :class="['tool-item']">
|
||||||
<input type="file" @change="beginScanFiles($event)">
|
<input type="file" @change="beginScanFiles($event)">
|
||||||
</div>
|
</div> -->
|
||||||
</div>
|
</div>
|
||||||
<div class="ConfigBox">
|
<div class="ConfigBox">
|
||||||
<div class="EraserConfig" v-if="activeTool === 'CircularEraser' || activeTool === 'CircularBrush'">
|
<div class="EraserConfig" v-if="activeTool === 'CircularEraser' || activeTool === 'CircularBrush'">
|
||||||
|
|
@ -86,12 +86,11 @@
|
||||||
$t('trials:reading:Segmentations:title:InactiveSegmentationsShow')
|
$t('trials:reading:Segmentations:title:InactiveSegmentationsShow')
|
||||||
}}</span>
|
}}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="SegmentConfig">
|
<!-- <div class="SegmentConfig" v-if="SegmentConfig.InactiveSegmentations.show">
|
||||||
<span>{{ $t('trials:reading:Segmentations:title:Opacity') }}</span>
|
<span>{{ $t('trials:reading:Segmentations:title:Opacity') }}</span>
|
||||||
<el-slider v-model="SegmentConfig.InactiveSegmentations.fillAlpha" show-input :step="0.1"
|
<el-slider v-model="SegmentConfig.InactiveSegmentations.fillAlpha" show-input :step="0.1"
|
||||||
:max="1" input-size="mini" :show-input-controls="false"
|
:max="1" input-size="mini" :show-input-controls="false" />
|
||||||
v-if="SegmentConfig.InactiveSegmentations.show" />
|
</div> -->
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<template v-if="segmentList.length > 0">
|
<template v-if="segmentList.length > 0">
|
||||||
<div class="SegmentGroupBox">
|
<div class="SegmentGroupBox">
|
||||||
|
|
@ -127,7 +126,7 @@
|
||||||
@click.stop="viewSegmentGroup(segmentList.find(i => i.segmentationId === segmentationId))" />
|
@click.stop="viewSegmentGroup(segmentList.find(i => i.segmentationId === segmentationId))" />
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
:style="`overflow-y: auto;max-height:${showSegmentConfig ? (SegmentHight - 260) : SegmentHight}px;`">
|
:style="`overflow-y: auto;max-height:${showSegmentConfig ? (SegmentHight - 220) : SegmentHight}px;`">
|
||||||
<div :class="['SegmentBox', item && item.segmentIndex === segmentIndex ? 'SegmentBox_active' : '']"
|
<div :class="['SegmentBox', item && item.segmentIndex === segmentIndex ? 'SegmentBox_active' : '']"
|
||||||
v-for="(item) in curSegmentGroup.segments"
|
v-for="(item) in curSegmentGroup.segments"
|
||||||
:key="`${item.segmentationId}_${item.segmentIndex}`" @click.stop="selectSegment(item)">
|
:key="`${item.segmentationId}_${item.segmentIndex}`" @click.stop="selectSegment(item)">
|
||||||
|
|
@ -146,7 +145,7 @@
|
||||||
<div class="btnBox">
|
<div class="btnBox">
|
||||||
<svg-icon :icon-class="!item.bidirectionalView ? 'eye' : 'eye-open'"
|
<svg-icon :icon-class="!item.bidirectionalView ? 'eye' : 'eye-open'"
|
||||||
style="color:#000;margin-right: 5px;cursor: pointer;"
|
style="color:#000;margin-right: 5px;cursor: pointer;"
|
||||||
@click.stop="viewBidirectional(item, !item.bidirectionalView)" />
|
@click.stop="viewBidirectional([item], !item.bidirectionalView)" />
|
||||||
<svg-icon icon-class="jumpto" style="color:#000;cursor: pointer;"
|
<svg-icon icon-class="jumpto" style="color:#000;cursor: pointer;"
|
||||||
@click.stop="jumpBidirectional(item)" />
|
@click.stop="jumpBidirectional(item)" />
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -304,7 +303,7 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.SegmentHight = window.innerHeight * 0.4;
|
this.SegmentHight = window.innerHeight > 900 ? window.innerHeight * 0.5 : window.innerHeight * 0.4;
|
||||||
this.statsKey = getCustomizeStandardsSegmentDicomTools('Labelmap')[0].props.filter(item => item !== 'width' && item !== 'length')
|
this.statsKey = getCustomizeStandardsSegmentDicomTools('Labelmap')[0].props.filter(item => item !== 'width' && item !== 'length')
|
||||||
// console.log(segmentation, 'segmentation')
|
// console.log(segmentation, 'segmentation')
|
||||||
// console.log(annotation, 'annotation')
|
// console.log(annotation, 'annotation')
|
||||||
|
|
@ -465,10 +464,14 @@ export default {
|
||||||
this.showSegmentConfig = !this.showSegmentConfig
|
this.showSegmentConfig = !this.showSegmentConfig
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
viewBidirectional(item, view) {
|
viewBidirectional(arr, view) {
|
||||||
let bidirectional = annotation.state.getAllAnnotations().find(i => i.metadata.segmentationId === item.segmentationId && i.metadata.segmentIndex === item.segmentIndex && i.metadata.toolName === "SegmentBidirectional");
|
for (let j = 0; j < arr.length; j++) {
|
||||||
annotation.visibility.setAnnotationVisibility(bidirectional.annotationUID, view)
|
let item = arr[j]
|
||||||
item.bidirectionalView = view
|
let bidirectional = annotation.state.getAllAnnotations().find(i => i.metadata.segmentationId === item.segmentationId && i.metadata.segmentIndex === item.segmentIndex && i.metadata.toolName === "SegmentBidirectional");
|
||||||
|
item.bidirectionalView = view
|
||||||
|
if (!bidirectional) return false
|
||||||
|
annotation.visibility.setAnnotationVisibility(bidirectional.annotationUID, view)
|
||||||
|
}
|
||||||
this.resetViewport()
|
this.resetViewport()
|
||||||
},
|
},
|
||||||
jumpBidirectional(item) {
|
jumpBidirectional(item) {
|
||||||
|
|
@ -496,10 +499,12 @@ export default {
|
||||||
);
|
);
|
||||||
})
|
})
|
||||||
item.view = view
|
item.view = view
|
||||||
|
|
||||||
item.segments.forEach(i => {
|
item.segments.forEach(i => {
|
||||||
i.view = view
|
i.view = view
|
||||||
this.viewBidirectional(i, view)
|
// this.viewBidirectional(i, view)
|
||||||
})
|
})
|
||||||
|
this.viewBidirectional(item.segments, view)
|
||||||
},
|
},
|
||||||
viewSegment(item, view) {
|
viewSegment(item, view) {
|
||||||
this.viewprotIds.forEach(id => {
|
this.viewprotIds.forEach(id => {
|
||||||
|
|
@ -509,7 +514,7 @@ export default {
|
||||||
}, item.segmentIndex, view)
|
}, item.segmentIndex, view)
|
||||||
})
|
})
|
||||||
item.view = view
|
item.view = view
|
||||||
this.viewBidirectional(item, view)
|
this.viewBidirectional([item], view)
|
||||||
this.$emit('setToolsPassive')
|
this.$emit('setToolsPassive')
|
||||||
},
|
},
|
||||||
lockSegment(item, lock) {
|
lockSegment(item, lock) {
|
||||||
|
|
@ -531,7 +536,7 @@ export default {
|
||||||
segmentation.activeSegmentation.setActiveSegmentation(id, this.segmentationId)
|
segmentation.activeSegmentation.setActiveSegmentation(id, this.segmentationId)
|
||||||
})
|
})
|
||||||
this.selectSegment({ segmentationId: this.segmentationId, segmentIndex: 1 })
|
this.selectSegment({ segmentationId: this.segmentationId, segmentIndex: 1 })
|
||||||
// this.changeSegmentConfig()
|
this.readingSegmentByConfig()
|
||||||
},
|
},
|
||||||
async addSegmentGroup() {
|
async addSegmentGroup() {
|
||||||
let viewprotIds = this.viewprotIds
|
let viewprotIds = this.viewprotIds
|
||||||
|
|
@ -738,17 +743,16 @@ export default {
|
||||||
// 切换非当前分组分割标记显示
|
// 切换非当前分组分割标记显示
|
||||||
changeInactiveSegmentShow() {
|
changeInactiveSegmentShow() {
|
||||||
let segmentList = this.segmentList.filter(item => item.segmentationId !== this.segmentationId)
|
let segmentList = this.segmentList.filter(item => item.segmentationId !== this.segmentationId)
|
||||||
segmentList.forEach(segment => {
|
this.viewprotIds.forEach(id => {
|
||||||
this.viewprotIds.forEach(id => {
|
segmentation.config.visibility.setSegmentationRepresentationVisibility(
|
||||||
segmentation.config.style.setStyle(
|
id,
|
||||||
{
|
{
|
||||||
type: csToolsEnums.SegmentationRepresentations.Labelmap,
|
segmentationId: this.segmentationId,
|
||||||
segmentationId: segment.segmentationId,
|
type: csToolsEnums.SegmentationRepresentations.Labelmap,
|
||||||
},
|
},
|
||||||
{
|
true
|
||||||
fillAlpha: Number(this.SegmentConfig.InactiveSegmentations.fillAlpha),
|
);
|
||||||
}
|
segmentList.forEach(segment => {
|
||||||
)
|
|
||||||
segmentation.config.visibility.setSegmentationRepresentationVisibility(
|
segmentation.config.visibility.setSegmentationRepresentationVisibility(
|
||||||
id,
|
id,
|
||||||
{
|
{
|
||||||
|
|
@ -757,9 +761,16 @@ export default {
|
||||||
},
|
},
|
||||||
this.SegmentConfig.InactiveSegmentations.show
|
this.SegmentConfig.InactiveSegmentations.show
|
||||||
);
|
);
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
})
|
})
|
||||||
|
segmentList.forEach(segment => {
|
||||||
|
this.viewBidirectional(segment.segments, this.SegmentConfig.InactiveSegmentations.show)
|
||||||
|
})
|
||||||
|
let segments = this.segmentList.find(item => item.segmentationId === this.segmentationId).segments
|
||||||
|
this.viewBidirectional(segments, true)
|
||||||
|
|
||||||
},
|
},
|
||||||
// 更改分割标记显示模式
|
// 更改分割标记显示模式
|
||||||
changeSegmentConfig(renderOutline, renderFill) {
|
changeSegmentConfig(renderOutline, renderFill) {
|
||||||
|
|
@ -970,6 +981,7 @@ export default {
|
||||||
return obj
|
return obj
|
||||||
},
|
},
|
||||||
readingSegmentByConfig() {
|
readingSegmentByConfig() {
|
||||||
|
this.changeInactiveSegmentShow()
|
||||||
segmentation.config.style.setStyle(
|
segmentation.config.style.setStyle(
|
||||||
{
|
{
|
||||||
type: csToolsEnums.SegmentationRepresentations.Labelmap,
|
type: csToolsEnums.SegmentationRepresentations.Labelmap,
|
||||||
|
|
@ -981,7 +993,6 @@ export default {
|
||||||
fillAlpha: Number(this.SegmentConfig.fillAlpha),
|
fillAlpha: Number(this.SegmentConfig.fillAlpha),
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
this.changeInactiveSegmentShow()
|
|
||||||
},
|
},
|
||||||
setBrushSize() {
|
setBrushSize() {
|
||||||
const toolGroupId = this.isMPR ? this.volumeToolGroupId : `${this.viewportKey}-${this.activeViewportIndex}`
|
const toolGroupId = this.isMPR ? this.volumeToolGroupId : `${this.viewportKey}-${this.activeViewportIndex}`
|
||||||
|
|
@ -1001,7 +1012,6 @@ export default {
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
segmentation.addSegmentations([
|
segmentation.addSegmentations([
|
||||||
{
|
{
|
||||||
segmentationId,
|
segmentationId,
|
||||||
|
|
@ -1624,11 +1634,11 @@ export default {
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .el-slider__input {
|
::v-deep .el-slider__input {
|
||||||
width: 50px;
|
width: 60px;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .el-slider__runway.show-input {
|
::v-deep .el-slider__runway.show-input {
|
||||||
margin-right: 60px;
|
margin-right: 70px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -188,10 +188,10 @@
|
||||||
v-if="question.ImageMarkTypeEnum === 1">
|
v-if="question.ImageMarkTypeEnum === 1">
|
||||||
<el-input type="text" @change="(val) => { formItemNumberChange(val, question) }"
|
<el-input type="text" @change="(val) => { formItemNumberChange(val, question) }"
|
||||||
@input="numberInput(question.Id)"
|
@input="numberInput(question.Id)"
|
||||||
@blur="questionsMarkStatus[question.Id] && questionsMarkStatus[question.Id].isMarked ? () => { } : handleMarkedQsBlur(questionForm[question.Id], questionForm, question.Id, question)"
|
@blur="questionsSegmentMarkStatus[question.Id] ? () => { } : handleMarkedQsBlur(questionForm[question.Id], questionForm, question.Id, question)"
|
||||||
v-model="questionForm[question.Id]"
|
v-model="questionForm[question.Id]"
|
||||||
:title="questionsMarkStatus[question.Id] ? questionsMarkStatus[question.Id].OrderMarkName : question.Remark"
|
:title="questionsSegmentMarkStatus[question.Id] ? `${questionsSegmentMarkStatus[question.Id].SegmentationName}_${questionsSegmentMarkStatus[question.Id].SegmentName}` : question.Remark"
|
||||||
:disabled="(questionsMarkStatus[question.Id] && questionsMarkStatus[question.Id].isMarked && question.ImageMarkEnum === 2) || question.ImageMarkEnum === 1 || readingTaskState === 2"
|
:disabled="(questionsSegmentMarkStatus[question.Id] && question.ImageMarkEnum === 2) || question.ImageMarkEnum === 1 || readingTaskState === 2"
|
||||||
style="width: 150px;margin-right: 5px;">
|
style="width: 150px;margin-right: 5px;">
|
||||||
<template v-if="question.Unit !== 0" slot="append">
|
<template v-if="question.Unit !== 0" slot="append">
|
||||||
{{ question.Unit !== 4 ? $fd('ValueUnit', question.Unit) : question.CustomUnit }}
|
{{ question.Unit !== 4 ? $fd('ValueUnit', question.Unit) : question.CustomUnit }}
|
||||||
|
|
|
||||||
|
|
@ -577,9 +577,9 @@ export default {
|
||||||
this.questionsSegmentMarkStatus = {}
|
this.questionsSegmentMarkStatus = {}
|
||||||
list.forEach(item => {
|
list.forEach(item => {
|
||||||
if (item.TableQuestionId && item.RowId) {
|
if (item.TableQuestionId && item.RowId) {
|
||||||
this.$set(this.questionsSegmentMarkStatus, `${item.RowId}_${item.TableQuestionId}`, item.SegmentId)
|
this.$set(this.questionsSegmentMarkStatus, `${item.RowId}_${item.TableQuestionId}`, { SegmentId: item.SegmentId, SegmentationName: item.SegmentationName, SegmentName: item.SegmentName, })
|
||||||
} else {
|
} else {
|
||||||
this.$set(this.questionsSegmentMarkStatus, item.QuestionId, item.SegmentId)
|
this.$set(this.questionsSegmentMarkStatus, item.QuestionId, { SegmentId: item.SegmentId, SegmentationName: item.SegmentationName, SegmentName: item.SegmentName, })
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
|
|
||||||
|
|
@ -111,10 +111,10 @@
|
||||||
v-if="question.ImageMarkTypeEnum === 1">
|
v-if="question.ImageMarkTypeEnum === 1">
|
||||||
<el-input type="text" @change="(val) => { formItemNumberChange(val, question) }"
|
<el-input type="text" @change="(val) => { formItemNumberChange(val, question) }"
|
||||||
@input="numberInput(question.Id)"
|
@input="numberInput(question.Id)"
|
||||||
@blur="questionsMarkStatus[question.Id] && questionsMarkStatus[question.Id].isMarked ? () => { } : handleMarkedQsBlur(questionForm[question.Id], questionForm, question.Id, question)"
|
@blur="questionsSegmentMarkStatus[rowId ? `${rowId}_${question.Id}` : question.Id] ? () => { } : handleMarkedQsBlur(questionForm[question.Id], questionForm, question.Id, question)"
|
||||||
v-model="questionForm[question.Id]"
|
v-model="questionForm[question.Id]"
|
||||||
:title="questionsMarkStatus[rowId ? `${rowId}_${question.Id}` : question.Id] ? questionsMarkStatus[rowId ? `${rowId}_${question.Id}` : question.Id].OrderMarkName : question.Remark"
|
:title="questionsSegmentMarkStatus[rowId ? `${rowId}_${question.Id}` : question.Id] ? `${questionsSegmentMarkStatus[rowId ? `${rowId}_${question.Id}` : question.Id].SegmentationName}_${questionsSegmentMarkStatus[rowId ? `${rowId}_${question.Id}` : question.Id].SegmentName}` : question.Remark"
|
||||||
:disabled="(questionsMarkStatus[question.Id] && questionsMarkStatus[question.Id].isMarked && question.ImageMarkEnum === 2) || question.ImageMarkEnum === 1 || question.IsPreinstall"
|
:disabled="(questionsSegmentMarkStatus[rowId ? `${rowId}_${question.Id}` : question.Id] && question.ImageMarkEnum === 2) || question.ImageMarkEnum === 1 || question.IsPreinstall"
|
||||||
style="width: 150px;margin-right: 5px;">
|
style="width: 150px;margin-right: 5px;">
|
||||||
<template v-if="question.Unit !== 0" slot="append">
|
<template v-if="question.Unit !== 0" slot="append">
|
||||||
{{ question.Unit !== 4 ? $fd('ValueUnit', question.Unit) : question.CustomUnit }}
|
{{ question.Unit !== 4 ? $fd('ValueUnit', question.Unit) : question.CustomUnit }}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue