module Data.DICOM.VR
( VR(..)
, isStringVR
) where
import Prelude hiding (LT)
import Safe
import Data.Binary
data VR
= AE
| AS
| AT
| CS
| DA
| DS
| DT
| FL
| FD
| IS
| LO
| LT
| OB
| OF
| OW
| PN
| SH
| SL
| SQ
| SS
| ST
| TM
| UI
| UL
| UN
| US
| UT deriving (Show, Read, Eq, Ord)
instance Binary VR where
get = do
c1 <- get
c2 <- get
let code = [c1, c2]
case readMay code of
Just res -> return res
Nothing -> fail $ "Unknown VR: " ++ code
put vr = do
let [c1, c2] = show vr
put c1
put c2
isStringVR :: VR -> Bool
isStringVR OB = False
isStringVR OW = False
isStringVR _ = True