pacs直连、检查查询条件新增
continuous-integration/drone/push Build is passing Details

uat_us
DESKTOP-6C3NK6N\WXS 2024-07-23 11:13:20 +08:00
parent 9b6f8717c3
commit 90e33e1b97
3 changed files with 293 additions and 187 deletions

View File

@ -3810,4 +3810,12 @@ export function submitVisitStudyBinding(data) {
data data
}) })
} }
// 获取pacs检查技术
export function getDicomModalityList(params) {
return request({
url: `/Patient/getDicomModalityList`,
method: 'get',
params
})
}

View File

@ -9,7 +9,7 @@
v-model="searchData.SiteId" v-model="searchData.SiteId"
clearable clearable
filterable filterable
style="width:150px" style="width: 150px"
> >
<el-option <el-option
v-for="item of siteOptions" v-for="item of siteOptions"
@ -21,7 +21,7 @@
</el-form-item> </el-form-item>
<!-- Subject --> <!-- Subject -->
<el-form-item :label="$t('trials:studyList:table:subject')"> <el-form-item :label="$t('trials:studyList:table:subject')">
<el-input v-model="searchData.SubjectInfo" style="width:140px" /> <el-input v-model="searchData.SubjectInfo" style="width: 140px" />
</el-form-item> </el-form-item>
<!-- Visit --> <!-- Visit -->
<el-form-item :label="$t('trials:studyList:table:visit')"> <el-form-item :label="$t('trials:studyList:table:visit')">
@ -40,32 +40,42 @@
> >
<span style="float: left">{{ item.VisitName }}</span> <span style="float: left">{{ item.VisitName }}</span>
</el-option> </el-option>
<el-option key="Other" label="Out of Plan" value="1.11" />
</el-select>
</el-form-item>
<el-form-item :label="$t('trials:studyList:table:isFromPacs')">
<el-select v-model="searchData.IsFromPACS" clearable>
<el-option <el-option
key="Other" v-for="item of $d.UploadType"
label="Out of Plan" :key="item.id"
value="1.11" :label="item.label"
/> :value="item.value"
>
</el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<!-- 查询 --> <!-- 查询 -->
<el-button type="primary" icon="el-icon-search" @click="handleSearch"> <el-button type="primary" icon="el-icon-search" @click="handleSearch">
{{ $t('common:button:search') }} {{ $t("common:button:search") }}
</el-button> </el-button>
<!-- 重置 --> <!-- 重置 -->
<el-button type="primary" icon="el-icon-refresh-left" @click="handleReset"> <el-button
{{ $t('common:button:reset') }} type="primary"
icon="el-icon-refresh-left"
@click="handleReset"
>
{{ $t("common:button:reset") }}
</el-button> </el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</template> </template>
<!-- 检查列表 --> <!-- 检查列表 -->
<template slot="main-container"> <template slot="main-container">
<el-table <el-table
v-loading="loading" v-loading="loading"
v-adaptive="{bottomOffset:60}" v-adaptive="{ bottomOffset: 60 }"
:data="list" :data="list"
stripe stripe
height="100" height="100"
@ -104,19 +114,31 @@
<!-- Modality,Body Part Examined,Count,Study Date --> <!-- Modality,Body Part Examined,Count,Study Date -->
<!-- Study Info --> <!-- Study Info -->
<div slot="content"> <div slot="content">
{{ `${$t('trials:studyList:table:modality')}, ${$t('trials:studyList:table:bodyPart')}, ${$t('trials:studyList:table:studyDate')}, ${$t('trials:studyList:table:count')}` }} {{
`${$t("trials:studyList:table:modality")}, ${$t(
"trials:studyList:table:bodyPart"
)}, ${$t("trials:studyList:table:studyDate")}, ${$t(
"trials:studyList:table:count"
)}`
}}
</div> </div>
<span>{{ $t('trials:studyList:table:studyInfo') }}</span> <span>{{ $t("trials:studyList:table:studyInfo") }}</span>
</el-tooltip> </el-tooltip>
</template> </template>
<template slot-scope="scope"> <template slot-scope="scope">
<div style="display: flex;align-items: center"> <div style="display: flex; align-items: center">
<div v-if="scope.row.Modalities">{{ scope.row.Modalities }}({{ scope.row.Count }}), </div> <div v-if="scope.row.Modalities">
<div v-else style="color:#f44336;">N/A, </div> {{ scope.row.Modalities }}({{ scope.row.Count }}),
<div v-if="scope.row.Bodypart" style="margin:0 3px;">{{ scope.row.Bodypart }}, </div> </div>
<div v-else style="color:#f44336;margin:0 3px;">N/A, </div> <div v-else style="color: #f44336">N/A,</div>
<div v-if="scope.row.StudyTime">{{ moment(scope.row.StudyTime).format('YYYY-MM-DD') }} </div> <div v-if="scope.row.Bodypart" style="margin: 0 3px">
<div v-else style="color:#f44336;">N/A </div> {{ scope.row.Bodypart }},
</div>
<div v-else style="color: #f44336; margin: 0 3px">N/A,</div>
<div v-if="scope.row.StudyTime">
{{ moment(scope.row.StudyTime).format("YYYY-MM-DD") }}
</div>
<div v-else style="color: #f44336">N/A</div>
<div> <div>
<!-- <el-popover v-if="scope.row.Count && scope.row.IsDicom" trigger="click" placement="bottom"> <!-- <el-popover v-if="scope.row.Count && scope.row.IsDicom" trigger="click" placement="bottom">
<el-table v-loading="seriesLoading" :data="seriesList" height="200" size="small" class="seriesListOfStudy"> <el-table v-loading="seriesLoading" :data="seriesList" height="200" size="small" class="seriesListOfStudy">
@ -174,29 +196,32 @@
</el-button> --> </el-button> -->
<!-- <span>({{ scope.row.Count }})</span> --> <!-- <span>({{ scope.row.Count }})</span> -->
<!-- <span v-else style="color:#f44336;">N/A</span> --> <!-- <span v-else style="color:#f44336;">N/A</span> -->
</div> </div>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column min-width="120" show-overflow-tooltip>
min-width="120"
show-overflow-tooltip
>
<template slot="header"> <template slot="header">
<el-tooltip placement="top"> <el-tooltip placement="top">
<div slot="content"> <div slot="content">
{{ `${$t('trials:studyList:table:siteId')}, ${$t('trials:studyList:table:siteName')}` }} {{
`${$t("trials:studyList:table:siteId")}, ${$t(
"trials:studyList:table:siteName"
)}`
}}
</div> </div>
<span>{{ $t('trials:studyList:table:site') }}</span> <span>{{ $t("trials:studyList:table:site") }}</span>
</el-tooltip> </el-tooltip>
</template> </template>
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.TrialSiteCode">{{ scope.row.TrialSiteCode }}, </span> <span v-if="scope.row.TrialSiteCode"
<span v-else style="color:#f44336;">N/A, </span> >{{ scope.row.TrialSiteCode }},
<span v-if="scope.row.TrialSiteAliasName">{{ scope.row.TrialSiteAliasName }}</span> </span>
<span v-else style="color:#f44336;">N/A</span> <span v-else style="color: #f44336">N/A, </span>
<span v-if="scope.row.TrialSiteAliasName">{{
scope.row.TrialSiteAliasName
}}</span>
<span v-else style="color: #f44336">N/A</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@ -205,21 +230,22 @@
sortable="custom" sortable="custom"
show-overflow-tooltip show-overflow-tooltip
/> />
<el-table-column <el-table-column min-width="90" show-overflow-tooltip>
min-width="90"
show-overflow-tooltip
>
<template slot="header"> <template slot="header">
<el-tooltip placement="top"> <el-tooltip placement="top">
<div slot="content"> <div slot="content">
{{ `${$t('trials:studyList:table:visitName')}, ${$t('trials:studyList:table:visitNum')}` }}<br> {{
`${$t("trials:studyList:table:visitName")}, ${$t(
"trials:studyList:table:visitNum"
)}`
}}<br />
</div> </div>
<span>{{ $t('trials:studyList:table:visit') }}</span> <span>{{ $t("trials:studyList:table:visit") }}</span>
</el-tooltip> </el-tooltip>
</template> </template>
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.VisitName">{{ scope.row.VisitName }}, </span> <span v-if="scope.row.VisitName">{{ scope.row.VisitName }}, </span>
<span v-else style="color:#f44336;">N/A, </span> <span v-else style="color: #f44336">N/A, </span>
<span>{{ scope.row.VisitNum }}</span> <span>{{ scope.row.VisitNum }}</span>
</template> </template>
</el-table-column> </el-table-column>
@ -237,8 +263,24 @@
sortable="custom" sortable="custom"
min-width="120" min-width="120"
/> />
<el-table-column
<el-table-column :label="$t('common:action:action')" min-width="100" fixed="right"> prop="IsFromPACS"
:label="$t('trials:studyList:table:isFromPacs')"
show-overflow-tooltip
sortable="custom"
min-width="120"
>
<template slot-scope="scope">
<el-tag :type="scope.row.IsFromPACS ? 'warning' : ''">
{{ $fd("UploadType", scope.row.IsFromPACS) }}
</el-tag>
</template>
</el-table-column>
<el-table-column
:label="$t('common:action:action')"
min-width="100"
fixed="right"
>
<template slot-scope="scope"> <template slot-scope="scope">
<!-- 查看 --> <!-- 查看 -->
<el-button <el-button
@ -262,23 +304,32 @@
</el-table> </el-table>
<!-- 分页组件 --> <!-- 分页组件 -->
<pagination class="page" :total="total" :page.sync="searchData.PageIndex" :limit.sync="searchData.PageSize" @pagination="getList" /> <pagination
class="page"
:total="total"
:page.sync="searchData.PageIndex"
:limit.sync="searchData.PageSize"
@pagination="getList"
/>
</template> </template>
<base-model :config="share_model"> <base-model :config="share_model">
<template slot="dialog-body"> <template slot="dialog-body">
<div> <div>
<i style="color:#428bca;" class="el-icon-success" /> <i style="color: #428bca" class="el-icon-success" />
<span>成功创建分享链接</span> <span>成功创建分享链接</span>
</div> </div>
<div style="margin:10px 0;"> <div style="margin: 10px 0">
链接<el-input v-model="shareLink" readonly style="width:420px;" /> 链接<el-input v-model="shareLink" readonly style="width: 420px" />
</div> </div>
<div style="margin-bottom:20px;"> <div style="margin-bottom: 20px">
提取码 <el-input v-model="extractionCode" style="width:100px;" readonly /> 提取码
<el-input v-model="extractionCode" style="width: 100px" readonly />
</div> </div>
<div> <div>
<el-button type="primary" round @click="copyCode"></el-button> <el-button type="primary" round @click="copyCode"
>复制链接及提取码</el-button
>
</div> </div>
</template> </template>
</base-model> </base-model>
@ -292,11 +343,16 @@
append-to-body append-to-body
custom-class="base-dialog-wrapper" custom-class="base-dialog-wrapper"
> >
<div class="base-modal-body" style="border:2px solid #ccc;padding: 10px"> <div
<NonDicomPreview v-if="previewNonDicomVisible" :none-dicom-id="rowData.Id" /> class="base-modal-body"
style="border: 2px solid #ccc; padding: 10px"
>
<NonDicomPreview
v-if="previewNonDicomVisible"
:none-dicom-id="rowData.Id"
/>
</div> </div>
</el-dialog> </el-dialog>
</BaseContainer> </BaseContainer>
</template> </template>
<script> <script>
@ -305,28 +361,28 @@ import {
getTrialSiteSelect, getTrialSiteSelect,
getSeriesList, getSeriesList,
getTrialVisitStageSelect, getTrialVisitStageSelect,
getNoneDicomStudyFileList getNoneDicomStudyFileList,
} from "@/api/trials";
} from '@/api/trials' import { createImageShare } from "@/api/share";
import { createImageShare } from '@/api/share' import BaseContainer from "@/components/BaseContainer";
import BaseContainer from '@/components/BaseContainer' import Pagination from "@/components/Pagination";
import Pagination from '@/components/Pagination' import BaseModel from "@/components/BaseModel";
import BaseModel from '@/components/BaseModel' import NonDicomPreview from "./components/nonDicomPreview";
import NonDicomPreview from './components/nonDicomPreview' import moment from "moment";
import moment from 'moment' import { getToken } from "@/utils/auth";
import { getToken } from '@/utils/auth'
const searchDataDefault = () => { const searchDataDefault = () => {
return { return {
SubjectInfo: '', SubjectInfo: "",
VisitPlanArray: [], VisitPlanArray: [],
Status: '', IsFromPACS: null,
SiteId: '', Status: "",
SiteId: "",
PageIndex: 1, PageIndex: 1,
PageSize: 20 PageSize: 20,
} };
} };
export default { export default {
name: 'StudyList', name: "StudyList",
components: { BaseContainer, Pagination, BaseModel, NonDicomPreview }, components: { BaseContainer, Pagination, BaseModel, NonDicomPreview },
data() { data() {
return { return {
@ -339,195 +395,217 @@ export default {
seriesList: [], seriesList: [],
nonDicomfilesList: [], nonDicomfilesList: [],
rowData: {}, rowData: {},
userTypeEnumInt: zzSessionStorage.getItem('userTypeEnumInt') * 1, userTypeEnumInt: zzSessionStorage.getItem("userTypeEnumInt") * 1,
share_model: { visible: false, title: '影像分享', showClose: true, width: '500px' }, share_model: {
shareLink: '', visible: false,
extractionCode: '', title: "影像分享",
showClose: true,
width: "500px",
},
shareLink: "",
extractionCode: "",
moment, moment,
filesLoading: '', filesLoading: "",
seriesLoading: '', seriesLoading: "",
previewNonDicomVisible: false, previewNonDicomVisible: false,
trialId: this.$route.query.trialId, trialId: this.$route.query.trialId,
tokenKey: getToken(), tokenKey: getToken(),
openWindow: null, openWindow: null,
bp: [] bp: [],
} };
}, },
async mounted() { async mounted() {
this.bp = await this.$getBodyPart(this.$route.query.trialId) this.bp = await this.$getBodyPart(this.$route.query.trialId);
this.getSite() this.getSite();
this.getVisitPlanOptions() this.getVisitPlanOptions();
this.getList() this.getList();
}, },
methods: { methods: {
// //
getList() { getList() {
this.loading = true this.loading = true;
this.searchData.TrialId = this.trialId this.searchData.TrialId = this.trialId;
getDicomAndNoneDicomStudyList(this.searchData) getDicomAndNoneDicomStudyList(this.searchData)
.then((res) => { .then((res) => {
this.loading = false this.loading = false;
this.list = res.Result.CurrentPageData this.list = res.Result.CurrentPageData;
this.total = res.Result.TotalCount this.total = res.Result.TotalCount;
}) })
.catch(() => { .catch(() => {
this.loading = false this.loading = false;
}) });
}, },
// Dicom // Dicom
handleGetseriesList(row) { handleGetseriesList(row) {
this.seriesLoading = true this.seriesLoading = true;
this.seriesList = [] this.seriesList = [];
getSeriesList(row.Id).then((res) => { getSeriesList(row.Id)
this.seriesLoading = false .then((res) => {
this.seriesList = res.Result this.seriesLoading = false;
}).catch(() => { this.seriesList = res.Result;
this.seriesLoading = false })
}) .catch(() => {
this.seriesLoading = false;
});
}, },
// Dicom // Dicom
handleGetFilesList(id) { handleGetFilesList(id) {
this.filesLoading = true this.filesLoading = true;
getNoneDicomStudyFileList(id).then(res => { getNoneDicomStudyFileList(id)
this.nonDicomfilesList = res.Result .then((res) => {
this.filesLoading = false this.nonDicomfilesList = res.Result;
}).catch(() => { this.filesLoading = false }) this.filesLoading = false;
})
.catch(() => {
this.filesLoading = false;
});
}, },
// //
handleViewStudy(row) { handleViewStudy(row) {
if (this.openWindow) { if (this.openWindow) {
this.openWindow.close() this.openWindow.close();
} }
if (row.IsDicom) { if (row.IsDicom) {
const routeData = this.$router.resolve({ const routeData = this.$router.resolve({
path: `/showdicom?studyId=${row.Id}&TokenKey=${this.tokenKey}&type=Study` path: `/showdicom?studyId=${row.Id}&TokenKey=${this.tokenKey}&type=Study`,
}) });
this.openWindow = window.open(routeData.href, '_blank') this.openWindow = window.open(routeData.href, "_blank");
} else { } else {
// this.rowData = { ...row } // this.rowData = { ...row }
// this.previewNonDicomVisible = true // this.previewNonDicomVisible = true
let trialId = this.$route.query.trialId let trialId = this.$route.query.trialId;
const routeData = this.$router.resolve({ const routeData = this.$router.resolve({
path: `/showNoneDicoms?trialId=${trialId}&subjectVisitId=${row.SubjectVisitId}&studyId=${row.Id}&TokenKey=${this.tokenKey}` path: `/showNoneDicoms?trialId=${trialId}&subjectVisitId=${row.SubjectVisitId}&studyId=${row.Id}&TokenKey=${this.tokenKey}`,
}) });
this.openWindow = window.open(routeData.href, '_blank') this.openWindow = window.open(routeData.href, "_blank");
} }
}, },
handlePreviewNonDicom(row) { handlePreviewNonDicom(row) {
if (this.openWindow) { if (this.openWindow) {
this.openWindow.close() this.openWindow.close();
} }
let trialId = this.$route.query.trialId let trialId = this.$route.query.trialId;
const routeData = this.$router.resolve({ const routeData = this.$router.resolve({
path: `/showNoneDicoms?trialId=${trialId}&subjectVisitId=${row.SubjectVisitId}&studyId=${row.Id}&TokenKey=${this.tokenKey}` path: `/showNoneDicoms?trialId=${trialId}&subjectVisitId=${row.SubjectVisitId}&studyId=${row.Id}&TokenKey=${this.tokenKey}`,
}) });
this.openWindow = window.open(routeData.href, '_blank') this.openWindow = window.open(routeData.href, "_blank");
}, },
// //
handlePreview(row) { handlePreview(row) {
if (this.openWindow) { if (this.openWindow) {
this.openWindow.close() this.openWindow.close();
} }
this.openWindow = window.open(row.FullFilePath, '_blank') this.openWindow = window.open(row.FullFilePath, "_blank");
}, },
// //
studyStatusFormatter(StudyStatus) { studyStatusFormatter(StudyStatus) {
if (StudyStatus === 5) return 'Uploaded' if (StudyStatus === 5) return "Uploaded";
else if (StudyStatus === 1) return 'Uploading' else if (StudyStatus === 1) return "Uploading";
else if (StudyStatus === 7) return 'QA Requested' else if (StudyStatus === 7) return "QA Requested";
else if (StudyStatus === 10) return 'In QA' else if (StudyStatus === 10) return "In QA";
else if (StudyStatus === 25) return 'QA-Passed' else if (StudyStatus === 25) return "QA-Passed";
else if (StudyStatus === 26) return 'QA-Failed' else if (StudyStatus === 26) return "QA-Failed";
else if (StudyStatus === 28) return 'Anonymizing' else if (StudyStatus === 28) return "Anonymizing";
else if (StudyStatus === 30) return 'Anonymized' else if (StudyStatus === 30) return "Anonymized";
else if (StudyStatus === 32) return 'Anonymizing Failed' else if (StudyStatus === 32) return "Anonymizing Failed";
else if (StudyStatus === 34) return 'Forwarding' else if (StudyStatus === 34) return "Forwarding";
else if (StudyStatus === 36) return 'Forwarded' else if (StudyStatus === 36) return "Forwarded";
else if (StudyStatus === 38) return 'Forwarding Failed' else if (StudyStatus === 38) return "Forwarding Failed";
else return '' else return "";
}, },
// site // site
getSite() { getSite() {
getTrialSiteSelect(this.trialId).then((res) => { getTrialSiteSelect(this.trialId).then((res) => {
this.siteOptions = res.Result this.siteOptions = res.Result;
}) });
}, },
// visit // visit
getVisitPlanOptions() { getVisitPlanOptions() {
getTrialVisitStageSelect(this.trialId) getTrialVisitStageSelect(this.trialId).then((res) => {
.then((res) => { this.visitPlanOptions = res.Result;
this.visitPlanOptions = res.Result });
})
}, },
// //
handleShareImage(row) { handleShareImage(row) {
this.shareLink = '' this.shareLink = "";
this.extractionCode = '' this.extractionCode = "";
const params = { const params = {
TrialId: row.TrialId, TrialId: row.TrialId,
SiteId: row.SiteId, SiteId: row.SiteId,
SubjectId: row.SubjectId, SubjectId: row.SubjectId,
StudyId: row.Id StudyId: row.Id,
} };
this.loading = true this.loading = true;
createImageShare(params).then((res) => { createImageShare(params)
this.loading = false .then((res) => {
if (res.IsSuccess) { this.loading = false;
// this.shareLink = `${window.location.origin}${window.location.pathname}#/imagesShare?id=${res.Result.ResourceId}` if (res.IsSuccess) {
this.shareLink = `${window.location.origin}/imagesShare?id=${res.Result.ResourceId}` // this.shareLink = `${window.location.origin}${window.location.pathname}#/imagesShare?id=${res.Result.ResourceId}`
this.extractionCode = res.Result.Password this.shareLink = `${window.location.origin}/imagesShare?id=${res.Result.ResourceId}`;
this.share_model.visible = true this.extractionCode = res.Result.Password;
} this.share_model.visible = true;
}).catch(() => { this.loading = false }) }
})
.catch(() => {
this.loading = false;
});
}, },
getBodyPart(bodyPart) { getBodyPart(bodyPart) {
if (!bodyPart) return '' if (!bodyPart) return "";
var separator = ',' var separator = ",";
if (bodyPart.indexOf('|') > -1) { if (bodyPart.indexOf("|") > -1) {
separator = '|' separator = "|";
} else if (bodyPart.indexOf(',') > -1) { } else if (bodyPart.indexOf(",") > -1) {
separator = ',' separator = ",";
} else if (bodyPart.indexOf('') > -1) { } else if (bodyPart.indexOf("") > -1) {
separator = '' separator = "";
} }
var arr = bodyPart.split(separator) var arr = bodyPart.split(separator);
var newArr = arr.map(i => { var newArr = arr.map((i) => {
return this.$fd('Bodypart', i.trim(), 'Code', { Bodypart: this.bp }, 'Name') return this.$fd(
}) "Bodypart",
return newArr.join(' | ') i.trim(),
"Code",
{ Bodypart: this.bp },
"Name"
);
});
return newArr.join(" | ");
}, },
// //
copyCode() { copyCode() {
this.$copyText(`链接: ${this.shareLink} 提取码: ${this.extractionCode}`).then( this.$copyText(`链接: ${this.shareLink} 提取码: ${this.extractionCode}`)
res => { .then((res) => {
this.$message.success('复制成功') this.$message.success("复制成功");
} })
).catch(() => { this.$alert('复制失败') }) .catch(() => {
this.$alert("复制失败");
});
}, },
onCopyError() { onCopyError() {
this.$alert('复制失败') this.$alert("复制失败");
}, },
// //
handleSearch() { handleSearch() {
this.searchData.PageIndex = 1 this.searchData.PageIndex = 1;
this.getList() this.getList();
}, },
// //
handleReset() { handleReset() {
this.searchData = searchDataDefault() this.searchData = searchDataDefault();
this.getList() this.getList();
}, },
// //
handleSortByColumn(column) { handleSortByColumn(column) {
if (column.order === 'ascending') { if (column.order === "ascending") {
this.searchData.Asc = true this.searchData.Asc = true;
} else { } else {
this.searchData.Asc = false this.searchData.Asc = false;
} }
this.searchData.SortField = column.prop this.searchData.SortField = column.prop;
this.searchData.PageIndex = 1 this.searchData.PageIndex = 1;
this.getList() this.getList();
} },
} },
} };
</script> </script>

View File

@ -26,12 +26,15 @@
" "
prop="CalledAE" prop="CalledAE"
> >
<el-input <el-select v-model="searchData.Modalities" clearable>
v-model="searchData.Modalities" <el-option
size="small" v-for="item of DicomModalityList"
clearable :key="item"
style="width: 150px" :label="item"
/> :value="item"
>
</el-option>
</el-select>
</el-form-item> </el-form-item>
<!--检查日期--> <!--检查日期-->
<el-form-item <el-form-item
@ -225,6 +228,7 @@
import { import {
getVisitPatientStudyFilterList, getVisitPatientStudyFilterList,
submitVisitStudyBinding, submitVisitStudyBinding,
getDicomModalityList,
} from "@/api/trials"; } from "@/api/trials";
import BaseContainer from "@/components/BaseContainer"; import BaseContainer from "@/components/BaseContainer";
import Pagination from "@/components/Pagination"; import Pagination from "@/components/Pagination";
@ -262,12 +266,28 @@ export default {
loading: false, loading: false,
datetimerange: [], datetimerange: [],
tableSelectData: [], tableSelectData: [],
DicomModalityList: [],
}; };
}, },
mounted() { created() {
this.getList(); this.getList();
this.getDicomModalityList();
}, },
methods: { methods: {
//
async getDicomModalityList() {
try {
let params = {
TrialId: this.$route.query.trialId,
};
let res = await getDicomModalityList(params);
if (res.IsSuccess) {
this.DicomModalityList = res.Result;
}
} catch (err) {
console.log(err);
}
},
handleAddList() { handleAddList() {
if (this.tableSelectData.length < 0) if (this.tableSelectData.length < 0)
return this.$message.warning( return this.$message.warning(