This page is part of the FHIR Specification (v5.0.0: R5 - STU). This is the current published version in it's permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3
FHIR Infrastructure Work Group | Maturity Level: N/A | Standards Status: Informative | Compartments: No defined compartments |
Raw Turtle (+ also see Turtle/RDF Format Specification)
An example transaction
@prefix fhir: <http://hl7.org/fhir/> . @prefix loinc: <https://loinc.org/rdf/> . @prefix owl: <http://www.w3.org/2002/07/owl#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . # - resource ------------------------------------------------------------------- [a fhir:Bundle ; fhir:nodeRole fhir:treeRoot ; fhir:id [ fhir:v "bundle-transaction"] ; # fhir:meta [ fhir:lastUpdated [ fhir:v "2014-08-18T01:43:30Z"^^xsd:dateTime ] ] ; # this example bundle is a transaction , when the transaction was constructed fhir:type [ fhir:v "transaction"] ; # fhir:entry ( [ fhir:fullUrl [ fhir:v "urn:uuid:61ebe359-bfdc-4613-8bf2-c5e300945f0a"^^xsd:anyURI ] ; fhir:resource ( <urn:uuid:61ebe359-bfdc-4613-8bf2-c5e300945f0a> ) ; # a simple create operation , first, the resource to create fhir:request [ fhir:method [ fhir:v "POST" ] ; # POST to [base]\/Patient - that's a create fhir:url [ fhir:v "Patient"^^xsd:anyURI ] # actually, in a transaction, you don't specify the [base], \n so [base]\/Patient becomes just 'Patient': ] # now, details about the action to take with the resource ] [ fhir:fullUrl [ fhir:v "urn:uuid:88f151c0-a954-468a-88bd-5ae15c08e059"^^xsd:anyURI ] ; fhir:resource ( <urn:uuid:88f151c0-a954-468a-88bd-5ae15c08e059> ) ; # a conditional create operation , first, the resource fhir:request [ fhir:method [ fhir:v "POST" ] ; # POST to [base]\/Patient - that's a create fhir:url [ fhir:v "Patient"^^xsd:anyURI ] ; # actually, in a transaction, you don't specify the [base], \n so [base]\/Patient becomes just 'Patient': fhir:ifNoneExist [ fhir:v "identifier=http:/example.org/fhir/ids|234234" ] # the conditional header: only add this resource if \n there isn't already one for this patient. If there is one,\n the content of this resource will be ignored ] # transaction details ] [ fhir:fullUrl [ fhir:v "http://example.org/fhir/Patient/123"^^xsd:anyURI ] ; fhir:resource ( <http://example.org/fhir/Patient/123> ) ; # a simple update operation , first, the resource fhir:request [ fhir:method [ fhir:v "PUT" ] ; # PUT to [base]\/Patient\/[id] - that's an update fhir:url [ fhir:v "Patient/123"^^xsd:anyURI ] # actually, in a transaction, you don't specify the [base], \n so [base]\/Patient becomes just 'Patient': ] # transaction details ] [ fhir:fullUrl [ fhir:v "urn:uuid:74891afc-ed52-42a2-bcd7-f13d9b60f096"^^xsd:anyURI ] ; fhir:resource ( <urn:uuid:74891afc-ed52-42a2-bcd7-f13d9b60f096> ) ; # a conditional update operation , first, the resource fhir:request [ fhir:method [ fhir:v "PUT" ] ; # PUT to [base]\/Patient?search_params - that's a conditional update fhir:url [ fhir:v "Patient?identifier=http:/example.org/fhir/ids|456456"^^xsd:anyURI ] # actually, in a transaction, you don't specify the [base], \n so [base]\/Patient?params becomes just 'Patient?params': ] # transaction details ] [ fhir:fullUrl [ fhir:v "http://example.org/fhir/Patient/123a"^^xsd:anyURI ] ; fhir:resource ( <http://example.org/fhir/Patient/123a> ) ; fhir:request [ fhir:method [ fhir:v "PUT" ] ; fhir:url [ fhir:v "Patient/123a"^^xsd:anyURI ] ; fhir:ifMatch [ fhir:v "W/\"2\"" ] # this will only succeed if the source version is correct: ] ] [ fhir:request [ fhir:method [ fhir:v "DELETE" ] ; # DELETE to [base]\/Patient\/[id]- that's a delete operation fhir:url [ fhir:v "Patient/234"^^xsd:anyURI ] # actually, in a transaction, you don't specify the [base], \n so [base]\/Patient\/234 becomes just 'Patient\/234': , btw, couldn't re-use Patient\/123 for the delete, since \n the transaction couldn't do two different operations on the\n same resource ] # a simple delete operation , no resource in this case , transaction details ] [ fhir:request [ fhir:method [ fhir:v "DELETE" ] ; # DELETE to [base]\/Patient?params- that's a conditional delete operation fhir:url [ fhir:v "Patient?identifier=123456"^^xsd:anyURI ] # actually, in a transaction, you don't specify the [base], \n so [base]\/Patient?params becomes just 'Patient?params': ] # a conditional delete operation , no resource in this case , transaction details ] [ fhir:fullUrl [ fhir:v "urn:uuid:79378cb8-8f58-48e8-a5e8-60ac2755b674"^^xsd:anyURI ] ; fhir:resource ( <urn:uuid:79378cb8-8f58-48e8-a5e8-60ac2755b674> ) ; # can do more than just create\/update\/delete. \n This is how to invoke an operation with a set of parameters fhir:request [ fhir:method [ fhir:v "POST" ] ; # POST to [base]\/ValueSet\/$lookup - invoking a lookup operation (see Terminology Service) fhir:url [ fhir:v "http://hl7.org/fhir/ValueSet/$lookup"^^xsd:anyURI ] ] ] [ fhir:request [ fhir:method [ fhir:v "GET" ] ; # GET from [base]\/Patient?params - searching for a patient fhir:url [ fhir:v "Patient?name=peter"^^xsd:anyURI ] ] # can also do read-only operations. \n \n Note that these do not 'fail' - see discussion on transaction \n atomicity for further information \n ] [ fhir:request [ fhir:method [ fhir:v "GET" ] ; fhir:url [ fhir:v "Patient/12334"^^xsd:anyURI ] ; fhir:ifNoneMatch [ fhir:v "W/\"4\"" ] ; # in practice, you'd only specify one of these fhir:ifModifiedSince [ fhir:v "2015-08-31T08:14:33+10:00"^^xsd:dateTime ] ] # and an example conditional read: ] )] . # now, each entry is an action to take in the transaction <urn:uuid:61ebe359-bfdc-4613-8bf2-c5e300945f0a> a fhir:Patient ; fhir:text [ fhir:status [ fhir:v "generated" ] ; fhir:div "<div xmlns=\"http://www.w3.org/1999/xhtml\">Some narrative</div>" ] ; # no id for create operations , and no metadata on this resource, though it would be valid fhir:active [ fhir:v "true"^^xsd:boolean] ; # fhir:name ( [ fhir:use [ fhir:v "official" ] ; fhir:family [ fhir:v "Chalmers" ] ; fhir:given ( [ fhir:v "Peter" ] [ fhir:v "James" ] ) ] ) ; # fhir:gender [ fhir:v "male"] ; # fhir:birthDate [ fhir:v "1974-12-25"^^xsd:date] . # <urn:uuid:88f151c0-a954-468a-88bd-5ae15c08e059> a fhir:Patient ; fhir:text [ fhir:status [ fhir:v "generated" ] ; fhir:div "<div xmlns=\"http://www.w3.org/1999/xhtml\">Some narrative</div>" ] ; # no id for create operations , and no metadata on this resource, though it would be valid fhir:identifier ( [ fhir:system [ fhir:v "http:/example.org/fhir/ids"^^xsd:anyURI ] ; fhir:value [ fhir:v "234234" ] ] ) ; # fhir:active [ fhir:v "true"^^xsd:boolean] ; # fhir:name ( [ fhir:use [ fhir:v "official" ] ; fhir:family [ fhir:v "Chalmers" ] ; fhir:given ( [ fhir:v "Peter" ] [ fhir:v "James" ] ) ] ) ; # fhir:gender [ fhir:v "male"] ; # fhir:birthDate [ fhir:v "1974-12-25"^^xsd:date] . # <http://example.org/fhir/Patient/123> a fhir:Patient ; fhir:id [ fhir:v "123"] ; # the id here and in the URL have to match fhir:text [ fhir:status [ fhir:v "generated" ] ; fhir:div "<div xmlns=\"http://www.w3.org/1999/xhtml\">Some narrative</div>" ] ; # and no metadata on this resource, though it would be valid fhir:active [ fhir:v "true"^^xsd:boolean] ; # fhir:name ( [ fhir:use [ fhir:v "official" ] ; fhir:family [ fhir:v "Chalmers" ] ; fhir:given ( [ fhir:v "Peter" ] [ fhir:v "James" ] ) ] ) ; # fhir:gender [ fhir:v "male"] ; # fhir:birthDate [ fhir:v "1974-12-25"^^xsd:date] . # <urn:uuid:74891afc-ed52-42a2-bcd7-f13d9b60f096> a fhir:Patient ; fhir:text [ fhir:status [ fhir:v "generated" ] ; fhir:div "<div xmlns=\"http://www.w3.org/1999/xhtml\">Some narrative</div>" ] ; # no id for conditional update operations , and no metadata on this resource, though it would be valid fhir:identifier ( [ fhir:system [ fhir:v "http:/example.org/fhir/ids"^^xsd:anyURI ] ; fhir:value [ fhir:v "456456" ] ] ) ; # fhir:active [ fhir:v "true"^^xsd:boolean] ; # fhir:name ( [ fhir:use [ fhir:v "official" ] ; fhir:family [ fhir:v "Chalmers" ] ; fhir:given ( [ fhir:v "Peter" ] [ fhir:v "James" ] ) ] ) ; # fhir:gender [ fhir:v "male"] ; # fhir:birthDate [ fhir:v "1974-12-25"^^xsd:date] . # <http://example.org/fhir/Patient/123a> a fhir:Patient ; fhir:id [ fhir:v "123a"] ; # fhir:text [ fhir:status [ fhir:v "generated" ] ; fhir:div "<div xmlns=\"http://www.w3.org/1999/xhtml\">Some narrative</div>" ] ; # fhir:active [ fhir:v "true"^^xsd:boolean] ; # fhir:name ( [ fhir:use [ fhir:v "official" ] ; fhir:family [ fhir:v "Chalmers" ] ; fhir:given ( [ fhir:v "Peter" ] [ fhir:v "James" ] ) ] ) ; # fhir:gender [ fhir:v "male"] ; # fhir:birthDate [ fhir:v "1974-12-25"^^xsd:date] . # <urn:uuid:79378cb8-8f58-48e8-a5e8-60ac2755b674> a fhir:Parameters ; fhir:parameter ( [ fhir:name [ fhir:v "coding" ] ; fhir:value [ a fhir:Coding, loinc:1963-8 ; fhir:system [ fhir:v "http://loinc.org"^^xsd:anyURI ] ; fhir:code [ fhir:v "1963-8" ] ] ] ) . # # -------------------------------------------------------------------------------------
Usage note: every effort has been made to ensure that the examples are correct and useful, but they are not a normative part of the specification.
FHIR ®© HL7.org 2011+. FHIR R5 hl7.fhir.core#5.0.0 generated on Sun, Mar 26, 2023 15:24+1100.
Links: Search |
Version History |
Contents |
Glossary |
QA |
Compare to R4 |
Compare to R4B |
|
Propose a change