@@ -4,15 +4,13 @@ import {
44 init as _init ,
55 type ClassState ,
66 createReducer ,
7- genUUID ,
8- getRootID ,
7+ type Dispatch ,
98 getState ,
109 type State as rState ,
1110 setData ,
1211 type Thunk ,
1312} from "react-reducer-utils" ;
1413import type { Location } from "react-router" ;
15- import type { URLSearchParams } from "url" ;
1614import { STATUS_OK , STATUS_OK_CREATE } from "../api/constants" ;
1715import type { SeriesKey } from "../api/lonk" ;
1816import {
@@ -214,7 +212,7 @@ export const setService = (myID: string, service: string): Thunk<State> => {
214212 } ;
215213} ;
216214
217- const queryPacsSeriesByStudyUID = (
215+ const queryPacsSeriesByStudyUID = async (
218216 myID : string ,
219217 service : string ,
220218 studyInstanceUID : string ,
@@ -224,62 +222,62 @@ const queryPacsSeriesByStudyUID = (
224222 queryValues : string [ ] ,
225223 eachQueryValue : string ,
226224 queryValueStudyUIDsMap : QueryValueStudyUIDsMap ,
227- ) : Thunk < State > => {
228- return async ( dispatch , getClassState ) => {
229- const query = { StudyInstanceUID : studyInstanceUID } ;
230- // @ts -expect-error PACSqueryCore is incorrect.
231- const { status, data, errmsg } = await queryPFDCMSeries ( service , query ) ;
232- if ( status !== STATUS_OK ) {
233- dispatch ( setData ( myID , { errmsg } ) ) ;
234- return ;
235- }
225+ dispatch : Dispatch < State > ,
226+ getClassState : ( ) => ClassState < State > ,
227+ ) => {
228+ const query = { StudyInstanceUID : studyInstanceUID } ;
229+ // @ts -expect-error PACSqueryCore is incorrect.
230+ const { status, data, errmsg } = await queryPFDCMSeries ( service , query ) ;
231+ if ( status !== STATUS_OK ) {
232+ dispatch ( setData ( myID , { errmsg } ) ) ;
233+ return ;
234+ }
236235
237- const studyData : PacsStudyState [ ] = ( data ?. pypx . data || [ ] ) . map ( ( each ) => ( {
236+ const studyData : PacsStudyState [ ] = ( data ?. pypx . data || [ ] ) . map ( ( each ) => ( {
237+ // @ts -expect-error simplifyPypxStudyData
238+ info : simplifyPypxStudyData ( each ) ,
239+ series : each . series . map ( ( eachSeries ) : PacsSeriesState => {
238240 // @ts -expect-error simplifyPypxStudyData
239- info : simplifyPypxStudyData ( each ) ,
240- series : each . series . map ( ( eachSeries ) : PacsSeriesState => {
241- // @ts -expect-error simplifyPypxStudyData
242- const info = simplifyPypxSeriesData ( eachSeries ) ;
243- const pullState =
244- info . NumberOfSeriesRelatedInstances === 0 ||
245- info . NumberOfSeriesRelatedInstances === null
246- ? SeriesPullState . WAITING_OR_COMPLETE
247- : SeriesPullState . CHECKING ;
248- const done = info . NumberOfSeriesRelatedInstances === 0 ;
249-
250- return {
251- errors : [ ] ,
252- info,
253- inCube : null ,
254- pullState,
255- receivedCount : 0 ,
256- subscribed : false ,
257- done,
258- } ;
259- } ) ,
260- } ) ) ;
241+ const info = simplifyPypxSeriesData ( eachSeries ) ;
242+ const pullState =
243+ info . NumberOfSeriesRelatedInstances === 0 ||
244+ info . NumberOfSeriesRelatedInstances === null
245+ ? SeriesPullState . WAITING_OR_COMPLETE
246+ : SeriesPullState . CHECKING ;
247+ const done = info . NumberOfSeriesRelatedInstances === 0 ;
248+
249+ return {
250+ errors : [ ] ,
251+ info,
252+ inCube : null ,
253+ pullState,
254+ receivedCount : 0 ,
255+ subscribed : false ,
256+ done,
257+ } ;
258+ } ) ,
259+ } ) ) ;
261260
262- // update cube-series-state
263- await queryAllCubeSeriesState ( studyData ) ;
261+ // update cube-series-state
262+ await queryAllCubeSeriesState ( studyData ) ;
264263
265- const classState = getClassState ( ) ;
264+ const classState = getClassState ( ) ;
266265
267- const postStudyData = postprocessStudyData (
268- studyData ,
269- classState ,
270- queryPrompt ,
271- queryValue ,
272- queryValues ,
273- eachQueryValue ,
274- queryValueStudyUIDsMap ,
275- false ,
276- ) ;
277- if ( ! postStudyData ) {
278- return ;
279- }
266+ const postStudyData = postprocessStudyData (
267+ studyData ,
268+ classState ,
269+ queryPrompt ,
270+ queryValue ,
271+ queryValues ,
272+ eachQueryValue ,
273+ queryValueStudyUIDsMap ,
274+ false ,
275+ ) ;
276+ if ( ! postStudyData ) {
277+ return ;
278+ }
280279
281- dispatch ( setData ( myID , postStudyData ) ) ;
282- } ;
280+ dispatch ( setData ( myID , postStudyData ) ) ;
283281} ;
284282
285283export const queryCubeSeriesStateBySeriesUID = (
@@ -412,21 +410,21 @@ export const queryPacsStudies = (
412410
413411 dispatch ( setData ( myID , postStudyData ) ) ;
414412
415- // get series data
416- studyData . map ( ( eachStudyData ) =>
417- dispatch (
418- queryPacsSeriesByStudyUID (
419- myID ,
420- service ,
421- eachStudyData . info . StudyInstanceUID ,
422- queryPrompt ,
423- queryValue ,
424- queryValues ,
425- each ,
426- queryValueStudyUIDsMap ,
427- ) ,
428- ) ,
429- ) ;
413+ // sequentially get series data
414+ for ( const eachStudyData of studyData ) {
415+ await queryPacsSeriesByStudyUID (
416+ myID ,
417+ service ,
418+ eachStudyData . info . StudyInstanceUID ,
419+ queryPrompt ,
420+ queryValue ,
421+ queryValues ,
422+ each ,
423+ queryValueStudyUIDsMap ,
424+ dispatch ,
425+ getClassState ,
426+ ) ;
427+ }
430428 } ) ;
431429 } ;
432430} ;
0 commit comments