<template>
  <el-form
    v-if="isRender"
    ref="measurementForm"
    v-loading="loading"
    :model="questionForm"
    size="mini"
    class="measurement-form"
  >
    <div class="base-dialog-body">
      <div style="display: flex;justify-content: space-between;">
        <h3 v-if="questionName" style="color: #ddd;padding: 5px 0px;margin: 0;">
          {{ lesionName }}
          <span v-if="answers.FromMark">({{ answers.FromMark }})</span>
        </h3>
        <!-- 关闭 -->
        <div>
          <i class="el-icon-circle-close" style="font-size: 25px;cursor: pointer;" @click="handleClose" />
        </div>
      </div>

      <el-form-item
        :label="$t('trials:reading:title:lesionType')"
        prop="LesionType"
        :rules="[
          { required:true,message: $t('common:ruleMessage:select'), trigger: ['blur']},
        ]"
      >
        <!-- 下拉框 -->
        <el-select
          v-model="questionForm.LesionType"
          filterable
          :disabled="!isCurrentTask || readingTaskState>=2 || (!isBaseLineTask && !(isFirstChangeTask && (lesionType === 2 || lesionType === 5 || lesionType === 6)))"
          @change="((val)=>{lesionTypeChange(val)})"
        >

          <el-option
            v-for="item of $d.LesionType"
            v-show="(isBaseLineTask && (item.value === 0 || item.value === 1)) || (!isBaseLineTask && ((isFirstChangeTask && (item.value === 5 || item.value === 6)) || !isFirstChangeTask))"
            :key="item.id"
            :value="item.value"
            :label="item.label"
          />

        </el-select>
      </el-form-item>
      <el-form-item
        v-for="qs in questions"
        v-show="qs.ShowQuestion!==2"
        :key="qs.Id"
        :label="`${qs.QuestionName}`"
        :prop="qs.Id"
        :rules="[
          { required: (qs.IsRequired === 0 || (qs.IsRequired ===1 && qs.RelevanceId && (questionForm[qs.RelevanceId] === qs.RelevanceValue)) || (qs.QuestionMark === 6 && questionForm.IsCanEditPosition === true) || (questionForm.IsCanEditPosition && qs.QuestionMark === 10)) && qs.Type!=='group' && qs.Type!=='summary',
            message:['radio', 'select', 'checkbox'].includes(qs.Type) ? $t('common:ruleMessage:select') : $t('common:ruleMessage:specify'), trigger: ['blur','change']},
        ]"
      >

        <!-- 输入框 -->
        <template v-if="qs.Type==='input' || qs.Type==='number'">
          <el-input
            v-if="qs.Type==='input' || qs.Type==='number'"
            v-model="questionForm[qs.Id]"
            :disabled="!isCurrentTask || readingTaskState>=2 || qs.QuestionMark === 0 || qs.QuestionMark === 1 || qs.QuestionMark === 2 || qs.QuestionMark === 5 || (qs.QuestionMark === 6 && (isCurrentTaskAdd === 'False' || (isCurrentTaskAdd === 'True' && !questionForm.IsCanEditPosition) || !!answers.SplitOrMergeLesionName))|| (qs.QuestionMark === 8 && (isCurrentTaskAdd === 'False' || !!answers.SplitOrMergeLesionName) && lesionType !== 2 ) || (qs.QuestionMark === 10 && (isCurrentTaskAdd === 'False' || !!answers.SplitOrMergeLesionName)) || (isFirstChangeTask && (lesionType === 5 || lesionType === 6) && (qs.QuestionMark === 8 || qs.QuestionMark === 10 ))"
            @change="((val)=>{formItemChange(val, qs)})"
          >
            <template v-if="(qs.QuestionMark===0 || qs.QuestionMark===1) && qs.Unit" slot="append">
              {{ $fd('ValueUnit', parseInt(qs.Unit)) }}
            </template>
          </el-input>
        </template>
        <!-- 多行文本输入框 -->
        <el-input
          v-if="qs.Type==='textarea'"
          v-model="questionForm[qs.Id]"
          type="textarea"
          :autosize="{ minRows: 2, maxRows: 4}"
          :disabled="!isCurrentTask || readingTaskState>=2 "
          @change="((val)=>{formItemChange(val, qs)})"
        />
        <!-- 下拉框 -->
        <el-select
          v-if="qs.Type==='select'"
          v-model="questionForm[qs.Id]"
          filterable
          :placeholder="qs.QuestionMark === 8 ? $t('common:placeholder:selectorsearch') : $t('common:placeholder:select')"
          :disabled="!isCurrentTask || readingTaskState>=2 || qs.QuestionMark === 0 || qs.QuestionMark === 1 || qs.QuestionMark === 2 || qs.QuestionMark === 5 || (qs.QuestionMark === 6 && (isCurrentTaskAdd === 'False' || (isCurrentTaskAdd === 'True' && !questionForm.IsCanEditPosition) || !!answers.SplitOrMergeLesionName))|| (qs.QuestionMark === 8 && (isCurrentTaskAdd === 'False'|| !!answers.SplitOrMergeLesionName)) || (qs.QuestionMark === 10 && (isCurrentTaskAdd === 'False' || (isCurrentTaskAdd === 'True' && !questionForm.IsCanEditPosition) || !!answers.SplitOrMergeLesionName)) || (qs.QuestionMark === 7 && isFirstChangeTask ) || (qs.QuestionMark === 8 && isFirstChangeTask)"
          @change="((val)=>{formItemChange(val, qs)})"
        >
          <template v-if="qs.QuestionMark === 8" #prefix>
            <span style="padding-left: 5px;">
              <i class="el-icon-search" />
            </span>
          </template>
          <template v-if="qs.TableQuestionType === 1">
            <el-option
              v-for="item in organList"
              :key="item.Id"
              :label="item[qs.DataTableColumn]"
              :value="item[qs.DataTableColumn]"
            />
          </template>
          <template v-else-if="qs.DictionaryCode && qs.QuestionMark === 7 && isBaseLineTask">
            <el-option
              v-for="item of $d[qs.DictionaryCode]"
              v-show="((lesionType === 0 && item.value ===0) || (lesionType === 1 && (item.value ===0))) && (crterionDictionaryGroup.indexOf(item.raw.CrterionDictionaryGroup) > -1)"
              :key="item.id"
              :value="item.value"
              :label="item.label"
            />
          </template>
          <template v-else-if="qs.DictionaryCode && qs.QuestionMark === 7 && isFirstChangeTask && (lesionType === 5 || lesionType ===6)">
            <el-option
              v-for="item of $d[qs.DictionaryCode]"
              v-show="((lesionType === 5 && item.value ===1) || (lesionType === 6 && (item.value ===0))) && (crterionDictionaryGroup.indexOf(item.raw.CrterionDictionaryGroup) > -1)"
              :key="item.id"
              :value="item.value"
              :label="item.label"
            />
          </template>
          <template v-else-if="qs.DictionaryCode && qs.QuestionMark === 7 && !isBaseLineTask">
            <!-- 首次分裂的病灶只能选择存在 -->
            <template v-if="answers.IsFristAdd=== 'True' && answers.SplitOrMergeType === '0'">
              <el-option
                v-for="item of $d[qs.DictionaryCode]"
                v-show="((lesionType === 0 && item.value === 0) || (lesionType === 1 && item.value === 0 ) || (lesionType === 2 && item.value === 0 )|| (lesionType === 5 && item.value === 1 )|| (lesionType === 6 && item.value === 0 )|| (lesionType === 7 && item.value === 0 )|| (lesionType === 8 && item.value === 1 )) && (crterionDictionaryGroup.indexOf(item.raw.CrterionDictionaryGroup) > -1)"
                :key="item.id"
                :value="item.value"
                :label="item.label"
              />
            </template>
            <template v-else-if="isCurrentTaskAdd=== 'True' && (lesionType === 2 || lesionType === 8)">
              <!-- 首次添加的新病灶不能为无法评估和消失 -->
              <el-option
                v-for="item of $d[qs.DictionaryCode]"
                v-show="(((item.value === 0 || item.value === 1) && lesionType === 2) || ((item.value === 1 || item.value === 2) && lesionType === 8)) && (crterionDictionaryGroup.indexOf(item.raw.CrterionDictionaryGroup) > -1)"
                :key="item.id"
                :value="item.value"
                :label="item.label"
              />
            </template>
            <template v-else-if="isCurrentTaskAdd=== 'False' && lesionType === 1 && answers.LastTaskState !== '4'">
              <el-option
                v-for="item of filterState($d[qs.DictionaryCode])"
                v-show="(item.value !== 5) && (crterionDictionaryGroup.indexOf(item.raw.CrterionDictionaryGroup) > -1)"
                :key="item.id"
                :value="item.value"
                :label="item.label"
              />
            </template>
            <template v-else>
              <el-option
                v-for="item of filterState($d[qs.DictionaryCode])"
                v-show="crterionDictionaryGroup.indexOf(item.raw.CrterionDictionaryGroup) > -1"
                :key="item.id"
                :value="item.value"
                :label="item.label"
              />
            </template>
          </template>
          <template v-else-if="qs.DictionaryCode && qs.QuestionMark !== 7">
            <el-option
              v-for="item of $d[qs.DictionaryCode]"
              v-show="crterionDictionaryGroup.indexOf(item.raw.CrterionDictionaryGroup) > -1"
              :key="item.id"
              :value="item.value"
              :label="item.label"
            />
          </template>
          <template v-else-if="qs.TypeValue">
            <el-option
              v-for="val in qs.TypeValue.split('|')"
              :key="val"
              :label="val"
              :value="val"
            />
          </template>

        </el-select>
        <!-- 单选 -->
        <el-radio-group
          v-if="qs.Type==='radio'"
          v-model="questionForm[qs.id]"
          :disabled="!isCurrentTask || readingTaskState>=2"
        >
          <el-radio
            v-for="val in qs.options.split('|')"
            :key="val"
            :label="val"
          >
            {{ val }}
          </el-radio>
        </el-radio-group>
      </el-form-item>

    </div>

    <div
      v-if="isCurrentTask && readingTaskState<2"
      class="base-dialog-footer"
      style="text-align:right;margin-top:10px;"
    >
      <!-- 清除标记 -->
      <el-button
        v-if="questionForm.MeasureData && (!isFirstChangeTask || (isFirstChangeTask && (lesionType === 5 || lesionType === 6)))"
        size="mini"
        @click="handleDeleteMeasureData"
      >
        {{ $t('trials:reading:button:removeMark') }}
      </el-button>
      <!-- 删除 -->
      <el-button
        v-if="!isFirstChangeTask && isCurrentTaskAdd !== 'False'"
        size="mini"
        @click="handleDelete"
      >
        {{ $t('common:button:delete') }}
      </el-button>
      <!-- 保存 -->
      <el-button
        v-if="(isFirstChangeTask && (lesionType === 5 || lesionType === 6)) || !isFirstChangeTask"
        size="mini"
        @click="handleSave"
      >
        {{ $t('common:button:save') }}
      </el-button>
    </div>
  </el-form>
</template>
<script>
import { submitTableQuestion, deleteReadingRowAnswer } from '@/api/trials'
// import { uploadPrintscreen } from '@/api/reading'
import DicomEvent from './../DicomEvent'
import store from '@/store'
export default {
  name: 'IRecistQuestionForm',
  props: {
    questions: {
      type: Array,
      default() { return [] }
    },
    answers: {
      type: Object,
      default() { return {} }
    },
    lesionType: {
      type: Number,
      required: true
    },
    visitTaskId: {
      type: String,
      required: true
    },
    parentQsId: {
      type: String,
      required: true
    },
    isCurrentTask: {
      type: Boolean,
      required: true
    },
    readingTaskState: {
      type: Number,
      required: true
    },
    isBaseLineTask: {
      type: Boolean,
      required: true
    },
    isFirstChangeTask: {
      type: Boolean,
      required: false
    },
    isConvertedTask: {
      type: Boolean,
      required: false
    },
    orderMark: {
      type: String,
      default: ''
    },
    questionName: {
      type: String,
      required: true
    },
    rowIndex: {
      type: String,
      required: true
    },
    tableQuestions: {
      type: Array,
      default() { return [] }
    },
    crterionDictionaryGroup: {
      type: Array,
      default() { return [] }
    }
  },

  data() {
    return {
      questionForm: {},
      loading: false,
      trialId: '',
      organList: [],
      originalQuestionForm: {},
      isRender: false,
      toolType: '',
      lesionName: '',
      isCurrentTaskAdd: 'False',
      splitOrMergeLesionName: '',
      lesionMark: '',
      deleteInfo: null,
      pictureBaseStr: '',
      currentMarkTool: ''
    }
  },
  mounted() {
    this.trialId = this.$route.query.trialId
    this.initForm()
    DicomEvent.$on('handleImageQualityAbnormal', () => {
      this.setState()
    })
  },
  beforeDestroy() {
    DicomEvent.$off('handleImageQualityAbnormal')
  },
  methods: {
    async initForm() {
      const loading = this.$loading({ fullscreen: true })
      this.questions.forEach(item => {
        var val = this.answers[item.Id]
        if (item.DictionaryCode) {
          val = isNaN(parseInt(this.answers[item.Id])) ? this.answers[item.Id] : parseInt(this.answers[item.Id])
        }
        if (this.isBaseLineTask && item.QuestionMark === 7 && this.lesionType === 0) {
          val = 0
        }
        if (this.isBaseLineTask && item.QuestionMark === 7 && this.lesionType === 1) {
          val = 0
        }

        this.$set(this.questionForm, item.Id, val)
      })
      this.$set(this.questionForm, 'MeasureData', this.answers.MeasureData ? JSON.parse(this.answers.MeasureData) : '')
      this.$set(this.questionForm, 'RowIndex', this.answers.RowIndex ? this.answers.RowIndex : '')
      this.$set(this.questionForm, 'RowId', this.answers.RowId ? this.answers.RowId : '')
      this.$set(this.questionForm, 'OrganInfoId', this.answers.OrganInfoId ? this.answers.OrganInfoId : '')

      // saveTypeEnum 0：未保存过（新建病灶）；1：已保存，信息不完整（随访初始化病灶/分裂病灶，通过状态判断）；2：已保存，信息完整
      var lesionState = this.getQuestionVal(7)
      if (this.questionForm.RowId) {
        this.$set(this.questionForm, 'saveTypeEnum', isNaN(parseInt(lesionState)) ? 1 : 2)
      } else {
        this.$set(this.questionForm, 'saveTypeEnum', 0)
      }
      this.$set(this.questionForm, 'IsCanEditPosition', this.answers.IsCanEditPosition === 'True')
      this.$set(this.questionForm, 'IsDicomReading', this.answers.IsDicomReading !== 'False')

      this.toolType = this.questionForm.MeasureData ? this.questionForm.MeasureData.type : ''
      this.currentMarkTool = this.questionForm.MeasureData ? this.questionForm.MeasureData.type : this.answers.MarkTool
      if (!this.questionForm.LesionType) {
        this.$set(this.questionForm, 'LesionType', this.lesionType)
      }
      this.lesionName = this.getLesionInfo(this.orderMark, this.rowIndex)
      this.isCurrentTaskAdd = this.answers.IsCurrentTaskAdd ? this.answers.IsCurrentTaskAdd : 'True'
      this.lesionMark = this.getLesionName(this.orderMark, this.questionForm.RowIndex)
      this.originalQuestionForm = { ...this.questionForm }
      // this.lesionType === 0 && this.questionForm.MeasureData
      if (this.answers.measureObj) {
        await this.setMeasureData(this.answers.measureObj, true)
      } else {
        if (this.questionForm.MeasureData) {
        // 十字线工具 且是靶病灶  器官只能是淋巴结类型
          if (this.questionForm.MeasureData.type === 'Bidirectional') {
            this.organList = []
            await this.getOrganInfoList(1)
          } else if (this.questionForm.MeasureData.type === 'Length') {
          // 直径测量工具 且是靶病灶  器官只能是非淋巴结类型
            this.organList = []
            await this.getOrganInfoList(0)
          } else {
            this.organList = []
            await this.getOrganInfoList()
          }
        } else {
          this.organList = []
          await this.getOrganInfoList()
        }
      }

      // 首次分裂的病灶默认状态为空时，设置默认值为存在
      if (this.answers.IsFristAdd === 'True' && this.answers.SplitOrMergeType === '0' && isNaN(parseInt(this.getQuestionVal(7)))) {
        const stateId = this.getQuestionId(7)
        if (this.lesionType === 0 || this.lesionType === 1 || this.lesionType === 2 || this.lesionType === 6 || this.lesionType === 7) {
          this.$set(this.questionForm, stateId, 0)
        } else if (this.lesionType === 5 || this.lesionType === 8) {
          this.$set(this.questionForm, stateId, 1)
        }
        var isLymphLesion = this.getQuestionVal(2)
        isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null
        const lesionPart = this.getQuestionVal(8)
        const lesionOrgan = this.getQuestionVal(6)
        const lesionLength = !isNaN(parseInt(this.getQuestionVal(0))) ? this.getQuestionVal(0) : ''
        const lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? this.getQuestionVal(1) : ''
        const lesionState = !isNaN(parseInt(this.getQuestionVal(7))) ? parseInt(this.getQuestionVal(7)) : ''
        this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, lesionShort, lesionState, saveTypeEnum: this.questionForm.saveTypeEnum, lesionLength, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: this.questionForm })
      }
      this.isRender = true
      loading.close()
    },
    getLesionName(orderMark, rowIndex) {
      var lessionName = ''
      var rowIndexArr = rowIndex.split('.')
      var x = parseInt(rowIndexArr[0])
      var y = parseInt(rowIndexArr[1])
      if (y > 0) {
        y = String.fromCharCode(parseInt(rowIndexArr[1]) - 1 + 65 + 32)
        lessionName = `${orderMark}${String(x).padStart(2, '0')}${y}`
      } else {
        lessionName = `${orderMark}${String(x).padStart(2, '0')}`
      }

      return lessionName
    },
    getLesionInfo(orderMark, rowIndex) {
      var arr = []
      var lessionName = ''
      var rowIndexArr = rowIndex.split('.')
      var x = parseInt(rowIndexArr[0])
      var y = parseInt(rowIndexArr[1])
      if (y > 0) {
        y = String.fromCharCode(parseInt(rowIndexArr[1]) - 1 + 65 + 32)
        lessionName = `${orderMark}${String(x).padStart(2, '0')}${y}`
        arr.push(lessionName)
      } else {
        lessionName = `${orderMark}${String(x).padStart(2, '0')}`
        arr.push(lessionName)
      }
      if (this.answers.SplitOrMergeLesionName && parseInt(this.answers.SplitOrMergeType) === 0) {
        arr.push(`(Split from ${this.answers.SplitOrMergeLesionName})`)
      }
      return arr.join(' ')
    },
    getQuestionId(questionMark) {
      var idx = this.questions.findIndex(i => i.QuestionMark === questionMark)
      if (idx > -1) {
        return this.questions[idx].Id
      } else {
        return ''
      }
    },
    handleLocation() {
      DicomEvent.$emit('imageLocation', this.questionForm)
    },
    getOrganInfoList(isLymphNodes = null) {
      return new Promise(async resolve => {
        if (!sessionStorage.getItem('organList')) {
          await store.dispatch('reading/getOrganInfo', this.visitTaskId)
        }
        var organList = sessionStorage.getItem('organList') ? JSON.parse(sessionStorage.getItem('organList')) : []
        var idx = organList.findIndex(i => i.LesionType === this.lesionType)
        if (idx > -1) {
          organList = organList[idx].OrganList

          if (!isNaN(parseInt(isLymphNodes))) {
            this.organList = organList.filter((item) => item.IsLymphNodes === parseInt(isLymphNodes))
          } else {
            this.organList = organList
          }
        }
        resolve()
      })
    },
    async lesionTypeChange(v) {
      this.$emit('determineExistsUnsavedLession', async val => {
        if (val) {
          // 基线时，靶病灶只能用直径和长短径标注，非dicom文件的标注不能作为靶病灶
          //
          if ((this.isBaseLineTask || this.questionForm.IsDicomReading === false) && this.questionForm.MeasureData && this.questionForm.MeasureData.type === 'ArrowAnnotate' && v === 0) {
            // 当前病灶不允许设置为靶病灶
            this.$confirm(this.$t(' trials:reading:warnning:msg15'), {
              type: 'warning',
              distinguishCancelAndClose: true
            })
              .then(() => {})
              .catch(() => {})
            this.$set(this.questionForm, 'LesionType', this.originalQuestionForm.LesionType)
            return
          }
          // 判断是否超过该病灶类型个数的最大值
          var idx = this.tableQuestions.findIndex(item => item.LesionType === v)
          if (idx > -1 && !!this.tableQuestions[idx].MaxQuestionCount && this.tableQuestions[idx].MaxQuestionCount <= this.tableQuestions[idx].TableQuestions.Answers.length) {
            let msg = this.$t('trials:reading:warnning:msg14')
            // msg = msg.replace('xxx', this.tableQuestions[idx].QuestionName)
            msg = msg.replace('xxx', this.tableQuestions[idx].MaxQuestionCount)
            this.$confirm(msg, {
              type: 'warning',
              showCancelButton: false,
              callback: action => {}
            })
            this.$set(this.questionForm, 'LesionType', this.originalQuestionForm.LesionType)
            return
          }

          var arr = []
          var lesionName = this.lesionName
          if (this.isFirstChangeTask) {
            this.questionForm[this.getQuestionId(4)] = ''// 病灶名称
          } else {
            this.questionForm[this.getQuestionId(8)] = ''// 所在部位
            this.questionForm[this.getQuestionId(5)] = ''// 所在器官
            this.questionForm[this.getQuestionId(10)] = ''// 部位描述
            this.questionForm[this.getQuestionId(4)] = ''// 病灶名称
            this.questionForm[this.getQuestionId(6)] = ''// 所在位置
            this.questionForm[this.getQuestionId(2)] = ''// 是否淋巴结
          }
          this.questions.forEach(item => {
            item.Answer = this.questionForm[item.Id]
            arr.push(item)
          })
          var obj = { questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex, visitTaskId: this.visitTaskId, lesionType: this.lesionType }

          DicomEvent.$emit('imageLocation', obj)
          var type = null
          if (this.questionForm.RowId) {
            type = 1
          } else {
            type = 0
          }
          var lesionInfo = { questionForm: arr, oldLesionType: this.lesionType, newLesionType: v, rowIndex: this.questionForm.RowIndex, questionId: this.parentQsId, measureData: this.questionForm.MeasureData, type, rowId: this.questionForm.RowId, lesionName: lesionName, fromMark: this.answers.FromMark, fromRowId: this.answers.FromRowId, fromQuestionId: this.answers.FromQuestionId }
          if (this.isFirstChangeTask) {
            lesionInfo.organInfoId = this.questionForm.OrganInfoId
          }
          DicomEvent.$emit('changeLesionType', lesionInfo)
        } else {
          this.$set(this.questionForm, 'LesionType', this.originalQuestionForm.LesionType)
        }
      })
    },
    deleteLesionInfo() {
      return new Promise((resolve, reject) => {
        const loading = this.$loading({ fullscreen: true })
        var param = {
          visitTaskId: this.visitTaskId,
          questionId: this.parentQsId,
          rowId: this.questionForm.RowId
        }
        deleteReadingRowAnswer(param)
          .then(async res => {
            if (res.IsSuccess) {
              DicomEvent.$emit('getReportInfo', true)
            }
            loading.close()
            resolve()
          }).catch(() => {
            loading.close()
            reject()
          })
      })
    },
    async formItemChange(v, question) {
      if (question.QuestionMark === 8 && question.RelationQuestions.length > 0) {
        // 当选择部位时，联动器官、位置、是否淋巴结问题答案
        var index = this.organList.findIndex(item => item[question.DataTableColumn] === v)
        if (index > -1) {
          var selected = this.organList[index]

          question.RelationQuestions.map(qs => {
            var val = selected[qs.DataTableColumn]
            this.$set(this.questionForm, qs.Id, val)
          })
          this.$set(this.questionForm, 'OrganInfoId', selected.OrganInfoId)
          this.$set(this.questionForm, 'IsCanEditPosition', selected['IsCanEditPosition'])
        } else {
          question.RelationQuestions.map(qs => {
            this.$set(this.questionForm, qs.Id, '')
          })
        }
      }
      // saveTypeEnum 0：未保存过（新建病灶）；1：已保存，信息不完整（随访初始化病灶/分裂病灶，通过状态判断）；2：已保存，信息完整
      if (this.questionForm.RowId) {
        this.$set(this.questionForm, 'saveTypeEnum', 1)
      } else {
        this.$set(this.questionForm, 'saveTypeEnum', 0)
      }
      var isLymphLesion = this.getQuestionVal(2)
      isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null
      const lesionPart = this.getQuestionVal(8)
      const lesionOrgan = this.getQuestionVal(6)
      const lesionLength = !isNaN(parseInt(this.getQuestionVal(0))) ? this.getQuestionVal(0) : ''
      const lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? this.getQuestionVal(1) : ''
      const lesionState = !isNaN(parseInt(this.getQuestionVal(7))) ? parseInt(this.getQuestionVal(7)) : ''
      this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, lesionShort, lesionState, saveTypeEnum: this.questionForm.saveTypeEnum, lesionLength, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: this.questionForm })

      if (question.QuestionMark === 7) {
        var status = ''
        if (this.lesionType === 0 && lesionState === 1) {
          status = 'T'
        }
        if ((this.lesionType === 0 && lesionState === 3) || (this.lesionType === 1 && lesionState === 3) || (this.lesionType === 2 && lesionState === 3)) {
          status = 'D'
        }
        if (this.questionForm.MeasureData) {
          this.questionForm.MeasureData.status = status
        }
        await store.dispatch('reading/updateMeasureDataStatus', { visitTaskId: this.visitTaskId, rowIndex: this.rowIndex, questionId: this.parentQsId, status })
        DicomEvent.$emit('getMeasureData')
      }
    },
    setMeasureData(measureData, isInit = false, isUpdate = false) {
      return new Promise(resolve => {
        if (measureData) {
          if (measureData.pictureBaseStr) {
            this.pictureBaseStr = measureData.pictureBaseStr
            measureData.pictureBaseStr = ''
          }
          // 获取长径(0)
          // const loading = this.$loading({ fullscreen: true })
          var lengthObj = this.questions.find(i => i.QuestionMark === 0)
          var shortObj = this.questions.find(i => i.QuestionMark === 1)
          if (measureData.type === 'Length' || measureData.type === 'Bidirectional') {
            var length = ''
            if (measureData.type === 'Length') {
              length = measureData.data.length
            } else if (measureData.type === 'Bidirectional') {
              length = measureData.data.longestDiameter
            }
            this.$set(this.questionForm, lengthObj.Id, length)
            // 获取短径(1)

            var short = ''
            if (measureData.type === 'Bidirectional') {
              short = measureData.data.shortestDiameter
            }
            this.$set(this.questionForm, shortObj.Id, short)
          } else if (measureData.type === 'ArrowAnnotate') {
            this.$set(this.questionForm, lengthObj.Id, '')
            this.$set(this.questionForm, shortObj.Id, '')
          }
          // if (this.toolType !== measureData.type) {
          // 获取器官问题
          // var organ = this.getQuestionVal(5)

          // 十字线工具 器官只能是淋巴结类型

          if (measureData.type === 'Bidirectional') {
            this.organList = []
            this.getOrganInfoList(1)
          } else if (measureData.type === 'Length') {
            // 直径测量工具 且是靶病灶  器官只能是非淋巴结类型
            this.organList = []
            this.getOrganInfoList(0)
          } else {
            this.organList = []
            this.getOrganInfoList()
          }

          // if (this.toolType) {
          //   this.questionForm[this.getQuestionId(8)] = ''
          //   this.questionForm[this.getQuestionId(5)] = ''
          //   this.questionForm[this.getQuestionId(6)] = ''
          //   this.questionForm[this.getQuestionId(2)] = ''
          // }

          var data = {}
          if (measureData.isDicomReading === false) {
            this.$set(this.questionForm, 'IsDicomReading', false)
            data = {
              Id: '',
              IsDicomReading: false,
              StudyId: measureData.studyId,
              InstanceId: measureData.instanceId,
              SeriesId: measureData.seriesId,
              MeasureData: measureData,
              QuestionId: this.parentQsId,
              RowIndex: this.questionForm.RowIndex,
              RowId: this.questionForm.RowId,
              VisitTaskId: this.visitTaskId
            }
            measureData.data.uuid = `${measureData.instanceId}-${measureData.data.remark}`
          } else {
            this.$set(this.questionForm, 'IsDicomReading', true)

            // 基线时，默认状态都为存在
            if (this.isBaseLineTask && !lesionState) {
              const stateId = this.getQuestionId(7)
              this.$set(this.questionForm, stateId, 0)
            }
            // if (!this.isBaseLineTask && this.lesionType === 1 && isLymphLesion === 1 && lesionShort > 0) {
            //   const stateId = this.getQuestionId(7)
            //   this.$set(this.questionForm, stateId, '')
            // }
            // 首次创建新靶病灶，默认状态为存在
            if (this.isFirstChangeTask && this.lesionType === 5) {
              const stateId = this.getQuestionId(7)
              this.$set(this.questionForm, stateId, 1)
            }
            // 首次创建新非靶病灶，默认状态为存在
            if (this.isFirstChangeTask && this.lesionType === 6) {
              const stateId = this.getQuestionId(7)
              this.$set(this.questionForm, stateId, 0)
            }

            var isLymphLesion = this.getQuestionVal(2)
            isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null
            var lesionLength = !isNaN(parseInt(this.getQuestionVal(0))) ? this.getQuestionVal(0) : ''
            var lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? this.getQuestionVal(1) : ''

            // 当前添加的新病灶或第一次次转变任务不做处理
            if (!(this.isCurrentTaskAdd === 'True' || this.isFirstChangeTask)) {
              // 非基线时，非淋巴结病灶长径>=10mm，自动给“存在”状态，如果淋巴结病灶短径>=10mm，自动给“存在”状态。

              if (!this.isBaseLineTask && ((measureData.type === 'Length' && lesionLength >= 10) || (measureData.type === 'Bidirectional' && lesionShort >= 10))) {
                const stateId = this.getQuestionId(7)
                if (this.lesionType === 0 || this.lesionType === 1 || this.lesionType === 2 || this.lesionType === 6 || this.lesionType === 7) {
                  this.$set(this.questionForm, stateId, 0)
                } else if (this.lesionType === 5 || this.lesionType === 8) {
                  this.$set(this.questionForm, stateId, 1)
                }
              }
              // 非基线时，非淋巴结病灶长径<10mm，自动给“存在”状态，如果淋巴结病灶短径<10mm，自动给“消失”状态。
              if (!this.isBaseLineTask && ((measureData.type === 'Length' && lesionLength < 10) || (measureData.type === 'Bidirectional' && lesionShort < 10))) {
                const stateId = this.getQuestionId(7)
                if (isLymphLesion) {
                  if (this.lesionType === 0 || this.lesionType === 1 || this.lesionType === 2 || this.lesionType === 6 || this.lesionType === 7 || this.lesionType === 8) {
                    this.$set(this.questionForm, stateId, 3)
                  } else if (this.lesionType === 5) {
                    this.$set(this.questionForm, stateId, 2)
                  }
                } else if (isLymphLesion === 0) {
                  if (this.lesionType === 0 || this.lesionType === 1 || this.lesionType === 2 || this.lesionType === 6 || this.lesionType === 7) {
                    this.$set(this.questionForm, stateId, 0)
                  } else if (this.lesionType === 5 || this.lesionType === 8) {
                    this.$set(this.questionForm, stateId, 1)
                  }
                }
              }
            }
            const lesionState = !isNaN(parseInt(this.getQuestionVal(7))) ? parseInt(this.getQuestionVal(7)) : ''
            var status = ''
            if (lesionState) {
              if (this.lesionType === 0 && lesionState === 1) {
                status = 'T'
              }
              if ((this.lesionType === 0 && lesionState === 3) || (this.lesionType === 1 && lesionState === 3) || (this.lesionType === 2 && lesionState === 3)) {
                status = 'D'
              }
            }
            measureData.data.status = status

            measureData.data.remark = this.getLesionName(this.orderMark, this.questionForm.RowIndex)
            data = {
              Id: '',
              IsDicomReading: true,
              StudyId: measureData.studyId,
              InstanceId: measureData.instanceId,
              SeriesId: measureData.seriesId,
              MeasureData: measureData,
              QuestionId: this.parentQsId,
              RowIndex: this.questionForm.RowIndex,
              RowId: this.questionForm.RowId,
              VisitTaskId: this.visitTaskId,
              OrderMarkName: measureData.data.remark,
              frame: isNaN(parseInt(measureData.frame)) ? 0 : measureData.frame
            }
          }
          // Store.$emit('addTemporaryMeasuredData', data)
          store.dispatch('reading/addMeasuredData', { visitTaskId: this.visitTaskId, data: data })
          if (!this.questionForm.IsDicomReading) {
            DicomEvent.$emit('addNoneDicomMeasureData', measureData)
          }
          DicomEvent.$emit('getMeasureData', val => {
            this.pictureBaseStr = val
          })
        }
        if (!isInit) {
          // saveTypeEnum 0：未保存过（新建病灶）；1：已保存，信息不完整（随访初始化病灶/分裂病灶，通过状态判断）
          if (this.questionForm.RowId) {
            this.$set(this.questionForm, 'saveTypeEnum', 1)
          } else {
            this.$set(this.questionForm, 'saveTypeEnum', 0)
          }
        }
        if (isUpdate) {
          this.$set(this.questionForm, 'saveTypeEnum', 1)
        }
        this.$set(this.questionForm, 'MeasureData', measureData)
        var isLymph = this.getQuestionVal(2)
        isLymph = !isNaN(parseInt(isLymph)) ? parseInt(isLymph) : null
        const lesionPart = this.getQuestionVal(8)
        const lesionOrgan = this.getQuestionVal(6)
        // const lesionLength = !isNaN(parseInt(this.getQuestionVal(0))) ? Number(this.getQuestionVal(0)) : ''
        // const lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? Number(this.getQuestionVal(1)) : ''
        const lesionL = !isNaN(parseInt(this.getQuestionVal(0))) ? this.getQuestionVal(0) : ''
        const lesionS = !isNaN(parseInt(this.getQuestionVal(1))) ? this.getQuestionVal(1) : ''
        var lesionState = !isNaN(parseInt(this.getQuestionVal(7))) ? parseInt(this.getQuestionVal(7)) : ''
        // // 状态为空时，非淋巴结靶病灶长径>0mm，自动给“存在”状态，如果淋巴结靶病灶短径>=10mm，自动给“存在”状态。淋巴结靶病灶在短径小于10mm时，用十字线标记测量时标记为消失
        // if (!this.isBaseLineTask && this.lesionType === 0 && ((isLymphLesion === 0 && lesionLength > 0) || (isLymphLesion === 1 && lesionShort >= 10))) {
        //   const stateId = this.getQuestionId(7)
        //   this.$set(this.questionForm, stateId, 0)
        //   lesionState = 0
        // }

        // if (!this.isBaseLineTask && this.lesionType === 0 && (isLymphLesion === 1 && measureData.type === 'Bidirectional' && lesionShort < 10)) {
        //   const stateId = this.getQuestionId(7)
        //   this.$set(this.questionForm, stateId, 3)
        //   lesionState = 3
        // }
        // // 基线时，默认状态都为存在
        // if (this.isBaseLineTask && !lesionState) {
        //   const stateId = this.getQuestionId(7)
        //   this.$set(this.questionForm, stateId, 0)
        //   lesionState = 0
        // }

        this.$emit('resetQuestions', { isLymphLesion: isLymph, lesionPart, lesionOrgan, lesionShort: lesionS, lesionLength: lesionL, lesionState, saveTypeEnum: this.questionForm.saveTypeEnum, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: this.questionForm })
        this.toolType = measureData.type
        DicomEvent.$emit('refreshStudyListMeasureData')
        resolve()
      })

      // loading.close()
      // this.handleSave()
    },
    returnFloat(num) {
      if (num) return
      var value = Math.round(parseFloat(num) * 100) / 100
      var s = value.toString().split('.')
      if (s.length === 1) {
        value = value.toString() + '.00'
        return value
      }
      if (s.length > 1) {
        if (s[1].length < 2) {
          value = value.toString() + '0'
        }
        return value
      }
    },
    getQuestionVal(questionMark) {
      var idx = this.questions.findIndex(i => i.QuestionMark === questionMark)
      if (idx > -1) {
        var questionId = this.questions[idx].Id
        return this.questionForm[questionId]
      } else {
        return ''
      }
    },
    filterState(arr) {
      if (!this.isBaseLineTask) {
        var isLymphLesion = this.getQuestionVal(2)
        isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null
        const lesionLength = !isNaN(parseInt(this.getQuestionVal(0))) ? this.getQuestionVal(0) : 0
        const lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? this.getQuestionVal(1) : 0
        const lastLesionL = !isNaN(parseInt(this.answers.LastTaskMajorAxis)) ? parseInt(this.answers.LastTaskMajorAxis) : 0
        const lastLesionS = !isNaN(parseInt(this.answers.LastTaskShortAxis)) ? parseInt(this.answers.LastTaskShortAxis) : 0
        if (this.lesionType === 1 && isLymphLesion === 1 && this.questionForm.MeasureData && (this.questionForm.MeasureData.type === 'Length' || this.questionForm.MeasureData.type === 'Bidirectional') && lesionShort < lastLesionS) {
          const v = this.isConvertedTask ? 4 : 1
          arr = arr.filter(i => i.value !== v)
        } else if (this.lesionType === 1 && isLymphLesion === 1 && this.questionForm.MeasureData && (this.questionForm.MeasureData.type === 'Length' || this.questionForm.MeasureData.type === 'Bidirectional') && lesionShort >= 10 && lesionShort > lastLesionS) {
          const v = this.isConvertedTask ? 4 : 1
          arr = arr.filter(i => i.value === 0 || i.value === v)
        } else if (this.lesionType === 1 && isLymphLesion === 0 && this.questionForm.MeasureData && (this.questionForm.MeasureData.type === 'Length' || this.questionForm.MeasureData.type === 'Bidirectional') && lesionLength < lastLesionL) {
          const v = this.isConvertedTask ? 4 : 1
          arr = arr.filter(i => i.value !== v)
        }
        return arr
      } else {
        return arr
      }
    },
    setDeleteInfo(deleteInfo) {
      this.deleteInfo = deleteInfo
    },
    deleteOldLesion(rowId) {
      return new Promise((resolve, reject) => {
        var param = {
          visitTaskId: this.visitTaskId,
          rowId: rowId,
          isNeedSort: !this.isFirstChangeTask
        }
        deleteReadingRowAnswer(param)
          .then(async res => {
            resolve()
          }).catch(() => {
          })
      })
    },
    async uploadScreenshots(fileName, file) {
      try {
        file = this.convertBase64ToBlob(file)
        var trialId = this.$route.query.trialId
        var subjectId = this.$route.query.trialId
        const result = await this.OSSclient.put(`/${trialId}/Read/${subjectId}/Visit/${fileName}.png`, file)
        return { isSuccess: true, result: result }
      } catch (e) {
        console.log(e)
        return { isSuccess: false, result: e }
      }
    },
    convertBase64ToBlob(imageEditorBase64) {
      var base64Arr = imageEditorBase64.split(',')
      var imgtype = ''
      var base64String = ''
      if (base64Arr.length > 1) {
        // 如果是图片base64，去掉头信息
        base64String = base64Arr[1]
        imgtype = base64Arr[0].substring(
          base64Arr[0].indexOf(':') + 1,
          base64Arr[0].indexOf(';')
        )
      }
      // 将base64解码
      var bytes = atob(base64String)
      // var bytes = base64;
      var bytesCode = new ArrayBuffer(bytes.length)
      // 转换为类型化数组
      var byteArray = new Uint8Array(bytesCode)

      // 将base64转换为ascii码
      for (var i = 0; i < bytes.length; i++) {
        byteArray[i] = bytes.charCodeAt(i)
      }

      // 生成Blob对象（文件对象）
      return new Blob([bytesCode], { type: imgtype })
    },
    handleSave() {
      this.$refs.measurementForm.validate(async valid => {
        if (!valid) return
        const loading = this.$loading({ fullscreen: true })
        var measureData = this.questionForm.MeasureData
        var lesionState = this.getQuestionVal(7)
        var lesionLength = !isNaN(parseInt(this.getQuestionVal(0))) ? this.getQuestionVal(0) : ''
        var lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? this.getQuestionVal(1) : ''
        var lymphNodes = this.getQuestionVal(2)
        lymphNodes = (lymphNodes !== null && lymphNodes !== undefined) ? parseInt(lymphNodes) : null
        if (this.isBaseLineTask) {
          // 基线
          // 靶病灶且状态为存在（0）
          if (this.lesionType === 0 && lesionState === 0) {
            if (lymphNodes === 1) {
              //  淋巴结靶病灶 必须使用长短径测量工具,短径大于等于15mm
              if (!(measureData && measureData.type === 'Bidirectional' && lesionShort >= 15)) {
                // 评估状态为存在的淋巴结靶病灶需使用长短径测量工具添加标记，且短径须大于15mm！
                this.$confirm(this.$t('trials:reading:warnning:msg19'), {
                  type: 'warning',
                  showCancelButton: false,
                  callback: action => {}
                })
                loading.close()
                return
              }
            } else {
              // 非淋巴结靶病灶 直径测量工具 长径须大于等于10mm且不小于2倍层厚
              if (!(measureData && measureData.type === 'Length' && lesionLength >= 10 && (measureData.thick && lesionLength >= 2 * measureData.thick || !measureData.thick))) {
                // 评估状态为存在的非淋巴结靶病灶需使用直径测量工具添加标记，长径须大于10mm且不小于2倍层厚！
                this.$confirm(this.$t('trials:reading:warnning:msg20'), {
                  type: 'warning',
                  showCancelButton: false,
                  callback: action => {}
                })
                loading.close()
                return
              }
            }
          }

          // 非靶病灶且状态为存在（0）
          if (this.lesionType === 1 && lesionState === 0) {
            if (lymphNodes === 1) {
              // 淋巴结非靶病灶 必须使用长短径测量工具或箭头工具
              if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'RectangleRoi'))) {
                // 评估状态为存在的淋巴结非靶病灶需使用长短径测量工具或矩形工具添加标记
                this.$confirm(this.$t('trials:reading:warnning:msg21'), {
                  type: 'warning',
                  showCancelButton: false,
                  callback: action => {}
                })
                loading.close()
                return
              }
            } else {
              // 非淋巴结非靶病灶 直径测量工具或箭头工具
              if (!(measureData && (measureData.type === 'Length' || measureData.type === 'RectangleRoi'))) {
                // 评估状态为存在的非淋巴结非靶病灶需使用直径测量工具或矩形工具添加标记！
                this.$confirm(this.$t('trials:reading:warnning:msg22'), {
                  type: 'warning',
                  showCancelButton: false,
                  callback: action => {}
                })
                loading.close()
                return
              }
            }
          }
        } else {
          // 非基线
          // 靶病灶且状态为存在（0）
          if (this.lesionType === 0 && lesionState === 0) {
            if (lymphNodes === 1) {
              // 淋巴结靶病灶 必须使用长短径测量工具
              if (!(measureData && measureData.type === 'Bidirectional' && lesionShort >= 10)) {
                // 评估状态为存在的淋巴结靶病灶需使用长短径测量工具添加标记！
                this.$confirm(this.$t('trials:reading:warnning:msg23'), {
                  type: 'warning',
                  showCancelButton: false,
                  callback: action => {}
                })
                loading.close()
                return
              }
            } else {
              // 非淋巴结靶病灶 直径测量工具
              if (!(measureData && measureData.type === 'Length')) {
                // `评估状态为存在的非淋巴结靶病灶需使用直径测量工具添加标记！`
                this.$confirm(this.$t('trials:reading:warnning:msg24'), {
                  type: 'warning',
                  showCancelButton: false,
                  callback: action => {}
                })
                loading.close()
                return
              }
            }
          }
          // 靶病灶且状态为太小（1）
          if (this.lesionType === 0 && lesionState === 1) {
            if (lymphNodes === 1) {
              // 淋巴结靶病灶 必须使用箭头工具，短径记录为5mm
              if (!(measureData && (measureData.type === 'ArrowAnnotate'))) {
                // 评估状态为太小的淋巴结靶病灶需使用箭头工具添加标记！
                this.$confirm(this.$t('trials:reading:warnning:msg25'), {
                  type: 'warning',
                  showCancelButton: false,
                  callback: action => {}
                })
                loading.close()
                return
              } else if (measureData && measureData.type === 'ArrowAnnotate') {
                const shortId = this.getQuestionId(1)
                this.$set(this.questionForm, shortId, 5)
                lesionShort = 5
              }
            } else {
              // 非淋巴结靶病灶 箭头工具，长径记录为5mm
              if (!(measureData && (measureData.type === 'ArrowAnnotate'))) {
                // 评估状态为太小的非淋巴结靶病灶需使用箭头工具添加标记！
                this.$confirm(this.$t('trials:reading:warnning:msg26'), {
                  type: 'warning',
                  showCancelButton: false,
                  callback: action => {}
                })
                loading.close()
                return
              } else if (measureData && measureData.type === 'ArrowAnnotate') {
                const lengthId = this.getQuestionId(0)
                this.$set(this.questionForm, lengthId, 5)
                lesionLength = 5
              }
            }
          }

          // 靶病灶且状态为无法评估（2）
          if (this.lesionType === 0 && lesionState === 2) {
            if (lymphNodes === 1) {
              // 淋巴结靶病灶 不需要添加标记
              if (measureData) {
                // 评估状态为无法评估的淋巴结靶病灶不需要添加标记！
                this.$confirm(this.$t('trials:reading:warnning:msg27'), {
                  type: 'warning',
                  showCancelButton: false,
                  callback: action => {}
                })
                loading.close()
                return
              }
            } else {
              // 非淋巴结靶病灶 不需要添加标记
              if (measureData) {
                // 状态为无法评估的非淋巴结靶病灶不需要添加标记！
                this.$confirm(this.$t('trials:reading:warnning:msg28'), {
                  type: 'warning',
                  showCancelButton: false,
                  callback: action => {}
                })
                loading.close()
                return
              }
            }
          }

          // 靶病灶且状态为消失（3）
          if (this.lesionType === 0 && lesionState === 3) {
            if (lymphNodes === 1) {
              if (!(measureData && (measureData.type === 'Bidirectional' && lesionShort < 10))) {
                // `评估状态为消失的淋巴结靶病灶需使用长短径工具添加标记,且短径需小于10mm！`
                this.$confirm(this.$t('trials:reading:warnning:msg29'), {
                  type: 'warning',
                  showCancelButton: false,
                  callback: action => {}
                })
                loading.close()
                return
              }
            } else {
              // 非淋巴结靶病灶 箭头工具
              if (!(measureData && measureData.type === 'ArrowAnnotate')) {
                // 评估状态为消失的非淋巴结靶病灶只能使用箭头工具添加标记！
                this.$confirm(this.$t('trials:reading:warnning:msg30'), {
                  type: 'warning',
                  showCancelButton: false,
                  callback: action => {}
                })
                loading.close()
                return
              } else if (measureData && measureData.type === 'ArrowAnnotate') {
                const lId = this.getQuestionId(0)
                this.$set(this.questionForm, lId, 0)
                lesionLength = 0
              }
            }
          }

          // 非靶病灶且状态为存在（0）
          if (this.lesionType === 1 && lesionState === 0) {
            if (lymphNodes === 1) {
              // 淋巴结非靶病灶 必须使用长短径测量工具、箭头工具
              if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'RectangleRoi'))) {
                // 评估状态为存在的淋巴结非靶病灶需使用长短径测量工具或箭头工具添加标记！
                this.$confirm(this.$t('trials:reading:warnning:msg31'), {
                  type: 'warning',
                  showCancelButton: false,
                  callback: action => {}
                })
                loading.close()
                return
              }
            } else {
              // 非淋巴结非靶病灶 直径测量工具、箭头工具
              if (!(measureData && (measureData.type === 'Length' || measureData.type === 'RectangleRoi'))) {
                // 评估状态为存在的非淋巴结非靶病灶需使用直径测量工具或箭头工具添加标记！
                this.$confirm(this.$t('trials:reading:warnning:msg32'), {
                  type: 'warning',
                  showCancelButton: false,
                  callback: action => {}
                })
                loading.close()
                return
              }
            }
          }

          // 非靶病灶且状态为显著增大（1）
          if (this.lesionType === 1 && lesionState === 1) {
            if (lymphNodes === 1) {
              // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具
              if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'RectangleRoi'))) {
                // `评估状态为显著增大的淋巴结非靶病灶需使用长短径测量工具或矩形工具添加标记！`
                this.$confirm(this.$t('trials:reading:warnning:msg33'), {
                  type: 'warning',
                  showCancelButton: false,
                  callback: action => {}
                })
                loading.close()
                return
              }
            } else {
              // 非淋巴结非靶病灶 直径测量工具、箭头工具
              if (!(measureData && (measureData.type === 'Length' || measureData.type === 'RectangleRoi'))) {
                // 评估状态为显著增大的非淋巴结非靶病灶需使用直径测量工具或矩形工具添加标记！
                this.$confirm(this.$t('trials:reading:warnning:msg34'), {
                  type: 'warning',
                  showCancelButton: false,
                  callback: action => {}
                })
                loading.close()
                return
              }
            }
          }

          // 非靶病灶且状态为无法评估（2）
          if (this.lesionType === 1 && lesionState === 2) {
            if (lymphNodes === 1) {
              // 淋巴结靶病灶 无标记
              if (measureData) {
                // 评估状态为无法评估的淋巴结非靶病灶不需要添加标记！
                this.$confirm(this.$t('trials:reading:warnning:msg35'), {
                  type: 'warning',
                  showCancelButton: false,
                  callback: action => {}
                })
                loading.close()
                return
              }
            } else {
              // 非淋巴结非靶病灶 无标记
              if (measureData) {
                // 评估状态为无法评估的非淋巴结非靶病灶不需要添加标记！
                this.$confirm(this.$t('trials:reading:warnning:msg36'), {
                  type: 'warning',
                  showCancelButton: false,
                  callback: action => {}
                })
                loading.close()
                return
              }
            }
          }

          // 非靶病灶且状态为消失（3）
          if (this.lesionType === 1 && lesionState === 3) {
            if (lymphNodes === 1) {
              // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具
              if (!(measureData && (measureData.type === 'ArrowAnnotate'))) {
                // 评估状态为消失的淋巴结非靶病灶需使用箭头工具添加标记！
                this.$confirm(this.$t('trials:reading:warnning:msg37'), {
                  type: 'warning',
                  showCancelButton: false,
                  callback: action => {}
                })
                loading.close()
                return
              }
            } else {
              // 非淋巴结非靶病灶 箭头工具
              if (!(measureData && (measureData.type === 'ArrowAnnotate'))) {
                // 评估状态为消失的非淋巴结非靶病灶需使用箭头工具添加标记！
                this.$confirm(this.$t('trials:reading:warnning:msg38'), {
                  type: 'warning',
                  showCancelButton: false,
                  callback: action => {}
                })
                loading.close()
                return
              }
            }
          }

          // 非靶病灶且状态为显著增大（4）
          if (this.lesionType === 1 && lesionState === 4) {
            if (lymphNodes === 1) {
              // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具
              if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'RectangleRoi'))) {
                // `评估状态为显著增大的淋巴结非靶病灶需使用长短径测量工具或矩形工具添加标记！`
                this.$confirm(this.$t('trials:reading:warnning:msg33'), {
                  type: 'warning',
                  showCancelButton: false,
                  callback: action => {}
                })
                loading.close()
                return
              }
            } else {
              // 非淋巴结非靶病灶 直径测量工具、箭头工具
              if (!(measureData && (measureData.type === 'Length' || measureData.type === 'RectangleRoi'))) {
                // 评估状态为显著增大的非淋巴结非靶病灶需使用直径测量工具或矩形工具添加标记！
                this.$confirm(this.$t('trials:reading:warnning:msg34'), {
                  type: 'warning',
                  showCancelButton: false,
                  callback: action => {}
                })
                loading.close()
                return
              }
            }
          }

          // 非靶病灶且状态为进一步增大（5）
          if (this.lesionType === 1 && lesionState === 5) {
            if (lymphNodes === 1) {
              // 淋巴结非靶病灶 必须使用长短径测量工具、矩形工具
              if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'RectangleRoi'))) {
                // `评估状态为进一步增大的淋巴结非靶病灶需使用长短径测量工具或矩形工具添加标记！`
                this.$confirm(this.$t('trials:iRecist:warnning:msg50'), {
                  type: 'warning',
                  showCancelButton: false,
                  callback: action => {}
                })
                loading.close()
                return
              }
            } else {
              // 非淋巴结非靶病灶 直径测量工具、箭头工具
              if (!(measureData && (measureData.type === 'Length' || measureData.type === 'RectangleRoi'))) {
                // 评估状态为进一步增大的非淋巴结非靶病灶需使用直径测量工具或矩形工具添加标记！
                this.$confirm(this.$t('trials:iRecist:warnning:msg51'), {
                  type: 'warning',
                  showCancelButton: false,
                  callback: action => {}
                })
                loading.close()
                return
              }
            }
          }

          // 新病灶且状态为明确（0）
          if (this.lesionType === 2 && lesionState === 0) {
            if (lymphNodes === 1) {
              // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具
              if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'ArrowAnnotate'))) {
                // 评估状态为存在的淋巴结新病灶需使用长短径测量工具或箭头工具添加标记！
                this.$confirm(this.$t('trials:reading:warnning:msg39'), {
                  type: 'warning',
                  showCancelButton: false,
                  callback: action => {}
                })
                loading.close()
                return
              }
            } else {
              // 非淋巴结非靶病灶 直径测量工具、箭头工具
              if (!(measureData && (measureData.type === 'Length' || measureData.type === 'ArrowAnnotate'))) {
                // 评估状态为存在的非淋巴结新病灶需使用直径测量工具或箭头工具添加标记！
                this.$confirm(this.$t('trials:reading:warnning:msg40'), {
                  type: 'warning',
                  showCancelButton: false,
                  callback: action => {}
                })
                loading.close()
                return
              }
            }
          }

          // 新病灶且状态为疑似（1）
          if (this.lesionType === 2 && lesionState === 1) {
            if (lymphNodes === 1) {
              // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具
              if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'ArrowAnnotate'))) {
                // 评估状态为疑似的淋巴结新病灶需使用长短径测量工具或箭头工具添加标记！
                this.$confirm(this.$t('trials:reading:warnning:msg41'), {
                  type: 'warning',
                  showCancelButton: false,
                  callback: action => {}
                })
                loading.close()
                return
              }
            } else {
              // 非淋巴结非靶病灶 直径测量工具、箭头工具
              if (!(measureData && (measureData.type === 'Length' || measureData.type === 'ArrowAnnotate'))) {
                // `评估状态为疑似的非淋巴结新病灶需使用直径测量工具或箭头工具添加标记！`
                this.$confirm(this.$t('trials:reading:warnning:msg42'), {
                  type: 'warning',
                  showCancelButton: false,
                  callback: action => {}
                })
                loading.close()
                return
              }
            }
          }

          // 新病灶且状态为无法评估（2）
          if (this.lesionType === 2 && lesionState === 2) {
            if (lymphNodes === 1) {
              // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具
              if (measureData) {
                // `评估状态为无法评估的淋巴结新病灶不需要添加标记！`
                this.$confirm(this.$t('trials:reading:warnning:msg43'), {
                  type: 'warning',
                  showCancelButton: false,
                  callback: action => {}
                })
                loading.close()
                return
              }
            } else {
              // 非淋巴结非靶病灶 直径测量工具、箭头工具
              if (measureData) {
                // 评估状态为无法评估的非淋巴结新病灶不需要添加标记！
                this.$confirm(this.$t('trials:reading:warnning:msg44'), {
                  type: 'warning',
                  showCancelButton: false,
                  callback: action => {}
                })
                loading.close()
                return
              }
            }
          }

          // 新病灶且状态为消失（3）
          if (this.lesionType === 2 && lesionState === 3) {
            if (lymphNodes === 1) {
              // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具
              if (!(measureData && (measureData.type === 'ArrowAnnotate'))) {
                // 评估状态为消失的淋巴结新病灶需使用箭头工具添加标记！
                this.$confirm(this.$t('trials:reading:warnning:msg45'), {
                  type: 'warning',
                  showCancelButton: false,
                  callback: action => {}
                })
                loading.close()
                return
              }
            } else {
              // 箭头工具
              if (!(measureData && (measureData.type === 'ArrowAnnotate'))) {
                // 评估状态为消失的非淋巴结新病灶需使用箭头工具添加标记！
                this.$confirm(this.$t('trials:reading:warnning:msg46'), {
                  type: 'warning',
                  showCancelButton: false,
                  callback: action => {}
                })
                loading.close()
                return
              }
            }
          }

          /** 新靶病灶 **/
          if (this.lesionType === 5) {
            if (this.isFirstChangeTask) {
              // 靶病灶且状态为存在（0）
              if (lesionState === 1) {
                if (lymphNodes === 1) {
                  //  淋巴结新靶病灶 必须使用长短径测量工具,短径大于等于15mm
                  if (!(measureData && measureData.type === 'Bidirectional' && lesionShort >= 15)) {
                    // 评估状态为存在的淋巴结靶病灶需使用长短径测量工具添加标记，且短径须大于15mm！
                    this.$confirm(this.$t('trials:iRecist:warnning:msg31'), {
                      type: 'warning',
                      showCancelButton: false,
                      callback: action => {}
                    })
                    loading.close()
                    return
                  }
                } else {
                  // 非淋巴结新靶病灶 直径测量工具 长径须大于等于10mm且不小于2倍层厚
                  if (!(measureData && measureData.type === 'Length' && lesionLength >= 10 && (measureData.thick && lesionLength >= 2 * measureData.thick || !measureData.thick))) {
                    // 评估状态为存在的非淋巴结靶病灶需使用直径测量工具添加标记，长径须大于10mm且不小于2倍层厚！
                    this.$confirm(this.$t('trials:iRecist:warnning:msg32'), {
                      type: 'warning',
                      showCancelButton: false,
                      callback: action => {}
                    })
                    loading.close()
                    return
                  }
                }
              }
            } else {
              // 靶病灶且状态为存在（1）
              if (lesionState === 1) {
                if (lymphNodes === 1) {
                  // 淋巴结靶病灶 必须使用长短径测量工具
                  if (!(measureData && measureData.type === 'Bidirectional' && lesionShort >= 10)) {
                    // 评估状态为存在的淋巴结新靶病灶需使用长短径测量工具添加标记！ 短径应不小于10mm
                    this.$confirm(this.$t('trials:iRecist:warnning:msg1'), {
                      type: 'warning',
                      showCancelButton: false,
                      callback: action => {}
                    })
                    loading.close()
                    return
                  }
                } else {
                  // 非淋巴结靶病灶 直径测量工具
                  if (!(measureData && measureData.type === 'Length')) {
                    // `评估状态为存在的非淋巴结靶病灶需使用直径测量工具添加标记！`
                    this.$confirm(this.$t('trials:iRecist:warnning:msg2'), {
                      type: 'warning',
                      showCancelButton: false,
                      callback: action => {}
                    })
                    loading.close()
                    return
                  }
                }
              }
              // 靶病灶且状态为消失（2）
              if (lesionState === 2) {
                if (lymphNodes === 1) {
                  if (!(measureData && (measureData.type === 'Bidirectional' && lesionShort < 10))) {
                    // `评估状态为消失的淋巴结靶病灶需使用长短径工具添加标记,且短径需小于10mm！`
                    this.$confirm(this.$t('trials:iRecist:warnning:msg3'), {
                      type: 'warning',
                      showCancelButton: false,
                      callback: action => {}
                    })
                    loading.close()
                    return
                  }
                } else {
                  // 非淋巴结靶病灶 箭头工具
                  if (!(measureData && measureData.type === 'ArrowAnnotate')) {
                    // 评估状态为消失的非淋巴结靶病灶只能使用箭头工具添加标记！
                    this.$confirm(this.$t('trials:iRecist:warnning:msg4'), {
                      type: 'warning',
                      showCancelButton: false,
                      callback: action => {}
                    })
                    loading.close()
                    return
                  } else if (measureData && measureData.type === 'ArrowAnnotate') {
                    const lId = this.getQuestionId(0)
                    this.$set(this.questionForm, lId, 0)
                    lesionLength = 0
                  }
                }
              }

              // 新靶病灶且状态为无法评估（3）
              if (lesionState === 3) {
                if (lymphNodes === 1) {
                  // 淋巴结新靶病灶 不需要添加标记
                  if (measureData) {
                    // 评估状态为无法评估的淋巴结新靶病灶不需要添加标记！
                    this.$confirm(this.$t('trials:iRecist:warnning:msg5'), {
                      type: 'warning',
                      showCancelButton: false,
                      callback: action => {}
                    })
                    loading.close()
                    return
                  }
                } else {
                  // 非淋巴结靶病灶 不需要添加标记
                  if (measureData) {
                    // 状态为无法评估的非淋巴结新靶病灶不需要添加标记！
                    this.$confirm(this.$t('trials:iRecist:warnning:msg6'), {
                      type: 'warning',
                      showCancelButton: false,
                      callback: action => {}
                    })
                    loading.close()
                    return
                  }
                }
              }

              // 新靶病灶且状态为太小（4）
              if (lesionState === 4) {
                if (lymphNodes === 1) {
                  // 淋巴结靶病灶 必须使用箭头工具，短径记录为5mm
                  if (!(measureData && (measureData.type === 'ArrowAnnotate'))) {
                    // 评估状态为太小的淋巴结靶病灶需使用箭头工具添加标记！
                    this.$confirm(this.$t('trials:iRecist:warnning:msg33'), {
                      type: 'warning',
                      showCancelButton: false,
                      callback: action => {}
                    })
                    loading.close()
                    return
                  } else if (measureData && measureData.type === 'ArrowAnnotate') {
                    const shortId = this.getQuestionId(1)
                    this.$set(this.questionForm, shortId, 5)
                    lesionShort = 5
                  }
                } else {
                  // 非淋巴结靶病灶 箭头工具，长径记录为5mm
                  if (!(measureData && (measureData.type === 'ArrowAnnotate'))) {
                    // 评估状态为太小的非淋巴结靶病灶需使用箭头工具添加标记！
                    this.$confirm(this.$t('trials:iRecist:warnning:msg34'), {
                      type: 'warning',
                      showCancelButton: false,
                      callback: action => {}
                    })
                    loading.close()
                    return
                  } else if (measureData && measureData.type === 'ArrowAnnotate') {
                    const lengthId = this.getQuestionId(0)
                    this.$set(this.questionForm, lengthId, 5)
                    lesionLength = 5
                  }
                }
              }
            }

            // 靶病灶且状态为消失（3）
            // if (lesionState === 3) {
            //   if (lymphNodes === 1) {
            //     if (!(measureData && (measureData.type === 'Bidirectional' && lesionShort < 10))) {
            //     // `评估状态为消失的淋巴结靶病灶需使用长短径工具添加标记,且短径需小于10mm！`
            //       this.$confirm(this.$t('trials:reading:warnning:msg29'), {
            //         type: 'warning',
            //         showCancelButton: false,
            //         callback: action => {}
            //       })
            //       loading.close()
            //       return
            //     }
            //   } else {
            //   // 非淋巴结靶病灶 箭头工具
            //     if (!(measureData && measureData.type === 'ArrowAnnotate')) {
            //     // 评估状态为消失的非淋巴结靶病灶只能使用箭头工具添加标记！
            //       this.$confirm(this.$t('trials:reading:warnning:msg30'), {
            //         type: 'warning',
            //         showCancelButton: false,
            //         callback: action => {}
            //       })
            //       loading.close()
            //       return
            //     } else if (measureData && measureData.type === 'ArrowAnnotate') {
            //       const lId = this.getQuestionId(0)
            //       this.$set(this.questionForm, lId, 0)
            //       lesionLength = 0
            //     }
            //   }
            // }
          }

          /** 新非靶病灶 **/
          if (this.lesionType === 6) {
            // 新非靶病灶且状态为存在（0）
            if (lesionState === 0) {
              if (lymphNodes === 1) {
              // 淋巴结非靶病灶 必须使用长短径测量工具、箭头工具
                if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'RectangleRoi'))) {
                // 评估状态为存在的淋巴结非靶病灶需使用长短径测量工具或矩形工具添加标记！
                  this.$confirm(this.$t('trials:iRecist:warnning:msg7'), {
                    type: 'warning',
                    showCancelButton: false,
                    callback: action => {}
                  })
                  loading.close()
                  return
                }
              } else {
              // 非淋巴结非靶病灶 直径测量工具、箭头工具
                if (!(measureData && (measureData.type === 'Length' || measureData.type === 'RectangleRoi'))) {
                // 评估状态为存在的非淋巴结非靶病灶需使用直径测量工具或矩形工具添加标记！
                  this.$confirm(this.$t('trials:iRecist:warnning:msg8'), {
                    type: 'warning',
                    showCancelButton: false,
                    callback: action => {}
                  })
                  loading.close()
                  return
                }
              }
            }
            // 非靶病灶且状态为增大（0）
            if (lesionState === 1) {
              if (lymphNodes === 1) {
              // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具
                if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'RectangleRoi'))) {
                // `评估状态为增大的淋巴结非靶病灶需使用长短径测量工具或矩形工具添加标记！`
                  this.$confirm(this.$t('trials:iRecist:warnning:msg9'), {
                    type: 'warning',
                    showCancelButton: false,
                    callback: action => {}
                  })
                  loading.close()
                  return
                }
              } else {
              // 非淋巴结非靶病灶 直径测量工具、箭头工具
                if (!(measureData && (measureData.type === 'Length' || measureData.type === 'RectangleRoi'))) {
                // 评估状态为增大的非淋巴结非靶病灶需使用直径测量工具或矩形工具添加标记！
                  this.$confirm(this.$t('trials:iRecist:warnning:msg10'), {
                    type: 'warning',
                    showCancelButton: false,
                    callback: action => {}
                  })
                  loading.close()
                  return
                }
              }
            }
            // 非靶病灶且状态为无法评估（2）
            if (lesionState === 2) {
              if (lymphNodes === 1) {
              // 淋巴结靶病灶 无标记
                if (measureData) {
                // 评估状态为无法评估的淋巴结非靶病灶不需要添加标记！
                  this.$confirm(this.$t('trials:iRecist:warnning:msg11'), {
                    type: 'warning',
                    showCancelButton: false,
                    callback: action => {}
                  })
                  loading.close()
                  return
                }
              } else {
              // 非淋巴结非靶病灶 无标记
                if (measureData) {
                // 评估状态为无法评估的非淋巴结非靶病灶不需要添加标记！
                  this.$confirm(this.$t('trials:iRecist:warnning:msg12'), {
                    type: 'warning',
                    showCancelButton: false,
                    callback: action => {}
                  })
                  loading.close()
                  return
                }
              }
            }
            // 非靶病灶且状态为消失（3）
            if (lesionState === 3) {
              if (lymphNodes === 1) {
              // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具
                if (!(measureData && (measureData.type === 'ArrowAnnotate'))) {
                // 评估状态为消失的淋巴结非靶病灶需使用箭头工具添加标记！
                  this.$confirm(this.$t('trials:iRecist:warnning:msg13'), {
                    type: 'warning',
                    showCancelButton: false,
                    callback: action => {}
                  })
                  loading.close()
                  return
                }
              } else {
              // 非淋巴结非靶病灶 箭头工具
                if (!(measureData && (measureData.type === 'ArrowAnnotate'))) {
                // 评估状态为消失的非淋巴结非靶病灶需使用箭头工具添加标记！
                  this.$confirm(this.$t('trials:iRecist:warnning:msg14'), {
                    type: 'warning',
                    showCancelButton: false,
                    callback: action => {}
                  })
                  loading.close()
                  return
                }
              }
            }
          }

          /** 其他既往新病灶 **/
          if (this.lesionType === 7) {
            // 新病灶且状态为明确（0）
            if (lesionState === 0) {
              if (lymphNodes === 1) {
              // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具
                if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'ArrowAnnotate'))) {
                // 评估状态为明确的淋巴结新病灶需使用长短径测量工具或箭头工具添加标记！
                  this.$confirm(this.$t('trials:iRecist:warnning:msg15'), {
                    type: 'warning',
                    showCancelButton: false,
                    callback: action => {}
                  })
                  loading.close()
                  return
                }
              } else {
              // 非淋巴结非靶病灶 直径测量工具、箭头工具
                if (!(measureData && (measureData.type === 'Length' || measureData.type === 'ArrowAnnotate'))) {
                // 评估状态为明确的非淋巴结新病灶需使用直径测量工具或箭头工具添加标记！
                  this.$confirm(this.$t('trials:iRecist:warnning:msg16'), {
                    type: 'warning',
                    showCancelButton: false,
                    callback: action => {}
                  })
                  loading.close()
                  return
                }
              }
            }

            // 新病灶且状态为疑似（1）
            if (lesionState === 1) {
              if (lymphNodes === 1) {
              // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具
                if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'ArrowAnnotate'))) {
                // 评估状态为疑似的淋巴结新病灶需使用长短径测量工具或箭头工具添加标记！
                  this.$confirm(this.$t('trials:iRecist:warnning:msg17'), {
                    type: 'warning',
                    showCancelButton: false,
                    callback: action => {}
                  })
                  loading.close()
                  return
                }
              } else {
              // 非淋巴结非靶病灶 直径测量工具、箭头工具
                if (!(measureData && (measureData.type === 'Length' || measureData.type === 'ArrowAnnotate'))) {
                // `评估状态为疑似的非淋巴结新病灶需使用直径测量工具或箭头工具添加标记！`
                  this.$confirm(this.$t('trials:iRecist:warnning:msg18'), {
                    type: 'warning',
                    showCancelButton: false,
                    callback: action => {}
                  })
                  loading.close()
                  return
                }
              }
            }

            // 新病灶且状态为无法评估（2）
            if (lesionState === 2) {
              if (lymphNodes === 1) {
              // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具
                if (measureData) {
                // `评估状态为无法评估的淋巴结新病灶不需要添加标记！`
                  this.$confirm(this.$t('trials:iRecist:warnning:msg19'), {
                    type: 'warning',
                    showCancelButton: false,
                    callback: action => {}
                  })
                  loading.close()
                  return
                }
              } else {
              // 非淋巴结非靶病灶 直径测量工具、箭头工具
                if (measureData) {
                // 评估状态为无法评估的非淋巴结新病灶不需要添加标记！
                  this.$confirm(this.$t('trials:iRecist:warnning:msg20'), {
                    type: 'warning',
                    showCancelButton: false,
                    callback: action => {}
                  })
                  loading.close()
                  return
                }
              }
            }

            // 新病灶且状态为消失（3）
            if (lesionState === 3) {
              if (lymphNodes === 1) {
              // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具
                if (!(measureData && (measureData.type === 'ArrowAnnotate'))) {
                // 评估状态为消失的淋巴结新病灶需使用箭头工具添加标记！
                  this.$confirm(this.$t('trials:iRecist:warnning:msg21'), {
                    type: 'warning',
                    showCancelButton: false,
                    callback: action => {}
                  })
                  loading.close()
                  return
                }
              } else {
              // 箭头工具
                if (!(measureData && (measureData.type === 'ArrowAnnotate'))) {
                // 评估状态为消失的非淋巴结新病灶需使用箭头工具添加标记！
                  this.$confirm(this.$t('trials:iRecist:warnning:msg22'), {
                    type: 'warning',
                    showCancelButton: false,
                    callback: action => {}
                  })
                  loading.close()
                  return
                }
              }
            }
          }
          /** 触发iRecist后的新病灶 **/
          if (this.lesionType === 8) {
            // 新病灶且状态为明确（1）
            if (lesionState === 1) {
              if (lymphNodes === 1) {
              // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具
                if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'ArrowAnnotate'))) {
                // 评估状态为明确的淋巴结新病灶需使用长短径测量工具或箭头工具添加标记！
                  this.$confirm(this.$t('trials:iRecist:warnning:msg23'), {
                    type: 'warning',
                    showCancelButton: false,
                    callback: action => {}
                  })
                  loading.close()
                  return
                }
              } else {
              // 非淋巴结非靶病灶 直径测量工具、箭头工具
                if (!(measureData && (measureData.type === 'Length' || measureData.type === 'ArrowAnnotate'))) {
                // 评估状态为存在的非淋巴结新病灶需使用直径测量工具或箭头工具添加标记！
                  this.$confirm(this.$t('trials:iRecist:warnning:msg24'), {
                    type: 'warning',
                    showCancelButton: false,
                    callback: action => {}
                  })
                  loading.close()
                  return
                }
              }
            }

            // 新病灶且状态为疑似（2）
            if (lesionState === 2) {
              if (lymphNodes === 1) {
              // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具
                if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'ArrowAnnotate'))) {
                // 评估状态为疑似的淋巴结新病灶需使用长短径测量工具或箭头工具添加标记！
                  this.$confirm(this.$t('trials:iRecist:warnning:msg25'), {
                    type: 'warning',
                    showCancelButton: false,
                    callback: action => {}
                  })
                  loading.close()
                  return
                }
              } else {
              // 非淋巴结非靶病灶 直径测量工具、箭头工具
                if (!(measureData && (measureData.type === 'Length' || measureData.type === 'ArrowAnnotate'))) {
                // `评估状态为疑似的非淋巴结新病灶需使用直径测量工具或箭头工具添加标记！`
                  this.$confirm(this.$t('trials:iRecist:warnning:msg26'), {
                    type: 'warning',
                    showCancelButton: false,
                    callback: action => {}
                  })
                  loading.close()
                  return
                }
              }
            }
            // 新病灶且状态为消失（3）
            if (lesionState === 3) {
              if (lymphNodes === 1) {
              // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具
                if (!(measureData && (measureData.type === 'ArrowAnnotate'))) {
                // 评估状态为消失的淋巴结新病灶需使用箭头工具添加标记！
                  this.$confirm(this.$t('trials:iRecist:warnning:msg27'), {
                    type: 'warning',
                    showCancelButton: false,
                    callback: action => {}
                  })
                  loading.close()
                  return
                }
              } else {
              // 箭头工具
                if (!(measureData && (measureData.type === 'ArrowAnnotate'))) {
                // 评估状态为消失的非淋巴结新病灶需使用箭头工具添加标记！
                  this.$confirm(this.$t('trials:iRecist:warnning:msg28'), {
                    type: 'warning',
                    showCancelButton: false,
                    callback: action => {}
                  })
                  loading.close()
                  return
                }
              }
            }
            // 新病灶且状态为无法评估（4）
            if (lesionState === 4) {
              if (lymphNodes === 1) {
              // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具
                if (measureData) {
                // `评估状态为无法评估的淋巴结新病灶不需要添加标记！`
                  this.$confirm(this.$t('trials:iRecist:warnning:msg29'), {
                    type: 'warning',
                    showCancelButton: false,
                    callback: action => {}
                  })
                  loading.close()
                  return
                }
              } else {
              // 非淋巴结非靶病灶 直径测量工具、箭头工具
                if (measureData) {
                // 评估状态为无法评估的非淋巴结新病灶不需要添加标记！
                  this.$confirm(this.$t('trials:iRecist:warnning:msg30'), {
                    type: 'warning',
                    showCancelButton: false,
                    callback: action => {}
                  })
                  loading.close()
                  return
                }
              }
            }
          }
        }

        DicomEvent.$emit('getScreenshots', async val => {
          // 靶病灶状态为0（存在）时，一定存在长径或者长短径（长径、十字线 ）
          // 普通靶病灶：长径大于10mm且不小于2倍层厚（基线校验）
          // 淋巴结靶病灶：短径大于15mm且不小于2倍层厚（基线校验）
          var picturePath = ''
          if (val && measureData) {
            var pictureObj = await this.uploadScreenshots(`${new Date().getTime()}`, val)

            picturePath = pictureObj.isSuccess ? pictureObj.result.url : ''
          }
          var answers = []
          var reg = new RegExp(/^[0-9a-zA-Z]{8}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{12}$/)
          for (const k in this.questionForm) {
            if (reg.test(k)) {
              if (answers.findIndex(i => i.tableQuestionId === k) === -1) {
                answers.push({ tableQuestionId: k, answer: this.questionForm[k] })
              }
            }
          }

          var params = {
            questionId: this.parentQsId,
            rowId: this.questionForm.RowId,
            rowIndex: this.answers.RowIndex,
            visitTaskId: this.visitTaskId,
            trialId: this.trialId,
            measureData: measureData ? JSON.stringify(measureData) : '',
            answerList: answers,
            isCanEditPosition: this.questionForm.IsCanEditPosition,
            studyId: measureData ? this.questionForm.MeasureData.studyId : '',
            seriesId: measureData ? this.questionForm.MeasureData.seriesId : '',
            instanceId: measureData ? this.questionForm.MeasureData.instanceId : '',
            numberOfFrames: measureData && !isNaN(parseInt(this.questionForm.MeasureData.frame)) ? parseInt(this.questionForm.MeasureData.frame) : 0,
            picturePath: picturePath,
            organInfoId: this.questionForm.OrganInfoId,
            markTool: measureData ? measureData.type : '',
            fromMark: this.answers.FromMark,
            reportMark: this.answers.FromMark
          }
          if (this.questionForm.IsDicomReading === false) {
            params.isDicomReading = false
          }
          if (this.deleteInfo) {
            await this.deleteOldLesion(this.deleteInfo.rowId)
            this.deleteInfo = null
            params.rowId = ''
          }
          submitTableQuestion(params).then(async res => {
            // 保存成功！
            this.$message.success(this.$t('common:message:savedSuccessfully'))
            this.currentMarkTool = measureData ? measureData.type : ''
            // saveTypeEnum 0：未保存过（新建病灶）；1：已保存，信息不完整（随访初始化病灶/分裂病灶，通过状态判断）；2：已保存，信息完整

            this.$set(this.questionForm, 'saveTypeEnum', 2)
            this.originalQuestionForm = { ...this.questionForm }
            loading.close()
            var isLymphLesion = this.getQuestionVal(2)
            isLymphLesion = isLymphLesion ? parseInt(isLymphLesion) : null
            var lesionOrgan = this.getQuestionVal(6)
            this.$set(this.questionForm, 'RowId', res.Result.RowId)
            const lesionPart = this.getQuestionVal(8)
            const lesionState = Number(this.getQuestionVal(7))
            this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, lesionShort, saveTypeEnum: this.questionForm.saveTypeEnum, lesionLength, lesionState, rowIndex: this.rowIndex, rowId: res.Result.RowId, questionId: this.parentQsId, anwsers: this.questionForm })

            // await store.dispatch('reading/refreshMeasuredData', this.visitTaskId)
            // DicomEvent.$emit('getMeasureData')
            this.$emit('close')
            DicomEvent.$emit('getReportInfo', true)
            DicomEvent.$emit('setMeasuredToolsPassive')
          }).catch(() => { loading.close() })
        })
      })
    },
    handleDeleteMeasureData() {
      // 是否确认清除标记？
      this.$confirm(this.$t('trials:reading:warnning:msg47'), {
        type: 'warning',
        distinguishCancelAndClose: true
      })
        .then(async() => {
          this.organList = []
          await this.getOrganInfoList()
          // 重置长短径 和 状态
          var lengId = this.getQuestionId(0)
          this.$set(this.questionForm, lengId, '')
          var shortId = this.getQuestionId(1)
          this.$set(this.questionForm, shortId, '')
          if (!(this.isFirstChangeTask && (this.lesionType === 5 || this.lesionType === 6))) {
            var stateId = this.getQuestionId(7)
            this.$set(this.questionForm, stateId, '')
          }

          // saveTypeEnum 0：未保存过（新建病灶）；1：已保存，信息不完整（随访初始化病灶/分裂病灶，通过状态判断）
          if (this.questionForm.RowId) {
            this.$set(this.questionForm, 'saveTypeEnum', 1)
          } else {
            this.$set(this.questionForm, 'saveTypeEnum', 0)
          }
          await store.dispatch('reading/removeMeasuredData', { visitTaskId: this.visitTaskId, measureData: this.questionForm.MeasureData, questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex })
          DicomEvent.$emit('getMeasureData')
          // Store.$emit('updateImage', this.questionForm.MeasureData.instanceId)
          var isLymphLesion = this.getQuestionVal(2)
          isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null
          const lesionPart = this.getQuestionVal(8)
          const lesionOrgan = this.getQuestionVal(6)
          const lesionLength = ''
          const lesionShort = ''
          const lesionState = !isNaN(parseInt(this.getQuestionVal(7))) ? parseInt(this.getQuestionVal(7)) : ''

          if (!this.questionForm.IsDicomReading) {
            DicomEvent.$emit('removeNoneDicomMeasureData', this.questionForm.MeasureData)
          }
          this.$set(this.questionForm, 'IsDicomReading', true)

          this.$set(this.questionForm, 'MeasureData', '')
          let anwsers = null
          if (this.answers.measureObj) {
            anwsers = Object.assign({ measureObj: '' }, this.questionForm)
          } else {
            anwsers = Object.assign({}, this.questionForm)
          }
          this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, lesionShort, lesionState, saveTypeEnum: this.questionForm.saveTypeEnum, lesionLength, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: anwsers })
          DicomEvent.$emit('refreshStudyListMeasureData')
        })
        .catch(() => {})
    },
    handleDelete() {
      // 是否确认删除？
      this.$confirm(this.$t('trials:reading:warnning:msg48'), {
        type: 'warning',
        distinguishCancelAndClose: true
      })
        .then(async() => {
          if (this.questionForm.RowId) {
            const loading = this.$loading({ fullscreen: true })
            var param = {
              visitTaskId: this.visitTaskId,
              questionId: this.parentQsId,
              rowId: this.questionForm.RowId
            }
            deleteReadingRowAnswer(param)
              .then(async res => {
                loading.close()
                if (res.IsSuccess) {
                  if (this.questionForm.IsDicomReading && this.questionForm.MeasureData) {
                    await store.dispatch('reading/removeMeasuredData', { visitTaskId: this.visitTaskId, measureData: this.questionForm.MeasureData, questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex })
                  }
                  if (!this.questionForm.IsDicomReading && this.questionForm.MeasureData) {
                    DicomEvent.$emit('removeNoneDicomMeasureData', this.questionForm.MeasureData)
                  }
                  this.$emit('close', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId })
                  DicomEvent.$emit('getReportInfo', true)
                  // '删除成功！'
                  this.$message.success(this.$t('common:message:deletedSuccessfully'))
                  loading.close()
                }
              }).catch(() => { loading.close() })
          } else {
            // const loading = this.$loading({ fullscreen: true })
            // 移除新建病灶并关闭窗口
            if (this.questionForm.IsDicomReading && this.questionForm.MeasureData) {
              await store.dispatch('reading/removeMeasuredData', { visitTaskId: this.visitTaskId, measureData: this.questionForm.MeasureData, questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex })
            }
            // DicomEvent.$emit('getMeasureData')
            if (!this.questionForm.IsDicomReading && this.questionForm.MeasureData) {
              DicomEvent.$emit('removeNoneDicomMeasureData', this.questionForm.MeasureData)
            }
            this.$emit('close', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId })
            // loading.close()
          }
          DicomEvent.$emit('refreshStudyListMeasureData')
        })
    },
    handleClose() {
      if (!this.questionForm.RowId) {
        // '当前病灶为新建病灶，未保存。如果关闭窗口，将会删除病灶信息，是否继续？'
        this.$confirm(this.$t('trials:reading:warnning:msg49'), {
          type: 'warning',
          distinguishCancelAndClose: true
        })
          .then(async() => {
            // 移除新建病灶并关闭窗口
            if (this.questionForm.MeasureData) {
              await store.dispatch('reading/removeMeasuredData', { visitTaskId: this.visitTaskId, measureData: this.questionForm.MeasureData, questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex })
            }
            // await store.dispatch('reading/removeReadingQuestionAndAnswer', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId })
            DicomEvent.$emit('getMeasureData')
            this.$emit('close', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId })
          })
          .catch(() => {})
      } else {
        // saveTypeEnum 0：未保存过（新建病灶）；1：已保存，信息不完整（随访初始化病灶/分裂病灶，通过状态判断）

        if (this.questionForm.saveTypeEnum === 1) {
          // // 当前病灶信息有更新，未保存，是否继续？
          // this.$confirm(this.$t('trials:reading:warnning:msg50'), {
          //   type: 'warning',
          //   distinguishCancelAndClose: true
          // })
          //   .then(() => {
          //     this.$emit('close')
          //   })
          //   .catch(() => {})
          this.$emit('close')
        } else {
          this.$emit('close')
        }
      }
    },
    setState() {
      this.$nextTick(() => {
        if (this.isCurrentTask && this.readingTaskState < 2) {
          var lesionState = this.getQuestionVal(7)
          if (isNaN(parseInt(lesionState)) && this.answers.IsFristAdd === 'False') {
            const stateId = this.getQuestionId(7)
            if (this.lesionType === 0 || this.lesionType === 1 || this.lesionType === 2 || this.lesionType === 6 || this.lesionType === 7) {
              this.$set(this.questionForm, stateId, 2)
            } else if (this.lesionType === 5) {
              this.$set(this.questionForm, stateId, 3)
            } else if (this.lesionType === 8) {
              this.$set(this.questionForm, stateId, 4)
            }
            var isLymphLesion = this.getQuestionVal(2)
            isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null
            const lesionPart = this.getQuestionVal(8)
            const lesionOrgan = this.getQuestionVal(6)
            const lesionLength = !isNaN(parseInt(this.getQuestionVal(0))) ? this.getQuestionVal(0) : ''
            const lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? this.getQuestionVal(1) : ''
            const lesionState = !isNaN(parseInt(this.getQuestionVal(7))) ? parseInt(this.getQuestionVal(7)) : ''

            this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, lesionShort, lesionState, saveTypeEnum: this.questionForm.saveTypeEnum, lesionLength, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: this.questionForm })
          }
        }
      })
    }
  }
}
</script>
<style lang="scss" scoped>
.measurement-form{
  /deep/ .el-form-item__label{
    color: #c3c3c3;
  }
  /deep/ .el-input .el-input__inner{
    background-color: transparent;
    color: #ddd;
    border: 1px solid #5e5e5e;
  }
  /deep/ .el-form-item{
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
  }
  /deep/ .el-form-item__content{
    flex: 1;
  }
  /deep/ .el-input.is-disabled .el-input__inner{
    background-color: #646464a1;
  }
  /deep/ .el-select.is-disabled .el-input__inner{
    background-color: #646464a1;
  }
  /deep/ .el-button--mini, .el-button--mini.is-round {
    padding: 7px 10px;
  }
  .el-form-item__content
  .el-select{
    width: 100%;
  }
  .input-width1{
    width: calc(100% -60px)!important;
  }
  .input-width2{
    width: 100% !important;
  }
}

</style>
