> For the complete documentation index, see [llms.txt](https://docs.snomed.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.snomed.org/snomed-ct-practical-guides/snomed-ct-extension-guide/4-logical-design/4.3-extensions/4.3.2-reference-sets/4.3.2.4-essential-reference-sets/4.3.2.4.2-module-dependency-reference-set.md).

# Module Dependency Reference Set

## Module Dependency Reference Set

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|](http://snomed.info/id/900000000000207008) and the [| SNOMED CT model component module|](http://snomed.info/id/900000000000012004) ) must be specified in the extension. This is done by adding new members to the [| Module dependency reference set|](http://snomed.info/id/900000000000534007) . Each new versioned release of the extension requires a new version to be created for each extension member of the [| Module dependency reference set|](http://snomed.info/id/900000000000534007) .

## Attributes

As previously mentioned, all reference sets use six common attributes. In addition to these, a [| Module dependency reference set|](http://snomed.info/id/900000000000534007) also includes a sourceEffectiveTime and targetEffectiveTime. The table below explains how each of these attributes is populated in a [| Module dependency reference set|](http://snomed.info/id/900000000000534007) .

Table: Summary of module dependency reference set attributes

<table><thead><tr><th valign="top">Attribute</th><th valign="top">Data Type</th><th valign="top">Use in a Module Dependency Reference Set</th></tr></thead><tbody><tr><td valign="top">id</td><td valign="top">UUID</td><td valign="top">Can be generated using a standard UUID generator.</td></tr><tr><td valign="top">effectiveTime</td><td valign="top">Time</td><td valign="top">Specifies the date on which this version of the reference set member was released.</td></tr><tr><td valign="top">active</td><td valign="top">Boolean</td><td valign="top">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.</td></tr><tr><td valign="top">moduleId</td><td valign="top">SCTID</td><td valign="top">Identifies the module to which this reference set member belongs to. In the <a href="http://snomed.info/id/900000000000534007">| Module dependency reference set|</a> , this also represents the moduleId of the dependent module (which is the <strong>source</strong> 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.</td></tr><tr><td valign="top">refsetId</td><td valign="top">SCTID</td><td valign="top">In a <a href="http://snomed.info/id/900000000000534007">| Module dependency reference set|</a> , this always refers to the concept <a href="http://snomed.info/id/900000000000534007">| Module dependency reference set|</a> . All module dependencies are included in this common reference set.</td></tr><tr><td valign="top">referencedComponentId</td><td valign="top">SCTID</td><td valign="top">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.</td></tr><tr><td valign="top">sourceEffectiveTime</td><td valign="top">Time</td><td valign="top">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.</td></tr><tr><td valign="top">targetEffectiveTime</td><td valign="top">Time</td><td valign="top">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.</td></tr></tbody></table>

## Example

The table below shows three rows from the [| Module dependency reference set|](http://snomed.info/id/900000000000534007) 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.

**Table: Module dependency reference set rows**

<table><thead><tr><th valign="top">id</th><th valign="top">effectiveTime</th><th valign="top">active</th><th valign="top">moduleId</th><th valign="top">refsetId</th><th valign="top">referencedComponentId</th><th valign="top">sourceEffectiveTime</th><th valign="top">targetEffectiveTime</th></tr></thead><tbody><tr><td valign="top">1244116f-fdb5-5645-afcc-5281288409da</td><td valign="top">20170731</td><td valign="top">1</td><td valign="top"><a href="http://snomed.info/id/900000000000207008">900000000000207008 | SNOMED CT core module|</a></td><td valign="top">900000000000534007</td><td valign="top"><a href="http://snomed.info/id/900000000000012004">900000000000012004 | SNOMED CT model component module|</a></td><td valign="top">20170731</td><td valign="top">20170731</td></tr><tr><td valign="top">5e28836d-1647-5e4c-8345-181f8696f0c4</td><td valign="top">20170901</td><td valign="top">1</td><td valign="top"><a href="http://snomed.info/id/731000124108">731000124108 | US National Library of Medicine maintained module|</a></td><td valign="top">900000000000534007</td><td valign="top"><a href="http://snomed.info/id/900000000000207008">900000000000207008 | SNOMED CT core module|</a></td><td valign="top">20170901</td><td valign="top">20170731</td></tr><tr><td valign="top">c4f97804-9fb2-52a8-8772-987e6db9c372</td><td valign="top">20170901</td><td valign="top">1</td><td valign="top"><a href="http://snomed.info/id/731000124108">731000124108 | US National Library of Medicine maintained module|</a></td><td valign="top">900000000000534007</td><td valign="top"><a href="http://snomed.info/id/900000000000012004">900000000000012004 | SNOMED CT model component module|</a></td><td valign="top">20170901</td><td valign="top">20170731</td></tr></tbody></table>

Please note the following:

* The first row states that the 20170731 version of the **source module** [| SNOMED CT core module|](http://snomed.info/id/900000000000207008) is dependant on the 20170731 version of the **target module** [| SNOMED CT model component module|](http://snomed.info/id/900000000000012004) .
* The second row states that the 20170901 version of the **source module** [| US National Library of Medicine maintained module|](http://snomed.info/id/731000124108) is dependant on the 20170731 version of the **target module** [| SNOMED CT core module|](http://snomed.info/id/900000000000207008) .
* The third row states that the 20170901 version of the **source module** [| US National Library of Medicine maintained module|](http://snomed.info/id/731000124108) is dependant on the 20170731 version of the **target module** [| SNOMED CT model component module|](http://snomed.info/id/900000000000012004) . Note that this is an example of a transitive dependency that must be explicitly stated.

<a href="https://docs.google.com/forms/d/e/1FAIpQLScTmbZIf0UEQwYDkY27EEWBkaiYkHSbR0_9DmFrMLXoQLyL7Q/viewform?usp=pp_url&#x26;entry.1767247133=Extension+Guide&#x26;entry.670899847=4.3.2.4.2%20Module%20Dependency%20Reference%20Set" class="button primary">Provide Feedback</a>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.snomed.org/snomed-ct-practical-guides/snomed-ct-extension-guide/4-logical-design/4.3-extensions/4.3.2-reference-sets/4.3.2.4-essential-reference-sets/4.3.2.4.2-module-dependency-reference-set.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
