Skip to content

Commit ebd1708

Browse files
authored
Merge pull request #1367 from chhsiao1981/zero-pacs-2
pacs: more handling for zero-data series
2 parents 80fdcb2 + 3e707b8 commit ebd1708

File tree

4 files changed

+25
-15
lines changed

4 files changed

+25
-15
lines changed

src/components/Pacs/components/PacsStudiesView.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,12 @@ const PacsStudiesView: React.FC<Props> = ({
4343
isPulled={
4444
series.length === 0
4545
? true
46-
: series.every(({ inCube }) => inCube !== null)
46+
: series.every(
47+
({ inCube, info }) =>
48+
inCube !== null ||
49+
info.NumberOfSeriesRelatedInstances === 0 ||
50+
info.NumberOfSeriesRelatedInstances === null,
51+
)
4752
}
4853
isLoading={
4954
series.length === 0 ? false : !!series.find(isSeriesLoading)

src/components/Pacs/components/SeriesRow.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,17 +55,14 @@ const SeriesRow: React.FC<SeriesRowProps> = ({
5555
receivedCount,
5656
);
5757

58-
const numberOfSeriesRelatedInstances =
59-
info.NumberOfSeriesRelatedInstances || 0;
60-
6158
const isLoading = React.useMemo(
6259
() =>
6360
isSeriesLoading({
6461
pullState,
6562
inCube,
66-
numberOfSeriesRelatedInstances,
63+
info,
6764
}),
68-
[pullState, inCube, numberOfSeriesRelatedInstances],
65+
[pullState, inCube, info],
6966
);
7067

7168
const tooltipTitle = React.useMemo(() => {
@@ -88,9 +85,12 @@ const SeriesRow: React.FC<SeriesRowProps> = ({
8885
if (pullState === SeriesPullState.PULLING) {
8986
return <>Receiving&hellip;</>;
9087
}
91-
if (inCube === null) {
88+
if (inCube === null && info.NumberOfSeriesRelatedInstances) {
9289
return <>Waiting...</>;
9390
}
91+
if (!info.NumberOfSeriesRelatedInstances) {
92+
return <>No data in this series.</>;
93+
}
9494
return (
9595
<>
9696
This series is available in <em>ChRIS</em>.

src/components/Pacs/components/helpers.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,10 @@ function getDefaultPacsService(
5151
function isSeriesLoading({
5252
pullState,
5353
inCube,
54-
numberOfSeriesRelatedInstances,
55-
}: Pick<PacsSeriesState, "pullState" | "inCube"> & {
56-
numberOfSeriesRelatedInstances: number;
57-
}): boolean {
54+
info,
55+
}: Pick<PacsSeriesState, "pullState" | "inCube" | "info">): boolean {
56+
const numberOfSeriesRelatedInstances =
57+
info.NumberOfSeriesRelatedInstances || 0;
5858
if (numberOfSeriesRelatedInstances === 0) {
5959
return false;
6060
}

src/reducers/pacs.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,8 @@ const queryPacsSeriesByStudyUID = (
241241
// @ts-expect-error simplifyPypxStudyData
242242
const info = simplifyPypxSeriesData(eachSeries);
243243
const pullState =
244-
info.NumberOfSeriesRelatedInstances === 0
244+
info.NumberOfSeriesRelatedInstances === 0 ||
245+
info.NumberOfSeriesRelatedInstances === null
245246
? SeriesPullState.WAITING_OR_COMPLETE
246247
: SeriesPullState.CHECKING;
247248
const done = info.NumberOfSeriesRelatedInstances === 0;
@@ -331,9 +332,10 @@ const queryCubeSeriesState = async (series: PacsSeriesState) => {
331332
info: {
332333
RetrieveAETitle: service,
333334
SeriesInstanceUID: seriesUID,
334-
NumberOfSeriesRelatedInstances: count,
335+
NumberOfSeriesRelatedInstances,
335336
},
336337
} = series;
338+
const count = NumberOfSeriesRelatedInstances || 0;
337339

338340
const { status, data } = await queryPACSSeries(service, seriesUID);
339341
if (status !== STATUS_OK) {
@@ -346,8 +348,11 @@ const queryCubeSeriesState = async (series: PacsSeriesState) => {
346348
if (data.length) {
347349
series.inCube = { data: data[0] };
348350
series.pullState = SeriesPullState.WAITING_OR_COMPLETE;
349-
series.receivedCount = count || 0;
350-
} else if (series.pullState !== SeriesPullState.PULLING) {
351+
series.receivedCount = count;
352+
} else if (
353+
series.pullState !== SeriesPullState.PULLING &&
354+
series.pullState !== SeriesPullState.WAITING_OR_COMPLETE
355+
) {
351356
series.pullState = SeriesPullState.READY;
352357
}
353358
return series;

0 commit comments

Comments
 (0)