1<?php
2/*
3 * Copyright 2014 Google Inc.
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
6 * use this file except in compliance with the License. You may obtain a copy of
7 * the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14 * License for the specific language governing permissions and limitations under
15 * the License.
16 */
17
18namespace Google\Service\CloudHealthcare\Resource;
19
20use Google\Service\CloudHealthcare\HttpBody;
21use Google\Service\CloudHealthcare\Operation;
22
23/**
24 * The "studies" collection of methods.
25 * Typical usage is:
26 *  <code>
27 *   $healthcareService = new Google\Service\CloudHealthcare(...);
28 *   $studies = $healthcareService->studies;
29 *  </code>
30 */
31class ProjectsLocationsDatasetsDicomStoresStudies extends \Google\Service\Resource
32{
33  /**
34   * DeleteStudy deletes all instances within the given study. Delete requests are
35   * equivalent to the GET requests specified in the Retrieve transaction. The
36   * method returns an Operation which will be marked successful when the deletion
37   * is complete. Warning: Instances cannot be inserted into a study that is being
38   * deleted by an operation until the operation completes. For samples that show
39   * how to call DeleteStudy, see [Deleting a study, series, or
40   * instance](https://cloud.google.com/healthcare/docs/how-
41   * tos/dicomweb#deleting_a_study_series_or_instance). (studies.delete)
42   *
43   * @param string $parent
44   * @param string $dicomWebPath The path of the DeleteStudy request. For example,
45   * `studies/{study_uid}`.
46   * @param array $optParams Optional parameters.
47   * @return Operation
48   */
49  public function delete($parent, $dicomWebPath, $optParams = [])
50  {
51    $params = ['parent' => $parent, 'dicomWebPath' => $dicomWebPath];
52    $params = array_merge($params, $optParams);
53    return $this->call('delete', [$params], Operation::class);
54  }
55  /**
56   * RetrieveStudyMetadata returns instance associated with the given study
57   * presented as metadata with the bulk data removed. See [RetrieveTransaction] (
58   * http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4
59   * ). For details on the implementation of RetrieveStudyMetadata, see [Metadata
60   * resources](https://cloud.google.com/healthcare/docs/dicom#metadata_resources)
61   * in the Cloud Healthcare API conformance statement. For samples that show how
62   * to call RetrieveStudyMetadata, see [Retrieving
63   * metadata](https://cloud.google.com/healthcare/docs/how-
64   * tos/dicomweb#retrieving_metadata). (studies.retrieveMetadata)
65   *
66   * @param string $parent The name of the DICOM store that is being accessed. For
67   * example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}
68   * /dicomStores/{dicom_store_id}`.
69   * @param string $dicomWebPath The path of the RetrieveStudyMetadata DICOMweb
70   * request. For example, `studies/{study_uid}/metadata`.
71   * @param array $optParams Optional parameters.
72   * @return HttpBody
73   */
74  public function retrieveMetadata($parent, $dicomWebPath, $optParams = [])
75  {
76    $params = ['parent' => $parent, 'dicomWebPath' => $dicomWebPath];
77    $params = array_merge($params, $optParams);
78    return $this->call('retrieveMetadata', [$params], HttpBody::class);
79  }
80  /**
81   * RetrieveStudy returns all instances within the given study. See
82   * [RetrieveTransaction] (http://dicom.nema.org/medical/dicom/current/output/htm
83   * l/part18.html#sect_10.4). For details on the implementation of RetrieveStudy,
84   * see [DICOM study/series/instances](https://cloud.google.com/healthcare/docs/d
85   * icom#dicom_studyseriesinstances) in the Cloud Healthcare API conformance
86   * statement. For samples that show how to call RetrieveStudy, see [Retrieving
87   * DICOM data](https://cloud.google.com/healthcare/docs/how-
88   * tos/dicomweb#retrieving_dicom_data). (studies.retrieveStudy)
89   *
90   * @param string $parent The name of the DICOM store that is being accessed. For
91   * example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}
92   * /dicomStores/{dicom_store_id}`.
93   * @param string $dicomWebPath The path of the RetrieveStudy DICOMweb request.
94   * For example, `studies/{study_uid}`.
95   * @param array $optParams Optional parameters.
96   * @return HttpBody
97   */
98  public function retrieveStudy($parent, $dicomWebPath, $optParams = [])
99  {
100    $params = ['parent' => $parent, 'dicomWebPath' => $dicomWebPath];
101    $params = array_merge($params, $optParams);
102    return $this->call('retrieveStudy', [$params], HttpBody::class);
103  }
104  /**
105   * SearchForInstances returns a list of matching instances. See [Search
106   * Transaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.
107   * html#sect_10.6). For details on the implementation of SearchForInstances, see
108   * [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_tr
109   * ansaction) in the Cloud Healthcare API conformance statement. For samples
110   * that show how to call SearchForInstances, see [Searching for studies, series,
111   * instances, and frames](https://cloud.google.com/healthcare/docs/how-
112   * tos/dicomweb#searching_for_studies_series_instances_and_frames).
113   * (studies.searchForInstances)
114   *
115   * @param string $parent The name of the DICOM store that is being accessed. For
116   * example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}
117   * /dicomStores/{dicom_store_id}`.
118   * @param string $dicomWebPath The path of the SearchForInstancesRequest
119   * DICOMweb request. For example, `instances`, `series/{series_uid}/instances`,
120   * or `studies/{study_uid}/instances`.
121   * @param array $optParams Optional parameters.
122   * @return HttpBody
123   */
124  public function searchForInstances($parent, $dicomWebPath, $optParams = [])
125  {
126    $params = ['parent' => $parent, 'dicomWebPath' => $dicomWebPath];
127    $params = array_merge($params, $optParams);
128    return $this->call('searchForInstances', [$params], HttpBody::class);
129  }
130  /**
131   * SearchForSeries returns a list of matching series. See [Search Transaction] (
132   * http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.6
133   * ). For details on the implementation of SearchForSeries, see [Search transact
134   * ion](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in
135   * the Cloud Healthcare API conformance statement. For samples that show how to
136   * call SearchForSeries, see [Searching for studies, series, instances, and
137   * frames](https://cloud.google.com/healthcare/docs/how-
138   * tos/dicomweb#searching_for_studies_series_instances_and_frames).
139   * (studies.searchForSeries)
140   *
141   * @param string $parent The name of the DICOM store that is being accessed. For
142   * example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}
143   * /dicomStores/{dicom_store_id}`.
144   * @param string $dicomWebPath The path of the SearchForSeries DICOMweb request.
145   * For example, `series` or `studies/{study_uid}/series`.
146   * @param array $optParams Optional parameters.
147   * @return HttpBody
148   */
149  public function searchForSeries($parent, $dicomWebPath, $optParams = [])
150  {
151    $params = ['parent' => $parent, 'dicomWebPath' => $dicomWebPath];
152    $params = array_merge($params, $optParams);
153    return $this->call('searchForSeries', [$params], HttpBody::class);
154  }
155  /**
156   * StoreInstances stores DICOM instances associated with study instance unique
157   * identifiers (SUID). See [Store Transaction] (http://dicom.nema.org/medical/di
158   * com/current/output/html/part18.html#sect_10.5). For details on the
159   * implementation of StoreInstances, see [Store transaction](https://cloud.googl
160   * e.com/healthcare/docs/dicom#store_transaction) in the Cloud Healthcare API
161   * conformance statement. For samples that show how to call StoreInstances, see
162   * [Storing DICOM data](https://cloud.google.com/healthcare/docs/how-
163   * tos/dicomweb#storing_dicom_data). (studies.storeInstances)
164   *
165   * @param string $parent The name of the DICOM store that is being accessed. For
166   * example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}
167   * /dicomStores/{dicom_store_id}`.
168   * @param string $dicomWebPath The path of the StoreInstances DICOMweb request.
169   * For example, `studies/[{study_uid}]`. Note that the `study_uid` is optional.
170   * @param HttpBody $postBody
171   * @param array $optParams Optional parameters.
172   * @return HttpBody
173   */
174  public function storeInstances($parent, $dicomWebPath, HttpBody $postBody, $optParams = [])
175  {
176    $params = ['parent' => $parent, 'dicomWebPath' => $dicomWebPath, 'postBody' => $postBody];
177    $params = array_merge($params, $optParams);
178    return $this->call('storeInstances', [$params], HttpBody::class);
179  }
180}
181
182// Adding a class alias for backwards compatibility with the previous class name.
183class_alias(ProjectsLocationsDatasetsDicomStoresStudies::class, 'Google_Service_CloudHealthcare_Resource_ProjectsLocationsDatasetsDicomStoresStudies');
184