# Pre-release Validation

Prior to releasing a SNOMED CT extension or edition, a series of validation checks should be performed to ensure that the package is ready for release.

The table below summarizes the different types of validation tasks and provides some examples of checks that can be performed prior to a release.

Table: Pre-release validation tasks

<table><thead><tr><th width="156.59765625" valign="top">Validation Type</th><th width="235.37890625" valign="top">Purpose</th><th valign="top">Examples</th></tr></thead><tbody><tr><td valign="top"><strong>Structural Conformance</strong></td><td valign="top">To validate that the SNOMED CT distribution files conform structurally to the specification of the associated file type, and that the rows and columns contain values of an appropriate data type.</td><td valign="top"><p></p><ul><li>Concept file conforms to the structure specified in the <a href="https://app.gitbook.com/s/irKbJsZG57nSWZA4GT0M/component-release-file-specification/4.2-file-format-specifications/4.2.1-concept-file-specification">Concept File Specification</a></li><li>Description file conforms to the structure specified in the <a href="https://app.gitbook.com/s/irKbJsZG57nSWZA4GT0M/component-release-file-specification/4.2-file-format-specifications/4.2.2-description-file-specification">Description File Specification</a></li><li>Relationship file conforms to the structure specified in the <a href="https://app.gitbook.com/s/irKbJsZG57nSWZA4GT0M/component-release-file-specification/4.2-file-format-specifications/4.2.2-description-file-specification">Relationship File Specification</a></li><li>Reference set files conform to the structure of the specific reference set type in <a href="broken-reference">Reference Set Release Files Specification</a></li></ul></td></tr><tr><td valign="top"><strong>Release Type</strong></td><td valign="top">To test assertions about the content of SNOMED CT data files, with respect to their release type (i.e. Full, Snapshot or Delta). This involves comparing data files for the prospective release with those of the most recently published previous release.</td><td valign="top"><p></p><ul><li>New full file consists of the previously released full file and the new delta file</li><li>New delta file consists of all rows from the new full release which has an effectiveTime equal to the new release date</li><li>New snapshot file contains only one row for each component or reference set member</li></ul></td></tr><tr><td valign="top"><strong>File</strong></td><td valign="top">To test file constraints and interfile dependencies (i.e. assertions about the integrity of data within and between SNOMED CT data files). This involves testing primary and foreign keys, and the cardinality of references between files. For performance reasons, testing may be limited to the set of concepts that have changed in some way in the prospective release, and components associated with them.</td><td valign="top"><p></p><ul><li>Active extension descriptions are referred to in one or more language reference sets</li><li>All concepts associated with an active description in the description file are present in the concept file of either the extension, the International Edition, or a module from another extension on which the extension modules depend.</li><li><p>Primary keys are unique within each file</p><ul><li>For files in the full release, the combination of the <em>id</em> and the <em>effectiveTime</em> is unique</li><li>For files in the snapshot and delta releases, the <em>id</em> is unique</li></ul></li></ul></td></tr><tr><td valign="top"><strong>Component</strong></td><td valign="top">To test assertions about the integrity of SNOMED CT components. In this kind of validation, the content of each file is tested against the editorial principles and logical design of SNOMED CT.</td><td valign="top"><p></p><ul><li><p>All active concepts must have:</p><ul><li>An active description of type <a href="http://snomed.info/id/900000000000003001">| Fully specified name|</a></li><li>At least one active description of type <a href="http://snomed.info/id/900000000000013009">| Synonym|</a></li><li>At least one active <a href="http://snomed.info/id/116680003">| is a|</a> relationship</li><li>A transitive <a href="http://snomed.info/id/116680003">| Is a|</a> relationship to the root concept</li><li>A <em>definitionStatusId</em> which refers to an active descendant of <a href="http://snomed.info/id/900000000000444006">| Definition status|</a></li></ul></li><li><p>All active relationships must conform to the following rules:</p><ul><li><em>sourceId</em> and <em>destinationId</em> must both refer to active concepts</li><li><em>typeId</em> must refer to an active descendant of <a href="http://snomed.info/id/246061005">| Attribute|</a></li><li><em>characteristicTypeId</em> and <em>modifierId</em> must refer appropriate active metadata concepts</li></ul></li><li><p>All active descriptions must conform to the following rules:</p><ul><li><em>conceptId</em> must refer to a valid concept (which may be active or inactive)</li><li><em>typeId</em> and <em>caseSignificanceId</em> must refer to appropriate active metadata concepts</li></ul></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.5.3%20Pre-release%20Validation" 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.5-review-and-validation/5.5.3-pre-release-validation.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.
