Class PatientStudySeriesConcatenationInstanceModel
- java.lang.Object
-
- com.pixelmed.database.DatabaseInformationModel
-
- com.pixelmed.database.DicomDatabaseInformationModel
-
- com.pixelmed.database.PatientStudySeriesConcatenationInstanceModel
-
public class PatientStudySeriesConcatenationInstanceModel extends DicomDatabaseInformationModel
The
PatientStudySeriesConcatenationInstanceModel
class supports a simple DICOM Patient/Study/Series/Concatenation/Instance model.Attributes of other DICOM entities than Patient, Study, Series, Concatenation and Instance are included at the appropriate lower level entity.
-
-
Field Summary
-
Fields inherited from class com.pixelmed.database.DicomDatabaseInformationModel
derivedAcquisitionDateTimeColumnName, derivedContentDateTimeColumnName, derivedLossyImageCompressionColumnName, derivedSeriesDateTimeColumnName, derivedStudyDateTimeColumnName
-
Fields inherited from class com.pixelmed.database.DatabaseInformationModel
additionalIndexMapOfColumnsToTables, databaseConnection, databaseRootName, defaultDatabaseRootName, dictionary, externalServerInstance, FILE_COPIED, FILE_REFERENCED, listsOfAttributesByInformationEntity, localFileName, localFileReferenceTypeColumnName, localParentReferenceColumnName, localPrimaryKeyColumnName, localRecordInsertionTimeColumnName, personNameCanonicalColumnNamePrefix, personNameCanonicalColumnNameSuffix, personNamePhoneticCanonicalColumnNamePrefix, personNamePhoneticCanonicalColumnNameSuffix, rootInformationEntity, userColumnName1, userColumnName2, userColumnName3, userColumnName4
-
-
Constructor Summary
Constructors Constructor Description PatientStudySeriesConcatenationInstanceModel(java.lang.String databaseFileName)
Construct a model with the attributes from the default dictionary.PatientStudySeriesConcatenationInstanceModel(java.lang.String databaseFileName, DicomDictionary dictionary)
Construct a model with the attributes from the specified dictionary.PatientStudySeriesConcatenationInstanceModel(java.lang.String databaseFileName, java.lang.String databaseServerName)
Construct a model with the attributes from the default dictionary allowing external SQL access.PatientStudySeriesConcatenationInstanceModel(java.lang.String databaseFileName, java.lang.String databaseServerName, DicomDictionary dictionary)
Construct a model with the attributes from the specified dictionary allowing external SQL access.PatientStudySeriesConcatenationInstanceModel(java.lang.String databaseFileName, java.lang.String databaseServerName, DicomDictionary dictionary, java.lang.String databaseRootName)
Construct a model with the attributes from the specified dictionary allowing external SQL access.PatientStudySeriesConcatenationInstanceModel(java.lang.String databaseFileName, java.lang.String databaseServerName, java.lang.String databaseRootName)
Construct a model with the attributes from the default dictionary allowing external SQL access.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
createAdditionalIndexes()
Create additional indexes on UIDs to optimize queries.protected void
extendCreateStatementStringWithAnyExtraAttributes(java.lang.StringBuffer b, InformationEntity ie)
Extend a SQL CREATE TABLE statement in the process of being constructed with any additional attributes (columns) that the model requires.protected void
extendStatementStringWithMatchingAttributesForSelectedInformationEntity(java.lang.StringBuffer b, AttributeList list, InformationEntity ie)
Extend a SQL SELECT statement in the process of being constructed with matching clauses for the unique keys of the entity and all its parents.InformationEntity
getChildTypeForParent(InformationEntity ie)
For an information entity (regardless of a particular instance), find the next information entity lower down in the information model hierarchy in the general case.InformationEntity
getChildTypeForParent(InformationEntity ie, boolean concatenation)
For a particular instance of an information entity, find the next information entity lower down in the information model hierarchy.InformationEntity
getChildTypeForParent(InformationEntity ie, AttributeList list)
For a particular instance of an information entity, find the next information entity lower down in the information model hierarchy.java.lang.String
getDescriptiveColumnName(InformationEntity ie)
For a particular information entity, find the name of the column in the entity's database table containing the first of three descriptive attributes for the entity.java.lang.String
getOtherDescriptiveColumnName(InformationEntity ie)
For a particular information entity, find the name of the column in the entity's database table containing the second of three descriptive attributes for the entity.java.lang.String
getOtherOtherDescriptiveColumnName(InformationEntity ie)
For a particular information entity, find the name of the column in the entity's database table containing the third of three descriptive attributes for the entity.java.lang.String
getUIDColumnNameForInformationEntity(InformationEntity ie)
For a particular information entity, find the name of the column in the entity's database table containing the DICOM UID for the entity.protected boolean
isInformationEntityInModel(InformationEntity ie)
Is the entity in the information model ?static void
main(java.lang.String[] arg)
For unit test purposes.-
Methods inherited from class com.pixelmed.database.DicomDatabaseInformationModel
createPrimaryKeyForSelectedInformationEntity, extendCreateStatementStringWithDerivedAttributes, extendInsertStatementStringWithAttributeNamesForSelectedInformationEntity, extendInsertStatementStringWithAttributeValuesForSelectedInformationEntity, extendInsertStatementStringWithDerivedAttributeNamesForSelectedInformationEntity, extendInsertStatementStringWithDerivedAttributeValuesForSelectedInformationEntity, extendInsertStatementStringWithPersonNameSearchColumnsForSelectedInformationEntity, extendInsertStatementStringWithPersonNameSearchValuesForSelectedInformationEntity, getDateFromDicomDateAndTime, getDateFromDicomDateAndTime, getNametoDescribeThisInstanceOfInformationEntity, getQueryResponseGeneratorFactory, getQueryResponseGeneratorFactory, getQuotedEscapedSingleStringValueOrNull, getQuotedSingleStringValueOrNull, getQuotedUnescapedSingleStringValueOrNull, getQuotedValueOrNULL, getRetrieveResponseGeneratorFactory, getRetrieveResponseGeneratorFactory, getTimestampFromDate, getTimestampFromDicomDateAndTime, getTimestampFromDicomDateAndTime
-
Methods inherited from class com.pixelmed.database.DatabaseInformationModel
appendExactOrIsNullMatch, close, deleteRecord, doCommonConstructorStuff, extendCreateStatementStringWithUserColumns, finalize, findAllAttributeValuesForAllRecordsForThisInformationEntity, findAllAttributeValuesForAllRecordsForThisInformationEntityWithMatchingParent, findAllAttributeValuesForAllRecordsForThisInformationEntityWithSpecifiedKeyValue, findAllAttributeValuesForAllRecordsForThisInformationEntityWithSpecifiedParent, findAllAttributeValuesForAllRecordsForThisInformationEntityWithSpecifiedUID, findAllAttributeValuesForSelectedRecord, findSelectedAttributeValuesForSelectedRecord, getAttributeTagFromDatabaseColumnName, getDatabaseColumnNameFromDicomName, getDatabaseColumnNameFromDicomTag, getDicomNameFromDatabaseColumnName, getInformationEntityFromTag, getLocalFileNameColumnName, getLocalFileReferenceTypeColumnName, getLocalParentReferenceColumnName, getLocalPrimaryKeyColumnName, getLocalRecordInsertionTimeColumnName, getSQLTypeFromDicomValueRepresentation, getTableNameForInformationEntity, insertObject, isInformationEntityInModel, toString, updateSelectedRecord
-
-
-
-
Constructor Detail
-
PatientStudySeriesConcatenationInstanceModel
public PatientStudySeriesConcatenationInstanceModel(java.lang.String databaseFileName) throws DicomException
Construct a model with the attributes from the default dictionary.
The dictionary
DicomDictionaryForPatientStudySeriesConcatenationInstanceModel
is used.- Parameters:
databaseFileName
-- Throws:
DicomException
-
PatientStudySeriesConcatenationInstanceModel
public PatientStudySeriesConcatenationInstanceModel(java.lang.String databaseFileName, java.lang.String databaseServerName) throws DicomException
Construct a model with the attributes from the default dictionary allowing external SQL access.
The dictionary
DicomDictionaryForPatientStudySeriesConcatenationInstanceModel
is used.- Parameters:
databaseFileName
-databaseServerName
-- Throws:
DicomException
-
PatientStudySeriesConcatenationInstanceModel
public PatientStudySeriesConcatenationInstanceModel(java.lang.String databaseFileName, java.lang.String databaseServerName, java.lang.String databaseRootName) throws DicomException
Construct a model with the attributes from the default dictionary allowing external SQL access.
The dictionary
DicomDictionaryForPatientStudySeriesConcatenationInstanceModel
is used.- Parameters:
databaseFileName
-databaseServerName
-databaseRootName
-- Throws:
DicomException
-
PatientStudySeriesConcatenationInstanceModel
public PatientStudySeriesConcatenationInstanceModel(java.lang.String databaseFileName, DicomDictionary dictionary) throws DicomException
Construct a model with the attributes from the specified dictionary.
- Parameters:
databaseFileName
-dictionary
-- Throws:
DicomException
-
PatientStudySeriesConcatenationInstanceModel
public PatientStudySeriesConcatenationInstanceModel(java.lang.String databaseFileName, java.lang.String databaseServerName, DicomDictionary dictionary) throws DicomException
Construct a model with the attributes from the specified dictionary allowing external SQL access.
- Parameters:
databaseFileName
-databaseServerName
-dictionary
-- Throws:
DicomException
-
PatientStudySeriesConcatenationInstanceModel
public PatientStudySeriesConcatenationInstanceModel(java.lang.String databaseFileName, java.lang.String databaseServerName, DicomDictionary dictionary, java.lang.String databaseRootName) throws DicomException
Construct a model with the attributes from the specified dictionary allowing external SQL access.
- Parameters:
databaseFileName
-databaseServerName
-dictionary
-databaseRootName
-- Throws:
DicomException
-
-
Method Detail
-
isInformationEntityInModel
protected boolean isInformationEntityInModel(InformationEntity ie)
Description copied from class:DatabaseInformationModel
Is the entity in the information model ?
Will be specific to a particular concrete information model.
- Specified by:
isInformationEntityInModel
in classDatabaseInformationModel
- Parameters:
ie
- the information entity- Returns:
- true if the information entity is in the model
-
getChildTypeForParent
public InformationEntity getChildTypeForParent(InformationEntity ie, boolean concatenation)
Description copied from class:DatabaseInformationModel
For a particular instance of an information entity, find the next information entity lower down in the information model hierarchy.
For a patient, this might be a study. For a series, this might be a concatenation or an instance, depending on both the information model and whether concatenations are to be considered in the model.
This method may return a simpler view than the more general method, and is used when traversing the database tables.
- Specified by:
getChildTypeForParent
in classDatabaseInformationModel
- Parameters:
ie
- the parent information entityconcatenation
- true if concatenations are to be considered in the model- Returns:
- the child information entity
-
getChildTypeForParent
public InformationEntity getChildTypeForParent(InformationEntity ie)
Description copied from class:DatabaseInformationModel
For an information entity (regardless of a particular instance), find the next information entity lower down in the information model hierarchy in the general case.
For a patient, this might be a study.
For a series, this might be a concatenation or an instance, depending on the information model.
This method essentially returns the most complex model possible and is used when building the database table schema.
- Specified by:
getChildTypeForParent
in classDatabaseInformationModel
- Parameters:
ie
- the parent information entity- Returns:
- the child information entity
-
getChildTypeForParent
public InformationEntity getChildTypeForParent(InformationEntity ie, AttributeList list)
Description copied from class:DatabaseInformationModel
For a particular instance of an information entity, find the next information entity lower down in the information model hierarchy.
For a patient, this might be a study. For a series, this might be a concatenation or an instance, depending on both the information model and the contents of the instance itself.
This method may return a simpler view than the more general method, and is used when traversing the database tables.
- Specified by:
getChildTypeForParent
in classDatabaseInformationModel
- Parameters:
ie
- the parent information entitylist
- an AttributeList, in which ConcatenationUID may or may not be present,as a flag to use concatenations in the model or not- Returns:
- the child information entity
-
getDescriptiveColumnName
public java.lang.String getDescriptiveColumnName(InformationEntity ie)
Description copied from class:DatabaseInformationModel
For a particular information entity, find the name of the column in the entity's database table containing the first of three descriptive attributes for the entity.
For example, for an instance (e.g. an image), this might be the
InstanceNumber
. For a patient, this might be thePatientName
.- Specified by:
getDescriptiveColumnName
in classDatabaseInformationModel
- Parameters:
ie
- the information entity- Returns:
- the upper case name of a column in the table that describes the instance of the information entity
-
getOtherDescriptiveColumnName
public java.lang.String getOtherDescriptiveColumnName(InformationEntity ie)
Description copied from class:DatabaseInformationModel
For a particular information entity, find the name of the column in the entity's database table containing the second of three descriptive attributes for the entity.
For example, for an instance (e.g. an image), this might be the
InConcatenationNumber
. Frequently null for other entities.- Specified by:
getOtherDescriptiveColumnName
in classDatabaseInformationModel
- Parameters:
ie
- the information entity- Returns:
- the upper case name of another column in the table that describes the instance of the information entity
-
getOtherOtherDescriptiveColumnName
public java.lang.String getOtherOtherDescriptiveColumnName(InformationEntity ie)
Description copied from class:DatabaseInformationModel
For a particular information entity, find the name of the column in the entity's database table containing the third of three descriptive attributes for the entity.
For example, for an instance (e.g. an image), this might be the
ImageComments
. For a patient, this might be thePatientID
.- Specified by:
getOtherOtherDescriptiveColumnName
in classDatabaseInformationModel
- Parameters:
ie
- the information entity- Returns:
- the upper case name of yet another column in the table that describes the instance of the information entity
-
getUIDColumnNameForInformationEntity
public java.lang.String getUIDColumnNameForInformationEntity(InformationEntity ie)
Description copied from class:DatabaseInformationModel
For a particular information entity, find the name of the column in the entity's database table containing the DICOM UID for the entity.
For example, for an instance (e.g. an image), this might be the name of the column corresponding to the SOP Instance UID.
- Specified by:
getUIDColumnNameForInformationEntity
in classDatabaseInformationModel
- Parameters:
ie
- the information entity- Returns:
- the upper case name of the column in the table that describes the UID of the information entity, or null if none
-
extendCreateStatementStringWithAnyExtraAttributes
protected void extendCreateStatementStringWithAnyExtraAttributes(java.lang.StringBuffer b, InformationEntity ie)
Description copied from class:DatabaseInformationModel
Extend a SQL CREATE TABLE statement in the process of being constructed with any additional attributes (columns) that the model requires.
Called when creating the tables for a new database.
Specific to each concrete information model extending
DatabaseInformationModel
. Defaults to adding no extra columns if not overridden (i.e. it is not abstract).For example, there may be a DICOM attribute that is defined to be in a particular information entity in the dictionary (for example InstanceNumber is at the concatenation level), but for the convenience of the user of tree and table browsers it may be nice to replicate it into the tables for lower levels of the information model as well; hence this method might add InstanceNumber at the instance level. Once created, such attributes will automatically be included during database inserts. See also
PatientStudySeriesConcatenationInstanceModel
for example.- Overrides:
extendCreateStatementStringWithAnyExtraAttributes
in classDatabaseInformationModel
- Parameters:
b
-ie
-
-
extendStatementStringWithMatchingAttributesForSelectedInformationEntity
protected void extendStatementStringWithMatchingAttributesForSelectedInformationEntity(java.lang.StringBuffer b, AttributeList list, InformationEntity ie) throws DicomException
Description copied from class:DatabaseInformationModel
Extend a SQL SELECT statement in the process of being constructed with matching clauses for the unique keys of the entity and all its parents.
For example, a model might specify the unique key for the patient to be
PatientID
, the study to beStudyInstanceUID
, the series to beSeriesInstanceUID
and so on. A match requested at the series level would then requirePatientID
,StudyInstanceUID
andSeriesInstanceUID
to match what was in the suppliedAttributeList
Called when inserting a new record for an instance of the entity.
Specific to each concrete information model extending
DatabaseInformationModel
.- Specified by:
extendStatementStringWithMatchingAttributesForSelectedInformationEntity
in classDatabaseInformationModel
- Parameters:
b
-list
-ie
-- Throws:
DicomException
-
createAdditionalIndexes
protected void createAdditionalIndexes() throws DicomException
Create additional indexes on UIDs to optimize queries.
- Overrides:
createAdditionalIndexes
in classDatabaseInformationModel
- Throws:
DicomException
-
main
public static void main(java.lang.String[] arg)
For unit test purposes.
Reads the DICOM files listed on the command line, loads them into the model and pops up a browser for viewing the tree hierarchy of the model and the values of each instance of an entity.
- Parameters:
arg
- a list of DICOM file names
-
-