访视详情、检查自动绑定

main
wangxiaoshuang 2024-04-10 14:45:27 +08:00
parent 4c788d60cc
commit 39b9249ae7
6 changed files with 209 additions and 18 deletions

View File

@ -10,6 +10,15 @@ export function getPatientStudyBeforeConfirmList(data) {
})
}
// 检查列表->未提交->自动绑定
export function autoBindingPatientStudyVisit(data) {
return request({
url: '/Patient/autoBindingPatientStudyVisit',
method: 'post',
data
})
}
// 检查列表->已提交
export function getTrialPatientStudyList(data) {
return request({

View File

@ -35,21 +35,15 @@
</el-form-item>
</el-form>
<div class="buttonBox" v-if="status === 'visit'">
<!--确认-->
<el-button
type="primary"
:loading="btnLoading2"
@click="confirm"
v-if="visitStatus === 'confirm'"
>
<!--确认v-if="visitStatus === 'confirm'"-->
<el-button type="primary" :loading="btnLoading2" @click="confirm">
{{ $t("trials:seletctedReviews:timeline:confirmation") }}
</el-button>
<!--确认提交-->
<!--确认提交v-if="visitStatus === 'submit'"-->
<el-button
type="primary"
:loading="btnLoading2"
@click="confirmSubmit"
v-if="visitStatus === 'submit'"
>
{{ $t("trials:inspection:button:confirmAndSubmit") }}
</el-button>

View File

@ -0,0 +1,158 @@
<template>
<div class="currentStudy">
<div class="functions" style="text-align: right">
<!-- 预览 -->
<el-button
type="primary"
size="small"
:disabled="list.length === 0"
icon="el-icon-view"
@click="handlePreviewAllFiles"
>
{{ $t("trials:uploadedDicoms:action:preview") }}
</el-button>
</div>
<!--当前检查--->
<div class="topTable">
<!--当前检查列表 @selection-change="handleSelectChange"--->
<el-table
ref="addTrialsList"
v-loading="loading"
:data="list"
stripe
height="300"
>
<!-- <el-table-column type="selection" align="center" width="45" /> -->
<!--患者编号-->
<el-table-column
align="center"
prop="PatientIdStr"
:label="$t('trials:uploadDicomList:table:pId')"
show-overflow-tooltip
></el-table-column>
<!--检查类型-->
<el-table-column
align="center"
prop="Modalities"
:label="$t('trials:audit:table:modality')"
show-overflow-tooltip
></el-table-column>
<!--序列数量-->
<el-table-column
align="center"
prop="SeriesCount"
:label="$t('trials:audit:table:seriesCount')"
show-overflow-tooltip
></el-table-column>
<!--图像数量-->
<el-table-column
align="center"
prop="InstanceCount"
:label="$t('trials:audit:table:instanceCount')"
show-overflow-tooltip
></el-table-column>
<!--检查日期-->
<el-table-column
align="center"
prop="StudyTime"
:label="$t('trials:audit:table:studyDate')"
show-overflow-tooltip
></el-table-column>
<!--所属访视-->
<el-table-column
align="center"
prop="VisitName"
:label="$t('trials:hirVisit:table:ownershipVisit')"
show-overflow-tooltip
></el-table-column>
<!--操作-->
<el-table-column
:label="$t('common:action:action')"
width="300"
class-name="actionBox"
>
<template slot-scope="scope">
<!-- 预览 -->
<el-button
icon="el-icon-view"
:disabled="scope.row.SeriesCount === 0 || scope.row.IsDeleted"
:title="$t('trials:uploadedDicoms:action:preview')"
circle
@click="handleViewStudy(scope.row)"
/>
</template>
</el-table-column>
</el-table>
</div>
</div>
</template>
<script>
import { getCurrentVisitPatientStudyList } from "@/api/trials/visit.js";
import { getToken } from "@/utils/auth";
export default {
name: "currentStudy",
props: {
data: {
required: true,
default: () => {
return {};
},
},
},
data() {
return {
//
list: [],
loading: false,
};
},
created() {
this.getList();
},
methods: {
//
async getList() {
try {
let data = {
SujectVisitId: this.data.SubjectVisitId,
};
this.loading = true;
let res = await getCurrentVisitPatientStudyList(data);
this.loading = false;
if (res.IsSuccess) {
this.list = res.Result;
}
} catch (err) {
this.loading = false;
console.log(err);
}
},
//
handlePreviewAllFiles() {
var tokenKey = getToken();
const routeData = this.$router.resolve({
path: `/showvisitdicoms?trialId=${this.data.TrialId}&visitInfo=${this.data.VisitName}(${this.data.VisitNum})&subjectVisitId=${this.data.Id}&TokenKey=${tokenKey}`,
});
var newWindow = window.open(routeData.href, "_blank");
this.$emit("setOpenWindow", newWindow);
},
//
handleViewStudy(row) {
var token = getToken();
const routeData = this.$router.resolve({
path: `/showdicom?studyId=${row.StudyId}&TokenKey=${token}&type=Study`,
});
var newWindow = window.open(routeData.href, "_blank");
this.$emit("setOpenWindow", newWindow);
},
},
};
</script>
<style lang="scss" scoped>
.currentStudy {
.delete-row {
text-decoration-line: line-through;
color: #c0c4cc;
}
}
</style>

View File

@ -98,11 +98,7 @@
</div>
</template>
<script>
import {
getSubjectVisitUploadedStudyList,
deleteStudyList,
updateModality,
} from "@/api/trials";
import { getSubjectVisitUploadedStudyList } from "@/api/trials";
import moment from "moment";
import { getToken } from "@/utils/auth";
export default {
@ -195,7 +191,7 @@ export default {
},
};
</script>
<style lang="scss">
<style lang="scss" scoped>
.study-info {
.delete-row {
text-decoration-line: line-through;

View File

@ -11,8 +11,9 @@
<el-breadcrumb-item v-show="rowData.SubjectCode">{{
rowData.SubjectCode
}}</el-breadcrumb-item>
<!-- (${rowData.VisitNum})-->
<el-breadcrumb-item v-show="rowData.VisitName">{{
`${rowData.VisitName} (${rowData.VisitNum})`
`${rowData.VisitName}`
}}</el-breadcrumb-item>
</el-breadcrumb>
</span>
@ -30,7 +31,7 @@
<!-- 检查列表 -->
<h4 class="box-title">{{ $t("trials:dicom-show:nowStudy") }}</h4>
<el-card class="box-card">
<StudyInfo
<currentStudy
v-if="rowData.SubjectId"
:data="rowData"
@getList="getList"
@ -42,9 +43,10 @@
</template>
<script>
import StudyInfo from "./studyInfo.vue";
import currentStudy from "./current-study.vue";
export default {
name: "visitInfo",
components: { StudyInfo },
components: { StudyInfo, currentStudy },
props: {
visible: {
required: true,

View File

@ -102,6 +102,15 @@
>
{{ $t("common:button:reset") }}
</el-button>
<!-- 自动绑定 -->
<el-button
type="primary"
@click="automaticBind"
:loading="automaticBindLoading"
v-if="activeName === 'notSubmit'"
>
{{ $t("trials:study:button:automaticBind") }}
</el-button>
</el-form-item>
</el-form>
</template>
@ -315,6 +324,7 @@ import editVisit from "./edit-visit";
import {
getPatientStudyBeforeConfirmList,
getTrialPatientStudyList,
autoBindingPatientStudyVisit,
} from "@/api/trials/study.js";
const defaultSearchData = () => {
return {
@ -356,12 +366,34 @@ export default {
// 访
editVisitVisible: false,
editVisitMessage: {},
//
automaticBindLoading: false,
};
},
created() {
this.getList();
},
methods: {
//
async automaticBind() {
try {
let data = {
TrialId: this.$route.query.trialId,
};
this.automaticBindLoading = true;
let res = await autoBindingPatientStudyVisit(data);
this.automaticBindLoading = false;
if (res.IsSuccess) {
this.$message.success(
this.$t("trials:study:message:bindSuccessfully")
);
this.getList();
}
} catch (err) {
this.automaticBindLoading = false;
console.log(err);
}
},
// 访
editVisitFn(item) {
this.editVisitVisible = true;