- From: Holger Stenzhorn <holger.stenzhorn@deri.org>
- Date: Wed, 25 Feb 2009 00:50:52 -0300
- To: helen.chen@agfa.com
- CC: eric@w3.org, public-semweb-lifesci@w3.org
Helen,
Have you tried installing the "Microsoft Visual C++ 2008 Redistributable
Package (x86)" on your computer, as I mentioned to you in an earlier
mail? (Thus we are not using the exact same environment... :-)) Well,
that should make the SWtransformer.exe that I compiled with Visual
Studio 2008 run on your machine as well.
Also it is not quite the case that I have the same compilation problems
for Cygwin as I do. It is only true that I also cannot compile the
latest SVN version - versions before worked (if I remember right). When
you add the boost-include (included in Cygwin and as shown in the log
[1] I sent you earlier) then the whole missing boost errors disappear.
But still, with the latest SVN checkout I get the error in [1]
Cheers,
Holger
[1]
bash-3.2$ PWD=. INCLUDES="-Iwin
-I/cygdrive/c/cygwin/usr/include/boost-1_33_1" make test
g++ -DYYTEXT_POINTER=1 -g -O0 -W -Wall -Wextra -Wnon-virtual-dtor -ansi
-std=c++98 -Iwin -I/cygdrive/c/cygwin/usr/include/boost-1_33_1 -I.
-I/usr/include/libxml2 -I./SPARQLfedParser -I./TurtleSParser
-pipe -c -o RdfDB.o RdfDB.cpp
In file included from RdfDB.hpp:9,
from RdfDB.cpp:5:
ResultSet.hpp:362: error: base `w3c_sw::ResultSet' with only non-default
constructor in class without a constructor
make: *** [RdfDB.o] Error 1
helen.chen@agfa.com schrieb:
>
> Eric
>
> Thanks for continuing working on SWtranformer program. It is indeed
> an important piece of work.
>
> We have been trying to compile the program without much success.
>
> My colleague Jos De Roo is using Linux and your r398 compiles and
> works on his machine, but not the latest version.
> Holger and I use cygwin, and we can not compile it at all, see some of
> the compile log in the attached file.
> Holger also made a window exe file but I can not run on my computer,
> although we are using the same Window XP system, may due to missing
> some vc++ library.
>
> Will you please take a quick look at the log and see if you can give
> us some advises?
>
> Thanks for your help.
>
>
> Helen
>
>
>
>
>
>
>
> *Eric Prud'hommeaux <eric@w3.org>*
> Sent by: public-semweb-lifesci-request@w3.org
>
> 02/21/2009 10:27 AM
>
>
> To
> public-semweb-lifesci@w3.org
> cc
>
> Subject
> [COI] Re: COI protocol #8 demo progress
>
>
>
>
>
>
>
>
>
>
> * Eric Prud'hommeaux <eric@w3.org> [2008-10-11 12:11-0400]
> > I've created an sdtm query — sdtm.rq
> > to query data mapped from hl7 — hl7-sdtm.rq
> > which is mapped from the db — db-hl7.rq
> >
> > I poked around to look for things like the relationship between a
> > patient and a medication, but am not super confident that I've aligned
> > with existing structures (say, in XML).
> >
> > You can try this at home by downloading an executable for your
> > operating system from http://www.w3.org/2008/04/SPARQLfed/ and running
> > cat sdtm.rq | \
> > SWtransformer -q - hl7-sdtm.rq | \
> > SWtransformer -q - db-hl7.rq -s http://hospital.example/DB/ | \
> > mysql -u root DiabeticPatientsDataSet --table
> > where the db comes from
> http://www.w3.org/2008/04/DiabeticPatientsDataSet/
>
> The latest from the const-happy branch (390) pushes filters down to SQL
> sdtm: FILTER (?code = 6809 || ?code = 6810)
> becomes rim: FILTER ( ?code = 6809 || ?code = 6810 )
> becomes sql: WHERE (indicCode_gen0.ingredient = 6809 OR
> indicCode_gen0.ingredient = 6810)
>
> This should build with [[
> svn co
> https://swobjects.svn.sourceforge.net/svnroot/swobjects/branches/const-happy
> const-happy
> cd const-happy
> make bin/SWtransformer
> ]]
>
> and then you can test it à la:
> [[
> eric@mouni:/tmp/const-happy$ bin/SWtransformer -q
> tests/healthCare/in-list/sdtm.rq tests/healthCare/in-list/hl7-sdtm.rq
> | bin/SWtransformer -q - tests/healthCare/in-list/db-hl7.rq -s
> http://hospital.example/DB/ | mysql -u root DiabeticPatientsDataSet
> patient dob sex takes
> indicDate
> 1517441 1964-09-01 00:00:00 Female
> Glucophage TABS 2007-07-23 00:00:00
> 1517441 1964-09-01 00:00:00 Female
> Glucophage TABS 2007-07-23 00:00:00
> 1517000 1958-01-01 00:00:00 Male
> Metformin HCl 500 MG Tablet 2007-06-29 00:00:00
> 1517000 1958-01-01 00:00:00 Male
> Metformin HCl 500 MG Tablet 2007-06-29 00:00:00
> 1517403 1981-05-11 00:00:00 Male
> Metformin HCl 500 MG Tablet 2008-01-03 00:00:00
> 1505583 1950-02-25 00:00:00 Female
> Metformin HCl 500 MG Tablet 2008-01-14
> 00:00:00
> 1234561 1983-01-02 00:00:00 Male
> GlipiZIDE-Metformin HCl 2.5-250 MG Tablet
> 2007-09-28 00:00:00
> 1234561 1983-01-02 00:00:00 Male
> GlipiZIDE-Metformin HCl 2.5-250 MG Tablet
> 2007-09-28 00:00:00
> 1234562 1963-12-27 00:00:00 Female
> GlipiZIDE-Metformin HCl 2.5-250 MG Tablet
> 2007-09-28 00:00:00
> 1234562 1963-12-27 00:00:00 Female
> GlipiZIDE-Metformin HCl 2.5-250 MG Tablet
> 2008-07-28 00:00:00
> 1234563 1983-02-25 00:00:00 Male
> GlipiZIDE-Metformin HCl 2.5-250 MG Tablet
> 2007-07-28 00:00:00
> 1517441 1964-09-01 00:00:00 Female
> Glucophage TABS 2007-07-23 00:00:00
> 1517441 1964-09-01 00:00:00 Female
> Glucophage TABS 2007-07-23 00:00:00
> 1516986 1995-06-13 00:00:00 Male
> Metformin HCl 1000 MG Tablet 2007-12-04 00:00:00
> ]] — (sample run, using healthCare/in-list tests)
>
>
> > * Eric Prud'hommeaux <eric@w3.org> [2008-10-01 05:45-0400]
> > > I've extended these queries to include (contra)indications by
> ingredient:
> > > [[
> > > PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
> > > PREFIX Person: <http://hospital.example/DB/Person#>
> > > PREFIX Sex_DE: <http://hospital.example/DB/Sex_DE#>
> > > PREFIX Item_Medication: <http://hospital.example/DB/Item_Medication#>
> > > PREFIX Medication: <http://hospital.example/DB/Medication#>
> > > PREFIX Medication_DE: <http://hospital.example/DB/Medication_DE#>
> > > PREFIX NDCcodes: <http://hospital.example/DB/NDCcodes#>
> > >
> > > SELECT ?person ?dob ?sex ?takes ?contraItem WHERE {
> > > ?person Person:MiddleName ?middleName ;
> > > Person:DateOfBirth ?dob ;
> > > Person:SexDE ?sexEntry .
> > > ?sexEntry Sex_DE:EntryName ?sex .
> > >
> > > ?indicItem Item_Medication:PatientID ?person ;
> > > Item_Medication:EntryName ?takes .
> > > ?indicMed Medication:ItemID ?indicItem ;
> > > Medication:MedDictDE ?indicDE .
> > > ?indicDE Medication_DE:NDC ?indicNDC .
> > > ?indicCode NDCcodes:NDC ?indicNDC ;
> > > NDCcodes:ingredient 6809 .
> > >
> > > OPTIONAL {
> > > ?contraItem Item_Medication:PatientID ?person .
> > > ?contraMed Medication:ItemID ?contraItem ;
> > > Medication:MedDictDE ?contraDE .
> > > ?contraDE Medication_DE:NDC ?contraNDC .
> > > ?contraCode NDCcodes:NDC ?contraNDC ;
> > > NDCcodes:ingredient 11289
> > > }
> > > FILTER (?dob < "1984-01-01T00:00:00"^^xsd:dateTime &&
> !BOUND(?contraItem))
> > > } LIMIT 30
> > > ]]
> > >
> > > yielding:
> > > [[
> > >
> +---------+---------------------+--------+-------------------------------------------+
> > > | person | dob | sex | takes
> |
> > >
> +---------+---------------------+--------+-------------------------------------------+
> > > | 1517441 | 1964-09-01 00:00:00 | Female | Glucophage TABS
> |
> > > | 1517441 | 1964-09-01 00:00:00 | Female | Glucophage TABS
> |
> > > | 1517000 | 1958-01-01 00:00:00 | Male | Metformin HCl 500 MG
> Tablet |
> > > | 1517000 | 1958-01-01 00:00:00 | Male | Metformin HCl 500 MG
> Tablet |
> > > | 1517403 | 1981-05-11 00:00:00 | Male | Metformin HCl 500 MG
> Tablet |
> > > | 1505583 | 1950-02-25 00:00:00 | Female | Metformin HCl 500 MG
> Tablet |
> > > | 1234561 | 1983-01-02 00:00:00 | Male | GlipiZIDE-Metformin HCl
> 2.5-250 MG Tablet |
> > > | 1234561 | 1983-01-02 00:00:00 | Male | GlipiZIDE-Metformin HCl
> 2.5-250 MG Tablet |
> > > | 1234562 | 1963-12-27 00:00:00 | Female | GlipiZIDE-Metformin HCl
> 2.5-250 MG Tablet |
> > > | 1234562 | 1963-12-27 00:00:00 | Female | GlipiZIDE-Metformin HCl
> 2.5-250 MG Tablet |
> > > | 1517441 | 1964-09-01 00:00:00 | Female | Glucophage TABS
> |
> > > | 1517441 | 1964-09-01 00:00:00 | Female | Glucophage TABS
> |
> > >
> +---------+---------------------+--------+-------------------------------------------+
> > > ]]
> > >
> > >
> > > The birthdate limitation is set for < 1984-01-01 in order to eliminate
> > >
> +---------+---------------------+------+-------------------------------------------+
> > > | person | dob | sex | takes
> |
> > >
> +---------+---------------------+------+-------------------------------------------+
> > > | 1234563 | 1983-02-25 00:00:00 | Male | GlipiZIDE-Metformin HCl
> 2.5-250 MG Tablet |
> > >
> +---------+---------------------+------+-------------------------------------------+
> > >
> > > The dupes appear to come from identical Medication.ItemID for probably
> > > different dates:
> > > [[
> > > mysql> select * from Medication where ItemID=10276300039;
> > >
> +-------------+-------------+--------------------+-------------+------+--------+------------------------+--------------------+------------+----------------+-----------+
> > > | ID | ItemID | FormOfMedicationDE | FreqUnitsDE |
> Dose | Refill | RoutOfAdministrationDE | QuantityToDispense |
> DaysToTake | PrescribedByID | MedDictDE |
> > >
> +-------------+-------------+--------------------+-------------+------+--------+------------------------+--------------------+------------+----------------+-----------+
> > > | 10276300041 | 10276300039 | 0 | 2 |
> 1 | 0 | 15 | 0 | 0
> | 1524566 | 90346 |
> > > | 10307800003 | 10276300039 | 0 | 2 |
> 1 | 0 | 15 | 0 | 0
> | 1524566 | 90346 |
> > >
> +-------------+-------------+--------------------+-------------+------+--------+------------------------+--------------------+------------+----------------+-----------+
> > > ]]
> > > Fixing date ranges in the query will help this, I expect.
> > >
> > >
> > > * Eric Prud'hommeaux <eric@w3.org> [2008-10-01 01:32-0400]
> > > > Given some data that Helen added to db:
> > > > <http://www.w3.org/2008/04/DiabeticPatientsDataSet/MockPerson.csv>
> > > >
> <http://www.w3.org/2008/04/DiabeticPatientsDataSet/MockMedication.csv>
> > > >
> <http://www.w3.org/2008/04/DiabeticPatientsDataSet/MockItem_Medication.csv>
> > > > and the latest version of SWObjects:
> > > > <http://www.w3.org/2008/04/SPARQLfed/>
> > > > I tested the SPARQL-SQL mapping on a sample query
> > > > tests/execute_HealthCare1 tests/query_stem:Person.rq -s
> http://hospital.example/DB/
> > > > <http://www.w3.org/2008/04/SPARQLfed/tests/query_stem:Person.rq>
> > > >
> > > > got an SQL query:
> > > > [[
> > > > SELECT person.id AS person, person.DateOfBirth AS dob,
> sexEntry.EntryName AS sex, medication.id AS medication,
> opt1.contraIndic AS contraIndic
> > > > FROM Person AS person
> > > > INNER JOIN Sex_DE AS sexEntry ON
> sexEntry.id=person.SexDE
> > > > INNER JOIN Item_Medication AS medication ON
> medication.PatientID=person.id AND
> medication.EntryName="GlipiZIDE-Metformin HCl 2.5-250 MG Tablet"
> > > > LEFT OUTER JOIN (
> > > > SELECT contraIndic.PatientID AS person, contraIndic.id AS
> contraIndic
> > > > FROM Item_Medication AS contraIndic
> > > > WHERE contraIndic.EntryName="Warfarin Sodium 5 MG Tablet"
> > > > ) AS opt1 ON opt1.person=person.id
> > > > WHERE (person.DateOfBirth < "1980-01-01 00:00:00" AND
> !(opt1.contraIndic IS NOT NULL))
> > > > LIMIT 10
> > > > ]]
> > > >
> > > > executed it, and got:
> > > >
> +---------+---------------------+--------+-------------+-------------+
> > > > | person | dob | sex | medication |
> contraIndic |
> > > >
> +---------+---------------------+--------+-------------+-------------+
> > > > | 1234562 | 1963-12-27 00:00:00 | Female | 99999999003 |
> NULL |
> > > > | 1234562 | 1963-12-27 00:00:00 | Female | 99999999004 |
> NULL |
> > > >
> +---------+---------------------+--------+-------------+-------------+
> > > >
> > > > I encourage folks to play more. Also, probably time to start
> working on
> > > > the construct rules that allow the SPARQL query to work over HL7
> data.
> > > >
> > > > Holger, could you build a DOS/WIN version of the code and
> distribute it
> > > > or make it available to folks who want to help?
> > > > --
> > > > -eric
> > > >
> > > > office: +1.617.258.5741 32-G528, MIT, Cambridge, MA 02144 USA
> > > > mobile: +1.617.599.3509
> > > >
> > > > (eric@w3.org)
> > > > Feel free to forward this message to any list for any purpose
> other than
> > > > email address distribution.
> > >
> > >
> > >
> > > --
> > > -eric
> > >
> > > office: +1.617.258.5741 32-G528, MIT, Cambridge, MA 02144 USA
> > > mobile: +1.617.599.3509
> > >
> > > (eric@w3.org)
> > > Feel free to forward this message to any list for any purpose
> other than
> > > email address distribution.
> >
> >
> >
> > --
> > -eric
> >
> > office: +1.617.258.5741 32-G528, MIT, Cambridge, MA 02144 USA
> > mobile: +1.617.599.3509
> >
> > (eric@w3.org)
> > Feel free to forward this message to any list for any purpose other than
> > email address distribution.
>
> > PREFIX sdtm: <http://www.sdtm.org/vocabulary#>
> > PREFIX spl:
> <http://www.hl7.org/v3ballot/xml/infrastructure/vocabulary/vocabulary#>
> >
> > SELECT ?patient ?dob ?sex ?takes ?indicDate # ?indicEnd ?contra
> > WHERE {
> > ?patient a sdtm:Patient ;
> > sdtm:middleName ?middleName ;
> > sdtm:dateTimeOfBirth ?dob ;
> > sdtm:sex ?sex .
> >
> > [ sdtm:subject ?patient ;
> > sdtm:standardizedMedicationName ?takes ;
> >
> > # nothing by ingredient in sdtm/caBIG/...
> > spl:activeIngredient [ spl:classCode 6809 ] ;
> > sdtm:startDateTimeOfMedication ?indicDate
> > # ; sdtm:endDateTimeOfMedication ?indicEnd
> > ] .
> > # OPTIONAL {
> > # [ sdtm:subject ?patient ;
> > # sdtm:standardizedMedicationName ?contra ;
> > # spl:activeIngredient [ spl:classCode 11289 ]
> > # sdtm:effectiveTime [
> > # sdtm:startDateTimeOfMedication ?contraDate
> > # # ; sdtm:endDateTimeOfMedication ?contraEnd
> > # ] .
> > # }
> > } LIMIT 30
> > PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
> > PREFIX hl7:
> <http://www.hl7.org/v3ballot/xml/infrastructure/vocabulary/vocabulary#>
> > PREFIX spl:
> <http://www.hl7.org/v3ballot/xml/infrastructure/vocabulary/vocabulary#>
> >
> > PREFIX sdtm: <http://www.sdtm.org/vocabulary#>
> > PREFIX bridg: <>
> > PREFIX caBIG: <>
> > PREFIX CDASH: <>
> > PREFIX MHONG: <>
> > PREFIX dam: <>
> >
> > CONSTRUCT {
> > ?patient
> > a
> sdtm:Patient ;
> > sdtm:middleName
> ?middleName ;
> > sdtm:dateTimeOfBirth ?dob ;
> > sdtm:sex ?sex .
> > [ a sdtm:ConcomitantMedication ;
> > sdtm:subject ?patient ;
> > sdtm:standardizedMedicationName
> ?takes ;
> >
> > # nothing by ingredient in sdtm/caBIG/...
> > spl:activeIngredient [ spl:classCode ?ingred ] ;
> > sdtm:startDateTimeOfMedication ?start
> > # ; sdtm:endDateTimeOfMedication ?end
> > ] .
> > } WHERE {
> > ?patient
> > a
> hl7:Person ;
> > hl7:entityName
> ?middleName ;
> > hl7:livingSubjectBirthTime ?dob ;
> > hl7:administrativeGenderCodePrintName ?sex ;
> > hl7:substanceAdministration [
> > a hl7:SubstanceAdministration ;
> > hl7:consumable [
> > hl7:displayName ?takes ;
> > spl:activeIngredient [
> > spl:classCode ?ingred
> > ]
> > ] ;
> > hl7:effectiveTime [
> > hl7:start ?start
> > # hl7:end ?end
> > ]
> > ] .
> > }
>
> > PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
> > PREFIX Person: <http://hospital.example/DB/Person#>
> > PREFIX Sex_DE: <http://hospital.example/DB/Sex_DE#>
> > PREFIX Item_Medication: <http://hospital.example/DB/Item_Medication#>
> > PREFIX Medication: <http://hospital.example/DB/Medication#>
> > PREFIX Medication_DE: <http://hospital.example/DB/Medication_DE#>
> > PREFIX NDCcodes: <http://hospital.example/DB/NDCcodes#>
> >
> > PREFIX hl7:
> <http://www.hl7.org/v3ballot/xml/infrastructure/vocabulary/vocabulary#>
> > PREFIX spl:
> <http://www.hl7.org/v3ballot/xml/infrastructure/vocabulary/vocabulary#>
> >
> > CONSTRUCT {
> > ?person
> > a
> hl7:Person ;
> > hl7:entityName
> ?middleName ;
> > hl7:livingSubjectBirthTime ?dob ;
> > hl7:administrativeGenderCodePrintName ?sex ;
> > hl7:substanceAdministration [
> > a hl7:SubstanceAdministration ;
> > hl7:consumable [
> > hl7:displayName ?takes ;
> > spl:activeIngredient [
> > spl:classCode ?ingred
> > ]
> > ] ;
> > hl7:effectiveTime [
> > hl7:start ?indicDate
> > # hl7:end (?indicDate + ?indicDuration)
> > ]
> > ] .
> > } WHERE {
> > ?person Person:MiddleName
> ?middleName ;
> > Person:DateOfBirth ?dob ;
> > Person:SexDE
> ?sexEntry .
> >
> > OPTIONAL {
> > ?sexEntry Sex_DE:EntryName ?sex .
> > }
> >
> > OPTIONAL {
> > ?indicItem Item_Medication:PatientID ?person ;
> > Item_Medication:PerformedDTTM ?indicDate ;
> > Item_Medication:EntryName ?takes .
> > ?indicMed Medication:ItemID
> ?indicItem ;
> > Medication:DaysToTake
> ?indicDuration ;
> > Medication:MedDictDE ?indicDE .
> > ?indicDE Medication_DE:NDC
> ?indicNDC .
> > }
> >
> > OPTIONAL {
> > ?indicCode NDCcodes:NDC ?indicNDC ;
> > NDCcodes:ingredient ?ingred .
> > }
> > } LIMIT 30
>
>
>
>
> --
> -eric
>
> office: +1.617.258.5741 32-G528, MIT, Cambridge, MA 02144 USA
> mobile: +1.617.599.3509
>
> (eric@w3.org)
> Feel free to forward this message to any list for any purpose other than
> email address distribution.
>
> There are subtle nuances encoded in font variation and clever layout
> which can only be seen by printing this message on high-clay paper.
Received on Wednesday, 25 February 2009 03:51:31 UTC