FHIR RDF R5 Lite - fhircat/FHIRCat GitHub Wiki

FHIR RDF Example - Patient Instance

@prefix fhir: <http://hl7.org/fhir/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://hl7.org/fhir/Patient/a770f579-5745-4402-be2a-69c321d0f444> a fhir:Patient;
  fhir:Patient.birthDate "2003-03-13";
  fhir:Patient.gender "male";
  fhir:Patient.maritalStatus <http://terminology.hl7.org/CodeSystem/v3-MaritalStatus/S>;
  fhir:Resource.id <http://hl7.org/fhir/Patient/a770f579-5745-4402-be2a-69c321d0f444> .

<http://terminology.hl7.org/CodeSystem/v3-MaritalStatus/S> rdfs:label "Never Married" .


FHIR RDF Example - Condition Instance


<http://hl7.org/fhir/Condition/bd47ed16-570d-4f71-bdc8-5d28620892e8>
        a                              fhir:Condition ;
        fhir:Condition.clinicalStatus  <http://terminology.hl7.org/CodeSystem/condition-clinical/resolved> ;
        fhir:Condition.code            <http://snomed.info/sct/840539006> ;
        fhir:Condition.encounter       <http://hl7.org/fhir/Encounter/8da5e652-c49b-4506-9f5f-2e754d963f55> ;
        fhir:Condition.onsetDateTime   "2020-03-07T15:17:32-06:00" ;
        fhir:Condition.subject         <http://hl7.org/fhir/Patient/a770f579-5745-4402-be2a-69c321d0f444> ;
        fhir:Condition.verificationStatus
                <http://terminology.hl7.org/CodeSystem/condition-ver-status/confirmed> ;
        fhir:Resource.id               <http://hl7.org/fhir/Condition/bd47ed16-570d-4f71-bdc8-5d28620892e8> .

<http://snomed.info/sct/840539006>
        rdfs:label  "COVID-19" .

<http://terminology.hl7.org/CodeSystem/condition-ver-status/confirmed>
        rdfs:label  "confirmed" .

<http://terminology.hl7.org/CodeSystem/condition-clinical/resolved>
        rdfs:label  "resolved" .

FHIR RDF Example - Observation Instance

<http://hl7.org/fhir/Observation/a1fd65c1-a001-45d4-a08b-e6d29d726ba2>
        a                               fhir:Observation ;
        fhir:Observation.code           <http://loinc.org/2708-6> , <http://loinc.org/59408-5> ;
        fhir:Observation.encounter      <http://hl7.org/fhir/Encounter/8da5e652-c49b-4506-9f5f-2e754d963f55> ;
        fhir:Observation.status         "final" ;
        fhir:Observation.subject        <http://hl7.org/fhir/Patient/a770f579-5745-4402-be2a-69c321d0f444> ;
        fhir:Observation.valueQuantity  [ fhir:Quantity.code    "%" ;
                                          fhir:Quantity.system  "http://unitsofmeasure.org" ;
                                          fhir:Quantity.unit    "%" ;
                                          fhir:Quantity.value   "76.73"^^xsd:float
                                        ] ;

        fhir:Resource.id                <http://hl7.org/fhir/Observation/a1fd65c1-a001-45d4-a08b-e6d29d726ba2> .

<http://hl7.org/fhir/Observation/01558311-445e-4240-b7bb-446d02e9dbc7>
        a                               fhir:Observation ;
        fhir:Observation.code           <http://loinc.org/92142-9> ;
        fhir:Observation.encounter      <http://hl7.org/fhir/Encounter/8da5e652-c49b-4506-9f5f-2e754d963f55> ;
        fhir:Observation.status         "final" ;
        fhir:Observation.subject        <http://hl7.org/fhir/Patient/a770f579-5745-4402-be2a-69c321d0f444> ;
        fhir:Observation.valueCodeableConcept
                <http://snomed.info/sct/260385009> ;
        fhir:Observation.valueQuantity  []  ;
        fhir:Resource.id                <http://hl7.org/fhir/Observation/01558311-445e-4240-b7bb-446d02e9dbc7> .

<http://loinc.org/2708-6>
        rdfs:label  "Oxygen saturation in Arterial blood" .

<http://loinc.org/59408-5>
        rdfs:label  "Oxygen saturation in Arterial blood by Pulse oximetry" .

<http://loinc.org/92142-9>
        rdfs:label  "Influenza virus A RNA [Presence] in Respiratory specimen by NAA with probe detection" .

<http://snomed.info/sct/260385009>
        rdfs:label  "Negative (qualifier value)" .

CONSTRUCT SPARQL Query - Observation


PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX fhir: <http://hl7.org/fhir/>
PREFIX j2r: <http://hl7.org/fhir/#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
CONSTRUCT {
    ?uri rdf:type fhir:Observation .
    ?uri fhir:Resource.id ?uri .
    ?uri fhir:Observation.status ?status .
    ?uri fhir:Observation.subject ?patienturi .
    ?uri fhir:Observation.encounter ?encounteruri .
    ?uri fhir:Observation.code ?codeuri .
    ?codeuri rdfs:label ?codingdisplay .
    
    ?uri fhir:Observation.valueQuantity [
         fhir:Quantity.code ?valuecode ;
         fhir:Quantity.system ?valuesystem ;
         fhir:Quantity.unit ?valueunit ;
         fhir:Quantity.value ?valuevalue ;    
    ] .
    
    ?uri fhir:Observation.valueCodeableConcept ?valuecodeuri .
    ?valuecodeuri rdfs:label ?valuecodingdisplay .
      
    
}
{
    ?entry j2r:resource ?resource .  
    ?resource j2r:resourceType "Observation" .
    ?resource j2r:id ?id .
    BIND(URI(CONCAT("http://hl7.org/fhir/Observation/", ?id )) AS ?uri) .
    ?resource j2r:status ?status .
    ?resource j2r:subject ?subject .
    ?subject j2r:reference ?reference .
    BIND(URI(CONCAT("http://hl7.org/fhir/Patient/", SUBSTR(?reference, 10) )) AS ?patienturi) .
    ?resource j2r:encounter ?encounter .
    ?encounter j2r:reference ?refencounter .
    BIND(URI(CONCAT("http://hl7.org/fhir/Encounter/", SUBSTR(?refencounter, 10) )) AS ?encounteruri) .

    
    ?resource j2r:code ?code .
    ?code j2r:coding ?coding .
    ?coding j2r:code ?codingcode .
    ?coding j2r:display ?codingdisplay .
    ?coding j2r:system ?codingsystem .
    BIND(URI(CONCAT(?codingsystem, "/", ?codingcode )) AS ?codeuri) .
    OPTIONAL {
        
        ?resource j2r:valueQuantity ?valuequantity .
        ?valuequantity j2r:code ?valuecode .
        ?valuequantity j2r:system ?valuesystem .
        ?valuequantity j2r:unit ?valueunit .
        ?valuequantity j2r:value ?valuevalue .
       
    }
    OPTIONAL {
        
        ?resource j2r:valueCodeableConcept ?valueconcept .
        ?valueconcept j2r:coding ?valuecoding .
        ?valuecoding j2r:code ?valuecodingcode .
        ?valuecoding j2r:system ?valuecodingsystem .
        ?valuecoding j2r:display ?valuecodingdisplay .
       BIND(URI(CONCAT(?valuecodingsystem, "/", ?valuecodingcode )) AS ?valuecodeuri) .
       
    }
}



CONSTRUCT SPARQL Query - Condition


PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX fhir: <http://hl7.org/fhir/>
PREFIX j2r: <http://hl7.org/fhir/#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
CONSTRUCT {
    ?uri rdf:type fhir:Condition .
    ?uri fhir:Resource.id ?uri .
    ?uri fhir:Condition.clinicalStatus ?cstatusuri .
    ?cstatusuri rdfs:label ?cstatuscode .
    
    
    ?uri fhir:Condition.subject ?patienturi .
    ?uri fhir:Condition.encounter ?encounteruri .
    ?uri fhir:Condition.code ?codeuri .
    ?codeuri rdfs:label ?codingdisplay .
    
    ?uri fhir:Condition.onsetDateTime ?onsetdatetime .
    
    ?uri fhir:Condition.verificationStatus ?valuecodeuri .
    ?valuecodeuri rdfs:label ?valuecodingcode .
    
    
}
{
    ?entry j2r:resource ?resource .  
    ?resource j2r:resourceType "Condition" .
    ?resource j2r:id ?id .
    BIND(URI(CONCAT("http://hl7.org/fhir/Condition/", ?id )) AS ?uri) .

    ?resource j2r:clinicalStatus ?clinicalstatus .
    ?clinicalstatus j2r:coding ?cstatuscoding .
    ?cstatuscoding j2r:code ?cstatuscode .
    ?cstatuscoding j2r:system ?cstatussystem .
    BIND(URI(CONCAT(?cstatussystem, "/", ?cstatuscode )) AS ?cstatusuri) .
   
    ?resource j2r:subject ?subject .
    ?subject j2r:reference ?reference .
    BIND(URI(CONCAT("http://hl7.org/fhir/Patient/", SUBSTR(?reference, 10) )) AS ?patienturi) .
    ?resource j2r:encounter ?encounter .
    ?encounter j2r:reference ?refencounter .
    BIND(URI(CONCAT("http://hl7.org/fhir/Encounter/", SUBSTR(?refencounter, 10) )) AS ?encounteruri) .

    ?resource j2r:code ?code .
    ?code j2r:coding ?coding .
    ?coding j2r:code ?codingcode .
    ?coding j2r:display ?codingdisplay .
    ?coding j2r:system ?codingsystem .
    BIND(URI(CONCAT(?codingsystem, "/", ?codingcode )) AS ?codeuri) .    
    
    OPTIONAL {
    
    	?resource j2r:onsetDateTime ?onsetdatetime .
        
    }
    
    OPTIONAL {
        
        ?resource j2r:verificationStatus ?valueconcept .
        ?valueconcept j2r:coding ?valuecoding .
        ?valuecoding j2r:code ?valuecodingcode .
        ?valuecoding j2r:system ?valuecodingsystem .
       BIND(URI(CONCAT(?valuecodingsystem, "/", ?valuecodingcode )) AS ?valuecodeuri) .
       
    }    
}


CONSTRUCT SPARQL Query - Patient


PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX fhir: <http://hl7.org/fhir/>
PREFIX j2r: <http://hl7.org/fhir/#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
CONSTRUCT {
    ?uri rdf:type fhir:Patient .
    ?uri fhir:Resource.id ?uri .
    ?uri fhir:Patient.gender ?gender .
    ?uri fhir:Patient.birthDate ?birthdate .
    
    ?uri fhir:Patient.maritalStatus ?codeuri .
    ?codeuri rdfs:label ?codingdisplay .
    
   
    
}
{
    ?entry j2r:resource ?resource .  
    ?resource j2r:resourceType "Patient" .
    ?resource j2r:id ?id .
    BIND(URI(CONCAT("http://hl7.org/fhir/Patient/", ?id )) AS ?uri) .

    ?resource j2r:gender ?gender .
    ?resource j2r:birthDate ?birthdate .
   


    ?resource j2r:maritalStatus ?code .
    ?code j2r:coding ?coding .
    ?coding j2r:code ?codingcode .
    ?coding j2r:display ?codingdisplay .
    ?coding j2r:system ?codingsystem .
    BIND(URI(CONCAT(?codingsystem, "/", ?codingcode )) AS ?codeuri) .    
    
 
}


Notes