受试者新增添加访视入口
continuous-integration/drone/push Build is passing Details

main
wangxiaoshuang 2025-09-24 14:21:34 +08:00
parent 3b8c2de88b
commit 7ca7b4c378
2 changed files with 60 additions and 70 deletions

View File

@ -1,7 +1,7 @@
<template> <template>
<div> <div>
<div class="search"> <div class="search">
<p class="line">{{ $t("trials:inspection:message:confirmVisit") }}</p> <p class="line" v-if="showTitle">{{ $t("trials:inspection:message:confirmVisit") }}</p>
<div class="form"> <div class="form">
<el-form :inline="true" class="base-search-form"> <el-form :inline="true" class="base-search-form">
<!-- 检查日期 --> <!-- 检查日期 -->
@ -140,6 +140,10 @@ export default {
require: true, require: true,
default: "trial", default: "trial",
}, },
showTitle: {
type: Boolean,
default: true
}
}, },
data() { data() {
return { return {

View File

@ -1,79 +1,51 @@
<template> <template>
<el-dialog <el-dialog v-dialogDrag :visible.sync="visible" :close-on-click-modal="false" custom-class="upload-dialog"
v-dialogDrag :fullscreen="true" :before-close="beforeClosePitentDig">
:visible.sync="visible" <el-tabs v-model="activeName" @tab-click="handleClick">
:close-on-click-modal="false" <el-tab-pane :label="$t('trials:subject:title:studyList')" name="patient">
custom-class="upload-dialog" <!-- <span slot="title">{{ this.$t("trials:subject:title:studyList") }}</span> -->
:before-close="beforeClosePitentDig" <el-table ref="patientStudyList" v-loading="loading" :data="list" stripe height="300px">
> <el-table-column type="index" width="40" />
<span slot="title">{{ this.$t("trials:subject:title:studyList") }}</span> <!--患者ID-->
<el-table <el-table-column prop="PatientIdStr" :label="$t('trials:uploadDicomList:table:pId')" show-overflow-tooltip
ref="patientStudyList" min-width="140" sortable="custom"></el-table-column>
v-loading="loading" <!--患者姓名-->
:data="list" <el-table-column prop="PatientName" :label="$t('trials:uploadDicomList:table:patientName')"
stripe show-overflow-tooltip min-width="140" sortable="custom"></el-table-column>
height="300px" <!--出生日期-->
> <el-table-column prop="PatientBirthDate" :label="$t('trials:inspection:table:birthdate')"
<el-table-column type="index" width="40" /> show-overflow-tooltip min-width="140" sortable="custom"></el-table-column>
<!--患者ID--> <!--性别-->
<el-table-column <el-table-column prop="PatientSex" :label="$t('trials:trials-myinfo:form:gender')" show-overflow-tooltip
prop="PatientIdStr" min-width="140" sortable="custom">
:label="$t('trials:uploadDicomList:table:pId')" <template slot-scope="scope">
show-overflow-tooltip <span>{{ $fd("Sex", scope.row.PatientSex) }}</span>
min-width="140" </template>
sortable="custom" </el-table-column>
></el-table-column> <!--操作-->
<!--患者姓名--> <el-table-column :label="$t('common:action:action')" width="80"
<el-table-column v-if="hasPermi(['trials:trials-panel:subject:delPatient'])">
prop="PatientName" <template slot-scope="scope">
:label="$t('trials:uploadDicomList:table:patientName')" <el-button v-hasPermi="['trials:trials-panel:subject:delPatient']" circle icon="el-icon-delete"
show-overflow-tooltip :title="$t('trials:subject:patientStudyList:button:delete')" @click.stop="remove(scope.row)" />
min-width="140" </template>
sortable="custom" </el-table-column>
></el-table-column> </el-table>
<!--出生日期--> </el-tab-pane>
<el-table-column <el-tab-pane :label="$t('trials:subject:title:confirmVistList')" name="confirmVistList">
prop="PatientBirthDate" <confirmVistList v-if="activeName === 'confirmVistList'" ref="confirmVisit" :Patient="Patient"
:label="$t('trials:inspection:table:birthdate')" :submitMessage="submitMessage" :status="status" :showTitle="false" @close="beforeClosePitentDig" />
show-overflow-tooltip </el-tab-pane>
min-width="140" </el-tabs>
sortable="custom"
></el-table-column>
<!--性别-->
<el-table-column
prop="PatientSex"
:label="$t('trials:trials-myinfo:form:gender')"
show-overflow-tooltip
min-width="140"
sortable="custom"
>
<template slot-scope="scope">
<span>{{ $fd("Sex", scope.row.PatientSex) }}</span>
</template>
</el-table-column>
<!--操作-->
<el-table-column
:label="$t('common:action:action')"
width="80"
v-if="hasPermi(['trials:trials-panel:subject:delPatient'])"
>
<template slot-scope="scope">
<el-button
v-hasPermi="['trials:trials-panel:subject:delPatient']"
circle
icon="el-icon-delete"
:title="$t('trials:subject:patientStudyList:button:delete')"
@click.stop="remove(scope.row)"
/>
</template>
</el-table-column>
</el-table>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import { deleteSubjectPatientBinding } from "@/api/inspection.js"; import { deleteSubjectPatientBinding } from "@/api/inspection.js";
import confirmVistList from "@/views/trials/trials-inspection/components/confirm-visit-list.vue";
export default { export default {
name: "patientStudyList", name: "patientStudyList",
components: { confirmVistList },
props: { props: {
visible: { visible: {
required: true, required: true,
@ -93,9 +65,23 @@ export default {
data() { data() {
return { return {
loading: false, loading: false,
activeName: 'patient',
submitMessage: { SubjectId: null, TrialId: null, TrialCode: null, ResearchProgramNo: null },
status: "visit", // trial visit 访
Patient: {},
}; };
}, },
methods: { methods: {
handleClick(v) {
this.activeName = v.name
if (v.name === 'confirmVistList') {
this.submitMessage.TrialId = this.$route.query.trialId
this.submitMessage.TrialCode = this.$route.query.trialCode
this.submitMessage.ResearchProgramNo = this.$route.query.researchProgramNo
this.submitMessage.SubjectId = this.SubjectId
this.Patient.PatientId = this.list.map(item => item.PatientId)
}
},
beforeClosePitentDig() { beforeClosePitentDig() {
this.$emit("update:visible", false); this.$emit("update:visible", false);
}, },