Every extension must contain at least one module, which is used to organize the extension content. The dependencies that the extension modules have on other modules (including on the | SNOMED CT core module| and the | SNOMED CT model component module| ) must be specified in the extension. This is done by adding new members to the | Module dependency reference set| . Each new versioned release of the extension requires a new version to be created for each extension member of the | Module dependency reference set| .
Attributes
As previously mentioned, all reference sets use six common attributes. In addition to these, a | Module dependency reference set| also includes a sourceEffectiveTime and targetEffectiveTime. The table below explains how each of these attributes is populated in a | Module dependency reference set| .
Attribute | Data Type | Use in a Module Dependency Reference Set |
id | UUID | Can be generated using a standard UUID generator. |
effectiveTime | Time | Specifies the date on which this version of the reference set member was released. |
active | Boolean | Indicates whether or not the reference set member is active at the given effectiveTime. This value is set to "1" for new reference set members. |
moduleId | SCTID | Identifies the module to which this reference set member belongs to. In the | Module dependency reference set| , this also represents the moduleId of the dependent module (which is the source of the dependency). The module dependencies are therefore always specified within the dependent module. This ensures that anyone who has access to an extension module can access the relevant dependencies. |
refsetId | SCTID | In a | Module dependency reference set| , this always refers to the concept | Module dependency reference set| . All module dependencies are included in this common reference set. |
referencedComponentId | SCTID | The referencedComponentId specifies the module that is the target of the dependency. The value of this attribute is the id of the module on which the source module (referred to by the moduleId attribute) is dependent. |
sourceEffectiveTime | Time | Specifies the version of the dependent module (referred to by the moduleId attribute) for which the dependency applies. The snapshot view of the dependent module at the given sourceEffectiveTime represents the state of the terminology in which the dependency applies. |
targetEffectiveTime | Time | Specifies the version of the target module (referred to by the referencedComponentId attribute) on which the dependent module depends. The snapshot view of the target module at the given targetEffectiveTime represents the state of the terminology in which the dependency applies. |
Example
Table 4.3.2.4.2-2 below shows three rows from the | Module dependency reference set| in the 20170301 US Edition of SNOMED CT. Please note that the SCTIDs in the moduleId and referenceComponentId columns have been replaced with their preferred terms for improved readability.
id | effectiveTime | active | moduleId | refsetId | referencedComponentId | sourceEffectiveTime | targetEffectiveTime |
1244116f-fdb5-5645-afcc-5281288409da | 20170731 | 1 | 900000000000534007 | 20170731 | 20170731 | ||
5e28836d-1647-5e4c-8345-181f8696f0c4 | 20170901 | 1 | 900000000000534007 | 20170901 | 20170731 | ||
c4f97804-9fb2-52a8-8772-987e6db9c372 | 20170901 | 1 | 900000000000534007 | 20170901 | 20170731 |
Please note the following:
- The first row states that the 20170731 version of the source module | SNOMED CT core module| is dependant on the 20170731 version of the target module | SNOMED CT model component module| .
- The second row states that the 20170901 version of the source module | US National Library of Medicine maintained module| is dependant on the 20170731 version of the target module | SNOMED CT core module| .
- The third row states that the 20170901 version of the source module | US National Library of Medicine maintained module| is dependant on the 20170731 version of the target module | SNOMED CT model component module| . Note that this is an example of a transitive dependency that must be explicitly stated.
Feedback