质控通过时pt临床数据可再次修改
continuous-integration/drone/push Build is passing Details

uat_us
caiyiling 2026-04-29 12:41:00 +08:00
parent 73e8f24c3d
commit c373b59f23
3 changed files with 40 additions and 9 deletions

View File

@ -4449,3 +4449,12 @@ export function editPatientInfo(data) {
data data
}) })
} }
//修正患者基本信息
export function amendmentPatientInfo(data) {
return request({
url: `/Study/amendmentPatientInfo`,
method: 'post',
data
})
}

View File

@ -307,7 +307,14 @@
style="width: 100%" style="width: 100%"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item v-if="isAudit" :label="$t('trials:ptData:label:reason')" prop="Reason">
<el-input
type="textarea"
:autosize="{ minRows: 2, maxRows: 4}"
v-model="formData.Reason"
style="width: 100%"
></el-input>
</el-form-item>
<!-- 提交 --> <!-- 提交 -->
<el-form-item style="margin-top: 20px;text-align: right;" v-if="isPatientFormCanEdit"> <el-form-item style="margin-top: 20px;text-align: right;" v-if="isPatientFormCanEdit">
<el-button type="primary" @click="submitForm">{{ $t('trials:ptData:button:submit') }}</el-button> <el-button type="primary" @click="submitForm">{{ $t('trials:ptData:button:submit') }}</el-button>
@ -362,7 +369,8 @@ import {
getCRCClinicalData, getCRCClinicalData,
addOrUpdateReadingClinicalData, addOrUpdateReadingClinicalData,
getPatientInfo, getPatientInfo,
editPatientInfo editPatientInfo,
amendmentPatientInfo
} from '@/api/trials' } from '@/api/trials'
import PreviousRadiotherapy from './previousRadiotherapy' import PreviousRadiotherapy from './previousRadiotherapy'
import PreviousSurgery from './previousSurgery' import PreviousSurgery from './previousSurgery'
@ -410,6 +418,10 @@ export default {
isPatientFormAllowEdit: { isPatientFormAllowEdit: {
type: Boolean, type: Boolean,
default: false, default: false,
},
isAudit: {
type: Boolean,
default: false
} }
}, },
data() { data() {
@ -443,7 +455,8 @@ export default {
RadionuclideHalfLife: null, RadionuclideHalfLife: null,
RadiopharmaceuticalStartTime: null, RadiopharmaceuticalStartTime: null,
AcquisitionTime: null, AcquisitionTime: null,
TimeCheck: '' TimeCheck: '',
Reason: ''
}, },
rules: { rules: {
PatientSex: [ PatientSex: [
@ -470,7 +483,10 @@ export default {
{ type: 'number', message: this.$t('trials:ptData:ruleMessage:number2'), trigger: 'blur' },// { type: 'number', message: this.$t('trials:ptData:ruleMessage:number2'), trigger: 'blur' },//
// //
{ validator: this.validateTime, trigger: 'blur' } { validator: this.validateTime, trigger: 'blur' }
] ],
Reason: [
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }
],
}, },
formLoading: false, formLoading: false,
isPatientFormCanEdit: false isPatientFormCanEdit: false
@ -814,7 +830,8 @@ export default {
RadionuclideHalfLife: parseFloat(res.Result.RadionuclideHalfLife) || null, RadionuclideHalfLife: parseFloat(res.Result.RadionuclideHalfLife) || null,
RadiopharmaceuticalStartTime: parseFloat(res.Result.RadiopharmaceuticalStartTime) || '', RadiopharmaceuticalStartTime: parseFloat(res.Result.RadiopharmaceuticalStartTime) || '',
AcquisitionTime: parseFloat(res.Result.AcquisitionTime) || '', AcquisitionTime: parseFloat(res.Result.AcquisitionTime) || '',
TimeCheck: '' TimeCheck: '',
Reason: res.Result.Reason
} }
this.computeTimeRelation() this.computeTimeRelation()
this.formLoading = false this.formLoading = false
@ -829,9 +846,14 @@ export default {
let valid = await this.$refs.patientForm.validate() let valid = await this.$refs.patientForm.validate()
if (!valid) return if (!valid) return
this.formLoading = true this.formLoading = true
let res = await editPatientInfo(this.formData) let res = null
if (this.isAudit) {
res = await amendmentPatientInfo(this.formData)
} else {
res = await editPatientInfo(this.formData)
}
this.formLoading = false this.formLoading = false
if (res.IsSuccess) { if (res && res.IsSuccess) {
this.$message.success(this.$t('common:message:savedSuccessfully')) this.$message.success(this.$t('common:message:savedSuccessfully'))
} }
} catch(e) { } catch(e) {

View File

@ -158,7 +158,7 @@
:disabled="isAudit || scope.row.IsDeleted || SecondReviewState > 0" :disabled="isAudit || scope.row.IsDeleted || SecondReviewState > 0"
@click="handleEditStudy(scope.row)" /> @click="handleEditStudy(scope.row)" />
<!-- 预览PET-CT数据 --> <!-- 预览PET-CT数据 -->
<el-button type="primary" icon="el-icon-document tip-i" :title="$t('trials:audit:tab:clinicalData')" <el-button icon="el-icon-document" :title="$t('trials:audit:tab:clinicalData')"
v-if=" v-if="
['PT、CT', 'CT、PT', 'PET-CT'].includes( ['PT、CT', 'CT、PT', 'PET-CT'].includes(
scope.row.Modalities scope.row.Modalities
@ -921,7 +921,7 @@
</div> </div>
<!--petct临床数据预览--> <!--petct临床数据预览-->
<el-dialog v-if="petVisible" :show-close="true" :visible.sync="petVisible" append-to-body> <el-dialog v-if="petVisible" :show-close="true" :visible.sync="petVisible" append-to-body>
<uploadPetClinicalData :subject-visit-id="data.Id" :data="data" :studyData="rowData" :allow-add-or-edit="false" :isPatientFormAllowEdit="!isAudit && SecondReviewState == 0"/> <uploadPetClinicalData :subject-visit-id="data.Id" :data="data" :studyData="rowData" :allow-add-or-edit="false" :isPatientFormAllowEdit="isAuditToEdit" :isAudit="isAuditToEdit"/>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>