All pages
Powered by GitBook
1 of 7

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Common Features of All Release Files

This subsection explains features that apply to all SNOMED CT release files.

  • General Structure of Release Files

  • Release File Data Types

  • Fields Present in All Release Files

General Structure of Release Files

The following rules apply to all SNOMED CT Release Files.

  • SNOMED CT Release Files are UTF-8 encoded, tab delimited text files.

  • Each line, including the final line, ends with a carriage return character (hex 0D) followed by a line feed character (hex 0A).

  • The first line of each file, contains the names of each column (also know more generally as a field).

Meaning of the Active Field
History Mechanism
Module Identification
Provide Feedback

Field names are represented using lower-camel-case

  • First letter of name is lower case

  • First letter of each words apart from the first word in the name is upper case

  • All other letters are lower case.

  • For example:

    • id

    • term

    • typeId

    • relationshipGroup

  • The name, datatype and usage of the fields in each file are specified in the following sections of this guide

    • File Format Specifications

    • Reference Set Types.

  • Provide Feedback

    Meaning of the Active Field

    Each component has an associated active field, which can take values of true (1) or false (0). The meaning of this flag is described by component type in the following table:


    Behavior of Active and Inactive Components

    definitionStatusId

    Component Type

    Active value

    Component behavior when the most recent row representing a component has the specified active value

    Concept

    True

    • The concept is intended for active use.

    • All active descriptions for which the conceptId refers to this concept are valid. Visibility of these active descriptions depends on information contained in applicable refset members (for example, whether the description is in a language dialect reference set that is currently enabled in the vendor's system).

    • All active relationships of which it is the sourceId or destinationId are applicable.

    Concept

    False

    • The concept is not intended for active use. However, it remains a valid concept for historical purposes as part of the SNOMED CT commitment to the principle of ' concept permanence'.

    • Valid descriptions of the concept remain active allowing it to be appropriately viewed in human-readable form.

    • An inactive concept cannot be the sourceId, destinationId or typeId of an active relationship.

    Description

    True

    • The description contains a term that is a valid description of the concept referred to by the conceptId.

    • An active description may refer to an inactive concept, in which case the term provides a valid description of that inactive concept. Text based searches should (by default) include only active descriptions that refer to active concepts.

    Description

    False

    • The description is not a valid and the associated term should no longer be regarded as being associated with the concept referred to by conceptId.

    Relationship

    True

    • The relationship represents a valid association of the type specified by the typeId, between two concepts referred to by the sourceId and destinationId ;

    • An inactive concept cannot be the sourceId, destinationId or typeId of an active relationship.

    Relationship

    False

    • The relationship is not valid. An inactive relationship should be ignored as it does not apply.

    • This does not necessarily mean that the association indicated by the relationship does not apply. The relationship may be inactive because it is redundant and inferable based on other active relationships.

    • An inactive relationship may refer to either active or inactive components.

    Refset member

    True

    • The refset member contains valid information applicable to the component referred to by the referencedComponentId .

    • The component referred to by the referencedComponentId may be active or inactive. An active refset member cannot make an inactive component active but may provide related information that continues to be relevant (e.g. the reason for inactivation).

    Refset member

    False

    • The refset member is not valid. An inactive refset member should be ignored. The information it contains is not applicable to the component referred to by referencedComponentId.

    Provide Feedback

    Release File Data Types

    The following data types are used in the release files:

    Data Types Used in Release Files

    Data Type

    Description

    SCTID

    A SNOMED CT identifier, between 6 and 18 digits long, as described in .

    • This data type is used to identify SNOMED components, to refer to a component from another component or from a reference set, and also to represent the values for concept enumerations.


    Concept enumeration is the a set of SNOMED CT concept identifiers used to represent values for a property of a SNOMED CT component or reference set member.

    Notes

    • Concept enumeration serves the same purpose as more general approaches to providing enumerated lists of values (i.e. assigning a number to a value). However, the use of SNOMED CT concept identifier allows access to the human readable meaning of each enumeration using descriptions in the same way for other concepts.

    • The SNOMED CT concepts used to represent concept enumerations are usually subtype children (or descendants) of concepts in the SNOMED CT metadata hierarchy. Each possible value is represented by a single child concept. This allows updates to the permitted values to be tracked using the component history mechanism.

    Example

    Concept enumerations for description.typeId:

    • 900000000000446008 |Description type (core metadata concept)|

      • 900000000000003001 |Fully specified name (core metadata concept)|

      • 900000000000013009 |Synonym (core metadata concept)|


    Concept enumeration values (subtypes of 900000000000442005 |Core metadata concept|


    900000000000550004 |Definition (core metadata concept)|

    900000000000449001

    |Characteristic type (core metadata concept)|

    Each subtype of this concept represents a value that can be applied to the Description. caseSignificanceId field. This is used to indicate whether the text of the term can be modified to by switching characters from upper to lower case (or vice-versa).

    900000000000449001 |Characteristic type (core metadata concept)|

    Each subtype of this concept represents a value that can be applied to the Relationship. characteristicTypeId field. This is used to indicate whether a Relationship forms part of the definition of the source concept.

    900000000000450001

    |Modifier (core metadata concept)|

    Each subtype of this concept represents a value that can be applied to the Relationship. modifierId field. This is used to indicate the type of Description Logic (DL) restriction (some, all, etc.) that applies to the Relationship.

    900000000000453004 |Identifier scheme (core metadata concept)|

    Each subtype of this concept represents a value that can be applied to the Identifier. identifierSchemeId field. This is used to indicate the scheme to which the Identifier value belongs.

    UUID

    A Universally Unique Identifier is a 128-bit unsigned generated using a standard algorithm.

    • UUIDs are represented as strings of hexadecimal characters split by - characters as points specified by the UUID standard.

    Integer

    A 32-bit signed integer.

    String

    UTF-8 text of a specified length.

    Boolean

    A Boolean value, represented as one of two possible integer values (1 = true, 0 = false).

    Time

    A date and time format expressed as a text string in line the basic representation specified in the ISO 8601 standard.

    • Where only date is required the format is YYYYMMDD (e.g. 20180125 refers to 25th January 2018)

    • Where a time is also required the YYYYMMDDThhmmssZ (e.g. 20180125T123000Z refers to 12:30 UTC on 25th January 2018)

    • The time should be expressed as UTC, as indicated by the trailing "Z".

    Concept

    Comment

    900000000000443000

    |Module (core metadata concept)|

    Each subtype of this concept represents a development module. These concepts provide values to the moduleId field that is present in all SNOMED CT component file. The value indicates the module within which a component was created and is being maintained.

    900000000000444006

    |Definition status (core metadata concept)|

    Each subtype of this concept represents a value that can be applied to the concept. definitionStatusId field. This is used to indicate whether the current set of defining Relationships applied to a concept are sufficient to fully-define it relative to its supertypes.

    900000000000446008 |Description type (core metadata concept)|

    Concept Enumerations

    Provide Feedback
    SCTID Representation

    Each subtype of this concept represents a value that can be applied to the Description. typeId field. This is used to indicate whether the Description represents a Fully Specified Name, a synonymous term, a definition or some other symbolic or textual representation of the associated concept.

    Fields Present in All Release Files

    The first four columns in all release files are shown in Table 3.1.3-1. The next three sections of the specification explain the ways in which these fields are used to support identification, versioning and modularization.


    Fields present in all release files

    Field

    Data type

    Purpose

    Mutable

    History Mechanism

    The effectiveTime and active fields in the release file enable the use of a "log style" append-only data model to track all changes to each component, providing full traceability. Once released, a row in any of these files will always remain unchanged. Historic data is supplied in the RF2 release files, dating back to the first release in RF1 format in 2002.

    In order to change the properties of a current component a new version of that component is created with the same identifier. This done by adding a new row to the relevant release file, with the column values updated to represent the changes. The active field must be set to true and the timestamp in the effectiveTime field indicating the nominal date on which the new version was released. Note that the existing row is not changed in any way.

    To inactivate a component, a new row is added, containing the same data as the final valid version of the component, but with the active field set to false and the timestamp in the effectiveTime fi eld indicating the nominal date of the release in which the final version ceased being valid. Note again that the existing row is not changed in any way.

    Where editorial policy does not allow a particular property of a component to be changed whilst keeping the same Identifier, the component as a whole is inactivated (as described above), and a new row added with a new id, the effectiveTime set to the nominal date of the release in which this version of the component became valid, and the active field set to true.

    It is thus possible to see both the current values and any historical values of a component at any point in time.

    New content, changes and inactivations must have the effectiveTime for the release that it appears in. Pre-releases for testing may set the effectiveTime as the date of the future scheduled release but in general the effectiveTime must not be later that the scheduled release data, Where there is a business requirement for specifying a future activation date for some components, this may be represented using reference sets.

    Part of Primary Key

    id

    SCTID

    Uniquely identifies a component.

    NO

    YES (Full/Snapshot)

    id

    UUID

    Uniquely identifies a reference set member.

    NO

    YES (Full/Snapshot)

    effectiveTime

    Time

    Specifies the inclusive date at which this rows state became the then current valid state of the identified component or reference set member.

    YES

    YES (Full) Optional (Snapshot)

    active

    Boolean

    Specifies whether the state of the component or reference set member was active or inactive from the nominal release date specified by the effectiveTime.

    YES

    NO

    moduleId

    SCTID

    Identifies the module this component or reference set member is currently maintained in. Set to a child of 900000000000443000

    |Module| within the metadata hierarchy.

    YES

    NO

    Provide Feedback

    The following example demonstrates how the history mechanism works on the Concept, but the same rules apply equally well to the Description, Relationship and Reference set member files. In this example, the descriptions associated with the moduleId and definitionStatusId have been shown in place of their SCTID values.

    1. A new concept (101291009) is added on the 1st July 2007:

    History Example - Concept Added

    Id

    effectiveTime

    active

    moduleId

    definitionStatusId

    101291009

    20070701

    1


    1. In the following release (on 1st January 2008), the concept is moved from |Module 1| to |Module 2|. Because the moduleId field is not immutable, the concept may be updated simply by adding a new record with the same Id.

    History Example - Module Change

    Id

    effectiveTime

    active

    moduleId

    definitionStatusId

    101291009

    20070701

    1


    1. In the following release (on 1st July 2008), the concept is changed from being Primitive to being Fully defined.

    History Example - Definition Status Changed

    Id

    effectiveTime

    active

    moduleId

    definitionStatusId

    101291009

    20070701

    1


    1. In the following release (on 1st January 2009), the concept is inactivated:

    History Example - Concept Made Inactive

    Id

    effectiveTime

    active

    moduleId

    definitionStatusId

    101291009

    20070701

    1


    Provide Feedback

    Notes

    1. At no stage in this process are previously written records ever amended. Once a record has been released in a release file, it will continue to be released in exactly the same form in future release files.

    2. Changes are only recorded at the point of release in the RF2 release files. If a component record is changed a number of times between releases (during an edit and review process), only the most recently amended record will be appended to the release file, not individual records showing each separate edit to the released component.

    Module Identification

    Each SNOMED CT component is managed and maintained in a module identified by its moduleId field.

    A SNOMED CT module is defined as a group of SNOMED CT components and/or reference set members managed, maintained, and distributed as a unit.

    Notes

    • Components and reference set members that are part of the same module share the same moduleId value.

    • All modules , except the 900000000000012004 | SNOMED CT model component module| , have dependencies on other modules specified by the Module Dependency Reference Set.

      • components and reference set members, that are part of the same module, share the same moduleId value.

      • components and reference set members are part of only one module , at any given time.

    • The organization responsible for maintaining an extension must:

      • create and maintain at least one module identified by a moduleId that it has created;

      • apply a moduleId that it has created to all components and reference set members in its extension ;

    • The organization responsible for maintaining an extension may:

      • create and maintain multiple modules ;

      • organize its components and reference set members within the modules it manages in a way that best meets its business needs;

      • move a component or reference set member between its modules by creating a revised version of that component or reference set member with a different

    • Components and reference set members may be moved between modules maintained by different organizations. However, such moves must only be made:

      • with the consent of the organizations responsible for both the source and target modules; and

      • in accordance with rules specified by SNOMED International.

    In the last example, as well as inactivating the concept (active=0), the definitionStatusId is changed from 900000000000073002 |Defined| to 900000000000074008 |Primitive|. In practice this change is not essential since the value of data columns is ignored when a component is inactive. Although the change is unnecessary and insignificant, it typically occurs since all the relationships of an inactive concept must also be inactive, and as a result, from the perspective of the authoring environment the concept cannot be regarded as 900000000000073002 |Defined|.

    |Module 1|

    900000000000074008 |Primitive|

    |Module 1|

    900000000000074008 |Primitive|

    101291009

    20080101

    1

    |Module 2|

    900000000000074008 |Primitive|

    |Module 1|

    900000000000074008 |Primitive|

    101291009

    20080101

    1

    |Module 2|

    900000000000074008 |Primitive|

    101291009

    20080701

    1

    |Module 2|

    900000000000073002 |Defined|

    |Module 1|

    900000000000074008 |Primitive|

    101291009

    20080101

    1

    |Module 2|

    900000000000074008 |Primitive|

    101291009

    20080701

    1

    |Module 2|

    900000000000073002 |Defined|

    101291009

    20090101

    0

    |Module 2|

    900000000000074008 |Primitive|

    manage and distribute information about the dependencies of its
    modules
    in accordance with SNOMED CT specifications.
    moduleId
    (It is then part of the new
    module
    from the
    effectiveTime
    of the revised version).
    Provide Feedback