--- type: "resource" title: "NamingSystem" resource: "NamingSystem" --- # NamingSystem ## Introduction ## Scope and Usage Defines a specific code system or identifier system, so that it can be noted in a registry for other systems to find and understand an identifier. ## Boundaries and Relationships A `NamingSystem` resource manages identifiers of a code system or identifier system, identifier metadata (e.g. type), and limited code system or identifier system specific metadata (e.g. publisher and description). A `CodeSystem` resource represents a code system, its key properties, and may include the content, identifiers, and other metadata. There is known overlap between the `CodeSystem` and `NamingSystem` resource elements. However, the key differences between the resources are as follows: - `CodeSystem` resources may include the concept and property content of the code system, whereas `NamingSystem` resources do not. `CodeSystem` resources also allow identifiers to be supplemented by specific metadata. The metadata are supported with extensions. - `NamingSystem` resources allow the identifiers for code systems or identifier systems to be supplemented by metadata specific to the identifiers. For example: preferred, authoritative, and validity period. ## Background and Context For discussion of policy for creating well maintained OIDs and URIs for resources, see [The HL7 Confluence site](https://confluence.hl7.org/display/FHIR/Migrating+OIDs+to+FHIR). ## Notes ### Dealing with duplicate entries In some cases, the same code or identifier system might accidentally be created more than once in a registry, for example because someone failed to check for an existing entry before adding a new one or if they didn't recognize that their addition replicates another. If this occurs, the system publisher should be contacted for guidance. ### NamingSystem.url The NamingSystem resource has a `url` property. The NamingSystem resource also specifies preferred identifiers for the Identifier or Code system that is being described. These are not the same thing; the `url` property of the NamingSystem itself identifies the registration of the system - the description itself, where as the preferred identifiers identify the system being described. The NamingSystem.url SHOULD not be the same as a URL in the preferred identifiers list, and it would not therefore appear in a `Coding.system` or an `Identifier.system`. ## StructureDefinition ### Elements (Simplified) - **[NamingSystem](/namingsystem-definitions#NamingSystem)** [0..*]: - System of unique identification - **[NamingSystem.url](/namingsystem-definitions#NamingSystem.url)** [0..1]: [uri](/uri) Canonical identifier for this naming system, represented as a URI (globally unique) - **[NamingSystem.identifier](/namingsystem-definitions#NamingSystem.identifier)** [0..*]: [Identifier](/Identifier) Additional identifier for the naming system (business identifier) - **[NamingSystem.version](/namingsystem-definitions#NamingSystem.version)** [0..1]: [string](/string) Business version of the naming system - **[NamingSystem.versionAlgorithm[x]](/namingsystem-definitions#NamingSystem.versionAlgorithm%5Bx%5D)** [0..1]: [string](/string), [Coding](/Coding) extensible:[version-algorithm](/valueset-version-algorithm) How to compare versions - **[NamingSystem.name](/namingsystem-definitions#NamingSystem.name)** [1..1]: [string](/string) Name for this naming system (computer friendly) - **[NamingSystem.title](/namingsystem-definitions#NamingSystem.title)** [0..1]: [string](/string) Title for this naming system (human friendly) - **[NamingSystem.status](/namingsystem-definitions#NamingSystem.status)** [1..1]: [code](/code) required:[publication-status](/valueset-publication-status) draft | active | retired | unknown - **[NamingSystem.kind](/namingsystem-definitions#NamingSystem.kind)** [1..1]: [code](/code) required:[namingsystem-type](/valueset-namingsystem-type) codesystem | identifier | root - **[NamingSystem.experimental](/namingsystem-definitions#NamingSystem.experimental)** [0..1]: [boolean](/boolean) For testing only - never for real usage - **[NamingSystem.date](/namingsystem-definitions#NamingSystem.date)** [1..1]: [dateTime](/dateTime) Date last changed - **[NamingSystem.publisher](/namingsystem-definitions#NamingSystem.publisher)** [0..1]: [string](/string) Name of the publisher/steward (organization or individual) - **[NamingSystem.contact](/namingsystem-definitions#NamingSystem.contact)** [0..*]: [ContactDetail](/ContactDetail) Contact details for the publisher - **[NamingSystem.responsible](/namingsystem-definitions#NamingSystem.responsible)** [0..1]: [string](/string) Who maintains system namespace? - **[NamingSystem.type](/namingsystem-definitions#NamingSystem.type)** [0..1]: [CodeableConcept](/CodeableConcept) preferred:[namingsystem-identifier-system-type](/valueset-namingsystem-identifier-system-type) e.g. driver, provider, patient, bank etc - **[NamingSystem.description](/namingsystem-definitions#NamingSystem.description)** [0..1]: [markdown](/markdown) Natural language description of the naming system - **[NamingSystem.useContext](/namingsystem-definitions#NamingSystem.useContext)** [0..*]: [UsageContext](/UsageContext) The context that the content is intended to support - **[NamingSystem.jurisdiction](/namingsystem-definitions#NamingSystem.jurisdiction)** [0..*]: [CodeableConcept](/CodeableConcept) extensible:[jurisdiction](/valueset-jurisdiction) Jurisdiction of the authority that maintains the naming system (if applicable) - **[NamingSystem.purpose](/namingsystem-definitions#NamingSystem.purpose)** [0..1]: [markdown](/markdown) Why this naming system is defined - **[NamingSystem.copyright](/namingsystem-definitions#NamingSystem.copyright)** [0..1]: [markdown](/markdown) Notice about intellectual property ownership, can include restrictions on use - **[NamingSystem.copyrightLabel](/namingsystem-definitions#NamingSystem.copyrightLabel)** [0..1]: [string](/string) Copyright holder and year(s) - **[NamingSystem.approvalDate](/namingsystem-definitions#NamingSystem.approvalDate)** [0..1]: [date](/date) When the NamingSystem was approved by publisher - **[NamingSystem.lastReviewDate](/namingsystem-definitions#NamingSystem.lastReviewDate)** [0..1]: [date](/date) When the NamingSystem was last reviewed by the publisher - **[NamingSystem.effectivePeriod](/namingsystem-definitions#NamingSystem.effectivePeriod)** [0..1]: [Period](/Period) When the NamingSystem is expected to be used - **[NamingSystem.topic](/namingsystem-definitions#NamingSystem.topic)** [0..*]: [CodeableConcept](/CodeableConcept) example:[definition-topic](/valueset-definition-topic) E.g. Education, Treatment, Assessment, etc - **[NamingSystem.author](/namingsystem-definitions#NamingSystem.author)** [0..*]: [ContactDetail](/ContactDetail) Who authored the CodeSystem - **[NamingSystem.editor](/namingsystem-definitions#NamingSystem.editor)** [0..*]: [ContactDetail](/ContactDetail) Who edited the NamingSystem - **[NamingSystem.reviewer](/namingsystem-definitions#NamingSystem.reviewer)** [0..*]: [ContactDetail](/ContactDetail) Who reviewed the NamingSystem - **[NamingSystem.endorser](/namingsystem-definitions#NamingSystem.endorser)** [0..*]: [ContactDetail](/ContactDetail) Who endorsed the NamingSystem - **[NamingSystem.relatedArtifact](/namingsystem-definitions#NamingSystem.relatedArtifact)** [0..*]: [RelatedArtifact](/RelatedArtifact) Additional documentation, citations, etc - **[NamingSystem.usage](/namingsystem-definitions#NamingSystem.usage)** [0..1]: [string](/string) How/where is it used - **[NamingSystem.uniqueId](/namingsystem-definitions#NamingSystem.uniqueId)** [1..*]: [BackboneElement](/BackboneElement) Unique identifiers used for system - **[NamingSystem.uniqueId.type](/namingsystem-definitions#NamingSystem.uniqueId.type)** [1..1]: [code](/code) required:[namingsystem-identifier-type](/valueset-namingsystem-identifier-type) oid | uuid | uri | iri-stem | v2csmnemonic | other - **[NamingSystem.uniqueId.value](/namingsystem-definitions#NamingSystem.uniqueId.value)** [1..1]: [string](/string) The unique identifier - **[NamingSystem.uniqueId.preferred](/namingsystem-definitions#NamingSystem.uniqueId.preferred)** [0..1]: [boolean](/boolean) Is this the id that should be used for this type - **[NamingSystem.uniqueId.comment](/namingsystem-definitions#NamingSystem.uniqueId.comment)** [0..1]: [string](/string) Notes about identifier usage - **[NamingSystem.uniqueId.period](/namingsystem-definitions#NamingSystem.uniqueId.period)** [0..1]: [Period](/Period) When is identifier valid? - **[NamingSystem.uniqueId.authoritative](/namingsystem-definitions#NamingSystem.uniqueId.authoritative)** [0..1]: [boolean](/boolean) Whether the identifier is authoritative ## Mappings - [NamingSystem Mappings](/namingsystem-mappings) — 20 mapping entries ## Implementation Guide ### implementationguide-NamingSystem-core.xml ```xml <status value="draft"/> <date value="1970-01-01T10:00:00+10:00"/> <publisher value="HL7"/> <description value="Defines common extensions and profiles used with or related to the NamingSystem resource"/> <definition> </definition> </ImplementationGuide> ``` ## Operations - [preferred-id](/namingsystem-operation-preferred-id) — Fetch Preferred id — This operation returns the preferred identifiers for identifiers, and terminologies. - [translate-id](/namingsystem-operation-translate-id) — Translate id — This operation returns an identifier of the target type. [Full Operations](/namingsystem-operations) ## Resource Packs ### list-NamingSystem-packs.xml ```xml <?xml version="1.0" encoding="UTF-8"?> <List xmlns="http://hl7.org/fhir"> <id value="NamingSystem-packs"/> <status value="current"/> <mode value="working"/> <entry> <item> <reference value="ImplementationGuide/NamingSystem-core"/> </item> </entry> </List> ``` ## Search Parameters - [contact](/namingsystem-search#contact) — **string** — Name of an individual to contact — `NamingSystem.contact.name` - [context](/namingsystem-search#context) — **token** — A use context assigned to the naming system — `(NamingSystem.useContext.value.ofType(CodeableConcept))` - [context-quantity](/namingsystem-search#context-quantity) — **quantity** — A quantity- or range-valued use context assigned to the naming system — `(NamingSystem.useContext.value.ofType(Quantity)) | (NamingSystem.useContext.value.ofType(Range))` - [context-type](/namingsystem-search#context-type) — **token** — A type of use context assigned to the naming system — `NamingSystem.useContext.code` - [context-type-quantity](/namingsystem-search#context-type-quantity) — **composite** — A use context type and quantity- or range-based value assigned to the naming system — `NamingSystem.useContext` - [context-type-value](/namingsystem-search#context-type-value) — **composite** — A use context type and value assigned to the naming system — `NamingSystem.useContext` - [date](/namingsystem-search#date) — **date** — The naming system publication date — `NamingSystem.date` - [description](/namingsystem-search#description) — **string** — The description of the naming system — `NamingSystem.description` - [identifier](/namingsystem-search#identifier) — **token** — External identifier for the naming system — `NamingSystem.identifier` - [id-type](/namingsystem-search#id-type) — **token** — oid | uuid | uri | other — `NamingSystem.uniqueId.type` - [jurisdiction](/namingsystem-search#jurisdiction) — **token** — Jurisdiction of the authority that maintains the the naming system — `NamingSystem.jurisdiction` - [kind](/namingsystem-search#kind) — **token** — codesystem | identifier | root — `NamingSystem.kind` - [name](/namingsystem-search#name) — **string** — Computationally friendly name of the naming system — `NamingSystem.name` - [period](/namingsystem-search#period) — **date** — When is identifier valid? — `NamingSystem.uniqueId.period` - [publisher](/namingsystem-search#publisher) — **string** — Name of the publisher of the naming system — `NamingSystem.publisher` - [responsible](/namingsystem-search#responsible) — **string** — Who maintains system namespace? — `NamingSystem.responsible` - [status](/namingsystem-search#status) — **token** — The current status of the naming system — `NamingSystem.status` - [telecom](/namingsystem-search#telecom) — **token** — Contact details for individual or organization — `NamingSystem.contact.telecom` - [type](/namingsystem-search#type) — **token** — e.g. driver, provider, patient, bank etc. — `NamingSystem.type` - [url](/namingsystem-search#url) — **uri** — The uri that identifies the naming system — `NamingSystem.url` - [value](/namingsystem-search#value) — **string** — The unique identifier — `NamingSystem.uniqueId.value` - [version](/namingsystem-search#version) — **token** — The business version of the naming system — `NamingSystem.version` - [effective](/namingsystem-search#effective) — **date** — The time during which the NamingSystem is intended to be in use — `NamingSystem.effectivePeriod` - [derived-from](/namingsystem-search#derived-from) — **reference** — A resource that the NamingSystem is derived from — `NamingSystem.relatedArtifact.where(type='derived-from').resource` - [predecessor](/namingsystem-search#predecessor) — **reference** — The predecessor of the NamingSystem — `NamingSystem.relatedArtifact.where(type='predecessor').resource` - [topic](/namingsystem-search#topic) — **token** — Topics associated with the NamingSystem — `NamingSystem.topic` - [experimental](/namingsystem-search#experimental) — **token** — Whether the NamingSystem is experimental — `NamingSystem.experimental` [Full Search Parameters](/namingsystem-search) ## Examples - [example](/namingsystem-example-example) — namingsystem-example — Example of how to use Naming System for a code system - [example-id](/namingsystem-example-example-id) — namingsystem-example-id — Example of naming system for an identifier - [example-metadata](/namingsystem-example-example-metadata) — namingsystem-example-metadata — Example Naming System Metadata - [example-metadata-2](/namingsystem-example-example-metadata-2) — namingsystem-example-metadata-2 — Example Naming System Metadata v2 - [namingsystem-example](/namingsystem-example-namingsystem-example) — namingsystem-example - [namingsystem-example-id](/namingsystem-example-namingsystem-example-id) — namingsystem-example-id - [namingsystem-example-metadata](/namingsystem-example-namingsystem-example-metadata) — namingsystem-example-metadata - [namingsystem-example-metadata-2](/namingsystem-example-namingsystem-example-metadata-2) — namingsystem-example-metadata-2 - [namingsystem-examples-header](/namingsystem-example-namingsystem-examples-header) — namingsystem-examples-header [Full Examples](/namingsystem-examples) ## Mapping Exceptions ### namingsystem-fivews-mapping-exceptions.xml ### Unmapped Elements - **FiveWs.what** — Unknown - **FiveWs.author** — Unknown - **FiveWs.actor** — Unknown - **FiveWs.cause** — Unknown - **FiveWs.where** — Unknown - **FiveWs.context** — Unknown - **FiveWs.init** — Unknown - **FiveWs.source** — Unknown - **FiveWs.who** — Unknown - **FiveWs.grade** — Unknown - **FiveWs.planned** — Unknown - **FiveWs.done** — Unknown - **FiveWs.subject** — Unknown