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

-- | A process of care used in either a diagnostic, therapeutic, or palliative capacity that relies on invasive (surgical), non-invasive, or percutaneous techniques.
--
--   [@id@] MedicalProcedure
--
--   [@label@] Medical Procedure
--
--   [@comment@] A process of care used in either a diagnostic, therapeutic, or palliative capacity that relies on invasive (surgical), non-invasive, or percutaneous techniques.
--
--   [@ancestors@] @'Thing','MedicalEntity'@
--
--   [@subtypes@] @'DiagnosticProcedure','PalliativeProcedure','TherapeuticProcedure'@
--
--   [@supertypes@] @'MedicalEntity'@
--
--   [@url@] <http://schema.org/MedicalProcedure>
data MedicalProcedure = MedicalProcedure { followup :: Followup
                                         , howPerformed :: HowPerformed
                                         , preparation :: Preparation
                                         , procedureType :: ProcedureType
                                         , 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 MedicalProcedure where
  _label         = const "Medical Procedure"
  _comment_plain = const "A process of care used in either a diagnostic, therapeutic, or palliative capacity that relies on invasive (surgical), non-invasive, or percutaneous techniques."
  _comment       = const "A process of care used in either a diagnostic, therapeutic, or palliative capacity that relies on invasive (surgical), non-invasive, or percutaneous techniques."
  _url           = const "http://schema.org/MedicalProcedure"
  _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.DiagnosticProcedure.DiagnosticProcedure)
                         ,typeOf (undefined :: Text.HTML5.MetaData.Schema.PalliativeProcedure.PalliativeProcedure)
                         ,typeOf (undefined :: Text.HTML5.MetaData.Schema.TherapeuticProcedure.TherapeuticProcedure)]
  _supertypes    = const [typeOf (undefined :: Text.HTML5.MetaData.Schema.MedicalEntity.MedicalEntity)]