HL7 Terminology (THO)
7.5.0 - Publication International flag

HL7 Terminology (THO), published by HL7 International - Vocabulary Work Group. This guide is not an authorized publication; it is the continuous build for version 7.5.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/UTG/ and changes regularly. See the Directory of published versions

Using CPT with HL7 Standards (v20261009)

This page describes how to use CPT with HL7 Standards and has been jointly developed by HL7 and the American Medical Association.

Using CPT with FHIR R5 (v20261009)

Summary

SourceThe Current Procedural Terminology (CPT®) code set is created, maintained and copyrighted by the American Medical Association (AMA). CPT codes provide a uniform language for coding medical services and procedures.
SystemThe URI http://www.ama-assn.org/go/cpt identifies the CPT code set.
Version The CPT code set is updated and published annually. CPT releases are identified by the year of their intended use e.g., CPT 2026. The CPT code set is periodically updated throughout the year on a set schedule and the update schedule is depicted in the CPT® Standard Data Product sheet.
To specify only the version year, use:
  • YYYY (for the Annual release)
To specify a version of an update within a year, use:
  • YYYY-1 (for Update 1)
  • YYYY-2 (for Update 2)
  • YYYY-3 (for Update 3)
  • YYYY-4 (for Update 4)
Code Valid CPT codes and expressions for the code element when system is http://www.ama-assn.org/go/cpt include:
  • A 5-character numeric or alphanumeric CPT code
  • A 2-character numeric or alphanumeric CPT modifier code
  • An expression that includes a 5-character CPT code AND ends with one or more other codes (e.g., another 5-character CPT code and/or a 2-character CPT or a HCPCS Level II modifier code(s))
For additional information, see the More about `code’ for CPT Codes and Expressions subsection below.
Display
  • For a 5-character CPT code - If used, the correct display is one of the descriptors published in the CPT® Standard Data File. CPT descriptors differ in length and target audience, and there are six distinct types, including: long descriptors, medium descriptors, short descriptors, consumer-friendly descriptors in English, consumer-friendly descriptors in Spanish, and clinician descriptors. The CPT Long Descriptor is the descriptor that is officially approved by the CPT Editorial Panel when the code is created or revised and is the most detailed. It is the preferred descriptor type for general-purpose display. Other CPT descriptors may be more appropriate depending on the use case.
  • For a 2-character modifier code - If used, the correct display is the “Modifier Name” published in the CPT® Standard Data File.
  • For an expression code - the CPT code set does not define display terms for expressions. For guidance on the display element for expressions, see the More about `code’ for CPT Codes and Expressions subsection below.
Inactive ​Inactive codes are identified using the inactive property (see CPT Concept Properties, below). The CPT® Editorial Panel has the authority to approve CPT content changes (such as new, revised and/or deleted codes). An overview of the CPT code change and application process is available at https://www.ama-assn.org/about/cpt-editorial-panel/cpt-code-process.
Subsumption As of 2025, subsumption relationships are not included in the CPT® Standard Data File. For additional information about CPT see: http://www.ama-assn.org/cpt.
Filter Properties ​For filter properties, see CPT Filter Properties below.

Copyright and Licenses

The AMA holds the copyright in the Current Procedural Terminology (CPT) code set/coding system, and a license is required for use. CPT® is a registered trademark of the American Medical Association.

When using CPT codes in FHIR artifacts such as Implementation Guides (IGs) and Value Sets (e.g., the copyright element of any value set that includes CPT codes and the IP section of any IG), SHALL include the following text with the copyright year (YYYY) adjusted to reflect the release year(s): This material contains content from CPT® Copyright YYYY American Medical Association. All rights reserved. AMA and CPT are registered trademarks of the American Medical Association.

Either the ValueSet.copyright or ValueSet.compose.include.copyright HL7 FHIR copyright elements can acceptably assert the CPT copyright statement.

CPT licensing information is available at https://www.ama-assn.org/practice-management/cpt/ama-cpt-licensing-overview.

Information about HL7 International's non-production CPT license for specific HL7 uses is available at under HL7 Policy Governing the Use of HL7® International Standards and Other Intellectual Property on the IP Policy web page (https://www.hl7.org/legal/ippolicy.cfm).

Versions

CPT annual releases are identified by the year of their intended use. Each September, an updated CPT code set is released for use in the subsequent calendar year. For example, the 2026 CPT Standard Data File (for use in 2026) is released in September 2025.

Usage Example

  <coding>
    <system value="http://www.ama-assn.org/go/cpt"/>
    <version value="2025"/>
    <code value="31502"/>
    <display value="Tracheotomy tube change prior to establishment of fistula tract"/>
  </coding>

More about `code' for CPT Codes and Expressions

This section provides additional detail about ‘code’ for CPT codes and expressions.
  • Case Sensitivity
    • The alphabetic characters in Category II, Category III, Proprietary Laboratory Analyses (PLA), and Administrative Multianalyte Assays with Algorithmic Analyses (Administrative MAAA) codes are represented by specific letters that shall be capitalized (i.e., 'F' for Category II, 'T' for Category III, ‘U’ for PLA, ‘M’ for Administrative MAAA).
    • For electronic transactions (such as HIPAA-mandated billing), codes shall be submitted as they are defined by the AMA in the CPT Code Set, which consistently uses upper case for alphabetic components.
    • The official alphabetic characters in modifiers are represented by specific letters that shall be reported in all uppercase letters.
  • When system is http://www.ama-assn.org/go/cpt, CPT codes and expressions that are valid for the code element include: A 5-character numeric or alphanumeric CPT code, which can be:
    • A 5-character numeric Category I code - These codes represent a procedure or service. The Regex for these codes is: [0-9]{5} (e.g., 99202).
    • A 5-character alphanumeric Category II code - These tracking codes are supplemental codes used for performance measurement. These codes all end in F. The Regex for these codes is: [0-9]{4}F (e.g., 0001F).
    • A 5-character alphanumeric Category III code - These are temporary codes for new and developing technology, procedures and services. These codes all end in T. The Regex for these codes is: [0-9]{4}T (e.g., 0042T).
    • A 5-character alphanumeric Proprietary Laboratory Analyses (PLA) code - These codes describe proprietary clinical laboratory analyses. These codes all end in U. The Regex for these codes is: [0-9]{4}U (e.g., 0001U).
    • A 5-character alphanumeric Administrative Multianalyte Assays with Algorithmic Analyses (Administrative MAAA) code – These are MAAA codes used for multianalyte assays with algorithmic analyses that are not yet widely established or are specific to a particular laboratory or manufacturer. Unlike other MAAA codes, Administrative MAAA codes are not Category I codes. These codes all end in M. The Regex for these codes is: [0-9]{4}M (e.g., 0002M).
  • A 2-character numeric or alphanumeric CPT modifier code – A modifier code indicates that a service or procedure performed has been altered by some specific circumstance but not changed in its definition or code. Modifiers provide additional information about 5-character CPT codes, and can be:
    • A 2-character numeric modifier code - for use with Category I and Category III CPT codes.
    • A 2-character numeric modifier code approved for Ambulatory Surgery Center (ASC) hospital outpatient use - for use with a subset of Category I or Category III codes.
    • A 2-character alphanumeric Anesthesia Physical Status modifier code - for use with Category I anesthesia services codes.
    • A 2-character alphanumeric Category II modifier code - for use with Category II CPT codes
    • A 2-character alphabetic or alphanumeric HCPCS Level II (National) modifier code - for use with Category I and Category III CPT codes.
  • Note: Healthcare Common Procedure Coding System (HCPCS) Level I is comprised of CPT codes and CPT modifiers. HCPCS Level II codes and modifiers identify products, supplies, and services not included in the CPT code set. HCPCS Level II codes, modifiers, and coding guidelines are developed and maintained by the Centers for Medicare & Medicaid Services (CMS).
  • An expression that includes a 5-character CPT code AND one or more other codes (e.g., another 5-character CPT code(s) and/or a 2-character CPT or HCPCS Level II modifier code(s)) –Additional guidance for expressions in FHIR:
    • 2-character modifier code(s) should follow the 5-character CPT code that they modify.
    • Codes included in an expression code SHALL be separated from preceding code(s) by a : character. Other separator characters, notably - (e.g., 00100-P1) and .., which may be used in other contexts (e.g., AMA documentation), are not conformant for code and must be replaced by :.
    • A specific order for CPT 5-character codes and/or modifier codes may be appropriate depending on the specific use case or context.

CPT Expression Example

Note: No display is provided in this example. See below for guidance on display for expressions.
  <coding>
    <system value="http://www.ama-assn.org/go/cpt"/>
    <code value="23040:52:LT"/>
  </coding>

More about `display' for CPT Codes and Expressions

The CPT code set does not define human-readable terms for expressions. When system is http://www.ama-assn.org/go/cpt, suggested guidance for display terms for an expression code includes:

  • For 5-character CPT codes in an expression - The CPT Long Descriptor is officially approved by the CPT Editorial Panel when the code is created or revised and is the most detailed.
  • For 2-character modifier codes in an expression - Use the “Modifier Name” for CPT modifiers referenced in the CPT® Standard Data File. For more information see “Using HCPCS with FHIR”.
  • Descriptors and/or Modifier Names SHALL be separated using a | (with a space before and after each pipe character).
  • Display term order should adhere to the order of the codes in the expression code.

Examples of 'code' and 'display' for CPT expressions

'code' 'display' Explanation of Example
29888:LT Arthroscopically aided anterior cruciate ligament repair/ augmentation or reconstruction | Left side (used to identify procedures performed on the left side of the body) A CPT Category I code and a HCPCS Level II modifier
45380:52 Colonoscopy, flexible; with biopsy, single or multiple | Reduced Services A CPT Category I code and a CPT modifier
23040:52:LT Arthrotomy, glenohumeral joint, including exploration, drainage, or removal of foreign body | Reduced Services | Left side (used to identify procedures performed on the left side of the body) A CPT Category I code and two modifiers (CPT and HCPCS Level II)
99358:99359 Prolonged evaluation and management service before and/or after direct patient care; first hour | Prolonged evaluation and management service before and/or after direct patient care; each additional 30 minutes (List separately in addition to code for prolonged service) A CPT Category I code and a CPT Category I Add-On code
45378:43200:51 Colonoscopy, flexible; diagnostic, including collection of specimen(s) by brushing or washing, when performed (separate procedure) | Esophagoscopy, flexible, transoral; diagnostic, including collection of specimen(s) by brushing or washing, when performed (separate procedure) | Multiple Procedures Two CPT Category I codes and a CPT modifier for the second Category I code (Note: Neither CPT code is an Add-On code)
22864:0095T Removal of total disc arthroplasty (artificial disc), anterior approach, single interspace; cervical | Removal of total disc arthroplasty (artificial disc), anterior approach, each additional interspace, cervical (List separately in addition to code for primary procedure) A CPT Category I code and a CPT Category III Add-On code

CPT Concept Properties

The following properties are defined as code system properties when using the CPT code set in FHIR:

Name Cardinality Type Description
kind 1..1 code Distinguishes the specific type/category the code belongs to. The value may be one of::
  • cat-I: A 5-character Category I code
  • cat-II: A 5-character Category II code
  • cat-III: A 5-character Category III code
  • pla: A 5-character Proprietary Laboratory Analyses (PLA) code
  • amaaa: A 5-character Administrative Multianalyte Assays with Algorithmic Analyses (MAAA) code
  • mod: A 2-character CPT modifier code (does not include HCPCS Level II modifiers)
  • expression: a code as defined in the table in 6.1.1.1 Summary
mod-cat-I-and-III 0..1 boolean True if the code is a 2-character CPT modifier code for use with Category I and Category III CPT codes (does not include HCPCS Level II modifiers)
mod-cat-II 0..1 boolean True if the code is a 2-character CPT modifier code for use with Category II CPT codes
mod-aps 0..1 boolean True if the code is a 2-character CPT Anesthesia Physical Status modifier code for use with CPT anesthesia codes
mod-hou 0..1 boolean True if the code is a 2-character CPT modifier code approved for hospital outpatient use
inactive 0..1 boolean True if the predefined CPT code has been identified by the CPT Editorial Panel as no longer intended for use, or if an expression code contains any inactive component code(s).

CPT Filter Properties

This specification defines six filters that may be used with the CPT code system.

Name Operation(s) Value(s) Description
kind =/in a kind from the list above, or a comma separated list of kinds

Select one or more kinds of code (i.e., cat-I, cat-II: cat-I, cat-II, cat-III, pla, amaaa, mod, expression)

For example:

  • A value set of 5-character CPT codes and expression codes would specify include: kind not-in mod.
  • A value set of CPT modifier codes would specify include: kind = mod.
mod-cat-I-and-III = true or false Whether the code is a 2-character CPT modifier code for use with Category I and Category III CPT codes or not.
mod-cat-II = true or false Whether the code is a 2-character CPT modifier code for use with Category II CPT codes or not.
mod-aps = true or false Whether the code is a 2-character CPT Anesthesia Physical Status modifier code for use with CPT anesthesia codes or not.
mod-hou = true or false Whether the code is a 2-character CPT modifier code approved for ambulatory surgery center (ASC) hospital outpatient use or not.
code in a series of ranges separated by commas Ranges may be a single code, or a range of codes e.g. 20100-69990, 92920, 92926-92928

CPT Implicit Value Sets

There are no implicit value sets defined for CPT at this time.

CPT Explicit Value Sets

The following explicit CPT value sets have been defined by HL7 and may be of interest or useful to implementers:

Using CPT with earlier versions of FHIR

This page documents the correct usage of CPT with R5, but the concepts apply to all versions of FHIR. Earlier versions of FHIR contained a 'Using CPT with HL7 FHIR RX page' (e.g. R4). This page should be understood to replace those earlier pages. Note that this page defines additional valid codes, properties, filters and the expression syntax which add facilities not previously described, but do not otherwise invalidate the advice in those earlier pages.

Additional CPT Educational Content

More information can be found here about educational content offered by the American Medical Association to assist in understanding and using the Current Procedural Terminology (CPT) code set. Information about the CPT code development and maintenance process is available here.