diff --git a/mu_map/file/dicom.py b/mu_map/file/dicom.py
index fae5fae063306623d13a16cd5406d0fd0b054603..02929071770c50b97eb776d2d469a85cfa4103c4 100644
--- a/mu_map/file/dicom.py
+++ b/mu_map/file/dicom.py
@@ -251,7 +251,9 @@ def update_dcm(dcm: DICOM, image: np.ndarray) -> DICOM:
     DOICOM
         the updated DICOM file
     """
-    image, scale = scale_image(image)
+    if DCM_TAG_PIXEL_SCALE_FACTOR in dcm:
+        image, scale = scale_image(image)
+        dcm[DCM_TAG_PIXEL_SCALE_FACTOR].value = scale
 
     dcm.NumberOfFrames = image.shape[0]
     dcm.NumberOfSlices = image.shape[0]
@@ -262,7 +264,6 @@ def update_dcm(dcm: DICOM, image: np.ndarray) -> DICOM:
     dcm.WindowWidth = image.max()
     dcm.WindowCenter = image.max() / 2
     dcm.LargestImagePixelValue = image.max()
-    dcm[DCM_TAG_PIXEL_SCALE_FACTOR].value = scale
     return dcm
 
 
@@ -288,29 +289,6 @@ def change_uid(dcm: DICOM) -> DICOM:
     return dcm
 
 
-def is_dicom(filename: str) -> bool:
-    """
-    Check if a file is a DICOM file or not.
-
-    This id done by trying to load it with `pydicom`.
-
-    Parameters
-    ----------
-    filename: str
-        the file to be checked
-
-    Returns
-    -------
-    bool
-        if it is a DICOM file or not
-    """
-    try:
-        pydicom.dcmread(filename, stop_before_pixels=True)
-        return True
-    except:
-        return False
-
-
 if __name__ == "__main__":
     import argparse
 
diff --git a/mu_map/file/util.py b/mu_map/file/util.py
index 724c954304ec8551aa8388e3f26c784264e10d95..0243a1b54182af835fd22e4bfcb4ccabbc911087 100644
--- a/mu_map/file/util.py
+++ b/mu_map/file/util.py
@@ -2,9 +2,10 @@
 Utility methods for dealing with different file types.
 """
 import numpy as np
+from pydicom.misc import is_dicom
 
 from mu_map.file.convert import dicom_to_interfile
-from mu_map.file.dicom import is_dicom, load_dcm, load_dcm_img
+from mu_map.file.dicom import load_dcm, load_dcm_img
 from mu_map.file.interfile import load_interfile, load_interfile_img, Interfile