Class: Orthanc::Instance

Inherits:
Object
  • Object
show all
Includes:
Response
Defined in:
lib/orthanc/instances.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Response

#bool_to_num, #handle_response, #num_to_bool

Constructor Details

#initialize(id = nil) ⇒ Instance

Returns a new instance of Instance.



6
7
8
9
# File 'lib/orthanc/instances.rb', line 6

def initialize(id = nil)
  client = Client.new
  self.base_uri = client.base_uri["/instances/#{id}"]
end

Instance Attribute Details

#base_uriObject

Returns the value of attribute base_uri.



4
5
6
# File 'lib/orthanc/instances.rb', line 4

def base_uri
  @base_uri
end

Instance Method Details

#anonymize(payload = {}) ⇒ Object

POST /instances/id/anonymize



22
23
24
# File 'lib/orthanc/instances.rb', line 22

def anonymize(payload = {}) # https://code.google.com/p/orthanc/wiki/Anonymization
  base_uri["anonymize"].post(payload.to_s)
end

#attachments(id = nil) ⇒ Object



154
155
156
157
158
159
160
161
162
163
164
# File 'lib/orthanc/instances.rb', line 154

def attachments(id = nil)
  if id
    return Attachment.new(base_uri, id)
  else
    a = []
    handle_response(base_uri["attachments"].get).each do |id|
      a << Attachment.new(base_uri, id)
    end
    return a
  end
end

#attachments_listObject

GET /resourceType/id/attachments



150
151
152
# File 'lib/orthanc/instances.rb', line 150

def attachments_list # Orthanc endpoint response
  handle_response(base_uri["attachments"].get)
end

#contentObject

GET /instances/id/content/



27
28
29
# File 'lib/orthanc/instances.rb', line 27

def content # List the first-level DICOM tags
  handle_response(base_uri["frames"].get)
end

#content_sequence(group, element, index) ⇒ Object

GET /instances/id/content/group-element/index/…



37
38
39
# File 'lib/orthanc/instances.rb', line 37

def content_sequence(group, element, index) # Raw access to the content of DICOM sequences
  handle_response(base_uri["content/#{group}-#{element}/#{index}"].get)
end

#content_tag(group, element) ⇒ Object

GET /instances/id/content/group-element



32
33
34
# File 'lib/orthanc/instances.rb', line 32

def (group, element) # Raw access to the value of DICOM tags (comprising the padding character)
  handle_response(base_uri["content/#{group}-#{element}"].get)
end

#deleteObject

DELETE /instances/id



17
18
19
# File 'lib/orthanc/instances.rb', line 17

def delete
  handle_response(base_uri.delete)
end

#export(payload = {}) ⇒ Object

POST /instances/id/export



42
43
44
# File 'lib/orthanc/instances.rb', line 42

def export(payload = {}) # Write the DICOM file in the filesystem where Orthanc is running
  base_uri["export"].post(payload)
end

#fetchObject

GET /instances, # GET /instances/id



12
13
14
# File 'lib/orthanc/instances.rb', line 12

def fetch # Fetch API response
  handle_response(base_uri.get)
end

#fileObject

GET /instances/id/file



47
48
49
# File 'lib/orthanc/instances.rb', line 47

def file
  base_uri["file"].get
end

#frame_image_int16(frame_number) ⇒ Object

GET /instances/id/frames/frameNumber/image-int16



57
58
59
# File 'lib/orthanc/instances.rb', line 57

def frame_image_int16(frame_number) # Truncated image to the [-32768;32767] range
  base_uri["frames/#{frame_number}/image-int16"].get
end

#frame_image_uint16(frame_number) ⇒ Object

GET /instances/id/frames/frameNumber/image-uint16



62
63
64
# File 'lib/orthanc/instances.rb', line 62

def frame_image_uint16(frame_number) # Truncated image to the [0;65535] range
  base_uri["frames/#{frame_number}/image-uint16"].get
end

#frame_image_uint8(frame_number) ⇒ Object

GET /instances/id/frames/frameNumber/image-uint8



67
68
69
# File 'lib/orthanc/instances.rb', line 67

def frame_image_uint8(frame_number) # Truncated image to the [0;255] range
  base_uri["frames/#{frame_number}/image-uint8"].get
end

#frame_matlab(frame_number) ⇒ Object

GET /instances/id/frames/frameNumber/matlab



72
73
74
# File 'lib/orthanc/instances.rb', line 72

def frame_matlab(frame_number) # a = eval(urlread('http://localhost:8042/instances/.../matlab'))
  base_uri["frames/#{frame_number}/matlab"].get
end

#framesObject

GET /instances/id/frames



52
53
54
# File 'lib/orthanc/instances.rb', line 52

def frames # Instance frames array
  handle_response(base_uri["frames"].get)
end

#image_int16Object

GET /instances/id/image-int16



82
83
84
# File 'lib/orthanc/instances.rb', line 82

def image_int16 # Truncated image to the [-32768;32767] range
  base_uri["image-int16"].get
end

#image_uint16Object

GET /instances/id/image-uint16



87
88
89
# File 'lib/orthanc/instances.rb', line 87

def image_uint16 # Truncated image to the [0;65535] range
  base_uri["image-uint16"].get
end

#image_uint8Object

GET /instances/id/image-uint8



92
93
94
# File 'lib/orthanc/instances.rb', line 92

def image_uint8 # Truncated image to the [0;255] range
  base_uri["image-uint8"].get
end

#matlabObject

GET /instances/id/matlab



97
98
99
# File 'lib/orthanc/instances.rb', line 97

def matlab # a = eval(urlread('http://localhost:8042/instances/.../matlab'))
  base_uri["matlab"].get
end

#metadata(name = nil) ⇒ Object

As class instances, for method chaining



173
174
175
176
177
178
179
180
181
182
183
# File 'lib/orthanc/instances.rb', line 173

def (name = nil) # As class instances, for method chaining
  if name
    return Metadata.new(base_uri, name)
  else
    a = []
    handle_response(base_uri["metadata"].get).each do |name|
      a << Metadata.new(base_uri, name)
    end
    return a
  end
end

#metadata_listObject

GET /resourceType/id/metadata



169
170
171
# File 'lib/orthanc/instances.rb', line 169

def  # Orthanc endpoint response
  handle_response(base_uri["metadata"].get)
end

#modify(payload = {}) ⇒ Object

POST /instances/id/modify



102
103
104
# File 'lib/orthanc/instances.rb', line 102

def modify(payload = {}) # https://code.google.com/p/orthanc/wiki/Anonymization
  base_uri["modify"].post(payload.to_s)
end

#moduleObject

GET /instances/id/module



107
108
109
# File 'lib/orthanc/instances.rb', line 107

def module
  handle_response(base_uri["module"].get)
end

#patientObject

GET /instances/id/patient



112
113
114
# File 'lib/orthanc/instances.rb', line 112

def patient
  handle_response(base_uri["patient"].get)
end

#previewObject

GET /instances/id/preview



77
78
79
# File 'lib/orthanc/instances.rb', line 77

def preview(frame_number) # Rescaled image (so that all the range [0;255] is used)
  base_uri["frames/#{frame_number}/preview"].get
end

#seriesObject

GET /instances/id/series



122
123
124
# File 'lib/orthanc/instances.rb', line 122

def series
  handle_response(base_uri["series"].get)
end

#simplified_tags(params = {}) ⇒ Object

GET /instances/id/simplified-tags



127
128
129
# File 'lib/orthanc/instances.rb', line 127

def simplified_tags(params = {}) # "?simplify" argument to simplify output
  handle_response(base_uri["simplified-tags"].get({params: params}))
end

#statisticsObject

GET /instances/id/statistics



132
133
134
# File 'lib/orthanc/instances.rb', line 132

def statistics
  handle_response(base_uri["statistics"].get)
end

#studyObject

GET /instances/id/study



137
138
139
# File 'lib/orthanc/instances.rb', line 137

def study
  handle_response(base_uri["study"].get)
end

#tags(params = {}) ⇒ Object

GET /instances/id/tags



142
143
144
# File 'lib/orthanc/instances.rb', line 142

def tags(params = {}) # TODO: "?simplify" argument to simplify output (same as "simplified-tags")
  handle_response(base_uri["tags"].get({params: params}))
end