[TMO] patient record normalization

We have choices about how to model units. per the first TMO RDF
patient data, we can keep the units as datatypes:

:X trans:bloodPressure
  [ trans:systolic "120"^^u:mmHg ;
    trans:diastolic "80"^^u:mmHg ] .

per CPR, as a pair of value and datatype:

… [ trans:systolic [ muo:measuredIn trans1:mmHg ; muo:numericalValue "120" ] ;
    trans:diastolic [ muo:measuredIn trans1:mmHg ; muo:numericalValue "80" ] ] .

Another, potentially more attractive option, is to model units in the
predicate:

:X trans:bloodPressure
  [ trans:systolicMmHg "120" ;
    trans:diastolicMmHg "80" ] .

This greatly simplifies our life as we are otherwise likely to have a
variety of e.g. BP data in the database: 120/80 mmHg, 12/8 DmHg, 16000/10667 Pa,
16/11 MPa, 13 (PAM)

which would lead to rediculous queries when we want to use the data:

SELET ?sysM ?diaM {
          ?x trans:bloodPressure [ trans:systolic ?sys ; trans:diastolic ]
          FILTER (datatype(?sys) = u:mmHg) && datatype(?dia) = u:mmHg) }
  UNION SELECT (?sys*10 as ?sysM) (?dia*10 as ?diaM) {
          ?x trans:bloodPressure [ trans:systolic ?sys ; trans:diastolic ]
          FILTER (datatype(?sys) = u:dmHg) && datatype(?dia) = u:dmHg) }
  UNION SELECT (?sys*133 as ?sysM) (?dia*133 as ?diaM) {
          ?x trans:bloodPressure [ trans:systolic ?sys ; trans:diastolic ]
          FILTER (datatype(?sys) = u:MPa) && datatype(?dia) = u:MPA) } … }



-- 
-ericP

Received on Thursday, 9 September 2010 17:06:21 UTC