访视详情、检查自动绑定
parent
4c788d60cc
commit
39b9249ae7
|
@ -10,6 +10,15 @@ export function getPatientStudyBeforeConfirmList(data) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 检查列表->未提交->自动绑定
|
||||||
|
export function autoBindingPatientStudyVisit(data) {
|
||||||
|
return request({
|
||||||
|
url: '/Patient/autoBindingPatientStudyVisit',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// 检查列表->已提交
|
// 检查列表->已提交
|
||||||
export function getTrialPatientStudyList(data) {
|
export function getTrialPatientStudyList(data) {
|
||||||
return request({
|
return request({
|
||||||
|
|
|
@ -35,21 +35,15 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div class="buttonBox" v-if="status === 'visit'">
|
<div class="buttonBox" v-if="status === 'visit'">
|
||||||
<!--确认-->
|
<!--确认v-if="visitStatus === 'confirm'"-->
|
||||||
<el-button
|
<el-button type="primary" :loading="btnLoading2" @click="confirm">
|
||||||
type="primary"
|
|
||||||
:loading="btnLoading2"
|
|
||||||
@click="confirm"
|
|
||||||
v-if="visitStatus === 'confirm'"
|
|
||||||
>
|
|
||||||
{{ $t("trials:seletctedReviews:timeline:confirmation") }}
|
{{ $t("trials:seletctedReviews:timeline:confirmation") }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<!--确认提交-->
|
<!--确认提交v-if="visitStatus === 'submit'"-->
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
:loading="btnLoading2"
|
:loading="btnLoading2"
|
||||||
@click="confirmSubmit"
|
@click="confirmSubmit"
|
||||||
v-if="visitStatus === 'submit'"
|
|
||||||
>
|
>
|
||||||
{{ $t("trials:inspection:button:confirmAndSubmit") }}
|
{{ $t("trials:inspection:button:confirmAndSubmit") }}
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
|
@ -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>
|
|
@ -98,11 +98,7 @@
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import {
|
import { getSubjectVisitUploadedStudyList } from "@/api/trials";
|
||||||
getSubjectVisitUploadedStudyList,
|
|
||||||
deleteStudyList,
|
|
||||||
updateModality,
|
|
||||||
} from "@/api/trials";
|
|
||||||
import moment from "moment";
|
import moment from "moment";
|
||||||
import { getToken } from "@/utils/auth";
|
import { getToken } from "@/utils/auth";
|
||||||
export default {
|
export default {
|
||||||
|
@ -195,7 +191,7 @@ export default {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.study-info {
|
.study-info {
|
||||||
.delete-row {
|
.delete-row {
|
||||||
text-decoration-line: line-through;
|
text-decoration-line: line-through;
|
||||||
|
|
|
@ -11,8 +11,9 @@
|
||||||
<el-breadcrumb-item v-show="rowData.SubjectCode">{{
|
<el-breadcrumb-item v-show="rowData.SubjectCode">{{
|
||||||
rowData.SubjectCode
|
rowData.SubjectCode
|
||||||
}}</el-breadcrumb-item>
|
}}</el-breadcrumb-item>
|
||||||
|
<!-- (${rowData.VisitNum})-->
|
||||||
<el-breadcrumb-item v-show="rowData.VisitName">{{
|
<el-breadcrumb-item v-show="rowData.VisitName">{{
|
||||||
`${rowData.VisitName} (${rowData.VisitNum})`
|
`${rowData.VisitName}`
|
||||||
}}</el-breadcrumb-item>
|
}}</el-breadcrumb-item>
|
||||||
</el-breadcrumb>
|
</el-breadcrumb>
|
||||||
</span>
|
</span>
|
||||||
|
@ -30,7 +31,7 @@
|
||||||
<!-- 检查列表 -->
|
<!-- 检查列表 -->
|
||||||
<h4 class="box-title">{{ $t("trials:dicom-show:nowStudy") }}</h4>
|
<h4 class="box-title">{{ $t("trials:dicom-show:nowStudy") }}</h4>
|
||||||
<el-card class="box-card">
|
<el-card class="box-card">
|
||||||
<StudyInfo
|
<currentStudy
|
||||||
v-if="rowData.SubjectId"
|
v-if="rowData.SubjectId"
|
||||||
:data="rowData"
|
:data="rowData"
|
||||||
@getList="getList"
|
@getList="getList"
|
||||||
|
@ -42,9 +43,10 @@
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import StudyInfo from "./studyInfo.vue";
|
import StudyInfo from "./studyInfo.vue";
|
||||||
|
import currentStudy from "./current-study.vue";
|
||||||
export default {
|
export default {
|
||||||
name: "visitInfo",
|
name: "visitInfo",
|
||||||
components: { StudyInfo },
|
components: { StudyInfo, currentStudy },
|
||||||
props: {
|
props: {
|
||||||
visible: {
|
visible: {
|
||||||
required: true,
|
required: true,
|
||||||
|
|
|
@ -102,6 +102,15 @@
|
||||||
>
|
>
|
||||||
{{ $t("common:button:reset") }}
|
{{ $t("common:button:reset") }}
|
||||||
</el-button>
|
</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-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</template>
|
</template>
|
||||||
|
@ -315,6 +324,7 @@ import editVisit from "./edit-visit";
|
||||||
import {
|
import {
|
||||||
getPatientStudyBeforeConfirmList,
|
getPatientStudyBeforeConfirmList,
|
||||||
getTrialPatientStudyList,
|
getTrialPatientStudyList,
|
||||||
|
autoBindingPatientStudyVisit,
|
||||||
} from "@/api/trials/study.js";
|
} from "@/api/trials/study.js";
|
||||||
const defaultSearchData = () => {
|
const defaultSearchData = () => {
|
||||||
return {
|
return {
|
||||||
|
@ -356,12 +366,34 @@ export default {
|
||||||
// 修改访视相关
|
// 修改访视相关
|
||||||
editVisitVisible: false,
|
editVisitVisible: false,
|
||||||
editVisitMessage: {},
|
editVisitMessage: {},
|
||||||
|
// 自动绑定
|
||||||
|
automaticBindLoading: false,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getList();
|
this.getList();
|
||||||
},
|
},
|
||||||
methods: {
|
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) {
|
editVisitFn(item) {
|
||||||
this.editVisitVisible = true;
|
this.editVisitVisible = true;
|
||||||
|
|
Loading…
Reference in New Issue