DICOM 규칙 문 v2

참고 항목

API 버전 2는 최신 API 버전입니다. v1과 비교하여 v2의 변경 내용 목록은 DICOM 서비스 API v2 변경 내용을 참조 하세요.

DICOM®용 의료 이미징 서버는 DICOMweb 표준의 하위 집합을 지원합니다. 지원에는 다음이 포함됩니다.

또한 다음과 같은 비표준 API가 지원됩니다.

이 서비스는 REST API 버전 관리 버전을 사용합니다. REST API 버전은 다음 예제와 같이 기본 URL의 일부로 명시적으로 지정해야 합니다.

https://<service_url>/v<version>/studies

이 버전의 규칙 문은 v2 REST API의 버전에 해당합니다.

요청할 때 버전을 지정하는 방법에 대한 자세한 내용은 API 버전 관리 설명서를 참조 하세요.

Postman 컬렉션에서 지원되는 트랜잭션에 대한 예제 요청을 찾을 수 있습니다.

삭제 전처리

서비스는 128바이트 파일 프리앰블을 무시하고 해당 내용을 null 문자로 바꿉니다. 이 동작은 서비스를 통해 전달된 파일이 악의적인 프리앰블 취약성에 취약하지 않도록 합니다. 그러나 이 프리앰블 삭제는 TIFF와 같은 이중 형식 콘텐츠를 인코딩하는 데 사용되는 프리앰블을 서비스와 함께 사용할 수 없다는 것을 의미합니다.

Studies Service

Studies Service를 사용하면 DICOM 연구, 시리즈 및 인스턴스를 저장, 검색 및 검색할 수 있습니다. 전체 리소스 수명 주기를 사용하도록 비표준 삭제 트랜잭션을 추가했습니다.

Store(STOW-RS)

이 트랜잭션은 POST 또는 PUT 메서드를 사용하여 요청 페이로드에 포함된 연구, 계열 및 인스턴스의 표현을 저장합니다.

메서드 Path 설명
게시 .. /연구 인스턴스를 저장합니다.
게시 .. /studies/{study} 특정 연구에 대한 인스턴스를 저장합니다.
PUT .. /연구 Upsert 인스턴스.
PUT .. /studies/{study} 특정 연구에 대한 Upsert 인스턴스입니다.

매개 변수 study 는 DICOM 특성 StudyInstanceUID에 해당합니다. 지정된 경우 제공된 연구에 속하지 않는 인스턴스는 경고 코드로 43265 거부됩니다.

응답에 대한 다음 Accept 헤더가 지원됩니다.

  • application/dicom+json

지원되는 헤더는 다음과 Content-Type 같습니다.

  • multipart/related; type="application/dicom"
  • application/dicom

참고 항목

서버는 POST 요청에 대한 기존 데이터와 충돌하는 특성을 강제 변환하거나 대체하지 않습니다. 모든 데이터는 제공된 대로 저장됩니다. upsert(PUT) 요청의 경우 기존 데이터가 수신된 새 데이터로 대체됩니다.

필요한 특성 저장

저장하려는 모든 DICOM 파일에 다음 DICOM 요소가 있어야 합니다.

  • StudyInstanceUID
  • SeriesInstanceUID
  • SOPInstanceUID
  • SOPClassUID
  • PatientID

참고 항목

모든 UID는 1~64자 사이여야 하며 알파 숫자 문자 또는 다음 특수 문자.-만 포함해야 합니다. PatientID 은 필수 태그이며 입력에 null로 값을 가질 수 있습니다. PatientID 는 형식에 따라 유효성이 LOVR 검사됩니다.

저장된 각 파일에는 고유한 조합 , SeriesInstanceUIDSopInstanceUID.가 StudyInstanceUID있어야 합니다. 동일한 식별자를 가진 파일이 이미 있는 경우 경고 코드 45070 가 반환됩니다.

명시적 값 표현이 있는 전송 구문만 허용됩니다.

참고 항목

요청은 4GB로 제한됩니다. 단일 DICOM 파일 또는 파일 조합이 이 제한을 초과할 수 없습니다.

v1의 변경 내용 저장

이전 버전에서는 필수 또는 검색 가능한 특성 중 유효성 검사에 실패한 경우 Store 요청이 실패합니다. V2부터는 필요한 특성이 유효성 검사에 실패한 경우에만 요청이 실패합니다.

API에서 필요하지 않은 특성의 유효성 검사에 실패하면 파일이 경고와 함께 저장됩니다. 인스턴스당 실패한 각 특성에 대한 경고가 제공됩니다. 시퀀스에 유효성 검사에 실패한 특성이 포함되어 있거나 단일 특성에 여러 문제가 있는 경우 첫 번째 실패한 특성 이유만 기록됩니다.

특성이 null로 패딩된 경우 검색 가능한 경우 특성이 인덱싱되고 dicom+json 메타데이터에 있는 것처럼 저장됩니다. 유효성 검사 경고가 제공되지 않습니다.

응답 상태 코드 저장

코드 설명
200 (OK) 요청의 모든 SOP 인스턴스가 저장되었습니다.
202 (Accepted) 원본 서버는 일부 인스턴스를 저장했고 다른 인스턴스는 실패하거나 경고를 반환했습니다. 이 오류에 대한 추가 정보는 응답 메시지 본문에서 찾을 수 있습니다.
204 (No Content) 저장소 트랜잭션 요청에 콘텐츠가 제공되지 않았습니다.
400 (Bad Request) 요청 형식이 잘못되었습니다. 예를 들어 제공된 연구 인스턴스 식별자가 예상된 UID 형식을 준수하지 않았습니다.
401 (Unauthorized) 클라이언트가 인증되지 않았습니다.
406 (Not Acceptable) 지정된 Accept 헤더는 지원되지 않습니다.
409 (Conflict) 저장소 트랜잭션 요청의 인스턴스가 저장되지 않았습니다.
415 (Unsupported Media Type) 제공된 Content-Type 내용은 지원되지 않습니다.
424 (Failed Dependency) DICOM 서비스는 이 요청을 완료하기 위해 사용하는 리소스에 액세스할 수 없습니다. 예를 들어 연결된 Data Lake 저장소 또는 고객 관리형 키 암호화를 지원하기 위한 키 자격 증명 모음에 액세스하지 못하는 경우를 예로 들어 봅니다.
500 (Internal Server Error) 서버에 알 수 없는 내부 오류가 발생했습니다. 나중에 다시 시도하세요.
503 (Service Unavailable) 서비스를 사용할 수 없거나 사용 중입니다. 나중에 다시 시도하세요.

스토어 응답 페이로

응답 페이로드는 DICOM 데이터 세트를 다음 요소로 채웁니다.

태그 속성 설명
(0008, 1190) RetrieveURL StudyInstanceUID가 저장소 요청에 제공되고 하나 이상의 인스턴스가 성공적으로 저장된 경우 연구의 검색 URL입니다.
(0008, 1198) FailedSOPSequence 저장하지 못한 인스턴스의 시퀀스입니다.
(0008, 1199) ReferencedSOPSequence 저장된 인스턴스의 시퀀스입니다.

각 데이터 세트 FailedSOPSequence 에는 다음과 같은 요소가 있습니다(저장하려는 DICOM 파일을 읽을 수 있는 경우).

태그 속성 설명
(0008, 1150) ReferencedSOPClassUID 저장하지 못한 인스턴스의 SOP 클래스 고유 식별자입니다.
(0008, 1155) ReferencedSOPInstanceUID 저장하지 못한 인스턴스의 SOP 인스턴스 고유 식별자입니다.
(0008, 1197) FailureReason 이 인스턴스를 저장하지 못한 이유 코드입니다.
(0008, 1196) WarningReason A WarningReason 는 검색되었지만 저장소 작업에 실패할 만큼 심각하지 않은 유효성 검사 문제를 나타냅니다.
(0074, 1048) FailedAttributesSequence 해당 시 ErrorComment 퀀스에는 실패한 각 특성에 대한 이유가 포함됩니다.

각 데이터 세트에는 ReferencedSOPSequence 다음과 같은 요소가 있습니다.

태그 속성 설명
(0008, 1150) ReferencedSOPClassUID 저장된 인스턴스의 SOP 클래스 고유 식별자입니다.
(0008, 1155) ReferencedSOPInstanceUID 저장된 인스턴스의 SOP 인스턴스 고유 식별자입니다.
(0008, 1190) RetrieveURL DICOM 서버에서 이 인스턴스의 검색 URL입니다.

ReferencedSOPSequence에서 FailedAttributesSequence가 없는 헤더 application/dicom+json 가 있는 예제 응답Accept:

{
  "00081190":
  {
    "vr":"UR",
    "Value":["http://localhost/studies/d09e8215-e1e1-4c7a-8496-b4f6641ed232"]
  },
  "00081198":
  {
    "vr":"SQ",
    "Value":
    [{
      "00081150":
      {
        "vr":"UI","Value":["cd70f89a-05bc-4dab-b6b8-1f3d2fcafeec"]
      },
      "00081155":
      {
        "vr":"UI",
        "Value":["22c35d16-11ce-43fa-8f86-90ceed6cf4e7"]
      },
      "00081197":
      {
        "vr":"US",
        "Value":[43265]
      }
    }]
  },
  "00081199":
  {
    "vr":"SQ",
    "Value":
    [{
      "00081150":
      {
        "vr":"UI",
        "Value":["d246deb5-18c8-4336-a591-aeb6f8596664"]
      },
      "00081155":
      {
        "vr":"UI",
        "Value":["4a858cbb-a71f-4c01-b9b5-85f88b031365"]
      },
      "00081190":
      {
        "vr":"UR",
        "Value":["http://localhost/studies/d09e8215-e1e1-4c7a-8496-b4f6641ed232/series/8c4915f5-cc54-4e50-aa1f-9b06f6e58485/instances/4a858cbb-a71f-4c01-b9b5-85f88b031365"]
      }
    }]
  }
}

ReferencedSOPSequence에서 FailedAttributesSequence가 있는 헤더 application/dicom+json 가 있는 응답 예제Accept:

{
  "00081190":
  {
    "vr":"UR",
    "Value":["http://localhost/studies/d09e8215-e1e1-4c7a-8496-b4f6641ed232"]
  },
  "00081199":
  {
    "vr":"SQ",
    "Value":
    [{
      "00081150":
      {
        "vr":"UI",
        "Value":["d246deb5-18c8-4336-a591-aeb6f8596664"]
      },
      "00081155":
      {
        "vr":"UI",
        "Value":["4a858cbb-a71f-4c01-b9b5-85f88b031365"]
      },
      "00081190":
      {
        "vr":"UR",
        "Value":["http://localhost/studies/d09e8215-e1e1-4c7a-8496-b4f6641ed232/series/8c4915f5-cc54-4e50-aa1f-9b06f6e58485/instances/4a858cbb-a71f-4c01-b9b5-85f88b031365"]
      },
      "00081196": {
        "vr": "US",
        "Value": [
            1
        ]
      },
      "00741048": {
        "vr": "SQ",
        "Value": [
          {
            "00000902": {
              "vr": "LO",
              "Value": [
                "DICOM100: (0008,0020) - Content \"NotAValidDate\" does not validate VR DA: one of the date values does not match the pattern YYYYMMDD"
              ]
            }
          },
          {
            "00000902": {
              "vr": "LO",
              "Value": [
                "DICOM100: (0008,002a) - Content \"NotAValidDate\" does not validate VR DT: value does not mach pattern YYYY[MM[DD[HH[MM[SS[.F{1-6}]]]]]]"
              ]
            }
          }
        ]
      }
    }]
  }
}

저장 실패 이유 코드

코드 설명
272 일반적인 작업 처리 오류로 인해 저장소 트랜잭션이 인스턴스를 저장하지 않았습니다.
43264 DICOM 인스턴스가 유효성 검사에 실패했습니다.
43265 제공된 인스턴스 StudyInstanceUID 가 저장소 요청에 지정된 StudyInstanceUID 인스턴스와 일치하지 않습니다.
45070 동일한 StudyInstanceUIDSeriesInstanceUIDDICOM 인스턴스가 SopInstanceUID 이미 저장되었습니다. 콘텐츠를 업데이트하려면 먼저 이 인스턴스를 삭제합니다.
45071 DICOM 인스턴스가 다른 프로세스에 의해 만들어지거나 이전의 만들기 시도가 실패했으며 클린up 프로세스가 완료되지 않았습니다. 다시 만들기 전에 먼저 인스턴스를 삭제합니다.

경고 이유 코드 저장

코드 설명
45063 DICOM 인스턴스 데이터 집합이 SOP 클래스와 일치하지 않습니다. 연구 저장소 트랜잭션(섹션 10.5)에서는 인스턴스를 저장하는 동안 데이터 세트가 SOP 클래스의 제약 조건과 일치하지 않는 것으로 확인되었습니다.
1 연구 저장소 트랜잭션(섹션 10.5)에서는 데이터 세트에 유효성 검사 경고가 있음을 확인했습니다.

저장 오류 코드

코드 설명
100 제공된 인스턴스 특성이 유효성 검사 조건을 충족하지 못했습니다.

검색(WADO-RS)

이 트랜잭션 검색은 참조로 저장된 연구, 계열, 인스턴스 및 프레임 검색을 지원합니다.

메서드 Path 설명
GET .. /studies/{study} 연구 내의 모든 인스턴스를 검색합니다.
GET .. /studies/{study}/metadata 연구 내의 모든 인스턴스에 대한 메타데이터를 검색합니다.
GET .. /studies/{study}/series/{series} 계열 내의 모든 인스턴스를 검색합니다.
GET .. /studies/{study}/series/{series}/metadata 계열 내의 모든 인스턴스에 대한 메타데이터를 검색합니다.
GET .. /studies/{study}/series/{series}/instances/{instance} 단일 인스턴스를 검색합니다.
GET .. /studies/{study}/series/{series}/instances/{instance}/metadata 단일 인스턴스에 대한 메타데이터를 검색합니다.
GET .. /studies/{study}/series/{series}/instances/{instance}/rendered 이미지 형식으로 렌더링된 인스턴스를 검색합니다.
GET .. /studies/{study}/series/{series}/instances/{instance}/frames/{frames} 단일 인스턴스에서 하나 이상의 프레임을 검색합니다. 둘 이상의 프레임을 지정하기 위해 쉼표는 반환할 각 프레임을 구분합니다. 예들 들어 /studies/1/series/2/instance/3/frames/4,5,6입니다.
GET .. /studies/{study}/series/{series}/instances/{instance}/frames/{frame}/rendered 이미지 형식으로 렌더링된 단일 프레임을 검색합니다.

연구 또는 계열 내의 인스턴스 검색

다음 Accept 헤더는 연구 또는 계열 내에서 인스턴스를 검색하는 데 지원됩니다.

  • multipart/related; type="application/dicom"; transfer-syntax=*
  • multipart/related; type="application/dicom"; (transfer-syntax가 지정되지 않은 경우 1.2.840.10008.1.2.1이 기본값으로 사용됨)
  • multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.1
  • multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.4.90
  • */* (transfer-syntax가 지정 * 되지 않은 경우 기본값으로 사용되며 mediaType 기본값은 다음과 같습니다. application/dicom)

인스턴스 검색

다음 Accept 헤더는 특정 인스턴스를 검색하는 데 지원됩니다.

  • application/dicom; transfer-syntax=*
  • multipart/related; type="application/dicom"; transfer-syntax=*
  • application/dicom; (transfer-syntax가 지정되지 1.2.840.10008.1.2.1 않은 경우 기본값으로 사용됨)
  • multipart/related; type="application/dicom" (transfer-syntax가 지정되지 1.2.840.10008.1.2.1 않은 경우 기본값으로 사용됨)
  • application/dicom; transfer-syntax=1.2.840.10008.1.2.1
  • multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.1
  • application/dicom; transfer-syntax=1.2.840.10008.1.2.4.90
  • multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.4.90
  • */* (transfer-syntax가 지정 * 되지 않은 경우 기본값으로 사용되며 mediaType 기본값은 다음과 같습니다. application/dicom)

프레임 검색

프레임 검색을 위해 지원되는 헤더는 다음과 Accept 같습니다.

  • multipart/related; type="application/octet-stream"; transfer-syntax=*
  • multipart/related; type="application/octet-stream"; (transfer-syntax가 지정되지 1.2.840.10008.1.2.1 않은 경우 기본값으로 사용됨)
  • multipart/related; type="application/octet-stream"; transfer-syntax=1.2.840.10008.1.2.1
  • multipart/related; type="image/jp2"; (transfer-syntax가 지정되지 1.2.840.10008.1.2.4.90 않은 경우 기본값으로 사용됨)
  • multipart/related; type="image/jp2";transfer-syntax=1.2.840.10008.1.2.4.90
  • application/octet-stream; transfer-syntax=* 단일 프레임 검색용
  • */* (transfer-syntax가 지정 * 되지 않은 경우 기본값으로 사용되며 mediaType 기본값은 다음과 같습니다. application/octet-stream)

전송 구문 검색

요청된 전송 구문이 원래 파일과 다른 경우 원래 파일은 요청된 전송 구문으로 트랜스코딩됩니다. 원래 파일은 코드 변환이 성공하려면 다음 형식 중 하나여야 합니다. 그렇지 않으면 코드 변환이 실패할 수 있습니다.

  • 1.2.840.10008.1.2(Little Endian 암시적)
  • 1.2.840.10008.1.2.1(Little Endian Explicit)
  • 1.2.840.10008.1.2.2(명시적 VR 빅 엔디안)
  • 1.2.840.10008.1.2.4.50(JPEG 기준 프로세스 1)
  • 1.2.840.10008.1.2.4.57(JPEG 무손실)
  • 1.2.840.10008.1.2.4.70(JPEG 무손실 선택 값 1)
  • 1.2.840.10008.1.2.4.90(JPEG 2000 무손실 전용)
  • 1.2.840.10008.1.2.4.91(JPEG 2000)
  • 1.2.840.10008.1.2.5(RLE 무손실)

지원 transfer-syntax 되지 않는 결과는 .입니다 406 Not Acceptable.

메타데이터 검색(연구, 계열 또는 인스턴스용)

다음 Accept 헤더는 연구, 계열 또는 인스턴스에 대한 메타데이터를 검색하는 데 지원됩니다.

  • application/dicom+json

메타데이터를 검색해도 다음 값 표현이 있는 특성은 반환되지 않습니다.

VR 이름 설명
OB 기타 바이트
OD 기타 Double
OF 기타 Float
OL 기타 긴
OV 기타 64비트 매우 긴
OW 기타 단어
UN Unknown

검색된 메타데이터에는 특성이 null로 채워지고 있는 그대로 저장될 때 null 문자가 포함됩니다.

메타데이터 캐시 유효성 검사 검색(연구, 계열 또는 인스턴스용)

캐시 유효성 검사는 메커니즘을 사용하여 지원됩니다 ETag . 메타데이터 요청에 대한 응답에서 ETag는 헤더 중 하나로 반환됩니다. 이 ETag는 동일한 메타데이터에 대한 이후 요청에서 캐시되고 헤더로 If-None-Match 추가될 수 있습니다. 데이터가 있는 경우 두 가지 유형의 응답이 가능합니다.

  • 마지막 요청 HTTP 304 (Not Modified) 이후 데이터는 변경되지 않습니다. 응답 본문 없이 응답이 전송됩니다.
  • 마지막 요청 이후 변경된 데이터: HTTP 200 (OK) 업데이트된 ETag를 사용하여 응답이 전송됩니다. 필수 데이터는 본문의 일부로 반환됩니다.

렌더링된 이미지 검색(예: 또는 프레임)

렌더링된 이미지를 인스턴스 또는 프레임으로 검색하는 데 지원되는 헤더는 다음과 같습니다 Accept .

  • image/jpeg
  • image/png

헤더가 지정되지 않은 Accept 경우 서비스는 기본적으로 렌더링됩니다 image/jpeg .

이 서비스는 단일 프레임의 렌더링만 지원합니다. 여러 프레임이 있는 인스턴스에 렌더링이 요청되면 기본적으로 첫 번째 프레임만 이미지로 렌더링됩니다.

반환할 특정 프레임을 지정하면 프레임 인덱싱이 1부터 시작됩니다.

quality 쿼리 매개 변수도 지원됩니다. 쿼리 매개 변수의 값으로 전달될 수 있는 정수 값과 포함 값( 1100 1은 최악의 품질, 100은 최고 품질)입니다. 이 매개 변수는 렌더링 jpeg된 이미지에 사용되며 렌더링 요청에 대해서는 png 무시됩니다. 지정하지 않으면 매개 변수의 기본값은 .입니다 100.

원래 버전 검색

대량 업데이트 작업을 사용하면 연구, 계열 또는 인스턴스의 원래 버전과 최신 버전을 검색할 수 있습니다. 기본적으로 최신 버전의 연구, 계열 또는 인스턴스가 항상 반환됩니다. 헤더를 .로 설정 msdicom-request-original 하여 원래 버전을 반환할 true수 있습니다. 예제 요청은 다음과 같습니다.

GET ../studies/{study}/series/{series}/instances/{instance}
Accept: multipart/related; type="application/dicom"; transfer-syntax=*
msdicom-request-original: true
Content-Type: application/dicom

응답 상태 코드 검색

코드 설명
200 (OK) 요청된 모든 데이터가 검색되었습니다.
304 (Not Modified) 요청된 데이터는 마지막 요청 이후 변경되지 않습니다. 이러한 경우 콘텐츠가 응답 본문에 추가되지 않습니다. 자세한 내용은 위의 섹션 검색 메타데이터 캐시 유효성 검사(연구, 계열 또는 인스턴스)를 참조하세요.
400 (Bad Request) 요청 형식이 잘못되었습니다. 예를 들어 제공된 연구 인스턴스 식별자가 예상된 UID 형식을 준수하지 않거나 요청된 전송 구문 인코딩이 지원되지 않습니다.
401 (Unauthorized) 클라이언트가 인증되지 않았습니다.
403 (Forbidden) 사용자에게 권한이 없습니다.
404 (Not Found) 지정된 DICOM 리소스를 찾을 수 없거나 렌더링된 요청에 대해 인스턴스에 픽셀 데이터가 포함되지 않았습니다.
406 (Not Acceptable) 지정된 Accept 헤더가 지원되지 않거나 요청된 파일이 너무 커서 렌더링 및 트랜스코드 요청에 대해 지원되지 않습니다.
424 (Failed Dependency) DICOM 서비스는 이 요청을 완료하기 위해 사용하는 리소스에 액세스할 수 없습니다. 예를 들어 연결된 Data Lake 저장소 또는 고객 관리형 키 암호화를 지원하기 위한 키 자격 증명 모음에 액세스하지 못하는 경우를 예로 들어 봅니다.
503 (Service Unavailable) 서비스를 사용할 수 없거나 사용 중입니다. 나중에 다시 시도하세요.

검색(QIDO-RS)

QIDO(DICOM 개체)의 ID를 기반으로 하는 쿼리를 사용하면 특성별로 연구, 계열 및 인스턴스를 검색할 수 있습니다.

메서드 Path 설명
연구 검색
GET .. /연구?... 연구 검색
계열 검색
GET .. /시리즈?... 계열 검색
GET .. /studies/{study}/series?... 연구에서 계열 검색
인스턴스 검색
GET .. /인스턴스?... 인스턴스 검색
GET .. /studies/{study}/instances?... 연구에서 인스턴스 검색
GET .. /studies/{study}/series/{series}/instances?... 계열의 인스턴스 검색

검색에 지원되는 헤더는 다음과 Accept 같습니다.

  • application/dicom+json

v1에서 변경 내용 검색

v1 API에서 v2에 대해 계속합니다. 기존 인스턴스 중 하나 이상에 인덱싱할 수 없는 태그 값이 있기 때문에 확장 쿼리 태그에 오류가 있는 경우 확장 쿼리 태그가 포함된 후속 검색 쿼리는 설명서자세히 설명된 대로 반환 erroneous-dicom-attributes 됩니다. 그러나 STOW-RS의 유효성 검사 경고가 있는 태그(특성이라고도 함)는 이 헤더에 포함되지 않습니다 . 저장소 요청으로 인해 인스턴스가 저장될 때 검색 가능한 특성에 대한 유효성 검사 경고가 발생하는 경우 해당 특성은 저장된 인스턴스를 검색하는 데 사용되지 않을 수 있습니다. 그러나 유효성 검사에 실패한 검색 가능한 특성 은 실패한 후 저장된 동일한 연구 또는 계열의 인스턴스에서 값을 덮어쓰거나 값이 이전 인스턴스에 의해 이미 올바르게 저장되어 있는 경우 결과를 반환할 수 있습니다. 특성 값을 덮어쓰지 않으면 검색 결과가 생성되지 않습니다.

특성은 다음과 같은 방법으로 수정할 수 있습니다.

  • 저장된 인스턴스를 삭제하고 수정된 데이터를 사용하여 새 인스턴스 업로드

  • 수정된 데이터를 사용하여 동일한 연구/시리즈에서 새 인스턴스 업로드

지원되는 검색 매개 변수

각 쿼리에 대해 지원되는 매개 변수는 다음과 같습니다.

지원 값 허용된 개수 설명
{attributeID}= {value} 0...N 쿼리에서 특성/값 일치를 검색합니다.
includefield= {attributeID}
all
0...N 응답에서 반환할 다른 특성입니다. 공용 태그와 프라이빗 태그가 모두 지원됩니다.
all 제공된 경우 자세한 내용은 검색 응답을 참조하세요.
혼합 {attributeID}all 제공된 경우 서버는 기본적으로 .를 사용합니다 all.
limit= {value} 0..1 응답에서 반환되는 값의 수를 제한하는 정수 값입니다.
값은 범위 1 >= x <= 200 사이일 수 있습니다. 기본값은 100입니다.
offset= {value} 0..1 결과를 건너뜁니다 {value} .
오프셋이 검색 쿼리 결과 수보다 큰 경우 204(콘텐츠 없음) 응답이 반환됩니다.
fuzzymatching= true / false 0..1 True 유사 항목 일치가 PatientName 특성에 적용되는 경우 PatientName 값 내에 있는 이름 부분의 접두사 단어 일치를 수행합니다. 예를 들어 PatientName이 "John^Doe"이면 "joh", "do", "jo do", "Doe" 및 "John Doe"가 모두 일치합니다. 그러나 "ohn"은 일치하지 않습니다.

검색 가능한 특성

다음 특성 및 검색 유형 검색을 지원합니다.

특성 키워드 모든 연구 모든 계열 모든 인스턴스 연구 시리즈 연구 인스턴스 연구 계열의 인스턴스
StudyInstanceUID X X X
PatientName X X X
PatientID X X X
PatientBirthDate X X X
AccessionNumber X X X
ReferringPhysicianName X X X
StudyDate X X X
StudyDescription X X X
ModalitiesInStudy X X X
SeriesInstanceUID X X X X
Modality X X X X
PerformedProcedureStepStartDate X X X X
ManufacturerModelName X X X X
SOPInstanceUID X X X

참고 항목

특성에 대해 빈 문자열을 사용하여 검색하는 것은 지원되지 않습니다.

검색 일치

다음과 같은 일치 형식을 지원합니다.

검색 유형 지원되는 특성 예시
범위 쿼리 StudyDate/PatientBirthDate {attributeID}={value1}-{value2}. 날짜/시간 값의 경우 태그에 포괄 범위를 지원합니다. 이 범위는 .에 매핑됩니다 attributeID >= {value1} AND attributeID <= {value2}. 지정하지 않으면 {value1} 이전 및 포함 {value2} 날짜/횟수의 모든 항목이 일치합니다. 마찬가지로, 지정되지 않은 경우 {value2} 모든 발생 날짜 {value1} 및 후속 날짜/시간이 일치합니다. 그러나 이러한 값 중 하나가 있어야 합니다. {attributeID}={value1}-{attributeID}=-{value2} 그러나 유효 {attributeID}=- 하지 않습니다.
정확하게 일치 지원되는 모든 특성 {attributeID}={value1}
유사 항목 일치 PatientName, ReferringPhysicianName 값으로 시작하는 이름의 구성 요소와 일치합니다.

특성 ID

쿼리 매개 변수에 대해 여러 가지 방법으로 태그를 인코딩할 수 있습니다. PS3.18 6.7.1.1.1에 정의된 표준을 부분적으로 구현했습니다. 태그에 대한 다음 인코딩이 지원됩니다.

예시
{group}{element} 0020000D
{dicomKeyword} StudyInstanceUID

인스턴스를 검색하는 예제 쿼리:

../instances?Modality=CT&00280011=512&includefield=00280010&limit=5&offset=0

검색 응답

응답은 DICOM 데이터 세트의 배열입니다. 리소스에 따라 기본적으로 다음 특성이 반환됩니다.

기본 연구 태그

태그 특성 이름
(0008, 0020) StudyDate
(0008, 0050) AccessionNumber
(0008, 1030) StudyDescription
(0009, 0090) ReferringPhysicianName
(0010, 0010) PatientName
(0010, 0020) PatientID
(0010, 0030) PatientBirthDate
(0020, 000D) StudyInstanceUID

기본 계열 태그

태그 특성 이름
(0008, 0060) Modality
(0008, 1090) ManufacturerModelName
(0020, 000E) SeriesInstanceUID
(0040, 0244) PerformedProcedureStepStartDate

기본 인스턴스 태그

태그 특성 이름
(0008, 0018) SOPInstanceUID

이 경우 includefield=all이러한 특성이 기본 특성과 함께 포함됩니다. 이 목록에는 기본 특성과 함께 각 리소스 수준에서 지원되는 특성의 전체 목록이 포함되어 있습니다.

기타 연구 태그

태그 특성 이름
(0008, 0005) SpecificCharacterSet
(0008, 0030) StudyTime
(0008, 0056) InstanceAvailability
(0008, 0201) TimezoneOffsetFromUTC
(0008, 0063) AnatomicRegionsInStudyCodeSequence
(0008, 1032) ProcedureCodeSequence
(0008, 1060) NameOfPhysiciansReadingStudy
(0008, 1080) AdmittingDiagnosesDescription
(0008, 1110) ReferencedStudySequence
(0010, 1010) PatientAge
(0010, 1020) PatientSize
(0010, 1030) PatientWeight
(0010, 2180) Occupation
(0010, 21B0) AdditionalPatientHistory
(0010, 0040) PatientSex
(0020, 0010) StudyID

기타 계열 태그

태그 특성 이름
(0008, 0005) SpecificCharacterSet
(0008, 0201) TimezoneOffsetFromUTC
(0020, 0011) SeriesNumber
(0020, 0060) 횡적도
(0008, 0021) SeriesDate
(0008, 0031) SeriesTime
(0008, 103E) SeriesDescription
(0040, 0245) PerformedProcedureStepStartTime
(0040, 0275) RequestAttributesSequence

기타 인스턴스 태그

태그 특성 이름
(0008, 0005) SpecificCharacterSet
(0008, 0016) SOPClassUID
(0008, 0056) InstanceAvailability
(0008, 0201) TimezoneOffsetFromUTC
(0020, 0013) InstanceNumber
(0028, 0010)
(0028, 0011)
(0028, 0100) BitsAllocated
(0028, 0008) NumberOfFrames

다음 특성이 반환됩니다.

  • 리소스 URL의 모든 일치 쿼리 매개 변수 및 UID입니다.
  • IncludeField 해당 리소스 수준에서 지원되는 특성입니다.
  • 대상 리소스인 All SeriesStudy 경우 수준 특성도 반환됩니다.
  • 대상 리소스인 All InstancesStudySeries 경우 수준 특성도 반환됩니다.
  • 대상 리소스인 Study's InstancesSeries 경우 수준 특성도 반환됩니다.
  • NumberOfStudyRelatedInstances집계된 특성은 수준에서 includeField지원됩니다Study.
  • NumberOfSeriesRelatedInstances집계된 특성은 수준에서 includeField지원됩니다Series.

검색 응답 코드

쿼리 API는 응답에서 다음 상태 코드 중 하나를 반환합니다.

코드 설명
200 (OK) 응답 페이로드에는 일치하는 모든 리소스가 포함됩니다.
204 (No Content) 검색이 성공적으로 완료되었지만 결과가 반환되지 않았습니다.
400 (Bad Request) 쿼리 구성 요소가 잘못되었기 때문에 서버에서 쿼리를 수행할 수 없습니다. 응답 본문에는 실패에 대한 세부 정보가 포함되어 있습니다.
401 (Unauthorized) 클라이언트가 인증되지 않았습니다.
403 (Forbidden) 사용자에게 권한이 없습니다.
424 (Failed Dependency) DICOM 서비스는 이 요청을 완료하기 위해 사용하는 리소스에 액세스할 수 없습니다. 예를 들어 연결된 Data Lake 저장소 또는 고객 관리형 키 암호화를 지원하기 위한 키 자격 증명 모음에 액세스하지 못하는 경우를 예로 들어 봅니다.
503 (Service Unavailable) 서비스를 사용할 수 없거나 사용 중입니다. 나중에 다시 시도하세요.

주의

  • 이 쿼리를 TimezoneOffsetFromUTC (00080201) 사용하는 쿼리는 지원되지 않습니다.
  • 쿼리 API가 반환 413 (request entity too large)되지 않습니다. 요청된 쿼리 응답 제한이 허용 범위를 벗어나면 잘못된 요청이 반환됩니다. 허용 범위 내에서 요청된 모든 항목이 확인됩니다.
  • 대상 리소스가 Study/Series인 경우 여러 인스턴스에서 일관되지 않은 연구/계열 수준 메타데이터가 발생할 가능성이 있습니다. 예를 들어 두 인스턴스에는 patientName이 다를 수 있습니다. 이 경우 최신 데이터만 검색할 수 있습니다.
  • 페이징된 결과는 일치하는 최신 인스턴스를 먼저 반환하도록 최적화되어 쿼리와 일치하는 최신 데이터가 추가된 경우 후속 페이지에서 중복 레코드가 발생할 수 있습니다.
  • 일치는 PN VR 형식의 경우 대/소문자를 구분하고 악센트를 구분하지 않습니다.
  • 일치는 다른 문자열 VR 형식에 대해 대/소문자를 구분하고 악센트를 구분합니다.
  • 첫 번째 값만 여러 값을 잘못 포함하는 단일 값 데이터 요소의 인덱싱됩니다.
  • 기본 특성을 사용하거나 요청된 결과 수를 제한하면 성능이 최대화됩니다.
  • null 패딩을 사용하여 특성을 저장한 경우 URI 인코딩에서 null 패딩을 사용하거나 사용하지 않고 검색할 수 있습니다. 검색된 결과는 null 패딩을 사용 또는 사용하지 않고 저장된 특성에 대한 것입니다.

삭제

이 트랜잭션은 공식 DICOMweb Standard의 일부가 아닙니다. DELETE 메서드를 사용하여 저장소에서 연구, 계열 및 인스턴스의 표현을 제거합니다.

메서드 Path 설명
DELETE .. /studies/{study} 특정 연구에 대한 모든 인스턴스를 삭제합니다.
DELETE .. /studies/{study}/series/{series} 연구 내의 특정 계열에 대한 모든 인스턴스를 삭제합니다.
DELETE .. /studies/{study}/series/{series}/instances/{instance} 계열 내의 특정 인스턴스를 삭제합니다.

매개 변수 study, seriesinstance DICOM 특성 StudyInstanceUIDSeriesInstanceUID해당하며 SopInstanceUID 각각에 해당합니다.

요청의 Accept 헤더, Content-Type 헤더 또는 본문 콘텐츠에는 제한이 없습니다.

참고 항목

삭제 트랜잭션 후에는 삭제된 인스턴스를 복구할 수 없습니다.

응답 상태 코드

코드 설명
204 (No Content) 모든 SOP 인스턴스가 삭제되는 경우
400 (Bad Request) 요청 형식이 잘못되었습니다.
401 (Unauthorized) 클라이언트가 인증되지 않았습니다.
403 (Forbidden) 사용자에게 권한이 없습니다.
404 (Not Found) 연구 내에서 지정된 계열을 찾을 수 없거나 계열 내에서 지정된 인스턴스를 찾을 수 없는 경우
424 (Failed Dependency) DICOM 서비스는 이 요청을 완료하기 위해 사용하는 리소스에 액세스할 수 없습니다. 예를 들어 연결된 Data Lake 저장소 또는 고객 관리형 키 암호화를 지원하기 위한 키 자격 증명 모음에 액세스하지 못하는 경우를 예로 들어 봅니다.
503 (Service Unavailable) 서비스를 사용할 수 없거나 사용 중입니다. 나중에 다시 시도하세요.

응답 페이로드 삭제

응답 본문이 비어 있습니다. 상태 코드는 반환되는 유일한 유용한 정보입니다.

UPS-RS(Worklist Service)

DICOM 서비스는 작업 목록 서비스(UPS-RS)의 SOP 푸시 및 풀을 지원합니다. 이 서비스는 Workitems를 포함하는 하나의 작업 목록에 대한 액세스를 제공하며, 각 작업 목록은 UPS(통합 프로시저 단계)를 나타냅니다.

전체적으로 URI 템플릿의 변수 {workitem} 는 Workitem UID를 의미합니다.

사용 가능한 UPS-RS 엔드포인트는 다음과 같습니다.

동사 Path 설명
게시 {s}/workitems{? AffectedSOPInstanceUID} 작업 항목 만들기
게시 {s}/workitems/{instance}{?transaction} 작업 항목 업데이트
GET {s}/workitems{?query*} 작업 항목 검색
GET {s}/workitems/{instance} 작업 항목 검색
PUT {s}/workitems/{instance}/state 작업 항목 상태 변경
게시 {s}/workitems/{instance}/cancelrequest 작업 항목 취소
게시 {s}/workitems/{instance}/subscribers/{AETitle}{?deletionlock} 구독 만들기
게시 {s}/workitems/1.2.840.10008.5.1.4.34.5/ 구독 일시 중단
DELETE {s}/workitems/{instance}/subscribers/{AETitle} 구독 삭제
GET {s}/subscribers/{AETitle} 구독 채널 열기

Workitem 만들기

이 트랜잭션은 POST 메서드를 사용하여 새 Workitem을 만듭니다.

메서드 Path 설명
게시 .. /workitems Workitem을 만듭니다.
게시 .. /workitems? {workitem} 지정된 UID를 사용하여 Workitem을 만듭니다.

URI에 지정하지 않으면 페이로드 데이터 세트에 특성의 Workitem이 SOPInstanceUID 포함되어야 합니다.

요청에는 Accept 헤더와 Content-Type 헤더가 필요하며 둘 다 값 application/dicom+json이 있어야 합니다.

특정 트랜잭션의 컨텍스트에서 DICOM 데이터 특성과 관련된 몇 가지 요구 사항이 있습니다. 특성이 있어야 하거나, 존재하지 않거나, 비워야 하거나, 비어 있지 않은 것이 필요할 수 있습니다. 이러한 요구 사항은 이 표에서 찾을 수 있습니다.

참고 항목

참조 테이블에 SOP 인스턴스 UID가 있으면 안 된다고 표시되지만 이 지침은 DIMSE 프로토콜에 따라 다르며 DICOMWeb에서 다르게 처리됩니다. SOP 인스턴스 UID는 URI에 없는 경우 데이터 세트에 있어야 합니다.

참고 항목

1C 및 2C를 포함한 모든 조건부 요구 사항 코드는 선택 사항으로 처리됩니다.

응답 상태 코드 만들기

코드 설명
201 (Created) 대상 Workitem이 성공적으로 생성되었습니다.
400 (Bad Request) 요청에 문제가 있었습니다. 예를 들어 요청 페이로드가 요구 사항을 충족하지 못했습니다.
401 (Unauthorized) 클라이언트가 인증되지 않았습니다.
403 (Forbidden) 사용자에게 권한이 없습니다.
409 (Conflict) Workitem이 이미 있습니다.
415 (Unsupported Media Type) 제공된 Content-Type 내용은 지원되지 않습니다.
424 (Failed Dependency) DICOM 서비스는 이 요청을 완료하기 위해 사용하는 리소스에 액세스할 수 없습니다. 예를 들어 연결된 Data Lake 저장소 또는 고객 관리형 키 암호화를 지원하기 위한 키 자격 증명 모음에 액세스하지 못하는 경우를 예로 들어 봅니다.
503 (Service Unavailable) 서비스를 사용할 수 없거나 사용 중입니다. 나중에 다시 시도하세요.

응답 페이로드 만들기

성공 응답에는 페이로드가 없습니다. LocationContent-Location 응답 헤더에는 생성된 Workitem에 대한 URI 참조가 포함됩니다.

실패 응답 페이로드에는 실패를 설명하는 메시지가 포함되어 있습니다.

취소 요청

이 트랜잭션을 사용하면 사용자가 소유하지 않은 Workitem의 취소를 요청할 수 있습니다.

유효한 작업 영역 상태는 다음과 같습니다.

  • SCHEDULED
  • IN PROGRESS
  • CANCELED
  • COMPLETED

이 트랜잭션은 상태의 Workitems에 SCHEDULED 대해서만 성공합니다. 모든 사용자는 트랜잭션 UID를 설정하고 상태를 .로 변경하여 Workitem의 소유권을 클레임할 IN PROGRESS수 있습니다. 그 때부터 사용자는 올바른 트랜잭션 UID를 제공하여 Workitem을 수정할 수 있습니다. UPS는 취소 요청 및 기타 이벤트를 전달할 수 있도록 하는 Watch 및 Event SOP 클래스를 정의하지만, 이 DICOM 서비스는 이러한 클래스를 구현하지 않으므로 오류를 반환하는 작업 영역에서 취소 요청이 IN PROGRESS 발생합니다. 소유된 Workitem은 변경 작업 영역 상태 트랜잭션을 통해 취소할 수 있습니다.

메서드 Path 설명
게시 .. /workitems/{workitem}/cancelrequest 예약된 Workitem의 취소 요청

헤더가 Content-Type 필요하며 값 application/dicom+json이 있어야 합니다.

요청 페이로드에는 DICOM 표준에 정의된 작업 정보가 포함될 수 있습니다.

요청 취소 응답 상태 코드

코드 설명
202 (Accepted) 서버에서 요청을 수락했지만 대상 작업 영역 상태는 아직 변경되지 않았습니다.
400 (Bad Request) 요청 구문에 문제가 있습니다.
401 (Unauthorized) 클라이언트가 인증되지 않았습니다.
403 (Forbidden) 사용자에게 권한이 없습니다.
404 (Not Found) 대상 작업 영역이 없습니다.
409 (Conflict) 요청이 대상 작업 항목의 현재 상태와 일치하지 않습니다. 예를 들어 대상 작업 영역은 SCHEDULED 또는 COMPLETED 상태에 있습니다.
415 (Unsupported Media Type) 제공된 Content-Type 내용은 지원되지 않습니다.
424 (Failed Dependency) DICOM 서비스는 이 요청을 완료하기 위해 사용하는 리소스에 액세스할 수 없습니다. 예를 들어 연결된 Data Lake 저장소 또는 고객 관리형 키 암호화를 지원하기 위한 키 자격 증명 모음에 액세스하지 못하는 경우를 예로 들어 봅니다.
503 (Service Unavailable) 서비스를 사용할 수 없거나 사용 중입니다. 나중에 다시 시도하세요.

요청 취소 응답 페이로드

성공 응답에는 페이로드가 없으며 실패 응답 페이로드에는 실패를 설명하는 메시지가 포함됩니다. Workitem 인스턴스가 이미 취소된 상태인 경우 응답에는 다음 HTTP 경고 헤더가 포함됩니다. 299: The UPS is already in the requested state of CANCELED.

Workitem 검색

이 트랜잭션은 Workitem을 검색합니다. UPS DIMSE N-GET 작업에 해당합니다.

다음을 참조하세요. https://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_11.5

Workitem이 원본 서버에 있는 경우 Workitem은 허용되는 미디어 형식으로 반환되어야 합니다. 반환된 작업 항목에는 트랜잭션 UID(0008,1195) 특성이 포함되지 않습니다. 이 특성의 역할을 액세스 잠금으로 유지하는 데 필요합니다.

메서드 Path 설명
GET .. /workitems/{workitem} Workitem 검색 요청

헤더가 Accept 필요하며 값 application/dicom+json이 있어야 합니다.

Workitem 응답 상태 코드 검색

코드 설명
200(OK) Workitem 인스턴스가 성공적으로 검색되었습니다.
400(잘못된 요청) 요청에 문제가 있었습니다.
401(권한 없음) 클라이언트가 인증되지 않았습니다.
403(사용할 수 없음) 사용자에게 권한이 없습니다.
404(찾을 수 없음) 대상 작업 영역이 없습니다.
424(실패한 종속성) DICOM 서비스는 이 요청을 완료하기 위해 사용하는 리소스에 액세스할 수 없습니다. 예를 들어 연결된 Data Lake 저장소 또는 고객 관리형 키 암호화를 지원하기 위한 키 자격 증명 모음에 액세스하지 못하는 경우를 예로 들어 봅니다.
503(Service Unavailable) 서비스를 사용할 수 없거나 사용 중입니다. 나중에 다시 시도하세요.

Workitem 응답 페이로드 검색

  • 성공 응답에는 선택한 미디어 형식에서 요청된 Workitem을 포함하는 단일 파트 페이로드가 있습니다.
  • 반환된 Workitem은 Workitem의 Transaction UID(0008, 1195) 특성을 포함하지 않아야 합니다. 이는 소유자에게만 알려야 하기 때문입니다.

Workitem 업데이트

이 트랜잭션은 기존 Workitem의 특성을 수정합니다. UPS DIMSE N-SET 작업에 해당합니다.

다음을 참조하세요. https://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_11.6

현재 상태의 Workitem을 SCHEDULED 업데이트하려면 특성이 Transaction UID 존재하지 않습니다. 상태의 Workitem의 IN PROGRESS 경우 요청은 현재 Transaction UID를 쿼리 매개 변수로 포함해야 합니다. Workitem이 이미 또는 상태에 있는 COMPLETED 경우 응답은 다음과 입니다400 (Bad Request).CANCELED

메서드 Path 설명
게시 .. /workitems/{workitem}? {transaction-uid} Workitem 트랜잭션 업데이트

헤더가 Content-Type 필요하며 값 application/dicom+json이 있어야 합니다.

요청 페이로드에는 대상 Workitem에 적용할 변경 내용이 포함된 데이터 세트가 포함되어 있습니다. 시퀀스를 수정할 때 요청에는 수정할 항목뿐만 아니라 시퀀스의 모든 항목이 포함되어야 합니다. 여러 특성을 그룹으로 업데이트해야 하는 경우 여러 요청이 아닌 단일 요청에서 여러 특성으로 업데이트합니다.

특정 트랜잭션의 컨텍스트에서 DICOM 데이터 특성과 관련된 많은 요구 사항이 있습니다. 특성이 있어야 하거나, 존재하지 않거나, 비워야 하거나, 비어 있지 않은 것이 필요할 수 있습니다. 이러한 요구 사항은 이 표에서 찾을 수 있습니다.

참고 항목

1C 및 2C를 포함한 모든 조건부 요구 사항 코드는 선택 사항으로 처리됩니다.

참고 항목

요청은 프로시저 단계 상태(0074,1000) 특성의 값을 설정할 수 없습니다. 프로시저 단계 상태는 상태 변경 트랜잭션 또는 요청 취소 트랜잭션을 사용하여 관리됩니다.

Workitem 트랜잭션 응답 상태 코드 업데이트

코드 설명
200 (OK) 대상 작업 영역이 업데이트되었습니다.
400 (Bad Request) 요청에 문제가 있었습니다. 예: (1) 대상 작업 영역이 또는 CANCELED 상태에 있었습니다COMPLETED. (2) 트랜잭션 UID가 없습니다. (3) 트랜잭션 UID가 잘못되었습니다. (4) 데이터 세트가 요구 사항을 준수하지 않았습니다.
401 (Unauthorized) 클라이언트가 인증되지 않았습니다.
403 (Forbidden) 사용자에게 권한이 없습니다.
404 (Not Found) 대상 작업 영역이 없습니다.
409 (Conflict) 요청이 대상 작업 항목의 현재 상태와 일치하지 않습니다.
415 (Unsupported Media Type) 제공된 Content-Type 내용은 지원되지 않습니다.
424 (Failed Dependency) DICOM 서비스는 이 요청을 완료하기 위해 사용하는 리소스에 액세스할 수 없습니다. 예를 들어 연결된 Data Lake 저장소 또는 고객 관리형 키 암호화를 지원하기 위한 키 자격 증명 모음에 액세스하지 못하는 경우를 예로 들어 봅니다.
503 (Service Unavailable) 서비스를 사용할 수 없거나 사용 중입니다. 나중에 다시 시도하세요.

Workitem 트랜잭션 응답 페이로드 업데이트

원본 서버는 표 11.6.3-2필요한 헤더 필드를 지원해야 합니다.

성공 응답에는 상태 보고서 문서가 포함된 페이로드 또는 페이로드가 없어야 합니다.

오류 응답 페이로드에는 오류, 경고 또는 기타 유용한 정보를 설명하는 상태 보고서가 포함될 수 있습니다.

Workitem 상태 변경

이 트랜잭션은 Workitem의 상태를 변경하는 데 사용됩니다. UPS DIMSE N-ACTION 작업 "UPS 상태 변경"에 해당합니다. 상태 변경은 소유권을 클레임하거나, Workitem을 완료하거나, 취소하는 데 사용됩니다.

다음을 참조하세요. https://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_11.7

Workitem이 원본 서버에 있는 경우 Workitem은 허용되는 미디어 형식으로 반환되어야 합니다. 반환된 Workitem에는 Transaction UID(0008,1195) 특성이 포함되지 않습니다. 여기에 설명된 대로 이 특성의 역할을 액세스 잠금으로 유지하는 데 필요합니다.

메서드 Path 설명
PUT .. /workitems/{workitem}/state 작업 영역 상태 변경

헤더가 Accept 필요하며 값 application/dicom+json이 있어야 합니다.

요청 페이로드에는 UPS 상태 변경 데이터 요소가 포함되어야 합니다. 이러한 데이터 요소는 다음과 같습니다.

  • 트랜잭션 UID(0008, 1195). 요청 페이로드는 트랜잭션 UID를 포함해야 합니다. 사용자 에이전트는 지정된 Workitem에 대한 상태로의 전환을 IN PROGRESS 요청할 때 트랜잭션 UID를 만듭니다. 사용자 에이전트는 해당 Workitem을 사용하여 후속 트랜잭션에서 트랜잭션 UID를 제공합니다.
  • 프로시저 단계 상태(0074, 1000). 법적 값은 요청된 상태 전환에 해당합니다. 다음과 같습니다. IN PROGRESSCOMPLETEDCANCELED

Workitem 상태 응답 상태 코드 변경

코드 설명
200 (OK) Workitem 인스턴스가 성공적으로 검색되었습니다.
400 (Bad Request) 다음 이유 중 하나로 요청을 수행할 수 없습니다. (1) 대상 작업 영역의 현재 상태를 고려할 때 요청이 유효하지 않습니다. (2) 트랜잭션 UID가 없습니다. (3) 트랜잭션 UID가 잘못되었습니다.
401 (Unauthorized) 클라이언트가 인증되지 않았습니다.
403 (Forbidden) 사용자에게 권한이 없습니다.
404 (Not Found) 대상 작업 영역이 없습니다.
409 (Conflict) 요청이 대상 작업 항목의 현재 상태와 일치하지 않습니다.
424 (Failed Dependency) DICOM 서비스는 이 요청을 완료하기 위해 사용하는 리소스에 액세스할 수 없습니다. 예를 들어 연결된 Data Lake 저장소 또는 고객 관리형 키 암호화를 지원하기 위한 키 자격 증명 모음에 액세스하지 못하는 경우를 예로 들어 봅니다.
503 (Service Unavailable) 서비스를 사용할 수 없거나 사용 중입니다. 나중에 다시 시도하세요.

Workitem 상태 응답 페이로드 변경

  • 응답에는 섹션 11.7.3.2지정된 헤더 필드가 포함됩니다.
  • 성공 응답에는 페이로드가 없어야 합니다.
  • 오류 응답 페이로드에는 오류, 경고 또는 기타 유용한 정보를 설명하는 상태 보고서가 포함될 수 있습니다.

Workitems 검색

이 트랜잭션을 사용하면 특성별로 Workitems를 검색할 수 있습니다.

메서드 Path 설명
GET .. /workitems? Workitems 검색

검색에 지원되는 헤더는 다음과 Accept 같습니다.

  • application/dicom+json

지원되는 검색 매개 변수

각 쿼리에 대해 지원되는 매개 변수는 다음과 같습니다.

지원 값 허용된 개수 설명
{attributeID}= {value} 0...N 쿼리에서 특성/값 일치를 검색합니다.
includefield= {attributeID}
all
0...N 응답에서 반환할 다른 특성입니다. 시퀀스의 일부인 특성이 아닌 최상위 특성만 포함할 수 있습니다. 공용 태그와 프라이빗 태그가 모두 지원됩니다. all 제공되면 각 쿼리 유형에 대해 반환되는 특성에 대한 자세한 내용은 검색 응답을 참조하세요. 혼합 {attributeID}all 제공된 경우 서버는 기본적으로 'all'을 사용합니다.
limit= {value} 0...1 응답에서 반환되는 값의 수를 제한하는 정수 값입니다. 값은 범위 1 >= x <= 200사이에 있을 수 있습니다. 기본값은 .입니다 100.
offset= {value} 0...1 {value} 결과를 건너뜁니다. 오프셋이 검색 쿼리 결과 수보다 큰 경우 응답이 204 (no content) 반환됩니다.
fuzzymatching= true | false 0...1 PN(사람 이름) VR(값 표현)이 있는 특성에 실제 유사 항목 일치가 적용되는 경우 이러한 특성 내의 이름 부분에 대한 접두사 단어 일치를 수행합니다. 예를 들어 if PatientName is, thenjoh, do, jo doDoeJohn Doe 모든 일치 항목이 John^Doe있습니다. 그러나 ohn 일치하지 않습니다.
검색 가능한 특성

다음 특성에 대한 검색을 지원합니다.

특성 키워드
PatientName
PatientID
ReferencedRequestSequence.AccessionNumber
ReferencedRequestSequence.RequestedProcedureID
ScheduledProcedureStepStartDateTime
ScheduledStationNameCodeSequence.CodeValue
ScheduledStationClassCodeSequence.CodeValue
ScheduledStationGeographicLocationCodeSequence.CodeValue
ProcedureStepState
StudyInstanceUID

참고 항목

특성에 대해 빈 문자열을 사용하여 검색하는 것은 지원되지 않습니다.

검색 일치

다음과 같은 일치 형식을 지원합니다.

검색 유형 지원되는 특성 예시
범위 쿼리 Scheduled​Procedure​Step​Start​Date​Time {attributeID}={value1}-{value2}. 날짜/시간 값의 경우 태그에 포괄 범위를 지원합니다. 이 범위는 .에 매핑됩니다 attributeID >= {value1} AND attributeID <= {value2}. 지정하지 않으면 {value1} 이전 및 포함 {value2} 날짜/횟수의 모든 항목이 일치합니다. 마찬가지로, 지정되지 않은 경우 {value2} 모든 발생 날짜 {value1} 및 후속 날짜/시간이 일치합니다. 그러나 이러한 값 중 하나가 있어야 합니다. {attributeID}={value1}-{attributeID}=-{value2} 그러나 유효 {attributeID}=- 하지 않습니다.
정확하게 일치 지원되는 모든 특성 {attributeID}={value1}
유사 항목 일치 PatientName 값으로 시작하는 이름의 구성 요소와 일치합니다.

참고 항목

전체 시퀀스 일치를 지원하지는 않지만 시퀀스에 포함된 나열된 특성에서 정확한 일치를 지원합니다.

특성 ID

쿼리 매개 변수에 대해 여러 가지 방법으로 태그를 인코딩할 수 있습니다. PS3.18 6.7.1.1.1에 정의된 표준을 부분적으로 구현했습니다. 태그에 대한 다음 인코딩이 지원됩니다.

예시
{group}{element} 00100010
{dicomKeyword} PatientName

예제 쿼리:

../workitems?PatientID=K123&0040A370.00080050=1423JS&includefield=00404005&limit=5&offset=0

검색 응답

응답은 다음 특성이 반환된 DICOM 데이터 세트의 0...N 배열입니다.

  • 반환 키 형식이 1 또는 2인 DICOM PowerShell 3.4 테이블 CC.2.5-3의 모든 특성
  • 조건부 요구 사항이 충족되는 반환 키 유형이 1C인 DICOM PowerShell 3.4 테이블 CC.2.5-3의 모든 특성
  • 일치 매개 변수로 전달된 다른 모든 Workitem 특성
  • 매개 변수 값으로 includefield 전달된 다른 모든 Workitem 특성

검색 응답 코드

쿼리 API는 응답에서 다음 상태 코드 중 하나를 반환합니다.

코드 설명
200 (OK) 응답 페이로드에는 일치하는 모든 리소스가 포함됩니다.
206 (Partial Content) 응답 페이로드에는 일부 검색 결과만 포함되며 나머지는 적절한 요청을 통해 요청할 수 있습니다.
204 (No Content) 검색이 성공적으로 완료되었지만 결과가 반환되지 않았습니다.
400 (Bad Request) 요청에 문제가 있었습니다. 예를 들어 잘못된 쿼리 매개 변수 구문입니다. 응답 본문에는 실패에 대한 세부 정보가 포함됩니다.
401 (Unauthorized) 클라이언트가 인증되지 않았습니다.
403 (Forbidden) 사용자에게 권한이 없습니다.
424 (Failed Dependency) DICOM 서비스는 이 요청을 완료하기 위해 사용하는 리소스에 액세스할 수 없습니다. 예를 들어 연결된 Data Lake 저장소 또는 고객 관리형 키 암호화를 지원하기 위한 키 자격 증명 모음에 액세스하지 못하는 경우를 예로 들어 봅니다.
503 (Service Unavailable) 서비스를 사용할 수 없거나 사용 중입니다. 나중에 다시 시도하세요.

추가 참고 사항

쿼리 API가 반환 413 (request entity too large)되지 않습니다. 요청된 쿼리 응답 제한이 허용 범위를 벗어나면 잘못된 요청이 반환됩니다. 허용 범위 내에서 요청된 모든 항목이 확인됩니다.

  • 페이징된 결과는 일치하는 최신 인스턴스를 먼저 반환하도록 최적화되어 쿼리와 일치하는 최신 데이터가 추가된 경우 후속 페이지에서 중복 레코드가 발생할 수 있습니다.
  • 일치는 PN VR 유형에 대해 대/소문자를 구분하지 않으며 악센트를 구분하지 않습니다.
  • 일치는 다른 문자열 VR 형식에 대해 대/소문자를 구분하지 않으며 악센트를 구분합니다.
  • Workitem을 취소하고 동일한 쿼리가 동시에 발생하는 시나리오가 있는 경우 쿼리는 업데이트되는 Workitem을 제외할 가능성이 높으며 응답 코드는 제외됩니다 206 (Partial Content).

참고 항목

DICOM®은 의료 정보의 디지털 통신과 관련된 표준 간행물에 대한 미국 전기공업회의 등록 상표입니다.