部分问题修复
parent
7be972dd94
commit
4c4e0be8d9
|
@ -34,10 +34,17 @@ export function testConnect(id) {
|
|||
})
|
||||
}
|
||||
|
||||
// 获取DicomAE下拉框数据
|
||||
// 获取calledAE下拉框数据
|
||||
export function getDicomCalledAEList() {
|
||||
return request({
|
||||
url: `/Patient/getDicomCalledAEList`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
// 获取callingAE下拉框数据
|
||||
export function getDicomCallingAEList() {
|
||||
return request({
|
||||
url: `/Patient/getDicomCallingAEList`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
|
@ -213,7 +213,7 @@ export default {
|
|||
if (trialsPanelList.find(c => { return c.path === v.name }) && trialsPanelList.find(c => { return c.path === v.name }).tabHiddn) {
|
||||
return
|
||||
}
|
||||
isHasChild = isHasChild.filter(i => this.isShow(i.path))
|
||||
isHasChild =isHasChild ? isHasChild.filter(i => this.isShow(i.path)) : []
|
||||
if (isHasChild && isHasChild.length > 0) {
|
||||
this.trialsTabChild = isHasChild[0].path
|
||||
this.$router.push({ path: `${this.trialsTabChild}${query ? '?' : ''}${query}` })
|
||||
|
|
|
@ -51,11 +51,10 @@ export default {
|
|||
add() {
|
||||
this.$emit("add");
|
||||
},
|
||||
selectChange() {
|
||||
this.$emit("selectChange");
|
||||
selectChange(flag) {
|
||||
this.$emit("selectChange", flag);
|
||||
},
|
||||
handleChange() {
|
||||
console.log(this.visit);
|
||||
this.$emit("update:modelData", this.visit);
|
||||
},
|
||||
},
|
||||
|
|
|
@ -65,6 +65,7 @@
|
|||
:data="list"
|
||||
stripe
|
||||
height="100"
|
||||
highlight-current-row
|
||||
@selection-change="handleSelectChange"
|
||||
@sort-change="handleSortByColumn"
|
||||
:default-sort="{ prop: 'StudyTime', order: 'descending' }"
|
||||
|
@ -344,6 +345,10 @@ export default {
|
|||
this.$refs.confirmVisitList.clearSort();
|
||||
if (flag) this.list = [];
|
||||
},
|
||||
// 表格高亮
|
||||
setCurrent(val) {
|
||||
this.$refs.confirmVisitList.setCurrentRow(val);
|
||||
},
|
||||
// 表格选择
|
||||
handleSelectChange(selection) {
|
||||
// console.log(selection);
|
||||
|
@ -405,10 +410,10 @@ export default {
|
|||
if (!fd) return;
|
||||
let data = {
|
||||
TrialId: this.submitMessage.TrialId,
|
||||
SubjectVisitId: [],
|
||||
SubjectVisitList: [],
|
||||
};
|
||||
this.tableSelectData.forEach((item) => {
|
||||
data.SubjectVisitId.push(item.SubjectVisitId);
|
||||
data.SubjectVisitList.push(item.SubjectVisitId);
|
||||
});
|
||||
try {
|
||||
this.btnLoading2 = true;
|
||||
|
@ -446,6 +451,14 @@ export default {
|
|||
return true;
|
||||
},
|
||||
},
|
||||
// 校验表格选择访视是否符合要求
|
||||
// verifyData() {
|
||||
// let arr = [...this.tableSelectData];
|
||||
// arr.sort((a, b) => {
|
||||
// new Date(a.StudyTime).getTime() - new Date(b.StudyTime).getTime();
|
||||
// });
|
||||
|
||||
// },
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
|
|
|
@ -18,11 +18,8 @@
|
|||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- DICOM AE -->
|
||||
<el-form-item
|
||||
class="my_multiple"
|
||||
:label="$t('trials:inspection:table:DICOMAE')"
|
||||
>
|
||||
<!-- Called AE -->
|
||||
<el-form-item class="my_multiple" label="Called AE">
|
||||
<el-select
|
||||
v-model="searchData.CalledAEList"
|
||||
clearable
|
||||
|
@ -30,7 +27,23 @@
|
|||
style="width: 140px"
|
||||
>
|
||||
<el-option
|
||||
v-for="(item, index) of dicomAeList"
|
||||
v-for="(item, index) of calledAeList"
|
||||
:key="index"
|
||||
:label="item"
|
||||
:value="item"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- Calling AE -->
|
||||
<el-form-item class="my_multiple" label="Calling AE">
|
||||
<el-select
|
||||
v-model="searchData.callingAE"
|
||||
clearable
|
||||
style="width: 140px"
|
||||
>
|
||||
<el-option
|
||||
v-for="(item, index) of callingAeList"
|
||||
:key="index"
|
||||
:label="item"
|
||||
:value="item"
|
||||
|
@ -249,13 +262,14 @@ import researchTrialsList from "./components/research-trials-list";
|
|||
import addTrialsList from "./components/add-trials-list";
|
||||
import viewStudyList from "./components/view-study-list";
|
||||
import { getPatientList } from "@/api/inspection.js";
|
||||
import { getDicomCalledAEList } from "@/api/dicomAE.js";
|
||||
import { getDicomCalledAEList, getDicomCallingAEList } from "@/api/dicomAE.js";
|
||||
|
||||
const defaultSearchData = () => {
|
||||
return {
|
||||
PatientIdStr: null,
|
||||
PatientName: null,
|
||||
CalledAEList: [],
|
||||
callingAE: null,
|
||||
ExperimentName: null,
|
||||
Asc: false,
|
||||
SortField: "LatestPushTime",
|
||||
|
@ -276,7 +290,8 @@ export default {
|
|||
return {
|
||||
// 查询
|
||||
searchData: defaultSearchData(),
|
||||
dicomAeList: [],
|
||||
calledAeList: [],
|
||||
callingAeList: [],
|
||||
// 检查列表
|
||||
total: 0,
|
||||
loading: false,
|
||||
|
@ -293,15 +308,27 @@ export default {
|
|||
},
|
||||
created() {
|
||||
this.getDicomCalledAEList();
|
||||
this.getDicomCallingAEList();
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
// 获取dicomAE列表
|
||||
// 获取calledAE列表
|
||||
async getDicomCalledAEList() {
|
||||
try {
|
||||
let res = await getDicomCalledAEList();
|
||||
if (res.IsSuccess) {
|
||||
this.dicomAeList = res.Result;
|
||||
this.calledAeList = res.Result;
|
||||
}
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
},
|
||||
// 获取callingAE列表
|
||||
async getDicomCallingAEList() {
|
||||
try {
|
||||
let res = await getDicomCallingAEList();
|
||||
if (res.IsSuccess) {
|
||||
this.callingAeList = res.Result;
|
||||
}
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
<el-row>
|
||||
<!-- 项目码 v-if="trialForm.Id !== ''"-->
|
||||
<el-form-item
|
||||
:label="$t('trials:trials-list:form:trialCode')"
|
||||
:label="$t('trials:trials-list:table:trialId')"
|
||||
prop="TrialCode"
|
||||
>
|
||||
<!-- <el-input v-model="trialForm.TrialCode" disabled /> -->
|
||||
|
|
|
@ -0,0 +1,205 @@
|
|||
<template>
|
||||
<div class="study-info">
|
||||
<div class="functions" style="text-align: right">
|
||||
<!-- 预览 -->
|
||||
<el-button
|
||||
type="primary"
|
||||
size="small"
|
||||
:disabled="studyList.length === 0"
|
||||
icon="el-icon-view"
|
||||
@click="handlePreviewAllFiles"
|
||||
>
|
||||
{{ $t("trials:uploadedDicoms:action:preview") }}
|
||||
</el-button>
|
||||
</div>
|
||||
<el-table
|
||||
v-loading="studyLoading"
|
||||
:data="studyList"
|
||||
style="width: 100%"
|
||||
height="300"
|
||||
>
|
||||
<!-- 检查编号 -->
|
||||
<el-table-column
|
||||
prop="StudyCode"
|
||||
:label="$t('trials:uploadedDicoms:table:studyId')"
|
||||
min-width="80"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 检查类型 -->
|
||||
<el-table-column
|
||||
prop="ModalityForEdit"
|
||||
:label="$t('trials:audit:table:modality')"
|
||||
/>
|
||||
<!-- 检查类型 -->
|
||||
<el-table-column
|
||||
prop="Modalities"
|
||||
:label="$t('trials:audit:table:modality1')"
|
||||
/>
|
||||
<!-- 检查部位 -->
|
||||
<el-table-column
|
||||
prop="BodyPartForEdit"
|
||||
:label="$t('trials:uploadedDicoms:table:bodyPart')"
|
||||
min-width="100"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ getBodyPart(scope.row.BodyPartForEdit) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 序列数量 -->
|
||||
<el-table-column
|
||||
prop="SeriesCount"
|
||||
:label="$t('trials:uploadedDicoms:table:seriesCount')"
|
||||
min-width="100"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 图像数量 -->
|
||||
<el-table-column
|
||||
prop="InstanceCount"
|
||||
:label="$t('trials:uploadedDicoms:table:instanceCount')"
|
||||
min-width="100"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 检查日期 -->
|
||||
<el-table-column
|
||||
prop="StudyTime"
|
||||
:label="$t('trials:uploadedDicoms:table:studyDate')"
|
||||
min-width="120"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ moment(scope.row.StudyTime).format("YYYY-MM-DD") }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 上传时间 -->
|
||||
<el-table-column
|
||||
prop="UploadedTime"
|
||||
:label="$t('trials:uploadedDicoms:table:uploadedTime')"
|
||||
min-width="80"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<el-table-column
|
||||
:label="$t('common:action:action')"
|
||||
min-width="100"
|
||||
fixed="right"
|
||||
>
|
||||
<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>
|
||||
</template>
|
||||
<script>
|
||||
import {
|
||||
getSubjectVisitUploadedStudyList,
|
||||
deleteStudyList,
|
||||
updateModality,
|
||||
} from "@/api/trials";
|
||||
import moment from "moment";
|
||||
import { getToken } from "@/utils/auth";
|
||||
export default {
|
||||
name: "StudyInfo",
|
||||
props: {
|
||||
data: {
|
||||
type: Object,
|
||||
default() {
|
||||
return {};
|
||||
},
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
studyForm: {
|
||||
StudyCode: "",
|
||||
IsDicomData: true,
|
||||
Modalities: "",
|
||||
BodyPartForEdit: [],
|
||||
SeriesCount: null,
|
||||
StudyTime: "",
|
||||
},
|
||||
deleteArr: [],
|
||||
studyLoading: false,
|
||||
studyList: [],
|
||||
trialId: this.$route.query.trialId,
|
||||
moment,
|
||||
relationInfo: null,
|
||||
trialBodyPartTypes: [],
|
||||
trialModalitys: [],
|
||||
btnLoading: false,
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.getStudyInfo();
|
||||
},
|
||||
methods: {
|
||||
getStudyInfo() {
|
||||
this.studyLoading = true;
|
||||
getSubjectVisitUploadedStudyList(this.data.SubjectVisitId)
|
||||
.then((res) => {
|
||||
this.studyList = res.Result;
|
||||
this.studyLoading = false;
|
||||
this.relationInfo = res.OtherInfo;
|
||||
this.trialBodyPartTypes = this.relationInfo.BodyPartTypes
|
||||
? this.relationInfo.BodyPartTypes.split("|")
|
||||
: [];
|
||||
this.trialModalitys = this.relationInfo.Modalitys
|
||||
? this.relationInfo.Modalitys.split("|")
|
||||
: [];
|
||||
})
|
||||
.catch(() => {
|
||||
this.studyLoading = false;
|
||||
});
|
||||
},
|
||||
// 预览所有影像
|
||||
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);
|
||||
},
|
||||
getBodyPart(bodyPart) {
|
||||
if (!bodyPart) return "";
|
||||
var separator = ",";
|
||||
if (bodyPart.indexOf("|") > -1) {
|
||||
separator = "|";
|
||||
} else if (bodyPart.indexOf(",") > -1) {
|
||||
separator = ",";
|
||||
} else if (bodyPart.indexOf(",") > -1) {
|
||||
separator = ",";
|
||||
}
|
||||
var arr = bodyPart.split(separator);
|
||||
var newArr = arr.map((i) => {
|
||||
return this.$fd("Bodypart", i.trim());
|
||||
});
|
||||
return newArr.join(" | ");
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.study-info {
|
||||
.delete-row {
|
||||
text-decoration-line: line-through;
|
||||
color: #c0c4cc;
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,79 @@
|
|||
<template>
|
||||
<el-dialog
|
||||
:visible.sync="visible"
|
||||
:close-on-click-modal="false"
|
||||
:fullscreen="true"
|
||||
custom-class="upload-dialog"
|
||||
:before-close="beforeCloseStudyDig"
|
||||
>
|
||||
<span slot="title">
|
||||
<el-breadcrumb separator-class="el-icon-arrow-right">
|
||||
<el-breadcrumb-item v-show="rowData.SubjectCode">{{
|
||||
rowData.SubjectCode
|
||||
}}</el-breadcrumb-item>
|
||||
<el-breadcrumb-item v-show="rowData.VisitName">{{
|
||||
`${rowData.VisitName} (${rowData.VisitNum})`
|
||||
}}</el-breadcrumb-item>
|
||||
</el-breadcrumb>
|
||||
</span>
|
||||
<div class="base-modal-body">
|
||||
<!-- DICOM影像 -->
|
||||
<h4 class="box-title">{{ $t("trials:crcUpload:label:dicom") }}</h4>
|
||||
<el-card class="box-card">
|
||||
<StudyInfo
|
||||
v-if="rowData.SubjectId"
|
||||
:data="rowData"
|
||||
@getList="getList"
|
||||
@setOpenWindow="setOpenWindow"
|
||||
/>
|
||||
</el-card>
|
||||
<!-- 检查列表 -->
|
||||
<h4 class="box-title">{{ $t("trials:dicom-show:nowStudy") }}</h4>
|
||||
<el-card class="box-card">
|
||||
<StudyInfo
|
||||
v-if="rowData.SubjectId"
|
||||
:data="rowData"
|
||||
@getList="getList"
|
||||
@setOpenWindow="setOpenWindow"
|
||||
/>
|
||||
</el-card>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
import StudyInfo from "./studyInfo.vue";
|
||||
export default {
|
||||
name: "visitInfo",
|
||||
components: { StudyInfo },
|
||||
props: {
|
||||
visible: {
|
||||
required: true,
|
||||
default: false,
|
||||
},
|
||||
rowData: {
|
||||
required: true,
|
||||
default: () => {
|
||||
return {};
|
||||
},
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
openWindow: null,
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
getList() {},
|
||||
setOpenWindow() {},
|
||||
beforeCloseStudyDig() {
|
||||
this.$emit("update:visible", false);
|
||||
},
|
||||
setOpenWindow(window) {
|
||||
if (this.openWindow) {
|
||||
this.openWindow.close();
|
||||
}
|
||||
this.openWindow = window;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
|
@ -151,7 +151,13 @@
|
|||
prop="VisitName"
|
||||
:label="$t('trials:uploadMonitor:table:visitName')"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text" @click="handleOpenStudyDialog(scope.row)">
|
||||
<span>{{ scope.row.VisitName }}</span>
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 数据收集 -->
|
||||
<!-- <el-table-column
|
||||
prop="StudyCode"
|
||||
|
@ -277,12 +283,19 @@
|
|||
v-if="editStudyVisible"
|
||||
@getList="getList"
|
||||
/>
|
||||
<!--访视详情-->
|
||||
<visitInfo
|
||||
v-if="visitVisible"
|
||||
:visible.sync="visitVisible"
|
||||
:rowData="rowData"
|
||||
/>
|
||||
</BaseContainer>
|
||||
</template>
|
||||
<script>
|
||||
import BaseContainer from "@/components/BaseContainer";
|
||||
import Pagination from "@/components/Pagination";
|
||||
import editStudyList from "./components/edit-study-list.vue";
|
||||
import visitInfo from "./components/visit-info.vue";
|
||||
import {
|
||||
getPatientSubejctVisitList,
|
||||
getSubjectImageZipInfo,
|
||||
|
@ -304,7 +317,7 @@ const defaultSearchData = () => {
|
|||
};
|
||||
export default {
|
||||
name: "hirVisit",
|
||||
components: { BaseContainer, Pagination, editStudyList },
|
||||
components: { BaseContainer, Pagination, editStudyList, visitInfo },
|
||||
data() {
|
||||
return {
|
||||
// 查询
|
||||
|
@ -317,6 +330,9 @@ export default {
|
|||
// 修改检查
|
||||
editStudyVisible: false,
|
||||
editStudyData: {},
|
||||
// 访视详情
|
||||
visitVisible: false,
|
||||
rowData: {},
|
||||
};
|
||||
},
|
||||
created() {
|
||||
|
@ -360,6 +376,11 @@ export default {
|
|||
console.log(err);
|
||||
}
|
||||
},
|
||||
// 获取某个访视下的检查信息
|
||||
handleOpenStudyDialog(row) {
|
||||
this.visitVisible = true;
|
||||
this.rowData = { ...row };
|
||||
},
|
||||
// 修改检查
|
||||
editStudy(item) {
|
||||
this.editStudyData = item;
|
||||
|
@ -379,7 +400,7 @@ export default {
|
|||
if (confirm !== "confirm") return;
|
||||
let data = {
|
||||
TrialId: this.$route.query.trialId,
|
||||
SubjectVisitId: [item.SubjectVisitId],
|
||||
SubjectVisitList: [item.SubjectVisitId],
|
||||
};
|
||||
try {
|
||||
this.loading = true;
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
<el-form-item
|
||||
:label="$t('trials:crcQuestion:table:subjectId')"
|
||||
prop="SubjectId"
|
||||
class="SubjectId"
|
||||
>
|
||||
<el-select
|
||||
v-model="submitMessage.SubjectId"
|
||||
|
@ -43,10 +44,6 @@
|
|||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
<p>
|
||||
{{ this.$t("trials:subject:messge:patient") }}
|
||||
<span></span>
|
||||
</p>
|
||||
</el-form-item>
|
||||
<el-button
|
||||
type="primary"
|
||||
|
@ -57,6 +54,11 @@
|
|||
{{ $t("trials:addRP:button:confirmAddPR") }}
|
||||
</el-button>
|
||||
</div>
|
||||
<div>
|
||||
<el-form-item :label="$t('trials:study:tabpane:bindPatient')">
|
||||
<span v-if="bindPatientTip">{{ bindPatientTip }}</span>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<!--患者-->
|
||||
<el-form-item :label="$t('trials:subject:messge:patient')">
|
||||
<el-input
|
||||
|
@ -159,12 +161,14 @@ export default {
|
|||
computed: {
|
||||
bindPatientTip() {
|
||||
if (!this.submitMessage.SubjectId) return false;
|
||||
let PatientList = this.subjectIdList.map((item) => {
|
||||
if (item.SubjectId === this.submitMessage.SubjectId) {
|
||||
return item.PatientList;
|
||||
let PatientList = [];
|
||||
this.subjectIdList.some((item) => {
|
||||
if (item.SubejctId === this.submitMessage.SubjectId) {
|
||||
PatientList.push(...item.PatientList);
|
||||
}
|
||||
})[0];
|
||||
});
|
||||
if (PatientList.length <= 0) return false;
|
||||
return PatientList.map((item) => item.PatientIdStr).join(", ");
|
||||
},
|
||||
},
|
||||
created() {
|
||||
|
|
|
@ -17,8 +17,8 @@
|
|||
class="mr"
|
||||
clearable
|
||||
/>
|
||||
<!-- DICOM AE -->
|
||||
<span>{{ $t("trials:inspection:table:DICOMAE") }}:</span>
|
||||
<!-- Called AE -->
|
||||
<span>Called AE:</span>
|
||||
<el-select
|
||||
v-model="searchData.CalledAEList"
|
||||
clearable
|
||||
|
@ -26,7 +26,18 @@
|
|||
class="mr"
|
||||
>
|
||||
<el-option
|
||||
v-for="(item, index) of dicomAeList"
|
||||
v-for="(item, index) of calledAeList"
|
||||
:key="index"
|
||||
:label="item"
|
||||
:value="item"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
<!-- Calling AE -->
|
||||
<span>Calling AE:</span>
|
||||
<el-select v-model="searchData.callingAE" clearable class="mr">
|
||||
<el-option
|
||||
v-for="(item, index) of callingAeList"
|
||||
:key="index"
|
||||
:label="item"
|
||||
:value="item"
|
||||
|
@ -171,12 +182,13 @@
|
|||
<script>
|
||||
import Pagination from "@/components/Pagination";
|
||||
import { getPatientInitList } from "@/api/trials/subject.js";
|
||||
import { getDicomCalledAEList } from "@/api/dicomAE.js";
|
||||
import { getDicomCalledAEList, getDicomCallingAEList } from "@/api/dicomAE.js";
|
||||
const defaultSearchData = () => {
|
||||
return {
|
||||
PatientIdStr: null,
|
||||
PatientName: null,
|
||||
CalledAEList: [],
|
||||
callingAE: null,
|
||||
ExperimentName: null,
|
||||
Asc: false,
|
||||
SortField: "LatestPushTime",
|
||||
|
@ -203,7 +215,8 @@ export default {
|
|||
return {
|
||||
// 查询
|
||||
searchData: defaultSearchData(),
|
||||
dicomAeList: [],
|
||||
calledAeList: [],
|
||||
callingAeList: [],
|
||||
// 列表
|
||||
list: [],
|
||||
total: 0,
|
||||
|
@ -216,6 +229,7 @@ export default {
|
|||
created() {
|
||||
this.getList();
|
||||
this.getDicomCalledAEList();
|
||||
this.getDicomCallingAEList();
|
||||
},
|
||||
methods: {
|
||||
// 确定添加
|
||||
|
@ -230,7 +244,9 @@ export default {
|
|||
data[key] = this.searchData[key];
|
||||
});
|
||||
data.TrialId = this.$route.query.trialId;
|
||||
data.SubjectId = this.submitMessage.SubjectId;
|
||||
if (this.submitMessage.SubjectId.length === 36) {
|
||||
data.SubjectId = this.submitMessage.SubjectId;
|
||||
}
|
||||
try {
|
||||
this.loading = true;
|
||||
let res = await getPatientInitList(data);
|
||||
|
@ -272,12 +288,23 @@ export default {
|
|||
this.$refs.subjectPatientList.clearSort();
|
||||
this.getList();
|
||||
},
|
||||
// 获取dicomAE列表
|
||||
// 获取calledAE列表
|
||||
async getDicomCalledAEList() {
|
||||
try {
|
||||
let res = await getDicomCalledAEList();
|
||||
if (res.IsSuccess) {
|
||||
this.dicomAeList = res.Result;
|
||||
this.calledAeList = res.Result;
|
||||
}
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
},
|
||||
// 获取callingAE列表
|
||||
async getDicomCallingAEList() {
|
||||
try {
|
||||
let res = await getDicomCallingAEList();
|
||||
if (res.IsSuccess) {
|
||||
this.callingAeList = res.Result;
|
||||
}
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,136 +1,154 @@
|
|||
<template>
|
||||
<div class="trial-information">
|
||||
<el-descriptions :column="2" border style="width:1000px;">
|
||||
<el-descriptions :column="2" border style="width: 1000px">
|
||||
<!--项目编号-->
|
||||
<el-descriptions-item :label="$t('trials:trials-list:form:trialId')">
|
||||
{{trialInfo.TrialCode}}
|
||||
<el-tag v-show="trialInfo.TrialStatusStr" size="small" style="margin-left:10px;">
|
||||
( {{ $fd('TrialStatusEnum',trialInfo.TrialStatusStr) }} )
|
||||
{{ trialInfo.TrialCode }}
|
||||
<el-tag
|
||||
v-show="trialInfo.TrialStatusStr"
|
||||
size="small"
|
||||
style="margin-left: 10px"
|
||||
>
|
||||
( {{ $fd("TrialStatusEnum", trialInfo.TrialStatusStr) }} )
|
||||
</el-tag>
|
||||
</el-descriptions-item>
|
||||
<!--项目类型-->
|
||||
<el-descriptions-item :label="$t('trials:trials-list:form:trialType')">
|
||||
{{ $fd('TrialType', trialInfo.TrialType) }}
|
||||
{{ $fd("TrialType", trialInfo.TrialType) }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item :label="$t('trials:trials-list:form:experimentName')">
|
||||
{{trialInfo.ExperimentName}}
|
||||
<!--试验名称-->
|
||||
<el-descriptions-item
|
||||
:label="$t('trials:trials-list:form:experimentName')"
|
||||
>
|
||||
{{ trialInfo.ExperimentName }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item :label="$t('trials:trials-list:form:researchNumber')">
|
||||
<!--研究方案号-->
|
||||
<el-descriptions-item
|
||||
:label="$t('trials:trials-list:form:researchNumber')"
|
||||
>
|
||||
{{ trialInfo.ResearchProgramNo }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item :label="$t('trials:trials-list:form:researchUnit')">
|
||||
{{trialInfo.MainResearchUnit}}
|
||||
</el-descriptions-item>
|
||||
<!--主要研究者-->
|
||||
<el-descriptions-item :label="$t('trials:trials-list:form:pi')">
|
||||
{{ trialInfo.HeadPI }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<!--申办方-->
|
||||
<el-descriptions-item :label="$t('trials:trials-list:form:sponsor')">
|
||||
{{trialInfo.Sponsor}}
|
||||
{{ trialInfo.Sponsor }}
|
||||
</el-descriptions-item>
|
||||
<!--CRO-->
|
||||
<el-descriptions-item :label="$t('trials:trials-list:form:cro')">
|
||||
{{ trialInfo.CRO }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item :label="$t('trials:trials-list:form:declarationType')">
|
||||
{{trialInfo.DeclarationTypeEnumList.map(v => $fd('DeclarationType', v)).toString()}}
|
||||
<!--药物/器械名称-->
|
||||
<el-descriptions-item :label="$t('trials:trials-list:message:D/Dname')">
|
||||
{{ trialInfo.MedicineName }}
|
||||
</el-descriptions-item>
|
||||
<!--临床分期-->
|
||||
<el-descriptions-item :label="$t('trials:trials-list:form:phase')">
|
||||
{{ trialInfo.Phase }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item :label="$t('trials:trials-list:form:indicationType')">
|
||||
{{$fd('IndicationType', trialInfo.IndicationTypeId, 'id')}}
|
||||
{{ $fd("Trial_Phase", trialInfo.PhaseId, "id") }}
|
||||
</el-descriptions-item>
|
||||
<!--适应症-->
|
||||
<el-descriptions-item :label="$t('trials:trials-list:form:indication')">
|
||||
{{$fd('Indication', trialInfo.IndicationEnum)}}{{trialInfo.Indication}}
|
||||
{{ trialInfo.Indication }}
|
||||
</el-descriptions-item>
|
||||
<!--检查技术-->
|
||||
<el-descriptions-item :label="$t('trials:trials-list:form:modality')">
|
||||
{{trialInfo.ModalityList}}
|
||||
{{
|
||||
trialInfo.ModalityIds
|
||||
? trialInfo.ModalityIds.map((item) =>
|
||||
$fd("Modality", item, "id")
|
||||
).join(", ")
|
||||
: ""
|
||||
}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item :label="$t('trials:trials-list:form:siteCount')">
|
||||
{{ trialInfo.PlanSiteCount }}
|
||||
<!--阅片标准-->
|
||||
<el-descriptions-item
|
||||
:span="2"
|
||||
:label="$t('trials:trials-list:form:criterion')"
|
||||
>
|
||||
{{
|
||||
trialInfo.CriterionTypeList
|
||||
? trialInfo.CriterionTypeList.map((item) =>
|
||||
$fd("CriterionType", item)
|
||||
).join(", ")
|
||||
: ""
|
||||
}}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item :label="$t('trials:trials-list:form:patientsNum')">
|
||||
{{trialInfo.ExpectedPatients}}
|
||||
<!--联系人-->
|
||||
<el-descriptions-item
|
||||
:label="$t('trials:researchRecord:table:contactor')"
|
||||
>
|
||||
{{ trialInfo.ContactUser }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item :label="$t('trials:trials-list:form:timePointsPerPatient')">
|
||||
{{ trialInfo.TimePointsPerPatient }}
|
||||
<!--电话-->
|
||||
<el-descriptions-item :label="$t('trials:trials-myinfo:form:phone')">
|
||||
{{ trialInfo.ContactPhone }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item :span="2" :label="$t('trials:trials-list:form:visitCount')">
|
||||
{{trialInfo.PlanVisitCount}}
|
||||
<!--授权时长-->
|
||||
<el-descriptions-item
|
||||
:label="$t('trials:trials-list:table:durationAuthorized')"
|
||||
>
|
||||
{{ trialInfo.AuthorizationYear }}
|
||||
</el-descriptions-item>
|
||||
|
||||
|
||||
<el-descriptions-item :span="2" :label="$t('trials:trials-list:form:criterion')">
|
||||
{{ trialInfo.Criterion }}
|
||||
<!--授权日期-->
|
||||
<el-descriptions-item
|
||||
:label="$t('trials:trials-list:table:dateAuthorized')"
|
||||
>
|
||||
{{ trialInfo.AuthorizationDate }}
|
||||
</el-descriptions-item>
|
||||
<!-- <el-descriptions-item :label="$t('trials:trials-list:form:reviewMode')">-->
|
||||
<!-- <span>{{$fd('ReadingType', trialInfo.ReadingType)}}</span>-->
|
||||
<!-- </el-descriptions-item>-->
|
||||
|
||||
<el-descriptions-item :label="$t('trials:trials-list:form:expedited')">
|
||||
{{$fd('YesOrNoForInt', trialInfo.Expedited)}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item :label="$t('trials:trials-list:form:projectCycle')">
|
||||
{{ trialInfo.ProjectCycle }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item :label="$t('trials:trials-list:form:totalReviewers')">
|
||||
{{trialInfo.TotalReviewers}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item :label="$t('trials:trials-list:form:typeofReviewers')">
|
||||
{{trialInfo.AttendedReviewerTypeEnumList.map(v => $fd('AttendedReviewerType', v)).toString()}}
|
||||
</el-descriptions-item>
|
||||
|
||||
</el-descriptions>
|
||||
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { getTrialInfoHir } from '@/api/trials'
|
||||
import { getTrialInfoHir } from "@/api/trials";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
trialInfo: {},
|
||||
trialId: '',
|
||||
trialStatus: '',
|
||||
formLoading: false
|
||||
}
|
||||
trialId: "",
|
||||
trialStatus: "",
|
||||
formLoading: false,
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.trialId = this.$route.query.trialId
|
||||
this.initForm()
|
||||
this.trialId = this.$route.query.trialId;
|
||||
this.initForm();
|
||||
},
|
||||
methods: {
|
||||
initForm() {
|
||||
this.formLoading = true
|
||||
getTrialInfoHir(this.trialId).then(res => {
|
||||
this.formLoading = false
|
||||
this.trialInfo = res.Result
|
||||
this.trialInfo.ReviewTypeList = this.trialInfo.ReviewTypeList.length > 0 ? this.trialInfo.ReviewTypeList.join(', ') : ''
|
||||
var modalityArr = []
|
||||
res.Result.ModalityIds.map(i=>{
|
||||
modalityArr.push(this.$fd('Modality',i,'id'))
|
||||
this.formLoading = true;
|
||||
getTrialInfoHir(this.trialId)
|
||||
.then((res) => {
|
||||
this.formLoading = false;
|
||||
this.trialInfo = res.Result;
|
||||
this.trialInfo.ReviewTypeList =
|
||||
this.trialInfo.ReviewTypeList.length > 0
|
||||
? this.trialInfo.ReviewTypeList.join(", ")
|
||||
: "";
|
||||
var modalityArr = [];
|
||||
res.Result.ModalityIds.map((i) => {
|
||||
modalityArr.push(this.$fd("Modality", i, "id"));
|
||||
});
|
||||
this.trialInfo.ModalityList = modalityArr.join(", ");
|
||||
this.trialInfo.Criterion =
|
||||
res.Result.CriterionList && res.Result.CriterionList.length > 0
|
||||
? res.Result.CriterionList.join(", ")
|
||||
: "";
|
||||
// this.trialInfo.Expedited = this.$fd('Trial_BasicInfo', res.Result.Expedited)
|
||||
// this.trialInfo.AttendedReviewerType = this.$fd('Trial_BasicInfo', res.Result.AttendedReviewerType)
|
||||
})
|
||||
this.trialInfo.ModalityList = modalityArr.join(', ')
|
||||
this.trialInfo.Criterion = res.Result.CriterionList && res.Result.CriterionList.length > 0
|
||||
? res.Result.CriterionList.join(', ')
|
||||
: ''
|
||||
// this.trialInfo.Expedited = this.$fd('Trial_BasicInfo', res.Result.Expedited)
|
||||
// this.trialInfo.AttendedReviewerType = this.$fd('Trial_BasicInfo', res.Result.AttendedReviewerType)
|
||||
}).catch(() => { this.formLoading = false })
|
||||
}
|
||||
}
|
||||
}
|
||||
.catch(() => {
|
||||
this.formLoading = false;
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.trial-information{
|
||||
height: 100%;
|
||||
padding: 10px 0 0 10px;
|
||||
background: #fff;
|
||||
}
|
||||
.trial-information {
|
||||
height: 100%;
|
||||
padding: 10px 0 0 10px;
|
||||
background: #fff;
|
||||
}
|
||||
</style>
|
||||
|
|
Loading…
Reference in New Issue