Merge branch 'main' of https://gitea.frp.extimaging.com/XCKJ/irc_web into main
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
commit
8ff9e3b232
|
|
@ -304,7 +304,7 @@ export default {
|
|||
cornerstoneTools.addToolForElement(element, Note_RectangleRoiTool, {
|
||||
configuration: {
|
||||
color: '#f00',
|
||||
lineWidth: 0.5,
|
||||
lineWidth: 2,
|
||||
drawHandles: false,
|
||||
fillColor: 'rgba(0, 0, 0, 1)',
|
||||
},
|
||||
|
|
|
|||
|
|
@ -9,10 +9,10 @@
|
|||
<div class="Anonymous" v-if="isAnonymous">
|
||||
<div
|
||||
:class="{ btn: true, activeBtn: activeTool === 'Note_RectangleRoi' && !isComparison, isNoted: isComparison }"
|
||||
@click="setToolActive($event, 'Note_RectangleRoi')">{{
|
||||
@click="setToolActive($event, 'Note_RectangleRoi', true)">{{
|
||||
$t('DicomViewer:anonymous:Note_RectangleRoi') }}</div>
|
||||
<div :class="{ btn: true, activeBtn: activeTool === 'Eraser' && !isComparison, isNoted: isComparison }"
|
||||
@click="setToolActive($event, 'Eraser')">{{
|
||||
@click="setToolActive($event, 'Eraser', true)">{{
|
||||
$t('DicomViewer:anonymous:Eraser') }}
|
||||
</div>
|
||||
<div :class="{ btn: true, isNoted: isComparison }" @click="anonymousImage(false)">{{
|
||||
|
|
@ -299,7 +299,8 @@
|
|||
v-if="type === 'Study' && modality && ['PT、CT', 'CT、PT', 'PET-CT'].includes(modality)">
|
||||
<div class="sideTool-title">{{ $t('trials:tab:patientData') }}</div>
|
||||
<div class="sideTool-wrapper">
|
||||
<el-form ref="patientForm" size="mini" :model="formData" :rules="rules" label-width="150" v-loading="formLoading">
|
||||
<el-form ref="patientForm" size="mini" :model="formData" :rules="rules" label-width="150"
|
||||
v-loading="formLoading">
|
||||
<!-- 性别 -->
|
||||
<el-form-item :label="$t('trials:ptData:label:patientSex')" prop="PatientSex">
|
||||
<el-select v-model="formData.PatientSex" :placeholder="$t('common:ruleMessage:select')"
|
||||
|
|
@ -401,10 +402,10 @@ export default {
|
|||
handler(v) {
|
||||
if (v) {
|
||||
if (this.type === 'Study' && ['PT、CT', 'CT、PT', 'PET-CT'].includes(v)) {
|
||||
this.$nextTick(()=>{
|
||||
this.$nextTick(() => {
|
||||
this.getPatientInfo()
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -641,7 +642,7 @@ export default {
|
|||
})
|
||||
})
|
||||
let res = await this.studyMaskImage(data)
|
||||
if (!res) return false
|
||||
if (!res || res.length <= 0) return this.$confirm(this.$t("DicomViewer:anonymous:studyMaskImageFail"))
|
||||
this.$emit("update:loading", true)
|
||||
if (!isAll) {
|
||||
let strs = image.imageId.split("?")
|
||||
|
|
@ -839,8 +840,25 @@ export default {
|
|||
}
|
||||
})
|
||||
},
|
||||
setToolActive(e, toolName) {
|
||||
setToolActive(e, toolName, isNotSetClassName = false) {
|
||||
const elements = document.querySelectorAll('.dicom-item')
|
||||
if (isNotSetClassName) {
|
||||
const scope = this
|
||||
if (scope.activeTool) {
|
||||
Array.from(elements).forEach((element, index) => {
|
||||
if (element.style.display !== 'none') {
|
||||
scope.$refs[`dicomCanvas${index}`].setToolPassive(scope.activeTool)
|
||||
}
|
||||
})
|
||||
}
|
||||
if (scope.activeTool === toolName) return scope.activeTool = null
|
||||
scope.activeTool = toolName
|
||||
return Array.from(elements).forEach((element, index) => {
|
||||
if (element.style.display !== 'none') {
|
||||
scope.$refs[`dicomCanvas${index}`].setToolActive(toolName)
|
||||
}
|
||||
})
|
||||
}
|
||||
if (e.currentTarget.classList.contains('activeTool')) {
|
||||
e.currentTarget.classList.remove('activeTool')
|
||||
const scope = this
|
||||
|
|
@ -1020,7 +1038,7 @@ export default {
|
|||
try {
|
||||
this.formLoading = true
|
||||
let studyId = this.$route.query.studyId
|
||||
let res = await getPatientInfo({studyId: studyId})
|
||||
let res = await getPatientInfo({ studyId: studyId })
|
||||
this.formData = {
|
||||
Id: res.Result.Id || '',
|
||||
PatientSex: res.Result.PatientSex || '',
|
||||
|
|
@ -1035,7 +1053,7 @@ export default {
|
|||
// 缓存 PT 临床数据:用于 2D SUV 计算时优先使用接口/人工录入值
|
||||
this.cachePtClinicalDataToInstances()
|
||||
this.formLoading = false
|
||||
} catch(e) {
|
||||
} catch (e) {
|
||||
this.formLoading = false
|
||||
console.log(e)
|
||||
}
|
||||
|
|
@ -1161,6 +1179,7 @@ export default {
|
|||
cursor: pointer;
|
||||
padding: 5px 10px;
|
||||
border: 1px solid rgba(255, 255, 255, .7);
|
||||
color: #000;
|
||||
|
||||
&:hover {
|
||||
background-color: rgba(255, 255, 255, .5);
|
||||
|
|
@ -1168,7 +1187,8 @@ export default {
|
|||
}
|
||||
|
||||
.activeBtn {
|
||||
background-color: rgba(255, 255, 255, .5);
|
||||
background-color: #16477b90;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.isNoted {
|
||||
|
|
|
|||
|
|
@ -41,10 +41,10 @@
|
|||
<div v-if="series" class="right-bottom-text">
|
||||
<div v-show="imageInfo.location">Location: {{
|
||||
`${Number(imageInfo.location).toFixed(digitPlaces)} mm`
|
||||
}}</div>
|
||||
}}</div>
|
||||
<div v-show="imageInfo.sliceThickness">Slice Thickness: {{
|
||||
`${Number(imageInfo.sliceThickness).toFixed(digitPlaces)} mm`
|
||||
}}</div>
|
||||
}}</div>
|
||||
<div v-show="imageInfo.wwwc">WW/WL: {{ imageInfo.wwwc }}</div>
|
||||
</div>
|
||||
<div class="orientation-top">
|
||||
|
|
@ -658,13 +658,12 @@ export default {
|
|||
}
|
||||
})
|
||||
viewport.render()
|
||||
if (this.series.Modality === 'PT') {
|
||||
if (this.series.Modality === 'PT' || this.series.Modality === 'NM') {
|
||||
setTimeout(() => {
|
||||
viewport.resetCamera({ resetPan: true, resetZoom: true, resetToCenter: true })
|
||||
viewport.resetProperties()
|
||||
viewport.setProperties({ voiRange: { upper: 5, lower: 0 } })
|
||||
// viewport.resetCamera({ resetPan: true, resetZoom: true, resetToCenter: true })
|
||||
// viewport.resetProperties()
|
||||
viewport.setProperties({ voiRange: { upper: 5, lower: 0 }, invert: true }, this.volumeId)
|
||||
viewport.render()
|
||||
renderingEngine.render()
|
||||
}, 100)
|
||||
}
|
||||
await renderSegmentation(this.series, this.series.TaskInfo, this.viewportId, this.SegmentConfig, this.renderingEngineId, null, this.actionConfiguration, this.segmentationId, this.segmentIndex)
|
||||
|
|
|
|||
|
|
@ -3052,7 +3052,6 @@ export default {
|
|||
if (this.readingTool !== 3) {
|
||||
viewport.resetCamera({ resetPan: true, resetZoom: true, resetToCenter: true, resetRotation: true })
|
||||
}
|
||||
viewport.resetProperties()
|
||||
if (this.isMPR) {
|
||||
let volume = cache.getVolume(this.$refs[`${this.viewportKey}-${this.activeViewportIndex}`][0].volumeId)
|
||||
const voi = metaData.get('voiLutModule', volume._imageIds[Math.ceil((volume._imageIds.length - 1) / 2)])
|
||||
|
|
@ -3068,9 +3067,12 @@ export default {
|
|||
|
||||
return this.$refs[`${this.viewportKey}-${this.activeViewportIndex}`][0].setFullScreen(index)
|
||||
}
|
||||
// viewport.resetProperties()
|
||||
this.setToolsPassive()
|
||||
if (this.readingTool === 3 && this.$refs[`${this.viewportKey}-${this.activeViewportIndex}`][0].series.Modality === 'PT') {
|
||||
viewport.setProperties({ voiRange: { upper: 5, lower: 0 } })
|
||||
viewport.setProperties({ voiRange: { upper: 5, lower: 0 }, invert: true }, this.$refs[`${this.viewportKey}-${this.activeViewportIndex}`][0].volumeId)
|
||||
} else {
|
||||
viewport.resetProperties()
|
||||
}
|
||||
viewport.render()
|
||||
// renderingEngine.render()
|
||||
|
|
@ -3405,6 +3407,7 @@ export default {
|
|||
// 切换全屏
|
||||
async toggleFullScreen(e, index) {
|
||||
if (this.isDelay && (this.readingTool === 3 || this.isMPR)) return false
|
||||
if (this.readingTool === 3 && this.isMPR) return false
|
||||
if (this.readingTool === 3) {
|
||||
let res = await this.changeScreenSave()
|
||||
if (!res) return false
|
||||
|
|
|
|||
|
|
@ -59,10 +59,10 @@
|
|||
<div v-if="series" class="right-bottom-text">
|
||||
<div v-show="imageInfo.location">Location: {{
|
||||
`${Number(imageInfo.location).toFixed(digitPlaces)} mm`
|
||||
}}</div>
|
||||
}}</div>
|
||||
<div v-show="imageInfo.sliceThickness">Slice Thickness: {{
|
||||
`${Number(imageInfo.sliceThickness).toFixed(digitPlaces)} mm`
|
||||
}}</div>
|
||||
}}</div>
|
||||
<div v-show="imageInfo.wwwc">WW/WL: {{ imageInfo.wwwc }}</div>
|
||||
</div>
|
||||
<div class="orientation-top">
|
||||
|
|
@ -706,11 +706,10 @@ export default {
|
|||
viewport.render()
|
||||
if (this.series.Modality === 'PT' || this.series.Modality === 'NM') {
|
||||
setTimeout(() => {
|
||||
viewport.resetCamera({ resetPan: true, resetZoom: true, resetToCenter: true })
|
||||
viewport.resetProperties()
|
||||
viewport.setProperties({ voiRange: { upper: 5, lower: 0 } })
|
||||
// viewport.resetCamera({ resetPan: true, resetZoom: true, resetToCenter: true })
|
||||
// viewport.resetProperties()
|
||||
viewport.setProperties({ voiRange: { upper: 5, lower: 0 }, invert: true }, this.volumeId)
|
||||
viewport.render()
|
||||
renderingEngine.render()
|
||||
}, 100)
|
||||
}
|
||||
await renderSegmentation(this.series, this.series.TaskInfo, this.viewportId, this.SegmentConfig, this.renderingEngineId, data.segment, this.actionConfiguration, this.segmentationId, this.segmentIndex)
|
||||
|
|
|
|||
Loading…
Reference in New Issue