Compare commits

...

4 Commits

Author SHA1 Message Date
wangxiaoshuang 365791624e 新增自动计算规则绝对值
continuous-integration/drone/push Build encountered an error Details
2025-12-11 11:02:10 +08:00
wangxiaoshuang d7a8112441 导表添加 2025-12-11 11:01:30 +08:00
wangxiaoshuang d05ea6c28d oct表单父项修改子项清空 2025-12-11 11:01:02 +08:00
wangxiaoshuang 74547d7bff dicom多帧文件解析修改 2025-12-11 11:00:25 +08:00
9 changed files with 81 additions and 29 deletions

View File

@ -8535,7 +8535,7 @@
for (i = 0; i < frames; i++) {
var _needsPadding = Boolean(value[i].byteLength & 1);
startOffset.push(binaryStream.size);
// startOffset.push(binaryStream.size);
var frameBuffer = value[i],
frameStream = new ReadBufferStream(frameBuffer);
var fragmentsLength = 1;

View File

@ -157,8 +157,8 @@
<el-dialog v-if="addOrEdit.visible" :visible.sync="addOrEdit.visible" :close-on-click-modal="false"
:title="addOrEdit.title" width="500px">
<el-form ref="tableQsForm" v-loading="loading" :model="qsForm" size="small">
<QuestionTableFormItem v-for="item in qsList" :key="item.Id" :question="item" :question-form="qsForm"
:reading-task-state="readingTaskState" @setFormItemData="setFormItemData"
<QuestionTableFormItem v-for="item in qsList" :key="item.Id" :question="item" :questions="qsList"
:question-form="qsForm" :reading-task-state="readingTaskState" @setFormItemData="setFormItemData"
@resetFormItemData="resetFormItemData" />
<el-form-item style="text-align: right">
<el-button size="small" @click="addOrEdit.visible = false">

View File

@ -107,7 +107,7 @@
</el-form-item>
</template>
<QuestionTableFormItem v-for="item in question.Childrens" :key="item.Id" :question="item"
<QuestionTableFormItem v-for="item in question.Childrens" :key="item.Id" :question="item" :questions="questions"
:question-form="questionForm" :reading-task-state="readingTaskState" @setFormItemData="setFormItemData"
@resetFormItemData="resetFormItemData" />
</div>
@ -129,6 +129,12 @@ export default {
return []
}
},
questions: {
type: Array,
default() {
return []
}
},
readingTaskState: {
type: Number,
required: true
@ -155,6 +161,7 @@ export default {
}
this.$emit('setFormItemData', { key: question.Id, val: v })
}
this.resetChildValue(question, this.questions)
},
resetChild(obj) {
obj.forEach(i => {
@ -164,6 +171,17 @@ export default {
}
})
},
resetChildValue(obj, arr) {
arr.some(item => {
if (item.ParentId === obj.Id) {
this.$emit('resetFormItemData', item.Id)
}
if (item.Childrens && item.Childrens.length > 0) {
this.resetChildValue(obj, item.Childrens)
}
return item.ParentId === obj.Id
})
},
limitBlur(valueType, value) {
if (isNaN(parseInt(value))) {
value = null

View File

@ -486,8 +486,8 @@ export default {
}
})
DicomEvent.$on('operateImageMarker', (data) => {
let { operateStateEnum, QuestionId, picturePath } = data
if (this.question.Id === QuestionId) {
let { operateStateEnum, QuestionId, picturePath, visitTaskId } = data
if (this.question.Id === QuestionId && visitTaskId === this.visitTaskId) {
this.operateImageMarker({ operateStateEnum, question: this.question, picturePath })
}
})
@ -842,17 +842,33 @@ export default {
break;
}
} else {
if (this.questionForm[o.TableQuestionId] === 'NE') {
isNE = true
}
if (!isNaN(parseFloat(this.questionForm[o.TableQuestionId]))) {
num = parseFloat(this.questionForm[o.TableQuestionId])
} else {
isNAN = true
}
if (!isNaN(num)) {
dataArr.push(num)
switch (rules.CustomCalculateMark) {
case 15:
if (!isNaN(parseFloat(this.questionForm[o.TableQuestionId]))) {
num = Math.abs(this.questionForm[o.TableQuestionId])
}
else {
isNAN = true
}
if (this.questionForm[o.TableQuestionId] === 'NE') {
isNE = true
}
break;
default:
if (this.questionForm[o.TableQuestionId] === 'NE') {
isNE = true
}
if (!isNaN(parseFloat(this.questionForm[o.TableQuestionId]))) {
num = parseFloat(this.questionForm[o.TableQuestionId])
} else {
isNAN = true
}
if (!isNaN(num)) {
dataArr.push(num)
}
break;
}
}
} else {
if (this.questionForm[o.TableQuestionId] === 'NE') {
@ -939,7 +955,7 @@ export default {
break;
case 15:
if (!isNaN(parseFloat(this.questionForm[o.TableQuestionId]))) {
num = Math.abs(num)
num = Math.abs(this.questionForm[o.TableQuestionId])
}
else {
isNAN = true

View File

@ -643,7 +643,7 @@ export default {
if (!item.MeasureData || item.MeasureData.annotationUID !== annotation.annotationUID) continue
const isTableMode = item.TableQuestionId
if (!isTableMode && this.questionsMarkStatus[item.QuestionId] && !this.questionsMarkStatus[item.QuestionId].isSaved && this.questionsMarkStatus[item.QuestionId].isMarked) {
DicomEvent.$emit('operateImageMarker', { QuestionId: item.QuestionId, operateStateEnum: 5, picturePath })
DicomEvent.$emit('operateImageMarker', { QuestionId: item.QuestionId, operateStateEnum: 5, picturePath, visitTaskId: this.visitTaskId })
break
}
}

View File

@ -535,7 +535,15 @@ export default {
}
})
num = arr1.length === 0 ? 0 : Math.min(...arr1)
break
break;
case 15:
if (!isNaN(parseFloat(this.questionForm[o.TableQuestionId]))) {
num = Math.abs(this.questionForm[o.TableQuestionId])
}
else {
isNAN = true
}
break;
}
} else {
if (!isNaN(parseFloat(this.questionForm[o.TableQuestionId]))) {
@ -624,7 +632,7 @@ export default {
break;
case 15:
if (!isNaN(parseFloat(this.questionForm[o.TableQuestionId]))) {
num = Math.abs(num)
num = Math.abs(this.questionForm[o.TableQuestionId])
}
break;
}
@ -637,7 +645,7 @@ export default {
return 'NE'
}
if (isNAN) {
return null
return false
}
if (rules.ValueType === 2) {
num = num * 100

View File

@ -148,7 +148,15 @@ export default {
})
break
case 21:
searchData.ReadingExportType = 18
searchData.ReadingExportType = 21
getTumor_CDISC_Export(searchData)
.then((res) => { })
.catch(() => {
this.loading = false
})
break
case 22:
searchData.ReadingExportType = 22
getTumor_CDISC_Export(searchData)
.then((res) => { })
.catch(() => {

View File

@ -389,7 +389,7 @@
@change="(v) => CustomCalculateMarkChange(v)">
<div>
<el-radio v-for="item of $d.CustomCalculateMark"
v-show="item.value <= 4 || item.value === 10 || item.value === 11 || item.value === 12 || item.value === 13 || item.value === 14"
v-show="item.value <= 4 || item.value === 10 || item.value === 11 || item.value === 12 || item.value === 13 || item.value === 14 || item.value === 15"
:key="`CustomCalculateMark${item.value}`" :label="item.value">
{{ item.label }}
</el-radio>
@ -451,9 +451,10 @@
<template slot-scope="scope">
<!-- 添加 -->
<el-button icon="el-icon-plus" size="mini" circle :title="$t('trials:readingUnit:qsList:title:add')"
@click="addCustomCalculateMark(scope.$index)" />
@click="addCustomCalculateMark(scope.$index)" :disabled="form.CustomCalculateMark === 15" />
<!-- 删除 -->
<el-button icon="el-icon-minus" size="mini" circle :disabled="form.CalculateQuestions.length <= 2"
<el-button icon="el-icon-minus" size="mini" circle
:disabled="(form.CustomCalculateMark !== 15 && form.CalculateQuestions.length <= 2) || (form.CustomCalculateMark === 15 && form.CalculateQuestions.length <= 1)"
:title="$t('trials:readingUnit:qsList:title:delete')"
@click="deleteCustomCalculateMark(scope.$index)" />
</template>
@ -894,7 +895,7 @@ export default {
},
CustomCalculateMarkChange() {
this.isShow = false
if (this.form.CustomCalculateMark <= 4 || this.form.CustomCalculateMark >= 10) {
if ((this.form.CustomCalculateMark <= 4 || this.form.CustomCalculateMark >= 10) && this.form.CustomCalculateMark < 15) {
this.form.CalculateQuestions = [
{
IsTable: false,

View File

@ -221,7 +221,7 @@
<el-radio-group v-model="form.CustomCalculateMark" style="line-height: 40px;"
@change="(v) => CustomCalculateMarkChange(v)">
<div>
<el-radio v-for="item of $d.CustomCalculateMark" v-show="item.value <= 4"
<el-radio v-for="item of $d.CustomCalculateMark" v-show="item.value <= 4 || item.value >= 15"
:key="`CustomCalculateMark${item.value}`" :label="item.value">
{{ item.label }}
</el-radio>
@ -259,8 +259,9 @@
<el-table-column :label="$t('common:action:action')" prop="TableQuestionId" show-overflow-tooltip>
<template slot-scope="scope">
<el-button icon="el-icon-plus" size="mini" circle :title="$t('common:button:add')"
@click="addCustomCalculateMark(scope.$index)" />
<el-button icon="el-icon-minus" size="mini" circle :disabled="form.CalculateQuestions.length <= 2"
@click="addCustomCalculateMark(scope.$index)" :disabled="form.CustomCalculateMark === 15" />
<el-button icon="el-icon-minus" size="mini" circle
::disabled="(form.CustomCalculateMark !== 15 && form.CalculateQuestions.length <= 2) || (form.CustomCalculateMark === 15 && form.CalculateQuestions.length <= 1)"
:title="$t('common:button:delete')" @click="deleteCustomCalculateMark(scope.$index)" />
</template>
</el-table-column>