@the-cascade-protocol/cli 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.dockerignore +7 -0
- package/.eslintrc.json +23 -0
- package/.prettierrc +7 -0
- package/DOCKER.md +36 -0
- package/Dockerfile +18 -0
- package/README.md +69 -0
- package/dist/commands/capabilities.d.ts +9 -0
- package/dist/commands/capabilities.d.ts.map +1 -0
- package/dist/commands/capabilities.js +194 -0
- package/dist/commands/capabilities.js.map +1 -0
- package/dist/commands/conformance.d.ts +15 -0
- package/dist/commands/conformance.d.ts.map +1 -0
- package/dist/commands/conformance.js +348 -0
- package/dist/commands/conformance.js.map +1 -0
- package/dist/commands/convert.d.ts +21 -0
- package/dist/commands/convert.d.ts.map +1 -0
- package/dist/commands/convert.js +134 -0
- package/dist/commands/convert.js.map +1 -0
- package/dist/commands/pod/export.d.ts +8 -0
- package/dist/commands/pod/export.d.ts.map +1 -0
- package/dist/commands/pod/export.js +72 -0
- package/dist/commands/pod/export.js.map +1 -0
- package/dist/commands/pod/helpers.d.ts +79 -0
- package/dist/commands/pod/helpers.d.ts.map +1 -0
- package/dist/commands/pod/helpers.js +369 -0
- package/dist/commands/pod/helpers.js.map +1 -0
- package/dist/commands/pod/index.d.ts +20 -0
- package/dist/commands/pod/index.d.ts.map +1 -0
- package/dist/commands/pod/index.js +29 -0
- package/dist/commands/pod/index.js.map +1 -0
- package/dist/commands/pod/info.d.ts +9 -0
- package/dist/commands/pod/info.d.ts.map +1 -0
- package/dist/commands/pod/info.js +196 -0
- package/dist/commands/pod/info.js.map +1 -0
- package/dist/commands/pod/init.d.ts +9 -0
- package/dist/commands/pod/init.d.ts.map +1 -0
- package/dist/commands/pod/init.js +251 -0
- package/dist/commands/pod/init.js.map +1 -0
- package/dist/commands/pod/query.d.ts +9 -0
- package/dist/commands/pod/query.d.ts.map +1 -0
- package/dist/commands/pod/query.js +169 -0
- package/dist/commands/pod/query.js.map +1 -0
- package/dist/commands/pod 2.js +1017 -0
- package/dist/commands/pod.d.ts +28 -0
- package/dist/commands/pod.d.ts 2.map +1 -0
- package/dist/commands/pod.d.ts.map +1 -0
- package/dist/commands/pod.js +1031 -0
- package/dist/commands/pod.js 2.map +1 -0
- package/dist/commands/pod.js.map +1 -0
- package/dist/commands/serve.d.ts +33 -0
- package/dist/commands/serve.d.ts.map +1 -0
- package/dist/commands/serve.js +74 -0
- package/dist/commands/serve.js.map +1 -0
- package/dist/commands/validate.d.ts +18 -0
- package/dist/commands/validate.d.ts.map +1 -0
- package/dist/commands/validate.js +275 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +49 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/fhir-converter/cascade-to-fhir.d.ts +17 -0
- package/dist/lib/fhir-converter/cascade-to-fhir.d.ts.map +1 -0
- package/dist/lib/fhir-converter/cascade-to-fhir.js +358 -0
- package/dist/lib/fhir-converter/cascade-to-fhir.js.map +1 -0
- package/dist/lib/fhir-converter/converters-clinical.d.ts +29 -0
- package/dist/lib/fhir-converter/converters-clinical.d.ts.map +1 -0
- package/dist/lib/fhir-converter/converters-clinical.js +391 -0
- package/dist/lib/fhir-converter/converters-clinical.js.map +1 -0
- package/dist/lib/fhir-converter/converters-demographics.d.ts +20 -0
- package/dist/lib/fhir-converter/converters-demographics.d.ts.map +1 -0
- package/dist/lib/fhir-converter/converters-demographics.js +242 -0
- package/dist/lib/fhir-converter/converters-demographics.js.map +1 -0
- package/dist/lib/fhir-converter/fhir-to-cascade.d.ts +17 -0
- package/dist/lib/fhir-converter/fhir-to-cascade.d.ts.map +1 -0
- package/dist/lib/fhir-converter/fhir-to-cascade.js +63 -0
- package/dist/lib/fhir-converter/fhir-to-cascade.js.map +1 -0
- package/dist/lib/fhir-converter/index.d.ts +36 -0
- package/dist/lib/fhir-converter/index.d.ts.map +1 -0
- package/dist/lib/fhir-converter/index.js +187 -0
- package/dist/lib/fhir-converter/index.js.map +1 -0
- package/dist/lib/fhir-converter/types.d.ts +77 -0
- package/dist/lib/fhir-converter/types.d.ts.map +1 -0
- package/dist/lib/fhir-converter/types.js +236 -0
- package/dist/lib/fhir-converter/types.js.map +1 -0
- package/dist/lib/fhir-converter.d.ts +62 -0
- package/dist/lib/fhir-converter.d.ts.map +1 -0
- package/dist/lib/fhir-converter.js +1474 -0
- package/dist/lib/fhir-converter.js.map +1 -0
- package/dist/lib/mcp/audit.d.ts +24 -0
- package/dist/lib/mcp/audit.d.ts.map +1 -0
- package/dist/lib/mcp/audit.js +85 -0
- package/dist/lib/mcp/audit.js.map +1 -0
- package/dist/lib/mcp/server.d.ts +38 -0
- package/dist/lib/mcp/server.d.ts.map +1 -0
- package/dist/lib/mcp/server.js +172 -0
- package/dist/lib/mcp/server.js.map +1 -0
- package/dist/lib/mcp/tools.d.ts +47 -0
- package/dist/lib/mcp/tools.d.ts.map +1 -0
- package/dist/lib/mcp/tools.js +547 -0
- package/dist/lib/mcp/tools.js.map +1 -0
- package/dist/lib/output.d.ts +26 -0
- package/dist/lib/output.d.ts.map +1 -0
- package/dist/lib/output.js +64 -0
- package/dist/lib/output.js.map +1 -0
- package/dist/lib/shacl-validator.d.ts +53 -0
- package/dist/lib/shacl-validator.d.ts.map +1 -0
- package/dist/lib/shacl-validator.js +245 -0
- package/dist/lib/shacl-validator.js.map +1 -0
- package/dist/lib/turtle-parser.d.ts +64 -0
- package/dist/lib/turtle-parser.d.ts.map +1 -0
- package/dist/lib/turtle-parser.js +236 -0
- package/dist/lib/turtle-parser.js.map +1 -0
- package/dist/shapes/checkup.shapes.ttl +1459 -0
- package/dist/shapes/clinical.shapes.ttl +1350 -0
- package/dist/shapes/clinical.ttl +1369 -0
- package/dist/shapes/core.shapes.ttl +450 -0
- package/dist/shapes/core.ttl +603 -0
- package/dist/shapes/coverage.shapes.ttl +214 -0
- package/dist/shapes/coverage.ttl +182 -0
- package/dist/shapes/health.shapes.ttl +697 -0
- package/dist/shapes/health.ttl +859 -0
- package/dist/shapes/pots.shapes.ttl +481 -0
- package/package.json +54 -0
- package/src/commands/capabilities.ts +235 -0
- package/src/commands/conformance.ts +447 -0
- package/src/commands/convert.ts +164 -0
- package/src/commands/pod/export.ts +85 -0
- package/src/commands/pod/helpers.ts +449 -0
- package/src/commands/pod/index.ts +32 -0
- package/src/commands/pod/info.ts +239 -0
- package/src/commands/pod/init.ts +273 -0
- package/src/commands/pod/query.ts +224 -0
- package/src/commands/serve.ts +92 -0
- package/src/commands/validate.ts +303 -0
- package/src/index.ts +58 -0
- package/src/lib/fhir-converter/cascade-to-fhir.ts +369 -0
- package/src/lib/fhir-converter/converters-clinical.ts +446 -0
- package/src/lib/fhir-converter/converters-demographics.ts +270 -0
- package/src/lib/fhir-converter/fhir-to-cascade.ts +82 -0
- package/src/lib/fhir-converter/index.ts +215 -0
- package/src/lib/fhir-converter/types.ts +318 -0
- package/src/lib/mcp/audit.ts +107 -0
- package/src/lib/mcp/server.ts +192 -0
- package/src/lib/mcp/tools.ts +668 -0
- package/src/lib/output.ts +76 -0
- package/src/lib/shacl-validator.ts +314 -0
- package/src/lib/turtle-parser.ts +277 -0
- package/src/shapes/checkup.shapes.ttl +1459 -0
- package/src/shapes/clinical.shapes.ttl +1350 -0
- package/src/shapes/clinical.ttl +1369 -0
- package/src/shapes/core.shapes.ttl +450 -0
- package/src/shapes/core.ttl +603 -0
- package/src/shapes/coverage.shapes.ttl +214 -0
- package/src/shapes/coverage.ttl +182 -0
- package/src/shapes/health.shapes.ttl +697 -0
- package/src/shapes/health.ttl +859 -0
- package/src/shapes/pots.shapes.ttl +481 -0
- package/test-fixtures/fhir-bundle-example.json +216 -0
- package/test-fixtures/fhir-medication-example.json +18 -0
- package/tests/cli.test.ts +126 -0
- package/tests/fhir-converter.test.ts +874 -0
- package/tests/mcp-server.test.ts +396 -0
- package/tests/pod.test.ts +400 -0
- package/tsconfig.json +24 -0
|
@@ -0,0 +1,1369 @@
|
|
|
1
|
+
@prefix clinical: <https://ns.cascadeprotocol.org/clinical/v1#> .
|
|
2
|
+
@prefix cascade: <https://ns.cascadeprotocol.org/core/v1#> .
|
|
3
|
+
@prefix owl: <http://www.w3.org/2002/07/owl#> .
|
|
4
|
+
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
|
|
5
|
+
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
|
|
6
|
+
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
|
7
|
+
@prefix dct: <http://purl.org/dc/terms/> .
|
|
8
|
+
@prefix fhir: <http://hl7.org/fhir/> .
|
|
9
|
+
@prefix sct: <http://snomed.info/sct/> .
|
|
10
|
+
@prefix loinc: <http://loinc.org/rdf#> .
|
|
11
|
+
@prefix prov: <http://www.w3.org/ns/prov#> .
|
|
12
|
+
|
|
13
|
+
# ============================================================================
|
|
14
|
+
# Ontology Metadata
|
|
15
|
+
# ============================================================================
|
|
16
|
+
|
|
17
|
+
<https://ns.cascadeprotocol.org/clinical/v1#> a owl:Ontology ;
|
|
18
|
+
owl:imports <https://ns.cascadeprotocol.org/core/v1#> ;
|
|
19
|
+
dct:title "Cascade Protocol Clinical Document Ontology"@en ;
|
|
20
|
+
dct:description "Vocabulary for clinical documents, narratives, and structured notes imported from EHR systems via Apple HealthKit"@en ;
|
|
21
|
+
dct:creator "Cascade Agentic Labs" ;
|
|
22
|
+
dct:created "2025-12-26"^^xsd:date ;
|
|
23
|
+
dct:modified "2026-02-22"^^xsd:date ;
|
|
24
|
+
owl:versionInfo "1.6" ;
|
|
25
|
+
rdfs:comment "Domain-specific vocabulary for clinical documentation and structured records imported from patient portals (MyChart, Epic, etc.). Contains EHR-verified clinical data."@en ;
|
|
26
|
+
rdfs:seeAlso <https://cascadeprotocol.org/docs/clinical/v1.0/> .
|
|
27
|
+
|
|
28
|
+
# ============================================================================
|
|
29
|
+
# Core Classes
|
|
30
|
+
# ============================================================================
|
|
31
|
+
|
|
32
|
+
clinical:ClinicalDocument a owl:Class ;
|
|
33
|
+
rdfs:label "Clinical Document"@en ;
|
|
34
|
+
rdfs:comment "Clinical documentation imported from EHR systems, including narratives and structured data"@en ;
|
|
35
|
+
rdfs:subClassOf fhir:DocumentReference ;
|
|
36
|
+
rdfs:subClassOf prov:Entity ;
|
|
37
|
+
rdfs:subClassOf [
|
|
38
|
+
a owl:Restriction ;
|
|
39
|
+
owl:onProperty clinical:importedAt ;
|
|
40
|
+
owl:cardinality 1
|
|
41
|
+
] ;
|
|
42
|
+
rdfs:subClassOf [
|
|
43
|
+
a owl:Restriction ;
|
|
44
|
+
owl:onProperty clinical:sourceEHR ;
|
|
45
|
+
owl:cardinality 1
|
|
46
|
+
] .
|
|
47
|
+
|
|
48
|
+
clinical:ClinicalSection a owl:Class ;
|
|
49
|
+
rdfs:label "Clinical Section"@en ;
|
|
50
|
+
rdfs:comment "Section within a clinical document (e.g., History of Present Illness, Assessment, Plan)"@en .
|
|
51
|
+
|
|
52
|
+
clinical:ClinicalNarrative a owl:Class ;
|
|
53
|
+
rdfs:label "Clinical Narrative"@en ;
|
|
54
|
+
rdfs:comment "Free-text clinical narrative extracted from FHIR text.div element"@en .
|
|
55
|
+
|
|
56
|
+
# ============================================================================
|
|
57
|
+
# Document Type Classes (LOINC-aligned)
|
|
58
|
+
# ============================================================================
|
|
59
|
+
|
|
60
|
+
clinical:ProgressNote a owl:Class ;
|
|
61
|
+
rdfs:label "Progress Note"@en ;
|
|
62
|
+
rdfs:comment "Provider progress note documenting a patient encounter"@en ;
|
|
63
|
+
rdfs:subClassOf clinical:ClinicalDocument .
|
|
64
|
+
|
|
65
|
+
clinical:DischargeSummary a owl:Class ;
|
|
66
|
+
rdfs:label "Discharge Summary"@en ;
|
|
67
|
+
rdfs:comment "Hospital discharge summary document"@en ;
|
|
68
|
+
rdfs:subClassOf clinical:ClinicalDocument .
|
|
69
|
+
|
|
70
|
+
clinical:ConsultationNote a owl:Class ;
|
|
71
|
+
rdfs:label "Consultation Note"@en ;
|
|
72
|
+
rdfs:comment "Specialist consultation note"@en ;
|
|
73
|
+
rdfs:subClassOf clinical:ClinicalDocument .
|
|
74
|
+
|
|
75
|
+
clinical:LaboratoryReport a owl:Class ;
|
|
76
|
+
rdfs:label "Laboratory Report"@en ;
|
|
77
|
+
rdfs:comment "Laboratory test results with narrative interpretation"@en ;
|
|
78
|
+
rdfs:subClassOf clinical:ClinicalDocument ;
|
|
79
|
+
rdfs:subClassOf fhir:DiagnosticReport .
|
|
80
|
+
|
|
81
|
+
clinical:ImagingReport a owl:Class ;
|
|
82
|
+
rdfs:label "Imaging Report"@en ;
|
|
83
|
+
rdfs:comment "Radiology/imaging report with findings and impressions"@en ;
|
|
84
|
+
rdfs:subClassOf clinical:ClinicalDocument .
|
|
85
|
+
|
|
86
|
+
clinical:VisitSummary a owl:Class ;
|
|
87
|
+
rdfs:label "Visit Summary"@en ;
|
|
88
|
+
rdfs:comment "After-visit summary provided to patient"@en ;
|
|
89
|
+
rdfs:subClassOf clinical:ClinicalDocument .
|
|
90
|
+
|
|
91
|
+
# ============================================================================
|
|
92
|
+
# Structured Clinical Record Classes
|
|
93
|
+
# ============================================================================
|
|
94
|
+
|
|
95
|
+
clinical:Medication a owl:Class ;
|
|
96
|
+
rdfs:label "Medication"@en ;
|
|
97
|
+
rdfs:comment "Medication record from EHR MedicationStatement or MedicationRequest resource"@en ;
|
|
98
|
+
rdfs:subClassOf fhir:MedicationStatement ;
|
|
99
|
+
rdfs:subClassOf prov:Entity .
|
|
100
|
+
|
|
101
|
+
clinical:Allergy a owl:Class ;
|
|
102
|
+
rdfs:label "Allergy"@en ;
|
|
103
|
+
rdfs:comment "Allergy or intolerance record from EHR AllergyIntolerance resource"@en ;
|
|
104
|
+
rdfs:subClassOf fhir:AllergyIntolerance ;
|
|
105
|
+
rdfs:subClassOf prov:Entity .
|
|
106
|
+
|
|
107
|
+
clinical:LabResult a owl:Class ;
|
|
108
|
+
rdfs:label "Lab Result"@en ;
|
|
109
|
+
rdfs:comment "Laboratory test result from EHR Observation resource"@en ;
|
|
110
|
+
rdfs:subClassOf fhir:Observation ;
|
|
111
|
+
rdfs:subClassOf prov:Entity .
|
|
112
|
+
|
|
113
|
+
clinical:Condition a owl:Class ;
|
|
114
|
+
rdfs:label "Condition"@en ;
|
|
115
|
+
rdfs:comment "Medical condition or diagnosis from EHR Condition resource"@en ;
|
|
116
|
+
rdfs:subClassOf fhir:Condition ;
|
|
117
|
+
rdfs:subClassOf prov:Entity .
|
|
118
|
+
|
|
119
|
+
clinical:Immunization a owl:Class ;
|
|
120
|
+
rdfs:label "Immunization"@en ;
|
|
121
|
+
rdfs:comment "Vaccination record from EHR Immunization resource"@en ;
|
|
122
|
+
rdfs:subClassOf fhir:Immunization ;
|
|
123
|
+
rdfs:subClassOf prov:Entity .
|
|
124
|
+
|
|
125
|
+
clinical:Procedure a owl:Class ;
|
|
126
|
+
rdfs:label "Procedure"@en ;
|
|
127
|
+
rdfs:comment "Medical procedure record from EHR Procedure resource"@en ;
|
|
128
|
+
rdfs:subClassOf fhir:Procedure ;
|
|
129
|
+
rdfs:subClassOf prov:Entity .
|
|
130
|
+
|
|
131
|
+
clinical:VitalSign a owl:Class ;
|
|
132
|
+
rdfs:label "Vital Sign"@en ;
|
|
133
|
+
rdfs:comment "Vital sign observation (heart rate, blood pressure, etc.) from EHR"@en ;
|
|
134
|
+
rdfs:subClassOf fhir:Observation ;
|
|
135
|
+
rdfs:subClassOf prov:Entity .
|
|
136
|
+
|
|
137
|
+
# ============================================================================
|
|
138
|
+
# Longitudinal Record Classes (v1.2)
|
|
139
|
+
# ============================================================================
|
|
140
|
+
|
|
141
|
+
clinical:MedicationUseEpisode a owl:Class ;
|
|
142
|
+
rdfs:label "Medication Use Episode"@en ;
|
|
143
|
+
rdfs:comment "Canonical longitudinal record of patient's relationship with a medication over time. Derived from one or more source records via reconciliation. Episodes represent continuous periods of use - a gap beyond threshold creates a new episode."@en ;
|
|
144
|
+
rdfs:subClassOf prov:Entity ;
|
|
145
|
+
rdfs:seeAlso <https://cascadeprotocol.org/docs/clinical/v1.0/episodes/> .
|
|
146
|
+
|
|
147
|
+
clinical:Supplement a owl:Class ;
|
|
148
|
+
rdfs:label "Supplement"@en ;
|
|
149
|
+
rdfs:comment "Dietary supplement, OTC product, or herbal remedy with explicit regulatory status. Separate from Medication class due to different regulatory status and evidence requirements."@en ;
|
|
150
|
+
rdfs:subClassOf prov:Entity .
|
|
151
|
+
|
|
152
|
+
# ============================================================================
|
|
153
|
+
# Longitudinal Lab Classes (v1.4)
|
|
154
|
+
# ============================================================================
|
|
155
|
+
|
|
156
|
+
clinical:LabTestSeries a owl:Class ;
|
|
157
|
+
rdfs:label "Lab Test Series"@en ;
|
|
158
|
+
rdfs:comment """Longitudinal record of repeated measurements of the same laboratory
|
|
159
|
+
test (identified by LOINC code) over time. Derived from one or more
|
|
160
|
+
clinical:LabResult source records via reconciliation. Carries trending
|
|
161
|
+
analysis, inferred status, and source linkage. The lab equivalent of
|
|
162
|
+
MedicationUseEpisode. Unlike medication episodes where a 90-day gap
|
|
163
|
+
creates a new episode, lab tests have no gap concept — one series per
|
|
164
|
+
LOINC code per patient."""@en ;
|
|
165
|
+
rdfs:subClassOf prov:Entity ;
|
|
166
|
+
rdfs:seeAlso <https://cascadeprotocol.org/docs/clinical/v1.0/lab-series/> .
|
|
167
|
+
|
|
168
|
+
# ============================================================================
|
|
169
|
+
# Coverage Record Class (v1.5)
|
|
170
|
+
# ============================================================================
|
|
171
|
+
|
|
172
|
+
clinical:CoverageRecord a owl:Class ;
|
|
173
|
+
rdfs:label "Coverage Record"@en ;
|
|
174
|
+
rdfs:comment "DEPRECATED (v1.5+): Use coverage:InsurancePlan from coverage.ttl for new insurance data. This class remains for backward compatibility with existing EHR import pipeline data. Insurance coverage record imported from EHR. Layer 2 representation of patient insurance data with FHIR Coverage alignment."@en ;
|
|
175
|
+
rdfs:subClassOf prov:Entity ;
|
|
176
|
+
rdfs:seeAlso fhir:Coverage ;
|
|
177
|
+
owl:deprecated "true"^^xsd:boolean ;
|
|
178
|
+
cascade:subConcern "deprecated" .
|
|
179
|
+
|
|
180
|
+
# ============================================================================
|
|
181
|
+
# Data Properties - LabTestSeries (v1.4)
|
|
182
|
+
# ============================================================================
|
|
183
|
+
|
|
184
|
+
# --- Identity ---
|
|
185
|
+
|
|
186
|
+
clinical:canonicalTestName a owl:DatatypeProperty ;
|
|
187
|
+
rdfs:label "Canonical Test Name"@en ;
|
|
188
|
+
rdfs:comment "Normalized test name for the lab test series (e.g., 'Hemoglobin A1C')"@en ;
|
|
189
|
+
rdfs:domain clinical:LabTestSeries ;
|
|
190
|
+
rdfs:range xsd:string .
|
|
191
|
+
|
|
192
|
+
clinical:testLoincCode a owl:DatatypeProperty ;
|
|
193
|
+
rdfs:label "Test LOINC Code"@en ;
|
|
194
|
+
rdfs:comment "LOINC code identifying this test series (e.g., '4548-4' for HbA1c). All results in the series share this code."@en ;
|
|
195
|
+
rdfs:domain clinical:LabTestSeries ;
|
|
196
|
+
rdfs:range xsd:string .
|
|
197
|
+
|
|
198
|
+
clinical:testConceptUri a owl:ObjectProperty ;
|
|
199
|
+
rdfs:label "Test Concept URI"@en ;
|
|
200
|
+
rdfs:comment "Stable LOINC IRI for the test (e.g., loinc:4548-4). Enables linked-data interoperability."@en ;
|
|
201
|
+
rdfs:domain clinical:LabTestSeries ;
|
|
202
|
+
rdfs:range rdfs:Resource .
|
|
203
|
+
|
|
204
|
+
clinical:seriesCategory a owl:DatatypeProperty ;
|
|
205
|
+
rdfs:label "Series Category"@en ;
|
|
206
|
+
rdfs:comment "Lab category for the series (e.g., hematology, metabolic, lipid, thyroid). Maps to observation-category vocabulary."@en ;
|
|
207
|
+
rdfs:domain clinical:LabTestSeries ;
|
|
208
|
+
rdfs:range xsd:string .
|
|
209
|
+
|
|
210
|
+
# --- Longitudinal Tracking ---
|
|
211
|
+
|
|
212
|
+
clinical:firstResultDate a owl:DatatypeProperty ;
|
|
213
|
+
rdfs:label "First Result Date"@en ;
|
|
214
|
+
rdfs:comment "Earliest clinical date from any source result in this series"@en ;
|
|
215
|
+
rdfs:domain clinical:LabTestSeries ;
|
|
216
|
+
rdfs:range xsd:dateTime .
|
|
217
|
+
|
|
218
|
+
clinical:lastResultDate a owl:DatatypeProperty ;
|
|
219
|
+
rdfs:label "Last Result Date"@en ;
|
|
220
|
+
rdfs:comment "Most recent clinical date from any source result in this series"@en ;
|
|
221
|
+
rdfs:domain clinical:LabTestSeries ;
|
|
222
|
+
rdfs:range xsd:dateTime .
|
|
223
|
+
|
|
224
|
+
clinical:resultCount a owl:DatatypeProperty ;
|
|
225
|
+
rdfs:label "Result Count"@en ;
|
|
226
|
+
rdfs:comment "Number of individual results in this series"@en ;
|
|
227
|
+
rdfs:domain clinical:LabTestSeries ;
|
|
228
|
+
rdfs:range xsd:integer .
|
|
229
|
+
|
|
230
|
+
# --- Current State (Most Recent Result) ---
|
|
231
|
+
|
|
232
|
+
clinical:latestValue a owl:DatatypeProperty ;
|
|
233
|
+
rdfs:label "Latest Value"@en ;
|
|
234
|
+
rdfs:comment "Value of the most recent result in the series"@en ;
|
|
235
|
+
rdfs:domain clinical:LabTestSeries ;
|
|
236
|
+
rdfs:range xsd:string .
|
|
237
|
+
|
|
238
|
+
clinical:latestUnit a owl:DatatypeProperty ;
|
|
239
|
+
rdfs:label "Latest Unit"@en ;
|
|
240
|
+
rdfs:comment "Unit of the most recent result (UCUM code)"@en ;
|
|
241
|
+
rdfs:domain clinical:LabTestSeries ;
|
|
242
|
+
rdfs:range xsd:string .
|
|
243
|
+
|
|
244
|
+
clinical:latestInterpretation a owl:DatatypeProperty ;
|
|
245
|
+
rdfs:label "Latest Interpretation"@en ;
|
|
246
|
+
rdfs:comment "Interpretation code of the most recent result (FHIR v3-ObservationInterpretation: H, L, N, HH, LL, A, AA)"@en ;
|
|
247
|
+
rdfs:domain clinical:LabTestSeries ;
|
|
248
|
+
rdfs:range xsd:string .
|
|
249
|
+
|
|
250
|
+
# --- Trend Inference ---
|
|
251
|
+
|
|
252
|
+
clinical:trendDirection a owl:DatatypeProperty ;
|
|
253
|
+
rdfs:label "Trend Direction"@en ;
|
|
254
|
+
rdfs:comment "Inferred trend direction: increasing, decreasing, stable, or insufficient_data"@en ;
|
|
255
|
+
rdfs:domain clinical:LabTestSeries ;
|
|
256
|
+
rdfs:range xsd:string .
|
|
257
|
+
|
|
258
|
+
clinical:trendConfidence a owl:DatatypeProperty ;
|
|
259
|
+
rdfs:label "Trend Confidence"@en ;
|
|
260
|
+
rdfs:comment "Confidence in the trend inference: high, medium, or low"@en ;
|
|
261
|
+
rdfs:domain clinical:LabTestSeries ;
|
|
262
|
+
rdfs:range xsd:string .
|
|
263
|
+
|
|
264
|
+
clinical:trendReason a owl:DatatypeProperty ;
|
|
265
|
+
rdfs:label "Trend Reason"@en ;
|
|
266
|
+
rdfs:comment "Explainable reason for the trend inference (e.g., '3-point upward trend over 18 months')"@en ;
|
|
267
|
+
rdfs:domain clinical:LabTestSeries ;
|
|
268
|
+
rdfs:range xsd:string .
|
|
269
|
+
|
|
270
|
+
# --- Abnormal History ---
|
|
271
|
+
|
|
272
|
+
clinical:hasAbnormalHistory a owl:DatatypeProperty ;
|
|
273
|
+
rdfs:label "Has Abnormal History"@en ;
|
|
274
|
+
rdfs:comment "Whether any result in the series was interpreted as abnormal or critical"@en ;
|
|
275
|
+
rdfs:domain clinical:LabTestSeries ;
|
|
276
|
+
rdfs:range xsd:boolean .
|
|
277
|
+
|
|
278
|
+
# --- Current Reference Range ---
|
|
279
|
+
|
|
280
|
+
clinical:currentReferenceRange a owl:DatatypeProperty ;
|
|
281
|
+
rdfs:label "Current Reference Range"@en ;
|
|
282
|
+
rdfs:comment "Most recent reference range text (e.g., '4.0-5.6 %')"@en ;
|
|
283
|
+
rdfs:domain clinical:LabTestSeries ;
|
|
284
|
+
rdfs:range xsd:string .
|
|
285
|
+
|
|
286
|
+
clinical:currentReferenceRangeLow a owl:DatatypeProperty ;
|
|
287
|
+
rdfs:label "Current Reference Range Low"@en ;
|
|
288
|
+
rdfs:comment "Lower bound of the most recent reference range"@en ;
|
|
289
|
+
rdfs:domain clinical:LabTestSeries ;
|
|
290
|
+
rdfs:range xsd:decimal .
|
|
291
|
+
|
|
292
|
+
clinical:currentReferenceRangeHigh a owl:DatatypeProperty ;
|
|
293
|
+
rdfs:label "Current Reference Range High"@en ;
|
|
294
|
+
rdfs:comment "Upper bound of the most recent reference range"@en ;
|
|
295
|
+
rdfs:domain clinical:LabTestSeries ;
|
|
296
|
+
rdfs:range xsd:decimal .
|
|
297
|
+
|
|
298
|
+
# --- Panel Membership ---
|
|
299
|
+
|
|
300
|
+
clinical:seriesPanelMembership a owl:ObjectProperty ;
|
|
301
|
+
rdfs:label "Series Panel Membership"@en ;
|
|
302
|
+
rdfs:comment "Reference to a panel (e.g., CMP, CBC) this test series is typically part of"@en ;
|
|
303
|
+
rdfs:domain clinical:LabTestSeries ;
|
|
304
|
+
rdfs:range rdfs:Resource .
|
|
305
|
+
|
|
306
|
+
# Note: derivedFromRecord, sourceExternalId, and hasUnresolvedConflicts are
|
|
307
|
+
# reused from MedicationUseEpisode (domains broadened in v1.4 to apply to
|
|
308
|
+
# all longitudinal record types).
|
|
309
|
+
|
|
310
|
+
# ============================================================================
|
|
311
|
+
# Data Properties - CoverageRecord (v1.5)
|
|
312
|
+
# ============================================================================
|
|
313
|
+
|
|
314
|
+
clinical:providerName a owl:DatatypeProperty ;
|
|
315
|
+
rdfs:label "Provider Name"@en ;
|
|
316
|
+
rdfs:comment "Insurance company or plan provider name."@en ;
|
|
317
|
+
rdfs:domain clinical:CoverageRecord ;
|
|
318
|
+
rdfs:range xsd:string .
|
|
319
|
+
|
|
320
|
+
clinical:memberId a owl:DatatypeProperty ;
|
|
321
|
+
rdfs:label "Member ID"@en ;
|
|
322
|
+
rdfs:comment "Insurance member/subscriber identifier."@en ;
|
|
323
|
+
rdfs:domain clinical:CoverageRecord ;
|
|
324
|
+
rdfs:range xsd:string .
|
|
325
|
+
|
|
326
|
+
clinical:groupNumber a owl:DatatypeProperty ;
|
|
327
|
+
rdfs:label "Group Number"@en ;
|
|
328
|
+
rdfs:comment "Employer group number for employer-sponsored plans."@en ;
|
|
329
|
+
rdfs:domain clinical:CoverageRecord ;
|
|
330
|
+
rdfs:range xsd:string .
|
|
331
|
+
|
|
332
|
+
clinical:planName a owl:DatatypeProperty ;
|
|
333
|
+
rdfs:label "Plan Name"@en ;
|
|
334
|
+
rdfs:comment "Name of the insurance plan."@en ;
|
|
335
|
+
rdfs:domain clinical:CoverageRecord ;
|
|
336
|
+
rdfs:range xsd:string .
|
|
337
|
+
|
|
338
|
+
clinical:planType a owl:DatatypeProperty ;
|
|
339
|
+
rdfs:label "Plan Type"@en ;
|
|
340
|
+
rdfs:comment "Type of insurance plan: hmo, ppo, epo, pos, hdhp, medicare, medicaid, tricare, other."@en ;
|
|
341
|
+
rdfs:domain clinical:CoverageRecord ;
|
|
342
|
+
rdfs:range xsd:string .
|
|
343
|
+
|
|
344
|
+
clinical:coverageType a owl:DatatypeProperty ;
|
|
345
|
+
rdfs:label "Coverage Type"@en ;
|
|
346
|
+
rdfs:comment "Classification of coverage: medical, dental, vision, prescription, mental_health."@en ;
|
|
347
|
+
rdfs:domain clinical:CoverageRecord ;
|
|
348
|
+
rdfs:range xsd:string .
|
|
349
|
+
|
|
350
|
+
clinical:relationship a owl:DatatypeProperty ;
|
|
351
|
+
rdfs:label "Relationship"@en ;
|
|
352
|
+
rdfs:comment "Beneficiary relationship to subscriber: self, spouse, child, parent, other."@en ;
|
|
353
|
+
rdfs:domain clinical:CoverageRecord ;
|
|
354
|
+
rdfs:range xsd:string .
|
|
355
|
+
|
|
356
|
+
clinical:effectivePeriodStart a owl:DatatypeProperty ;
|
|
357
|
+
rdfs:label "Effective Period Start"@en ;
|
|
358
|
+
rdfs:comment "Start date of coverage period."@en ;
|
|
359
|
+
rdfs:domain clinical:CoverageRecord ;
|
|
360
|
+
rdfs:range xsd:date .
|
|
361
|
+
|
|
362
|
+
clinical:effectivePeriodEnd a owl:DatatypeProperty ;
|
|
363
|
+
rdfs:label "Effective Period End"@en ;
|
|
364
|
+
rdfs:comment "End date of coverage period."@en ;
|
|
365
|
+
rdfs:domain clinical:CoverageRecord ;
|
|
366
|
+
rdfs:range xsd:date .
|
|
367
|
+
|
|
368
|
+
clinical:payorName a owl:DatatypeProperty ;
|
|
369
|
+
rdfs:label "Payor Name"@en ;
|
|
370
|
+
rdfs:comment "Name of the organization paying for coverage."@en ;
|
|
371
|
+
rdfs:domain clinical:CoverageRecord ;
|
|
372
|
+
rdfs:range xsd:string .
|
|
373
|
+
|
|
374
|
+
clinical:subscriberId a owl:DatatypeProperty ;
|
|
375
|
+
rdfs:label "Subscriber ID"@en ;
|
|
376
|
+
rdfs:comment "Identifier for the policy holder from the insurer."@en ;
|
|
377
|
+
rdfs:domain clinical:CoverageRecord ;
|
|
378
|
+
rdfs:range xsd:string .
|
|
379
|
+
|
|
380
|
+
# ============================================================================
|
|
381
|
+
# Data Properties - Document Metadata
|
|
382
|
+
# ============================================================================
|
|
383
|
+
|
|
384
|
+
clinical:importedAt a owl:DatatypeProperty ;
|
|
385
|
+
rdfs:label "Imported At"@en ;
|
|
386
|
+
rdfs:comment "ISO 8601 timestamp when document was imported from Apple Health"@en ;
|
|
387
|
+
rdfs:domain clinical:ClinicalDocument ;
|
|
388
|
+
rdfs:range xsd:dateTime .
|
|
389
|
+
|
|
390
|
+
clinical:sourceEHR a owl:DatatypeProperty ;
|
|
391
|
+
rdfs:label "Source EHR"@en ;
|
|
392
|
+
rdfs:comment "Name of the source EHR system (e.g., 'Epic MyChart', 'Cerner'). Applicable to ClinicalDocument, LabResult, and other EHR-sourced records."@en ;
|
|
393
|
+
rdfs:range xsd:string .
|
|
394
|
+
|
|
395
|
+
clinical:sourceBundleId a owl:DatatypeProperty ;
|
|
396
|
+
rdfs:label "Source Bundle ID"@en ;
|
|
397
|
+
rdfs:comment "iOS app bundle identifier of the source (e.g., 'com.epic.mychart')"@en ;
|
|
398
|
+
rdfs:domain clinical:ClinicalDocument ;
|
|
399
|
+
rdfs:range xsd:string .
|
|
400
|
+
|
|
401
|
+
clinical:fhirResourceId a owl:DatatypeProperty ;
|
|
402
|
+
rdfs:label "FHIR Resource ID"@en ;
|
|
403
|
+
rdfs:comment "Original FHIR resource identifier from the source system"@en ;
|
|
404
|
+
rdfs:domain clinical:ClinicalDocument ;
|
|
405
|
+
rdfs:range xsd:string .
|
|
406
|
+
|
|
407
|
+
clinical:fhirResourceType a owl:DatatypeProperty ;
|
|
408
|
+
rdfs:label "FHIR Resource Type"@en ;
|
|
409
|
+
rdfs:comment "FHIR resource type (e.g., 'DiagnosticReport', 'Composition')"@en ;
|
|
410
|
+
rdfs:domain clinical:ClinicalDocument ;
|
|
411
|
+
rdfs:range xsd:string .
|
|
412
|
+
|
|
413
|
+
clinical:documentDate a owl:DatatypeProperty ;
|
|
414
|
+
rdfs:label "Document Date"@en ;
|
|
415
|
+
rdfs:comment "Date the clinical document was created in the EHR"@en ;
|
|
416
|
+
rdfs:domain clinical:ClinicalDocument ;
|
|
417
|
+
rdfs:range xsd:dateTime .
|
|
418
|
+
|
|
419
|
+
clinical:encounterDate a owl:DatatypeProperty ;
|
|
420
|
+
rdfs:label "Encounter Date"@en ;
|
|
421
|
+
rdfs:comment "Date of the clinical encounter this document relates to"@en ;
|
|
422
|
+
rdfs:domain clinical:ClinicalDocument ;
|
|
423
|
+
rdfs:range xsd:dateTime .
|
|
424
|
+
|
|
425
|
+
clinical:displayName a owl:DatatypeProperty ;
|
|
426
|
+
rdfs:label "Display Name"@en ;
|
|
427
|
+
rdfs:comment "Human-readable display name from the EHR"@en ;
|
|
428
|
+
rdfs:domain clinical:ClinicalDocument ;
|
|
429
|
+
rdfs:range xsd:string .
|
|
430
|
+
|
|
431
|
+
# ============================================================================
|
|
432
|
+
# Data Properties - Narrative Content
|
|
433
|
+
# ============================================================================
|
|
434
|
+
|
|
435
|
+
clinical:narrativeText a owl:DatatypeProperty ;
|
|
436
|
+
rdfs:label "Narrative Text"@en ;
|
|
437
|
+
rdfs:comment "Plain text extracted from FHIR text.div element (HTML tags stripped)"@en ;
|
|
438
|
+
rdfs:domain clinical:ClinicalDocument ;
|
|
439
|
+
rdfs:range xsd:string .
|
|
440
|
+
|
|
441
|
+
clinical:narrativeXHTML a owl:DatatypeProperty ;
|
|
442
|
+
rdfs:label "Narrative XHTML"@en ;
|
|
443
|
+
rdfs:comment "Original XHTML content from FHIR Narrative element"@en ;
|
|
444
|
+
rdfs:domain clinical:ClinicalDocument ;
|
|
445
|
+
rdfs:range xsd:string .
|
|
446
|
+
|
|
447
|
+
clinical:rawFHIRData a owl:DatatypeProperty ;
|
|
448
|
+
rdfs:label "Raw FHIR Data"@en ;
|
|
449
|
+
rdfs:comment "Base64-encoded original FHIR JSON/XML for lossless preservation"@en ;
|
|
450
|
+
rdfs:domain clinical:ClinicalDocument ;
|
|
451
|
+
rdfs:range xsd:base64Binary .
|
|
452
|
+
|
|
453
|
+
# ============================================================================
|
|
454
|
+
# Object Properties - Sections
|
|
455
|
+
# ============================================================================
|
|
456
|
+
|
|
457
|
+
clinical:hasSection a owl:ObjectProperty ;
|
|
458
|
+
rdfs:label "Has Section"@en ;
|
|
459
|
+
rdfs:comment "Links a clinical document to its component sections"@en ;
|
|
460
|
+
rdfs:domain clinical:ClinicalDocument ;
|
|
461
|
+
rdfs:range clinical:ClinicalSection .
|
|
462
|
+
|
|
463
|
+
clinical:sectionCode a owl:DatatypeProperty ;
|
|
464
|
+
rdfs:label "Section Code"@en ;
|
|
465
|
+
rdfs:comment "LOINC code identifying the section type"@en ;
|
|
466
|
+
rdfs:domain clinical:ClinicalSection ;
|
|
467
|
+
rdfs:range xsd:string .
|
|
468
|
+
|
|
469
|
+
clinical:sectionTitle a owl:DatatypeProperty ;
|
|
470
|
+
rdfs:label "Section Title"@en ;
|
|
471
|
+
rdfs:comment "Human-readable section title (e.g., 'History of Present Illness')"@en ;
|
|
472
|
+
rdfs:domain clinical:ClinicalSection ;
|
|
473
|
+
rdfs:range xsd:string .
|
|
474
|
+
|
|
475
|
+
clinical:sectionContent a owl:DatatypeProperty ;
|
|
476
|
+
rdfs:label "Section Content"@en ;
|
|
477
|
+
rdfs:comment "Plain text content of the section"@en ;
|
|
478
|
+
rdfs:domain clinical:ClinicalSection ;
|
|
479
|
+
rdfs:range xsd:string .
|
|
480
|
+
|
|
481
|
+
clinical:sectionOrder a owl:DatatypeProperty ;
|
|
482
|
+
rdfs:label "Section Order"@en ;
|
|
483
|
+
rdfs:comment "Integer indicating section order within the document"@en ;
|
|
484
|
+
rdfs:domain clinical:ClinicalSection ;
|
|
485
|
+
rdfs:range xsd:integer .
|
|
486
|
+
|
|
487
|
+
# ============================================================================
|
|
488
|
+
# Data Properties - Structured Records (Shared)
|
|
489
|
+
# ============================================================================
|
|
490
|
+
|
|
491
|
+
clinical:recordDate a owl:DatatypeProperty ;
|
|
492
|
+
rdfs:label "Record Date"@en ;
|
|
493
|
+
rdfs:comment "Date the clinical record was created or observed"@en ;
|
|
494
|
+
rdfs:range xsd:dateTime .
|
|
495
|
+
|
|
496
|
+
clinical:status a owl:DatatypeProperty ;
|
|
497
|
+
rdfs:label "Status"@en ;
|
|
498
|
+
rdfs:comment "FHIR status of the record (active, completed, etc.)"@en ;
|
|
499
|
+
rdfs:range xsd:string .
|
|
500
|
+
|
|
501
|
+
clinical:loincCode a owl:DatatypeProperty ;
|
|
502
|
+
rdfs:label "LOINC Code"@en ;
|
|
503
|
+
rdfs:comment "LOINC code for the clinical concept"@en ;
|
|
504
|
+
rdfs:range xsd:string .
|
|
505
|
+
|
|
506
|
+
clinical:snomedCode a owl:DatatypeProperty ;
|
|
507
|
+
rdfs:label "SNOMED Code"@en ;
|
|
508
|
+
rdfs:comment "SNOMED CT code for the clinical concept"@en ;
|
|
509
|
+
rdfs:range xsd:string .
|
|
510
|
+
|
|
511
|
+
# ============================================================================
|
|
512
|
+
# Data Properties - Medication
|
|
513
|
+
# ============================================================================
|
|
514
|
+
|
|
515
|
+
clinical:drugName a owl:DatatypeProperty ;
|
|
516
|
+
rdfs:label "Drug Name"@en ;
|
|
517
|
+
rdfs:comment "Name of the medication"@en ;
|
|
518
|
+
rdfs:domain clinical:Medication ;
|
|
519
|
+
rdfs:range xsd:string .
|
|
520
|
+
|
|
521
|
+
clinical:dosage a owl:DatatypeProperty ;
|
|
522
|
+
rdfs:label "Dosage"@en ;
|
|
523
|
+
rdfs:comment "Dosage information for the medication"@en ;
|
|
524
|
+
rdfs:domain clinical:Medication ;
|
|
525
|
+
rdfs:range xsd:string .
|
|
526
|
+
|
|
527
|
+
clinical:route a owl:DatatypeProperty ;
|
|
528
|
+
rdfs:label "Route"@en ;
|
|
529
|
+
rdfs:comment "Route of administration (oral, IV, etc.)"@en ;
|
|
530
|
+
rdfs:domain clinical:Medication ;
|
|
531
|
+
rdfs:range xsd:string .
|
|
532
|
+
|
|
533
|
+
clinical:frequency a owl:DatatypeProperty ;
|
|
534
|
+
rdfs:label "Frequency"@en ;
|
|
535
|
+
rdfs:comment "How often medication is taken"@en ;
|
|
536
|
+
rdfs:domain clinical:Medication ;
|
|
537
|
+
rdfs:range xsd:string .
|
|
538
|
+
|
|
539
|
+
clinical:rxNormCode a owl:DatatypeProperty ;
|
|
540
|
+
rdfs:label "RxNorm Code"@en ;
|
|
541
|
+
rdfs:comment "RxNorm code for the medication"@en ;
|
|
542
|
+
rdfs:domain clinical:Medication ;
|
|
543
|
+
rdfs:range xsd:string .
|
|
544
|
+
|
|
545
|
+
clinical:ndcCode a owl:DatatypeProperty ;
|
|
546
|
+
rdfs:label "NDC Code"@en ;
|
|
547
|
+
rdfs:comment "National Drug Code for the medication"@en ;
|
|
548
|
+
rdfs:domain clinical:Medication ;
|
|
549
|
+
rdfs:range xsd:string .
|
|
550
|
+
|
|
551
|
+
clinical:prescriber a owl:DatatypeProperty ;
|
|
552
|
+
rdfs:label "Prescriber"@en ;
|
|
553
|
+
rdfs:comment "Name of the prescribing physician"@en ;
|
|
554
|
+
rdfs:domain clinical:Medication ;
|
|
555
|
+
rdfs:range xsd:string .
|
|
556
|
+
|
|
557
|
+
clinical:indication a owl:DatatypeProperty ;
|
|
558
|
+
rdfs:label "Indication"@en ;
|
|
559
|
+
rdfs:comment "Clinical reason for the medication (why prescribed)"@en ;
|
|
560
|
+
rdfs:domain clinical:Medication ;
|
|
561
|
+
rdfs:range xsd:string .
|
|
562
|
+
|
|
563
|
+
clinical:courseOfTherapyType a owl:DatatypeProperty ;
|
|
564
|
+
rdfs:label "Course of Therapy Type"@en ;
|
|
565
|
+
rdfs:comment "Prescribing workflow classification: acute (one-time/short), continuous (ongoing), or unknown"@en ;
|
|
566
|
+
rdfs:domain clinical:Medication ;
|
|
567
|
+
rdfs:range xsd:string .
|
|
568
|
+
|
|
569
|
+
clinical:asNeeded a owl:DatatypeProperty ;
|
|
570
|
+
rdfs:label "As Needed (PRN)"@en ;
|
|
571
|
+
rdfs:comment "Whether medication is taken as needed rather than on a fixed schedule"@en ;
|
|
572
|
+
rdfs:domain clinical:Medication ;
|
|
573
|
+
rdfs:range xsd:boolean .
|
|
574
|
+
|
|
575
|
+
clinical:medicationForm a owl:DatatypeProperty ;
|
|
576
|
+
rdfs:label "Medication Form"@en ;
|
|
577
|
+
rdfs:comment "Physical form of the medication (tablet, capsule, liquid, injection, etc.)"@en ;
|
|
578
|
+
rdfs:domain clinical:Medication ;
|
|
579
|
+
rdfs:range xsd:string .
|
|
580
|
+
|
|
581
|
+
clinical:activeIngredient a owl:DatatypeProperty ;
|
|
582
|
+
rdfs:label "Active Ingredient"@en ;
|
|
583
|
+
rdfs:comment "Primary active ingredient name"@en ;
|
|
584
|
+
rdfs:domain clinical:Medication ;
|
|
585
|
+
rdfs:range xsd:string .
|
|
586
|
+
|
|
587
|
+
clinical:ingredientStrength a owl:DatatypeProperty ;
|
|
588
|
+
rdfs:label "Ingredient Strength"@en ;
|
|
589
|
+
rdfs:comment "Strength of the active ingredient (e.g. '5 mg per tablet')"@en ;
|
|
590
|
+
rdfs:domain clinical:Medication ;
|
|
591
|
+
rdfs:range xsd:string .
|
|
592
|
+
|
|
593
|
+
clinical:provenanceClass a owl:DatatypeProperty ;
|
|
594
|
+
rdfs:label "Provenance Class"@en ;
|
|
595
|
+
rdfs:comment "Source classification for editability: healthKitFHIR, userTracked, pharmacyClaim, or imported. Applicable to Medication, LabResult, and other clinical records."@en ;
|
|
596
|
+
rdfs:range xsd:string .
|
|
597
|
+
|
|
598
|
+
clinical:sourceFhirResourceType a owl:DatatypeProperty ;
|
|
599
|
+
rdfs:label "Source FHIR Resource Type"@en ;
|
|
600
|
+
rdfs:comment "Which FHIR resource type this record originated from"@en ;
|
|
601
|
+
rdfs:domain clinical:Medication ;
|
|
602
|
+
rdfs:range xsd:string .
|
|
603
|
+
|
|
604
|
+
clinical:clinicalIntent a owl:DatatypeProperty ;
|
|
605
|
+
rdfs:label "Clinical Intent"@en ;
|
|
606
|
+
rdfs:comment "Clinical intent derived from source: reportedUse, prescribed, dispensed, or administered"@en ;
|
|
607
|
+
rdfs:domain clinical:Medication ;
|
|
608
|
+
rdfs:range xsd:string .
|
|
609
|
+
|
|
610
|
+
clinical:refillsAllowed a owl:DatatypeProperty ;
|
|
611
|
+
rdfs:label "Refills Allowed"@en ;
|
|
612
|
+
rdfs:comment "Number of prescription refills authorized"@en ;
|
|
613
|
+
rdfs:domain clinical:Medication ;
|
|
614
|
+
rdfs:range xsd:integer .
|
|
615
|
+
|
|
616
|
+
clinical:supplyDurationDays a owl:DatatypeProperty ;
|
|
617
|
+
rdfs:label "Supply Duration Days"@en ;
|
|
618
|
+
rdfs:comment "Number of days each fill is intended to supply"@en ;
|
|
619
|
+
rdfs:domain clinical:Medication ;
|
|
620
|
+
rdfs:range xsd:integer .
|
|
621
|
+
|
|
622
|
+
clinical:dispensedQuantity a owl:DatatypeProperty ;
|
|
623
|
+
rdfs:label "Dispensed Quantity"@en ;
|
|
624
|
+
rdfs:comment "Quantity dispensed per fill (e.g. '90 tablets')"@en ;
|
|
625
|
+
rdfs:domain clinical:Medication ;
|
|
626
|
+
rdfs:range xsd:string .
|
|
627
|
+
|
|
628
|
+
clinical:prescriptionCategory a owl:DatatypeProperty ;
|
|
629
|
+
rdfs:label "Prescription Category"@en ;
|
|
630
|
+
rdfs:comment "Prescribing context: community, inpatient, or discharge"@en ;
|
|
631
|
+
rdfs:domain clinical:Medication ;
|
|
632
|
+
rdfs:range xsd:string .
|
|
633
|
+
|
|
634
|
+
clinical:administrationRoute a owl:DatatypeProperty ;
|
|
635
|
+
rdfs:label "Administration Route"@en ;
|
|
636
|
+
rdfs:comment "Route of administration: oral, intravenous, subcutaneous, intramuscular, topical, inhaled, etc."@en ;
|
|
637
|
+
rdfs:domain clinical:Medication ;
|
|
638
|
+
rdfs:range xsd:string .
|
|
639
|
+
|
|
640
|
+
# ============================================================================
|
|
641
|
+
# Data Properties - Allergy
|
|
642
|
+
# ============================================================================
|
|
643
|
+
|
|
644
|
+
clinical:allergen a owl:DatatypeProperty ;
|
|
645
|
+
rdfs:label "Allergen"@en ;
|
|
646
|
+
rdfs:comment "Name of the allergen or substance"@en ;
|
|
647
|
+
rdfs:domain clinical:Allergy ;
|
|
648
|
+
rdfs:range xsd:string .
|
|
649
|
+
|
|
650
|
+
clinical:reaction a owl:DatatypeProperty ;
|
|
651
|
+
rdfs:label "Reaction"@en ;
|
|
652
|
+
rdfs:comment "Description of the allergic reaction"@en ;
|
|
653
|
+
rdfs:domain clinical:Allergy ;
|
|
654
|
+
rdfs:range xsd:string .
|
|
655
|
+
|
|
656
|
+
clinical:severity a owl:DatatypeProperty ;
|
|
657
|
+
rdfs:label "Severity"@en ;
|
|
658
|
+
rdfs:comment "Severity of the allergy (mild, moderate, severe)"@en ;
|
|
659
|
+
rdfs:domain clinical:Allergy ;
|
|
660
|
+
rdfs:range xsd:string .
|
|
661
|
+
|
|
662
|
+
clinical:allergyCategory a owl:DatatypeProperty ;
|
|
663
|
+
rdfs:label "Allergy Category"@en ;
|
|
664
|
+
rdfs:comment "Category of allergy (food, medication, environment, biologic)"@en ;
|
|
665
|
+
rdfs:domain clinical:Allergy ;
|
|
666
|
+
rdfs:range xsd:string .
|
|
667
|
+
|
|
668
|
+
clinical:criticality a owl:DatatypeProperty ;
|
|
669
|
+
rdfs:label "Criticality"@en ;
|
|
670
|
+
rdfs:comment "Potential clinical harm (low, high, unable-to-assess)"@en ;
|
|
671
|
+
rdfs:domain clinical:Allergy ;
|
|
672
|
+
rdfs:range xsd:string .
|
|
673
|
+
|
|
674
|
+
# ============================================================================
|
|
675
|
+
# Data Properties - Lab Result
|
|
676
|
+
# ============================================================================
|
|
677
|
+
|
|
678
|
+
clinical:testName a owl:DatatypeProperty ;
|
|
679
|
+
rdfs:label "Test Name"@en ;
|
|
680
|
+
rdfs:comment "Name of the laboratory test"@en ;
|
|
681
|
+
rdfs:domain clinical:LabResult ;
|
|
682
|
+
rdfs:range xsd:string .
|
|
683
|
+
|
|
684
|
+
clinical:value a owl:DatatypeProperty ;
|
|
685
|
+
rdfs:label "Value"@en ;
|
|
686
|
+
rdfs:comment "Numeric or string value of the result"@en ;
|
|
687
|
+
rdfs:domain clinical:LabResult ;
|
|
688
|
+
rdfs:range xsd:string .
|
|
689
|
+
|
|
690
|
+
clinical:unit a owl:DatatypeProperty ;
|
|
691
|
+
rdfs:label "Unit"@en ;
|
|
692
|
+
rdfs:comment "Unit of measurement for the value"@en ;
|
|
693
|
+
rdfs:domain clinical:LabResult ;
|
|
694
|
+
rdfs:range xsd:string .
|
|
695
|
+
|
|
696
|
+
clinical:referenceRange a owl:DatatypeProperty ;
|
|
697
|
+
rdfs:label "Reference Range"@en ;
|
|
698
|
+
rdfs:comment "Normal reference range for the test"@en ;
|
|
699
|
+
rdfs:domain clinical:LabResult ;
|
|
700
|
+
rdfs:range xsd:string .
|
|
701
|
+
|
|
702
|
+
clinical:interpretation a owl:DatatypeProperty ;
|
|
703
|
+
rdfs:label "Interpretation"@en ;
|
|
704
|
+
rdfs:comment "Interpretation flag (normal, high, low, abnormal)"@en ;
|
|
705
|
+
rdfs:range xsd:string .
|
|
706
|
+
|
|
707
|
+
clinical:specimenType a owl:DatatypeProperty ;
|
|
708
|
+
rdfs:label "Specimen Type"@en ;
|
|
709
|
+
rdfs:comment "Type of specimen collected (blood, urine, etc.)"@en ;
|
|
710
|
+
rdfs:domain clinical:LabResult ;
|
|
711
|
+
rdfs:range xsd:string .
|
|
712
|
+
|
|
713
|
+
# ============================================================================
|
|
714
|
+
# Data Properties - Condition
|
|
715
|
+
# ============================================================================
|
|
716
|
+
|
|
717
|
+
clinical:conditionName a owl:DatatypeProperty ;
|
|
718
|
+
rdfs:label "Condition Name"@en ;
|
|
719
|
+
rdfs:comment "Name of the medical condition or diagnosis"@en ;
|
|
720
|
+
rdfs:domain clinical:Condition ;
|
|
721
|
+
rdfs:range xsd:string .
|
|
722
|
+
|
|
723
|
+
clinical:onsetDate a owl:DatatypeProperty ;
|
|
724
|
+
rdfs:label "Onset Date"@en ;
|
|
725
|
+
rdfs:comment "Date when the condition began"@en ;
|
|
726
|
+
rdfs:domain clinical:Condition ;
|
|
727
|
+
rdfs:range xsd:dateTime .
|
|
728
|
+
|
|
729
|
+
clinical:abatementDate a owl:DatatypeProperty ;
|
|
730
|
+
rdfs:label "Abatement Date"@en ;
|
|
731
|
+
rdfs:comment "Date when the condition resolved"@en ;
|
|
732
|
+
rdfs:domain clinical:Condition ;
|
|
733
|
+
rdfs:range xsd:dateTime .
|
|
734
|
+
|
|
735
|
+
clinical:clinicalStatus a owl:DatatypeProperty ;
|
|
736
|
+
rdfs:label "Clinical Status"@en ;
|
|
737
|
+
rdfs:comment "Clinical status (active, recurrence, relapse, inactive, remission, resolved)"@en ;
|
|
738
|
+
rdfs:domain clinical:Condition ;
|
|
739
|
+
rdfs:range xsd:string .
|
|
740
|
+
|
|
741
|
+
clinical:verificationStatus a owl:DatatypeProperty ;
|
|
742
|
+
rdfs:label "Verification Status"@en ;
|
|
743
|
+
rdfs:comment "Verification status (unconfirmed, provisional, differential, confirmed, refuted)"@en ;
|
|
744
|
+
rdfs:domain clinical:Condition ;
|
|
745
|
+
rdfs:range xsd:string .
|
|
746
|
+
|
|
747
|
+
clinical:icd10Code a owl:DatatypeProperty ;
|
|
748
|
+
rdfs:label "ICD-10 Code"@en ;
|
|
749
|
+
rdfs:comment "ICD-10-CM diagnosis code"@en ;
|
|
750
|
+
rdfs:domain clinical:Condition ;
|
|
751
|
+
rdfs:range xsd:string .
|
|
752
|
+
|
|
753
|
+
clinical:linkedConditionIds a owl:DatatypeProperty ;
|
|
754
|
+
rdfs:label "Linked Condition IDs"@en ;
|
|
755
|
+
rdfs:comment "Space-separated UUIDs of related ConditionSummary records. Enables graph traversal between related diagnoses (e.g., complication to root condition)."@en ;
|
|
756
|
+
rdfs:domain clinical:Condition ;
|
|
757
|
+
rdfs:range xsd:string .
|
|
758
|
+
|
|
759
|
+
# ============================================================================
|
|
760
|
+
# Data Properties - Immunization
|
|
761
|
+
# ============================================================================
|
|
762
|
+
|
|
763
|
+
clinical:vaccineName a owl:DatatypeProperty ;
|
|
764
|
+
rdfs:label "Vaccine Name"@en ;
|
|
765
|
+
rdfs:comment "Name of the vaccine administered"@en ;
|
|
766
|
+
rdfs:domain clinical:Immunization ;
|
|
767
|
+
rdfs:range xsd:string .
|
|
768
|
+
|
|
769
|
+
clinical:vaccineCode a owl:DatatypeProperty ;
|
|
770
|
+
rdfs:label "Vaccine Code"@en ;
|
|
771
|
+
rdfs:comment "CVX code for the vaccine"@en ;
|
|
772
|
+
rdfs:domain clinical:Immunization ;
|
|
773
|
+
rdfs:range xsd:string .
|
|
774
|
+
|
|
775
|
+
clinical:lotNumber a owl:DatatypeProperty ;
|
|
776
|
+
rdfs:label "Lot Number"@en ;
|
|
777
|
+
rdfs:comment "Vaccine lot number"@en ;
|
|
778
|
+
rdfs:domain clinical:Immunization ;
|
|
779
|
+
rdfs:range xsd:string .
|
|
780
|
+
|
|
781
|
+
clinical:site a owl:DatatypeProperty ;
|
|
782
|
+
rdfs:label "Site"@en ;
|
|
783
|
+
rdfs:comment "Body site where vaccine was administered"@en ;
|
|
784
|
+
rdfs:domain clinical:Immunization ;
|
|
785
|
+
rdfs:range xsd:string .
|
|
786
|
+
|
|
787
|
+
clinical:doseNumber a owl:DatatypeProperty ;
|
|
788
|
+
rdfs:label "Dose Number"@en ;
|
|
789
|
+
rdfs:comment "Dose number in a series (e.g., 1, 2, booster)"@en ;
|
|
790
|
+
rdfs:domain clinical:Immunization ;
|
|
791
|
+
rdfs:range xsd:string .
|
|
792
|
+
|
|
793
|
+
clinical:manufacturer a owl:DatatypeProperty ;
|
|
794
|
+
rdfs:label "Manufacturer"@en ;
|
|
795
|
+
rdfs:comment "Vaccine manufacturer"@en ;
|
|
796
|
+
rdfs:domain clinical:Immunization ;
|
|
797
|
+
rdfs:range xsd:string .
|
|
798
|
+
|
|
799
|
+
clinical:expirationDate a owl:DatatypeProperty ;
|
|
800
|
+
rdfs:label "Expiration Date"@en ;
|
|
801
|
+
rdfs:comment "Vaccine expiration date"@en ;
|
|
802
|
+
rdfs:domain clinical:Immunization ;
|
|
803
|
+
rdfs:range xsd:date .
|
|
804
|
+
|
|
805
|
+
# ============================================================================
|
|
806
|
+
# Data Properties - Procedure
|
|
807
|
+
# ============================================================================
|
|
808
|
+
|
|
809
|
+
clinical:procedureName a owl:DatatypeProperty ;
|
|
810
|
+
rdfs:label "Procedure Name"@en ;
|
|
811
|
+
rdfs:comment "Name of the procedure performed"@en ;
|
|
812
|
+
rdfs:domain clinical:Procedure ;
|
|
813
|
+
rdfs:range xsd:string .
|
|
814
|
+
|
|
815
|
+
clinical:procedureDate a owl:DatatypeProperty ;
|
|
816
|
+
rdfs:label "Procedure Date"@en ;
|
|
817
|
+
rdfs:comment "Date when the procedure was performed"@en ;
|
|
818
|
+
rdfs:domain clinical:Procedure ;
|
|
819
|
+
rdfs:range xsd:dateTime .
|
|
820
|
+
|
|
821
|
+
clinical:bodySite a owl:DatatypeProperty ;
|
|
822
|
+
rdfs:label "Body Site"@en ;
|
|
823
|
+
rdfs:comment "Body site where procedure was performed"@en ;
|
|
824
|
+
rdfs:domain clinical:Procedure ;
|
|
825
|
+
rdfs:range xsd:string .
|
|
826
|
+
|
|
827
|
+
clinical:performer a owl:DatatypeProperty ;
|
|
828
|
+
rdfs:label "Performer"@en ;
|
|
829
|
+
rdfs:comment "Name or identifier of the procedure performer"@en ;
|
|
830
|
+
rdfs:domain clinical:Procedure ;
|
|
831
|
+
rdfs:range xsd:string .
|
|
832
|
+
|
|
833
|
+
clinical:cptCode a owl:DatatypeProperty ;
|
|
834
|
+
rdfs:label "CPT Code"@en ;
|
|
835
|
+
rdfs:comment "CPT procedure code"@en ;
|
|
836
|
+
rdfs:domain clinical:Procedure ;
|
|
837
|
+
rdfs:range xsd:string .
|
|
838
|
+
|
|
839
|
+
clinical:outcome a owl:DatatypeProperty ;
|
|
840
|
+
rdfs:label "Outcome"@en ;
|
|
841
|
+
rdfs:comment "Outcome of the procedure"@en ;
|
|
842
|
+
rdfs:domain clinical:Procedure ;
|
|
843
|
+
rdfs:range xsd:string .
|
|
844
|
+
|
|
845
|
+
clinical:procedureStatus a owl:DatatypeProperty ;
|
|
846
|
+
rdfs:label "Procedure Status"@en ;
|
|
847
|
+
rdfs:comment "FHIR event-status: preparation, in-progress, not-done, on-hold, stopped, completed, entered-in-error, unknown."@en ;
|
|
848
|
+
rdfs:domain clinical:Procedure ;
|
|
849
|
+
rdfs:range xsd:string .
|
|
850
|
+
|
|
851
|
+
clinical:procedureCategory a owl:DatatypeProperty ;
|
|
852
|
+
rdfs:label "Procedure Category"@en ;
|
|
853
|
+
rdfs:comment "Classification category of the procedure (e.g., surgical, diagnostic, counseling)."@en ;
|
|
854
|
+
rdfs:domain clinical:Procedure ;
|
|
855
|
+
rdfs:range xsd:string .
|
|
856
|
+
|
|
857
|
+
clinical:procedureSnomedCode a owl:DatatypeProperty ;
|
|
858
|
+
rdfs:label "Procedure SNOMED Code"@en ;
|
|
859
|
+
rdfs:comment "SNOMED CT concept code for the procedure."@en ;
|
|
860
|
+
rdfs:domain clinical:Procedure ;
|
|
861
|
+
rdfs:range xsd:string .
|
|
862
|
+
|
|
863
|
+
# ============================================================================
|
|
864
|
+
# Data Properties - Vital Sign
|
|
865
|
+
# ============================================================================
|
|
866
|
+
|
|
867
|
+
clinical:vitalType a owl:DatatypeProperty ;
|
|
868
|
+
rdfs:label "Vital Type"@en ;
|
|
869
|
+
rdfs:comment "Type of vital sign (heart_rate, blood_pressure, temperature, etc.)"@en ;
|
|
870
|
+
rdfs:domain clinical:VitalSign ;
|
|
871
|
+
rdfs:range xsd:string .
|
|
872
|
+
|
|
873
|
+
clinical:systolicValue a owl:DatatypeProperty ;
|
|
874
|
+
rdfs:label "Systolic Value"@en ;
|
|
875
|
+
rdfs:comment "Systolic blood pressure value"@en ;
|
|
876
|
+
rdfs:domain clinical:VitalSign ;
|
|
877
|
+
rdfs:range xsd:decimal .
|
|
878
|
+
|
|
879
|
+
clinical:diastolicValue a owl:DatatypeProperty ;
|
|
880
|
+
rdfs:label "Diastolic Value"@en ;
|
|
881
|
+
rdfs:comment "Diastolic blood pressure value"@en ;
|
|
882
|
+
rdfs:domain clinical:VitalSign ;
|
|
883
|
+
rdfs:range xsd:decimal .
|
|
884
|
+
|
|
885
|
+
clinical:deviceName a owl:DatatypeProperty ;
|
|
886
|
+
rdfs:label "Device Name"@en ;
|
|
887
|
+
rdfs:comment "Name of the measuring device"@en ;
|
|
888
|
+
rdfs:domain clinical:VitalSign ;
|
|
889
|
+
rdfs:range xsd:string .
|
|
890
|
+
|
|
891
|
+
clinical:measurementMethod a owl:DatatypeProperty ;
|
|
892
|
+
rdfs:label "Measurement Method"@en ;
|
|
893
|
+
rdfs:comment "Method used for measurement"@en ;
|
|
894
|
+
rdfs:domain clinical:VitalSign ;
|
|
895
|
+
rdfs:range xsd:string .
|
|
896
|
+
|
|
897
|
+
clinical:valueString a owl:DatatypeProperty ;
|
|
898
|
+
rdfs:label "Value String"@en ;
|
|
899
|
+
rdfs:comment "String representation of a value for non-numeric results"@en ;
|
|
900
|
+
rdfs:range xsd:string .
|
|
901
|
+
|
|
902
|
+
clinical:effectiveDate a owl:DatatypeProperty ;
|
|
903
|
+
rdfs:label "Effective Date"@en ;
|
|
904
|
+
rdfs:comment "Date/time when measurement or observation was taken"@en ;
|
|
905
|
+
rdfs:range xsd:dateTime .
|
|
906
|
+
|
|
907
|
+
# ============================================================================
|
|
908
|
+
# Data Properties - Additional Medication
|
|
909
|
+
# ============================================================================
|
|
910
|
+
|
|
911
|
+
clinical:instructions a owl:DatatypeProperty ;
|
|
912
|
+
rdfs:label "Instructions"@en ;
|
|
913
|
+
rdfs:comment "Patient instructions for taking the medication"@en ;
|
|
914
|
+
rdfs:domain clinical:Medication ;
|
|
915
|
+
rdfs:range xsd:string .
|
|
916
|
+
|
|
917
|
+
clinical:startDate a owl:DatatypeProperty ;
|
|
918
|
+
rdfs:label "Start Date"@en ;
|
|
919
|
+
rdfs:comment "Start date for medication or treatment"@en ;
|
|
920
|
+
rdfs:range xsd:dateTime .
|
|
921
|
+
|
|
922
|
+
clinical:endDate a owl:DatatypeProperty ;
|
|
923
|
+
rdfs:label "End Date"@en ;
|
|
924
|
+
rdfs:comment "End date for medication or treatment"@en ;
|
|
925
|
+
rdfs:range xsd:dateTime .
|
|
926
|
+
|
|
927
|
+
# ============================================================================
|
|
928
|
+
# Data Properties - Additional Allergy
|
|
929
|
+
# ============================================================================
|
|
930
|
+
|
|
931
|
+
clinical:allergyType a owl:DatatypeProperty ;
|
|
932
|
+
rdfs:label "Allergy Type"@en ;
|
|
933
|
+
rdfs:comment "Type of allergy (allergy vs intolerance)"@en ;
|
|
934
|
+
rdfs:domain clinical:Allergy ;
|
|
935
|
+
rdfs:range xsd:string .
|
|
936
|
+
|
|
937
|
+
# ============================================================================
|
|
938
|
+
# Data Properties - Additional Lab Result
|
|
939
|
+
# ============================================================================
|
|
940
|
+
|
|
941
|
+
clinical:orderingProvider a owl:DatatypeProperty ;
|
|
942
|
+
rdfs:label "Ordering Provider"@en ;
|
|
943
|
+
rdfs:comment "Name of the clinician who ordered the laboratory test"@en ;
|
|
944
|
+
rdfs:domain clinical:LabResult ;
|
|
945
|
+
rdfs:range xsd:string .
|
|
946
|
+
|
|
947
|
+
clinical:performingLab a owl:DatatypeProperty ;
|
|
948
|
+
rdfs:label "Performing Lab"@en ;
|
|
949
|
+
rdfs:comment "Name of the laboratory that performed the test"@en ;
|
|
950
|
+
rdfs:domain clinical:LabResult ;
|
|
951
|
+
rdfs:range xsd:string .
|
|
952
|
+
|
|
953
|
+
clinical:observationStatus a owl:DatatypeProperty ;
|
|
954
|
+
rdfs:label "Observation Status"@en ;
|
|
955
|
+
rdfs:comment "FHIR observation-status code: final, preliminary, amended, corrected, cancelled, entered-in-error. See http://hl7.org/fhir/observation-status"@en ;
|
|
956
|
+
rdfs:domain clinical:LabResult ;
|
|
957
|
+
rdfs:range xsd:string .
|
|
958
|
+
|
|
959
|
+
clinical:sourceRecordId a owl:DatatypeProperty ;
|
|
960
|
+
rdfs:label "Source Record ID"@en ;
|
|
961
|
+
rdfs:comment "FHIR resource identifier from the source system for traceability"@en ;
|
|
962
|
+
rdfs:range xsd:string .
|
|
963
|
+
|
|
964
|
+
clinical:panelMembership a owl:ObjectProperty ;
|
|
965
|
+
rdfs:label "Panel Membership"@en ;
|
|
966
|
+
rdfs:comment "Back-reference from an individual lab result to the panel container (e.g., CMP, CBC) it belongs to. Uses fhir:hasMember on the panel side; this is the inverse link on the member side."@en ;
|
|
967
|
+
rdfs:domain clinical:LabResult ;
|
|
968
|
+
rdfs:range rdfs:Resource .
|
|
969
|
+
|
|
970
|
+
clinical:referenceRangeLow a owl:DatatypeProperty ;
|
|
971
|
+
rdfs:label "Reference Range Low"@en ;
|
|
972
|
+
rdfs:comment "Lower bound of normal reference range"@en ;
|
|
973
|
+
rdfs:domain clinical:LabResult ;
|
|
974
|
+
rdfs:range xsd:decimal .
|
|
975
|
+
|
|
976
|
+
clinical:referenceRangeHigh a owl:DatatypeProperty ;
|
|
977
|
+
rdfs:label "Reference Range High"@en ;
|
|
978
|
+
rdfs:comment "Upper bound of normal reference range"@en ;
|
|
979
|
+
rdfs:domain clinical:LabResult ;
|
|
980
|
+
rdfs:range xsd:decimal .
|
|
981
|
+
|
|
982
|
+
clinical:referenceRangeText a owl:DatatypeProperty ;
|
|
983
|
+
rdfs:label "Reference Range Text"@en ;
|
|
984
|
+
rdfs:comment "Reference range as descriptive text"@en ;
|
|
985
|
+
rdfs:domain clinical:LabResult ;
|
|
986
|
+
rdfs:range xsd:string .
|
|
987
|
+
|
|
988
|
+
clinical:issuedDate a owl:DatatypeProperty ;
|
|
989
|
+
rdfs:label "Issued Date"@en ;
|
|
990
|
+
rdfs:comment "Date when the result was issued"@en ;
|
|
991
|
+
rdfs:domain clinical:LabResult ;
|
|
992
|
+
rdfs:range xsd:dateTime .
|
|
993
|
+
|
|
994
|
+
clinical:category a owl:DatatypeProperty ;
|
|
995
|
+
rdfs:label "Category"@en ;
|
|
996
|
+
rdfs:comment "Category classification of the record"@en ;
|
|
997
|
+
rdfs:range xsd:string .
|
|
998
|
+
|
|
999
|
+
clinical:notes a owl:DatatypeProperty ;
|
|
1000
|
+
rdfs:label "Notes"@en ;
|
|
1001
|
+
rdfs:comment "Additional notes or comments"@en ;
|
|
1002
|
+
rdfs:range xsd:string .
|
|
1003
|
+
|
|
1004
|
+
# ============================================================================
|
|
1005
|
+
# Data Properties - Additional Immunization
|
|
1006
|
+
# ============================================================================
|
|
1007
|
+
|
|
1008
|
+
clinical:occurrenceDate a owl:DatatypeProperty ;
|
|
1009
|
+
rdfs:label "Occurrence Date"@en ;
|
|
1010
|
+
rdfs:comment "Date when the immunization was administered"@en ;
|
|
1011
|
+
rdfs:domain clinical:Immunization ;
|
|
1012
|
+
rdfs:range xsd:dateTime .
|
|
1013
|
+
|
|
1014
|
+
clinical:doseQuantity a owl:DatatypeProperty ;
|
|
1015
|
+
rdfs:label "Dose Quantity"@en ;
|
|
1016
|
+
rdfs:comment "Dose amount administered"@en ;
|
|
1017
|
+
rdfs:domain clinical:Immunization ;
|
|
1018
|
+
rdfs:range xsd:string .
|
|
1019
|
+
|
|
1020
|
+
clinical:cvxCode a owl:DatatypeProperty ;
|
|
1021
|
+
rdfs:label "CVX Code"@en ;
|
|
1022
|
+
rdfs:comment "CDC CVX vaccine code"@en ;
|
|
1023
|
+
rdfs:domain clinical:Immunization ;
|
|
1024
|
+
rdfs:range xsd:string .
|
|
1025
|
+
|
|
1026
|
+
# ============================================================================
|
|
1027
|
+
# Data Properties - Additional Procedure
|
|
1028
|
+
# ============================================================================
|
|
1029
|
+
|
|
1030
|
+
clinical:performedDate a owl:DatatypeProperty ;
|
|
1031
|
+
rdfs:label "Performed Date"@en ;
|
|
1032
|
+
rdfs:comment "Date when the procedure was performed"@en ;
|
|
1033
|
+
rdfs:domain clinical:Procedure ;
|
|
1034
|
+
rdfs:range xsd:dateTime .
|
|
1035
|
+
|
|
1036
|
+
clinical:performedEndDate a owl:DatatypeProperty ;
|
|
1037
|
+
rdfs:label "Performed End Date"@en ;
|
|
1038
|
+
rdfs:comment "End date for procedures that span a period"@en ;
|
|
1039
|
+
rdfs:domain clinical:Procedure ;
|
|
1040
|
+
rdfs:range xsd:dateTime .
|
|
1041
|
+
|
|
1042
|
+
clinical:location a owl:DatatypeProperty ;
|
|
1043
|
+
rdfs:label "Location"@en ;
|
|
1044
|
+
rdfs:comment "Location where procedure was performed"@en ;
|
|
1045
|
+
rdfs:domain clinical:Procedure ;
|
|
1046
|
+
rdfs:range xsd:string .
|
|
1047
|
+
|
|
1048
|
+
# ============================================================================
|
|
1049
|
+
# Data Properties - Vital Sign Components
|
|
1050
|
+
# ============================================================================
|
|
1051
|
+
|
|
1052
|
+
clinical:component1Name a owl:DatatypeProperty ;
|
|
1053
|
+
rdfs:label "Component 1 Name"@en ;
|
|
1054
|
+
rdfs:comment "Name of first vital sign component (e.g., Systolic)"@en ;
|
|
1055
|
+
rdfs:domain clinical:VitalSign ;
|
|
1056
|
+
rdfs:range xsd:string .
|
|
1057
|
+
|
|
1058
|
+
clinical:component1Value a owl:DatatypeProperty ;
|
|
1059
|
+
rdfs:label "Component 1 Value"@en ;
|
|
1060
|
+
rdfs:comment "Value of first vital sign component"@en ;
|
|
1061
|
+
rdfs:domain clinical:VitalSign ;
|
|
1062
|
+
rdfs:range xsd:decimal .
|
|
1063
|
+
|
|
1064
|
+
clinical:component1Unit a owl:DatatypeProperty ;
|
|
1065
|
+
rdfs:label "Component 1 Unit"@en ;
|
|
1066
|
+
rdfs:comment "Unit for first vital sign component"@en ;
|
|
1067
|
+
rdfs:domain clinical:VitalSign ;
|
|
1068
|
+
rdfs:range xsd:string .
|
|
1069
|
+
|
|
1070
|
+
clinical:component1LoincCode a owl:DatatypeProperty ;
|
|
1071
|
+
rdfs:label "Component 1 LOINC Code"@en ;
|
|
1072
|
+
rdfs:comment "LOINC code for first component"@en ;
|
|
1073
|
+
rdfs:domain clinical:VitalSign ;
|
|
1074
|
+
rdfs:range xsd:string .
|
|
1075
|
+
|
|
1076
|
+
clinical:component2Name a owl:DatatypeProperty ;
|
|
1077
|
+
rdfs:label "Component 2 Name"@en ;
|
|
1078
|
+
rdfs:comment "Name of second vital sign component (e.g., Diastolic)"@en ;
|
|
1079
|
+
rdfs:domain clinical:VitalSign ;
|
|
1080
|
+
rdfs:range xsd:string .
|
|
1081
|
+
|
|
1082
|
+
clinical:component2Value a owl:DatatypeProperty ;
|
|
1083
|
+
rdfs:label "Component 2 Value"@en ;
|
|
1084
|
+
rdfs:comment "Value of second vital sign component"@en ;
|
|
1085
|
+
rdfs:domain clinical:VitalSign ;
|
|
1086
|
+
rdfs:range xsd:decimal .
|
|
1087
|
+
|
|
1088
|
+
clinical:component2Unit a owl:DatatypeProperty ;
|
|
1089
|
+
rdfs:label "Component 2 Unit"@en ;
|
|
1090
|
+
rdfs:comment "Unit for second vital sign component"@en ;
|
|
1091
|
+
rdfs:domain clinical:VitalSign ;
|
|
1092
|
+
rdfs:range xsd:string .
|
|
1093
|
+
|
|
1094
|
+
clinical:component2LoincCode a owl:DatatypeProperty ;
|
|
1095
|
+
rdfs:label "Component 2 LOINC Code"@en ;
|
|
1096
|
+
rdfs:comment "LOINC code for second component"@en ;
|
|
1097
|
+
rdfs:domain clinical:VitalSign ;
|
|
1098
|
+
rdfs:range xsd:string .
|
|
1099
|
+
|
|
1100
|
+
# ============================================================================
|
|
1101
|
+
# Data Properties - MedicationUseEpisode (v1.2)
|
|
1102
|
+
# ============================================================================
|
|
1103
|
+
|
|
1104
|
+
clinical:canonicalName a owl:DatatypeProperty ;
|
|
1105
|
+
rdfs:label "Canonical Name"@en ;
|
|
1106
|
+
rdfs:comment "Normalized drug name for the medication episode"@en ;
|
|
1107
|
+
rdfs:domain clinical:MedicationUseEpisode ;
|
|
1108
|
+
rdfs:range xsd:string .
|
|
1109
|
+
|
|
1110
|
+
clinical:episodeFirstSeenDate a owl:DatatypeProperty ;
|
|
1111
|
+
rdfs:label "Episode First Seen Date"@en ;
|
|
1112
|
+
rdfs:comment "Earliest CLINICAL date from source records (not import time)"@en ;
|
|
1113
|
+
rdfs:domain clinical:MedicationUseEpisode ;
|
|
1114
|
+
rdfs:range xsd:dateTime .
|
|
1115
|
+
|
|
1116
|
+
clinical:episodeLastSeenDate a owl:DatatypeProperty ;
|
|
1117
|
+
rdfs:label "Episode Last Seen Date"@en ;
|
|
1118
|
+
rdfs:comment "Most recent CLINICAL date from source records"@en ;
|
|
1119
|
+
rdfs:domain clinical:MedicationUseEpisode ;
|
|
1120
|
+
rdfs:range xsd:dateTime .
|
|
1121
|
+
|
|
1122
|
+
clinical:currentDose a owl:DatatypeProperty ;
|
|
1123
|
+
rdfs:label "Current Dose"@en ;
|
|
1124
|
+
rdfs:comment "Current dosage for the medication (most recent from sources)"@en ;
|
|
1125
|
+
rdfs:domain clinical:MedicationUseEpisode ;
|
|
1126
|
+
rdfs:range xsd:string .
|
|
1127
|
+
|
|
1128
|
+
clinical:currentFrequency a owl:DatatypeProperty ;
|
|
1129
|
+
rdfs:label "Current Frequency"@en ;
|
|
1130
|
+
rdfs:comment "Current frequency of medication use"@en ;
|
|
1131
|
+
rdfs:domain clinical:MedicationUseEpisode ;
|
|
1132
|
+
rdfs:range xsd:string .
|
|
1133
|
+
|
|
1134
|
+
clinical:currentRoute a owl:DatatypeProperty ;
|
|
1135
|
+
rdfs:label "Current Route"@en ;
|
|
1136
|
+
rdfs:comment "Current route of administration"@en ;
|
|
1137
|
+
rdfs:domain clinical:MedicationUseEpisode ;
|
|
1138
|
+
rdfs:range xsd:string .
|
|
1139
|
+
|
|
1140
|
+
clinical:inferredStatus a owl:DatatypeProperty ;
|
|
1141
|
+
rdfs:label "Inferred Status"@en ;
|
|
1142
|
+
rdfs:comment "Inferred active/inactive status (active, inactive)"@en ;
|
|
1143
|
+
rdfs:domain clinical:MedicationUseEpisode ;
|
|
1144
|
+
rdfs:range xsd:string .
|
|
1145
|
+
|
|
1146
|
+
clinical:statusConfidence a owl:DatatypeProperty ;
|
|
1147
|
+
rdfs:label "Status Confidence"@en ;
|
|
1148
|
+
rdfs:comment "Confidence level for inferred status (high, medium, low)"@en ;
|
|
1149
|
+
rdfs:domain clinical:MedicationUseEpisode ;
|
|
1150
|
+
rdfs:range xsd:string .
|
|
1151
|
+
|
|
1152
|
+
clinical:statusReason a owl:DatatypeProperty ;
|
|
1153
|
+
rdfs:label "Status Reason"@en ;
|
|
1154
|
+
rdfs:comment "Reason for status inference (explicitStatus, hasRecentEndDate, noRecentActivity, inferredFromRefills, userOverride)"@en ;
|
|
1155
|
+
rdfs:domain clinical:MedicationUseEpisode ;
|
|
1156
|
+
rdfs:range xsd:string .
|
|
1157
|
+
|
|
1158
|
+
clinical:usePattern a owl:DatatypeProperty ;
|
|
1159
|
+
rdfs:label "Use Pattern"@en ;
|
|
1160
|
+
rdfs:comment "Pattern of medication use (chronic, shortCourse, oneTime, asNeeded, unknown)"@en ;
|
|
1161
|
+
rdfs:domain clinical:MedicationUseEpisode ;
|
|
1162
|
+
rdfs:range xsd:string .
|
|
1163
|
+
|
|
1164
|
+
clinical:therapeuticClass a owl:DatatypeProperty ;
|
|
1165
|
+
rdfs:label "Therapeutic Class"@en ;
|
|
1166
|
+
rdfs:comment "Therapeutic classification from ClinicalClassifier"@en ;
|
|
1167
|
+
rdfs:domain clinical:MedicationUseEpisode ;
|
|
1168
|
+
rdfs:range xsd:string .
|
|
1169
|
+
|
|
1170
|
+
clinical:conceptUri a owl:ObjectProperty ;
|
|
1171
|
+
rdfs:label "Concept URI"@en ;
|
|
1172
|
+
rdfs:comment "Stable URI for the medication concept (RxNorm URI, NDC URI, or minted Cascade URI)"@en ;
|
|
1173
|
+
rdfs:domain clinical:MedicationUseEpisode ;
|
|
1174
|
+
rdfs:range rdfs:Resource .
|
|
1175
|
+
|
|
1176
|
+
clinical:drugCode a owl:ObjectProperty ;
|
|
1177
|
+
rdfs:label "Drug Code"@en ;
|
|
1178
|
+
rdfs:comment "Drug code URI from any terminology system (RxNorm, NDC, SNOMED, ATC)"@en ;
|
|
1179
|
+
rdfs:domain clinical:MedicationUseEpisode ;
|
|
1180
|
+
rdfs:range rdfs:Resource .
|
|
1181
|
+
|
|
1182
|
+
clinical:derivedFromRecord a owl:ObjectProperty ;
|
|
1183
|
+
rdfs:label "Derived From Record"@en ;
|
|
1184
|
+
rdfs:comment "Links a longitudinal record (MedicationUseEpisode or LabTestSeries) to the source record(s) it was derived from"@en ;
|
|
1185
|
+
rdfs:range prov:Entity ;
|
|
1186
|
+
rdfs:subPropertyOf prov:wasDerivedFrom .
|
|
1187
|
+
|
|
1188
|
+
clinical:sourceExternalId a owl:DatatypeProperty ;
|
|
1189
|
+
rdfs:label "Source External ID"@en ;
|
|
1190
|
+
rdfs:comment "External identifier from source system (FHIR resource ID, claim ID, etc.). Applicable to MedicationUseEpisode, LabTestSeries, and other longitudinal records."@en ;
|
|
1191
|
+
rdfs:range xsd:string .
|
|
1192
|
+
|
|
1193
|
+
clinical:hasUnresolvedConflicts a owl:DatatypeProperty ;
|
|
1194
|
+
rdfs:label "Has Unresolved Conflicts"@en ;
|
|
1195
|
+
rdfs:comment "Flag indicating longitudinal record has data conflicts requiring user attention. Applicable to MedicationUseEpisode and LabTestSeries."@en ;
|
|
1196
|
+
rdfs:range xsd:boolean .
|
|
1197
|
+
|
|
1198
|
+
clinical:durationDays a owl:DatatypeProperty ;
|
|
1199
|
+
rdfs:label "Duration Days"@en ;
|
|
1200
|
+
rdfs:comment "Duration of the episode in days"@en ;
|
|
1201
|
+
rdfs:domain clinical:MedicationUseEpisode ;
|
|
1202
|
+
rdfs:range xsd:integer .
|
|
1203
|
+
|
|
1204
|
+
# ============================================================================
|
|
1205
|
+
# Data Properties - Supplement (v1.2)
|
|
1206
|
+
# ============================================================================
|
|
1207
|
+
|
|
1208
|
+
clinical:supplementName a owl:DatatypeProperty ;
|
|
1209
|
+
rdfs:label "Supplement Name"@en ;
|
|
1210
|
+
rdfs:comment "Name of the supplement or OTC product"@en ;
|
|
1211
|
+
rdfs:domain clinical:Supplement ;
|
|
1212
|
+
rdfs:range xsd:string .
|
|
1213
|
+
|
|
1214
|
+
clinical:regulatoryStatus a owl:DatatypeProperty ;
|
|
1215
|
+
rdfs:label "Regulatory Status"@en ;
|
|
1216
|
+
rdfs:comment "Regulatory classification (dietarySupplement, otcDrug, homeopathic, herbalRemedy, unknown)"@en ;
|
|
1217
|
+
rdfs:domain clinical:Supplement ;
|
|
1218
|
+
rdfs:range xsd:string .
|
|
1219
|
+
|
|
1220
|
+
clinical:evidenceStrength a owl:DatatypeProperty ;
|
|
1221
|
+
rdfs:label "Evidence Strength"@en ;
|
|
1222
|
+
rdfs:comment "Level of clinical evidence (strongEvidence, moderateEvidence, limitedEvidence, traditionalUse, noEvidence, unknown)"@en ;
|
|
1223
|
+
rdfs:domain clinical:Supplement ;
|
|
1224
|
+
rdfs:range xsd:string .
|
|
1225
|
+
|
|
1226
|
+
clinical:brand a owl:DatatypeProperty ;
|
|
1227
|
+
rdfs:label "Brand"@en ;
|
|
1228
|
+
rdfs:comment "Brand name of the supplement"@en ;
|
|
1229
|
+
rdfs:domain clinical:Supplement ;
|
|
1230
|
+
rdfs:range xsd:string .
|
|
1231
|
+
|
|
1232
|
+
clinical:form a owl:DatatypeProperty ;
|
|
1233
|
+
rdfs:label "Form"@en ;
|
|
1234
|
+
rdfs:comment "Physical form (capsule, tablet, softgel, liquid, powder, gummy, spray, patch, tea, tincture, other)"@en ;
|
|
1235
|
+
rdfs:domain clinical:Supplement ;
|
|
1236
|
+
rdfs:range xsd:string .
|
|
1237
|
+
|
|
1238
|
+
clinical:dsldId a owl:DatatypeProperty ;
|
|
1239
|
+
rdfs:label "DSLD ID"@en ;
|
|
1240
|
+
rdfs:comment "NIH Dietary Supplement Label Database identifier"@en ;
|
|
1241
|
+
rdfs:domain clinical:Supplement ;
|
|
1242
|
+
rdfs:range xsd:string .
|
|
1243
|
+
|
|
1244
|
+
clinical:upc a owl:DatatypeProperty ;
|
|
1245
|
+
rdfs:label "UPC"@en ;
|
|
1246
|
+
rdfs:comment "Universal Product Code (barcode)"@en ;
|
|
1247
|
+
rdfs:domain clinical:Supplement ;
|
|
1248
|
+
rdfs:range xsd:string .
|
|
1249
|
+
|
|
1250
|
+
clinical:reasonForUse a owl:DatatypeProperty ;
|
|
1251
|
+
rdfs:label "Reason For Use"@en ;
|
|
1252
|
+
rdfs:comment "User-provided reason for taking the supplement"@en ;
|
|
1253
|
+
rdfs:domain clinical:Supplement ;
|
|
1254
|
+
rdfs:range xsd:string .
|
|
1255
|
+
|
|
1256
|
+
clinical:cascadeUri a owl:ObjectProperty ;
|
|
1257
|
+
rdfs:label "Cascade URI"@en ;
|
|
1258
|
+
rdfs:comment "Stable Cascade Protocol identifier for the supplement"@en ;
|
|
1259
|
+
rdfs:domain clinical:Supplement ;
|
|
1260
|
+
rdfs:range rdfs:Resource .
|
|
1261
|
+
|
|
1262
|
+
clinical:dose a owl:DatatypeProperty ;
|
|
1263
|
+
rdfs:label "Dose"@en ;
|
|
1264
|
+
rdfs:comment "Dosage amount"@en ;
|
|
1265
|
+
rdfs:range xsd:string .
|
|
1266
|
+
|
|
1267
|
+
clinical:isActive a owl:DatatypeProperty ;
|
|
1268
|
+
rdfs:label "Is Active"@en ;
|
|
1269
|
+
rdfs:comment "Whether the medication/supplement is currently active"@en ;
|
|
1270
|
+
rdfs:range xsd:boolean .
|
|
1271
|
+
|
|
1272
|
+
# ============================================================================
|
|
1273
|
+
# Alignment with Healthcare Standards
|
|
1274
|
+
# ============================================================================
|
|
1275
|
+
|
|
1276
|
+
# LOINC Document Type Mappings (from C-CDA)
|
|
1277
|
+
# - Progress note: loinc:11506-3
|
|
1278
|
+
# - Discharge summary: loinc:18842-5
|
|
1279
|
+
# - Consultation note: loinc:11488-4
|
|
1280
|
+
# - History and physical: loinc:34117-2
|
|
1281
|
+
# - Procedure note: loinc:28570-0
|
|
1282
|
+
|
|
1283
|
+
# LOINC Section Codes (common C-CDA sections)
|
|
1284
|
+
# - Chief complaint: loinc:10154-3
|
|
1285
|
+
# - History of present illness: loinc:10164-2
|
|
1286
|
+
# - Past medical history: loinc:11348-0
|
|
1287
|
+
# - Medications: loinc:10160-0
|
|
1288
|
+
# - Allergies: loinc:48765-2
|
|
1289
|
+
# - Assessment: loinc:51848-0
|
|
1290
|
+
# - Plan: loinc:18776-5
|
|
1291
|
+
# - Results: loinc:30954-2
|
|
1292
|
+
|
|
1293
|
+
# SNOMED CT Mappings
|
|
1294
|
+
# - Clinical finding: sct:404684003
|
|
1295
|
+
# - Clinical document: sct:734163000
|
|
1296
|
+
|
|
1297
|
+
# ============================================================================
|
|
1298
|
+
# Changelog
|
|
1299
|
+
# ============================================================================
|
|
1300
|
+
#
|
|
1301
|
+
# Version 1.5 (2026-02-10)
|
|
1302
|
+
# - Added CoverageRecord class (11 properties) for insurance coverage data
|
|
1303
|
+
# Maps to fhir:Coverage. Layer 2 complement to checkup:InsuranceInfo (Layer 3).
|
|
1304
|
+
# Properties: providerName, memberId, groupNumber, planName, planType,
|
|
1305
|
+
# coverageType, relationship, effectivePeriodStart, effectivePeriodEnd,
|
|
1306
|
+
# payorName, subscriberId
|
|
1307
|
+
# - Added 3 new Procedure properties: procedureStatus, procedureCategory,
|
|
1308
|
+
# procedureSnomedCode
|
|
1309
|
+
# - Added administrationRoute property for Medication
|
|
1310
|
+
#
|
|
1311
|
+
# Version 1.4 (2026-01-28)
|
|
1312
|
+
# - Added 5 new lab result properties: orderingProvider, performingLab,
|
|
1313
|
+
# observationStatus, sourceRecordId, panelMembership
|
|
1314
|
+
# - Added LabTestSeries class for longitudinal lab result tracking
|
|
1315
|
+
# - 20 properties for identity, trending, reference ranges, source linkage
|
|
1316
|
+
# - Lab equivalent of MedicationUseEpisode
|
|
1317
|
+
# - Extended sourceEHR and provenanceClass domains to include LabResult
|
|
1318
|
+
# - Extended derivedFromRecord range to include LabResult
|
|
1319
|
+
#
|
|
1320
|
+
# Version 1.3 (2026-01-26)
|
|
1321
|
+
# - Added 14 medication enrichment properties from FHIR pipeline:
|
|
1322
|
+
# - Tier 1: prescriber, indication, courseOfTherapyType, asNeeded,
|
|
1323
|
+
# medicationForm, activeIngredient, ingredientStrength,
|
|
1324
|
+
# provenanceClass, sourceFhirResourceType, clinicalIntent
|
|
1325
|
+
# - Tier 2: refillsAllowed, supplyDurationDays, dispensedQuantity,
|
|
1326
|
+
# prescriptionCategory
|
|
1327
|
+
# - Full FHIR extraction pipeline: JSON → MedicationSummary → MedicationRecord → TTL
|
|
1328
|
+
# - All new fields serialized to TTL via ClinicalRDFSerializer
|
|
1329
|
+
# - SHACL shapes added with enumerated value constraints
|
|
1330
|
+
#
|
|
1331
|
+
# Version 1.2 (2026-01-15)
|
|
1332
|
+
# - Added MedicationUseEpisode class for longitudinal medication tracking
|
|
1333
|
+
# - Represents continuous periods of medication use
|
|
1334
|
+
# - Links to source MedicationRecord(s) via derivedFromRecord
|
|
1335
|
+
# - Includes inferred status with explainable confidence/reason
|
|
1336
|
+
# - Supports multi-system drug coding (RxNorm, NDC, SNOMED, ATC)
|
|
1337
|
+
# - Added Supplement class for dietary supplements and OTC products
|
|
1338
|
+
# - Explicit regulatoryStatus (dietarySupplement, otcDrug, homeopathic, herbalRemedy)
|
|
1339
|
+
# - evidenceStrength property for clinical evidence level
|
|
1340
|
+
# - DSLD integration for NIH supplement database
|
|
1341
|
+
# - Added ~25 new data properties for episode and supplement serialization
|
|
1342
|
+
# - Episode identity rules: gap > 90 days creates new episode
|
|
1343
|
+
# - Supplements intentionally do NOT create episodes (different regulatory status)
|
|
1344
|
+
#
|
|
1345
|
+
# Version 1.1 (2026-01-01)
|
|
1346
|
+
# - Added 7 structured clinical record classes: Medication, Allergy, LabResult,
|
|
1347
|
+
# Condition, Immunization, Procedure, VitalSign
|
|
1348
|
+
# - Added ~50 data properties for structured records
|
|
1349
|
+
# - Added vital sign component properties for multi-value observations (BP)
|
|
1350
|
+
# - Added SHACL shapes for all structured record types
|
|
1351
|
+
# - Validated with OWL-RL reasoner (no inconsistencies)
|
|
1352
|
+
# - Validated with Apache Jena SHACL validator
|
|
1353
|
+
#
|
|
1354
|
+
# Version 1.0 (2025-12-26)
|
|
1355
|
+
# - Initial release with document-centric vocabulary
|
|
1356
|
+
# - ClinicalDocument and subtypes (ProgressNote, DischargeSummary, etc.)
|
|
1357
|
+
# - ClinicalSection for document structure
|
|
1358
|
+
# - Document metadata properties (importedAt, sourceEHR, etc.)
|
|
1359
|
+
# - Narrative content properties
|
|
1360
|
+
#
|
|
1361
|
+
|
|
1362
|
+
# ============================================================================
|
|
1363
|
+
# Notes
|
|
1364
|
+
# ============================================================================
|
|
1365
|
+
|
|
1366
|
+
# Data Classification: Clinical-generated (EHR-verified)
|
|
1367
|
+
# All documents imported via clinical: vocabulary use cascade:ClinicalGenerated provenance
|
|
1368
|
+
# Source: Apple HealthKit HKClinicalRecord API
|
|
1369
|
+
# Privacy: Documents may contain PHI - encrypted storage required
|