Hi Jim
Short version: use MPPS not Storage Commitment
Long version, since there are complications:
Since one or more Series are wholly contained within a performed
procedure step, an MPPS COMPLETE message will tell you the list
of SOP Instances were "created during the acquisition of the
procedure step".
That said, the PACS may never receive all the instances in the
MPPS (theoretically), since they may not be configured or intended
to be sent (e.g., thin slices, or for processing images go to
the CAD server, not the PACS, etc.). See PS 3.7.1.9 for additional
discussion of this, particularly the text added in CP 832:
http://www.dclunie.com/dicom-status/status.html#CP832
The lack of concordance between a modality might "create" as
oppose to "send" (to any specific AE, like the IHE IM/IA) has
been the subject of much debate in DICOM WG 6 and IHE RadTech,
hence CP 832 (which did not make everybody happy) and the
aborted IHE CP-RAD-037, which was entitled "IM/IA receives more
or less instances than it expects as per MPPS".
You cannot assume anything about what is in a Storage Commitment
message, since that is only about hand off of responsibility
for persistence at a "list of instances" level, and you cannot
assume anything about completeness (or anything else) about
the Series. Once upon a time, Storage Commitment did include
a reference to the MPPS, but this was removed in Sup 68, to
make sure it was not abused for purposes like this. What
remains in PS 3.4 J.3.2.1.1.2 is a note that says:
"This section formerly specified a means of referencing a Study
Component that has been completed and semantics that the list
of images in the commitment request represented a complete set.
This section has been retired since the Modality Performed
Procedure Step SOP Classes provide the same facility in a
more appropriate service"
Combining the instances within a series into "one big file"
does not help either (assuming that there was a standard way
to do that), since it still begs the question of how one knows
that all instances have been received before doing that.
One approach is for the PACS (IM/IA) to not make the series or
its contents queriable or retrievable until it has decided
(through whatever means, like MPPS or human interaction or
timeout heuristics) that the series (or study) is "ready".
Finally, as a C-FIND SCP, the PACS may return a Number of
Series-Related Instances attribute in the response, but if
the PACS doesn't know there are more instances coming from
the modality, this count may be inaccurate (i.e., just
reflect what it has received so far). Likewise, if the
modality is a C-FIND SCP, this count (or a list of the
instances) may be more complete, but still incomplete if
not everything has been acquired (or reconstructed) yet.
If you are not a "modality" (e.g., you are what IHE calls
an "evidence creator"), as perhaps you are not if you are
creating RT objects, then you can also use GP-PPS or UPS
to achieve a similar goal (even if you don't schedule
creation), or you can overload MPPS and pretend you
are a modality (like the IHE Creator Procedure Step
transactions), but that begs the question of what the
PACS (and the workflow manager for scheduling, if any),
supports in this regard.
Bottom line though is if a) you get an MPPS complete, and b)
have received all the instances listed in that MPPS, you
can be pretty sure that you are good to go.
David
PS. Note that none of this says anything about when the Study,
as opposed to the Series or MPPS, is "complete" (if indeed, it
ever is).
PPS. Also note that it is not necessarily safe to make assumptions
based on the observed behavior of a particular modality (or PACS)
software version, since manufacturers change these things when
they feel like it, sometimes without telling you. This is
especially true about assumptions about associations and
storage commitment messages.