Package com.pixelmed.dicom

# Class CompositeInstanceContext

java.lang.Object
com.pixelmed.dicom.CompositeInstanceContext

Direct Known Subclasses:
  `DoseCompositeInstanceContext`

public class CompositeInstanceContext extends Object

A class for representing the attributes of general modules that describe the patient, study, series, instance and related "context" of the payload of a composite DICOM instance.

The purpose is to allow the context to be extracted from an existing object, stored, and then reused in new objects, either wholly or partially, by selectively removing modules for lower level information entities as appropriate. E.g.:

      CompositeInstanceContext cic = new CompositeInstanceContext(srcList,false);
      cic.removeInstance();
      cic.removeSeries();
      cic.removeEquipment();
      dstList.putAll(cic.getAttributeList());

Static methods are also provided for operating directly on an `AttributeList`.

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static class`
`CompositeInstanceContext.Selector`
A class to select which entities are copied or propagated or removed or not during operations on CompositeInstanceContext.

## Field Summary

Fields
Modifier and Type
Field
Description
`protected static AttributeTag[]`
`clinicalTrialSeriesModuleAttributeTags`
`protected static AttributeTag[]`
`clinicalTrialStudyModuleAttributeTags`
`protected static AttributeTag[]`
`clinicalTrialSubjectModuleAttributeTags`
`protected static AttributeTag[]`
`frameOfReferenceModuleAttributeTags`
`protected static AttributeTag[]`
`generalEquipmentModuleAttributeTags`
`protected static AttributeTag[]`
`generalImageModuleAttributeTags`
`protected static AttributeTag[]`
`generalSeriesModuleAttributeTags`
`protected static AttributeTag[]`
`generalStudyModuleAttributeTags`
`protected AttributeList`
`list`
`protected static AttributeTag[]`
`patientModuleAttributeTags`
`protected static AttributeTag[]`
`patientStudyModuleAttributeTags`
`protected static AttributeTag[]`
`sopCommonModuleAttributeTags`
`protected static AttributeTag[]`
`srDocumentGeneralModuleAttributeTags`

## Constructor Summary

Constructors
Constructor
Description
`CompositeInstanceContext()`
`CompositeInstanceContext(AttributeList srcList, boolean forSR)`
Create the composite context module `Attribute`s with values from the supplied `AttributeList`.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`addOrReplaceIfNotEmptyOtherwiseLeaveUnchanged(AttributeList srcList, AttributeTag tag)`
`protected void`
`createPerformedProcedureCodeSequenceIfAbsent(AttributeList srcList)`
`protected void`
`createReferencedRequestSequenceIfAbsent(AttributeList srcList)`
`boolean`
`equals(Object o)`
`AttributeList`
`getAttributeList()`
Return the `AttributeList` of all the `Attribute`s in the context.
`int`
`hashCode()`
`void`
`put(Attribute a)`
`void`
`putAll(AttributeList srcList)`
`void`
`removeAllButPatient()`
See `removeAllButPatient`.
`static void`
`removeAllButPatient(AttributeList list)`
Remove the study, series, equipment, frame of reference and instance level modules `Attribute`s.
`void`
`removeAllButPatientAndStudy()`
See `removeAllButPatientAndStudy`.
`static void`
`removeAllButPatientAndStudy(AttributeList list)`
Remove the series, equipment, frame of reference and instance level modules `Attribute`s.
`static void`
`removeAllButSelected(AttributeList list, CompositeInstanceContext.Selector selector)`
Remove the unselected modules `Attribute`s.
`void`
`removeAllButSelected(CompositeInstanceContext.Selector selector)`
Remove the unselected modules `Attribute`s.
`void`
`removeAllButSeries()`
See `removeAllButSeries`.
`static void`
`removeAllButSeries(AttributeList list)`
Remove the patient, study, equipment, frame of reference and instance level modules `Attribute`s.
`void`
`removeAllButStudy()`
See `removeAllButStudy`.
`static void`
`removeAllButStudy(AttributeList list)`
Remove the patient, series, equipment, frame of reference and instance level modules `Attribute`s.
`static void`
`removeAllSelected(AttributeList list, CompositeInstanceContext.Selector selector)`
Remove the selected modules `Attribute`s.
`void`
`removeAllSelected(CompositeInstanceContext.Selector selector)`
Remove the selected modules `Attribute`s.
`void`
`removeEquipment()`
See `removeEquipment`.
`static void`
`removeEquipment(AttributeList list)`
Remove the General Equipment module `Attribute`s.
`void`
`removeFrameOfReference()`
See `removeFrameOfReference`.
`static void`
`removeFrameOfReference(AttributeList list)`
Remove the Frame of Reference module `Attribute`s.
`void`
`removeInstance()`
See `removeInstance`.
`static void`
`removeInstance(AttributeList list)`
Remove the SOP Common and General Image module `Attribute`s.
`void`
`removePatient()`
See `removePatient(AttributeList)`.
`static void`
`removePatient(AttributeList list)`
Remove the Patient and Clinical Trial Subject modules `Attribute`s.
`void`
`removeSeries()`
See `removeSeries`.
`static void`
`removeSeries(AttributeList list)`
Remove the General Series and Clinical Trial Series modules `Attribute`s.
`void`
`removeSRDocumentGeneral()`
See `removeSRDocumentGeneral`.
`static void`
`removeSRDocumentGeneral(AttributeList list)`
Remove the SR Document General Image module `Attribute`s.
`void`
`removeStudy()`
See `removeStudy`.
`static void`
`removeStudy(AttributeList list)`
Remove the General Study, Patient Study and Clinical Trial Study modules `Attribute`s.
`String`
`toString()`
`void`
`updateFromSource(AttributeList srcList, boolean forSR)`
Add or replace all of the composite context module `Attribute`s with values from the supplied `AttributeList`.

### Methods inherited from class java.lang.Object

`clone, getClass, notify, notifyAll, wait, wait, wait`

## Field Details

### list

protected AttributeList list

### patientModuleAttributeTags

protected static AttributeTag[] patientModuleAttributeTags

### clinicalTrialSubjectModuleAttributeTags

protected static AttributeTag[] clinicalTrialSubjectModuleAttributeTags

### generalStudyModuleAttributeTags

protected static AttributeTag[] generalStudyModuleAttributeTags

### patientStudyModuleAttributeTags

protected static AttributeTag[] patientStudyModuleAttributeTags

### clinicalTrialStudyModuleAttributeTags

protected static AttributeTag[] clinicalTrialStudyModuleAttributeTags

### generalSeriesModuleAttributeTags

protected static AttributeTag[] generalSeriesModuleAttributeTags

### clinicalTrialSeriesModuleAttributeTags

protected static AttributeTag[] clinicalTrialSeriesModuleAttributeTags

### generalEquipmentModuleAttributeTags

protected static AttributeTag[] generalEquipmentModuleAttributeTags

### frameOfReferenceModuleAttributeTags

protected static AttributeTag[] frameOfReferenceModuleAttributeTags

### sopCommonModuleAttributeTags

protected static AttributeTag[] sopCommonModuleAttributeTags

### generalImageModuleAttributeTags

protected static AttributeTag[] generalImageModuleAttributeTags

### srDocumentGeneralModuleAttributeTags

protected static AttributeTag[] srDocumentGeneralModuleAttributeTags

## Constructor Details

### CompositeInstanceContext

public CompositeInstanceContext()

### CompositeInstanceContext

public CompositeInstanceContext(AttributeList srcList, boolean forSR)

Create the composite context module `Attribute`s with values from the supplied `AttributeList`.

Parameters:
  `forSR` - true if need to populate the SR Document General Module specific `Attribute`s from their image equivalents
  `srcList` - the list of attributes to use as the source

## Method Details

### getAttributeList

public AttributeList getAttributeList()

Return the `AttributeList` of all the `Attribute`s in the context.

Returns:
  the `AttributeList` of all the `Attribute`s in the context

### equals

public boolean equals(Object o)

Overrides:
  `equals` in class `Object`

### hashCode

public int hashCode()

Overrides:
  `hashCode` in class `Object`

### addOrReplaceIfNotEmptyOtherwiseLeaveUnchanged

protected void addOrReplaceIfNotEmptyOtherwiseLeaveUnchanged(AttributeList srcList, AttributeTag tag)

### createReferencedRequestSequenceIfAbsent

protected void createReferencedRequestSequenceIfAbsent(AttributeList srcList)

### createPerformedProcedureCodeSequenceIfAbsent

protected void createPerformedProcedureCodeSequenceIfAbsent(AttributeList srcList)

### updateFromSource

public void updateFromSource(AttributeList srcList, boolean forSR)

Add or replace all of the composite context module `Attribute`s with values from the supplied `AttributeList`.

If an `Attribute` is empty or missing in the supplied list, the existing value in the context is left unchanged (not removed or emptied).

This is useful when building composite context from multiple input composite instances, in which optional `Attribute`s are filled in some, but not others, in order to accumulate the most information available.

Parameters:
  `srcList` - the list of attributes to use as the source
  `forSR` - true if need to populate the SR Document General Module specific `Attribute`s from their image equivalents

### removePatient

public static void removePatient(AttributeList list)

Remove the Patient and Clinical Trial Subject modules `Attribute`s.

Parameters:
  `list` - the list of attributes to edit

### removeAllButPatient

public static void removeAllButPatient(AttributeList list)

Remove the study, series, equipment, frame of reference and instance level modules `Attribute`s.

Parameters:
  `list` - the list of attributes to edit

### removeAllButStudy

public static void removeAllButStudy(AttributeList list)

Remove the patient, series, equipment, frame of reference and instance level modules `Attribute`s.

Parameters:
  `list` - the list of attributes to edit

### removeAllButSeries

public static void removeAllButSeries(AttributeList list)

Remove the patient, study, equipment, frame of reference and instance level modules `Attribute`s.

Parameters:
  `list` - the list of attributes to edit

### removeAllButPatientAndStudy

public static void removeAllButPatientAndStudy(AttributeList list)

Remove the series, equipment, frame of reference and instance level modules `Attribute`s.

Parameters:
  `list` - the list of attributes to edit

### removeStudy

public static void removeStudy(AttributeList list)

Remove the General Study, Patient Study and Clinical Trial Study modules `Attribute`s.

Parameters:
  `list` - the list of attributes to edit

### removeSeries

public static void removeSeries(AttributeList list)

Remove the General Series and Clinical Trial Series modules `Attribute`s.

Parameters:
  `list` - the list of attributes to edit

### removeEquipment

public static void removeEquipment(AttributeList list)

Remove the General Equipment module `Attribute`s.

Parameters:
  `list` - the list of attributes to edit

### removeFrameOfReference

public static void removeFrameOfReference(AttributeList list)

Remove the Frame of Reference module `Attribute`s.

Parameters:
  `list` - the list of attributes to edit

### removeInstance

public static void removeInstance(AttributeList list)

Remove the SOP Common and General Image module `Attribute`s.

Parameters:
  `list` - the list of attributes to edit

### removeSRDocumentGeneral

public static void removeSRDocumentGeneral(AttributeList list)

Remove the SR Document General Image module `Attribute`s.

Parameters:
  `list` - the list of attributes to edit

### removeAllButSelected

public static void removeAllButSelected(AttributeList list, CompositeInstanceContext.Selector selector)

Remove the unselected modules `Attribute`s.

Parameters:
  `list` - the list of attributes to edit
  `selector` - the modules to keep

### removeAllSelected

public static void removeAllSelected(AttributeList list, CompositeInstanceContext.Selector selector)

Remove the selected modules `Attribute`s.

Parameters:
  `list` - the list of attributes to edit
  `selector` - the modules to remove

### removePatient

public void removePatient()
See `removePatient(AttributeList)`.

### removeAllButPatient

public void removeAllButPatient()
See `removeAllButPatient`.

### removeAllButStudy

public void removeAllButStudy()
See `removeAllButStudy`.

### removeAllButSeries

public void removeAllButSeries()
See `removeAllButSeries`.

### removeAllButPatientAndStudy

public void removeAllButPatientAndStudy()
See `removeAllButPatientAndStudy`.

### removeStudy

public void removeStudy()
See `removeStudy`.

### removeSeries

public void removeSeries()
See `removeSeries`.

### removeEquipment

public void removeEquipment()
See `removeEquipment`.

### removeFrameOfReference

public void removeFrameOfReference()
See `removeFrameOfReference`.

### removeInstance

public void removeInstance()
See `removeInstance`.

### removeSRDocumentGeneral

public void removeSRDocumentGeneral()
See `removeSRDocumentGeneral`.

### removeAllButSelected

public void removeAllButSelected(CompositeInstanceContext.Selector selector)

Remove the unselected modules `Attribute`s.

See `removeAllButSelected`.

Parameters:
  `selector` - the modules to keep

### removeAllSelected

public void removeAllSelected(CompositeInstanceContext.Selector selector)

Remove the selected modules `Attribute`s.

See `removeAllSelected`.

Parameters:
  `selector` - the modules to remove

### put

public void put(Attribute a)

### putAll

public void putAll(AttributeList srcList)

### toString

public String toString()

Overrides:
  `toString` in class `Object`