- From: <rik@nprogram.co.uk>
- Date: Sat, 29 Jan 2022 11:59:42 +0000
- To: 'Daniel Teixeira' <ddtxra@gmail.com>
- CC: 'Vladimir Mironov' <vladimir.n.mironov@gmail.com>, 'w3c semweb hcls' <public-semweb-lifesci@w3.org>
- Message-ID: <00b901d81507$b86104f0$29230ed0$@nprogram.co.uk>
Hi Daniel, you can definitely have different constraints on different resource types in a FHIR query. That STU3 link is from 2016 and you should look at the current R4 version http://hl7.org/fhir/search.html. But the "_has" parameter that you need (http://hl7.org/fhir/search.html#has) was there in STU3. Certainly it is possible to join Patient resource queries (e.g. death and age), with Observations for body weight and lab tests. "_has" does reverse chaining - querying into a linked resource, which points "inwards" to your focus resource, which is the way Observations point back to Patients. And, now adding encounters in the mix, you should also be able to do an ordinary forward chain from the Observation to an Encounter to check the type (using search parameter Observation.encounter, see http://hl7.org/fhir/observation.html#search). That's getting complex, but I see no reason this can't be all be done with one normal FHIR query. Try it on a HAPI server (http://hapi.fhir.org/). You will have to load up some custom data I expect first. If you cannot get the syntax correct asking on the implementers forum of chat.fhir.org will get you specific advice. Rik From: Daniel Teixeira <ddtxra@gmail.com> Sent: 28 January 2022 23:39 To: rik@nprogram.co.uk Cc: Vladimir Mironov <vladimir.n.mironov@gmail.com>; w3c semweb hcls <public-semweb-lifesci@w3.org> Subject: Re: FHIR server implementation having a RDF triplestore Dear Rik, Thank you for your message. I don't believe the FHIR query API (https://www.hl7.org/fhir/STU3/search.html ?) supports what I need, because it is too limited for a particular resources. Am I correct? If I need to mix constraints between resources to perfom the query, like (a patient having blood pressure higher than X and temperature higher than Y and laboratory results of a certain type for a particular encounter) I don't think the FHIR query API solves that. Or am I wrong? On Fri, Jan 28, 2022 at 12:15 PM <rik@nprogram.co.uk <mailto:rik@nprogram.co.uk> > wrote: Hi Daniel, I have never heard of one of these. I can see that you have asked on chat.fhir.org <http://chat.fhir.org> , which is the best place for this. However If the FHIR query API supports what you want to query (and I think in this case it does), then it would not matter functionally what the internal storage is I assume. Not what you asked, but it may be a solution to your problem. Rik From: Daniel Teixeira <ddtxra@gmail.com <mailto:ddtxra@gmail.com> > Sent: 27 January 2022 23:14 To: Vladimir Mironov <vladimir.n.mironov@gmail.com <mailto:vladimir.n.mironov@gmail.com> > Cc: w3c semweb hcls <public-semweb-lifesci@w3.org <mailto:public-semweb-lifesci@w3.org> > Subject: Re: FHIR server implementation having a RDF triplestore Dear Vladimir, thank you for your answer. My question is not really to know the implementations of RDF triplestores, but rather if there are implementation of a FHIR server using a RDF triplestore as database layer? For example HAPI FHIR uses JPA and stores the resources as a CLOB in a database supporting JPA so mainly RDBMS (MySQL, PostgreSQL, Oracle..) and the resource is encoded in JSON in one single column. Aysmmetrik FHIR server uses mongo: https://github.com/Asymmetrik/node-fhir-server-mongo But I can't find a an implementation of a FHIR server that stores the FHIR TTL in a RDF triplestore... So my question is, is there an impementation (like HAPI , Aysmmetrik, Firely...) that uses really FHIR RDF natively in a RDF triplestore. On Thu, Jan 27, 2022 at 10:12 PM Vladimir Mironov <vladimir.n.mironov@gmail.com <mailto:vladimir.n.mironov@gmail.com> > wrote: Hi Daniel, of course, there are plenty of, so even about a decade ago we were able to benchmark some half a dozen of those, none perfect, you just need to decide on what is of most import for you. As far as we are concerned, the decision was to stay with the Open Link Virtuoso implementation at that time, one of the advantages being that you were free to flip from an RDF endpoint to a conventional SQL database at no cost. We may still revise our decision, of course, given the options available nowadays, yet what I can at least say is that Virtuoso does work. Cheers. On Thu, 27 Jan 2022 at 15:59, Daniel Teixeira <ddtxra@gmail.com <mailto:ddtxra@gmail.com> > wrote: Dear community, I am looking for a FHIR implementation (server) that stores the resources in native RDF FHIR, so that I could do complex SPARQL queries on top of the database, but also expose REST API endpoints in FHIR. (Not so much interested in the U from CRUD, but at least Create, Read and Delete would be enough) For example what I would like to query on the FHIR store would be something like: * Retrieve all patients that are older than 18, not dead, having a body weight bigger than 100kg and that have laboratory of insulin higher than xyz . Unfortunately I can only find FHIR server implementations with a RDBMS or mongo as data storage . Do you know if some FHIR server implementations exists with an RDF triplestore as data storage where the TTL of FHIR resources would be stored natively? Thanks for your help. -- Daniel Teixeira -- Daniel Teixeira
Received on Saturday, 29 January 2022 12:00:12 UTC