Package com.pixelmed.apps

# Class MergeFunctionalGroups

java.lang.Object
com.pixelmed.apps.MergeFunctionalGroups

public class MergeFunctionalGroups extends Object

A class containing an application for merging the functional groups of multiple instances for consistency.

The merge can be performed on specified subsets of functional groups, such as those related to spatial information.

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`protected class`
`MergeFunctionalGroups.OurFirstPassMediaImporter`
`protected class`
`MergeFunctionalGroups.OurSecondPassMediaImporter`

## Field Summary

Fields
Modifier and Type
Field
Description
`protected String`
`dstFolderName`
`protected String`
`ourAETitle`
`protected FunctionalGroupUtilities.Selector`
`selector`

## Constructor Summary

Constructors
Constructor
Description
`MergeFunctionalGroups(FunctionalGroupUtilities.Selector selector, String[] srcs, String dstFolderName, MessageLogger logger)`
Merge the functional groups of multiple instances for consistency.
`MergeFunctionalGroups(FunctionalGroupUtilities.Selector selector, String src, String dstFolderName, MessageLogger logger)`
Merge the functional groups of multiple instances for consistency.

## Method Summary

Modifier and Type
Method
Description
`static void`
`main(String[] arg)`
Merge the functional groups of multiple instances for consistency.
`protected void`
`mergeDimensionsModule(AttributeList newList)`
`protected void`
`mergeSelectedFunctionalGroup(SequenceAttribute mergedSharedOrPerFrameFunctionalGroupsSequence, SequenceAttribute newSharedOrPerFrameFunctionalGroupsSequence)`
`protected void`
`mergeSelectedFunctionalGroups(AttributeList newList)`
`protected void`
`replaceDimensionsModuleWithMerged(AttributeList targetList)`
`protected void`
`replaceFunctionalGroupsWithMerged(AttributeList targetList)`

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

`clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### ourAETitle

protected String ourAETitle

### dstFolderName

protected String dstFolderName

### selector

protected FunctionalGroupUtilities.Selector selector

## Constructor Details

### MergeFunctionalGroups

public MergeFunctionalGroups(FunctionalGroupUtilities.Selector selector, String src, String dstFolderName, MessageLogger logger) throws IOException, DicomException

Merge the functional groups of multiple instances for consistency.

Parameters:
  `selector` - selected functional groups to merge
  `src` - source folder or DICOMDIR
  `dstFolderName` - destination folder
  `logger` - logger to send progress, warnings and errors
Throws:
  `IOException` - if there is a problem reading or writing
  `DicomException` - if there is a problem parsing or extracting required content

### MergeFunctionalGroups

public MergeFunctionalGroups(FunctionalGroupUtilities.Selector selector, String[] srcs, String dstFolderName, MessageLogger logger) throws IOException, DicomException

Merge the functional groups of multiple instances for consistency.

Parameters:
  `selector` - selected functional groups to merge
  `srcs` - source folders or DICOMDIRs
  `dstFolderName` - destination folder
  `logger` - logger to send progress, warnings and errors
Throws:
  `IOException` - if there is a problem reading or writing
  `DicomException` - if there is a problem parsing or extracting required content

## Method Details

### mergeDimensionsModule

protected void mergeDimensionsModule(AttributeList newList) throws DicomException

Throws:
  `DicomException`

### replaceDimensionsModuleWithMerged

protected void replaceDimensionsModuleWithMerged(AttributeList targetList)

### mergeSelectedFunctionalGroup

protected void mergeSelectedFunctionalGroup(SequenceAttribute mergedSharedOrPerFrameFunctionalGroupsSequence, SequenceAttribute newSharedOrPerFrameFunctionalGroupsSequence) throws DicomException

Throws:
  `DicomException`

### mergeSelectedFunctionalGroups

protected void mergeSelectedFunctionalGroups(AttributeList newList) throws DicomException

Throws:
  `DicomException`

### replaceFunctionalGroupsWithMerged

protected void replaceFunctionalGroupsWithMerged(AttributeList targetList)

### main

public static void main(String[] arg)

Merge the functional groups of multiple instances for consistency.

The files are processed in the order in which they are specified on the command line, and when there is a conflict, the first encountered functional group values are used.

Functional group arguments recognized are -all|-spatial|-framecontent|-unclassified.

If -framecontent is specified, the Dimensions Module will also be merged (the earliest encountered will be used).

Parameters:
  `arg` - array of 2 or more strings - an optional list of functional groups to merge (if absent, defaults to all), followed by one or more source folders or DICOMDIR (to merge and use as a source of functional groups), and a destination folder