Medical Equipment Section¶
Template ID: 2.16.840.1.113883.10.20.22.2.23
Version: 2014-06-09 (R2.1 | R2.0)
Badge: Extended Section
Overview¶
The Medical Equipment Section (V2) defines a patient's implanted and external health and medical devices and equipment. This section lists any pertinent durable medical equipment (DME) used to help maintain the patient's health status.
Medical equipment documented in this section includes: - Implanted Devices: Pacemakers, defibrillators, joint replacements, stents, cochlear implants - External Equipment: Wheelchairs, walkers, canes, crutches, oxygen equipment - Home Medical Devices: CPAP machines, nebulizers, glucose monitors, insulin pumps - Prosthetics and Orthotics: Artificial limbs, braces, orthotic shoes - Assistive Devices: Hearing aids, eyeglasses, communication devices
This information is critical for patient safety, care coordination, and understanding functional status.
Template Details¶
Identifiers¶
- Root:
2.16.840.1.113883.10.20.22.2.23 - Extension:
2014-06-09 - LOINC Code:
46264-8(Medical Equipment)
Conformance Requirements¶
- SHALL contain exactly one [1..1]
templateId(CONF:1098-7944) - SHALL contain exactly one [1..1]
codewith code="46264-8" from LOINC (CONF:1098-15381) - SHALL contain exactly one [1..1]
title(CONF:1098-7946) - SHALL contain exactly one [1..1]
text(narrative block) (CONF:1098-7947) - MAY contain zero or more [0..*]
entrywith Medical Equipment Organizer (CONF:1098-7948) - MAY contain zero or more [0..*]
entrywith Non-Medicinal Supply Activity (CONF:1098-31125)
Cardinality¶
- Section: Optional
- Entries: Optional (0..*)
- Equipment per Entry: One Non-Medicinal Supply Activity or one Organizer
Protocol Requirements¶
The section uses the MedicalEquipmentProtocol from ccdakit.protocols.medical_equipment:
Required Properties¶
@property
def name(self) -> str:
"""Equipment/supply name (e.g., 'Wheelchair', 'Insulin Pump')"""
@property
def status(self) -> str:
"""Status: 'completed', 'active', 'aborted', 'cancelled'"""
Optional Properties¶
@property
def code(self) -> Optional[str]:
"""Equipment/supply code (from SNOMED CT, HCPCS, or CPT)"""
@property
def code_system(self) -> Optional[str]:
"""Code system: 'SNOMED CT', 'HCPCS', 'CPT'"""
@property
def date_supplied(self) -> Optional[date | datetime]:
"""Date/time when equipment was supplied"""
@property
def date_end(self) -> Optional[date | datetime]:
"""Date/time when equipment usage ended or is expected to end"""
@property
def quantity(self) -> Optional[int]:
"""Quantity of equipment/supplies provided"""
@property
def manufacturer(self) -> Optional[str]:
"""Manufacturer name of the equipment"""
@property
def model_number(self) -> Optional[str]:
"""Model number/identifier of the equipment"""
@property
def serial_number(self) -> Optional[str]:
"""Serial number/UDI of the specific equipment instance"""
@property
def instructions(self) -> Optional[str]:
"""Patient instructions for using the equipment"""
Code Example¶
Basic Usage¶
from datetime import date, datetime
from ccdakit import MedicalEquipmentSection, CDAVersion
# Define medical equipment
equipment_list = [
{
"name": "Wheelchair",
"code": "58938008",
"code_system": "SNOMED",
"status": "active",
"date_supplied": date(2024, 1, 15),
"manufacturer": "Mobility Plus",
"model_number": "WC-2024",
},
{
"name": "Home Oxygen Concentrator",
"code": "426294006",
"code_system": "SNOMED",
"status": "active",
"date_supplied": date(2024, 2, 1),
"manufacturer": "Respironics",
"model_number": "EverFlo",
"serial_number": "RF12345678",
"instructions": "Use continuously at 2 L/min",
},
{
"name": "Blood Glucose Monitor",
"code": "43252007",
"code_system": "SNOMED",
"status": "active",
"date_supplied": date(2023, 11, 10),
"manufacturer": "OneTouch",
"model_number": "Ultra 2",
"quantity": 1,
}
]
# Create section
section = MedicalEquipmentSection(
equipment_list=equipment_list,
version=CDAVersion.R2_1
)
# Generate XML
xml_element = section.to_element()
Empty Section (No Equipment)¶
# Create section with no equipment
section = MedicalEquipmentSection(
equipment_list=[],
version=CDAVersion.R2_1
)
# Generates section with narrative: "No medical equipment recorded"
Implanted Devices¶
equipment_list = [
{
"name": "Cardiac Pacemaker",
"code": "14106009",
"code_system": "SNOMED",
"status": "active",
"date_supplied": datetime(2022, 8, 15, 10, 30),
"manufacturer": "Medtronic",
"model_number": "Azure XT DR",
"serial_number": "MP123456789",
},
{
"name": "Left Total Hip Prosthesis",
"code": "304120007",
"code_system": "SNOMED",
"status": "completed",
"date_supplied": datetime(2020, 3, 22, 14, 0),
"manufacturer": "Zimmer Biomet",
"model_number": "Taperloc Complete",
},
{
"name": "Coronary Artery Stent",
"code": "397578001",
"code_system": "SNOMED",
"status": "completed",
"date_supplied": datetime(2023, 5, 10, 11, 45),
"manufacturer": "Abbott",
"model_number": "Xience Skypoint",
}
]
section = MedicalEquipmentSection(equipment_list=equipment_list)
Durable Medical Equipment (DME)¶
dme_list = [
{
"name": "Walker",
"code": "466289007",
"code_system": "SNOMED",
"status": "active",
"date_supplied": date(2024, 1, 20),
"quantity": 1,
},
{
"name": "Hospital Bed",
"code": "229772003",
"code_system": "SNOMED",
"status": "active",
"date_supplied": date(2024, 2, 15),
"manufacturer": "Hill-Rom",
},
{
"name": "Bedside Commode",
"code": "360008001",
"code_system": "SNOMED",
"status": "active",
"date_supplied": date(2024, 2, 15),
"quantity": 1,
}
]
section = MedicalEquipmentSection(equipment_list=dme_list)
Diabetes Equipment¶
diabetes_equipment = [
{
"name": "Insulin Pump",
"code": "63653004",
"code_system": "SNOMED",
"status": "active",
"date_supplied": datetime(2023, 9, 1, 0, 0),
"manufacturer": "Medtronic",
"model_number": "MiniMed 770G",
"serial_number": "MM7701234567",
"instructions": "Check infusion site every 3 days. "
"Monitor for occlusion alarms.",
},
{
"name": "Continuous Glucose Monitor",
"code": "467453001",
"code_system": "SNOMED",
"status": "active",
"date_supplied": date(2023, 9, 1),
"manufacturer": "Dexcom",
"model_number": "G6",
"instructions": "Replace sensor every 10 days",
},
{
"name": "Blood Glucose Test Strips",
"code": "701000122105",
"code_system": "SNOMED",
"status": "active",
"date_supplied": date(2024, 3, 1),
"quantity": 100,
}
]
section = MedicalEquipmentSection(equipment_list=diabetes_equipment)
Equipment with End Date¶
equipment_list = [
{
"name": "Post-surgical Knee Brace",
"code": "42152006",
"code_system": "SNOMED",
"status": "completed",
"date_supplied": date(2023, 10, 15),
"date_end": date(2024, 1, 15), # Discontinued after healing
"manufacturer": "DonJoy",
},
{
"name": "Wound VAC System",
"code": "469824008",
"code_system": "SNOMED",
"status": "completed",
"date_supplied": datetime(2024, 1, 5, 9, 0),
"date_end": datetime(2024, 2, 20, 14, 30),
"manufacturer": "KCI",
"model_number": "V.A.C. Ulta",
}
]
section = MedicalEquipmentSection(equipment_list=equipment_list)
Using Organizer (Grouped Equipment)¶
# Group related equipment together
equipment_list = [
{
"name": "CPAP Machine",
"code": "706172005",
"code_system": "SNOMED",
"status": "active",
"date_supplied": date(2024, 1, 1),
"manufacturer": "ResMed",
"model_number": "AirSense 10",
},
{
"name": "CPAP Mask",
"code": "467138007",
"code_system": "SNOMED",
"status": "active",
"date_supplied": date(2024, 1, 1),
"manufacturer": "ResMed",
}
]
section = MedicalEquipmentSection(
equipment_list=equipment_list,
use_organizer=True,
organizer_start_date=date(2024, 1, 1),
)
With Custom Protocol Implementation¶
from dataclasses import dataclass
from datetime import date, datetime
from typing import Optional
@dataclass
class MedicalDevice:
"""Custom medical equipment implementation."""
name: str
status: str
code: Optional[str] = None
code_system: Optional[str] = None
date_supplied: Optional[date | datetime] = None
date_end: Optional[date | datetime] = None
quantity: Optional[int] = None
manufacturer: Optional[str] = None
model_number: Optional[str] = None
serial_number: Optional[str] = None
instructions: Optional[str] = None
# Create equipment
equipment_list = [
MedicalDevice(
name="Nebulizer",
code="34234003",
code_system="SNOMED",
status="active",
date_supplied=date(2024, 2, 10),
manufacturer="Pari",
model_number="LC Plus",
instructions="Use with albuterol as needed for wheezing",
)
]
section = MedicalEquipmentSection(equipment_list=equipment_list)
Official Reference¶
For complete specification details, refer to:
- C-CDA Online: Medical Equipment Section (V2)
- Local Reference: references/C-CDA_2.1/templates/2.16.840.1.113883.10.20.22.2.23.html
Best Practices¶
1. Status Management¶
# Active: Currently in use
{"status": "active"}
# Completed: Previously used, now discontinued
{"status": "completed", "date_end": date(2024, 2, 15)}
# Aborted: Equipment not successfully delivered
{"status": "aborted"}
# Cancelled: Order cancelled before delivery
{"status": "cancelled"}
2. Implanted Devices¶
# Always include manufacturer and model for implanted devices
{
"name": "Cardiac Pacemaker",
"manufacturer": "Medtronic",
"model_number": "Azure XT DR",
"serial_number": "MP123456789", # Critical for recalls
}
3. Unique Device Identification (UDI)¶
# Use UDI format for serial numbers when available
{
"serial_number": "(01)00643169001763(11)141231(17)150707(10)A213B1(21)1234"
}
4. Equipment Categories¶
equipment_categories = {
"Implanted": ["Pacemaker", "Defibrillator", "Joint Replacement", "Stent"],
"Respiratory": ["Oxygen", "CPAP", "BiPAP", "Nebulizer", "Ventilator"],
"Mobility": ["Wheelchair", "Walker", "Cane", "Crutches", "Scooter"],
"Diabetes": ["Insulin Pump", "CGM", "Glucose Monitor", "Test Strips"],
"Home Medical": ["Hospital Bed", "Hoyer Lift", "Suction Machine"],
"Prosthetics": ["Artificial Limb", "Eye Prosthesis"],
"Orthotics": ["Brace", "Orthotic Shoes", "Splint"],
"Assistive": ["Hearing Aid", "Glasses", "Communication Device"],
}
5. Date Precision¶
# Use datetime for precise implantation times
{
"date_supplied": datetime(2024, 3, 15, 14, 30), # Surgery time
}
# Use date for general equipment
{
"date_supplied": date(2024, 3, 15),
}
6. Manufacturer Information¶
# Include for tracking, recalls, and troubleshooting
{
"manufacturer": "Medtronic",
"model_number": "MiniMed 770G",
"serial_number": "MM7701234567",
}
7. Patient Instructions¶
# Include usage instructions
{
"name": "CPAP Machine",
"instructions": "Use nightly with pressure setting 12 cmH2O. "
"Clean mask daily. Replace filter monthly.",
}
8. Narrative Generation¶
The section automatically generates an HTML table with: - Equipment name with unique ID reference - Code and code system - Date supplied - Date end (if applicable) - Quantity - Status - Manufacturer - Model and serial number
9. Code Systems¶
# SNOMED CT for clinical devices
{"code_system": "SNOMED"}
# HCPCS for DME billing codes
{"code_system": "HCPCS"}
# CPT for procedure-related equipment
{"code_system": "CPT"}
10. Safety Critical Equipment¶
# Flag critical implanted devices
critical_equipment = [
{
"name": "Implantable Cardioverter Defibrillator (ICD)",
"code": "360129009",
"code_system": "SNOMED",
"status": "active",
"manufacturer": "Boston Scientific",
"model_number": "INOGEN X4",
"serial_number": "ICD1234567",
# Critical for MRI safety, emergency care
}
]
Common Equipment Codes (SNOMED CT)¶
Implanted Devices¶
14106009- Cardiac pacemaker360129009- Implantable cardioverter-defibrillator304120007- Total hip prosthesis304121006- Total knee prosthesis397578001- Coronary artery stent257327003- Cochlear implant
Respiratory Equipment¶
426294006- Oxygen concentrator706172005- CPAP machine706174006- BiPAP machine34234003- Nebulizer706223000- Home ventilator
Mobility Aids¶
58938008- Wheelchair466289007- Walker63653004- Cane183135000- Crutches469512007- Motorized wheelchair
Diabetes Equipment¶
63653004- Insulin pump467453001- Continuous glucose monitor43252007- Blood glucose monitor
Home Medical Equipment¶
229772003- Hospital bed360008001- Bedside commode469824008- Wound VAC system257265003- Suction machine
Common Pitfalls¶
- Missing Critical Info: Always include manufacturer/model for implanted devices
- No Serial Numbers: UDI/serial numbers critical for recalls and MRI safety
- Vague Descriptions: Use specific equipment names, not "device" or "machine"
- Missing End Dates: Document when equipment discontinued
- No Instructions: Include patient-specific usage instructions
- Wrong Status: Update status when equipment discontinued or replaced
- Missing Dates: Always include when equipment was supplied
- Incomplete DME: Document all assistive devices patient uses
- No Quantity: Specify quantity for consumable supplies
- Missing Code System: Always specify which code system used
Safety Considerations¶
MRI Safety¶
Document equipment that affects MRI compatibility: - Pacemakers and ICDs - Cochlear implants - Metallic implants - Programmable shunts
Recalls and Alerts¶
Maintain accurate equipment information for: - FDA recalls - Safety alerts - Software updates - Battery replacements
Home Safety¶
Document equipment requiring: - Electrical power (backup plans) - Regular maintenance - Professional servicing - Oxygen safety precautions
Integration with Other Sections¶
Procedures Section¶
Link equipment to implantation procedures
Problem List¶
Document conditions requiring equipment
Functional Status¶
Equipment affects functional assessments
Plan of Treatment¶
Include equipment orders and follow-up