Medical Data

This page presents some of the research collegues and myself have been performing into analysing the quality of medical data.

Ontologies

The medical data (ICU and neuro-ICU) and the patient data ontologies are developed by Dr Laura Moss; for details see this page. Other ontologies include:

Queries

Below minimum acceptable value (AR1)
SELECT ?obs ?p ?htime ?min ?value WHERE {
?range a med:AcceptableRange; med:clinicalRangeMin ?min; pd:hasParameter ?p.
?obs  a mo:PhysiologicalObservation; 
ssn:observedProperty ?p;  ssn:observationResultTime ?time; pd:atHumanTime ?htime.
?obs ssn:observationResult/ssn:hasValue/pd:readingValue ?value.
 FILTER (?value < ?min)
}	
Above maximum acceptable value (AR2)
SELECT ?obs ?p ?htime ?max ?value WHERE {
?range a med:AcceptableRange; med:clinicalRangeMax ?max; pd:hasParameter ?p.
?obs a mo:PhysiologicalObservation; 
ssn:observedProperty ?p; ssn:observationResultTime ?time; pd:atHumanTime ?htime.
?obs ssn:observationResult/ssn:hasValue/pd:readingValue ?value.
FILTER (?value > ?max)
}
` Below minimum acceptable when sensor accuracy is taken into account (AR3)
SELECT ?p ?max ?value ?obs WHERE {	
?range a med:AcceptableRange; med:clinicalRangeMin ?min; pd:hasParameter ?p.
?obs a mo:PhysiologicalObservation; ssn:observedProperty ?p; ssn:observationResultTime ?time; 
   pd:atHumanTime ?htime; ssn:observedBy ?sensor.
?obs ssn:observationResult/ssn:hasValue/pd:readingValue ?value.
?sensor ssn:hasMeasurementCapability ?mc. ?mc a ssn:Accuracy; ms:capabilityValue ?accuracy. 
 FILTER (?value >= ?min)
 FILTER ((?value - ?accuracy) < ?min)}
Below minimum acceptable, but when sensor accuracy is taken into account is within acceptable range (AR4)
SELECT ?p ?min ?value ?obs WHERE {	
?range a med:AcceptableRange; med:clinicalRangeMin ?min; pd:hasParameter ?p.
?obs  a mo:PhysiologicalObservation;ssn:observedProperty ?p;
  ssn:observationResultTime ?time; pd:atHumanTime ?htime; ssn:observedBy ?sensor.
?obs ssn:observationResult/ssn:hasValue/pd:readingValue ?value.
?sensor ssn:hasMeasurementCapability ?mc. ?mc a ssn:Accuracy; ms:capabilityValue ?accuracy. 
FILTER (?value  < ?min)
FILTER ((?value + ?accuracy) >= ?min)}
Above maximum acceptable when sensor accuracy is taken into account (AR5)
SELECT ?p ?min ?value ?obs WHERE {	
?range a med:AcceptableRange; med:clinicalRangeMax ?max; pd:hasParameter ?p.
?obs  a mo:PhysiologicalObservation;ssn:observedProperty ?p;
  ssn:observationResultTime ?time; pd:atHumanTime ?htime; ssn:observedBy ?sensor.
?obs ssn:observationResult/ssn:hasValue/pd:readingValue ?value.
?sensor ssn:hasMeasurementCapability ?mc. ?mc a ssn:Accuracy; ms:capabilityValue ?accuracy. 
FILTER (?value <= ?max)
FILTER ((?value + ?accuracy) > ?max)
}
Above maximum acceptable, but when sensor accuracy is taken into account is within acceptable range (AR6)
SELECT ?p ?max ?value ?obs WHERE {	
?range a med:AcceptableRange; med:clinicalRangeMax ?max; pd:hasParameter ?p.
?obs  a mo:PhysiologicalObservation; 	ssn:observedProperty ?p;   
  ssn:observationResultTime ?time; pd:atHumanTime ?htime; ssn:observedBy ?sensor.
?obs ssn:observationResult/ssn:hasValue/pd:readingValue ?value.
  ?sensor ssn:hasMeasurementCapability ?mc. ?mc a ssn:Accuracy; ms:capabilityValue ?accuracy. 
  FILTER (?value > ?max)
FILTER ((?value - ?accuracy) <= ?max)}
Missing data according to configuration (Miss D3)
SELECT ?htime ?p ?time ?nextTime WHERE{
?obs  a mo:PhysiologicalObservation; ssn:observedProperty ?p;  ssn:observationResultTime ?time; pd:atHumanTime ?htime.
LET (?nextTime := ?time + ?frequency).
not exists {?obs2 a mo:PhysiologicalObservation; ssn:observedProperty ?p;  ssn:observationResultTime ?nextTime.}
}
Disorder - Above acceptable value due to Hypertension (Medical Disorder)
SELECT ?obs ?p ?htime ?max ?value WHERE {
?range a med:AcceptableRange; med:clinicalRangeMax ?max; pd:hasParameter ?p.
?obs a mo:PhysiologicalObservation; ssn:observedProperty ?p; ssn:observationResultTime ?time; pd:atHumanTime ?htime.
?obs ssn:observationResult/ssn:hasValue/pd:readingValue ?value.
FILTER (?value > ?max)
med:Hypertension med:requiredSymptoms ?cs.  
?cs med:clinicalFeatures ?cscf. 
?cscf pd:hasParameter ?p; med:clinicalRangeMax ?csrMax; med:clinicalRangeMin ?csrMin.
FILTER ((?value > ?csrMin)&&( ?value < ?csrMax))
}
Disorder - Below acceptable value due to Hypotension (Medical Disorder)
SELECT ?obs ?p ?htime ?min ?value ?c WHERE {
?range a med:AcceptableRange; med:clinicalRangeMin ?min; pd:hasParameter ?p.
?obs a mo:PhysiologicalObservation; ssn:observedProperty ?p; ssn:observationResultTime ?time; pd:atHumanTime ?htime.
?obs ssn:observationResult/ssn:hasValue/pd:readingValue ?value.
FILTER (?value < ?min)
med:Hypotension med:requiredSymptoms ?cs.  
?cs med:clinicalFeatures ?cscf. 
?cscf pd:hasParameter ?p; med:clinicalRangeMax ?csrMax; med:clinicalRangeMin ?csrMin.
FILTER ((?value > ?csrMin)&&( ?value < ?csrMax))
}

Results

The results from experiments with the BrainIT dataset and the general ICU are available as Excel spreadsheets.