HL7 Terminology (THO)
7.5.0 - Publication
This page is part of the HL7 Terminology (v7.5.0: Release) based on FHIR (HL7® FHIR® Standard) v5.0.0. This is the current published version. For a full list of available versions, see the Directory of published versions
Contents:
This page describes how to use CPT with HL7 Standards and has been jointly developed by HL7 and the American Medical Association.
| Source | The 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. |
| System | The 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:
|
| Code |
Valid CPT codes and expressions for the code element when system is http://www.ama-assn.org/go/cpt include:
|
| Display |
|
| 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. |
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).
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.
<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>
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: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 :.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>
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:
| (with a space before and after each pipe character).code.| '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 |
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::
|
| 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). |
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:
|
| 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 |
There are no implicit value sets defined for CPT at this time.
The following explicit CPT value sets have been defined by HL7 and may be of interest or useful to implementers:
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.
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.