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 }