# @@TODO rename to gu:genitourinary
# $Id: renal.ttl,v 1.13 2014/09/23 09:11:33 eric Exp $
#
# Renal Genitourinary function and morphology

# ericP at the keyboard

@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix bridg: <http://www.bridgmodel.org/owl#> .

@prefix data: <http://www.w3.org/2013/12/FDA-TA/datatypes#> .
@prefix core: <http://www.w3.org/2013/12/FDA-TA/core#> .
@prefix sys: <http://www.w3.org/2013/12/FDA-TA/systemic#> .

@prefix : <http://www.w3.org/2013/12/FDA-TA/renal#> .

<http://www.w3.org/2013/12/FDA-TA/renal> a owl:Ontology ;
    owl:imports <http://www.w3.org/2013/12/FDA-TA/core> ,
                <http://www.w3.org/2013/12/FDA-TA/systemic> .

:RenalFunctionOutcomeAssessmentValue 
    rdfs:subClassOf core:SingleOutcomeAssessmentValue ;
    owl:oneOf (:CeasedToFunction :Deteriorating :NoChange :ImprovedToNormal) .

# Renal Function Diagnoses
:RenalFunctionOutcomeAssessment rdfs:subClassOf core:FunctionOutcomeAssessment .

# Restriction: { ?x a core:RenalFunctionOutcomeAssessment }:: { ?x core:hasResultValue ?d . ?d a :RenalFunctionOutcomeAssessmentValue }
:RenalFunctionOutcomeAssessment a owl:Class ;
    rdfs:subClassOf 
        core:FunctionOutcomeAssessment ,
        [ a owl:Restriction ;
          owl:onProperty core:hasResultValue ;
          owl:allValuesFrom :RenalFunctionOutcomeAssessmentValue ] .

:Dialysis rdfs:subClassOf core:DiagnosticProcedure ;
    skos:definition "Therapy for the insufficient cleansing of the blood by the kidneys based on dialysis including hemodialysis" .

:RenalBiopsy 
    rdfs:subClassOf 
        core:DiagnosticProcedure ,
        [ owl:onProperty core:isJustifiedBy ; owl:minCardinality 1 ] , # @@ Some diagnostic procedures require justification.
        [ owl:onProperty core:hasLabReport ; owl:cardinality 1 ] ,
        [ owl:onProperty core:performedAtLocalOrCentralLab ; owl:maxCardinality 1 ] .


# Observation types have results that are either bridg:PerformedObservationResult
# or a subclass: bridg:Performed{ClinicalInterpretation,ClinicalResult,ConditionResult,Diagnosis}

# Each class of PerformedObservation subclass identifies a DefinedObservation which is an individual.
:MalaiseObservation 
    rdfs:subClassOf 
        core:SignsAndSymptoms ,
        [ owl:onProperty bridg:PerformedObservation.resultedPerformedObservationResult ; owl:allValuesFrom bridg:PerformedClinicalResult ] ,
        [ owl:onProperty bridg:PerformedObservation.resultedPerformedObservationResult ; owl:cardinality 1 ] ,
        [ owl:onProperty bridg:PerformedActivity.instantiatedDefinedActivity ; owl:hasValue :DefinedMalaiseObservation ] ;
    rdfs:label "malaise" ; skos:definition "@@" .
:DefinedMalaiseObservation a bridg:DefinedObservation ;
    rdfs:label "malaise" .



:CVApainObservation 
    rdfs:subClassOf core:SignsAndSymptoms        ,
	[ owl:onProperty bridg:PerformedObservation.resultedPerformedObservationResult ; owl:allValuesFrom bridg:PerformedClinicalResult ] ,
  	[ owl:onProperty bridg:PerformedObservation.resultedPerformedObservationResult ; owl:cardinality 1 ] ;
    rdfs:label "cvapain"                         ; skos:definition "@@" .

:FlankPainObservation 
    rdfs:subClassOf core:SignsAndSymptoms        ,
	[ owl:onProperty bridg:PerformedObservation.resultedPerformedObservationResult ; owl:allValuesFrom bridg:PerformedClinicalResult ] ,
  	[ owl:onProperty bridg:PerformedObservation.resultedPerformedObservationResult ; owl:cardinality 1 ] ;
    rdfs:label "flankpain"                       ; skos:definition "@@" .

:UrineVolume24hourObservation 
    rdfs:subClassOf 
        core:QuantitativeMeasurement ,
	[ owl:onProperty bridg:PerformedObservation.resultedPerformedObservationResult ; owl:allValuesFrom bridg:PerformedClinicalResult ] ,
  	[ owl:onProperty bridg:PerformedObservation.resultedPerformedObservationResult ; owl:cardinality 1 ] ;
    rdfs:label "urine volue over 24 hrs" ; skos:definition "@@" .

:SerumAlbuminObservation 
    rdfs:subClassOf 
        core:QuantitativeMeasurement             ,
	[ owl:onProperty bridg:PerformedObservation.resultedPerformedObservationResult ; owl:allValuesFrom bridg:PerformedClinicalResult ] ,
  	[ owl:onProperty bridg:PerformedObservation.resultedPerformedObservationResult ; owl:cardinality 1 ] ,
	[ owl:onProperty bridg:PerformedActivity.instantiatedDefinedActivity ; owl:hasValue :DefinedSerumAlbuminLevel ] ;
    rdfs:label "SerAlbumin"          ; skos:definition "@@" .
:DefinedSerumAlbuminLevel a bridg:DefinedObservation ;
    rdfs:label "SerAlbumin" .

:SerumUreaNitrogenObservation 
    rdfs:subClassOf 
        core:QuantitativeMeasurement             ,
	[ owl:onProperty bridg:PerformedObservation.resultedPerformedObservationResult ; owl:allValuesFrom bridg:PerformedClinicalResult ] ,
  	[ owl:onProperty bridg:PerformedObservation.resultedPerformedObservationResult ; owl:cardinality 1 ] ,
	[ owl:onProperty bridg:PerformedActivity.instantiatedDefinedActivity ; owl:hasValue :DefinedSerumUreaNitrogenLevel ] ;
    rdfs:label "SerUreaNitrogen"          ; skos:definition "@@" .
:DefinedSerumUreaNitrogenLevel a bridg:DefinedObservation ;
    rdfs:label "SerUreaNitrogen" .

:SerumCreatinineObservation 
    rdfs:subClassOf 
        core:QuantitativeMeasurement             ,
	[ owl:onProperty bridg:PerformedObservation.resultedPerformedObservationResult ; owl:allValuesFrom bridg:PerformedClinicalResult ] ,
  	[ owl:onProperty bridg:PerformedObservation.resultedPerformedObservationResult ; owl:cardinality 1 ] ,
	[ owl:onProperty bridg:PerformedActivity.instantiatedDefinedActivity ; owl:hasValue :DefinedSerumCreatinineLevel ] ;
    rdfs:label "SCr"          ; skos:definition "@@" .
:DefinedSerumCreatinineLevel a bridg:DefinedObservation ;
    rdfs:label "SCr" .

:CreatinineClearanceObservation 
    rdfs:subClassOf 
        core:QuantitativeMeasurement             ,
	[ owl:onProperty bridg:PerformedObservation.resultedPerformedObservationResult ; owl:allValuesFrom bridg:PerformedClinicalResult ] ,
  	[ owl:onProperty bridg:PerformedObservation.resultedPerformedObservationResult ; owl:cardinality 1 ] ,
	[ owl:onProperty bridg:PerformedActivity.instantiatedDefinedActivity ; owl:hasValue :DefinedCreatinineClearanceLevel ] ;
    rdfs:label "SCr"          ; skos:definition "A measurement of the volume of serum or plasma that would be cleared of creatinine by excretion of urine for a specified unit of time (e.g. one minute)." .
:DefinedCreatinineClearanceLevel a bridg:DefinedObservation ;
    rdfs:label "SCr" .

:GfrFlowRateObservation 
    rdfs:subClassOf 
        core:QuantitativeMeasurement ,
	[ owl:onProperty bridg:PerformedObservation.resultedPerformedObservationResult ; owl:allValuesFrom bridg:PerformedClinicalResult ] ,
  	[ owl:onProperty bridg:PerformedObservation.resultedPerformedObservationResult ; owl:cardinality 1 ] ;
    skos:definition "A kidney function test that measures the fluid volume that is filtered from the kidney glomeruli to the Bowman's capsule per unit of time." .

:GfrMeasuredFlowRateObservation 
    rdfs:subClassOf 
        core:QuantitativeMeasurement ,
	[ owl:onProperty bridg:PerformedActivity.instantiatedDefinedActivity ; owl:hasValue :DefinedGfrMeasuredFlowRateObservation ] ;
    rdfs:label "measured GFR"        ; skos:definition "A calculated estimate of the fluid volume that is filtered from the kidney glomeruli to the Bowman's capsule per unit of time." .
:DefinedGfrMeasuredFlowRateObservation a bridg:DefinedObservation ;
    rdfs:label "measured GFR" .

:basedOnBodySurfaceArea     rdfs:subPropertyOf core:hasObservation ; rdfs:range sys:BodySurfaceAreaObservation .
:basedOnSerumAlbumin        rdfs:subPropertyOf core:hasObservation ; rdfs:range :SerumAlbuminObservation .
:basedOnCreatinineClearance rdfs:subPropertyOf core:hasObservation ; rdfs:range :CreatinineClearanceObservation .
:basedOnSerumUreaNitrogen   rdfs:subPropertyOf core:hasObservation ; rdfs:range :SerumUreaNitrogenObservation .
:basedOnSerumCreatinine     rdfs:subPropertyOf core:hasObservation ; rdfs:range :SerumCreatinineObservation .
:GfrEstimatedFlowRateObservation 
    rdfs:subClassOf 
        core:QuantitativeMeasurement ,
	[ owl:onProperty bridg:PerformedObservation.resultedPerformedObservationResult ; owl:allValuesFrom bridg:PerformedClinicalResult ] ,
	[ owl:onProperty :basedOnBodySurfaceArea     ; owl:cardinality 1 ] ,
	[ owl:onProperty :basedOnSerumAlbumin        ; owl:cardinality 1 ] ,
	[ owl:onProperty :basedOnCreatinineClearance ; owl:cardinality 1 ] ,
	[ owl:onProperty :basedOnSerumUreaNitrogen   ; owl:cardinality 1 ] ,
	[ owl:onProperty :basedOnSerumCreatinine     ; owl:cardinality 1 ] ;
    rdfs:label "estimated GFR"        ; skos:definition "calculated GFR flow rate" .
:DefinedGfrEstimatedFlowRateObservation a bridg:DefinedObservation ;
    rdfs:label "estimated GFR" .

:SuprapubicPainObservation 
    rdfs:subClassOf 
        core:SignsAndSymptoms ,
        [ owl:onProperty bridg:PerformedObservation.resultedPerformedObservationResult ; owl:allValuesFrom bridg:PerformedClinicalResult ] ,
        [ owl:onProperty bridg:PerformedObservation.resultedPerformedObservationResult ; owl:cardinality 1 ] ,
        [ owl:onProperty bridg:PerformedActivity.instantiatedDefinedActivity ; owl:hasValue :DefinedSuprapubicPainObservation ] ;
    rdfs:label "suprapubic pain" ; skos:definition "@@" .
:DefinedSuprapubicPainObservation a bridg:DefinedObservation ;
    rdfs:label "suprapubic pain" .

:ObstructiveUropathyObservation 
    rdfs:subClassOf 
        core:SignsAndSymptoms ,
        [ owl:onProperty bridg:PerformedObservation.resultedPerformedObservationResult ; owl:allValuesFrom bridg:PerformedClinicalResult ] ,
        [ owl:onProperty bridg:PerformedObservation.resultedPerformedObservationResult ; owl:cardinality 1 ] ,
        [ owl:onProperty bridg:PerformedActivity.instantiatedDefinedActivity ; owl:hasValue :DefinedObstructiveUropathyObservation ] ;
    rdfs:label "obstructive uropathy" ; skos:definition "@@" .
:DefinedObstructiveUropathyObservation a bridg:DefinedObservation ;
    rdfs:label "obstructive uropathy" .

:AzotemiaObservation 
    rdfs:subClassOf 
        core:SignsAndSymptoms ,
        [ owl:onProperty bridg:PerformedObservation.resultedPerformedObservationResult ; owl:allValuesFrom bridg:PerformedClinicalResult ] ,
        [ owl:onProperty bridg:PerformedObservation.resultedPerformedObservationResult ; owl:cardinality 1 ] ,
        [ owl:onProperty bridg:PerformedActivity.instantiatedDefinedActivity ; owl:hasValue :DefinedAzotemiaObservation ] ;
    rdfs:label "azotemia" ; skos:definition "@@" .
:DefinedAzotemiaObservation a bridg:DefinedObservation ;
    rdfs:label "azotemia" .

:MaleWithUrinaryRetentionObservation 
    rdfs:subClassOf 
        core:SignsAndSymptoms ,
        [ owl:onProperty bridg:PerformedObservation.resultedPerformedObservationResult ; owl:allValuesFrom bridg:PerformedClinicalResult ] ,
        [ owl:onProperty bridg:PerformedObservation.resultedPerformedObservationResult ; owl:cardinality 1 ] ,
        [ owl:onProperty bridg:PerformedActivity.instantiatedDefinedActivity ; owl:hasValue :DefinedMaleWithUrinaryRetentionObservation ] ;
    rdfs:label "male with urinary retention" ; skos:definition "@@" .
:DefinedMaleWithUrinaryRetentionObservation a bridg:DefinedObservation ;
    rdfs:label "male with urinary retention" .

:UrineResidualVolumeObservation 
    rdfs:subClassOf 
        core:SignsAndSymptoms ,
        [ owl:onProperty bridg:PerformedObservation.resultedPerformedObservationResult ; owl:allValuesFrom bridg:PerformedClinicalResult ] ,
        [ owl:onProperty bridg:PerformedObservation.resultedPerformedObservationResult ; owl:cardinality 1 ] ,
        [ owl:onProperty bridg:PerformedActivity.instantiatedDefinedActivity ; owl:hasValue :DefinedUrineResidualVolumeObservation ] ;
    rdfs:label "urine residual volume" ; skos:definition "@@" .
:DefinedUrineResidualVolumeObservation a bridg:DefinedObservation ;
    rdfs:label "urine residual volume" .

:NeurogenicBladderObservation 
    rdfs:subClassOf 
        core:SignsAndSymptoms ,
        [ owl:onProperty bridg:PerformedObservation.resultedPerformedObservationResult ; owl:allValuesFrom bridg:PerformedClinicalResult ] ,
        [ owl:onProperty bridg:PerformedObservation.resultedPerformedObservationResult ; owl:cardinality 1 ] ,
        [ owl:onProperty bridg:PerformedActivity.instantiatedDefinedActivity ; owl:hasValue :DefinedNeurogenicBladderObservation ] ;
    rdfs:label "neurogenic bladder" ; skos:definition "@@" .
:DefinedNeurogenicBladderObservation a bridg:DefinedObservation ;
    rdfs:label "neurogenic bladder" .

:IndwellingCatheterObservation 
    rdfs:subClassOf 
        core:SignsAndSymptoms ,
        [ owl:onProperty bridg:PerformedObservation.resultedPerformedObservationResult ; owl:allValuesFrom bridg:PerformedClinicalResult ] ,
        [ owl:onProperty bridg:PerformedObservation.resultedPerformedObservationResult ; owl:cardinality 1 ] ,
        [ owl:onProperty bridg:PerformedActivity.instantiatedDefinedActivity ; owl:hasValue :DefinedIndwellingCatheterObservation ] ;
    rdfs:label "indwelling catheter" ; skos:definition "@@" .
:DefinedIndwellingCatheterObservation a bridg:DefinedObservation ;
    rdfs:label "indwelling catheter" .


##### clinical disease assessments:
:FunctionImpairment a core:Assessment ; # general assessment
    skos:definition "Acute or chronic condition, characterized by the inability of the kidneys to adequately filter the blood substances, resulting in uremia and electrolyte imbalances. Acute renal failure is usually associated with oliguria or anuria, hyperkalemia, and pulmonary edema. Chronic renal failure is irreversible and requires hemodialysis." .

:EndStageRenalDisease a core:Assessment ;
    skos:definition "@@missing" .


