<template>
    <div>
        <span class="title">
            {{ $t('trials:inspection:title:pullImage') }}
            <span>{{ tip }}</span>
        </span>
        <div class="search">
            <el-form :inline="true" class="base-search-form">
                <!-- TrialId -->
                <el-form-item class="my_multiple" :label="$t('trials:inspection:pullImage:search:TrialId')">
                    <el-select v-model="searchData.TrialId" style="width: 140px" @change="searchData.PatientID = null">
                        <el-option v-for="(item) of trialList" :key="item.TrialId" :label="item.ExperimentName"
                            :value="item.TrialId">
                        </el-option>
                    </el-select>
                </el-form-item>
                <!-- pacsDicomAEId -->
                <el-form-item class="my_multiple" :label="$t('trials:inspection:pullImage:search:pacsDicomAEId')">
                    <el-select v-model="searchData.PacsDicomAEId" style="width: 140px" @change="pacsDicomAEIdChange">
                        <el-option v-for="(item) of AElist" :key="item.Id" :label="item.CalledAE" :value="item.Id">
                        </el-option>
                    </el-select>
                </el-form-item>
                <!-- patientID -->
                <el-form-item class="my_multiple" :label="$t('trials:inspection:pullImage:search:patientID')">
                    <el-select v-model="searchData.PatientID" style="width: 140px" clearable>
                        <el-option v-for="(item, index) of patientList" :key="index.PatientIdStr"
                            :label="item.PatientName" :value="item.PatientIdStr">
                        </el-option>
                    </el-select>
                </el-form-item>
                <!-- patientName -->
                <!-- <el-form-item class="my_multiple" :label="$t('trials:inspection:pullImage:search:patientName')">
                    <el-input v-model="searchData.PatientName" clearable style="width: 100px"
                        :maxlength="400"></el-input>
                </el-form-item> -->
                <!-- patientSex -->
                <!-- <el-form-item
            class="my_multiple"
            :label="$t('trials:inspection:pullImage:search:patientSex')"
          >
            <el-select
              v-model="searchData.PatientSex"
              clearable
              style="width: 140px"
            >
              <el-option
                v-for="item of $d.Sex"
                :key="item.id"
                :label="item.label"
                :value="item.value"
              >
              </el-option>
            </el-select>
          </el-form-item> -->
                <!-- patientBirthDate -->
                <!-- <el-form-item
            :label="$t('trials:inspection:pullImage:search:patientBirthDate')"
          >
            <el-date-picker
              v-model="PatientBirthDate"
              type="daterange"
              range-separator="至"
              start-placeholder="开始日期"
              end-placeholder="结束日期"
              value-format="yyyyMMDD"
            >
            </el-date-picker>
          </el-form-item> -->
                <!-- studyID -->
                <!-- <el-form-item
            class="my_multiple"
            :label="$t('trials:inspection:pullImage:search:studyID')"
          >
            <el-input
              v-model="searchData.StudyID"
              clearable
              :maxlength="400"
            ></el-input>
          </el-form-item> -->
                <!-- AccessionNumber -->
                <!-- <el-form-item
            class="my_multiple"
            :label="$t('trials:inspection:pullImage:search:AccessionNumber')"
          >
            <el-input
              v-model="searchData.AccessionNumber"
              clearable
              style="width: 100px"
              :maxlength="400"
            ></el-input>
          </el-form-item> -->
                <!-- modalitiesInStudy -->
                <!-- <el-form-item :label="$t('trials:inspection:pullImage:search:modalitiesInStudy')">
                    <el-select v-model="searchData.ModalitiesInStudyList" placeholder="" clearable multiple
                        collapse-tags style="width: 140px">
                        <el-option v-for="item in ModalityList" :key="item" :label="item" :value="item" />
                    </el-select>
                </el-form-item> -->
                <!-- studyDate -->
                <!-- <el-form-item :label="$t('trials:inspection:pullImage:search:studyDate')">
                    <el-date-picker v-model="StudyDate" type="daterange" range-separator="至" start-placeholder="开始日期"
                        end-placeholder="结束日期" value-format="yyyyMMdd" :picker-options="pickerOptions">
                    </el-date-picker>
                </el-form-item> -->
                <!-- studyTime -->
                <!-- <el-form-item
            :label="$t('trials:inspection:pullImage:search:studyTime')"
          >
            <el-time-picker
              is-range
              arrow-control
              v-model="StudyTime"
              range-separator="至"
              start-placeholder="开始时间"
              end-placeholder="结束时间"
              placeholder="选择时间范围"
            >
            </el-time-picker>
          </el-form-item> -->
                <!-- bodyPartExamined -->
                <!-- <el-form-item
            class="my_multiple"
            :label="$t('trials:inspection:pullImage:search:bodyPartExamined')"
          >
            <el-input
              v-model="searchData.BodyPartExamined"
              clearable
              :maxlength="400"
            ></el-input>
          </el-form-item> -->
                <!-- studyDescription -->
                <!-- <el-form-item
            class="my_multiple"
            :label="$t('trials:inspection:pullImage:search:studyDescription')"
          >
            <el-input
              v-model="searchData.StudyDescription"
              clearable
              :maxlength="400"
            ></el-input>
          </el-form-item> -->
                <!-- studyInstanceUID -->
                <!-- <el-form-item
            class="my_multiple"
            :label="$t('trials:inspection:pullImage:search:studyInstanceUID')"
          >
            <el-input
              v-model="searchData.StudyInstanceUID"
              clearable
              :maxlength="400"
            ></el-input>
          </el-form-item> -->
                <el-form-item>
                    <!-- 查询 -->
                    <el-button type="primary" icon="el-icon-search" @click="handleSearch">
                        {{ $t('common:button:search') }}
                    </el-button>
                    <!-- 重置 -->
                    <el-button type="primary" icon="el-icon-refresh-left" @click="handleReset">
                        {{ $t('common:button:reset') }}
                    </el-button>
                    <!-- 拉取 -->
                    <el-button type="primary" :disabled="!multipleSelection || multipleSelection.length <= 0"
                        @click="openGroup({}, 2)">
                        {{ $t('trials:inspection:button:pull') }}
                    </el-button>
                </el-form-item>
            </el-form>
        </div>
        <!--检查列表-->
        <el-table ref="viewStudyList" v-loading="loading" v-adaptive="{ bottomOffset: 60 }" :data="PageList" stripe
            height="100" @sort-change="handleSortByColumn" @selection-change="handleSelectionChange">
            <el-table-column type="selection" width="55" />
            <el-table-column type="index" width="50">
                <template slot-scope="scope">
                    <span style="
                display: flex;
                align-items: center;
                justify-content: flex-end;
              ">
                        <el-tooltip class="item" effect="dark" :content="$t('trials:inspection:pullImage:tip:has')"
                            placement="top" style="margin-right: 3px">
                            <i v-if="scope.row.IsStudyExist" class="el-icon-success icon-i"></i>
                        </el-tooltip>
                        <span>{{ scope.$index + 1 }}</span>
                    </span>
                </template>
            </el-table-column>
            <!--patientID-->
            <el-table-column prop="PatientID" :label="$t('trials:inspection:pullImage:table:patientID')"
                show-overflow-tooltip min-width="120" sortable="custom" />
            <!--patientName-->
            <el-table-column prop="PatientName" :label="$t('trials:inspection:pullImage:table:patientName')"
                show-overflow-tooltip min-width="120" sortable="custom" />
            <!--patientSex-->
            <el-table-column prop="PatientSex" :label="$t('trials:inspection:pullImage:table:patientSex')"
                show-overflow-tooltip min-width="80" sortable="custom">
                <template slot-scope="scope">
                    <span>{{ $fd('Sex', scope.row.PatientSex) }}</span>
                </template>
            </el-table-column>
            <!--patientBirthDate-->
            <el-table-column prop="PatientBirthDate" :label="$t('trials:inspection:pullImage:table:patientBirthDate')"
                show-overflow-tooltip min-width="120" sortable="custom" />
            <!--studyID-->
            <!-- <el-table-column
          prop="StudyID"
          :label="$t('trials:inspection:pullImage:table:studyID')"
          show-overflow-tooltip
          min-width="120"
        /> -->
            <!--AccessionNumber-->
            <el-table-column prop="AccessionNumber" :label="$t('trials:inspection:pullImage:table:AccessionNumber')"
                show-overflow-tooltip min-width="120" sortable="custom" />
            <!--modalitiesInStudy-->
            <el-table-column prop="ModalitiesInStudy" :label="$t('trials:inspection:pullImage:table:modalitiesInStudy')"
                show-overflow-tooltip min-width="120" sortable="custom" />
            <!--studyDate-->
            <el-table-column prop="StudyDate" :label="$t('trials:inspection:pullImage:table:studyDate')"
                show-overflow-tooltip min-width="120" sortable="custom" />
            <!--studyTime-->
            <el-table-column prop="StudyTime" :label="$t('trials:inspection:pullImage:table:studyTime')"
                show-overflow-tooltip min-width="120" sortable="custom" />
            <!--bodyPartExamined-->
            <!-- <el-table-column
          prop="BodyPartExamined"
          :label="$t('trials:inspection:pullImage:table:bodyPartExamined')"
          show-overflow-tooltip
          min-width="120"
          sortable="custom"
        /> -->
            <!--studyDescription-->
            <el-table-column prop="StudyDescription" :label="$t('trials:inspection:pullImage:table:studyDescription')"
                show-overflow-tooltip min-width="120" sortable="custom" />
            <!--studyInstanceUID-->
            <el-table-column prop="StudyInstanceUID" :label="$t('trials:inspection:pullImage:table:studyInstanceUID')"
                show-overflow-tooltip min-width="120" sortable="custom" />
            <!--课题组-->
            <el-table-column prop="ViewHospitalGroupList"
                :label="$t('trials:inspection:pullImage:table:ViewHospitalGroupList')" show-overflow-tooltip
                min-width="100">
                <template slot-scope="scope">
                    <span>{{
                        scope.row.ViewHospitalGroupList && scope.row.ViewHospitalGroupList.length > 0 ?
                            scope.row.ViewHospitalGroupList.map(item => item.Name).join(', ') : ''}}</span>
                </template>
            </el-table-column>
            <!--操作-->
            <el-table-column :label="$t('common:action:action')" min-width="120">
                <template slot-scope="scope">
                    <el-button circle icon="el-icon-refresh" class="refreshBtn"
                        :title="$t('trials:inspection:button:pull')" @click.stop="openGroup(scope.row, 2)" />
                    <el-button circle icon="el-icon-edit-outline" :title="$t('trials:inspection:button:collect')"
                        v-if="scope.row.IsStudyExist" @click.stop="openGroup(scope.row, 1)" />
                </template>
            </el-table-column>
        </el-table>

        <!-- 分页组件 -->
        <pagination class="page" :total="total" :page.sync="PageIndex" :limit.sync="PageSize" @pagination="paging" />
        <base-model v-if="group_model.visible" :config="group_model">
            <template slot="dialog-body">
                <el-form ref="groupFrom" :model="form" :rules="rules" label-width="100px" size="small">
                    <el-form-item :label="$t('trials:externalStaff:table:lastName')" prop="LastName" v-show="false">
                        <el-input clearable />
                    </el-form-item>
                    <!-- 用户类型 -->
                    <el-form-item :label="$t('trials:externalStaff:table:hospitalGroupIdList')"
                        prop="HospitalGroupIdList">
                        <el-select v-model="form.HospitalGroupIdList" style="width: 100%" multiple clearable>
                            <el-option v-for="item of hospitalGroupList" :key="item.Id" :label="item.Name"
                                :value="item.Id">
                                <!-- <span>{{ item.UserType }}</span> -->
                            </el-option>
                        </el-select>
                    </el-form-item>
                </el-form>
            </template>
            <template slot="dialog-footer">
                <!-- 取消 -->
                <el-button size="small" type="primary" :disabled="btnLoading" @click="handleCancelGroup">
                    {{ $t("common:button:cancel") }}
                </el-button>
                <!-- 保存 -->
                <el-button size="small" type="primary" :loading="btnLoading" @click="pullImage">
                    {{ $t("common:button:save") }}
                </el-button>
            </template>
        </base-model>
    </div>
</template>
<script>
import Pagination from '@/components/Pagination'
import {
    getCFindStudyList,
    cmoveStudyList,
    cMoveVerify,
    getUserJoinedTrialPatientList
} from '@/api/inspection.js'
import { getDicomAEList } from '@/api/dicomAE.js'
import BaseModel from '@/components/BaseModel'
const defaultSearchData = () => {
    return {
        PacsDicomAEId: null,
        PatientID: null,
        PatientName: null,
        // ModalitiesInStudyList: null,   
        StudyDate: null,
        TrialId: null,

        PatientSex: null,
        PatientBirthDate: null,
        StudyID: null,
        StudyTime: null,
        BodyPartExamined: null,
        StudyDescription: null,
        StudyInstanceUID: null,
        AccessionNumber: null,
    }
}
export default {
    name: 'byTrials',
    components: { Pagination, BaseModel },
    props: {
        calledAeList: {
            required: true,
            default: () => {
                return []
            },
        },
        callingAeList: {
            required: true,
            default: () => {
                return []
            },
        },
    },
    data() {
        return {
            // 查询
            searchData: defaultSearchData(),
            ModalityList: [],
            timeFrame: null,
            MaxStudyCount: null,
            PatientBirthDate: [],
            // StudyDate: [],
            // 可加入项目列表
            loading: false,
            list: [],
            PageList: [],
            total: 0,
            PageIndex: 1,
            PageSize: 50,
            AElist: [],
            multipleSelection: [],

            trialList: [],

            group_model: {
                visible: false,
                title: this.$t('trials:inspection:dialogTitle:collect'),
                width: '400px',
                appendToBody: true
            },
            form: {
                HospitalGroupIdList: [],
            },
            rules: {
                HospitalGroupIdList: [
                    {
                        required: true,
                        type: "array",
                        message: this.$t('common:ruleMessage:specify'),
                        trigger: ['blur', 'change']
                    }
                ]
            },
            btnLoading: false,
            hospitalGroupList: [],
            groupStatus: 1, // 1收藏 2拉取
            currentData: {}
        }
    },
    computed: {
        // pickerOptions() {
        //     return {
        //         shortcuts: [
        //             {
        //                 text: this.$t('trials:inspection:pullImage:picker:today'),
        //                 onClick: (picker) => {
        //                     const end = new Date()
        //                     const start = new Date()
        //                     // picker.$emit('pick', [start, end])
        //                     this.StudyDate = [start, end]
        //                 },
        //             },
        //             {
        //                 text: this.$t('trials:inspection:pullImage:picker:week'),
        //                 onClick: (picker) => {
        //                     const end = new Date()
        //                     const start = new Date()
        //                     if (!this.timeFrame || this.timeFrame > 3) {
        //                         start.setTime(start.getTime() - 3600 * 1000 * 24 * 2)
        //                     } else {
        //                         start.setTime(
        //                             start.getTime() - 3600 * 1000 * 24 * (this.timeFrame - 1)
        //                         )
        //                     }

        //                     // picker.$emit('pick', [start, end])
        //                     this.StudyDate = [start, end]
        //                 },
        //             },
        //             {
        //                 text: this.$t('trials:inspection:pullImage:picker:month'),
        //                 onClick: (picker) => {
        //                     const end = new Date()
        //                     const start = new Date()
        //                     let month = this.$moment().subtract(1, 'months')
        //                     let day = this.$moment().diff(month, 'day')
        //                     if (!this.timeFrame || this.timeFrame > day) {
        //                         start.setTime(start.getTime() - 3600 * 1000 * 24 * (day - 1))
        //                     } else {
        //                         start.setTime(
        //                             start.getTime() - 3600 * 1000 * 24 * (this.timeFrame - 1)
        //                         )
        //                     }
        //                     // picker.$emit('pick', [start, end])
        //                     this.StudyDate = [start, end]
        //                 },
        //             },
        //             {
        //                 text: this.$t('trials:inspection:pullImage:picker:trimester'),
        //                 onClick: (picker) => {
        //                     const end = new Date()
        //                     const start = new Date()
        //                     let month = this.$moment().subtract(3, 'months')
        //                     let day = this.$moment().diff(month, 'day')
        //                     if (!this.timeFrame || this.timeFrame > day) {
        //                         start.setTime(start.getTime() - 3600 * 1000 * 24 * (day - 1))
        //                     } else {
        //                         start.setTime(
        //                             start.getTime() - 3600 * 1000 * 24 * (this.timeFrame - 1)
        //                         )
        //                     }
        //                     // picker.$emit('pick', [start, end])
        //                     this.StudyDate = [start, end]
        //                 },
        //             },
        //         ],
        //         disabledDate: (time) => {
        //             if (!this.timeFrame) return false
        //             let curDate = new Date().getTime()
        //             let three = this.timeFrame * 24 * 3600 * 1000
        //             let threeMonths = curDate - three
        //             return time.getTime() >= Date.now() || time.getTime() <= threeMonths
        //         },
        //     }
        // },
        tip() {
            if (!this.searchData.PacsDicomAEId) return ''
            let message = `( ${this.$t('trials:inspection:pullImage:PacsTip')} )`
            message = message.replace(
                'xxx',
                this.AElist.find((item) => item.Id === this.searchData.PacsDicomAEId)
                    .CalledAE
            )
            if (!this.timeFrame) {
                message = message.replace(
                    'yyy',
                    this.$t('trials:inspection:pullImage:unlimit')
                )
            } else {
                message = message.replace(
                    'yyy',
                    `${this.timeFrame}${this.$t('trials:inspection:unit:day')}`
                )
            }
            if (!this.MaxStudyCount) {
                message = message.replace(
                    'zzz',
                    this.$t('trials:inspection:pullImage:unlimit')
                )
            } else {
                message = message.replace(
                    'zzz',
                    `${this.MaxStudyCount}${this.$t('trials:inspection:unit:article')}`
                )
            }
            message = message.replace('kkk', this.ModalityList.join('，'))
            return message
        },
        patientList() {
            let arr = []
            if (this.searchData.TrialId) {
                arr = this.trialList.find(item => item.TrialId === this.searchData.TrialId).PatientList
            }
            return arr
        }
    },
    created() {
        this.getTrialList()
    },
    methods: {
        // 获取项目
        async getTrialList() {
            try {
                let res = await getUserJoinedTrialPatientList()
                if (res.IsSuccess) {
                    this.trialList = res.Result
                    if (!this.trialList || this.trialList.length <= 0) return false
                    this.searchData.TrialId = this.trialList[0].TrialId
                    this.getAEList(false, true)
                }
            } catch (err) {
                console.log(err)
            }
        },
        pacsDicomAEIdChange(val, f = false) {
            let pacs = this.AElist.find((item) => item.Id === val)
            this.ModalityList = pacs.ModalityList
            this.timeFrame = pacs.PacsSearchMaxDays
            this.MaxStudyCount = pacs.MaxStudyCount
            if (!f) {
                this.handleReset()
            }
        },
        // 验证pacs
        async cMoveVerify(data) {
            try {
                let res = await cMoveVerify(data)
                if (res.IsSuccess) {
                    return res.Result
                }
                return false
            } catch (err) {
                console.log(err)
                return false
            }
        },
        async getList() {
            if (!this.searchData.TrialId) return false
            if (!this.searchData.PacsDicomAEId)
                return this.$message.warning(
                    this.$t('trials:inspection:pullImage:message:mustPacsDicomAEId')
                )
            let data = {}
            Object.keys(this.searchData).forEach((key) => {
                data[key] = this.searchData[key]
            })
            // if (
            //   this.PatientBirthDate &&
            //   this.PatientBirthDate[0] &&
            //   this.PatientBirthDate[1]
            // ) {
            //   data.PatientBirthDate =
            //     this.PatientBirthDate[0] + '-' + this.PatientBirthDate[1]
            // } else {
            //   data.PatientBirthDate = null
            // }
            // if (this.StudyDate && this.StudyDate[0] && this.StudyDate[1]) {
            //     data.StudyDate =
            //         this.$moment(this.StudyDate[0]).format('YYYYMMDD') +
            //         '-' +
            //         this.$moment(this.StudyDate[1]).format('YYYYMMDD')
            // } else {
            //     data.StudyDate = null
            // }
            // if (this.StudyTime && this.StudyTime[0] && this.StudyTime[1]) {
            //   data.StudyTime =
            //     this.$moment(this.StudyTime[0]).format('HHmmss') +
            //     '-' +
            //     this.$moment(this.StudyTime[1]).format('HHmmss')
            // } else {
            //   data.StudyTime = null
            // }
            try {
                this.loading = true
                let res = await getCFindStudyList(data)
                this.loading = false
                if (res.IsSuccess) {
                    this.list = res.Result
                    this.total = res.Result.length
                    this.paging()
                    let MaxStudyCount = this.MaxStudyCount || 50
                    if (this.total >= MaxStudyCount) {
                        let message = this.$t(
                            'trials:inspection:pullImage:confirm:limit50'
                        ).replace('xxx', MaxStudyCount)
                        this.$confirm(message, '', {
                            type: 'warning',
                            showCancelButton: false,
                        })
                    }
                }
            } catch (err) {
                this.loading = false
                console.log(err)
            }
        },
        // 获取列表
        async getAEList(f = false, isFirst = false) {
            let data = {
                CalledAE: null,
                IP: null,
                Port: null,
                PacsTypeEnum: 2,
                IsTestOK: true,
                PageIndex: 1,
                PageSize: 1000,
                SortField: 'CreateTime',
                Asc: false,
            }
            try {
                this.loading = true
                let res = await getDicomAEList(data)
                this.loading = false
                if (res.IsSuccess) {
                    this.AElist = res.Result.CurrentPageData
                    if (this.AElist.length > 0) {
                        if (!f) {
                            this.searchData.PacsDicomAEId = this.AElist[0].Id
                            this.ModalityList = this.AElist[0].ModalityList
                            this.timeFrame = this.AElist[0].PacsSearchMaxDays
                            this.MaxStudyCount = this.AElist[0].MaxStudyCount
                            // this.searchData.ModalitiesInStudyList = [this.ModalityList[0]]
                            // this.StudyDate = [new Date(), new Date()]
                        } else {
                            this.pacsDicomAEIdChange(this.searchData.PacsDicomAEId, true)
                        }
                        if (!isFirst) {
                            this.getList()
                        }

                    }
                }
            } catch (err) {
                console.log(err)
            }
        },
        // 分页
        paging() {
            this.PageList = []
            if (!this.list || this.list.length <= 0) return false
            this.PageList = this.list.slice(
                (this.PageIndex - 1) * this.PageSize,
                this.PageIndex * this.PageSize
            )
        },
        // 查询
        handleSearch() {
            //   this.searchData.PageIndex = 1
            this.getAEList(true)
        },
        // 重置
        handleReset() {
            this.reset()
            this.getAEList(true)
        },
        // 初始化
        reset() {
            //   this.searchData = defaultSearchData()
            Object.keys(this.searchData).forEach((key) => {
                if (key !== 'PacsDicomAEId' && key !== 'TrialId') {
                    this.searchData[key] = null
                }
            })
            // this.PatientBirthDate = []
            // this.StudyDate = []
            // this.StudyTime = [new Date(new Date().getTime() - 10800000), new Date()]
        },
        // 表格排序
        handleSortByColumn(sort) {
            if (sort.order === 'ascending') {
                this.list.sort((a, b) => (a[sort.prop] > b[sort.prop] ? 1 : -1))
            }
            if (sort.order === 'descending') {
                this.list.sort((a, b) => (b[sort.prop] > a[sort.prop] ? 1 : -1))
            }
            this.paging()
        },
        async handleSaveGroup() {
            try {
                let validate = await this.$refs.groupFrom.validate()
                if (!validate) return false
                let ScPstudyIdList = []
                let row = this.currentData
                if (!row) {
                    if (this.multipleSelection.length <= 0) return false
                    ScPstudyIdList = this.multipleSelection.map(item => item.SCPStudyId)
                } else {
                    ScPstudyIdList = [this.currentData.SCPStudyId]
                }
                let data = {
                    ScPstudyIdList,
                    AddOrDelete: 1,
                    HospitalGroupIdList: this.form.HospitalGroupIdList
                }
                this.btnLoading = true
                let res = await modifySCPStudyHospitalGroup(data)
                this.btnLoading = false
                if (res.IsSuccess) {
                    this.$message.success(this.$t('common:message:savedSuccessfully'))
                    this.handleCancelGroup()
                    this.getList()
                }
            } catch (err) {
                console.log(err)
                this.btnLoading = false
            }
        },
        handleCancelGroup() {
            this.form.HospitalGroupIdList = []
            this.groupStatus = 1
            this.group_model.visible = false
        },
        openGroup(row, type = 1) {
            this.currentData = row
            this.groupStatus = type
            if (row && Object.keys(row).length !== 0) {
                this.hospitalGroupList = row.CurrentUserHospitalGroupList
            } else {
                this.hospitalGroupList = this.multipleSelection[0].CurrentUserHospitalGroupList
            }
            if (type === 1) {
                this.group_model.title = this.$t('trials:inspection:dialogTitle:collect')
            } else {
                this.group_model.title = this.$t('trials:inspection:dialogTitle:pull')
            }
            this.group_model.visible = true
        },
        // 拉取pacs数据
        async pullImage() {
            let validate = await this.$refs.groupFrom.validate()
            if (!validate) return false
            if (this.groupStatus === 1) return this.handleSaveGroup()
            try {
                let row = this.currentData
                let data = {
                    PacsDicomAEId: this.searchData.PacsDicomAEId,
                    HospitalGroupIdList: this.form.HospitalGroupIdList
                    //   studyIDList: [row.StudyID],
                }
                if (row && Object.keys(row).length !== 0) {
                    data.StudyInstanceUIDList = [row.StudyInstanceUID]
                } else {
                    data.StudyInstanceUIDList = this.multipleSelection.map(
                        (item) => item.StudyInstanceUID
                    )
                }
                let r = await this.cMoveVerify(data)
                if (!r) return false
                let isPullList = []
                Object.keys(r).forEach((key) => {
                    if (r[key]) {
                        isPullList.push(key)
                    }
                })
                let message = this.$t('trials:inspection:pullImage:confirm:pull')
                let patientMessage = ''
                if (isPullList.length > 0) {
                    isPullList.forEach((key) => {
                        patientMessage += `患者：${r[key].PatientName}，检查申请号：${r[key].AccessionNumber}<br/>`
                    })
                    if (patientMessage) {
                        message =
                            patientMessage +
                            '<br/>' +
                            this.$t('trials:inspection:pullImage:message:isHasPull') +
                            '，' +
                            message
                    }
                }
                let confirm = await this.$confirm(message, '', {
                    dangerouslyUseHTMLString: true,
                })
                if (!confirm) return false

                this.loading = true
                this.btnLoading = true
                let res = await cmoveStudyList(data)
                this.loading = false
                this.btnLoading = false
                if (res.IsSuccess) {
                    this.$message.success(
                        this.$t('trials:inspection:pullImage:message:pullSuccess')
                    )
                    this.handleCancelGroup()
                }
            } catch (err) {
                this.loading = false
                this.btnLoading = false
                console.log(err)
            }
        },
        handleSelectionChange(val) {
            this.multipleSelection = val
        },
    },
}
</script>
<style lang="scss" scoped>
.icon-i {
    color: #67c23a;
    cursor: pointer;
}

.refreshBtn {
    // transform: rotate(0);
    transition: 0.5s;

    &:hover {
        transform: rotate(180deg);
        transition: 0.5s;
    }
}
</style>