Search



Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

Purpose

The

Concept
ShowPartsterm
t900000000000534007|Module dependency reference set|
represents dependencies between different
Gloss
PreSpacefalse
tSNOMED CT
release
Gloss
PreSpacefalse
tmodules
. In each case, the dependency indicates which targetEffectiveTime
Specref
RefType(field)
ttargetEffectiveTime
of each particular
Gloss
PreSpacefalse
tmodule
a given sourceEffectiveTime (
Specref
RefType(field)
tsourceEffectiveTime
of the dependent
Gloss
PreSpacefalse
tmodule
requires.

...

Data structure

The

Glossconcept
t900000000000534007|Module dependency reference set|
is a String  is a
Specref
RefType(data type)
- String (data type)
tString
-
Specref
RefType(data type)
tString
gloss
Gloss
PreSpacefalse
treference set
which is used to represent dependencies between
Gloss
PreSpacefalse
tmodules
, taking account of
Gloss
PreSpacefalse
tmodule
versioning. Its structure is shown in the following table.

Field

Data type

Purpose

id (field)

UUID (data type)

A 128 bit unsigned Integer (data type), uniquely identifying this

Gloss
treference set member
.

Different versions of a reference set member share the same id (field) but have different effectiveTime (field). This allows a reference set member to be modified or made active (field) (i.e. removed from the active set) at a specified time.

effectiveTime (field)

Time (data type)

The inclusive date or time at which this version of the identified

Gloss
treference set member
became the current version.

The current version of this

Gloss
treference set member
at time T is the version with the most recent effectiveTime (field) prior to or equal to time T .

active (field)

Boolean (data type)

The state of the identified

Gloss
treference set member
as at the specified effectiveTime (field) .

If active (field) = 1 (true) the

Gloss
treference set member
is part of the current version of the set, if active (field) = 0 (false) the
Gloss
treference set member
is not part of the current version of the set.

moduleId (field)

SCTID (data type)

Identifies the

Gloss
tSNOMED CT module
that contains this
Gloss
treference set member
as at the specified effectiveTime (field) .

The value must be a

Gloss
tsubtype
of
Concept
t900000000000443000|Module (core metadata concept)|
within the metadata
Gloss
thierarchy
.

In this

Gloss
treference set
, moduleId (field) also refers to the dependent source
Gloss
tmodule
. Thus each
Gloss
tmodule
contains the rows of the
Concept
t900000000000534007|Module dependency reference set|
that represent its dependencies on other
Gloss
tmodules
.

refsetId (field)

SCTID (data type)

Identifies the

Gloss
treference set
to which this
Gloss
treference set member
belongs.

In this case, set to

Concept
t900000000000534007|Module dependency reference set|

referencedComponentId (field)

SCTID (data type)

The identifier of a target

Gloss
tmodule
on which the dependent
Gloss
tmodule
(identified by moduleId (field)) depends. Thus must be a
Gloss
tsubtype
of
Concept
t900000000000443000|Module (core metadata concept)|
.

sourceEffectiveTime (field)

Time (data type)

The effective time of the dependent source

Gloss
tmodule
(identified by moduleId (field)). This specifies a version of that
Gloss
tmodule
, consisting of all
Gloss
tcomponents
that have the same moduleId (field) as this
Gloss
trefset member
in their states as at the specified targetEffectiveTime (field) .

targetEffectiveTime (field)

Time (data type)

The effective time of the target

Gloss
tmodule
required to satisfy the dependency (identified by referencedComponentId (field)). This specifies a version of that
Gloss
tmodule
, consisting of all
Gloss
tcomponents
with the moduleId (field) specified by referencedComponentId (field) in their states as at the specified targetEffectiveTime (field) .

...



Refset spec table
Sizefs7
RefsetTypeModule Dependency Reference Set


Rules and Guidance

Introduction to Modules

Each row in the release files for components and reference set members has a 

Specref
RefType(field)
tmoduleId
. This refers to the 
Gloss
PreSpacefalse
tmodule
 that the component is maintained in. Each module is either part of the 
Gloss
PreSpacefalse
tSNOMED International Release
 or part of a single 
Gloss
PreSpacefalse
tSNOMED CT Extension
 . The 
Specref
RefType(field)
tmoduleId
 has a 
Gloss
PreSpacefalse
tpartition-id
 which indicates whether it is part of the 
Gloss
PreSpacefalse
tSNOMED International Release
 and, if not, its 
Gloss
PreSpacefalse
tnamespace identifier
 indicates the 
Gloss
PreSpacefalse
tSNOMED CT Extension
 that it belongs to.

A module is simply a collection of 

Gloss
PreSpacefalse
tSNOMED CT components
 maintained as a unit by a single organization. It is the organization 's responsibility to organize the components in each 
Gloss
PreSpacefalse
textension
 that it is responsible for into one or more modules, in a way that best fits its business needs.

A module is represented by a 

Gloss
PreSpacefalse
tdescendant
 of 
Concept
t900000000000443000|Module|
 in the metadata 
Gloss
PreSpacefalse
thierarchy
. The immediate subtype descendants of 
Concept
t900000000000443000|Module|
 represent groups of modules maintained by an organization and subtypes of these can be used to arrange that organizations modules into a number of groups. For example, all modules maintained by 
Gloss
PreSpacefalse
tSNOMED International
 will be 
Gloss
PreSpacefalse
tchildren
 of 
Concept
t900000000000445007|SNOMED International maintained module|
.

At any point in time a 

Gloss
PreSpacefalse
tcomponent
 must be in one, and only one module. It is possible for components and reference set members to be moved between modules (subject to constraints explained elsewhere). In this case, a new row is added to the release file with the same 
Specref
tid
 but with a new 
Specref
RefType(field)
teffectiveTime
 and a new 
Specref
RefType(field)
tmoduleId

Introduction to Module Dependencies

Each 

Gloss
PreSpacefalse
textension
 must include one or more modules. Each module must be part of either the 
Gloss
PreSpacefalse
tSNOMED International Release
 or one and only one 
Gloss
PreSpacefalse
textension
.  A module may not move from one 
Gloss
PreSpacefalse
textension
 to another over time. If components or reference set members in a module are to be moved from an 
Gloss
PreSpacefalse
textension
 to the 
Gloss
PreSpacefalse
tSNOMED International Release
 or to another 
Gloss
PreSpacefalse
textension
, they must either be added to an existing or newly created module maintained by the destination organization.

The 

Concept
t900000000000443000|Module|
ShowFormatinline
Gloss
PreSpacefalse
tsub-hierarchy
 does NOT represent dependencies between module. Instead, module dependencies are modeled using the Module version dependencies are represented using a single
Concept
t900000000000534007|Module dependency reference set|
. Thus all module dependency rows have the same refsetId (
Concept
t900000000000534007|Module dependency reference set (foundation metadata concept)|
) .

It is At the responsibility of the organization owning and maintaining a dependent module to identify all modules on which it depends. They do this by adding rows to the point of release, if any 

Gloss
PreSpacefalse
tcomponent
 within a module has changed, then a new row must be added to the concept
Concept
ShowPartsterm
t900000000000534007|Module dependency reference set|
within the dependent module. Because these added member must be in the dependent module, the moduleId (field) of the
Gloss
treference set
member record is also the identifier of the dependent (source) module. The target module on which the source module depends is identified by the referencedComponentId (field) .

A module version may depend on one or more other module versions, and many module versions may have a dependency on a single module version. Cyclic module version dependencies are not allowed. If module-A depends on module-B, then module-B cannot depend on module-A.

Dependencies are not transitive and this means that dependencies cannot be inferred from a chain of dependencies. If module-A depends on module-B and module-B depends on module-C, the dependency of module-A on module-C must still be stated explicitly.

Any release should consist of a set of module versions that are certified as being compatible. Each release should also identify other module versions that it is dependent on even when these are outside the scope of the release. For example, the dependencies of modules in an Extension on the International Release must be stated.

Dependencies are specified between module versions, not just dependencies between modules. Therefore, it is possible to specify a dependency from a module released on one date to an earlier version of another module. The version of the dependent module is specified by the sourceEffectiveTime (field) and the version of the module on which it depends is specified by the targetEffectiveTime (field).

Note: Current practice assumes the refset.id column contains the same identifier for all versions of the dependencies between the same pair of modules. This approach means that at any given time only one version of each module has effective dependencies. Therefore, to review the dependencies of an earlier version, a snapshot for an earlier time must be checked. An alternative approach has been suggested by some people in which a new identifier is allocated to each dependency of each module. This would then mean that all past dependencies would be visible in a snapshot view. It would also mean that it would be possible release updated dependencies for an existing module version while also releasing more up-to-date versions of the same module with different dependencies. This added flexibility comes at the price of additional complexity and for the time-being the

Gloss
tInternational Release
continues to use the simpler approach in which each new version of a dependency supersedes the dependency between earlier versions of the same pair of modules.

...

The following metadata in the "Foundation metadata

Gloss
tconcept
"
Gloss
thierarchy
supports this
Gloss
treference set
:

...

Concept
t900000000000454005|Foundation metadata concept|

 for each dependency of that module. The 

Specref
RefType(field)
teffectiveTime
 of the added rows must set to the date of the new release. The updated
Concept
ShowPartsterm
t900000000000534007|Module dependency reference set|
 records indicate that some components within the module have been updated in this release. If there have been no additions, updates or inactivations of components or reference set members within a module, then a new
Concept
ShowPartsterm
t900000000000534007|Module dependency reference set|
 records need not be added unless there is a requirement to declare that the unchanged module is compatible with a later release of the module(s) on which it dependents.

Identifying and Versioning Module Dependencies

id

The recommended practice is for the refset.id column to contain the same identifier for all versions of the dependencies between the same pair of modules. This approach means that at any given time only one version of each module has effective dependencies. The dependencies of earlier versions can be reviewed by reviewing a snapshot for the effectiveTime of the earlier release.

Info
titleValue of the id column

An alternative approach has been suggested by some people in which a new identifier is allocated to each dependency of each module. This would then mean that all past dependencies would be visible in a snapshot view. It would also mean that it would be possible release updated dependencies for an existing module version while also releasing more up-to-date versions of the same module with different dependencies. This added flexibility comes at the price of additional complexity and for the time-being the International Release modules continue to use the simpler approach in which each new version of a dependency supersedes the dependency between earlier versions of the same pair of modules.

effectiveTime

The effectiveTime of at least one row for each pair of modules should be the same as the sourceEffectiveTime. Otherwise, there will be a period of time when a snapshot view will not show the dependencies. However, it is theoretically possible for an additional row to be added with a later effectiveTime in cases where an otherwise unchanged release of an extension, declares itself to be compatible with an updated release of the target module (in this case the effectiveTime and targetEffectiveTime are changed but the sourceEffectiveTime remains unchanged.

active

A module dependency only needs to be inactivated if the dependency is found to be erroneous. This is because, the module dependency is specific to a particular version of the source and target module. Therefore, if that dependency was valid at the outset it remains valid indefinitely in respect of those specified module versions, even if the dependencies between subsequent versions differ.

refsetId

Module version dependencies are represented using a single

Concept
t900000000000534007|Module dependency reference set|
. Thus all module dependency rows have the same refsetId (
Concept
t900000000000534007|Module dependency reference set (foundation metadata concept)|
).

It is the responsibility of the organization owning and maintaining a dependent module to identify all modules on which it depends. They do this by adding rows to the

Concept
t900000000000534007|Module dependency reference set|
within the dependent module. Because these added member must be in the dependent module, the
Specref
RefType(field)
tmoduleId
of the
Gloss
PreSpacefalse
treference set
member record is also the identifier of the dependent (source) module.

Module Identification

Source Module  (moduleId)

The 

Specref
tmoduleId
 column not only indicates that this reference set member is in the specified module, it also indicates that this is the module that is the source of the dependency. As a result, in this reference set the 
Specref
tmoduleId
 column is immutable (i.e Mutable=NO). This is an exception to the usual rule and implies that a member of this reference set cannot move from one module to another.

Target Module (referencedComponentId)

The target module on which the source module depends is identified by the

Specref
RefType(field)
treferencedComponentId
. Like the source module this is also immutable and this implies that if a module ceases to be dependent on another module, a new row inactivating the dependency can be added but the same member cannot be used to represent a different dependency (even if that dependency is a direct replacement of the inactivated dependency). However as noted above, 

A module version may depend on one or more other module versions, and many module versions may have a dependency on a single module version. Cyclic module version dependencies are not allowed. If module-A depends on module-B, then module-B cannot depend on module-A.

Dependencies are not transitive and this means that dependencies cannot be inferred from a chain of dependencies. If module-A depends on module-B and module-B depends on module-C, the dependency of module-A on module-C must still be stated explicitly.

Any release should consist of a set of module versions that are certified as being compatible. Each release should also identify other module versions that it is dependent on even when these are outside the scope of the release. For example, the dependencies of modules in an Extension on the International Release must be stated.

Dependencies are specified between module versions, not just dependencies between modules. Therefore, it is possible to specify a dependency from a module released on one date to an earlier version of another module. The version of the dependent module is specified by the

Specref
RefType(field)
tsourceEffectiveTime
and the version of the module on which it depends is specified by the
Specref
RefType(field)
ttargetEffectiveTime
.

Metadata

The following metadata in the "Foundation metadata

Gloss
PreSpacefalse
tconcept
"
Gloss
PreSpacefalse
thierarchy
supports this
Gloss
PreSpacefalse
treference set
:

Scg expression
Borderridge
  900000000000454005 |Foundation metadata concept|
		900000000000455006|Reference set|
				900000000000534007 |Module dependency|



Excerpt Include
REUSE:Notes on Reference Set Example Tables
REUSE:Notes on Reference Set Example Tables
nopaneltrue

Descriptor

The table below shows the descriptor that defines the structure of the

Concept
t900000000000534007|Module dependency reference set|
.


refsetId

referencedComponentId (Referenced component)

attributeDescription (Attribute description)

attributeType (Attribute type)

attributeOrder (Attribute order)


Concept
t900000000000456007|Reference set descriptor|

Concept
t900000000000534007|Module dependency|

Concept
t900000000000535008|Dependency target|

Concept
t900000000000461009|Concept type component|

0


Concept
t900000000000456007|Reference set descriptor|

Concept
t900000000000534007|Module dependency|

Concept
t900000000000536009|Source effective time|

Concept
t900000000000475002|Time|

1


Concept
t900000000000456007|Reference set descriptor|

Concept
t900000000000534007|Module dependency|

Concept
t900000000000537000|Target effective time|

Concept
t900000000000475002|Time|

2


Note: The table above omits the initial four columns of data present in the release file. These follow the standards versioning pattern

Specref
RefType(field)
tid
,
Specref
RefType(field)
teffectiveTime
,
Specref
RefType(field)
tactive
,
Specref
RefType(field)
tactive
. Additionally, to aid understanding, the table above also shows the
Gloss
PreSpacefalse
tterm
from one of the
Gloss
PreSpacefalse
tdescriptions
associated with each of the identified
Gloss
PreSpacefalse
tconcept
. The release file only contains the
Gloss
PreSpacefalse
tidentifier
.

Example Data

Example The table below holds example entries for the

Concept
t900000000000534007|Module dependency reference set|
in a
Gloss
PreSpacefalse
tsnapshot view
of the January 2014
Gloss
PreSpacefalse
tSNOMED CT International Release
.

This

Gloss
PreSpacefalse
tSNOMED CT International Release
contains three modules:

  • Concept
    t900000000000012004|SNOMED CT model component|
    which has no dependencies;

...

Concept
t900000000000455006|Reference set|

...

  • Concept
    t900000000000534007|Module dependency|

Each component within a

Gloss
tSNOMED CT release
references a moduleId (field). This is the
Gloss
tmodule
that the component is currently mastered in (from the effectiveTime (field) held on the component record). A module is simply a collection of
Gloss
tSNOMED CT components
that are maintained as a unit by a single organization. It is the organization 's responsibility to organize the components in each
Gloss
textension
that it is responsible for into one or more modules, in a way that best fits its business needs.

A module is modeled by a

Gloss
tdescendant
of
Concept
t900000000000443000|Module|
in the metadata
Gloss
thierarchy
. The
Concept
t900000000000443000|Module|
sub -
Gloss
thierarchy
is organized by a maintaining organization into a number of groups. For example, all modules maintained by
Gloss
tSNOMED International
will be
Gloss
tchildren
of
Concept
t900000000000445007|SNOMED International maintained module|
. The
Concept
t900000000000443000|Module|
ShowFormatinline
Gloss
tsub-hierarchy
models modules maintained by each organization and does NOT model module dependencies. Instead, module dependencies are modeled using the
Concept
t900000000000534007|Module dependency reference set|
.

At the point of release, if any

Gloss
tcomponent
within a module has changed, then a new row will be added to
Concept
t900000000000534007|Module dependency reference set|
for the module's
Gloss
tconcept
, with the effectiveTime (field) set to the date of the new release, irrespective of whether the other fields in the module
Gloss
tconcept
record itself have changed. The updated |Module|
Gloss
tconcept
record identifies that some components within the module have been updated in this release. Where no components within a module have been updated, then a new module record will not be added and the module's effectiveTime (field) field will not change from the previous release.

Each

Gloss
tcomponent
will be in one, and only one
Gloss
tcomponent
. The module that a component is mastered in may change over time, and when this happens, the component's moduleId (field) field will be updated (in the usual way by appending a row for the component).

Each module will be in one and only one

Gloss
textension
. Modules will not straddle
Gloss
textensions
. The
Gloss
textension
that a module resides in is defined by the SCTID (data type) of the module. A module may not move from one
Gloss
textension
to another over time. If the components within a module are to be moved to another
Gloss
textension
, then a new module must be created within the destination
Gloss
textension
to host the components that are to be transferred.

There may be more than one module in an

Gloss
textension
.

...

The table below shows the descriptor that defines the structure of the

Concept
t900000000000534007|Module dependency reference set|
.

refsetId

referencedComponentId (Referenced component)

attributeDescription (Attribute description)

attributeType (Attribute type)

attributeOrder (Attribute order)

 

Concept
t900000000000456007|Reference set descriptor|

Concept
t900000000000534007|Module dependency|

Concept
t900000000000535008|Dependency target|

Concept
t900000000000461009|Concept type component|

0

 

Concept
t900000000000456007|Reference set descriptor|

Concept
t900000000000534007|Module dependency|

Concept
t900000000000536009|Source effective time|

Concept
t900000000000475002|Time|

1

 

Concept
t900000000000456007|Reference set descriptor|

Concept
t900000000000534007|Module dependency|

Concept
t900000000000537000|Target effective time|

Concept
t900000000000475002|Time|

2

 

Note: The table above omits the initial four columns of data present in the release file. These follow the standards versioning pattern id (field), effectiveTime (field), active (field), active (field). Additionally, to aid understanding, the table above also shows the

Gloss
tterm
from one of the
Gloss
tdescriptions
associated with each of the identified
Gloss
tconcept
. The release file only contains the
Gloss
tidentifier
.

...

The table below holds example entries for the

Concept
t900000000000534007|Module dependency reference set|
in a
Gloss
tsnapshot view
of the January 2014
Gloss
tSNOMED CT International Release
.

This

Gloss
tSNOMED CT International Release
contains three modules:

...

Concept
t900000000000012004|SNOMED CT model component|

...

Concept
t900000000000207008|SNOMED CT core|

...

Concept
t900000000000012004|SNOMED CT model component|

...

Concept
t449080006|SNOMED CT to ICD-10 rule-based mapping module|

...

In this case all the 2014-01-31 modules depend on 2014-01-31 versions of the other modules. However, in some case a module may depend on an earlier version of another model (e.g. an extension module may be releases after the

Gloss
tSNOMED CT International Release
to which it applies).

...

Concept
t449080006|SNOMED CT to ICD-10 rule-based mapping module|

...

  • Concept
    t900000000000207008|SNOMED CT core|

...

  • which depends on the
    Concept
    t900000000000012004|SNOMED CT model component|
    ; and
  • Concept
    t449080006|SNOMED CT to ICD-10 rule-based mapping module|
    which depends on both the other modules.

In this case all the 2014-01-31 modules depend on 2014-01-31 versions of the other modules. However, in practice all dependencies must be explicitly specified, not just immediate dependencies.

...

moduleId

...

refsetId

...

referencedComponentId (Dependency target)

...

sourceEffectiveTime (Source effective time)

...

targetEffectiveTime (Target effective time)

...

Concept
t900000000000207008|SNOMED CT core|

...

Concept
t900000000000534007|Module dependency|

...

Concept
t900000000000012004|SNOMED CT model component|

...

20140131

some case a module may depend on an earlier version of another model (e.g. an extension module may be releases after the

Gloss
PreSpacefalse
tSNOMED CT International Release
to which it applies).

...

Dependencies are not transitive. The fact that

Concept
t449080006|SNOMED CT to ICD-10 rule-based mapping module

...

|
is dependent on
Concept
t

...

900000000000207008|SNOMED CT core|
may seem to imply a dependency on
Concept
t900000000000012004|SNOMED CT model component|
. However, in practice all dependencies must be explicitly specified, not just immediate dependencies.


moduleId

refsetId

referencedComponentId (Dependency target)

sourceEffectiveTime (Source effective time)

targetEffectiveTime (Target effective time)

20140131

20140131

Concept
t

449080006

900000000000207008|SNOMED CT

to ICD-10 rule-based mapping module

core|

Concept
t900000000000534007|Module dependency|

Concept
t

900000000000207008

900000000000012004|SNOMED CT

core

model component|

20140131

20140131

...

Gloss
tterm

...

Gloss
tdescriptions

...

Gloss
tconcept

...

Gloss
tidentifier

...

Concept
t449080006|SNOMED CT to ICD-10 rule-based mapping module|

Concept
t900000000000534007|Module dependency|

Concept
t900000000000012004|SNOMED CT model component|

20140131

20140131

Concept
t449080006|SNOMED CT to ICD-10 rule-based mapping module|

Concept
t900000000000534007|Module dependency|

Concept
t900000000000207008|SNOMED CT core|

20140131

20140131