darcymason: Looks good.  Reminder that this requires #139 to be in place for v1.2 (already labeled as such).
diff --git a/doc/whatsnew/v1.2.0.rst b/doc/whatsnew/v1.2.0.rst
index 0def5e071..40f6b0a47 100644
--- a/doc/whatsnew/v1.2.0.rst
+++ b/doc/whatsnew/v1.2.0.rst
@@ -4,6 +4,9 @@ Version 1.2.0
 Changelog
 ---------
 
+* ``DeferredDataElement`` class deprecated and will be removed in v1.3
+  (:issue:`291`)
+
 Fixes
 .....
 
diff --git a/pydicom/dataelem.py b/pydicom/dataelem.py
index 2b0c6dd01..1c4e8e4a9 100644
--- a/pydicom/dataelem.py
+++ b/pydicom/dataelem.py
@@ -13,6 +13,7 @@ A DataElement has a tag,
 #
 from __future__ import absolute_import
 from collections import namedtuple
+import warnings
 
 from pydicom import config  # don't import datetime_conversion directly
 from pydicom import compat
@@ -400,6 +401,12 @@ class DeferredDataElement(DataElement):
         data_element_tell -- file position at start of data element,
            (not the start of the value part, but start of whole element)
         """
+        warnings.warn(
+            "DeferredDataElement is deprecated and will be removed in "
+            "pydicom v1.3",
+            DeprecationWarning
+        )
+
         if not isinstance(tag, BaseTag):
             tag = Tag(tag)
         self.tag = tag

DeferredDataElement deprecation
I've been looking through the code in `dataelem.py` and noticed that `DeferredDataElement` seems to be broken. The `value` getter calls `self.read_value()` which doesn't exist, as far as I can tell. The class doesn't seem to be used anywhere, doesn't have test coverage and hasn't changed since you moved to github, so I was wondering if it's still supported or if it should be removed?
diff --git a/pydicom/tests/test_dataelem.py b/pydicom/tests/test_dataelem.py
index ce233a548..f39ca068d 100644
--- a/pydicom/tests/test_dataelem.py
+++ b/pydicom/tests/test_dataelem.py
@@ -13,9 +13,15 @@ import unittest
 import pytest
 
 from pydicom.charset import default_encoding
-from pydicom.dataelem import (DataElement, RawDataElement,
-                              DataElement_from_raw, isStringOrStringList)
+from pydicom.dataelem import (
+    DataElement,
+    RawDataElement,
+    DataElement_from_raw,
+    isStringOrStringList,
+    DeferredDataElement
+)
 from pydicom.dataset import Dataset
+from pydicom.filebase import DicomBytesIO
 from pydicom.tag import Tag
 from pydicom.uid import UID
 from pydicom.valuerep import DSfloat
@@ -375,5 +381,10 @@ class RawDataElementTests(unittest.TestCase):
             DataElement_from_raw(raw, default_encoding)
 
 
-if __name__ == "__main__":
-    unittest.main()
+def test_deferred_data_element_deprecated():
+    """Test the deprecation warning is working"""
+    fp = DicomBytesIO()
+    fp.is_little_endian = True
+    fp.is_implicit_VR = True
+    with pytest.deprecated_call():
+        elem = DeferredDataElement(0x00000000, 'UL', fp, 0, 0, 4)

pip install -e .
parse_log_pytest
requirements.txt
numpy>=1.16.0 pytest pytest-cov
apt-get update apt-get install -y gcc
3.6
requirements/base.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
attrs==22.2.0
certifi==2021.5.30
coverage==6.2
importlib-metadata==4.8.3
iniconfig==1.1.1
numpy==1.19.5
packaging==21.3
pluggy==1.0.0
py==1.11.0
-e git+https://github.com/pydicom/pydicom.git@de87f4694ddac7bdb8e20effd82b22eee0d104c0#egg=pydicom
pyparsing==3.1.4
pytest==7.0.1
pytest-cov==4.0.0
tomli==1.2.3
typing_extensions==4.1.1
zipp==3.6.0

name: pydicom
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2021.5.30=py36h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.3=he6710b0_2
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - pip=21.2.2=py36h06a4308_0
  - python=3.6.13=h12debd9_1
  - readline=8.2=h5eee18b_0
  - setuptools=58.0.4=py36h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.37.1=pyhd3eb1b0_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - attrs==22.2.0
      - coverage==6.2
      - importlib-metadata==4.8.3
      - iniconfig==1.1.1
      - numpy==1.19.5
      - packaging==21.3
      - pluggy==1.0.0
      - py==1.11.0
      - pyparsing==3.1.4
      - pytest==7.0.1
      - pytest-cov==4.0.0
      - tomli==1.2.3
      - typing-extensions==4.1.1
      - zipp==3.6.0
prefix: /opt/conda/envs/pydicom

pydicom/tests/test_dataelem.py::test_deferred_data_element_deprecated
pydicom/tests/test_dataelem.py::test_is_string_like pydicom/tests/test_dataelem.py::DataElementTests::testBackslash pydicom/tests/test_dataelem.py::DataElementTests::testDSFloatConversion pydicom/tests/test_dataelem.py::DataElementTests::testEqualityInheritance pydicom/tests/test_dataelem.py::DataElementTests::testEqualityNotElement pydicom/tests/test_dataelem.py::DataElementTests::testEqualityPrivateElement pydicom/tests/test_dataelem.py::DataElementTests::testEqualitySequenceElement pydicom/tests/test_dataelem.py::DataElementTests::testEqualityStandardElement pydicom/tests/test_dataelem.py::DataElementTests::testHash pydicom/tests/test_dataelem.py::DataElementTests::testKeyword pydicom/tests/test_dataelem.py::DataElementTests::testRetired pydicom/tests/test_dataelem.py::DataElementTests::testUID pydicom/tests/test_dataelem.py::DataElementTests::testVM1 pydicom/tests/test_dataelem.py::DataElementTests::testVM2 pydicom/tests/test_dataelem.py::DataElementTests::test_description_group_length pydicom/tests/test_dataelem.py::DataElementTests::test_description_unknown pydicom/tests/test_dataelem.py::DataElementTests::test_description_unknown_private pydicom/tests/test_dataelem.py::DataElementTests::test_equality_class_members pydicom/tests/test_dataelem.py::DataElementTests::test_getitem_raises pydicom/tests/test_dataelem.py::DataElementTests::test_inequality_sequence pydicom/tests/test_dataelem.py::DataElementTests::test_inequality_standard pydicom/tests/test_dataelem.py::DataElementTests::test_repeater_str pydicom/tests/test_dataelem.py::DataElementTests::test_repr_seq pydicom/tests/test_dataelem.py::DataElementTests::test_str_no_vr pydicom/tests/test_dataelem.py::RawDataElementTests::testKeyError pydicom/tests/test_dataelem.py::RawDataElementTests::testTagWithoutEncodingPython3 pydicom/tests/test_dataelem.py::RawDataElementTests::testValidTag pydicom/tests/test_dataelem.py::RawDataElementTests::test_unknown_vr
pydicom/dataelem.py doc/whatsnew/v1.2.0.rst
pydicom/dataelem.py doc/whatsnew/v1.2.0.rst