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

View File

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

View File

@ -107,7 +107,7 @@
</el-form-item> </el-form-item>
</template> </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" :question-form="questionForm" :reading-task-state="readingTaskState" @setFormItemData="setFormItemData"
@resetFormItemData="resetFormItemData" /> @resetFormItemData="resetFormItemData" />
</div> </div>
@ -129,6 +129,12 @@ export default {
return [] return []
} }
}, },
questions: {
type: Array,
default() {
return []
}
},
readingTaskState: { readingTaskState: {
type: Number, type: Number,
required: true required: true
@ -155,6 +161,7 @@ export default {
} }
this.$emit('setFormItemData', { key: question.Id, val: v }) this.$emit('setFormItemData', { key: question.Id, val: v })
} }
this.resetChildValue(question, this.questions)
}, },
resetChild(obj) { resetChild(obj) {
obj.forEach(i => { 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) { limitBlur(valueType, value) {
if (isNaN(parseInt(value))) { if (isNaN(parseInt(value))) {
value = null value = null

View File

@ -486,8 +486,8 @@ export default {
} }
}) })
DicomEvent.$on('operateImageMarker', (data) => { DicomEvent.$on('operateImageMarker', (data) => {
let { operateStateEnum, QuestionId, picturePath } = data let { operateStateEnum, QuestionId, picturePath, visitTaskId } = data
if (this.question.Id === QuestionId) { if (this.question.Id === QuestionId && visitTaskId === this.visitTaskId) {
this.operateImageMarker({ operateStateEnum, question: this.question, picturePath }) this.operateImageMarker({ operateStateEnum, question: this.question, picturePath })
} }
}) })
@ -842,6 +842,19 @@ export default {
break; break;
} }
} else { } else {
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') { if (this.questionForm[o.TableQuestionId] === 'NE') {
isNE = true isNE = true
} }
@ -853,6 +866,9 @@ export default {
if (!isNaN(num)) { if (!isNaN(num)) {
dataArr.push(num) dataArr.push(num)
} }
break;
}
} }
} else { } else {
if (this.questionForm[o.TableQuestionId] === 'NE') { if (this.questionForm[o.TableQuestionId] === 'NE') {
@ -939,7 +955,7 @@ export default {
break; break;
case 15: case 15:
if (!isNaN(parseFloat(this.questionForm[o.TableQuestionId]))) { if (!isNaN(parseFloat(this.questionForm[o.TableQuestionId]))) {
num = Math.abs(num) num = Math.abs(this.questionForm[o.TableQuestionId])
} }
else { else {
isNAN = true isNAN = true

View File

@ -643,7 +643,7 @@ export default {
if (!item.MeasureData || item.MeasureData.annotationUID !== annotation.annotationUID) continue if (!item.MeasureData || item.MeasureData.annotationUID !== annotation.annotationUID) continue
const isTableMode = item.TableQuestionId const isTableMode = item.TableQuestionId
if (!isTableMode && this.questionsMarkStatus[item.QuestionId] && !this.questionsMarkStatus[item.QuestionId].isSaved && this.questionsMarkStatus[item.QuestionId].isMarked) { 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 break
} }
} }

View File

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

View File

@ -148,7 +148,15 @@ export default {
}) })
break break
case 21: 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) getTumor_CDISC_Export(searchData)
.then((res) => { }) .then((res) => { })
.catch(() => { .catch(() => {

View File

@ -389,7 +389,7 @@
@change="(v) => CustomCalculateMarkChange(v)"> @change="(v) => CustomCalculateMarkChange(v)">
<div> <div>
<el-radio v-for="item of $d.CustomCalculateMark" <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"> :key="`CustomCalculateMark${item.value}`" :label="item.value">
{{ item.label }} {{ item.label }}
</el-radio> </el-radio>
@ -451,9 +451,10 @@
<template slot-scope="scope"> <template slot-scope="scope">
<!-- 添加 --> <!-- 添加 -->
<el-button icon="el-icon-plus" size="mini" circle :title="$t('trials:readingUnit:qsList:title:add')" <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')" :title="$t('trials:readingUnit:qsList:title:delete')"
@click="deleteCustomCalculateMark(scope.$index)" /> @click="deleteCustomCalculateMark(scope.$index)" />
</template> </template>
@ -894,7 +895,7 @@ export default {
}, },
CustomCalculateMarkChange() { CustomCalculateMarkChange() {
this.isShow = false 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 = [ this.form.CalculateQuestions = [
{ {
IsTable: false, IsTable: false,

View File

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