# Modify Members of a Reference Set

## Purpose

There are a number of reasons for modifying members of a reference set in an extension (depending on the type of reference set), including:

* Updating map records to
  * Refine map rules or map advice
  * Change the target of a map
* Changing the acceptability of a description in a language reference set
* Changing the order of subset members specified in an [| Ordered type reference set|](http://snomed.info/id/447258008)

## Principles

Principles for modifying reference sets include:

* Reference sets can be modified by
  * Adding or inactivating reference set members. Please refer to the guidance on  [Add Members to a Reference Set](https://docs.snomed.org/snomed-ct-practical-guides/snomed-ct-extension-guide/5-key-steps/5.4-authoring/5.4.6-authoring-reference-set-members/broken-reference) or [Remove Members from a Reference Set](https://docs.snomed.org/snomed-ct-practical-guides/snomed-ct-extension-guide/5-key-steps/5.4-authoring/5.4.6-authoring-reference-set-members/broken-reference).
  * Modifying mutable attribute values of reference set members. To see what attributes are mutable for each reference set type, please refer to the specification of the specific reference set type in the [reference set release files specification](https://docs.snomed.org/snomed-ct-practical-guides/snomed-ct-extension-guide/5-key-steps/5.4-authoring/5.4.6-authoring-reference-set-members/broken-reference). If the reference set type is a locally defined reference set, please consider any mutability constraints on the individual attributes.
* Don't modify immutable attributes of a reference set.
  * In the case where the modification of an immutable attribute is required, this should be done by inactivating the reference set member and creating a new reference set member with the required, updated values.
* If circumstances require you to modify reference set members that belong to another module than the producers extension, following options exist:
  * Inactivating the specific reference set member in your own module and create a new reference set member with the updated value
    * The benefit of this approach is that you retain the definition and representation of the reference set member as it was intended by its original authors, and the new reference set member will be easily identified as a local reference set member, as the identifier of that reference set member is not available in the original reference set
  * Create a new version of the specific reference set member in your own module, and make the necessary modifications

## Process

The table below provides a summary of the process to follow when modifying an existing member in a Reference Set.

**Table: Modify reference set member**

<table><thead><tr><th width="199.8203125" valign="top">File Type</th><th valign="top">Process</th></tr></thead><tbody><tr><td valign="top">Concept</td><td valign="top">The metadata concept representing the reference set is retained</td></tr><tr><td valign="top">Reference Set</td><td valign="top">A new reference set row is created and the <em>id</em> is retained from the previous version of the refset member.</td></tr><tr><td valign="top"></td><td valign="top"><p></p><p>Versioning and module identification attributes are set accordingly:</p><ul><li><em>effectiveTime</em> is set to the date the extension will be published</li><li><em>active</em> is set to reflect the status of the reference set member, i.e. '1' for active and '0 'for inactive</li><li><em>moduleId</em> is set to identify a module managed by the extension producer</li></ul></td></tr><tr><td valign="top"></td><td valign="top"><p></p><p>Attributes common for all reference set types are set accordingly:</p><ul><li><em>refsetId</em> is retained as the value from the previous version of this refset member. A member cannot move from one reference set to another</li><li><p>referencedComponentId id retained as the value from the previous version of this refset member. A member cannot change the component which it refers to.</p><ul><li>In this case, the existing member record should be inactivated, and a new one created.</li></ul></li></ul></td></tr><tr><td valign="top"></td><td valign="top"><p></p><p>Attributes specific to the reference set type are set accordingly:</p><ul><li><em>additional attributes</em> - may be updated with a value, of type (and possibly range) limited by the descriptor record for this Reference Set attribute</li></ul></td></tr></tbody></table>

*

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


---

# Agent Instructions: 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:

```
GET https://docs.snomed.org/snomed-ct-practical-guides/snomed-ct-extension-guide/5-key-steps/5.4-authoring/5.4.6-authoring-reference-set-members/5.4.6.2-modify-members-of-a-reference-set.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
