uat_us
wangxiaoshuang 2024-07-17 15:58:41 +08:00
parent b8b876c0c9
commit bc674ec334
6 changed files with 156 additions and 133 deletions

View File

@ -3794,3 +3794,20 @@ export function getDicomCallingAEList(params) {
params params
}) })
} }
// CRCpacs上传检查列表
export function getVisitPatientStudyFilterList(data) {
return request({
url: `/Patient/getVisitPatientStudyFilterList`,
method: 'post',
data
})
}
// CRCpacs上传检查
export function submitVisitStudyBinding(data) {
return request({
url: `/Patient/submitVisitStudyBinding`,
method: 'post',
data
})
}

View File

@ -85,13 +85,13 @@
sortable="custom" sortable="custom"
show-overflow-tooltip show-overflow-tooltip
/> />
<!-- <el-table-column <el-table-column
:label="$t('trials:loginLog:table:IPRegion')" :label="$t('trials:loginLog:table:IPRegion')"
prop="IPRegion" prop="IPRegion"
min-width="120" min-width="120"
show-overflow-tooltip show-overflow-tooltip
sortable="custom" sortable="custom"
/> --> />
<el-table-column <el-table-column
:label="$t('system:loginLog:table:LoginFaildName')" :label="$t('system:loginLog:table:LoginFaildName')"
prop="LoginFaildName" prop="LoginFaildName"

View File

@ -573,7 +573,12 @@
name="pacs" name="pacs"
:disabled="btnLoading" :disabled="btnLoading"
> >
<uploadDicomPacs v-if="uploadActiveName === 'pacs'" /> <uploadDicomPacs
v-if="uploadActiveName === 'pacs'"
:subjectVisitId="subjectVisitId"
:subjectId="subjectId"
@getList="getParentList"
/>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
<!-- 预览影像模态框 --> <!-- 预览影像模态框 -->
@ -808,7 +813,7 @@ export default {
}, },
data() { data() {
return { return {
uploadActiveName: "file", uploadActiveName: "pacs",
editStudyInfoVisible: false, editStudyInfoVisible: false,
studyForm: { studyForm: {
StudyCode: "", StudyCode: "",
@ -876,6 +881,9 @@ export default {
store.dispatch("trials/setUnLock", false); store.dispatch("trials/setUnLock", false);
}, },
methods: { methods: {
getParentList() {
this.$emit("getList");
},
handleHistorical(row) { handleHistorical(row) {
this.$router.push( this.$router.push(
`/trials/trials-panel/trial-summary/upload-monitor?trialId=${this.trialId}&trialCode=${this.$route.query.trialCode}&${this.$route.query.researchProgramNo}&studyCode=${row.StudyCode}` `/trials/trials-panel/trial-summary/upload-monitor?trialId=${this.trialId}&trialCode=${this.$route.query.trialCode}&${this.$route.query.researchProgramNo}&studyCode=${row.StudyCode}`

View File

@ -2,9 +2,11 @@
<BaseContainer> <BaseContainer>
<template slot="search-container"> <template slot="search-container">
<el-form :inline="true"> <el-form :inline="true">
<!--所在中心--> <!--患者信息-->
<el-form-item <el-form-item
:label="$t('trials:pushRecord:table:trialSiteKeyInfo')" :label="
$t('trials:visit:crcUpload:uploadDicomPacs:search:patientInfo')
"
prop="TrialSiteKeyInfo" prop="TrialSiteKeyInfo"
> >
<el-input <el-input
@ -15,50 +17,28 @@
:placeholder="$t('trials:pushRecord:placeholder:trialSiteKeyInfo')" :placeholder="$t('trials:pushRecord:placeholder:trialSiteKeyInfo')"
/> />
</el-form-item> </el-form-item>
<!--接收端AE--> <!--检查技术-->
<el-form-item <el-form-item
:label="$t('trials:pushRecord:table:calledAE')" :label="
$t('trials:visit:crcUpload:uploadDicomPacs:search:modalities')
"
prop="CalledAE" prop="CalledAE"
> >
<el-select <el-input
v-model="searchData.CalledAE" v-model="searchData.Modalities"
size="small"
clearable clearable
style="width: 120px" style="width: 150px"
> />
<el-option
v-for="item of calledAEList"
:key="item"
:value="item"
:label="item"
/>
</el-select>
</el-form-item> </el-form-item>
<!--发送端AE--> <!--检查日期-->
<el-form-item <el-form-item
:label="$t('trials:pushRecord:table:callingAE')" :label="$t('trials:visit:crcUpload:uploadDicomPacs:search:studyTime')"
prop="CallingAE"
> >
<el-select
v-model="searchData.CallingAE"
clearable
style="width: 120px"
>
<el-option
v-for="item of callingAEList"
:key="item"
:value="item"
:label="item"
/>
</el-select>
</el-form-item>
<!--最新接受日期-->
<el-form-item :label="$t('trials:pushRecord:table:createTime')">
<el-date-picker <el-date-picker
v-model="datetimerange" v-model="datetimerange"
type="datetimerange" type="datetimerange"
:default-time="['00:00:00', '23:59:59']" :default-time="['00:00:00', '23:59:59']"
:start-placeholder="$t('trials:loginLog:table:beginTime')"
:end-placeholder="$t('trials:loginLog:table:endTime')"
value-format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss"
@change="handleDatetimeChange" @change="handleDatetimeChange"
/> />
@ -75,6 +55,15 @@
> >
{{ $t("common:button:reset") }} {{ $t("common:button:reset") }}
</el-button> </el-button>
<!-- 添加 -->
<el-button
type="primary"
icon="el-icon-plus"
:disabled="tableSelectData.length <= 0"
@click="handleAddList"
>
{{ $t("common:button:add") }}
</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</template> </template>
@ -85,49 +74,41 @@
height="100" height="100"
:data="list" :data="list"
class="table" class="table"
@selection-change="handleSelectChange"
@sort-change="handleSortByColumn" @sort-change="handleSortByColumn"
:default-sort="{ prop: 'StartTime', order: 'descending' }" :default-sort="{ prop: 'studyTime', order: 'descending' }"
> >
<el-table-column type="selection" align="center" width="45" />
<el-table-column type="index" width="50" /> <el-table-column type="index" width="50" />
<!--中心编--> <!--病历-->
<el-table-column <el-table-column
:label="$t('trials:pushRecord:table:trialSiteCode')" :label="$t('trials:visit:crcUpload:uploadDicomPacs:table:patientId')"
prop="TrialSiteCode" prop="PatientIdStr"
min-width="160" min-width="160"
show-overflow-tooltip show-overflow-tooltip
sortable="custom" sortable="custom"
/> />
<!--中心名称--> <!--患者姓名-->
<el-table-column <el-table-column
:label="$t('trials:pushRecord:table:trialSiteAliasName')" :label="
prop="TrialSiteAliasName" $t('trials:visit:crcUpload:uploadDicomPacs:table:patientName')
min-width="160" "
show-overflow-tooltip prop="PatientName"
sortable="custom"
/>
<!--发送端AE-->
<el-table-column
:label="$t('trials:pushRecord:table:callingAEList')"
prop="CallingAEList"
min-width="90" min-width="90"
show-overflow-tooltip show-overflow-tooltip
sortable="custom" sortable="custom"
> />
<template slot-scope="scope"> <!--性别-->
{{ scope.row.CallingAEList.join(", ") }}
</template>
</el-table-column>
<!--发送端IP-->
<el-table-column <el-table-column
:label="$t('trials:pushRecord:table:callingAEIP')" :label="$t('trials:visit:crcUpload:uploadDicomPacs:table:patientSex')"
prop="CallingAEIP" prop="PatientSex"
min-width="160" min-width="160"
show-overflow-tooltip show-overflow-tooltip
sortable="custom" sortable="custom"
/> />
<!--接收端AE--> <!--出生日期-->
<el-table-column <el-table-column
:label="$t('trials:pushRecord:table:calledAEList')" :label="$t('trials:visit:crcUpload:uploadDicomPacs:table:patientSex')"
prop="CalledAEList" prop="CalledAEList"
min-width="90" min-width="90"
show-overflow-tooltip show-overflow-tooltip
@ -137,46 +118,47 @@
</template> </template>
</el-table-column> </el-table-column>
<!--检查--> <!--检查信息-->
<el-table-column <el-table-column
:label="$t('trials:pushRecord:table:studyCount')" :label="$t('trials:visit:crcUpload:uploadDicomPacs:table:modalities')"
prop="StudyCount" prop="Modalities"
min-width="160"
show-overflow-tooltip
sortable="custom"
/>
<!--检查日期-->
<el-table-column
:label="$t('trials:visit:crcUpload:uploadDicomPacs:table:studyTime')"
prop="StudyTime"
min-width="160" min-width="160"
show-overflow-tooltip show-overflow-tooltip
sortable="custom" sortable="custom"
/> />
<!--图像数量--> <!--图像数量-->
<el-table-column <el-table-column
:label="$t('trials:pushRecord:table:fileCount')" :label="
prop="FileCount" $t('trials:visit:crcUpload:uploadDicomPacs:table:instanceCount')
"
prop="InstanceCount"
min-width="160" min-width="160"
show-overflow-tooltip show-overflow-tooltip
sortable="custom" sortable="custom"
/> />
<!--图像大小-->
<el-table-column <el-table-column
:label="$t('trials:pushRecord:table:fileSize')" :label="$t('common:action:action')"
prop="FileSize" min-width="260"
min-width="160" fixed="right"
show-overflow-tooltip >
sortable="custom" <template slot-scope="scope">
/> <!-- 添加 -->
<!--推送开始时间--> <el-button
<el-table-column icon="el-icon-view"
:label="$t('trials:pushRecord:table:startTime')" :title="$t('common:button:add')"
prop="StartTime" circle
min-width="160" @click="handleAdd(scope.row)"
show-overflow-tooltip />
sortable="custom" </template>
/> </el-table-column>
<!--推送结束时间-->
<el-table-column
:label="$t('trials:pushRecord:table:endTime')"
prop="EndTime"
min-width="160"
show-overflow-tooltip
sortable="custom"
/>
</el-table> </el-table>
<!-- 分页组件 --> <!-- 分页组件 -->
<pagination <pagination
@ -191,20 +173,17 @@
</template> </template>
<script> <script>
import { import {
getSCPImageUploadList, getVisitPatientStudyFilterList,
getDicomCalledAEList, submitVisitStudyBinding,
getDicomCallingAEList,
} 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";
import moment from "moment"; import moment from "moment";
const searchDataDefault = () => { const searchDataDefault = () => {
return { return {
CallingAE: null, EarliestStudyTime: null,
CalledAE: null, LatestStudyTime: null,
StartTime: null, Modalities: null,
EndTime: null,
TrialSiteKeyInfo: null,
PageIndex: 1, PageIndex: 1,
PageSize: 20, PageSize: 20,
Asc: true, Asc: true,
@ -213,6 +192,16 @@ const searchDataDefault = () => {
}; };
export default { export default {
components: { BaseContainer, Pagination }, components: { BaseContainer, Pagination },
props: {
subjectVisitId: {
type: String,
required: true,
},
subjectId: {
type: String,
required: true,
},
},
data() { data() {
return { return {
moment, moment,
@ -221,50 +210,59 @@ export default {
total: 0, total: 0,
loading: false, loading: false,
datetimerange: [], datetimerange: [],
calledAEList: [], tableSelectData: [],
callingAEList: [],
}; };
}, },
created() {
this.getCalledAEList();
this.getCallingAEList();
},
mounted() { mounted() {
this.getList(); this.getList();
}, },
methods: { methods: {
// AE handleAddList() {
async getCalledAEList() { if (this.tableSelectData.length < 0)
return this.$message.warning(
this.$t("trials:visit:crcUpload:uploadDicomPacs:message:notCheck")
);
let arr = this.tableSelectData.map((item) => item.ScpStudyId);
this.submitVisitStudyBinding(arr);
},
handleAdd(row) {
let arr = [row.ScpStudyId];
this.submitVisitStudyBinding(arr);
},
//
async submitVisitStudyBinding(arr) {
try { try {
let params = { let data = {
TrialId: this.$route.query.trialId, TrialId: this.$route.query.trialId,
SubjectVisitId: this.subjectVisitId,
SubjectId: this.subjectId,
ScpStudyIdList: arr,
}; };
let res = await getDicomCalledAEList(params); this.loading = true;
let res = await submitVisitStudyBinding(data);
this.loading = false;
if (res.IsSuccess) { if (res.IsSuccess) {
this.calledAEList = res.Result; this.getList();
this.$emit("getList");
} }
} catch (err) { } catch (err) {
this.loading = false;
console.log(err); console.log(err);
} }
}, },
// AE //
async getCallingAEList() { handleSelectChange(selection) {
try { // console.log(selection, "handleSelectChange");
let params = { this.tableSelectData = selection;
TrialId: this.$route.query.trialId,
};
let res = await getDicomCallingAEList(params);
if (res.IsSuccess) {
this.callingAEList = res.Result;
}
} catch (err) {
console.log(err);
}
}, },
getList() { getList() {
this.loading = true; this.loading = true;
this.searchData.TrialId = this.$route.query.trialId; let data = {
getSCPImageUploadList(this.searchData) SubjectVisitId: this.subjectVisitId,
SubjectId: this.subjectId,
...this.searchData,
};
getVisitPatientStudyFilterList(data)
.then((res) => { .then((res) => {
this.loading = false; this.loading = false;
this.list = res.Result.CurrentPageData; this.list = res.Result.CurrentPageData;
@ -276,11 +274,11 @@ export default {
}, },
handleDatetimeChange(val) { handleDatetimeChange(val) {
if (val) { if (val) {
this.searchData.StartTime = val[0]; this.searchData.EarliestStudyTime = val[0];
this.searchData.EndTime = val[1]; this.searchData.LatestStudyTime = val[1];
} else { } else {
this.searchData.StartTime = ""; this.searchData.EarliestStudyTime = "";
this.searchData.EndTime = ""; this.searchData.LatestStudyTime = "";
} }
}, },
handleSearch() { handleSearch() {

View File

@ -1045,7 +1045,7 @@ export default {
formRow: {}, formRow: {},
searchData: searchDataDefault(), searchData: searchDataDefault(),
loading: false, loading: false,
uploadVisible: false, uploadVisible: true,
qcVisible: false, qcVisible: false,
list: [], list: [],
total: 0, total: 0,

View File

@ -63,8 +63,8 @@ module.exports = {
// target: 'http://123.56.94.154:8079', // 国内测试环境2 // target: 'http://123.56.94.154:8079', // 国内测试环境2
// target: 'http://123.56.94.154:7000', // 国内测试环境2 // target: 'http://123.56.94.154:7000', // 国内测试环境2
// target: 'http://123.56.94.154:30668', // target: 'http://123.56.94.154:30668',
// target: 'http://106.14.89.110:30000', target: 'http://106.14.89.110:30000',
target: 'http://47.117.164.182:7010', // uat // target: 'http://47.117.164.182:7010', // uat
// target: 'http://123.56.181.144:7000', // target: 'http://123.56.181.144:7000',
changeOrigin: true, changeOrigin: true,
secure: false, secure: false,