Skip to content

Instantly share code, notes, and snippets.

@ericprud
Last active July 1, 2022 21:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ericprud/0b3d0d4d0582d7f4952cf3d9f0b5ac9c to your computer and use it in GitHub Desktop.
Save ericprud/0b3d0d4d0582d7f4952cf3d9f0b5ac9c to your computer and use it in GitHub Desktop.
ShExMap manifest
---
- schemaLabel: BP
schemaURL: BPfhir-schema.shex
dataLabel: simple
dataURL: BPfhir-instance.ttl
queryMap: "<tag:BPfhir123>@START"
outputSchemaURL: BPdam-schema.shex
outputShape: "<BPunitsDAM>"
staticVars:
http://abc.example/someConstant: '"123-456"'
createRoot: "<tag:b0>"
status: conformant
- schemaLabel: BP back
schemaURL: BPdam-schema.shex
dataLabel: simple
dataURL: BPdam-instance.ttl
queryMap: "<tag:b0>@START"
outputSchemaURL: BPfhir-schema.shex
outputShape: "<BPfhir>"
staticVars:
http://abc.example/anotherConstant: abc-def
createRoot: "<tag:BPfhir123>"
status: conformant
PREFIX med: <http://dam.example/med#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
<tag:b0>
med:systolic [
med:value "110"^^xsd:float ;
med:units "mmHg"
] ;
med:diastolic [
med:value "70"^^xsd:float ;
med:units "mmHg"
] .
PREFIX : <http://dam.example/med#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX bp: <http://shex.io/extensions/Map/#BPDAM->
PREFIX Map: <http://shex.io/extensions/Map/#>
start = @<BPunitsDAM>
<BPunitsDAM> {
:systolic {
:value xsd:float %Map:{ bp:sysVal %};
:units xsd:string %Map:{ bp:sysUnits %}
};
:diastolic {
:value xsd:float %Map:{ bp:diaVal %};
:units xsd:string %Map:{ bp:diaUnits %}
};
:someConstProp xsd:string? %Map:{ <http://abc.example/someConstant> %}
}
PREFIX fhir: <http://hl7.org/fhir-rdf/>
PREFIX sct: <http://snomed.info/sct/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
<tag:BPfhir123>
a fhir:Observation;
fhir:coding [ fhir:code sct:Blood_Pressure ];
fhir:related [ fhir:type "has-component"; fhir:target _:sysBP123 ];
fhir:related [ fhir:type "has-component"; fhir:target _:diaBP123 ]
.
_:sysBP123
a fhir:Observation;
fhir:coding [ fhir:code sct:Systolic_Blood_Pressure ];
fhir:valueQuantity [
a fhir:Quantity;
fhir:value "110"^^xsd:float;
fhir:units "mmHg"
]
.
_:diaBP123
a fhir:Observation;
fhir:coding [ fhir:code sct:Diastolic_Blood_Pressure ];
fhir:valueQuantity [
a fhir:Quantity;
fhir:value "70"^^xsd:float;
fhir:units "mmHg"
]
.
PREFIX fhir: <http://hl7.org/fhir-rdf/>
PREFIX sct: <http://snomed.info/sct/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX bp: <http://shex.io/extensions/Map/#BPDAM->
PREFIX Map: <http://shex.io/extensions/Map/#>
start = @<BPfhir>
<collector> {
fhir:item @<BPfhir>*
}
<BPfhir> {
a [fhir:Observation]?;
# fhir:subject @<Patient>;
fhir:coding { fhir:code [sct:Blood_Pressure] };
fhir:related { fhir:type ["has-component"]; fhir:target @<sysBP> };
fhir:related { fhir:type ["has-component"]; fhir:target @<diaBP> }
}
<sysBP> {
a [fhir:Observation]?;
fhir:coding { fhir:code [sct:Systolic_Blood_Pressure] };
fhir:valueQuantity {
a [fhir:Quantity]?;
fhir:value xsd:float %Map:{ bp:sysVal %};
fhir:units xsd:string %Map:{ bp:sysUnits %}
}
}
<diaBP> {
a [fhir:Observation]?;
fhir:coding { fhir:code [sct:Diastolic_Blood_Pressure] };
fhir:valueQuantity {
a [fhir:Quantity]?;
fhir:value xsd:float %Map:{ bp:diaVal %};
fhir:units xsd:string %Map:{ bp:diaUnits %}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment