BD2KOnFHIR / fhirtordf

Python based FHIR to RDF conversion utility
Creative Commons Zero v1.0 Universal
15 stars 8 forks source link

Bundles use BNodes for internal resources #2

Closed hsolbrig closed 6 years ago

hsolbrig commented 6 years ago

The FHIR RDF converter uses the fullUrl as the subject of a Bundle resource entry. Example:

{
  "resourceType": "Bundle",
  "id": "b248b1b2-1686-4b94-9936-37d7a5f94b51",
  "meta": {
    "lastUpdated": "2012-05-29T23:45:32Z"
  },
  "type": "collection",
  "entry": [
    {
      "fullUrl": "http://hl7.org/fhir/Patient/1",
      "resource": {
        "resourceType": "Patient",
        "id": "1",
        "meta": {
          ...

The official FHIR converter converts this to:

<http://hl7.org/fhir/Bundle/b248b1b2-1686-4b94-9936-37d7a5f94b51> a fhir:Bundle;
  fhir:nodeRole fhir:treeRoot;
  fhir:Resource.id [ fhir:value "b248b1b2-1686-4b94-9936-37d7a5f94b51"];
  fhir:Resource.meta [
     fhir:Meta.lastUpdated [ fhir:value "2012-05-29T23:45:32Z"^^xsd:dateTime ]
  ];
  fhir:Bundle.type [ fhir:value "collection"];
  fhir:Bundle.entry [
     fhir:index 0;
     fhir:Bundle.entry.fullUrl [ fhir:value "http://hl7.org/fhir/Patient/1" ];
     fhir:Bundle.entry.resource <http://hl7.org/fhir/Patient/1>
  ], 
       ...
] .

<http://hl7.org/fhir/Patient/1> a fhir:Patient;
  fhir:Resource.id [ fhir:value "1"];
  fhir:Resource.meta [
     fhir:Meta.lastUpdated [ fhir:value "2012-05-29T23:45:32Z"^^xsd:dateTime ]
  ];
    ...

The fhirtordf converter creates a BNode:

<http://hl7.org/fhir/Bundle/b248b1b2-1686-4b94-9936-37d7a5f94b51> a fhir:Bundle ;
    fhir:nodeRole fhir:treeRoot ;
    fhir:Bundle.entry [
        fhir:index "0"^^xsd:integer ;
        fhir:Bundle.entry.fullUrl [
            fhir:value "http://hl7.org/fhir/Patient/1"
        ] ;
        fhir:Bundle.entry.resource [
            fhir:DomainResource.text [
                fhir:Narrative.div "" ;
                fhir:Narrative.status [
                    fhir:value "generated"
                ]
            ] ;
            fhir:Patient.identifier [
                fhir:index "0"^^xsd:integer ;
                fhir:Identifier.system [
                    fhir:value "http://hl7.org/fhir/sid/us-ssn"
                ] ;
       ...