- 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