165 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			165 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
import {
 | 
						|
  getRelatedVisitTask,
 | 
						|
  getTableAnswerRowInfoList,
 | 
						|
  getDicomReadingQuestionAnswer,
 | 
						|
  getReadingQuestionAndAnswer
 | 
						|
}
 | 
						|
  from '@/api/trials'
 | 
						|
import { getVisitStudyList } from '@/api/reading'
 | 
						|
const getDefaultState = () => {
 | 
						|
  return {
 | 
						|
    visitTaskList: [],
 | 
						|
    activeStack: []
 | 
						|
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
const state = getDefaultState
 | 
						|
 | 
						|
const mutations = {
 | 
						|
}
 | 
						|
 | 
						|
const actions = {
 | 
						|
  getVisitTasks({ state }, visitTaskId) {
 | 
						|
    return new Promise(resolve => {
 | 
						|
      getRelatedVisitTask({ visitTaskId: visitTaskId }).then(res => {
 | 
						|
        state.visitTaskList = res.Result
 | 
						|
        resolve()
 | 
						|
      }).catch(() => { resolve() })
 | 
						|
    })
 | 
						|
  },
 | 
						|
 | 
						|
  getDicomReadingQuestionAnswer({ state }, obj) {
 | 
						|
    return new Promise(resolve => {
 | 
						|
      var index = state.visitTaskList.findIndex(i => i.VisitTaskId === obj.visitTaskId)
 | 
						|
      var params = {
 | 
						|
        trialId: obj.trialId,
 | 
						|
        visitTaskId: obj.visitTaskId
 | 
						|
      }
 | 
						|
      getDicomReadingQuestionAnswer(params).then(res => {
 | 
						|
        state.visitTaskList[index].Questions = res.Result
 | 
						|
        resolve()
 | 
						|
      }).catch(() => { resolve() })
 | 
						|
    })
 | 
						|
  },
 | 
						|
  getReadingQuestionAndAnswer({ state }, obj) {
 | 
						|
    return new Promise(resolve => {
 | 
						|
      var index = state.visitTaskList.findIndex(i => i.VisitTaskId === obj.visitTaskId)
 | 
						|
      var params = {
 | 
						|
        trialId: obj.trialId,
 | 
						|
        visitTaskId: obj.visitTaskId
 | 
						|
      }
 | 
						|
      getReadingQuestionAndAnswer(params).then(res => {
 | 
						|
        state.visitTaskList[index].ReadingQuestions = res.Result.SinglePage
 | 
						|
        resolve()
 | 
						|
      }).catch(() => { resolve() })
 | 
						|
    })
 | 
						|
  },
 | 
						|
  getMeasuredData({ state }, visitTaskId) {
 | 
						|
    return new Promise(resolve => {
 | 
						|
      var index = state.visitTaskList.findIndex(i => i.VisitTaskId === visitTaskId)
 | 
						|
      getTableAnswerRowInfoList(visitTaskId).then(res => {
 | 
						|
        var arr = []
 | 
						|
        res.Result.forEach(el => {
 | 
						|
          if (el.MeasureData) {
 | 
						|
            el.MeasureData = JSON.parse(el.MeasureData)
 | 
						|
            arr.push(el)
 | 
						|
          }
 | 
						|
        })
 | 
						|
        state.visitTaskList[index].MeasureData = arr
 | 
						|
        resolve()
 | 
						|
      }).catch(() => { resolve() })
 | 
						|
    })
 | 
						|
  },
 | 
						|
  addMeasuredData({ state }, obj) {
 | 
						|
    return new Promise(resolve => {
 | 
						|
      var index = state.visitTaskList.findIndex(i => i.VisitTaskId === obj.visitTaskId)
 | 
						|
      var measureData = state.visitTaskList[index].MeasureData
 | 
						|
      var idx = measureData.findIndex(item => item.MeasureData.uuid === obj.data.MeasureData.data.uuid)
 | 
						|
      if (idx > -1) {
 | 
						|
        state.visitTaskList[index].MeasureData[idx].MeasureData = obj.data.MeasureData
 | 
						|
      } else {
 | 
						|
        state.visitTaskList[index].MeasureData.push(obj.data)
 | 
						|
      }
 | 
						|
      resolve()
 | 
						|
    })
 | 
						|
  },
 | 
						|
  removeMeasuredData({ state }, obj) {
 | 
						|
    return new Promise(resolve => {
 | 
						|
      var index = state.visitTaskList.findIndex(i => i.VisitTaskId === obj.visitTaskId)
 | 
						|
      var measureData = state.visitTaskList[index].MeasureData
 | 
						|
      var uuid = obj.measureData.data.uuid
 | 
						|
      var idx = measureData.findIndex(item => item.MeasureData && item.MeasureData.data && item.MeasureData.data.uuid === uuid)
 | 
						|
      if (idx > -1) {
 | 
						|
        measureData.splice(idx, 1)
 | 
						|
 | 
						|
        state.visitTaskList[index].MeasureData = measureData
 | 
						|
      }
 | 
						|
      resolve()
 | 
						|
    })
 | 
						|
  },
 | 
						|
  getStudyInfo({ state }, obj) {
 | 
						|
    return new Promise(resolve => {
 | 
						|
      var index = state.visitTaskList.findIndex(i => i.VisitTaskId === obj.visitTaskId)
 | 
						|
      var studyList = []
 | 
						|
      getVisitStudyList(obj.trialId, obj.subjectVisitId, 0).then(res => {
 | 
						|
        res.Result.forEach((study) => {
 | 
						|
          const data = {}
 | 
						|
          data.StudyId = study.StudyId
 | 
						|
          data.StudyCode = study.StudyCode
 | 
						|
          data.Modalities = study.Modalities
 | 
						|
          data.SeriesCount = study.SeriesCount
 | 
						|
          data.InstanceCount = study.InstanceCount
 | 
						|
          data.InstanceCount = study.InstanceCount
 | 
						|
          data.PreviewImageCount = 0
 | 
						|
          var seriesList = []
 | 
						|
          study.SeriesList.forEach((series) => {
 | 
						|
            const imageIds = []
 | 
						|
 | 
						|
            series.InstanceList.forEach((id) => {
 | 
						|
              imageIds.push(`wadouri:/api/instance/content/${id}`)
 | 
						|
            })
 | 
						|
            seriesList.push({
 | 
						|
              imageIds: imageIds,
 | 
						|
              seriesId: series.Id,
 | 
						|
              imageIdIndex: 0,
 | 
						|
              seriesUid: series.SeriesInstanceUid,
 | 
						|
              seriesNumber: series.SeriesNumber,
 | 
						|
              sliceThickness: series.SliceThickness,
 | 
						|
              modality: series.Modality,
 | 
						|
              description: series.Description,
 | 
						|
              previewImageUrl: `/api/series/preview/${series.Id}`,
 | 
						|
              instanceCount: series.InstanceCount,
 | 
						|
              prefetchInstanceCount: 0,
 | 
						|
              loadStatus: false,
 | 
						|
              imageloadedArr: [],
 | 
						|
              studyId: study.StudyId,
 | 
						|
              taskBlindName: obj.taskBlindName,
 | 
						|
              visitTaskId: obj.visitTaskId,
 | 
						|
              readingTaskState: state.visitTaskList[index].ReadingTaskState,
 | 
						|
              isBaseLineTask: state.visitTaskList[index].IsBaseLineTask,
 | 
						|
              isCurrentTask: state.visitTaskList[index].IsCurrentTask
 | 
						|
            })
 | 
						|
          })
 | 
						|
          data.SeriesList = seriesList
 | 
						|
          studyList.push(data)
 | 
						|
        })
 | 
						|
        state.visitTaskList[index].StudyList = studyList
 | 
						|
        resolve()
 | 
						|
      }).catch(() => { resolve() })
 | 
						|
    })
 | 
						|
  },
 | 
						|
  setStatus({ state }, obj) {
 | 
						|
    var index = state.visitTaskList.findIndex(i => i.VisitTaskId === obj.visitTaskId)
 | 
						|
    state.visitTaskList[index].IsInit = true
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
export default {
 | 
						|
  namespaced: true,
 | 
						|
  state,
 | 
						|
  mutations,
 | 
						|
  actions
 | 
						|
}
 | 
						|
 |