Data utility depends on whether it
Data dimensions
Size/Structure (false) dichotomy
or use a specialized form
or
git@github.com:w3c/hcls-fhir-rdf.gitwget https://hl7-fhir.github.io/observation-example.xmlxsltproc -stringparam fhirdefs ../data/definitions.xml xsl/transform.xsl observation-example.xmlFHIR has a REST-based HTTP protocol
hence the Search Parameters
much more detailed that anything in LDP.
| Name | Flags | Card. | Type |
|---|---|---|---|
![]() | I | DomainResource | |
![]() ![]() | 0..* | Identifier | |
![]() ![]() | ?! Σ | 1..1 | code |
![]() ![]() | 0..1 | CodeableConcept | |
![]() ![]() | Σ | 1..1 | CodeableConcept |
![]() ![]() | Σ | 0..1 | Reference(Patient | Group | Device | Location) |
![]() ![]() | 0..1 | Reference(Encounter) | |
![]() ![]() | Σ | 0..1 | |
![]() ![]() ![]() | dateTime | ||
![]() ![]() ![]() | Period |
<Observation> {
a (fhir:Observation)?,
fhir:Observation.identifier @<Identifier>*,
fhir:Observation.status @<code>,
fhir:Observation.code @<CodeableConcept>,
fhir:Observation.subject { fhir:reference @<Patient>
OR @<Group>
OR @<Device>
OR @<Location> }?,
fhir:Observation.encounter { fhir:reference @<Patient> }?
(fhir:Observation.effectiveDateTime @<DateTime> |
fhir:Observation.effectivePeriod @<Interval>)?,
...
fhir:Observation.id @<LitShape>?,
fhir:Observation.meta @<MetaShape>?,
fhir:Observation.implicitRules @<LitShape>?,
fhir:Observation.language @<LitShape>?,
fhir:Observation.text @<NarrativeShape>?,
fhir:Observation.contained @<ResourceShape>*,
fhir:Observation.extension @<ExtensionShape>*,
fhir:Observation.modifierExtension @<ExtensionShape>*,
fhir:Observation.valueQuantity @<QuantityShape>?,
fhir:Observation.valueCodeableConcept @<CodeableConceptShape>?,
fhir:Observation.valuestring @<LitShape>?,
fhir:Observation.valueRange @<RangeShape>?,
fhir:Observation.valueRatio @<RatioShape>?,
fhir:Observation.valueSampledData @<SampledDataShape>?,
fhir:Observation.valueAttachment @<AttachmentShape>?,
fhir:Observation.valuetime @<LitShape>?,
fhir:Observation.valuedateTime @<LitShape>?,
fhir:Observation.valuePeriod @<PeriodShape>?,
fhir:Observation.dataAbsentReason @<CodeableConceptShape>?,
fhir:Observation.interpretation @<CodeableConceptShape>?,
fhir:Observation.comments @<LitShape>?,
fhir:Observation.appliesdateTime @<LitShape>?,
fhir:Observation.appliesPeriod @<PeriodShape>?,
fhir:Observation.issued @<LitShape>?,
fhir:Observation.reliability @<LitShape>?,
fhir:Observation.bodySiteCodeableConcept @<CodeableConceptShape>?,
fhir:Observation.bodySiteReference @<ReferenceShape>?,
fhir:Observation.method @<CodeableConceptShape>?,
fhir:Observation.specimen @<ReferenceShape>?,
fhir:Observation.performer @<ReferenceShape>*,
fhir:Observation.device @<ReferenceShape>?,
fhir:Observation.referenceRange @<BackboneElementShape>*,
fhir:Observation.related @<BackboneElementShape>*
}
<IssueShape> {
ex:state (ex:unassigned ex:assigned),
ex:reportedBy @<UserShape>,
ex:reportedOn xsd:dateTime
%js:{ report = _.o; return true; %},
(ex:reproducedBy @<EmployeeShape>,
ex:reproducedOn xsd:dateTime
%js:{ return _.o.lex > report.lex; %}
%sparql:{ ?s ex:reportedOn ?rpt . FILTER (?o > ?rpt) %}
),
ex:related @<IssueShape>*
}
<UserShape> {
(foaf:name xsd:string
| foaf:givenName xsd:string+,
foaf:familyName xsd:string),
foaf:mbox IRI
}
<Issue1>
ex:state ex:unassigned ;
ex:reportedBy <User2> ;
ex:reportedOn "2013-01-23T10:18:00"^^xsd:dateTime ;
ex:reproducedBy <Thompson.J> ;
ex:reproducedOn "2013-01-23T10:00:00"^^xsd:dateTime ;
# ex:related <Issue2>, <Issue3>
.
<User2>
foaf:givenName "Bob" ;
foaf:familyName "Smith" ;
foaf:mbox <mail:bob@example.org>
.
Exmine two schemas to see:
The popular CD datatype has:
PREFIX snomed: <http://ihtsdo.org…20130131…> PREFIX hl7: <http://hl7.org/owl/metadata#> <myObs> hl7:coding snomed:282291009 .
These are all sibling children of Degree findings:
Separate augmenters and decreasers without requiring SNOMED to do the same.
terminology model
augmented terminology
similar to FHIR, but using the CDA-Turtle XSLT (see online example)
_:section0_allergyProblemAct0 a rim:Observation ; rim:Act.id [ a dt:DSET_II ; dt:COLL.item [ dt:II.root "69724b9d-5e77-402f-a5b6-3379dde3e8a9" ] ] ; rim:Act.classCode [ hl7:coding [ dt:CDCoding.code "ACT" ; dt:CDCoding.codeSystem "???" ] ] ; rim:Act.moodCode [ hl7:coding [ dt:CDCoding.code "EVN" ; dt:CDCoding.codeSystem "2.16.840.1.113883.5.1001" ] ] ; rim:Act.effectiveTime-low "2012-08-06"^^xsd:date ; rim:Act.statusCode "active" ; rim:Act.code [ hl7:coding [ dt:CDCoding.code "48765-2" ; dt:CDCoding.codeSystem "2.16.840.1.113883.6.1" ; dt:CDCoding.displayName "ALLERGIES, ADVERSE REACTIONS, ALERTS" ; dt:CDCoding.codeSystemName "LOINC" ] ]; rim:Observation.value [ ] .# SUBJ [ a rim:ActRelationship ; rim:ActRelationship.typeCode [ hl7:coding [ dt:CDCoding.code "REFR" ; dt:CDCoding.codeSystem "???" ] ] ; rim:ActRelationship.source _:section0_allergyProblemAct0 ; rim:ActRelationship.target _:section0_allergyProblemAct0_entryRelationship0 ] . _:section0_allergyProblemAct0_entryRelationship0 a rim:Observation ; rim:Act.id [ a dt:DSET_II ; dt:COLL.item [ dt:II.root "69724b9d-5e77-402f-a5b6-3379dde3e8a9" ] ] ; rim:Act.classCode [ hl7:coding [ dt:CDCoding.code "OBS" ; dt:CDCoding.codeSystem "2.16.840.1.113883.5.6" ] ] ; rim:Act.moodCode [ hl7:coding [ dt:CDCoding.code "EVN" ; dt:CDCoding.codeSystem "2.16.840.1.113883.5.1001" ] ] ; rim:Act.effectiveTime-low "2012-08-06"^^xsd:date ; rim:Act.statusCode "completed" ; rim:Act.code [ hl7:coding [ dt:CDCoding.code "ASSERTION" ; dt:CDCoding.codeSystem "2.16.840.1.113883.5.4" ; dt:CDCoding.codeSystemName "HL7ActCode" ] ]; rim:Observation.value [ a dt:PQ ; dt:CD.code [ a dt:CD ; hl7:coding [ rim:CDCoding.code "416098002" ; rim:CDCoding.codeSystem "2.16.840.1.113883.6.96" ; rim:CDCoding.displayName "drug allergy" ; rim:CDCoding.codeSystemName "SNOMED CT" ] ] ] .# Participant [ a rim:Participation ; rim:Participation.typeCode [ hl7:coding [ dt:CDCoding.code "CSM" ; dt:CDCoding.codeSystem "???" ] ] ; rim:Participation.act _:section0_allergyProblemAct0_entryRelationship0 ; rim:Participation.role _:section0_allergyProblemAct0_entryRelationship0_participant0 ] . _:section0_allergyProblemAct0_entryRelationship0_participant0 a rim:Role ; rim:Role.player _:section0_allergyProblemAct0_entryRelationship0_participant0_player ; rim:Role.scoper _:section0_allergyProblemAct0_entryRelationship0_participant0_scoper ; rim:Role.classCode [ hl7:coding [ dt:CDCoding.code "ROL" ; dt:CDCoding.codeSystem "???" ] ] ; . _:section0_allergyProblemAct0_entryRelationship0_participant0_player a rim:Person ; rim:Entity.classCode [ hl7:coding [ dt:CDCoding.code "PSN" ; dt:CDCoding.codeSystem "???" ] ] ; rim:Entity.determinerCode [ hl7:coding [ dt:CDCoding.code "INSTANCE" ; dt:CDCoding.codeSystem "???" ] ] ; rim:Entity.name [ a dt:COLL_EN ; ].

Technical barriers: