{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE DeriveDataTypeable #-}
module Text.HTML5.MetaData.Schema.MedicalTest where

--  Valid: 2016-03-21 (Schema.rdfs.org)

import Text.HTML5.MetaData.Class
import Text.HTML5.MetaData.Type
import Data.Text
import Data.Typeable
import {-# SOURCE #-} qualified Text.HTML5.MetaData.Schema.Thing
import {-# SOURCE #-} qualified Text.HTML5.MetaData.Schema.MedicalEntity
import {-# SOURCE #-} qualified Text.HTML5.MetaData.Schema.BloodTest
import {-# SOURCE #-} qualified Text.HTML5.MetaData.Schema.DiagnosticProcedure
import {-# SOURCE #-} qualified Text.HTML5.MetaData.Schema.ImagingTest
import {-# SOURCE #-} qualified Text.HTML5.MetaData.Schema.MedicalTestPanel
import {-# SOURCE #-} qualified Text.HTML5.MetaData.Schema.PathologyTest

-- | Any medical test, typically performed for diagnostic purposes.
--
--   [@id@] MedicalTest
--
--   [@label@] Medical Test
--
--   [@comment@] Any medical test, typically performed for diagnostic purposes.
--
--   [@ancestors@] @'Thing','MedicalEntity'@
--
--   [@subtypes@] @'BloodTest','DiagnosticProcedure','ImagingTest','MedicalTestPanel','PathologyTest'@
--
--   [@supertypes@] @'MedicalEntity'@
--
--   [@url@] <http://schema.org/MedicalTest>
data MedicalTest = MedicalTest { affectedBy :: AffectedBy
                               , normalRange :: NormalRange
                               , signDetected :: SignDetected
                               , usedToDiagnose :: UsedToDiagnose
                               , usesDevice :: UsesDevice
                               , code :: Code
                               , guideline :: Guideline
                               , medicineSystem :: MedicineSystem
                               , recognizingAuthority :: RecognizingAuthority
                               , relevantSpecialty :: RelevantSpecialty
                               , study :: Study
                               , additionalType :: AdditionalType
                               , alternateName :: AlternateName
                               , description :: Description
                               , image :: Image
                               , mainEntityOfPage :: MainEntityOfPage
                               , name :: Name
                               , potentialAction :: PotentialAction
                               , sameAs :: SameAs
                               , url :: Url
                               }
                   deriving (Show, Read, Eq, Typeable)

instance MetaData MedicalTest where
  _label         = const "Medical Test"
  _comment_plain = const "Any medical test, typically performed for diagnostic purposes."
  _comment       = const "Any medical test, typically performed for diagnostic purposes."
  _url           = const "http://schema.org/MedicalTest"
  _ancestors     = const [typeOf (undefined :: Text.HTML5.MetaData.Schema.Thing.Thing)
                         ,typeOf (undefined :: Text.HTML5.MetaData.Schema.MedicalEntity.MedicalEntity)]
  _subtypes      = const [typeOf (undefined :: Text.HTML5.MetaData.Schema.BloodTest.BloodTest)
                         ,typeOf (undefined :: Text.HTML5.MetaData.Schema.DiagnosticProcedure.DiagnosticProcedure)
                         ,typeOf (undefined :: Text.HTML5.MetaData.Schema.ImagingTest.ImagingTest)
                         ,typeOf (undefined :: Text.HTML5.MetaData.Schema.MedicalTestPanel.MedicalTestPanel)
                         ,typeOf (undefined :: Text.HTML5.MetaData.Schema.PathologyTest.PathologyTest)]
  _supertypes    = const [typeOf (undefined :: Text.HTML5.MetaData.Schema.MedicalEntity.MedicalEntity)]