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: articles/healthcare-apis/dicom/dicom-services-conformance-statement-v2.md
+18-16Lines changed: 18 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -46,7 +46,7 @@ You can find example requests for supported transactions in the [Postman collect
46
46
47
47
## Preamble Sanitization
48
48
49
-
The service ignores the 128-byte File Preamble, and replaces its contents with null characters. This behavior ensures that no files passed through the service are vulnerable to the [malicious preamble vulnerability](https://dicom.nema.org/medical/dicom/current/output/chtml/part10/sect_7.5.html). However, this also means that [preambles used to encode dual format content](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6489422/) such as TIFF can't be used with the service.
49
+
The service ignores the 128-byte File Preamble, and replaces its contents with null characters. This behavior ensures that no files passed through the service are vulnerable to the [malicious preamble vulnerability](https://dicom.nema.org/medical/dicom/current/output/chtml/part10/sect_7.5.html). However, this preamble sanitization also means that [preambles used to encode dual format content](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6489422/) such as TIFF can't be used with the service.
50
50
51
51
## Studies Service
52
52
@@ -91,12 +91,13 @@ Each file stored must have a unique combination of `StudyInstanceUID`, `SeriesIn
91
91
92
92
Only transfer syntaxes with explicit Value Representations are accepted.
93
93
94
+
> [!NOTE]
94
95
> Requests are limited to 2GB. No single DICOM file or combination of files may exceed this limit.
95
96
96
97
#### Store changes from v1
97
-
In previous versions, a Store request would fail if any of the [required](#store-required-attributes) or [searchable attributes](#searchable-attributes) failed validation. Beginning with V2, the request will only fail if **required attributes** fail validation.
98
+
In previous versions, a Store request would fail if any of the [required](#store-required-attributes) or [searchable attributes](#searchable-attributes) failed validation. Beginning with V2, the request fails only if **required attributes** fail validation.
98
99
99
-
Failed validation of attributes not required by the API results in the file being stored and a warning is given about each failing attribute per instance.
100
+
Failed validation of attributes not required by the API results in the file being stored with a warning. A warning is given about each failing attribute per instance.
100
101
When a sequence contains an attribute that fails validation, or when there are multiple issues with a single attribute, only the first failing attribute reason is noted.
101
102
102
103
#### Store response status codes
@@ -130,7 +131,7 @@ Each dataset in the `FailedSOPSequence` has the following elements (if the DICOM
130
131
| (0008, 1150) |`ReferencedSOPClassUID`| The SOP class unique identifier of the instance that failed to store. |
131
132
| (0008, 1155) |`ReferencedSOPInstanceUID`| The SOP instance unique identifier of the instance that failed to store. |
132
133
| (0008, 1197) |`FailureReason`| The reason code why this instance failed to store. |
133
-
| (0008, 1196) |`WarningReason`| A `WarningReason` indicates validation issues that were detected but were not severe enough to fail the store operation. |
134
+
| (0008, 1196) |`WarningReason`| A `WarningReason` indicates validation issues that were detected but weren't severe enough to fail the store operation. |
134
135
| (0074, 1048) |`FailedAttributesSequence`| The sequence of `ErrorComment` that includes the reason for each failed attribute. |
135
136
136
137
Each dataset in the `ReferencedSOPSequence` has the following elements:
@@ -348,7 +349,7 @@ The following `Accept` header is supported for retrieving metadata for a study,
348
349
349
350
*`application/dicom+json`
350
351
351
-
Retrieving metadata will not return attributes with the following value representations:
352
+
Retrieving metadata won't return attributes with the following value representations:
352
353
353
354
| VR Name | Description |
354
355
| :------ | :--------------------- |
@@ -365,7 +366,7 @@ Retrieving metadata will not return attributes with the following value represen
365
366
Cache validation is supported using the `ETag` mechanism. In the response to a metadata request, ETag is returned as one of the headers. This ETag can be cached and added as `If-None-Match` header in the later requests for the same metadata. Two types of responses are possible if the data exists:
366
367
367
368
* Data hasn't changed since the last request: `HTTP 304 (Not Modified)` response is sent with no response body.
368
-
* Data has changed since the last request: `HTTP 200 (OK)` response is sent with updated ETag. Required data will also be returned as part of the body.
369
+
* Data has changed since the last request: `HTTP 200 (OK)` response is sent with updated ETag. Required data is returned as part of the body.
369
370
370
371
### Retrieve response status codes
371
372
@@ -401,7 +402,7 @@ The following `Accept` header(s) are supported for searching:
401
402
*`application/dicom+json`
402
403
403
404
### Search changes from v1
404
-
In the v1 API and continued for v2, if an [extended query tag](dicom-extended-query-tags-overview.md) has any errors, because one or more of the existing instances had a tag value that could not be indexed, then subsequent search queries containing the extended query tag will return `erroneous-dicom-attributes` as detailed in the [documentation](dicom-extended-query-tags-overview.md#tag-query-status). However, tags (also known as attributes) with validation warnings from STOW-RS are **not** included in this header. If a store request results in validation warnings on [searchable tags](#searchable-attributes), subsequent searches containing these tags will not consider any DICOM SOP instance that produced a warning. This may result in incomplete search results.
405
+
In the v1 API and continued for v2, if an [extended query tag](dicom-extended-query-tags-overview.md) has any errors, because one or more of the existing instances had a tag value that couldn't be indexed, then subsequent search queries containing the extended query tag will return `erroneous-dicom-attributes` as detailed in the [documentation](dicom-extended-query-tags-overview.md#tag-query-status). However, tags (also known as attributes) with validation warnings from STOW-RS are **not** included in this header. If a store request results in validation warnings on [searchable tags](#searchable-attributes), subsequent searches containing these tags won't consider any DICOM SOP instance that produced a warning. This behavior may result in incomplete search results.
405
406
To correct an attribute, delete the stored instance and upload the corrected data.
406
407
407
408
### Supported search parameters
@@ -414,7 +415,7 @@ The following parameters for each query are supported:
414
415
|`includefield=`|`{attributeID}`<br/>`all`| 0...N | The additional attributes to return in the response. Both, public and private tags are supported.<br/>When `all` is provided, refer to [Search Response](#search-response) for more information about which attributes are returned for each query type.<br/>If a mixture of `{attributeID}` and `all` is provided, the server defaults to using `all`. |
415
416
|`limit=`|`{value}`| 0..1 | Integer value to limit the number of values returned in the response.<br/>Value can be between the range 1 >= x <= 200. Defaulted to 100. |
416
417
|`offset=`|`{value}`| 0..1 | Skip `{value}` results.<br/>If an offset is provided larger than the number of search query results, a 204 (no content) response is returned. |
417
-
|`fuzzymatching=`|`true` / `false`| 0..1 | If true fuzzy matching is applied to PatientName attribute. It does a prefix word match of any name part inside PatientName value. For example, if PatientName is "John^Doe", then "joh", "do", "jo do", "Doe" and "John Doe" will all match. However "ohn" won't match. |
418
+
|`fuzzymatching=`|`true` / `false`| 0..1 | If true fuzzy matching is applied to PatientName attribute. It does a prefix word match of any name part inside PatientName value. For example, if PatientName is "John^Doe", then "joh", "do", "jo do", "Doe" and "John Doe" all match. However "ohn" doesn't match. |
418
419
419
420
#### Searchable attributes
420
421
@@ -443,7 +444,7 @@ We support the following matching types.
443
444
444
445
| Search Type | Supported Attribute | Example |
445
446
| :---------- | :------------------ | :------ |
446
-
| Range Query |`StudyDate`/`PatientBirthDate`|`{attributeID}={value1}-{value2}`. For date/ time values, we support an inclusive range on the tag. This will be mapped to `attributeID >= {value1} AND attributeID <= {value2}`. If `{value1}` isn't specified, all occurrences of dates/times prior to and including `{value2}`will be matched. Likewise, if `{value2}` isn't specified, all occurrences of `{value1}` and subsequent dates/times will be matched. However, one of these values has to be present. `{attributeID}={value1}-` and `{attributeID}=-{value2}` are valid, however, `{attributeID}=-` is invalid. |
447
+
| Range Query |`StudyDate`/`PatientBirthDate`|`{attributeID}={value1}-{value2}`. For date/ time values, we support an inclusive range on the tag. This is mapped to `attributeID >= {value1} AND attributeID <= {value2}`. If `{value1}` isn't specified, all occurrences of dates/times prior to and including `{value2}`are matched. Likewise, if `{value2}` isn't specified, all occurrences of `{value1}` and subsequent dates/times are matched. However, one of these values has to be present. `{attributeID}={value1}-` and `{attributeID}=-{value2}` are valid, however, `{attributeID}=-` is invalid. |
447
448
| Exact Match | All supported attributes |`{attributeID}={value1}`|
448
449
| Fuzzy Match |`PatientName`, `ReferringPhysicianName`| Matches any component of the name that starts with the value. |
449
450
@@ -647,10 +648,11 @@ There are several requirements related to DICOM data attributes in the context o
647
648
required to be present, required to not be present, required to be empty, or required to not be empty. These requirements can be
648
649
found [in this table](https://dicom.nema.org/medical/dicom/current/output/html/part04.html#table_CC.2.5-3).
649
650
650
-
Notes on dataset attributes:
651
+
> [!NOTE]
652
+
> Although the reference table above says that SOP Instance UID shouldn't be present, this guidance is specific to the DIMSE protocol and is handled differently in DICOMWeb™. SOP Instance UID should be present in the dataset if not in the URI.
651
653
652
-
***SOP Instance UID:** Although the reference table above says that SOP Instance UID shouldn't be present, this guidance is specific to the DIMSE protocol and is handled differently in DICOMWeb™. SOP Instance UID should be present in the dataset if not in the URI.
653
-
***Conditional requirement codes:** All the conditional requirement codes including 1C and 2C are treated as optional.
654
+
> [!NOTE]
655
+
>All the conditional requirement codes including 1C and 2C are treated as optional.
654
656
655
657
#### Create response status codes
656
658
@@ -761,11 +763,11 @@ There are many requirements related to DICOM data attributes in the context of a
761
763
required to be present, required to not be present, required to be empty, or required to not be empty. These requirements can be
762
764
found in [this table](https://dicom.nema.org/medical/dicom/current/output/html/part04.html#table_CC.2.5-3).
763
765
764
-
Notes on dataset attributes:
765
-
766
-
***Conditional requirement codes:** All the conditional requirement codes including 1C and 2C are treated as optional.
766
+
> [!NOTE]
767
+
> All the conditional requirement codes including 1C and 2C are treated as optional.
767
768
768
-
* The request can't set the value of the Procedure Step State (0074,1000) attribute. Procedure Step State is managed using the Change State transaction, or the Request Cancellation transaction.
769
+
> [!NOTE]
770
+
> The request can't set the value of the Procedure Step State (0074,1000) attribute. Procedure Step State is managed using the Change State transaction, or the Request Cancellation transaction.
769
771
770
772
#### Update Workitem transaction response status codes
0 commit comments