You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/src/pages/Conformance.md
+41-29Lines changed: 41 additions & 29 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,12 +7,12 @@ permalink: /conformance/
7
7
---
8
8
9
9
# Conformance to the HL7 FHIR Specification
10
-
The IBM FHIR Server aims to be a conformant implementation of the HL7 FHIR specification, version 4.0.0 (R4). However, the FHIR specification is very broad and not all implementations are expected to implement every feature. We prioritize performance and configurability over spec coverage.
10
+
The IBM FHIR Server aims to be a conformant implementation of the HL7 FHIR specification, version 4.0.1 (R4). However, the FHIR specification is very broad and not all implementations are expected to implement every feature. We prioritize performance and configurability over spec coverage.
11
11
12
12
## Capability statement
13
13
The HL7 FHIR specification defines [an interaction](https://www.hl7.org/fhir/R4/http.html#capabilities) for retrieving a machine-readable description of the server's capabilities via the `[base]/metadata` endpoint. The IBM FHIR Server implements this interaction and generates a `CapabilityStatement` resource based on the current server configuration. While the `CapabilityStatement` resource is ideal for certain uses, this markdown document provides a human-readable summary of important details, with a special focus on limitations of the current implementation and deviations from the specification.
14
14
15
-
The IBM FHIR Server supports only version 4.0.0 of the specification and presently has no support for the MIME-type parameter `fhirVersion`.
15
+
The IBM FHIR Server supports only version 4.0.1 of the specification and presently has no support for the MIME-type parameter `fhirVersion`.
16
16
17
17
## FHIR HTTP API
18
18
The HL7 FHIR specification is more than just a data format. It defines an [HTTP API](https://www.hl7.org/fhir/R4/http.html) for creating, reading, updating, deleting, and searching over FHIR resources. The IBM FHIR Server implements almost the full API for every resource defined in the specification, with the following exceptions:
@@ -24,17 +24,21 @@ The IBM FHIR Server implements a linear versioning scheme for resources and full
24
24
### General parameters
25
25
The `_format` parameter is supported and provides a useful mechanism for requesting a specific format (`XML` or `JSON`) in requests made from a browser. In the absence of either an `Accept` header or a `_format` query parameter, the server defaults to `application/fhir+json`.
26
26
27
-
The `_pretty` parameter is also supported.
27
+
The `_pretty` parameter is also supported.
28
28
29
29
The `_summary` and `_elements` parameters are supported on the search interaction as documented.
30
30
31
31
## Search
32
-
The IBM FHIR Server supports search parameters of type `Number`, `Date/DateTime`, `String`, `Token`, `Reference`, `Quantity`, and `URI`.
33
-
34
-
Search parameters of type [Composite](https://www.hl7.org/fhir/R4/search.html#composite) and [Special](https://www.hl7.org/fhir/R4/search.html#special) are not currently supported.
35
-
36
-
For all other types, the IBM FHIR Server supports the parameters defined in the
37
-
specification and allows for the configuration of additional ones.
32
+
The IBM FHIR Server supports all search parameter types defined in the specification:
33
+
*`Number`
34
+
*`Date/DateTime`
35
+
*`String`
36
+
*`Token`
37
+
*`Reference`
38
+
*`Composite`
39
+
*`Quantity`
40
+
*`URI`
41
+
*`Special` (Location-near)
38
42
39
43
### Search parameters
40
44
Search parameters defined in the specification can be found by browsing the R4 FHIR specification by resource type. For example, to find the search parameters for the Patient resource, navigate to https://www.hl7.org/fhir/R4/patient.html and scroll to the Search Parameters section near the end of the page.
@@ -46,10 +50,14 @@ In addition, the following search parameters are supported on all resources:
46
50
*`_profile`
47
51
*`_security`
48
52
*`_source`
53
+
*`_type`
49
54
50
-
The `_text`, `_content`, `_list`, `_has`, `_type`, `_query`, and `_filter` parameters are not supported at this time.
55
+
These parameters can be used while searching any single resource type or while searching across resource types (whole system search).
56
+
The `_type` parameter is special in that it is only applicable for whole system search.
51
57
52
-
Finally, the specification defines a set of <q>Search result parameters</q> for controlling the search behavior. The IBM FHIR Server supports the following:
58
+
The `_text`, `_content`, `_list`, `_has`, `_query`, and `_filter` parameters are not supported at this time.
59
+
60
+
Finally, the specification defines a set of "Search result parameters" for controlling the search behavior. The IBM FHIR Server supports the following:
53
61
*`_sort`
54
62
*`_count`
55
63
*`_include`
@@ -71,24 +79,24 @@ For information on how to specify custom search parameters, see [FHIRSearchConfi
71
79
### Search modifiers
72
80
FHIR search modifiers are described at https://www.hl7.org/fhir/R4/search.html#modifiers and vary by search parameter type. The IBM FHIR Server implements a subset of the spec-defined search modifiers that is defined in the following table:
73
81
74
-
|FHIR Search Parameter Type|Supported Modifiers|"Default" search behavior when no Modifier is present|
82
+
|FHIR Search Parameter Type|Supported Modifiers|"Default" search behavior when no Modifier or Prefix is present|
|String |`:exact`,`:contains`,`:missing`|Performs a "starts with" search that is case-insensitive and accent-insensitive|
77
-
|Reference |`:[type]`,`:missing`|Performs an exact match search|
78
-
|URI |`:below`,`:above`,`:missing`|Performs a "starts with" search (issue #273), component based search for the path in the URL (issue #448)|
79
-
|Token |`:below`,`:not`,`:missing`|Performs an exact match search|
80
-
|Number |`:missing`|Honors prefix if present, otherwise performs an exact match search|
81
-
|Date |`:missing`|Honors prefix if present, otherwise performs an exact match search|
82
-
|Quantity |`:missing`|Honors prefix if present, otherwise performs an exact match search|
84
+
|String |`:exact`,`:contains`,`:missing`|"starts with" search that is case-insensitive and accent-insensitive|
85
+
|Reference |`:[type]`,`:missing`|exact match search|
86
+
|URI |`:below`,`:above`,`:missing`|exact match search|
87
+
|Token |`:below`,`:not`,`:missing`|exact match search|
88
+
|Number |`:missing`|exact match search|
89
+
|Date |`:missing`|exact match search|
90
+
|Quantity |`:missing`|implicit range search (see http://hl7.org/fhir/R4/search.html#quantity)|
91
+
|Composite |`:missing`|processes each parameter component according to its type|
92
+
|Special (near) | none |searches a bounding area according to the value of the `fhirServer/search/useBoundingRadius` property|
83
93
84
-
Note that the default IBM FHIR Server behavior for URI search parameters differs from the behavior defined at https://www.hl7.org/fhir/R4/search.html#uri.
94
+
Due to performance implications, the `:exact` modifier should be used for String searches where possible.
85
95
86
96
At present, modifiers cannot be used with chained parameters. For example, a search with query string like `subject:Basic.date:missing` will result in an `OperationOutcome` explaining that the search parameter could not be processed.
87
97
88
98
The `:text` modifier is not supported in this version of the FHIR server and use of this modifier will results in an HTTP 400 error with an `OperationOutcome` that describes the failure.
89
99
90
-
Due to performance implications, the `:exact` modifier should be used for String searches where possible.
91
-
92
100
### Search prefixes
93
101
FHIR search prefixes are described at https://www.hl7.org/fhir/R4/search.html#prefix.
94
102
@@ -147,20 +155,24 @@ For search parameters of type token that are defined on data fields of type `Con
147
155
Searching string values via a token search parameter is not currently supported.
148
156
149
157
### Searching on Number
150
-
For fields of type `decimal`, the IBM FHIR Server does not compute an implicit range for search. Search query values must match to the same precision, or greater precision, as the value in the resource.
158
+
For fields of type `decimal`, the IBM FHIR Server computes an implicit range when the query parameter value has a prefix of `eq` (the default), `ne`, or `ap`. The computed range is based on the number of significant figures passed in the query string and further information can be found at https://www.hl7.org/fhir/R4/search.html#number.
159
+
For searches with the `ap` prefix, we use the range `[implicitLowerBound - searchQueryValue * .1, implicitUpperBound + searchQueryValue * .1)` to ensure that the `ap` range is broader than the implicit range of `eq`.
151
160
152
161
### Searching on Quantity
153
-
Quantity elements are not indexed unless they include either a valid `system`**and**`code` for their unit **or** a human-readable `unit` field. Quantities that don't include a `value` element are also skipped.
162
+
Quantity elements are not indexed unless they include either a valid `system`**and**`code` for their unit **or** a human-readable `unit` field.
163
+
If a Quantity element contains both a coded unit **and** a display unit, then both will be indexed. Quantities that don't include a `value` element are also skipped.
164
+
165
+
The FHIR server does not perform any unit conversion or unit manipulation at this time. Quantity values should be searched using the same unit `code` that is included in the original resource.
154
166
155
-
The FHIR server does not perform any unit conversion or unit manipulation at this time. Quantity values **must** be searched using the same unit `code` that is included in the original resource. If, and only if, a coded unit is not present on a resource, then the FHIR server indexes the human-readable `unit` field, which can then be searched by omitting the `system` in the search query.
167
+
Similar to Numeric searches, the FHIR Server computes an implicit range for search query values with no range prefix (e.g. `eq`, `ne`, `ap`) based on the number of significant figures passed in the query string.
168
+
For searches with the `ap` prefix, we use the range `[implicitLowerBound - searchQueryValue * .1, implicitUpperBound + searchQueryValue * .1)` to ensure that the `ap` range is broader than the implicit range of `eq`.
156
169
157
170
The IBM FHIR Server does not consider the `Quantity.comparator` field as part of search processing at this time.
158
-
Similar to Numeric searches, the FHIR Server does not compute an implicit range for quantity values...the precise number given in the resource is required for retrieval via standard search (i.e. searches with either no prefix or the `eq` prefix).
159
171
160
172
### Searching on URI
161
-
URI searches on the IBM FHIR Server are case-insensitive, similar to the default behavior of searching on string values.
173
+
URI searches on the IBM FHIR Server are case-sensitive with "exact-match" semantics. The `above` and `below` prefixes can be used to perform path-based matching that is based on the `/` delimiter.
162
174
163
-
## HL7 FHIR R4 (v4.0.0) errata
175
+
## HL7 FHIR R4 (v4.0.1) errata
164
176
We add information here as we find issues with the artifacts provided with this version of the specification.
165
177
166
-
FHIR® is the registered trademark of HL7 and is used with the permission of HL7.
178
+
FHIR® is the registered trademark of HL7 and is used with the permission of HL7.
0 commit comments