Search



Versions Compared

Key

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

Anchor
_0aca28a6-c19b-4c5b-be07-92c3a9cd7524
_0aca28a6-c19b-4c5b-be07-92c3a9cd7524
Purpose

The 900000000000534007 $$ Module dependency reference set $$

Scg expression
ShowPartsid+term
900000000000534007|Module dependency reference set|
represents dependencies between different SNOMED CT release modules . In each case, the dependency indicates which version targetEffectiveTime (field) of each particular module a given version sourceEffectiveTime (field) of the dependent module requires.

Anchor
_e5f0fe86-0d58-46d8-b09c-14f66d6c8b80
_e5f0fe86-0d58-46d8-b09c-14f66d6c8b80
Data structure

The Module dependency reference set is a String (data type) - String reference set (data type) which is used to represent dependencies between modules , taking account of module versioning. Its structure is shown in the following table.

integer reference set member effectiveTimes inactive reference set member reference set member reference set member reference set member reference set member SNOMED CT module reference set member subtype of 900000000000443000 $$ Module (core metadata concept) $$ hierarchy reference set module module 900000000000534007 $$ Module dependency reference set $$ modules reference set reference set member 900000000000534007 $$ Module dependency reference set $$ SCTID module module subtype of 900000000000443000 $$ Module (core metadata concept) $$ .Time module module components refset member module module components

Anchor
_e5f0fe86-0d58-46d8-b09c-14f66d6c8b80__6
_e5f0fe86-0d58-46d8-b09c-14f66d6c8b80__6
Table 54. Module dependency reference set - Data Structure

 

 

Field

Data type

Purpose

id (field)

UUID (data type)

A 128 bit unsigned

Integer (data type), uniquely identifying this

.

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

became the current version.

The current version of this

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

as at the specified effectiveTime (field) .

If active (field) = 1 (true) the

is part of the current version of the set, if active (field) = 0 (false) the

is not part of the current version of the set.

moduleId (field)

SCTID (data type)

Identifies the

that contains this

as at the specified effectiveTime (field) .

The value must be a

of

Scg expression
ShowPartsid+term
900000000000443000|Module (core metadata concept)|
within the metadata

.

In this

, moduleId (field) also refers to the dependent source

. Thus each

contains the rows of the

Scg expression
ShowPartsid+term
900000000000534007|Module dependency reference set|
that represent its dependencies on other

.

refsetId (field)

SCTID (data type)

Identifies the

to which this

belongs.

In this case, set to

Scg expression
ShowPartsid+term
900000000000534007|Module dependency reference set|

referencedComponentId (field)

SCTID (data type)

referencedComponentId

The identifier of a target

on which the dependent

(identified by moduleId (field)) depends. Thus must be a

of

Scg expression
ShowPartsid+term
900000000000443000|Module (core metadata concept)|
.

sourceEffectiveTime (field)

Time (data type)

sourceEffectiveTime

The effective time of the dependent source

(identified by moduleId (field)). This specifies a version of that

, consisting of all

that have the same moduleId (field) as this

in their states as at the specified targetEffectiveTime (field) .

targetEffectiveTime (field)

Time (data type)

The effective time of the target

required to satisfy the dependency (identified by referencedComponentId (field)). This specifies a version of that

, consisting of all

with the moduleId (field) specified by referencedComponentId (field) in their states as at the specified targetEffectiveTime (field) .

Anchor
_7da5ff8f-9913-478c-8b35-8df009e328e9
_7da5ff8f-9913-478c-8b35-8df009e328e9
Notes on usage

Module version dependencies are represented using a single 900000000000534007 $$ Module dependency reference set $$

Scg expression
ShowPartsid+term
900000000000534007|Module dependency reference set|
. Thus all module dependency rows have the same refsetId (
Scg expression
ShowPartsid
900000000000534007|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 900000000000534007 $$ Module dependency reference set $$

Scg expression
ShowPartsid+term
900000000000534007|Module dependency reference set|
within the dependent module. Because these added member must be in the dependent module, the moduleId (field) of the reference 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 International 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.

Anchor
_2bd409bd-1d1d-43b0-a9d8-08068a1b3651
_2bd409bd-1d1d-43b0-a9d8-08068a1b3651
Metadata

The following metadata in the "Foundation metadata concept " hierarchy supports this reference set :

  • Anchor
    _2bd409bd-1d1d-43b0-a9d8-08068a1b3651__6
    _2bd409bd-1d1d-43b0-a9d8-08068a1b3651__6
    Anchor
    _2bd409bd-1d1d-43b0-a9d8-08068a1b3651__5
    _2bd409bd-1d1d-43b0-a9d8-08068a1b3651__5
    Scg expression
    ShowPartsid+term
    900000000000454005
    $$
    |Foundation metadata concept
    $$
    |
    Anchor
    _2bd409bd-1d1d-43b0-a9d8-08068a1b3651__e
    _2bd409bd-1d1d-43b0-a9d8-08068a1b3651__e
    • Scg expression
      ShowPartsid+term
      900000000000455006
      $$
      |Reference set
      $$
      |
      Anchor
      _2bd409bd-1d1d-43b0-a9d8-08068a1b3651__8
      _2bd409bd-1d1d-43b0-a9d8-08068a1b3651__8

Figure 17. Module Dependency Reference Set in the Metadata Hierarchy

Each component within a SNOMED CT release references a moduleId (field). This is the module that the component is currently mastered in (from the effectiveTime (field) held on the component record). A module is simply a collection of SNOMED CT components that are maintained as a unit by a single organization. It is the organization 's responsibility to organize the components in each extension 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 descendant of 900000000000443000 $$ Module $$ of

Scg expression
ShowPartsid+term
900000000000443000|Module|
in the metadata hierarchy . The 900000000000443000 $$ Module $$ sub - hierarchy
Scg expression
ShowPartsid+term
900000000000443000|Module|
sub - is organized by a maintaining organization into a number of groups. For example, all modules maintained by IHTSDO will be children of 900000000000445007 $$ IHTSDO maintained module $$. The 900000000000443000 $$ Module $$ sub-hierarchy of
Scg expression
ShowPartsid+term
900000000000445007|IHTSDO maintained module|
. The
Scg expression
ShowPartsid+term
900000000000443000|Module|
models modules maintained by each organization and does NOT model module dependencies. Instead, module dependencies are modeled using the 900000000000534007 $$ Module dependency reference set $$
Scg expression
ShowPartsid+term
900000000000534007|Module dependency reference set|
.

At the point of release, if any component within a module has changed, then a new row will be added to 900000000000534007 $$ Module dependency reference set $$

Scg expression
ShowPartsid+term
900000000000534007|Module dependency reference set|
for the module's concept , with the effectiveTime (field) set to the date of the new release, irrespective of whether the other fields in the module concept record itself have changed. The updated |Module| concept 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 component will be in one, and only one component . 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 extension . Modules will not straddle extensions . The extension that a module resides in is defined by the SCTID (data type) of the module. A module may not move from one extension to another over time. If the components within a module are to be moved to another extension , then a new module must be created within the destination extension to host the components that are to be transferred.

There may be more than one module in an extension .

Anchor
_aaeb7fcf-bbe8-4966-a01f-16e4c41c153a
_aaeb7fcf-bbe8-4966-a01f-16e4c41c153a
Descriptor

The table below shows the descriptor that defines the structure of the 900000000000534007 $$ Module dependency reference set $$

Scg expression
ShowPartsid+term
900000000000534007|Module dependency reference set|
.

900000000000534007 $$ Module dependency $$ 900000000000475002 $$ Time $$

Anchor
_aaeb7fcf-bbe8-4966-a01f-16e4c41c153a__0
_aaeb7fcf-bbe8-4966-a01f-16e4c41c153a__0
Table 55. Refset Descriptor rows for

Scg expression
ShowPartsid+term
900000000000534007|Module dependency|
.

 

 

 

 

refsetId

referencedComponentId (Referenced component)

attributeDescription (Attribute description)

attributeType (Attribute type)

attributeOrder (Attribute order)

 

900000000000456007 $$ Reference set descriptor $$

900000000000534007 $$ Module dependency $$

900000000000535008 $$ Dependency target $$

900000000000461009 $$ Concept type component $$

0

 

900000000000456007 $$ Reference set descriptor $$

900000000000534007 $$ Module dependency $$

900000000000536009 $$ Source effective time $$

900000000000475002 $$ Time $$

1

 

Scg expression
ShowPartsid+term
900000000000456007|Reference set descriptor|

Scg expression
ShowPartsid+term
900000000000534007|Module dependency|

Scg expression
ShowPartsid+term
900000000000535008|Dependency target|

Scg expression
ShowPartsid+term
900000000000461009|Concept type component|

0

 

Scg expression
ShowPartsid+term
900000000000456007|Reference set descriptor|

Scg expression
ShowPartsid+term
900000000000534007|Module dependency|

Scg expression
ShowPartsid+term
900000000000536009|Source effective time|

Scg expression
ShowPartsid+term
900000000000475002|Time|

1

 

Scg expression
ShowPartsid+term
900000000000456007|Reference set descriptor|

Scg expression
ShowPartsid+term
900000000000534007|Module dependency|

Scg expression
ShowPartsid+term
900000000000537000|Target effective time|

Scg expression
ShowPartsid+term
900000000000475002|Time|

900000000000456007 $$ Reference set descriptor $$

900000000000534007 $$ Module dependency $$

900000000000537000 $$ Target effective 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 , moduleId(field), active (field). Additionally, to aid understanding, the table above also shows the term from one of the descriptions associated with each of the identified concept . The release file only contains the identifier .

Anchor
_6d6f9e33-8512-41ca-a84f-e1ce5e2d480b
_6d6f9e33-8512-41ca-a84f-e1ce5e2d480b
Module dependency reference set example

The table below holds example entries for the 900000000000534007 $$ Module dependency reference set $$ in a snapshot view

Scg expression
ShowPartsid+term
900000000000534007|Module dependency reference set|
in a of the January 2014 SNOMED CT International Release .

This SNOMED CT International Release contains three modules:

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 SNOMED CT International Release to which it applies).

Dependencies are not transitive. The fact that 449080006 $$ SNOMED CT to

Scg expression
ShowPartsid+term
449080006|SNOMED CT to ICD-10 rule-based mapping module
$$
|
is dependent on 900000000000207008 $$ SNOMED CT core $$
Scg expression
ShowPartsid+term
900000000000207008|SNOMED CT core|
may seem to imply a dependency on 900000000000012004 $$ SNOMED CT model component $$
Scg expression
ShowPartsid+term
900000000000012004|SNOMED CT model component|
. However, in practice all dependencies must be explicitly specified, not just immediate dependencies.

900000000000534007 $$ Module dependency $$ 900000000000207008 $$ SNOMED CT core $$

Anchor
_6d6f9e33-8512-41ca-a84f-e1ce5e2d480b__1
_6d6f9e33-8512-41ca-a84f-e1ce5e2d480b__1
Table 56. Sample content from

Scg expression
ShowPartsid+term
900000000000534007|Module dependency|
.

 

 

 

 

moduleId

refsetId

referencedComponentId (Dependency target)

sourceEffectiveTime (Source effective time)

targetEffectiveTime (Target effective time)

Scg expression

900000000000207008 $$ SNOMED CT core $$

900000000000534007 $$ Module dependency $$

900000000000012004 $$ SNOMED CT model component $$

20140131

20140131

449080006 $$ SNOMED CT to ICD-10 rule-based mapping module $$

900000000000534007 $$ Module dependency $$

900000000000012004 $$ SNOMED CT model component $$

20140131

20140131

ShowPartsid+term
900000000000207008|SNOMED CT core|

Scg expression
ShowPartsid+term
900000000000534007|Module dependency|

Scg expression
ShowPartsid+term
900000000000012004|SNOMED CT model component|

20140131

20140131

Scg expression
ShowPartsid+term
449080006|SNOMED CT to ICD-10 rule-based mapping module|

Scg expression
ShowPartsid+term
900000000000534007|Module dependency|

Scg expression
ShowPartsid+term
900000000000012004|SNOMED CT model component|

20140131

20140131

Scg expression
ShowPartsid+term
449080006|SNOMED CT to ICD-10 rule-based mapping module|

Scg expression
ShowPartsid+term
900000000000534007|Module dependency|

Scg expression
ShowPartsid+term
900000000000207008|SNOMED CT core|

449080006 $$ SNOMED CT to ICD-10 rule-based mapping module $$

900000000000534007 $$ Module dependency $$

20140131

20140131

Note: The tables above omit the initial three columns of data present in the release file. These follow the standards versioning pattern id (field), effectiveTime (field), active (field). Additionally, to aid understanding, the tables above also show the term from one of the descriptions associated with each of the identified concept . The release file only contains the identifier .