{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE DeriveDataTypeable #-}
module Text.HTML5.MetaData.Schema.DiagnosticProcedure 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.MedicalProcedure
import {-# SOURCE #-} qualified Text.HTML5.MetaData.Schema.DiagnosticProcedure
import {-# SOURCE #-} qualified Text.HTML5.MetaData.Schema.MedicalTest

-- | A medical procedure intended primarily for diagnostic, as opposed to therapeutic, purposes.
--
--   [@id@] DiagnosticProcedure
--
--   [@label@] Diagnostic Procedure
--
--   [@comment@] A medical procedure intended primarily for diagnostic, as opposed to therapeutic, purposes.
--
--   [@ancestors@] @'Thing','MedicalEntity','MedicalProcedure','DiagnosticProcedure','Thing','MedicalEntity','MedicalTest'@
--
--   [@subtypes@]
--
--   [@supertypes@] @'MedicalProcedure','MedicalTest'@
--
--   [@url@] <http://schema.org/DiagnosticProcedure>
data DiagnosticProcedure = DiagnosticProcedure { followup :: Followup
                                               , howPerformed :: HowPerformed
                                               , preparation :: Preparation
                                               , procedureType :: ProcedureType
                                               , code :: Code
                                               , guideline :: Guideline
                                               , medicineSystem :: MedicineSystem
                                               , recognizingAuthority :: RecognizingAuthority
                                               , relevantSpecialty :: RelevantSpecialty
                                               , study :: Study
                                               , affectedBy :: AffectedBy
                                               , normalRange :: NormalRange
                                               , signDetected :: SignDetected
                                               , usedToDiagnose :: UsedToDiagnose
                                               , usesDevice :: UsesDevice
                                               , 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 DiagnosticProcedure where
  _label         = const "Diagnostic Procedure"
  _comment_plain = const "A medical procedure intended primarily for diagnostic, as opposed to therapeutic, purposes."
  _comment       = const "A medical procedure intended primarily for diagnostic, as opposed to therapeutic, purposes."
  _url           = const "http://schema.org/DiagnosticProcedure"
  _ancestors     = const [typeOf (undefined :: Text.HTML5.MetaData.Schema.Thing.Thing)
                         ,typeOf (undefined :: Text.HTML5.MetaData.Schema.MedicalEntity.MedicalEntity)
                         ,typeOf (undefined :: Text.HTML5.MetaData.Schema.MedicalProcedure.MedicalProcedure)
                         ,typeOf (undefined :: Text.HTML5.MetaData.Schema.DiagnosticProcedure.DiagnosticProcedure)
                         ,typeOf (undefined :: Text.HTML5.MetaData.Schema.Thing.Thing)
                         ,typeOf (undefined :: Text.HTML5.MetaData.Schema.MedicalEntity.MedicalEntity)
                         ,typeOf (undefined :: Text.HTML5.MetaData.Schema.MedicalTest.MedicalTest)]
  _subtypes      = const []
  _supertypes    = const [typeOf (undefined :: Text.HTML5.MetaData.Schema.MedicalProcedure.MedicalProcedure)
                         ,typeOf (undefined :: Text.HTML5.MetaData.Schema.MedicalTest.MedicalTest)]