NIH | National Cancer Institute | NCI Wiki  

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Page info
title
title

Panel
titleContents of this Page
Table of Contents
minLevel2

Introduction

...

This document summarizes the changes in the caBIG® Annotation and Image Markup (AIM) model between version 3, revision 11 . As of this writing, and the current AIM version, which is 4, revision 43. AIM 4.Download 0 is also referred to as the AIM foundation model.

You can download the AIM 3.0 model from http://gforge.nci.nih.gov/frs/download.php/8794/AIM_v3_rv11_load.zip.

The most significant change changes from version 3.0 to foundation 4.0 of the AIM model is the use of ISO 21090 data types, a caBIG® mandate, and the introduction of AIM Statements. An AIM Statement describes a relationship of a finding found on an image or series of images. It represents a relationship between the subject and object entities in the AIM foundation model.

Why Use AIM Statements?

The AIM 3.0 model reflects relationships between classes using containment of a source class by a target class, and inheritance such as IS-A relationships. The expressive power of the model is limited by these two types of relationships. No other types of relationships in the AIM 3.0 model are possible and not all necessary relationships are present. For instance, there is no direct relationship between instances of the AnatomicEntity class, e.g. right-upper lobe of lung, and the ImagingObservation class, e.g. mass. Such classes can be indirectly linked to each other only via the Annotation class.

...

As the AIM model is used by an increasing number of users, additional requests will arise that add relationships between classes or create new classes to store other important information related to AIM. Managing and rearranging associations with classes will be too complex to manage without the AIM Statement class and its subclasses. 

Summary of Changes Between AIM 3.0 to 4.0 Models

AIM 4.0 has eighty new classes. We renamed twelve classes and deleted four classes. This document describes changes from the AIM 3.0 to AIM 4.0 foundation information model.

ISO 21090 data types

AIM 3.0 Data TypeISO 21090
booleanBL
CalculationResultIdentifierNot Applicable
ComparisonOperatorsNot Applicable
DateTS
DoubleREAL
IntegerINT or II
StringST or Uid

...

AIM 3.0 Data TypeISO 21090
codeValueCD
codeMeaningCD
codingSchemeDesignatorCD
codingSchemeVersionCD

New Classes

AnnotationCollection

The AIM 3.0 model does not support a collection concept. In AIM 3.0, each AIM annotation is stored as a single AIM XML document or AIM DICOM SR.  A typical imaging study generates more than one AIM annotation. Managing AIM annotations of the same study becomes an extra activity that AIM implementers have to deal with. The AIM 4.0 foundation model has adopted the ability to store the same type of related AIM annotations as a single source. AIM has two types of annotations: image annotation and annotation-of-annotation. Image annotations annotate images. Annotation-of-annotations annotate other annotations, including image annotations and annotation-of-annotations. AIM 4.0 foundation, therefore, has a mechanism to manage collections of the same type of AIM annotations.

The AnnotationCollection abstract class is the parent of ImageAnnotationCollection and AnnotationofAnnotationCollection. It provides the general concept that AIM may contain one or more instances of the same type. It associates with two optional classes used to capture information about a person, software, or software manufacturer that is generating AIM instances.

ImageAnnotationCollection

This class is one of two root classes in the model. It inherits all AnnotationCollection properties. This class signifies that all members of a collection are of the ImageAnnotaton type.

AnnotationofAnnotationCollection

This class is the second root class in the model. It inherits all AnnotationCollection properties and signifies that all members of a collection are of type AnnotatonOfAnnotation.

AnnotationOfAnnotationStatement can be used to create statements about image annotations and annotation-of-annotations.

AnnotationStatement

Relationships in the AIM 3.0 model are represented by inheritance or IS-A relationships and association relationships. These two expressions do not always precisely represent what AIM users want to state in annotations. AIM 4.0 foundation introduces subject-predicate-object statement constructs, called AIM statements, to precisely define relationships between two entities: a subject and an object. A subject and an object can come from a set of particular classes in the AIM model. The introduction of AIM statements requires structural and class name changes from the AIM 3.0 model. The following classes in AIM 3.0 model were renamed and can be used as subjects and objects in AIM 4.0 foundation.

...

A Statement class represents relationships via the use of the predicates listed above, inserted between subject and object. Subject and object associations can link to ImagingPhysicalEntity, ImagingObservationEntity, InferenceEntity, ReferencedAnnotationEntity, GeometricShapeEntity, TextAnnotationEntity, UriImageReferenceEntity, SegmentationEntity, DICOMImageReferenceEntity, ImageAnnotation, or AnnotationOfAnnotation. Not all combinations between these classes are valid AIM statements. See the AnnotationStatement, AnnotationOfAnnotationStatement, and ImageAnnotationStatement sections in the AIM 4.0 UML diagram for all valid AIM statements.

ImageAnnotationStatement

This class is a parent class of AIM statements that can only be applied to ImageAnnotation.

AnnotationOfAnnotationStatement

This class is a parent class of AIM statements that can only be applied to AnnotationOfAnnotation.

Entity

The Entity abstract class represents the existence of a thing, concept, observation, calculation, measurement, or graphical drawing in AIM. It is a parent class of all entities that are subjects and objects of AIM statements.

MarkupEntity

This abstract class represents graphical drawing and textual description that can be placed on an image.

CompactCalculaitonResult

The result of a calculation captured in a string format. The type attribute of the base class defines the data format in which the string is captured.

A string value of a calculation and its type are determined by the type attribute in this class, which inherits from the CalculationResult class. A type can be an array, binary, histogram, matrix, scalar, URI, or vector. An encoding method is applied to the content of the value attribute. A compression method attribute can be used to define the compression algorithm of the value attribute to reduce the size of the value attribute.

ExtendedCalculationResult

This class stores a result of a calculation explicitly with the precise location of each element in the result. It supports sparse matrix type results.

Algorithm

The class provides well-defined instructions for arriving at results.

Parameter

The class represents a set of structured data to be used in the calculation or computation of an algorithm.

AdjudicationObservation

An observation is made about the comparison between two or more performers’ clinical results (i.e., “adjudication”). It describes a specific time point or all previous time points as well as those explicitly called out. 

AuditTrail

It is used to capture any activity, in coded terms, that requires an entry in the audit trail log, including general and time point lesion observations, time point observations, etc.

SegmentationEntity

This is an abstract class representing the result of a segmentation process where digital images are segmented into a set of pixels. These pixels are stored in a separate file from the original images. Segmentation typically represents a region of interest.

TaskContextEntity

This class contains identifying and descriptive attributes of the reading session and the reading subtask that result in clinical environment or trial results. The class consists of the overall task and the specific subtask. A task represents a unit of overall work, e.g. "Read all of the available time points for the subjects". It may have one or more subtasks. It can be used to capture planned (scheduled) and to record performed tasks.

ThreeDimensionGeographicShapeEntity

This abstract class represents three-dimensional coordinates of a graphical drawing that can be placed on an image to identify a region of interest (ROI).

TaskContextEntity

This abstract class represents two-dimensional coordinates of a graphical drawing that can be placed on an image to identify a region of interest (ROI).

TwoDimensionPoint

This class was originally named Point. A point is defined by a single pixel denoted by a single (column,row) pair.

TwoDimensionCircle

This class was originally named Circle. A circle is defined by two (column,row) pairs. The first point is the central pixel. The second point is a pixel on the perimeter of the circle.

TwoDimensionEllipse

This class was originally named Ellipse. An ellipse is defined by four pixel (column,row) pairs; the first two points specify the endpoints of the major axis and the second two points specify the endpoints of the minor axis of an ellipse.

TwoDimensionPolyline

This class was originally named Polyline. A polyline is defined by a series of connected line segments with ordered vertices denoted by (column,row) pairs; if the first and last vertices are the same, it is a closed polygon.

TwoDimensionMultipoint

This class was originally named Multipoint. A multipoint is defined by multiple pixels each denoted by a (column,row) pair.

ThreeDimensionPoint

This class contains a single location denoted by a single (x,y,z) triplet.

ThreeDimensionMultipoint

This class contains multiple locations each denoted by an (x,y,z) triplet. The points need not be coplanar.

ThreeDimensionPolyline

This class stores a series of connected line segments with ordered vertices denoted by (x,y,z) triplets; the points need not be coplanar.

ThreeDimensionPolygon

This class stores a series of connected line segments with ordered vertices denoted by (x,y,z) triplets, where the first and last vertices shall be the same forming a polygon; the points shall be coplanar.

ThreeDimensionEllipse

An ellipse is defined by four (x,y,z) triplets; the first two triplets specify the endpoints of the major axis and the second two triplets specify the endpoints of the minor axis.

ThreeDimensionEllipsoid

A three-dimensional geometric surface whose plane sections are either ellipses or circles and contains three intersecting orthogonal axes, “a”, “b”, and “c”. The ellipsoid is defined by six (x,y,z) triplets; the first and second triplets specify the endpoints of axis “a”, the third and fourth triplets specify the endpoints of axis “b”, and the fifth and sixth triplets specify the endpoints of axis “c”.

ImagePlane

The class contains common imaging attributes in the DICOM Image Plane module. DICOM modalities that share the same module are CT, MR, RT, and PET.

GeneralImage

General Image specifies the Attributes that identify and describe an image within a particular series.

Classes

...

Derived from Annotation Statement

...

that are Common to Both ImageAnnotation and AnnotationOfAnnotation

...

...

CalculationEntityReferencesCalculationEntityStatement

A calculation result can reference another calculation result without using its referenced calculation outcome.

 

A use case:

A user wants to store measurement results of left and right ventricular parameters from a cardiac MRI study. 

Working with AIM:

  1. Create an image annotation instance.
  2. Create a DICOM image reference instance and its associated image study, image series, and image instances.
  3. Create a calculation result to store the left ventricular measurement.
  4. Create a calculation result to store the right ventricular measurement.
  5. Create CalculationEntityReferencesCalculationEntityStatement. It links left and right ventricular measurements.

...

...

CalculationEntityUsesCalculationEntityStatement

A calculation result can use another calculation result for its own computation purposes.

 

A use case:

A user wants to store mean and standard deviation measurement results from a region of interest in a CT study.

 

Working with AIM:

  1. Create an image annotation instance.
  2. Create a DICOM image reference instance and its associated image study, image series, and image instances.
  3. Create a markup, which is a region of interest of type polygon.
  4. Create a calculation result to store the mean value.
  5. Create a calculation result to store the standard deviation (SD) result. Note that the mean value is used to calculate SD.
  6. Create CalculationEntityUsesCalculationEntityStatement. It uses SD calculation result as a subject and mean calculation result as an object of the statement.

...

...

ImagingObservationEntityHasCalculationEntityStatement

An image observation can have a calculation result associated with it. 

A use case:

A user wants to measure a mass found on an image. 

Working with AIM:

  1. Create an image annotation instance.
  2. Create a DICOM image reference instance and its associated image study, image series, and image instances.
  3. Create an imaging observation containing mass, RID3874, RadLex.
  4. Create a makeup of type line measurement. The line measurement has a length as a result.
  5. Create a calculation result to store the length of the mass.
  6. Create ImagingObservationEntityHasCalculationEntityStatement to link between the imaging observation (subject) and calculation results (object).

...

...

ImagingObservationEntityIsFoundInImagingPhysicalEntityStatement

An image observation can be found in an imaging physical entity. 

A use case:

A user wants to state that a mass is found on the left upper lobe of the lung. 

Working with AIM:

  1. Create an image annotation instance.
  2. Create a DICOM image reference instance and its associated image study, image series and image instances.
  3. Create an imaging observation containing mass, RID3874, RadLex.
  4. Create an imaging physical entity containing left upper lobe, RID1327, RadLex.
  5. Create ImagingObservationEntityIsFoundInImagingPhysicalEntityStatement to link the imaging observation (subject) and imaging physical entity (object).

 

...

ImagingPhysicalEntityHasCalculationEntityStatement

An imaging physical entity can have a calculation result.

 

A use case:

A user wants to store a diagnostic measurement of liver size. 

Working with AIM:

  1. Create an image annotation instance.
  2. Create a DICOM image reference instance and its associated image study, image series, and image instances.
  3. Create an imaging physical entity containing liver, RID58, RadLex.
  4. Create a calculation result to store the size of the liver.
  5. Create ImagingPhysicalEntityHasCalculationEntityStatement to link the imaging physical entity (subject) with the calculation result (object).

...

...

ImagingPhysicalEntityHasImagingObservationEntityStatement

An image physical entity can have an imaging observation.

 

A use case:

A user wants to state that there is a mass in the left upper lobe of a patient. 

Working with AIM:

  1. Create an image annotation instance.
  2. Create a DICOM image reference instance and its associated image study, image series and image instances.
  3. Create an imaging physical entity containing left upper lobe, RID1327, RadLex.
  4. Create an imaging observation containing mass, RID3874, RadLex.
  5. Create ImagingPhysicalEntityHasImagingObservationEntityStatement to link imaging physical entity (subject) with imaging observation (object).

...

...

AnnotationEntityHasPerformedTaskContextStatement

The class is used to record an activity or a performed task used to create an AIM instance. The AIM instance may contain zero or more performed tasks. Either the ImageAnnotation or AnnotationOfAnnotation class can be a subject of this statement.

 

A use case:

A user wants to record activities performed to create an AIM instance.

 

Working with AIM:

For example, a user wants to record lesion activity.

  1. Create ImageAnnotation.
  2. Create GeometricShapeEntity and record user makeup.
  3. Create TaskContextEntity and fill in the required information; e.g., task name and subtask. The task information must be related to markup activity.
  4. Create AnnotationEntityHasPerformedTaskContextStatement to link ImageAnnotation (subject) with TaskContextEntity (object).

 

...

AnnotationEntityHasPlannedTaskContextStatement

The class is used to record a planned activity or task. The task is used to inform users or computer programs of what activity needs to be performed in order to create an AIM instance. The instance may be created from one or more planned tasks. Either the ImageAnnotation or AnnotationOfAnnotation class can be a subject of this statement.

 

A use case:

A user wants to plan or define activities to be performed in order to create an AIM instance. For example, users want to create a planned activity to guide imaging interpreters in creating an AIM instance.

 

Working with AIM:

  1. Create ImageAnnotation.
  2. Create TaskContextEntityand fill in the required information; e.g., task name and subtask. Both subtasks below have the same task information; e.g., search for a lesion in an organ.
    1. Identify an imaging observation found on an image.
    2. Identify an anatomic entity location associated with the imaging observation.
  3. Create AnnotationEntityHasPerformedTaskContextStatement to link ImageAnnotation (subject) with TaskContextEntity (object).

 

Classes

...

Derived from AnnotationOfAnnotationStatement

...

...

AnnotationOfAnnotationHasAnnotationOfAnnotationStatement

An instance of AnnotationOfAnnotation has another instance of AnnotationOfAnnotation. An AnnotationOfAnnotation may be used to compare, evaluate or reference one or more instances of AnnotationOfAnnotation and/or ImageAnnotation.

 

A use case:

An adjudicator wants to compare a result in an annotation-of-annotation instance with another image annotation instance. 

Assumption:

  1. There is an annotation-of-annotation instance with an additional image annotation instance of the same lesion.
  2. There is a system capable of reading and extracting information from the annotation-of-annotation instance and image annotation.

...

Working with AIM:

  1. Create a new annotation-of-annotation instance.
  2. Extract calculation result from annotation-of-annotation and other information to display to the user.
  3. Create AnnotationOfAnnotationHasAnnotationOfAnnotationStatement to link the newly created annotation-of-annotation first (subject) with the existing annotation-of-annotation (object).
  4. Compare the results of the existing annotation-of-annotation with the user’s own measurement and evaluation.
  5. Create and store the calculation entity after comparing the difference between the two sizes from existing annotation-of-annotation and new measurements.
  6. Create an inference entity to store the result, such as smaller or larger to the question: "Is the size getting larger or smaller?"
  7. Create AnnotationOfAnnotationHasCalculationEntityStatement to associate the annotation-of-annotation (subject) with the calculation entity (object).

...

 

...

AnnotationOfAnnotationHasAnnotationRoleEntityStatement

A given instance of type AnnotationOfAnnotation can have an assigned role. Examples of roles can be baseline, follow-up, referenced case, etc. They are captured in the model as coded terms in the AnnotationRoleEntity class. Some of these roles have been defined in the DICOM standard part 16, Content Mapping Resource. For example:

...

DCM 112076 Non-Lesion at Baseline 

A use case:

A user wants to assign a baseline role to an annotation-of-annotation consisting of image annotations of a non-target lesion. 

Assumption:

  1. Image annotations for a non-target lesion were created earlier.

...

Working with AIM:

  1. Create an annotation-of-annotation instance.
  2. Create an annotation role entity containing Baseline Category, 112016, DCM.
  3. The annotation-of-annotation has a statement referencing image annotations with the non-target lesion.
  4. Create AnnotationOfAnnotationHasAnnotationRoleEntityStatement to link the annotation-of-annotation (subject) to the annotation role entity (object).

       

...

AnnotationOfAnnotationHasCalculationEntityStatement

An instance of AnnotationOfAnnotation can have one or more calculation results. The instance can reference one calculation at a time in a statement. For example, if there are three calculation results, there must be three AnnotationOfAnnotationHasCalculationEntityStatements. 

A use case:

An adjudicator wants to compute an average size of the mass from the three markups created by three readers.

...