阅片单元配置:增加阅片过程下载影像、阅片过程上传影像不区分阅片标准
continuous-integration/drone/push Build is passing Details

uat_us
DESKTOP-6C3NK6N\WXS 2024-09-06 14:52:28 +08:00
parent 5bfc4a9a82
commit 5d8c389090
2 changed files with 120 additions and 124 deletions

View File

@ -158,7 +158,6 @@
<!-- 上传 --> <!-- 上传 -->
<el-button <el-button
v-if=" v-if="
item.CriterionType === 0 &&
item.ImageUploadEnum > 0 && item.ImageUploadEnum > 0 &&
item.IsReadingTaskViewInOrder > 0 item.IsReadingTaskViewInOrder > 0
" "
@ -171,7 +170,6 @@
<!-- 下载 --> <!-- 下载 -->
<el-button <el-button
v-if=" v-if="
item.CriterionType === 0 &&
item.ImageDownloadEnum === 1 && item.ImageDownloadEnum === 1 &&
item.IsReadingTaskViewInOrder > 0 item.IsReadingTaskViewInOrder > 0
" "

View File

@ -70,7 +70,7 @@
:label="item.value" :label="item.value"
v-for="item in $d.YesOrNoModality" v-for="item in $d.YesOrNoModality"
:key="item.id" :key="item.id"
> >
{{ item.label }} {{ item.label }}
</el-radio> </el-radio>
</el-radio-group> </el-radio-group>
@ -103,7 +103,7 @@
@click.stop="handleCheckAllChange" @click.stop="handleCheckAllChange"
type="success" type="success"
>{{ >{{
$t("trials:readingUnit:readingRules:title:CriterionModalitysAll") $t('trials:readingUnit:readingRules:title:CriterionModalitysAll')
}}</el-button }}</el-button
> >
</el-form-item> </el-form-item>
@ -183,7 +183,7 @@
" "
@change=" @change="
() => { () => {
form.IsArbitrationReading = false; form.IsArbitrationReading = false
} }
" "
> >
@ -233,8 +233,8 @@
@change=" @change="
(v) => { (v) => {
if (!v) { if (!v) {
form.IsGlobalReading = v; form.IsGlobalReading = v
form.IsOncologyReading = v; form.IsOncologyReading = v
} }
} }
" "
@ -307,15 +307,15 @@
" "
@change=" @change="
(v) => { (v) => {
form.ImageDownloadEnum = 0; form.ImageDownloadEnum = 0
form.ImageUploadEnum = 0; form.ImageUploadEnum = 0
if (v) { if (v) {
form.IsReadingShowSubjectInfo = true; form.IsReadingShowSubjectInfo = true
form.IsReadingShowPreviousResults = true; form.IsReadingShowPreviousResults = true
form.ReadingTaskViewEnum = 0; form.ReadingTaskViewEnum = 0
form.IseCRFShowInDicomReading = false; form.IseCRFShowInDicomReading = false
} else { } else {
form.ReadingTaskViewEnum = 2; form.ReadingTaskViewEnum = 2
} }
} }
" "
@ -352,11 +352,10 @@
</el-radio> </el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<!--支持影像下载--> <!--支持影像下载v-if="CriterionType === 0"-->
<el-form-item <el-form-item
:label="$t('trials:processCfg:form:ImageDownloadEnum')" :label="$t('trials:processCfg:form:ImageDownloadEnum')"
prop="ImageDownloadEnum" prop="ImageDownloadEnum"
v-if="CriterionType === 0"
> >
<el-radio-group <el-radio-group
v-model="form.ImageDownloadEnum" v-model="form.ImageDownloadEnum"
@ -380,7 +379,6 @@
<el-form-item <el-form-item
:label="$t('trials:processCfg:form:ImageUploadEnum')" :label="$t('trials:processCfg:form:ImageUploadEnum')"
prop="ImageUploadEnum" prop="ImageUploadEnum"
v-if="CriterionType === 0"
> >
<el-radio-group <el-radio-group
v-model="form.ImageUploadEnum" v-model="form.ImageUploadEnum"
@ -443,7 +441,7 @@
@change=" @change="
(v) => { (v) => {
if (!v) { if (!v) {
form.IseCRFShowInDicomReading = true; form.IseCRFShowInDicomReading = true
} }
} }
" "
@ -542,7 +540,7 @@
" "
@change=" @change="
(v) => { (v) => {
$set(form, 'AdditionalAssessmentType' + item.Id, v); $set(form, 'AdditionalAssessmentType' + item.Id, v)
} }
" "
> >
@ -564,21 +562,21 @@
> >
<!-- 保存 --> <!-- 保存 -->
<el-button type="primary" @click="handleSave(true)"> <el-button type="primary" @click="handleSave(true)">
{{ $t("common:button:save") }} {{ $t('common:button:save') }}
</el-button> </el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
</template> </template>
<script> <script>
import { getCriterionReadingInfo, setCriterionReadingInfo } from "@/api/trials"; import { getCriterionReadingInfo, setCriterionReadingInfo } from '@/api/trials'
export default { export default {
name: "ReadingRules", name: 'ReadingRules',
props: { props: {
trialReadingCriterionId: { trialReadingCriterionId: {
type: String, type: String,
default() { default() {
return ""; return ''
}, },
}, },
CriterionType: { CriterionType: {
@ -590,7 +588,7 @@ export default {
return { return {
additionalAssessmentOptionList: [], additionalAssessmentOptionList: [],
form: { form: {
TrialId: "", TrialId: '',
ImagePlatform: null, ImagePlatform: null,
ReadingTool: 0, ReadingTool: 0,
ReadingTaskViewEnum: null, ReadingTaskViewEnum: null,
@ -625,151 +623,151 @@ export default {
IsAutoCreate: [ IsAutoCreate: [
{ {
required: true, required: true,
message: this.$t("common:ruleMessage:select"), message: this.$t('common:ruleMessage:select'),
trigger: ["blur", "change"], trigger: ['blur', 'change'],
}, },
], ],
IsAdditionalAssessment: [ IsAdditionalAssessment: [
{ {
required: true, required: true,
message: this.$t("common:ruleMessage:select"), message: this.$t('common:ruleMessage:select'),
trigger: ["blur", "change"], trigger: ['blur', 'change'],
}, },
], ],
ImagePlatform: [ ImagePlatform: [
{ {
required: true, required: true,
message: this.$t("common:ruleMessage:select"), message: this.$t('common:ruleMessage:select'),
trigger: ["blur", "change"], trigger: ['blur', 'change'],
}, },
], ],
ReadingTool: [ ReadingTool: [
{ {
required: true, required: true,
message: this.$t("common:ruleMessage:select"), message: this.$t('common:ruleMessage:select'),
trigger: ["blur", "change"], trigger: ['blur', 'change'],
}, },
], ],
ImageDownloadEnum: [ ImageDownloadEnum: [
{ {
required: true, required: true,
message: this.$t("common:ruleMessage:select"), message: this.$t('common:ruleMessage:select'),
trigger: ["blur", "change"], trigger: ['blur', 'change'],
}, },
], ],
ImageUploadEnum: [ ImageUploadEnum: [
{ {
required: true, required: true,
message: this.$t("common:ruleMessage:select"), message: this.$t('common:ruleMessage:select'),
trigger: ["blur", "change"], trigger: ['blur', 'change'],
}, },
], ],
IsImageFilter: [ IsImageFilter: [
{ {
required: true, required: true,
message: this.$t("common:ruleMessage:select"), message: this.$t('common:ruleMessage:select'),
trigger: ["blur", "change"], trigger: ['blur', 'change'],
}, },
], ],
ReadingTaskViewEnum: [ ReadingTaskViewEnum: [
{ {
required: true, required: true,
message: this.$t("common:ruleMessage:select"), message: this.$t('common:ruleMessage:select'),
trigger: ["blur", "change"], trigger: ['blur', 'change'],
}, },
], ],
IsImageLabeled: [ IsImageLabeled: [
{ {
required: true, required: true,
message: this.$t("common:ruleMessage:select"), message: this.$t('common:ruleMessage:select'),
trigger: ["blur", "change"], trigger: ['blur', 'change'],
}, },
], ],
IsReadingShowSubjectInfo: [ IsReadingShowSubjectInfo: [
{ {
required: true, required: true,
message: this.$t("common:ruleMessage:select"), message: this.$t('common:ruleMessage:select'),
trigger: ["blur", "change"], trigger: ['blur', 'change'],
}, },
], ],
IsReadingShowPreviousResults: [ IsReadingShowPreviousResults: [
{ {
required: true, required: true,
message: this.$t("common:ruleMessage:select"), message: this.$t('common:ruleMessage:select'),
trigger: ["blur", "change"], trigger: ['blur', 'change'],
}, },
], ],
ReadingType: [ ReadingType: [
{ {
required: true, required: true,
message: this.$t("common:ruleMessage:select"), message: this.$t('common:ruleMessage:select'),
trigger: ["blur", "change"], trigger: ['blur', 'change'],
}, },
], ],
IsReadingTaskViewInOrder: [ IsReadingTaskViewInOrder: [
{ {
required: true, required: true,
message: this.$t("common:ruleMessage:select"), message: this.$t('common:ruleMessage:select'),
trigger: ["blur", "change"], trigger: ['blur', 'change'],
}, },
], ],
IsGlobalReading: [ IsGlobalReading: [
{ {
required: true, required: true,
message: this.$t("common:ruleMessage:select"), message: this.$t('common:ruleMessage:select'),
trigger: ["blur", "change"], trigger: ['blur', 'change'],
}, },
], ],
IsArbitrationReading: [ IsArbitrationReading: [
{ {
required: true, required: true,
message: this.$t("common:ruleMessage:select"), message: this.$t('common:ruleMessage:select'),
trigger: ["blur", "change"], trigger: ['blur', 'change'],
}, },
], ],
IsOncologyReading: [ IsOncologyReading: [
{ {
required: true, required: true,
message: this.$t("common:ruleMessage:select"), message: this.$t('common:ruleMessage:select'),
trigger: ["blur", "change"], trigger: ['blur', 'change'],
}, },
], ],
DigitPlaces: [ DigitPlaces: [
{ {
required: true, required: true,
message: this.$t("common:ruleMessage:select"), message: this.$t('common:ruleMessage:select'),
trigger: ["blur", "change"], trigger: ['blur', 'change'],
}, },
], ],
IseCRFShowInDicomReading: [ IseCRFShowInDicomReading: [
{ {
required: true, required: true,
message: this.$t("common:ruleMessage:select"), message: this.$t('common:ruleMessage:select'),
trigger: ["blur", "change"], trigger: ['blur', 'change'],
}, },
], ],
IsReadingPeriod: [ IsReadingPeriod: [
{ {
required: true, required: true,
message: this.$t("common:ruleMessage:select"), message: this.$t('common:ruleMessage:select'),
trigger: ["blur", "change"], trigger: ['blur', 'change'],
}, },
], ],
CriterionModalitys: [ CriterionModalitys: [
{ {
required: true, required: true,
message: this.$t("common:ruleMessage:select"), message: this.$t('common:ruleMessage:select'),
trigger: ["blur", "change"], trigger: ['blur', 'change'],
}, },
{ {
validator: (rule, value, callback) => { validator: (rule, value, callback) => {
if (value && Array.isArray(value) && value.length < 0) { if (value && Array.isArray(value) && value.length < 0) {
callback(new Error(this.$t("common:ruleMessage:select"))); callback(new Error(this.$t('common:ruleMessage:select')))
} else { } else {
callback(); callback()
} }
}, },
trigger: ["blur", "change"], trigger: ['blur', 'change'],
}, },
], ],
// IsReadingTaskViewInOrder: [ // IsReadingTaskViewInOrder: [
@ -786,15 +784,15 @@ export default {
modalityList: [], modalityList: [],
CriterionModalitys: [], CriterionModalitys: [],
modalityIsCheck: false, // modalityIsCheck: false, //
}; }
}, },
mounted() { mounted() {
this.initPage(); this.initPage()
}, },
watch: { watch: {
CriterionModalitys: { CriterionModalitys: {
handler() { handler() {
this.form.CriterionModalitys = this.CriterionModalitys.join("|"); this.form.CriterionModalitys = this.CriterionModalitys.join('|')
}, },
deep: true, deep: true,
}, },
@ -803,19 +801,19 @@ export default {
// //
IsImageFilterChange(data) { IsImageFilterChange(data) {
if (data) { if (data) {
this.CriterionModalitys = this.modalityList; this.CriterionModalitys = this.modalityList
} else { } else {
this.CriterionModalitys = []; this.CriterionModalitys = []
} }
}, },
// //
handleCheckAllChange() { handleCheckAllChange() {
this.CriterionModalitys = this.CriterionModalitys =
this.CriterionModalitys.length <= 0 ? this.modalityList : []; this.CriterionModalitys.length <= 0 ? this.modalityList : []
}, },
initPage() { initPage() {
this.loading = true; this.loading = true
const trialId = this.$route.query.trialId; const trialId = this.$route.query.trialId
// getTrialCriterionAdditionalAssessmentOptionList(this.trialReadingCriterionId).then(res => { // getTrialCriterionAdditionalAssessmentOptionList(this.trialReadingCriterionId).then(res => {
// this.additionalAssessmentOptionList = res.Result // this.additionalAssessmentOptionList = res.Result
// if (this.additionalAssessmentOptionList.length > 0) { // if (this.additionalAssessmentOptionList.length > 0) {
@ -828,46 +826,46 @@ export default {
TrialReadingCriterionId: this.trialReadingCriterionId, TrialReadingCriterionId: this.trialReadingCriterionId,
}) })
.then((res) => { .then((res) => {
this.loading = false; this.loading = false
this.modalityList = res.Result.TrialModalitys.split("|").filter( this.modalityList = res.Result.TrialModalitys.split('|').filter(
(item) => item && item.trim() (item) => item && item.trim()
); )
for (const k in this.form) { for (const k in this.form) {
if (res.Result.hasOwnProperty(k)) { if (res.Result.hasOwnProperty(k)) {
this.form[k] = res.Result[k]; this.form[k] = res.Result[k]
} }
} }
this.CriterionModalitys = this.form.CriterionModalitys this.CriterionModalitys = this.form.CriterionModalitys
? this.form.CriterionModalitys.split("|") ? this.form.CriterionModalitys.split('|')
: []; : []
this.form.TrialCriterionAdditionalAssessmentTypeList.forEach((v) => { this.form.TrialCriterionAdditionalAssessmentTypeList.forEach((v) => {
this.$set(v, "IsSelected", v.IsSelected || false); this.$set(v, 'IsSelected', v.IsSelected || false)
this.$set( this.$set(
this.form, this.form,
"AdditionalAssessmentType" + v.Id, 'AdditionalAssessmentType' + v.Id,
v.IsSelected v.IsSelected
); )
}); })
this.isReadingTaskViewInOrder = res.Result.IsReadingTaskViewInOrder; this.isReadingTaskViewInOrder = res.Result.IsReadingTaskViewInOrder
this.isConfirm = res.Result.IsSign; this.isConfirm = res.Result.IsSign
this.IsMustGlobalReading = res.Result.IsMustGlobalReading; this.IsMustGlobalReading = res.Result.IsMustGlobalReading
this.$emit("setConfirm", res.Result.IsSign); this.$emit('setConfirm', res.Result.IsSign)
this.$emit("setArbitrationReading", res.Result.IsArbitrationReading); this.$emit('setArbitrationReading', res.Result.IsArbitrationReading)
this.$emit( this.$emit(
"setAdditionalAssessment", 'setAdditionalAssessment',
this.form.IsAdditionalAssessment this.form.IsAdditionalAssessment
); )
this.$emit("setIsClinicalReading", res.Result.IsClinicalReading); this.$emit('setIsClinicalReading', res.Result.IsClinicalReading)
this.$emit("setGlobalReading", res.Result.IsGlobalReading); this.$emit('setGlobalReading', res.Result.IsGlobalReading)
this.$emit("setOncologyReading", res.Result.IsOncologyReading); this.$emit('setOncologyReading', res.Result.IsOncologyReading)
this.$emit("setDigitPlaces", res.Result.DigitPlaces); this.$emit('setDigitPlaces', res.Result.DigitPlaces)
if (res.Result.ReadingType === 1) { if (res.Result.ReadingType === 1) {
this.$emit("setArbitrationReading", false); this.$emit('setArbitrationReading', false)
} }
}) })
.catch(() => { .catch(() => {
this.loading = false; this.loading = false
}); })
// }).catch(() => { // }).catch(() => {
// this.loading = false // this.loading = false
// }) // })
@ -875,52 +873,52 @@ export default {
// //
handleSave(isPrompt = true) { handleSave(isPrompt = true) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
this.$refs["readingRulesForm"].validate((valid) => { this.$refs['readingRulesForm'].validate((valid) => {
if (!valid) { if (!valid) {
resolve(false); resolve(false)
} else { } else {
this.loading = true; this.loading = true
if (this.form.ReadingType === 1) { if (this.form.ReadingType === 1) {
this.form.IsArbitrationReading = false; this.form.IsArbitrationReading = false
} }
// //
this.form.TrialReadingCriterionId = this.trialReadingCriterionId; this.form.TrialReadingCriterionId = this.trialReadingCriterionId
setCriterionReadingInfo(this.form) setCriterionReadingInfo(this.form)
.then((res) => { .then((res) => {
this.loading = false; this.loading = false
this.$emit("reloadArbitrationRules"); this.$emit('reloadArbitrationRules')
this.$emit( this.$emit(
"setArbitrationReading", 'setArbitrationReading',
this.form.IsArbitrationReading this.form.IsArbitrationReading
); )
this.$emit( this.$emit(
"setAdditionalAssessment", 'setAdditionalAssessment',
this.form.IsAdditionalAssessment this.form.IsAdditionalAssessment
); )
this.$emit("setIsClinicalReading", this.form.IsClinicalReading); this.$emit('setIsClinicalReading', this.form.IsClinicalReading)
this.$emit("setGlobalReading", this.form.IsGlobalReading); this.$emit('setGlobalReading', this.form.IsGlobalReading)
this.$emit("setOncologyReading", this.form.IsOncologyReading); this.$emit('setOncologyReading', this.form.IsOncologyReading)
this.$emit("setDigitPlaces", this.form.DigitPlaces); this.$emit('setDigitPlaces', this.form.DigitPlaces)
if (this.form.ReadingType === 1) { if (this.form.ReadingType === 1) {
this.$emit("setArbitrationReading", false); this.$emit('setArbitrationReading', false)
} }
if (res.IsSuccess && isPrompt) { if (res.IsSuccess && isPrompt) {
this.$message.success( this.$message.success(
this.$t("common:message:savedSuccessfully") this.$t('common:message:savedSuccessfully')
); )
} }
resolve(true); resolve(true)
}) })
.catch((_) => { .catch((_) => {
this.loading = false; this.loading = false
resolve(false); resolve(false)
}); })
} }
}); })
}); })
}, },
}, },
}; }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.reading-rule-config-form { .reading-rule-config-form {