changeset 577:7d27154e70f9

cheatsheet and full openapi
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 30 Dec 2020 07:55:12 +0100
parents 28a09c734c90
children f335e325c2a7
files OpenAPI/2019-08-orthanc-openapi.html OpenAPI/2019-08-orthanc-openapi.yaml OpenAPI/index.html OpenAPI/orthanc-openapi.json OpenAPI/orthanc-openapi.yaml Sphinx/source/faq/orthanc-storage.rst Sphinx/source/users/rest-cheatsheet.csv Sphinx/source/users/rest-cheatsheet.rst Sphinx/source/users/rest.rst
diffstat 9 files changed, 15478 insertions(+), 2546 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/OpenAPI/2019-08-orthanc-openapi.html	Wed Dec 30 07:55:12 2020 +0100
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Orthanc REST API</title>
+    <!-- needed for adaptive design -->
+    <meta charset="utf-8"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <link href="https://fonts.googleapis.com/css?family=Montserrat:300,400,700|Roboto:300,400,700" rel="stylesheet">
+
+    <!--
+    ReDoc doesn't change outer page styles
+    -->
+    <style>
+      body {
+        margin: 0;
+        padding: 0;
+      }
+    </style>
+  </head>
+  <body>
+    <redoc spec-url="2019-08-orthanc-openapi.yaml" lazy-rendering hide-hostname></redoc>
+    <script src="./redoc.standalone.js"> </script>
+  </body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/OpenAPI/2019-08-orthanc-openapi.yaml	Wed Dec 30 07:55:12 2020 +0100
@@ -0,0 +1,2537 @@
+openapi: 3.0.0
+info:
+  title: Orthanc
+  version: 1.0.0
+  description: >-
+    One of the major strengths of Orthanc lies in its built-in RESTful API, that can be used to drive Orthanc from external applications, independently of the programming language that is used to develop these applications. The REST API of Orthanc gives a full programmatic access to all the core features of Orthanc. Importantly, Orthanc Explorer (the embedded administrative interface of Orthanc) entirely resorts to this REST API for all its features. This implies that anything that can be done through Orthanc Explorer, can also be done through REST queries.<p>
+    This documentation is <b>work-in-progress</b>: The entire REST API is not covered yet. Please contribute by improving the source code of the documentation: https://bitbucket.org/sjodogne/orthanc-book/src/default/
+servers:
+  - url: 'https://demo.orthanc-server.com'
+components:
+
+####################################################################################
+## SCHEMAS / MODELS
+####################################################################################
+
+  schemas:
+    patient:
+      properties:
+        ID:
+          type: string
+        Studies:
+          type: array
+          items:
+            type: string
+        MainDicomTags:
+          type: object
+          properties:
+            OtherPatientIDs:
+              type: string
+            PatientBirthDate:
+              type: string
+            PatientName:
+              type: string
+            PatientSex:
+              type: string
+        ParentPatient:
+              type: string
+        Type:
+          type: string
+          enum:
+            - Patient
+      example: {
+        "ID" : "07a6ec1c-1be5920b-18ef5358-d24441f3-10e926ea",
+        "MainDicomTags" : {
+          "OtherPatientIDs" : "(null)",
+          "PatientBirthDate" : "0",
+          "PatientID" : "000000185",
+          "PatientName" : "Anonymous^Unknown",
+          "PatientSex" : "O"
+        },
+        "Studies" : [ "9ad2b0da-a406c43c-6e0df76d-1204b86f-78d12c15" ],
+        "Type" : "Patient"
+      }
+    study:
+      properties:
+        ID:
+          type: string
+        Series:
+          type: array
+          items:
+            type: string
+        MainDicomTags:
+          type: object
+          properties:
+            AccesionNumber:
+              type: string
+            StudyDate:
+              type: string
+            StudyDescription:
+              type: string
+            StudyID:
+              type: string
+            StudyInstanceUID:
+              type: string
+            StudyTime:
+              type: string
+        ParentPatient:
+              type: string
+        Type:
+          type: string
+          enum:
+            - Study
+      example: {
+        "ID" : "9ad2b0da-a406c43c-6e0df76d-1204b86f-78d12c15",
+        "MainDicomTags" : {
+          "AccessionNumber" : "(null)",
+          "StudyDate" : "20120716",
+          "StudyDescription" : "TestSUVce-TF",
+          "StudyID" : "23848",
+          "StudyInstanceUID" : "1.2.840.113704.1.111.7016.1342451220.40",
+          "StudyTime" : "170728"
+        },
+        "ParentPatient" : "07a6ec1c-1be5920b-18ef5358-d24441f3-10e926ea",
+        "Series" : [
+          "6821d761-31fb55a9-031ebecb-ba7f9aae-ffe4ddc0",
+          "2cc6336f-2d4ae733-537b3ca3-e98184b1-ba494b35",
+          "7384c47e-6398f2a8-901846ef-da1e2e0b-6c50d598"
+        ],
+        "Type" : "Study"
+      }
+    series:
+      properties:
+        ID:
+          type: string
+        ExpectedNumberOfInstances:
+          type: number
+        Instances:
+          type: array
+          items:
+            type: string
+        MainDicomTags:
+          type: object
+          properties:
+            Manufacturer:
+              type: string
+            Modality:
+              type: string
+            NumberOfSlices:
+              type: string
+            ProtocolName:
+              type: string
+            SeriesDate:
+              type: string
+            SeriesDescription:
+              type: string
+            SeriesInstanceUID:
+              type: string
+            SeriesNumber:
+              type: string
+            SeriesTime:
+              type: string
+            StationName:
+              type: string
+        ParentStudy:
+              type: string
+        Type:
+          type: string
+          enum:
+            - Series
+        Status:
+          type: string
+          enum:
+            - Complete
+      example: {
+        "ExpectedNumberOfInstances" : 45,
+        "ID" : "2cc6336f-2d4ae733-537b3ca3-e98184b1-ba494b35",
+        "Instances" : [
+          "41bc3f74-360f9d10-6ae9ffa4-01ea2045-cbd457dd",
+          "1d3de868-6c4f0494-709fd140-7ccc4c94-a6daa3a8",
+          "1010f80b-161b71c0-897ec01b-c85cd206-e669a3ea",
+          "e668dcbf-8829a100-c0bd203b-41e404d9-c533f3d4"
+        ],
+        "MainDicomTags" : {
+          "Manufacturer" : "Philips Medical Systems",
+          "Modality" : "PT",
+          "NumberOfSlices" : "45",
+          "ProtocolName" : "CHU/Body_PET/CT___50",
+          "SeriesDate" : "20120716",
+          "SeriesDescription" : "[WB_CTAC] Body",
+          "SeriesInstanceUID" : "1.3.46.670589.28.2.12.30.26407.37145.2.2516.0.1342458737",
+          "SeriesNumber" : "587370",
+          "SeriesTime" : "171121",
+          "StationName" : "r054-svr"
+        },
+        "ParentStudy" : "9ad2b0da-a406c43c-6e0df76d-1204b86f-78d12c15",
+        "Status" : "Complete",
+        "Type" : "Series"
+      }
+    instance:
+      properties:
+        FileSize:
+          type: number
+        FileUuid: 
+          type: string
+        ID:
+          type: string
+        IndexInSeries:
+          type: number
+        MainDicomTags:
+          type: object
+          properties:
+            AcquisitionNumber:
+              type: string
+            ImageIndex:
+              type: string
+            ImagePositionPatient:
+              type: string
+            InstanceNumber:
+              type: string
+            SOPInstanceUID:
+              type: string
+        ParentSeries:
+              type: string
+        Type:
+          enum:
+            - Instance
+      example: {
+        "FileSize" : 35440,
+        "FileUuid" : "7976ad32-4d15-439b-8789-bf70f52200ec",
+        "ID" : "055bfbaf-2aae936c-82ed5a9a-9267f8b7-416a4000",
+        "IndexInSeries" : 59,
+        "MainDicomTags" : {
+            "AcquisitionNumber" : "2",
+            "ImageIndex" : "59",
+            "ImagePositionPatient" : "-134.74816\\-272.14441\\-712.764",
+            "InstanceNumber" : "59",
+            "SOPInstanceUID" : "1.3.12.2.1107.5.1.4.36085.2.0.3752288429331748"
+        },
+        "ParentSeries" : "318603c5-03e8cffc-a82b6ee1-3ccd3c1e-18d7e3bb",
+        "Type" : "Instance"
+      }
+
+
+    jobId:
+      properties:
+        ID:
+          type: string
+        Path:
+          type: string
+      example: {
+        "ID": "11541b16-e368-41cf-a8e9-3acf4061d238",
+        "Path": "/jobs/11541b16-e368-41cf-a8e9-3acf4061d238"
+      }
+
+
+    jobCStore:
+      properties:
+        Description:
+          type: string
+        FailedInstancesCount: 
+          type: number
+        InstancesCount:
+          type: number
+        LocalAet:
+          type: string
+        RemoteAet:
+          type: string
+      example: {
+        "Description": "REST API",
+        "FailedInstancesCount": 0,
+        "InstancesCount": 1,
+        "LocalAet": "ORTHANCA",
+        "RemoteAet": "ORTHANCB"
+      }
+
+
+    jobPeerStore:
+      properties:
+        Description:
+          type: string
+        FailedInstancesCount: 
+          type: number
+        InstancesCount:
+          type: number
+        Peer:
+          type: string
+      example: {
+        "Description": "REST API",
+        "FailedInstancesCount": 0,
+        "InstancesCount": 1,
+        "Peer": [
+          "http://127.0.0.1:8543/"
+        ]
+      }
+
+
+    listOfResourcesWithAsynchOption:
+      properties:
+        Resources:
+          description: A list of resources IDs (Patient, Studies, Series or Instances)
+          type: array
+          items:
+            type: string
+        Asynchronous:
+          description: true to create a job and return immediately, false to wait for job completion.  
+            The response will vary according to this parameter.  If the call is synchronous, you'll receive
+            a completed job in the response while if the call is asynchronous, you'll receive a job identifier.
+          type: boolean
+      example: {
+        "Resources" : ["62cdfbea-07c71f0c-cd643b19-841a306a-01221339"],
+        "Asynchronous" : true
+      }
+
+
+    listOfResources:
+      description: A list of resources IDs (Patient, Studies, Series or Instances)
+      schema:
+        type: array
+        items:
+          type: string
+      example: ["62cdfbea-07c71f0c-cd643b19-841a306a-01221339"]
+
+
+    singleResource:
+      description: A resource ID (Patient, Studies, Series or Instances)
+      type: string
+      example: "62cdfbea-07c71f0c-cd643b19-841a306a-01221339"
+
+    peer:
+      required:
+        - Url
+      properties:
+        Url:
+          type: string
+          description: the root url of the Orthanc Rest API of the other peer
+        Username: 
+          type: string
+        Password:
+          type: string
+        HttpHeaders:
+          description: HTTP headers to add to every request sent to that peer
+          type: object
+        CertificateFile:
+          type: string
+        CertificateKeyFile:
+          type: string
+        CertificateKeyPassword:
+          type: string
+      example: {
+        "Url" : "http://localhost:8044",
+        "Username" : "alice",                          
+        "Password" : "alicePassword",                  
+        "HttpHeaders" : { "Token" : "Hello world" },   
+        "CertificateFile" : "client.crt",              
+        "CertificateKeyFile" : "client.key",           
+        "CertificateKeyPassword" : "certpass"          
+      }
+
+
+####################################################################################
+## ROUTES / PATHS
+####################################################################################
+
+paths:
+  /instances:
+    post:
+      tags: [Instances]
+      description: The upload of DICOM files is possible by querying the REST API using the following syntax.
+      requestBody:
+        description: DICOM file
+        content:
+          application/dicom: {}
+      responses:
+        200:
+          description: New instance successfully posted
+          content:
+            application/json:
+              schema:
+                properties:
+                  ID:
+                    description: New Orthanc instance ID
+                    type: string
+                  Path:
+                    description: URL path for the instance
+                    type: string
+                  Status:
+                    description: Status
+                    type: string
+                    enum:
+                      - Success
+    get:
+      tags: [Instances]
+      description: Get all DICOM instances ID's in Orthanc
+      parameters:
+        - name: limit
+          in: query
+          schema:
+            type: number
+          description: Limit the number of results to the specified. number
+        - name: since
+          in: query
+          schema:
+            type: number
+          description: Show only the resources since the index provided.
+      responses:
+        200:
+          description: Array of all instances ID's
+          content:
+            application/json:
+              schema:
+                type: array
+                items:
+                  type: string
+                example: [
+   "055bfbaf-2aae936c-82ed5a9a-9267f8b7-416a4000",
+   "62dc1ec1-9fc2dd9d-aa66eae1-0db608b1-e17f8ce8"
+]
+  /instances/{Id}:
+    get:
+      tags: [Instances]
+      description: Get an instance from Orthanc
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+      responses:
+        200:
+          description: Orthanc instance
+          content:
+            application/json:
+              schema:
+                $ref: "#/components/schemas/instance"
+    delete:
+      tags : [Instances]
+      description: Delete an instance
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+      responses:
+       200:
+         description: Success
+  /instances/{Id}/simplified-tags:
+    get:
+      tags: [Instances]
+      description: Get the human readable tags for the DICOM instance.
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+      responses:
+        200:
+          description: DICOM tags and values
+          content:
+            application/json:
+              schema:
+                type: object
+              example: {
+  "ACR_NEMA_2C_VariablePixelDataGroupLength" : "57130",
+  "AccessionNumber" : null,
+  "AcquisitionDate" : "20120716",
+  "AcquisitionDateTime" : "20120716171219",
+  "AcquisitionTime" : "171219",
+  "ActualFrameDuration" : "3597793",
+  "AttenuationCorrectionMethod" : "CTAC-SG",
+  "PatientID" : "000000185",
+  "PatientName" : "Anonymous^Unknown",
+  "PatientOrientationCodeSequence" : [
+     {
+        "CodeMeaning" : "recumbent",
+        "CodeValue" : "F-10450",
+        "CodingSchemeDesignator" : "99SDM",
+        "PatientOrientationModifierCodeSequence" : [
+           {
+              "CodeMeaning" : "supine",
+              "CodeValue" : "F-10340",
+              "CodingSchemeDesignator" : "99SDM"
+           }
+        ]
+     }
+  ],
+  "StudyDescription" : "TestSUVce-TF",
+  "StudyID" : "23848",
+  "StudyInstanceUID" : "1.2.840.113704.1.111.7016.1342451220.40",
+  "StudyTime" : "171117",
+  "TypeOfDetectorMotion" : "NONE",
+  "Units" : "BQML",
+  "Unknown" : null,
+  "WindowCenter" : "1.496995e+04",
+  "WindowWidth" : "2.993990e+04"
+}
+  /instances/{Id}/tags:
+    get:
+      tags: [Instances]
+      description: Get the detailed tags for the DICOM instance.
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+        - name: simplify
+          required: false
+          description: Show more user-friendly tags like in /simplified-tags
+          in: query
+          schema:
+            type: boolean
+        - name: short
+          required: false
+          description: Shorten the values so that they are not separate JSON objects with the user-friendly description of the tag and the type. Instead, values are given as direct values to the tags.
+          in: query
+          schema:
+            type: boolean
+      responses:
+        200:
+          description: DICOM tags and values
+          content:
+            application/json:
+              schema:
+                type: object
+              example: 
+                {
+   "0008,0005" : {
+      "Name" : "SpecificCharacterSet",
+      "Type" : "String",
+      "Value" : "ISO_IR 100"
+   },
+   "0008,0008" : {
+      "Name" : "ImageType",
+      "Type" : "String",
+      "Value" : "ORIGINAL\\PRIMARY\\HEADER_CORRECTED"
+   },
+   "0008,0016" : {
+      "Name" : "SOPClassUID",
+      "Type" : "String",
+      "Value" : "1.2.840.10008.5.1.4.1.1.128"
+   },
+   "0008,0018" : {
+      "Name" : "SOPInstanceUID",
+      "Type" : "String",
+      "Value" : "1.3.12.2.1107.5.1.4.36085.2.0.3752288429331748"
+   },
+   "0008,0020" : {
+      "Name" : "StudyDate",
+      "Type" : "String",
+      "Value" : "20040304"
+   },
+   "0008,0021" : {
+      "Name" : "SeriesDate",
+      "Type" : "String",
+      "Value" : "20040304"
+   },
+   "0008,0022" : {
+      "Name" : "AcquisitionDate",
+      "Type" : "String",
+      "Value" : "20040304"
+   }
+}
+  /instances/{Id}/header:
+    get:
+      tags: [Instances]
+      description: Get the detailed header tags for the DICOM instance.
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+        - name: simplify
+          required: false
+          description: Show more user-friendly tags like in /simplified-tags
+          in: query
+          schema:
+            type: boolean
+        - name: short
+          required: false
+          description: Shorten the values so that they are not separate JSON objects with the user-friendly description of the tag and the type. Instead, values are given as direct values to the tags.
+          in: query
+          schema:
+            type: boolean
+      responses:
+        200:
+          description: DICOM tags and values
+          content:
+            application/json:
+              schema:
+                type: object
+              example: {
+   "0002,0000" : {
+      "Name" : "FileMetaInformationGroupLength",
+      "Type" : "String",
+      "Value" : "222"
+   },
+   "0002,0002" : {
+      "Name" : "MediaStorageSOPClassUID",
+      "Type" : "String",
+      "Value" : "1.2.840.10008.5.1.4.1.1.128"
+   },
+   "0002,0003" : {
+      "Name" : "MediaStorageSOPInstanceUID",
+      "Type" : "String",
+      "Value" : "1.3.12.2.1107.5.1.4.36085.2.0.3752288429331748"
+   },
+   "0002,0010" : {
+      "Name" : "TransferSyntaxUID",
+      "Type" : "String",
+      "Value" : "1.2.840.10008.1.2.1"
+   },
+   "0002,0012" : {
+      "Name" : "ImplementationClassUID",
+      "Type" : "String",
+      "Value" : "1.2.826.0.1.3680043.2.1143.107.104.103.115.2.2.4"
+   },
+   "0002,0013" : {
+      "Name" : "ImplementationVersionName",
+      "Type" : "String",
+      "Value" : "GDCM 2.2.4"
+   },
+   "0002,0016" : {
+      "Name" : "SourceApplicationEntityTitle",
+      "Type" : "String",
+      "Value" : "gdcmconv"
+   }
+}
+  /instances/{Id}/content/{Tag}:
+    get:
+      tags: [Instances]
+      description: Get the value for a single tag of a DICOM instance.
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+        - name: Tag
+          required: true
+          in: path
+          schema:
+            type: string
+      responses:
+        200:
+          description: Returns the DICOM tag value or value sub-structure.
+          content:
+            application/json:
+              schema:
+                type: object
+            text/plain:
+              example: Anonymous^Unknown
+  /instances/{Id}/file:
+    get:
+      tags: [Instances]
+      description: Download the DICOM instance file in DCM format.
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+      responses:
+        200:
+          description: DICOM file contents
+          content:
+            application/dicom: {}
+  /instances/{Id}/preview:
+    get:
+      tags: [Instances]
+      description: Download a preview image of the DICOM instance.
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+        - name: Accept
+          description: Default is image/png
+          required: false
+          in: header
+          schema:
+            type: string
+            enum:
+              - image/png
+              - image/jpeg
+      responses:
+        200:
+          description: DICOM preview
+          content:
+            image/png: {}
+            image/jpg: {}
+  /instances/{Id}/{PixelFormat}:
+    get:
+      tags: [Instances]
+      description: Download an image of the DICOM instance in the specified format.
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+        - name: PixelFormat
+          required: true
+          in: path
+          schema:
+            type: string
+            enum:
+              - image-uint8
+              - image-uint16
+              - image-int16
+              - matlab
+              - raw
+              - raw.gz
+        - name: Accept
+          required: true
+          in: header
+          schema:
+            type: string
+            enum:
+              - image/png
+              - image/jpeg
+              - image/x-portable-arbitrarymap
+      responses:
+        200:
+          description: Image
+          content:
+            image/png: {}
+            image/jpg: {}
+            image/x-portable-arbitrarymap: {}
+            application/octet-stream: {}
+            text/plain: {}
+  /instances/{Id}/pdf:
+    get:
+      tags: [Instances]
+      description: Download the embedded PDF of the DICOM instance.
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string    
+      responses:
+        200:
+          description: The raw PDF bytes are returned.
+          content:
+            application/pdf: {}
+        404:
+          description: The instance does not contain an encapsulated PDF or the instance is not found.
+  /series:
+    get:
+      tags: [Series]
+      description: Get all DICOM series ID's in Orthanc
+      parameters:
+        - name: limit
+          in: query
+          schema:
+            type: number
+          description: Limit the number of results to the specified. number
+        - name: since
+          in: query
+          schema:
+            type: number
+          description: Show only the resources since the index provided.
+      responses:
+        200:
+          description: Array of all series ID's
+          content:
+            application/json:
+              schema:
+                type: array
+                items:
+                  type: string
+                example: [
+   "055bfbaf-2aae936c-82ed5a9a-9267f8b7-416a4000",
+   "62dc1ec1-9fc2dd9d-aa66eae1-0db608b1-e17f8ce8"
+]
+  /series/{Id}:
+    get:
+      tags: [Series]
+      description: Get a series from Orthanc
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+      responses:
+        200:
+          description: Orthanc series
+          content:
+            application/json:
+              schema:
+                $ref: "#/components/schemas/series"
+    delete:
+      tags : [Series]
+      description: Delete a series
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+      responses:
+       200:
+         description: Success
+  /series/{Id}/instances:
+    get:
+      tags: [Series]
+      description: Get the instances for a series
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+      responses:
+        200:
+          description: Orthanc instances
+          content:
+            application/json:
+              schema:
+                type: array
+                items:
+                  $ref: "#/components/schemas/instance"
+         
+  /studies:
+    get:
+      tags: [Studies]
+      description: Get all DICOM studies ID's in Orthanc
+      parameters:
+        - name: limit
+          in: query
+          schema:
+            type: number
+          description: Limit the number of results to the specified. number
+        - name: since
+          in: query
+          schema:
+            type: number
+          description: Show only the resources since the index provided.
+      responses:
+        200:
+          description: Array of all study ID's
+          content:
+            application/json:
+              schema:
+                type: array
+                items:
+                  type: string
+                example: [
+   "055bfbaf-2aae936c-82ed5a9a-9267f8b7-416a4000",
+   "62dc1ec1-9fc2dd9d-aa66eae1-0db608b1-e17f8ce8"
+]
+  /studies/{Id}:
+    get:
+      tags: [Studies]
+      description: Get a study from Orthanc
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+      responses:
+        200:
+          description: Orthanc study
+          content:
+            application/json:
+              schema:
+                $ref: "#/components/schemas/study"
+    delete:
+      tags : [Studies]
+      description: Delete a study
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+      responses:
+       200:
+         description: Success
+  /studies/{Id}/series:
+    get:
+      tags: [Studies]
+      description: Get the series for a study
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+      responses:
+        200:
+          description: Orthanc series
+          content:
+            application/json:
+              schema:
+                type: array
+                items:
+                  $ref: "#/components/schemas/series"
+  /studies/{Id}/instances:
+    get:
+      tags: [Studies]
+      description: Get the instances for a study
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+      responses:
+        200:
+          description: Orthanc instances
+          content:
+            application/json:
+              schema:
+                type: array
+                items:
+                  $ref: "#/components/schemas/instance"
+
+  /patients:
+    get:
+      tags: [Patients]
+      description: Get all DICOM patient ID's in Orthanc
+      parameters:
+        - name: limit
+          in: query
+          schema:
+            type: number
+          description: Limit the number of results to the specified. number
+        - name: since
+          in: query
+          schema:
+            type: number
+          description: Show only the resources since the index provided.
+      responses:
+        200:
+          description: Array of all patient ID's
+          content:
+            application/json:
+              schema:
+                type: array
+                items:
+                  type: string
+                example: [
+   "055bfbaf-2aae936c-82ed5a9a-9267f8b7-416a4000",
+   "62dc1ec1-9fc2dd9d-aa66eae1-0db608b1-e17f8ce8"
+]
+  /patients/{Id}:
+    get:
+      tags: [Patients]
+      description: Get a patient from Orthanc
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+      responses:
+        200:
+          description: Orthanc patient
+          content:
+            application/json:
+              schema:
+                $ref: "#/components/schemas/patient"
+    delete:
+      tags : [Patients]
+      description: Delete a patient
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+      responses:
+       200:
+         description: Success
+  /patients/{Id}/studies:
+    get:
+      tags: [Patients]
+      description: Get the studies for a patient
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+      responses:
+        200:
+          description: Success
+          content:
+            application/json:
+              schema:
+                type: array
+                items:
+                  $ref: "#/components/schemas/study"
+  /patients/{Id}/series:
+    get:
+      tags: [Patients]
+      description: Get the series for a patient
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+      responses:
+        200:
+          description: Orthanc series
+          content:
+            application/json:
+              schema:
+                type: array
+                items:
+                  $ref: "#/components/schemas/series"
+  /patients/{Id}/instances:
+    get:
+      tags: [Patients]
+      description: Get the instances for a patient
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+      responses:
+        200:
+          description: Orthanc instances
+          content:
+            application/json:
+              schema:
+                type: array
+                items:
+                  $ref: "#/components/schemas/instance"
+
+  /peers:
+    get:
+      tags: [Orthanc Peers]
+      description: Get a list of Orthanc peers.
+      parameters:
+        - name: expand
+          in: query
+          required: false
+          schema:
+            type: boolean
+      responses:
+        200:
+          description: List of Orthanc peers
+          content:
+            application/json:
+              schema:
+                type: array
+                items:
+                  type: string
+  /peers/{Peer}:
+    put:
+      tags: [Orthanc Peers]
+      summary: Add a new Orthanc peer. 
+      description: Note that this will only be stored in memory unless the 'OrthancPeersInDatabase' configuration option is set.
+      parameters:
+        - name: Peer
+          in: path
+          required: true
+          schema:
+            type: string
+      requestBody:
+        content:
+          application/json:
+            schema:
+              type: array
+              items:
+                $ref: "#/components/schemas/peer"
+      responses:
+        200:
+          description: Peer created
+  /peers/{Peer}/store:
+    post:
+      tags: [Orthanc Peers]
+      summary: Send resources to an Orthanc peer.
+      parameters:
+        - name: Peer
+          in: path
+          required: true
+          description: the peer alias as defined in the Orthanc configuration file
+          schema:
+            type: string
+      requestBody:
+        content:
+          application/json:
+            schema:
+              oneOf:
+                - $ref: "#/components/schemas/listOfResourcesWithAsynchOption"
+                - $ref: "#/components/schemas/listOfResources"          
+          text/plain:
+            schema:
+              $ref: "#/components/schemas/singleResource"
+      responses:
+        200:
+          description: Jobs that have been created
+          content:
+            application/json:
+              schema:
+                oneOf:
+                  - $ref: "#/components/schemas/jobId"
+                  - $ref: "#/components/schemas/jobPeerStore"
+
+  /modalities/{Modality}/store:
+    post:
+      tags: [Remote Modalities]
+      summary: Send resources from Orthanc to a remote modality through C-Store.
+      parameters:
+        - name: Modality
+          in: path
+          required: true
+          description: the modality alias where you want to send data (as defined in the Orthanc configuration file)
+          schema:
+            type: string
+      requestBody:
+        content:
+          application/json:
+            schema:
+              oneOf:
+                - $ref: "#/components/schemas/listOfResourcesWithAsynchOption"
+                - $ref: "#/components/schemas/listOfResources"
+          text/plain:
+            schema:
+              $ref: "#/components/schemas/singleResource"
+      responses:
+        200:
+          description: Jobs that have been created
+          content:
+            application/json:
+              schema:
+                oneOf:
+                  - $ref: "#/components/schemas/jobId"
+                  - $ref: "#/components/schemas/jobCStore"
+
+
+  /modalities/{Modality}/query:
+    post:
+      tags: [Remote Modalities]
+      description: To initiate a query you perform a POST command against the Modality with the identifiers you are looking for. This search is case insensitive unless configured otherwise within the Orthanc configuration file. Note that queries are cleaned up after a period of inactivity, which can sometimes be very short. You will need to access the query results quickly.
+      parameters:
+        - name: Modality
+          in: path
+          required: true
+          description: The Modality to be queried from within the Orthanc configuration file
+          schema:
+            type: string
+      requestBody:
+        content:
+          application/json:
+            schema:
+              properties:
+                Level:
+                  type: string
+                  enum:
+                    - Patient
+                    - Study
+                    - Series
+                    - Instance
+                Query:
+                  type: object
+                  properties:
+                    PatientID:
+                      type: string
+                    StudyDescription:
+                      type: string
+                      description: Match the study description. Note that wildcard "*" can be used to match any text (eg. "*Chest*").
+                    PatientName:
+                      type: string
+                    StudyDate:
+                      type: string
+                      description: This is the study date in the format "20160504". Note that ranges can be used using a hyphen (eg. "20160504-" and "20160504-20170504").
+                    StudyTime:
+                      type: string
+                  required: [Level, Query]
+                  example: {"Level":"Study","Query": {"PatientID":"","StudyDescription":"*Chest*","PatientName":""}}
+      responses:
+        200:
+          description: Query successful
+          content:
+            application/json:
+              schema:
+                properties:
+                  ID:
+                    type: string
+                  Path:
+                    type: string
+              example: {
+   "ID": "5af318ac-78fb-47ff-b0b0-0df18b0588e0",
+   "Path": "/queries/5af318ac-78fb-47ff-b0b0-0df18b0588e0"
+}
+  /queries/{QueryID}/level:
+    get:
+      tags: [Remote Modalities]
+      description: Review the query level, such as Patient, Study, Series or Instance.
+      parameters:
+        - name: QueryID
+          description: This is the query ID that comes from posting a query to the modality.
+          in: path
+          required: true
+          schema:
+            type: string
+      responses:
+        200:
+          description: Return the level of the query, whether Patient, Study, Series or Instance.
+          content:
+            text/plain:
+              example: Series
+  /queries/{QueryID}/modality:
+    get:
+      tags: [Remote Modalities]
+      description: Review the query modality name that the query was originally performed against.
+      parameters:
+        - name: QueryID
+          description: This is the query ID that comes from posting a query to the modality.
+          in: path
+          required: true
+          schema:
+            type: string
+      responses:
+        200:
+          description: Return the name of the modality that the query was run against.
+          content:
+            text/plain:
+              example: SomeModalityName
+  /queries/{QueryID}/query:
+    get:
+      tags: [Remote Modalities]
+      description: Review the query that was posted.
+      parameters:
+        - name: QueryID
+          description: This is the query ID that comes from posting a query to the modality.
+          in: path
+          required: true
+          schema:
+            type: string
+      responses:
+        200:
+          description: Return the query identifiers that were used originally when it was posted.
+  /queries/{QueryID}/answers:
+    get:
+      tags: [Remote Modalities]
+      description: Review the query answers.
+      parameters:
+        - name: QueryID
+          description: This is the query ID that comes from posting a query to the modality.
+          in: path
+          required: true
+          schema:
+            type: string
+      responses:
+        200:
+          description: Return the query answers.
+  /queries/{QueryID}/answers/{Idx}/content:
+    get:
+      tags: [Remote Modalities]
+      description: Review a specific query answer. If there are content items missing, you may add them by adding that identifier to the original query. For example if we wanted Modalities listed in this JSON answer in the initial query we would add to the POST body "ModalitiesInStudy":""
+      parameters:
+        - name: QueryID
+          description: This is the query ID that comes from posting a query to the modality.
+          in: path
+          required: true
+          schema:
+            type: string
+        - name: Idx
+          description: This is the index of a specific answer in the list of answers of the query.
+          in: path
+          required: true
+          schema:
+            type: number
+      responses:
+        200:
+          description: Return a single query answer
+          content:
+            application/json: {}
+  /queries/{QueryID}/retrieve:
+    post:
+      tags: [Remote Modalities]
+      description: You can perform a C-Move to retrieve all studies within the original query using a post command and identifying the Modality (named in this example Orthanc), to be one to in the POST contents. The C-Move can be done asynchronously using an Orthanc job using a JSON parameter in the request body.
+      parameters:
+        - name: QueryID
+          description: This is the query ID that comes from posting a query to the modality.
+          in: path
+          required: true
+          schema:
+            type: string
+      requestBody:
+        description: The request body is the name of the modality to perform the C-Move or a JSON structure with additional information.
+        content:
+          text/plain:
+            example: Orthanc
+          application/json:
+            schema:
+              properties:
+                TargetAet:
+                  type: string
+                Synchronous:
+                  type: boolean
+                  default: true
+                  description: If Synchronous is set to false then this operation runs as an Orthanc job. The output of this request will indicate the Job ID.
+                Priority:
+                  type: number
+                  default: 0
+                  description: If Synchronous is set to false then this sets the priority of the job. The default priority is 0.
+            example: {"TargetAet":"Orthanc","Synchronous":false}
+      responses:
+        200:
+          description: Success
+          content:
+            application/json:
+              schema:
+                properties:
+                  ID:
+                    type: string
+                    description: The ID of the job if the retrieve is asynchronous (ie. Synchronous is set to true)
+                  Path:
+                    type: string
+                    description: The URL path of the job if the retrieve is asynchronous (ie. Synchronous is set to false)
+              example: {
+    "ID" : "11541b16-e368-41cf-a8e9-3acf4061d238",
+    "Path" : "/jobs/11541b16-e368-41cf-a8e9-3acf4061d238"
+}
+  /queries/{QueryID}/answers/{Idx}/retrieve:
+    post:
+      tags: [Remote Modalities]
+      description: You can perform a C-Move to retrieve a specific study within the original query using a post command and identifying the Modality (named in this example Orthanc), to be one to in the POST contents.
+      parameters:
+        - name: QueryID
+          description: This is the query ID that comes from posting a query to the modality.
+          in: path
+          required: true
+          schema:
+            type: string
+        - name: Idx
+          description: This is the index of a specific answer in the list of answers of the query.
+          in: path
+          required: true
+          schema:
+            type: number
+      requestBody:
+        description: The request body is the name of the modality to perform the C-Move.
+        content:
+          text/plain:
+            example: Orthanc
+      responses:
+        200:
+          description: Success
+  /tools/find:
+    post:
+      tags: [Find]
+      description: Performing a find within Orthanc is very similar to using Queries against DICOM modalities and the additional options listed above work with find also. When performing a find, you will receive the Orthanc ID’s of all the matched items within your find. For example if you perform a study level find and 5 Studies match you will receive 5 study level Orthanc ID’s in JSON format as a response.
+      requestBody:
+        description: The request body gives the parameters for the find much like when querying a remote modality.
+        content:
+          application/json:
+            schema:
+              properties:
+                Level:
+                  type: string
+                  enum:
+                    - Patient
+                    - Study
+                    - Series
+                    - Instance
+                Expand:
+                  type: boolean
+                  description: Returns an array of resources instead of just ID's.
+                Limit:
+                  type: number
+                Query:
+                  properties:
+                    Modality:
+                      type: string
+                    StudyDate:
+                      type: string
+                    PatientID:
+                      type: string
+            example: {"Level":"Instance","Limit": 2, "Query":{"Modality":"CR","StudyDate":"20180323-","PatientID":"*"}}
+      responses:
+        200:
+          description: Success
+          content:
+            application/json:
+              schema:
+                oneOf:
+                  - type: array
+                    items:
+                      type: string
+                  - type: array
+                    items:
+                      $ref: "#/components/schemas/instance"
+                  - type: array
+                    items:
+                      $ref: "#/components/schemas/series"
+                  - type: array
+                    items:
+                      $ref: "#/components/schemas/study"
+                  - type: array
+                    items:
+                      $ref: "#/components/schemas/patient"
+              example: [ "6821d761-31fb55a9-031ebecb-ba7f9aae-ffe4ddc0", "2cc6336f-2d4ae733-537b3ca3-e98184b1-ba494b35" ]
+  /changes:
+    get:
+      tags: [Tracking Changes]
+      parameters:
+        - name: limit
+          description: Limit the number of changes to a maximum of the provided number.
+          in: query
+          required: false
+          schema:
+            type: number
+        - name: since
+          description: Show only changes that have happened after the change with the provided sequence number.
+          in: query
+          required: false
+          schema:
+            type: number
+      description: Whenever Orthanc receives a new DICOM instance, this event is recorded in the so-called “Changes Log”. This enables remote scripts to react to the arrival of new DICOM resources. A typical application is auto-routing, where an external script waits for a new DICOM instance to arrive into Orthanc, then forward this instance to another modality.
+      responses:
+        200:
+          description: The list of recent changes
+          content:
+            application/json:
+              schema:
+                properties:
+                  Changes:
+                    type: array
+                    items:
+                      properties:
+                        ChangeType:
+                          type: string
+                          enum:
+                            - NewPatient
+                            - NewStudy
+                            - NewSeries
+                            - NewInstance
+                            - StablePatient
+                            - StableStudy
+                            - StableSeries
+                            - StableInstance
+                        Date:
+                          type: string
+                        ID:
+                          type: string
+                        Path:
+                          type: string
+                        ResourceType:
+                          type: string
+                          enum:
+                            - Patient
+                            - Study
+                            - Series
+                            - Instance
+                        Seq:
+                          type: number
+                  Done:
+                    type: boolean
+                    description: The flag Done is set to true if no further event has occurred after this lastly returned event. If Done is set to false, further events are available and can be retrieved. This is done by setting the since option that specifies from which sequence number the changes must be returned.
+                  Last:
+                    type: number
+                    description: The flag Last records the sequence number of the lastly returned event.
+              example: {
+  "Changes" : [
+     {
+        "ChangeType" : "NewInstance",
+        "Date" : "20130507T143902",
+        "ID" : "8e289db9-0e1437e1-3ecf395f-d8aae463-f4bb49fe",
+        "Path" : "/instances/8e289db9-0e1437e1-3ecf395f-d8aae463-f4bb49fe",
+        "ResourceType" : "Instance",
+        "Seq" : 921
+     },
+     {
+        "ChangeType" : "NewSeries",
+        "Date" : "20130507T143902",
+        "ID" : "cceb768f-e0f8df71-511b0277-07e55743-9ef8890d",
+        "Path" : "/series/cceb768f-e0f8df71-511b0277-07e55743-9ef8890d",
+        "ResourceType" : "Series",
+        "Seq" : 922
+     },
+     {
+        "ChangeType" : "NewStudy",
+        "Date" : "20130507T143902",
+        "ID" : "c4ec7f68-9b162055-2c8c5888-5bf5752f-155ab19f",
+        "Path" : "/studies/c4ec7f68-9b162055-2c8c5888-5bf5752f-155ab19f",
+        "ResourceType" : "Study",
+        "Seq" : 923
+     },
+     {
+        "ChangeType" : "NewPatient",
+        "Date" : "20130507T143902",
+        "ID" : "dc65762c-f476e8b9-898834f4-2f8a5014-2599bc94",
+        "Path" : "/patients/dc65762c-f476e8b9-898834f4-2f8a5014-2599bc94",
+        "ResourceType" : "Patient",
+        "Seq" : 924
+     }
+  ],
+  "Done" : true,
+  "Last" : 924
+}
+    delete:
+      tags : [Tracking Changes]
+      description: Clear the content of the changes log
+      responses:
+       200:
+         description: Success
+         
+  /exports:
+    get:
+      tags: [Exported Resources]
+      description: For medical traceability, Orthanc can be configured to store a log of all the resources that have been exported to remote modalities.
+      responses:
+        200: {description: Success}
+        
+    delete:
+      tags: [Exported Resources]
+      description: In auto-routing scenarios, it is important to prevent this log to grow indefinitely as incoming instances are routed. You can either disable this logging by setting the option LogExportedResources to false in the configuration file, or periodically clear this log by DELETE-ing this URI.
+      responses:
+        200: {description: Success}
+        
+  /instances/{Id}/anonymize:
+    post:
+      tags: [Anonymization]
+      description: Anonymize the instance by erasing all the tags that are specified in Table E.1-1 from PS 3.15 of the DICOM standard 2008 or 2017c (default). The response will contain the anonymized DICOM result. New UUIDs are automatically generated for the instance.
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+      requestBody:
+        content:
+          application/json:
+            schema:
+              properties:
+                DicomVersion:
+                  type: string
+                  description: Specifies which version of the DICOM standard shall be used for anonymization. Allowed values are 2008 and 2017c (default value if the parameter is absent). This parameter has been introduced in Orthanc 1.3.0. In earlier version, the 2008 standard was used.
+                  enum:
+                    - 2017c
+                    - 2008
+                Replace:
+                  type: object
+                  description: Replace is an associative array that associates a DICOM tag with its new string value. The value is dynamically cast to the proper DICOM data type (an HTTP error will occur if the cast fails). Replacements are applied after all the tags to anonymize have been removed.
+                Keep:
+                  type: array
+                  items:
+                    type: string
+                  description: List of DICOM tags that should be kept through the anonymization process.
+                KeepPrivateTags:
+                  type: boolean
+                  description: If KeepPrivateTags is set to true in the JSON request, private tags (i.e. manufacturer-specific tags) are not removed by the anonymization process. The default behavior consists in removing the private tags, as such tags can contain patient-specific information.
+            example: {"Replace":{"PatientName":"Hello","0010-1001":"World"},"Keep":["StudyDescription", "SeriesDescription"],"KeepPrivateTags": true, "DicomVersion" : "2017c"}        
+      responses:
+        200:
+          description: The response contains a DICOM file that has been anonymized.
+          content:
+            application/dicom: {}
+            
+  /patients/{Id}/anonymize:
+    post:
+      tags: [Anonymization]
+      description: Anonymize the patient
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+      requestBody:
+        content:
+          application/json:
+            schema:
+              properties:
+                DicomVersion:
+                  type: string
+                  description: Specifies which version of the DICOM standard shall be used for anonymization. Allowed values are 2008 and 2017c (default value if the parameter is absent). This parameter has been introduced in Orthanc 1.3.0. In earlier version, the 2008 standard was used.
+                  enum:
+                    - 2017c
+                    - 2008
+                Replace:
+                  type: object
+                  description: Replace is an associative array that associates a DICOM tag with its new string value. The value is dynamically cast to the proper DICOM data type (an HTTP error will occur if the cast fails). Replacements are applied after all the tags to anonymize have been removed.
+                Keep:
+                  type: array
+                  items:
+                    type: string
+                  description: List of DICOM tags that should be kept through the anonymization process.
+                KeepPrivateTags:
+                  type: boolean
+                  description: If KeepPrivateTags is set to true in the JSON request, private tags (i.e. manufacturer-specific tags) are not removed by the anonymization process. The default behavior consists in removing the private tags, as such tags can contain patient-specific information.
+                Synchronous:
+                  type: boolean
+                  default: true
+                  description: If Synchronous is set to false then this operation runs as an Orthanc job. The output of this request will indicate the Job ID.
+                Priority:
+                  type: number
+                  default: 0
+                  description: If Synchronous is set to false then this sets the priority of the job. The default priority is 0.
+            example: {"Replace":{"PatientName":"Hello","0010-1001":"World"},"Keep":["StudyDescription", "SeriesDescription"],"KeepPrivateTags": true, "DicomVersion" : "2017c"}        
+      responses:
+        200:
+          description: Success
+          content:
+            application/json:
+              schema:
+                properties:
+                  ID:
+                    type: string
+                    description: The ID of the new anonymized patient.
+                  Path:
+                    type: string
+                    description: The URL of the new anonymized patient.
+                  PatientID:
+                    type: string
+                  Type:
+                    type: string
+                    enum:
+                      - Patient
+              example: {
+  "ID" : "f7ff9e8b-7bb2e09b-70935a5d-785e0cc5-d9d0abf0",
+  "Path" : "/patients/f7ff9e8b-7bb2e09b-70935a5d-785e0cc5-d9d0abf0",
+  "PatientID" : "f7ff9e8b-7bb2e09b-70935a5d-785e0cc5-d9d0abf0",
+  "Type" : "Patient"
+}
+
+  /studies/{Id}/anonymize:
+    post:
+      tags: [Anonymization]
+      description: Anonymize the study
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+      requestBody:
+        content:
+          application/json:
+            schema:
+              properties:
+                DicomVersion:
+                  type: string
+                  description: Specifies which version of the DICOM standard shall be used for anonymization. Allowed values are 2008 and 2017c (default value if the parameter is absent). This parameter has been introduced in Orthanc 1.3.0. In earlier version, the 2008 standard was used.
+                  enum:
+                    - 2017c
+                    - 2008
+                Replace:
+                  type: object
+                  description: Replace is an associative array that associates a DICOM tag with its new string value. The value is dynamically cast to the proper DICOM data type (an HTTP error will occur if the cast fails). Replacements are applied after all the tags to anonymize have been removed.
+                Keep:
+                  type: array
+                  items:
+                    type: string
+                  description: List of DICOM tags that should be kept through the anonymization process.
+                KeepPrivateTags:
+                  type: boolean
+                  description: If KeepPrivateTags is set to true in the JSON request, private tags (i.e. manufacturer-specific tags) are not removed by the anonymization process. The default behavior consists in removing the private tags, as such tags can contain patient-specific information.
+                Synchronous:
+                  type: boolean
+                  default: true
+                  description: If Synchronous is set to false then this operation runs as an Orthanc job. The output of this request will indicate the Job ID.
+                Priority:
+                  type: number
+                  default: 0
+                  description: If Synchronous is set to false then this sets the priority of the job. The default priority is 0.
+            example: {"Replace":{"PatientName":"Hello","0010-1001":"World"},"Keep":["StudyDescription", "SeriesDescription"],"KeepPrivateTags": true, "DicomVersion" : "2017c"}        
+      responses:
+        200:
+          description: Success
+          content:
+            application/json:
+              schema:
+                properties:
+                  ID:
+                    type: string
+                    description: The ID of the new anonymized study.
+                  Path:
+                    type: string
+                    description: The URL of the new anonymized study.
+              example: {
+  "ID" : "3bd3d343-82879d86-da77321c-1d23fd6b-faa07bce",
+  "Path" : "/studies/3bd3d343-82879d86-da77321c-1d23fd6b-faa07bce"
+}
+
+  /series/{Id}/anonymize:
+    post:
+      tags: [Anonymization]
+      description: Anonymize the series
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+      requestBody:
+        content:
+          application/json:
+            schema:
+              properties:
+                DicomVersion:
+                  type: string
+                  description: Specifies which version of the DICOM standard shall be used for anonymization. Allowed values are 2008 and 2017c (default value if the parameter is absent). This parameter has been introduced in Orthanc 1.3.0. In earlier version, the 2008 standard was used.
+                  enum:
+                    - 2017c
+                    - 2008
+                Replace:
+                  type: object
+                  description: Replace is an associative array that associates a DICOM tag with its new string value. The value is dynamically cast to the proper DICOM data type (an HTTP error will occur if the cast fails). Replacements are applied after all the tags to anonymize have been removed.
+                Keep:
+                  type: array
+                  items:
+                    type: string
+                  description: List of DICOM tags that should be kept through the anonymization process.
+                KeepPrivateTags:
+                  type: boolean
+                  description: If KeepPrivateTags is set to true in the JSON request, private tags (i.e. manufacturer-specific tags) are not removed by the anonymization process. The default behavior consists in removing the private tags, as such tags can contain patient-specific information.
+                Synchronous:
+                  type: boolean
+                  default: true
+                  description: If Synchronous is set to false then this operation runs as an Orthanc job. The output of this request will indicate the Job ID.
+                Priority:
+                  type: number
+                  default: 0
+                  description: If Synchronous is set to false then this sets the priority of the job. The default priority is 0.
+            example: {"Replace":{"PatientName":"Hello","0010-1001":"World"},"Keep":["StudyDescription", "SeriesDescription"],"KeepPrivateTags": true, "DicomVersion" : "2017c"}        
+      responses:
+        200:
+          description: Success
+          content:
+            application/json:
+              schema:
+                properties:
+                  ID:
+                    type: string
+                    description: The ID of the new anonymized series.
+                  Path:
+                    type: string
+                    description: The URL of the new anonymized series.
+              example: {
+  "ID" : "3bd3d343-82879d86-da77321c-1d23fd6b-faa07bce",
+  "Path" : "/series/3bd3d343-82879d86-da77321c-1d23fd6b-faa07bce"
+}
+            
+  /instances/{Id}/modify:
+    post:
+      tags: [Modification]
+      description: Orthanc allows to modify a set of specified tags in a single DICOM instance and to download the resulting modified DICOM file.
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+      requestBody:
+        content:
+          application/json:
+            schema:
+              properties:
+                Replace:
+                  type: object
+                  description: The Replace associative array specifies the substitions to be applied (cf. anonymization).
+                Remove:
+                  type: array
+                  items:
+                    type: string
+                  description: The Remove array specifies the list of the tags to remove.
+                RemovePrivateTags:
+                  type: boolean
+                  description: If RemovePrivateTags is set to true, the private tags (i.e. manufacturer-specific tags) are removed.
+                Force:
+                  type: boolean
+                  description: The Force option must be set to true, in order to allow the modification of the PatientID, as such a modification of the DICOM identifiers might lead to breaking the DICOM model of the real-world. In general, any explicit modification to one of the PatientID, StudyInstanceUID, SeriesInstanceUID, and SOPInstanceUID requires Force to be set to true, in order to prevent any unwanted side effect.
+                  default: false
+            example: {"Replace":{"PatientName":"hello","PatientID":"world"},"Remove":["InstitutionName"],"RemovePrivateTags": true, "Force": true}       
+      responses:
+        200:
+          description: The response contains a DICOM file that has been anonymized.
+          content:
+            application/dicom: {}
+            
+  /studies/{Id}/modify:
+    post:
+      tags: [Modification]
+      description: It is possible to modify all the instances from a study or from a series in a single request. In this case, the modified instances are stored back into the Orthanc store.
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+      requestBody:
+        content:
+          application/json:
+            schema:
+              properties:
+                Replace:
+                  type: object
+                  description: The Replace associative array specifies the substitions to be applied (cf. anonymization).
+                Remove:
+                  type: array
+                  items:
+                    type: string
+                  description: The Remove array specifies the list of the tags to remove.
+                RemovePrivateTags:
+                  type: boolean
+                  description: If RemovePrivateTags is set to true, the private tags (i.e. manufacturer-specific tags) are removed.
+                Force:
+                  type: boolean
+                  description: The Force option must be set to true, in order to allow the modification of the PatientID, as such a modification of the DICOM identifiers might lead to breaking the DICOM model of the real-world. In general, any explicit modification to one of the PatientID, StudyInstanceUID, SeriesInstanceUID, and SOPInstanceUID requires Force to be set to true, in order to prevent any unwanted side effect.
+                  default: false
+                Synchronous:
+                  type: boolean
+                  default: true
+                  description: If Synchronous is set to false then this operation runs as an Orthanc job. The output of this request will indicate the Job ID.
+                Priority:
+                  type: number
+                  default: 0
+                  description: If Synchronous is set to false then this sets the priority of the job. The default priority is 0.
+            example: {"Replace":{"InstitutionName":"My own clinic"}}      
+      responses:
+        200:
+          description: Success
+          content:
+            application/json:
+              schema:
+                properties:
+                  ID:
+                    type: string
+                    description: The ID of the new modified study.
+                  Path:
+                    type: string
+                    description: The URL of the new modified study.
+              example: {
+  "ID" : "3bd3d343-82879d86-da77321c-1d23fd6b-faa07bce",
+  "Path" : "/studies/3bd3d343-82879d86-da77321c-1d23fd6b-faa07bce"
+}
+
+  /series/{Id}/modify:
+    post:
+      tags: [Modification]
+      description: It is possible to modify all the instances from a study or from a series in a single request. In this case, the modified instances are stored back into the Orthanc store.
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+      requestBody:
+        content:
+          application/json:
+            schema:
+              properties:
+                Replace:
+                  type: object
+                  description: The Replace associative array specifies the substitions to be applied (cf. anonymization).
+                Remove:
+                  type: array
+                  items:
+                    type: string
+                  description: The Remove array specifies the list of the tags to remove.
+                RemovePrivateTags:
+                  type: boolean
+                  description: If RemovePrivateTags is set to true, the private tags (i.e. manufacturer-specific tags) are removed.
+                Force:
+                  type: boolean
+                  description: The Force option must be set to true, in order to allow the modification of the PatientID, as such a modification of the DICOM identifiers might lead to breaking the DICOM model of the real-world. In general, any explicit modification to one of the PatientID, StudyInstanceUID, SeriesInstanceUID, and SOPInstanceUID requires Force to be set to true, in order to prevent any unwanted side effect.
+                  default: false
+                Synchronous:
+                  type: boolean
+                  default: true
+                  description: If Synchronous is set to false then this operation runs as an Orthanc job. The output of this request will indicate the Job ID.
+                Priority:
+                  type: number
+                  default: 0
+                  description: If Synchronous is set to false then this sets the priority of the job. The default priority is 0.
+            example: {"Replace":{"InstitutionName":"My own clinic"}}      
+      responses:
+        200:
+          description: Success
+          content:
+            application/json:
+              schema:
+                properties:
+                  ID:
+                    type: string
+                    description: The ID of the new modified study.
+                  Path:
+                    type: string
+                    description: The URL of the new modified study.
+              example: {
+  "ID" : "3bd3d343-82879d86-da77321c-1d23fd6b-faa07bce",
+  "Path" : "/series/3bd3d343-82879d86-da77321c-1d23fd6b-faa07bce"
+}
+
+  /patients/{Id}/modify:
+    post:
+      tags: [Modification]
+      description: Starting with Orthanc 0.7.5, Orthanc can also modify all the instances of a patient with a single REST call.
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+      requestBody:
+        content:
+          application/json:
+            schema:
+              properties:
+                Replace:
+                  type: object
+                  description: The Replace associative array specifies the substitions to be applied (cf. anonymization).
+                Remove:
+                  type: array
+                  items:
+                    type: string
+                  description: The Remove array specifies the list of the tags to remove.
+                RemovePrivateTags:
+                  type: boolean
+                  description: If RemovePrivateTags is set to true, the private tags (i.e. manufacturer-specific tags) are removed.
+                Force:
+                  type: boolean
+                  description: The Force option must be set to true, in order to allow the modification of the PatientID, as such a modification of the DICOM identifiers might lead to breaking the DICOM model of the real-world. In general, any explicit modification to one of the PatientID, StudyInstanceUID, SeriesInstanceUID, and SOPInstanceUID requires Force to be set to true, in order to prevent any unwanted side effect.
+                  default: false
+                Synchronous:
+                  type: boolean
+                  default: true
+                  description: If Synchronous is set to false then this operation runs as an Orthanc job. The output of this request will indicate the Job ID.
+                Priority:
+                  type: number
+                  default: 0
+                  description: If Synchronous is set to false then this sets the priority of the job. The default priority is 0.
+            example: {"Replace":{"PatientID":"Hello","PatientName":"Sample patient name"},"Force":true}   
+      responses:
+        200:
+          description: Success
+          content:
+            application/json:
+              schema:
+                properties:
+                  ID:
+                    type: string
+                    description: The ID of the new modified patient.
+                  Path:
+                    type: string
+                    description: The URL of the new modified patient.
+                  PatientID:
+                    type: string
+                  Type:
+                    type: string
+                    enum:
+                      - Patient
+              example: {
+  "ID" : "f7ff9e8b-7bb2e09b-70935a5d-785e0cc5-d9d0abf0",
+  "Path" : "/patients/f7ff9e8b-7bb2e09b-70935a5d-785e0cc5-d9d0abf0",
+  "PatientID" : "f7ff9e8b-7bb2e09b-70935a5d-785e0cc5-d9d0abf0",
+  "Type" : "Patient"
+}
+
+  /studies/{Id}/split:
+    post:
+      tags: [Split/merge DICOM studies]
+      description: "Starting with Orthanc 1.5.0, Orthanc supports splitting and merging DICOM studies through its REST API. By issuing the example command, the series whose Orthanc identifier is 6ca4c9f3-5e895cb3-4d82c6da-09e060fe-9c59f228, and that is part of the source study with identifier in the URL, will be removed from the source study, and will be moved to a brand new study. This is done by generating a new value for all the following DICOM tags in the DICOM instances of the series of interest: StudyInstanceUID (0x0020, 0x000d), SeriesInstanceUID (0x0020, 0x000e), and SOPInstanceUID (0x0008, 0x0018)"
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+      requestBody:
+        content:
+          application/json:
+            schema:
+              properties:
+                Series:
+                  type: array
+                  items:
+                    type: string
+                  description: Series gives the list of series to be separated from the parent study (mandatory option). These series must all be children of the same source study, that is specified in the URI.
+                Replace:
+                  type: object
+                  description: Replace allows to overwrite the DICOM tags that are part of the "Patient Module Attributes" and the "General Study Module Attributes", as specified by the DICOM 2011 standard in Tables C.7-1 and C.7-3.
+                Remove:
+                  type: array
+                  items:
+                    type: string
+                  description: Remove allows to remove DICOM tags from the same modules as in the Replace options.
+                KeepSource:
+                  type: boolean
+                  description: KeepSource (Boolean value), if set to true, instructs Orthanc to keep a copy of the original series in the source study. By default, the original series are deleted from Orthanc.
+                Synchronous:
+                  type: boolean
+                  default: true
+                  description: If Synchronous is set to false then this operation runs as an Orthanc job. The output of this request will indicate the Job ID.
+                Priority:
+                  type: number
+                  default: 0
+                  description: If Synchronous is set to false then this sets the priority of the job. The default priority is 0.
+            example: {"Series":["6ca4c9f3-5e895cb3-4d82c6da-09e060fe-9c59f228"],"Replace":{"PatientName":"HELLO"},"Remove":["AccessionNumber"]}
+      responses:
+        200:
+          description: Success
+          
+  /studies/{Id}/merge:
+    post:
+      tags: [Split/merge DICOM studies]
+      description: "Merge DICOM series into another DICOM study. By issuing this command, the DICOM series whose Orthanc identifier is ef2ce55f-9342856a-aee23907-2667e859-9f3b734d, will be merged into target study with identifier Id in the URL. As in the case of splitting, this is done by updating the following DICOM tags: StudyInstanceUID (0x0020, 0x000d), SeriesInstanceUID (0x0020, 0x000e), and SOPInstanceUID (0x0008, 0x0018). Furthermore, all the DICOM tags that are part of the “Patient Module Attributes” and the “General Study Module Attributes” (as specified by the DICOM 2011 standard in Tables C.7-1 and C.7-3), are modified to match the target study."
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+      requestBody:
+        content:
+          application/json:
+            schema:
+              properties:
+                Resources:
+                  type: array
+                  items:
+                    type: string
+                  description: Resources gives the list of source studies or source series that are to be merged into the target study.
+                KeepSource:
+                  type: boolean
+                  description: KeepSource (Boolean value), if set to true, instructs Orthanc to keep the source studies and series. By default, the original resources are deleted from Orthanc.
+                Synchronous:
+                  type: boolean
+                  default: true
+                  description: If Synchronous is set to false then this operation runs as an Orthanc job. The output of this request will indicate the Job ID.
+                Priority:
+                  type: number
+                  default: 0
+                  description: If Synchronous is set to false then this sets the priority of the job. The default priority is 0.
+            example: {"Resources":["ef2ce55f-9342856a-aee23907-2667e859-9f3b734d"]}
+      responses:
+        200:
+          description: Success
+
+  /instances/{Id}/frames:
+    get:
+      tags: [Frames]
+      description: Get the list of frames for a DICOM instance.
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+      responses:
+        200:
+          description: Success
+          content:
+            application/json:
+              schema:
+                type: array
+                items:
+                  type: number
+              example: [0, 75]
+  /instances/{Id}/frames/{Idx}/{PixelFormat}:
+    get:
+      tags: [Frames]
+      description: Get the image data of a frame within an instance.
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+        - name: Idx
+          required: true
+          in: path
+          schema:
+            type: number
+        - name: PixelFormat
+          required: true
+          in: path
+          schema:
+            type: string
+            enum:
+              - image-uint8
+              - image-uint16
+              - image-int16
+              - matlab
+              - raw
+              - raw.gz
+        - name: Accept
+          required: true
+          in: header
+          schema:
+            type: string
+            enum:
+              - image/png
+              - image/jpeg
+              - image/x-portable-arbitrarymap
+      responses:
+        200:
+          description: Image
+          content:
+            image/png: {}
+            image/jpg: {}
+            image/x-portable-arbitrarymap: {}
+            application/octet-stream: {}
+            text/plain: {}
+  /instances/{Id}/frames/{Idx}/preview:
+    get:
+      tags: [Frames]
+      description: Download a preview image of the frame of a DICOM instance.
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+        - name: Idx
+          required: true
+          in: path
+          schema:
+            type: number
+        - name: Accept
+          description: Default is image/png
+          required: false
+          in: header
+          schema:
+            type: string
+            enum:
+              - image/png
+              - image/jpeg
+      responses:
+        200:
+          description: DICOM preview
+          content:
+            image/png: {}
+            image/jpg: {}
+            
+  /tools/lookup:
+    post:
+      tags: [Lookup]
+      description: Lookup resources by their UID
+      requestBody:
+        content:
+          text/plain:
+            example: "1.2.826.0.1.3680043.8.1055.1.20111103111148288.81713267.86905863"
+      responses:
+        200:
+          description: Success
+          content:
+            application/json:
+              schema:
+                type: array
+                items:
+                  properties:
+                    ID:
+                      type: string
+                    Path:
+                      type: string
+                    Type:
+                      type: string
+                      enum:
+                        - Patient
+                        - Study
+                        - Series
+                        - Instance
+                  example: {
+      "ID" : "53a15d3a-ec236c65-5958be97-e31b8725-5f55ca69",
+      "Path" : "/instances/53a15d3a-ec236c65-5958be97-e31b8725-5f55ca69",
+      "Type" : "Instance"
+   }
+   
+  /tools/create-archive:
+    post:
+      tags: [Archive]
+      description: Create an archive (zip) of the specified resource ID's as a collection of DICOM files.
+      requestBody:
+        content:
+          application/json:
+            schema:
+              oneOf:
+                - type: array
+                  items:
+                    type: string
+                - properties:
+                    Synchronous:
+                      type: boolean
+                      default: true
+                      description: If synchronous is set to false then the archive is created through a job. The job ID and path will be given in the response. Once that job is complete then you can access the archive from the /jobs/{Id}/archive endpoint.
+                    Resources:
+                      type: array
+                      items:
+                        type: string
+              example: [ 
+            'ca29faea-b6a0e17f-067743a1-8b778011-a48b2a17',
+            '0a9b3153-2512774b-2d9580de-1fc3dcf6-3bd83918',
+            '1e2c125c-411b8e86-3f4fe68e-a7584dd3-c6da78f0'
+        ]
+      responses:
+        200:
+          description: Success
+          content:
+            application/zip: {}
+            application/json:
+              schema:
+                properties:
+                  ID:
+                    type: string
+                  Path:
+                    type: string
+                example: {
+   "ID" : "6c5bab22-79ae-4eca-b0af-d979431801bd",
+   "Path" : "/jobs/6c5bab22-79ae-4eca-b0af-d979431801bd"
+}
+   
+  /tools/default-encoding:
+    get:
+      tags: [I18N]
+      description: Get the default text encoding for the Orthanc server.
+      responses:
+        200:
+          description: Success
+          content:
+            text/plain:
+              example: Latin1
+    post:
+      tags: [I18N]
+      description: Set the default text encoding for the Orthanc server.
+      requestBody:
+        content:
+          text/plain:
+            example: "Latin1"
+      responses:
+        200:
+          description: Success
+          
+  /jobs:
+    get:
+      tags: [Jobs]
+      description: The list of all jobs can be retrieved as follows.
+      responses:
+        200:
+          description: Success
+          content:
+            application/json:
+              schema:
+                type: array
+                items:
+                  type: string
+              example: [ "e0d12aac-47eb-454f-bb7f-9857931e2904" ]
+              
+  /jobs/{Id}:
+    get:
+      tags: [Jobs]
+      description: The list of all jobs can be retrieved as follows.
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+      responses:
+        200:
+          description: Success
+          content:
+            application/json:
+              schema:
+                properties:
+                  CompletionTime:
+                    type: string
+                  Content:
+                    type: array
+                    items:
+                      properties:
+                        Description:
+                          type: string
+                        InstanceCount:
+                          type: number
+                        UncompressedSizeMB:
+                          type: number
+                  CreationTime:
+                    type: string
+                  EffectiveRuntime:
+                    type: number
+                  ErrorCode:
+                    type: number
+                  ErrorDescription:
+                    type: string
+                  ID:
+                    type: string
+                  Priority:
+                    type: number
+                  Progress:
+                    type: number
+                  State:
+                    type: string
+                    enum:
+                      - Success
+                      - Failure
+                      - Pending
+                      - Running
+                      - Paused
+                      - Retry
+                  Timestamp:
+                    type: string
+                  Type:
+                    type: string
+              example: {
+  "CompletionTime" : "20190306T095223.753851",
+  "Content" : {
+    "Description" : "REST API",
+    "InstancesCount" : 1,
+    "UncompressedSizeMB" : 0
+  },
+  "CreationTime" : "20190306T095223.750666",
+  "EffectiveRuntime" : 0.001,
+  "ErrorCode" : 0,
+  "ErrorDescription" : "Success",
+  "ID" : "e0d12aac-47eb-454f-bb7f-9857931e2904",
+  "Priority" : 0,
+  "Progress" : 100,
+  "State" : "Success",
+  "Timestamp" : "20190306T095408.556082",
+  "Type" : "Archive"
+}
+  /jobs/{Id}/archive:
+    get:
+      tags: [Jobs]
+      description: Get the archive generated by the job. Note that the job must be an archive job and it must be complete.
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+      responses:
+        200:
+          description: Success
+          content:
+            application/zip: {}
+  /jobs/{Id}/cancel:
+    post:
+      tags: [Jobs]
+      description: Cancel the job
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+      responses:
+       200:
+         description: Success
+  /jobs/{Id}/pause:
+    post:
+      tags: [Jobs]
+      description: Pause the job
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+      responses:
+       200:
+         description: Success
+  /jobs/{Id}/resume:
+    post:
+      tags: [Jobs]
+      description: Resume the job
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+      responses:
+       200:
+         description: Success
+  /jobs/{Id}/resubmit:
+    post:
+      tags: [Jobs]
+      description: Retry the job
+      parameters:
+        - name: Id
+          required: true
+          in: path
+          schema:
+            type: string
+      responses:
+       200:
+         description: Success
+         
+  /tools/create-dicom:
+    post:
+      tags: [PDF]
+      description: The /tools/create-dicom URI can be used to upload a PDF file to Orthanc. You can retrieve the PDF from the instance using /instances/{Id}/pdf.
+      requestBody:
+        content:
+          application/json:
+            schema:
+              properties:
+                Tags:
+                  properties:
+                    PatientName:
+                      type: string
+                    Modality:
+                      type: string
+                Content:
+                  type: string
+                  pattern: 'data:application/pdf;base64,.*'
+                  description: Base 64 encoded bytes of the PDF to store.
+            example: {"Tags" : {"PatientName" : "Benjamino", "Modality" : "CT"},"Content" : "data:application/pdf;base64,<base64contentsofpdf>"}
+      responses:
+        200:
+          description: The ID of the new DICOM instance is returned.
+          content:
+            text/plain:
+              example: "e0d12aac-47eb-454f-bb7f-9857931e2904"
+
+  /tools/metrics-prometheus:
+    get:
+      tags: [Prometheus Metrics]
+      description: Orthanc publishes its metrics according to the text-based format of Prometheus (check also the OpenMetrics project), onto the /tools/metrics-prometheus URI of the REST API.
+      responses:
+        200:
+          description: Success
+          content:
+            text/plain:
+              example: |
+                orthanc_count_instances 1 1551868380543
+                orthanc_count_patients 1 1551868380543
+                orthanc_count_series 1 1551868380543
+                orthanc_count_studies 1 1551868380543
+                orthanc_disk_size_mb 0.0135002136 1551868380543
+                orthanc_jobs_completed 1 1551868380543
+                orthanc_jobs_failed 0 1551868380543
+                orthanc_jobs_pending 0 1551868380543
+                orthanc_jobs_running 0 1551868380543
+                orthanc_jobs_success 1 1551868380543
+                orthanc_rest_api_active_requests 1 1551868380543
+                orthanc_rest_api_duration_ms 0 1551868094265
+                orthanc_storage_create_duration_ms 0 1551865919315
+                orthanc_storage_read_duration_ms 0 1551865943752
+                orthanc_store_dicom_duration_ms 5 1551865919319
+                orthanc_uncompressed_size_mb 0.0135002136 1551868380543
+
+  /tools/metrics:
+    get:
+      tags: [Prometheus Metrics]
+      description: Get the enablement state of the metrics gathering.
+      responses:
+        200:
+          description: Success
+          content:
+            text/plain:
+              example: "1"
+    put:
+      tags: [Prometheus Metrics]
+      description: Set the enablement state of the metrics gathering.
+      requestBody:
+        content:
+          text/plain:
+            example: "1"
+      responses:
+        200:
+          description: Success
+
+  /system:
+    get:
+      tags: [System]
+      description: Get system information for the Orthanc server.
+      responses:
+        200:
+          description: Success
+          content:
+            application/json:
+              schema:
+                properties:
+                  ApiVersion:
+                    type: number
+                  DatabaseBackendPlugin:
+                    type: string
+                  DatabaseVersion:
+                    type: number
+                  DicomAet:
+                    type: string
+                  DicomPort:
+                    type: number
+                  HttpPort:
+                    type: number
+                  Name:
+                    type: string
+                  PluginsEnabled:
+                    type: boolean
+                  StorageAreaPlugin:
+                    type: string
+                  Version:
+                    type: string
+              example: {
+   "ApiVersion" : 3,
+   "DatabaseBackendPlugin" : null,
+   "DatabaseVersion" : 6,
+   "DicomAet" : "ORTHANC",
+   "DicomPort" : 4242,
+   "HttpPort" : 8042,
+   "Name" : "Orthanc Demo",
+   "PluginsEnabled" : true,
+   "StorageAreaPlugin" : null,
+   "Version" : "1.5.7"
+}
+
+  /statistics:
+    get:
+      tags: [Statistics]
+      description: Get statistics about the data stored in Orthanc.
+      responses:
+        200:
+          description: Success
+          content:
+            application/json:
+              schema:
+                properties:
+                  CountInstances:
+                    type: number
+                  CountPatients:
+                    type: number
+                  CountSeries:
+                    type: number
+                  CountStudies:
+                    type: number
+                  TotalDiskSize:
+                    type: string
+                  TotalDiskSizeMB:
+                    type: number
+                  TotalUncompressedSize:
+                    type: string
+                  TotalUncompressedSizeMB:
+                    type: number
+              example: {
+   "CountInstances" : 2352,
+   "CountPatients" : 7,
+   "CountSeries" : 23,
+   "CountStudies" : 7,
+   "TotalDiskSize" : "913213057",
+   "TotalDiskSizeMB" : 870,
+   "TotalUncompressedSize" : "913213057",
+   "TotalUncompressedSizeMB" : 870
+}
+
+  /tools/execute-script:
+    post:
+      tags: [Lua]
+      description: Execute the posted Lua script
+      requestBody:
+        content:
+          text/plain:
+            example: print(42)
+      responses:
+        200:
+          description: Script executed
+          content:
+            text/plain:
+              example: "42"
\ No newline at end of file
--- a/OpenAPI/index.html	Wed Dec 30 07:28:25 2020 +0100
+++ b/OpenAPI/index.html	Wed Dec 30 07:55:12 2020 +0100
@@ -18,7 +18,7 @@
     </style>
   </head>
   <body>
-    <redoc spec-url="orthanc-openapi.yaml" lazy-rendering hide-hostname></redoc>
+    <redoc spec-url="orthanc-openapi.json" lazy-rendering hide-hostname></redoc>
     <script src="./redoc.standalone.js"> </script>
   </body>
 </html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/OpenAPI/orthanc-openapi.json	Wed Dec 30 07:55:12 2020 +0100
@@ -0,0 +1,12670 @@
+{
+   "info" : {
+      "description" : "This is the full documentation of the [REST API](https://book.orthanc-server.com/users/rest.html) of Orthanc.<p>This reference is automatically generated from the source code of Orthanc. A [shorter cheat sheet](https://book.orthanc-server.com/users/rest-cheatsheet.html) is part of the Orthanc Book.<p>An earlier, manually crafted version from August 2019, is [still available](2019-08-orthanc-openapi.html), but is not up-to-date anymore ([source](https://groups.google.com/g/orthanc-users/c/NUiJTEICSl8/m/xKeqMrbqAAAJ))",
+      "title" : "Orthanc API",
+      "version" : "1.8.2"
+   },
+   "openapi" : "3.0.0",
+   "paths" : {
+      "/changes" : {
+         "delete" : {
+            "deprecated" : false,
+            "description" : "Clear the full history stored in the changes log",
+            "parameters" : [],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Clear changes",
+            "tags" : [ "Tracking changes" ]
+         },
+         "get" : {
+            "deprecated" : false,
+            "description" : "Whenever Orthanc receives a new DICOM instance, this event is recorded in the so-called _Changes Log_. This enables remote scripts to react to the arrival of new DICOM resources. A typical application is auto-routing, where an external script waits for a new DICOM instance to arrive into Orthanc, then forward this instance to another modality.",
+            "parameters" : [
+               {
+                  "description" : "Limit the number of results",
+                  "in" : "query",
+                  "name" : "limit",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               },
+               {
+                  "description" : "Show only the resources since the provided index",
+                  "in" : "query",
+                  "name" : "since",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "The list of changes",
+                           "example" : {
+                              "Changes" : [
+                                 {
+                                    "ChangeType" : "NewInstance",
+                                    "Date" : "20180414T091510",
+                                    "ID" : "055bfbaf-2aae936c-82ed5a9a-9267f8b7-416a4000",
+                                    "Path" : "/instances/055bfbaf-2aae936c-82ed5a9a-9267f8b7-416a4000",
+                                    "ResourceType" : "Instance",
+                                    "Seq" : 1
+                                 },
+                                 {
+                                    "ChangeType" : "NewSeries",
+                                    "Date" : "20180414T091510",
+                                    "ID" : "318603c5-03e8cffc-a82b6ee1-3ccd3c1e-18d7e3bb",
+                                    "Path" : "/series/318603c5-03e8cffc-a82b6ee1-3ccd3c1e-18d7e3bb",
+                                    "ResourceType" : "Series",
+                                    "Seq" : 2
+                                 }
+                              ],
+                              "Done" : false,
+                              "Last" : 2
+                           },
+                           "properties" : {
+                              "Changes" : {
+                                 "description" : "The individual changes",
+                                 "items" : {
+                                    "type" : "object"
+                                 },
+                                 "type" : "array"
+                              },
+                              "Done" : {
+                                 "description" : "Whether the last reported change is the last of the full history",
+                                 "type" : "boolean"
+                              },
+                              "Last" : {
+                                 "description" : "The index of the last reported change, can be used for the `since` argument in subsequent calls to this route",
+                                 "type" : "number"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "List changes",
+            "tags" : [ "Tracking changes" ]
+         }
+      },
+      "/exports" : {
+         "delete" : {
+            "deprecated" : false,
+            "description" : "Clear the full history stored in the exports log",
+            "parameters" : [],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Clear exports",
+            "tags" : [ "Tracking changes" ]
+         },
+         "get" : {
+            "deprecated" : false,
+            "description" : "For medical traceability, Orthanc can be configured to store a log of all the resources that have been exported to remote modalities. In auto-routing scenarios, it is important to prevent this log to grow indefinitely as incoming instances are routed. You can either disable this logging by setting the option `LogExportedResources` to `false` in the configuration file, or periodically clear this log by `DELETE`-ing this URI. This route might be removed in future versions of Orthanc.",
+            "parameters" : [
+               {
+                  "description" : "Limit the number of results",
+                  "in" : "query",
+                  "name" : "limit",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               },
+               {
+                  "description" : "Show only the resources since the provided index",
+                  "in" : "query",
+                  "name" : "since",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The list of exports"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "List exports",
+            "tags" : [ "Tracking changes" ]
+         }
+      },
+      "/instances" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "List the Orthanc identifiers of all the available DICOM instances",
+            "parameters" : [
+               {
+                  "description" : "If present, retrieve detailed information about the individual instances",
+                  "in" : "query",
+                  "name" : "expand",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Limit the number of results",
+                  "in" : "query",
+                  "name" : "limit",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               },
+               {
+                  "description" : "Show only the resources since the provided index",
+                  "in" : "query",
+                  "name" : "since",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "JSON array containing either the Orthanc identifiers, or detailed information about the reported instances (if `expand` argument is provided)",
+                           "example" : [
+                              "055bfbaf-2aae936c-82ed5a9a-9267f8b7-416a4000",
+                              "62dc1ec1-9fc2dd9d-aa66eae1-0db608b1-e17f8ce8"
+                           ]
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "List the available instances",
+            "tags" : [ "Instances" ]
+         },
+         "post" : {
+            "deprecated" : false,
+            "description" : "Upload DICOM instances",
+            "parameters" : [],
+            "requestBody" : {
+               "content" : {
+                  "application/dicom" : {
+                     "schema" : {
+                        "description" : "DICOM file to be uploaded"
+                     }
+                  },
+                  "application/zip" : {
+                     "schema" : {
+                        "description" : "ZIP archive containing DICOM files (new in Orthanc 1.8.2)"
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "Information about the uploaded instance, or list of information for each uploaded instance in the case of ZIP archive",
+                           "example" : {
+                              "ID" : "19816330-cb02e1cf-df3a8fe8-bf510623-ccefe9f5",
+                              "ParentPatient" : "ef9d77db-eb3b2bef-9b31fd3e-bf42ae46-dbdb0cc3",
+                              "ParentSeries" : "3774320f-ccda46d8-69ee8641-9e791cbf-3ecbbcc6",
+                              "ParentStudy" : "66c8e41e-ac3a9029-0b85e42a-8195ee0a-92c2e62e",
+                              "Path" : "/instances/19816330-cb02e1cf-df3a8fe8-bf510623-ccefe9f5",
+                              "Status" : "Success"
+                           },
+                           "properties" : {
+                              "ID" : {
+                                 "description" : "Orthanc identifier of the new instance",
+                                 "type" : "string"
+                              },
+                              "ParentPatient" : {
+                                 "description" : "Orthanc identifier of the parent patient",
+                                 "type" : "string"
+                              },
+                              "ParentSeries" : {
+                                 "description" : "Orthanc identifier of the parent series",
+                                 "type" : "string"
+                              },
+                              "ParentStudy" : {
+                                 "description" : "Orthanc identifier of the parent study",
+                                 "type" : "string"
+                              },
+                              "Path" : {
+                                 "description" : "Path to the new instance in the REST API",
+                                 "type" : "string"
+                              },
+                              "Status" : {
+                                 "description" : "Can be `Success`, `AlreadyStored`, `Failure`, or `FilteredOut` (removed by some `NewInstanceFilter`)",
+                                 "type" : "string"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Upload DICOM instances",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}" : {
+         "delete" : {
+            "deprecated" : false,
+            "description" : "Delete the DICOM instance whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Delete some instance",
+            "tags" : [ "Instances" ]
+         },
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get detailed information about the DICOM instance whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "Information about the DICOM instance",
+                           "example" : {
+                              "FileSize" : 526744,
+                              "FileUuid" : "dc031d9e-ef02-4871-821f-ffe445deb7c2",
+                              "ID" : "d94d9a03-3003b047-a4affc69-322313b2-680530a2",
+                              "IndexInSeries" : 155,
+                              "MainDicomTags" : {
+                                 "AcquisitionNumber" : "4",
+                                 "ImageOrientationPatient" : "1\\0\\0\\0\\1\\0",
+                                 "ImagePositionPatient" : "-249.51171875\\-458.51171875\\314",
+                                 "InstanceCreationDate" : "20151217",
+                                 "InstanceCreationTime" : "125204.215000",
+                                 "InstanceNumber" : "155",
+                                 "SOPInstanceUID" : "1.3.6.1.4.1.14519.5.2.1.2193.7172.168997935789297163075628247666"
+                              },
+                              "ParentSeries" : "52f4cb90-29d1d1a2-2ca34edd-4b8851fc-8cb269f2",
+                              "Type" : "Instance"
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get information about some instance",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/anonymize" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Download an anonymized version of the DICOM instance whose Orthanc identifier is provided in the URL: https://book.orthanc-server.com/users/anonymization.html#anonymization-of-a-single-instance",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "DicomVersion" : {
+                              "description" : "Version of the DICOM standard to be used for anonymization. Check out configuration option `DeidentifyLogsDicomVersion` for possible values.",
+                              "type" : "string"
+                           },
+                           "Force" : {
+                              "description" : "Allow the modification of tags related to DICOM identifiers, at the risk of breaking the DICOM model of the real world",
+                              "type" : "boolean"
+                           },
+                           "Keep" : {
+                              "description" : "List of DICOM tags whose value must not be destroyed by the anonymization",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           },
+                           "KeepPrivateTags" : {
+                              "description" : "Keep the private tags from the DICOM instances (defaults to `false`)",
+                              "type" : "boolean"
+                           },
+                           "PrivateCreator" : {
+                              "description" : "The private creator to be used for private tags in `Replace`",
+                              "type" : "string"
+                           },
+                           "Remove" : {
+                              "description" : "List of additional tags to be removed from the DICOM instances",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           },
+                           "Replace" : {
+                              "description" : "Associative array to change the value of some DICOM tags in the DICOM instances",
+                              "type" : "object"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/dicom" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The anonymized DICOM instance"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Anonymize instance",
+            "tags" : [ "Instance" ]
+         }
+      },
+      "/instances/{id}/attachments" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the list of attachments that are associated with the given instance",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "JSON array containing the names of the attachments",
+                           "example" : [ "dicom", "dicom-as-json" ]
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "List attachments",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/attachments/{name}" : {
+         "delete" : {
+            "deprecated" : false,
+            "description" : "Delete an attachment associated with the given DICOM instance. This call will fail if trying to delete a system attachment (i.e. whose index is < 1024).",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Delete attachment",
+            "tags" : [ "Instances" ]
+         },
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the list of the operations that are available for attachments associated with the given instance",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "List of the available operations",
+                           "example" : [
+                              "compress",
+                              "compressed-data",
+                              "compressed-md5",
+                              "compressed-size",
+                              "data",
+                              "is-compressed",
+                              "md5",
+                              "size",
+                              "uncompress",
+                              "verify-md5"
+                           ]
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "List operations on attachments",
+            "tags" : [ "Other" ]
+         },
+         "put" : {
+            "deprecated" : false,
+            "description" : "Attach a file to the given DICOM instance. This call will fail if trying to modify a system attachment (i.e. whose index is < 1024).",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/octet-stream" : {
+                     "schema" : {
+                        "description" : "Binary data containing the attachment"
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "Empty JSON object in the case of a success"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Set attachment",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/attachments/{name}/compress" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Change the compression scheme that is used to store an attachment.",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Compress attachment",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/attachments/{name}/compressed-data" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the (binary) content of one attachment associated with the given instance. The attachment will not be decompressed if `StorageCompression` is `true`.",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/octet-stream" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The attachment"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get attachment (no decompression)",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/attachments/{name}/compressed-md5" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the MD5 hash of one attachment associated with the given instance, as stored on the disk. This is different from `.../md5` iff `EnableStorage` is `true`.",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The MD5 of the attachment, as stored on the disk"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get MD5 of attachment on disk",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/attachments/{name}/compressed-size" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the size of one attachment associated with the given instance, as stored on the disk. This is different from `.../size` iff `EnableStorage` is `true`.",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The size of the attachment, as stored on the disk"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get size of attachment on disk",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/attachments/{name}/data" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the (binary) content of one attachment associated with the given instance",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/octet-stream" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The attachment"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get attachment",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/attachments/{name}/is-compressed" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Test whether the attachment has been stored as a compressed file on the disk.",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "`0` if the attachment was stored uncompressed, `1` if it was compressed"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Is attachment compressed?",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/attachments/{name}/md5" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the MD5 hash of one attachment associated with the given instance",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The MD5 of the attachment"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get MD5 of attachment",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/attachments/{name}/size" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the size of one attachment associated with the given instance",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The size of the attachment"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get size of attachment",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/attachments/{name}/uncompress" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Change the compression scheme that is used to store an attachment.",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Uncompress attachment",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/attachments/{name}/verify-md5" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Verify that the attachment is not corrupted, by validating its MD5 hash",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "On success, a valid JSON object is returned"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Verify attachment",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/content" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the raw content of one DICOM tag in the hierarchy of DICOM dataset",
+            "parameters" : [
+               {
+                  "description" : "Path to the DICOM tag. This is the interleaving of one DICOM tag, possibly followed by an index for sequences. Sequences are accessible as, for instance, `/0008-1140/1/0008-1150`",
+                  "in" : "path",
+                  "name" : "...",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the DICOM instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/octet-stream" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The raw value of the tag of intereset (binary data, whose memory layout depends on the underlying transfer syntax), or JSON array containing the list of available tags if accessing a dataset"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get raw tag",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/export" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Write the DICOM file onto the filesystem where Orthanc is running",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the DICOM instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "text/plain" : {
+                     "schema" : {
+                        "description" : "Target path on the filesystem"
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Write DICOM onto filesystem",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/file" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Download one DICOM instance",
+            "parameters" : [
+               {
+                  "description" : "This HTTP header can be set to retrieve the DICOM instance in DICOMweb format",
+                  "in" : "header",
+                  "name" : "Accept",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the DICOM instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/dicom" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The DICOM instance"
+                        }
+                     },
+                     "application/dicom+json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The DICOM instance, in DICOMweb JSON format"
+                        }
+                     },
+                     "application/dicom+xml" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The DICOM instance, in DICOMweb XML format"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Download DICOM",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/frames" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "List the frames that are available in the DICOM instance of interest",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the DICOM instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "The list of the indices of the available frames",
+                           "example" : [ 0 ]
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "List available frames",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/frames/{frame}" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "List the available operations under URI `/instances/{id}/frames/{frame}/`",
+            "parameters" : [
+               {
+                  "description" : "",
+                  "in" : "path",
+                  "name" : "frame",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "List of the available operations",
+                           "example" : [
+                              "image-int16",
+                              "image-uint16",
+                              "image-uint8",
+                              "matlab",
+                              "preview",
+                              "raw",
+                              "raw.gz",
+                              "rendered"
+                           ]
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "List operations",
+            "tags" : [ "Other" ]
+         }
+      },
+      "/instances/{id}/frames/{frame}/image-int16" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Decode one frame of interest from the given DICOM instance. Pixels of grayscale images are truncated to the [-32768,32767] range. Negative values must be interpreted according to two's complement.",
+            "parameters" : [
+               {
+                  "description" : "Quality for JPEG images (between 1 and 100, defaults to 90)",
+                  "in" : "query",
+                  "name" : "quality",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               },
+               {
+                  "description" : "Format of the resulting image. Can be `image/png` (default), `image/jpeg` or `image/x-portable-arbitrarymap`",
+                  "in" : "header",
+                  "name" : "Accept",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Index of the frame (starts at `0`)",
+                  "in" : "path",
+                  "name" : "frame",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the DICOM instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "image/jpeg" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "JPEG image"
+                        }
+                     },
+                     "image/png" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "PNG image"
+                        }
+                     },
+                     "image/x-portable-arbitrarymap" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "PAM image (Portable Arbitrary Map)"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Decode a frame (int16)",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/frames/{frame}/image-uint16" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Decode one frame of interest from the given DICOM instance. Pixels of grayscale images are truncated to the [0,65535] range.",
+            "parameters" : [
+               {
+                  "description" : "Quality for JPEG images (between 1 and 100, defaults to 90)",
+                  "in" : "query",
+                  "name" : "quality",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               },
+               {
+                  "description" : "Format of the resulting image. Can be `image/png` (default), `image/jpeg` or `image/x-portable-arbitrarymap`",
+                  "in" : "header",
+                  "name" : "Accept",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Index of the frame (starts at `0`)",
+                  "in" : "path",
+                  "name" : "frame",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the DICOM instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "image/jpeg" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "JPEG image"
+                        }
+                     },
+                     "image/png" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "PNG image"
+                        }
+                     },
+                     "image/x-portable-arbitrarymap" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "PAM image (Portable Arbitrary Map)"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Decode a frame (uint16)",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/frames/{frame}/image-uint8" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Decode one frame of interest from the given DICOM instance. Pixels of grayscale images are truncated to the [0,255] range.",
+            "parameters" : [
+               {
+                  "description" : "Quality for JPEG images (between 1 and 100, defaults to 90)",
+                  "in" : "query",
+                  "name" : "quality",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               },
+               {
+                  "description" : "Format of the resulting image. Can be `image/png` (default), `image/jpeg` or `image/x-portable-arbitrarymap`",
+                  "in" : "header",
+                  "name" : "Accept",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Index of the frame (starts at `0`)",
+                  "in" : "path",
+                  "name" : "frame",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the DICOM instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "image/jpeg" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "JPEG image"
+                        }
+                     },
+                     "image/png" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "PNG image"
+                        }
+                     },
+                     "image/x-portable-arbitrarymap" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "PAM image (Portable Arbitrary Map)"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Decode a frame (uint8)",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/frames/{frame}/matlab" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Decode one frame of interest from the given DICOM instance, and export this frame as a Octave/Matlab matrix to be imported with `eval()`: https://book.orthanc-server.com/faq/matlab.html",
+            "parameters" : [
+               {
+                  "description" : "Index of the frame (starts at `0`)",
+                  "in" : "path",
+                  "name" : "frame",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the DICOM instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "Octave/Matlab matrix"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Decode frame for Matlab",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/frames/{frame}/preview" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Decode one frame of interest from the given DICOM instance. The full dynamic range of grayscale images is rescaled to the [0,255] range.",
+            "parameters" : [
+               {
+                  "description" : "Quality for JPEG images (between 1 and 100, defaults to 90)",
+                  "in" : "query",
+                  "name" : "quality",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               },
+               {
+                  "description" : "Format of the resulting image. Can be `image/png` (default), `image/jpeg` or `image/x-portable-arbitrarymap`",
+                  "in" : "header",
+                  "name" : "Accept",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Index of the frame (starts at `0`)",
+                  "in" : "path",
+                  "name" : "frame",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the DICOM instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "image/jpeg" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "JPEG image"
+                        }
+                     },
+                     "image/png" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "PNG image"
+                        }
+                     },
+                     "image/x-portable-arbitrarymap" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "PAM image (Portable Arbitrary Map)"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Decode a frame (preview)",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/frames/{frame}/raw" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Access the raw content of one individual frame of the DICOM instance of interest, bypassing image decoding. This is notably useful to access the source files in compressed transfer syntaxes.",
+            "parameters" : [
+               {
+                  "description" : "Index of the frame (starts at `0`)",
+                  "in" : "path",
+                  "name" : "frame",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/octet-stream" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The raw frame"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Access raw frame",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/frames/{frame}/raw.gz" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Access the raw content of one individual frame of the DICOM instance of interest, bypassing image decoding. This is notably useful to access the source files in compressed transfer syntaxes. The image is compressed using gzip",
+            "parameters" : [
+               {
+                  "description" : "Index of the frame (starts at `0`)",
+                  "in" : "path",
+                  "name" : "frame",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/gzip" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The raw frame, compressed using gzip"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Access raw frame (compressed)",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/frames/{frame}/rendered" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Render one frame of interest from the given DICOM instance. This function takes scaling into account (`RescaleSlope` and `RescaleIntercept` tags), as well as the default windowing stored in the DICOM file (`WindowCenter` and `WindowWidth`tags), and can be used to resize the resulting image. Color images are not affected by windowing.",
+            "parameters" : [
+               {
+                  "description" : "Height of the resized image",
+                  "in" : "query",
+                  "name" : "height",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               },
+               {
+                  "description" : "Quality for JPEG images (between 1 and 100, defaults to 90)",
+                  "in" : "query",
+                  "name" : "quality",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               },
+               {
+                  "description" : "Whether to smooth image on resize",
+                  "in" : "query",
+                  "name" : "smooth",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
+                  "description" : "Width of the resized image",
+                  "in" : "query",
+                  "name" : "width",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               },
+               {
+                  "description" : "Windowing center",
+                  "in" : "query",
+                  "name" : "window-center",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               },
+               {
+                  "description" : "Windowing width",
+                  "in" : "query",
+                  "name" : "window-width",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               },
+               {
+                  "description" : "Format of the resulting image. Can be `image/png` (default), `image/jpeg` or `image/x-portable-arbitrarymap`",
+                  "in" : "header",
+                  "name" : "Accept",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Index of the frame (starts at `0`)",
+                  "in" : "path",
+                  "name" : "frame",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the DICOM instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "image/jpeg" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "JPEG image"
+                        }
+                     },
+                     "image/png" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "PNG image"
+                        }
+                     },
+                     "image/x-portable-arbitrarymap" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "PAM image (Portable Arbitrary Map)"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Render a frame",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/header" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the DICOM tags in the meta-header of the DICOM instance. By default, the `full` format is used, which combines hexadecimal tags with human-readable description.",
+            "parameters" : [
+               {
+                  "description" : "If present, report the DICOM tags indexed in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "If present, report the DICOM tags in human-readable format",
+                  "in" : "query",
+                  "name" : "simplify",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the DICOM instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "JSON object containing the DICOM tags and their associated value",
+                           "example" : {
+                              "0002,0000" : {
+                                 "Name" : "FileMetaInformationGroupLength",
+                                 "Type" : "String",
+                                 "Value" : "202"
+                              },
+                              "0002,0002" : {
+                                 "Name" : "MediaStorageSOPClassUID",
+                                 "Type" : "String",
+                                 "Value" : "1.2.840.10008.5.1.4.1.1.2"
+                              },
+                              "0002,0003" : {
+                                 "Name" : "MediaStorageSOPInstanceUID",
+                                 "Type" : "String",
+                                 "Value" : "1.3.12.2.1107.5.1.4.54693.30000006100507010800000005269"
+                              },
+                              "0002,0010" : {
+                                 "Name" : "TransferSyntaxUID",
+                                 "Type" : "String",
+                                 "Value" : "1.2.840.10008.1.2.1"
+                              },
+                              "0002,0012" : {
+                                 "Name" : "ImplementationClassUID",
+                                 "Type" : "String",
+                                 "Value" : "1.3.6.1.4.1.19291.2.1"
+                              },
+                              "0002,0013" : {
+                                 "Name" : "ImplementationVersionName",
+                                 "Type" : "String",
+                                 "Value" : "OSIRIX001"
+                              },
+                              "0002,0016" : {
+                                 "Name" : "SourceApplicationEntityTitle",
+                                 "Type" : "String",
+                                 "Value" : "OSIRIX"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get DICOM meta-header",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/image-int16" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Decode the first frame of the given DICOM instance. Pixels of grayscale images are truncated to the [-32768,32767] range. Negative values must be interpreted according to two's complement.",
+            "parameters" : [
+               {
+                  "description" : "Quality for JPEG images (between 1 and 100, defaults to 90)",
+                  "in" : "query",
+                  "name" : "quality",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               },
+               {
+                  "description" : "Format of the resulting image. Can be `image/png` (default), `image/jpeg` or `image/x-portable-arbitrarymap`",
+                  "in" : "header",
+                  "name" : "Accept",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the DICOM instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "image/jpeg" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "JPEG image"
+                        }
+                     },
+                     "image/png" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "PNG image"
+                        }
+                     },
+                     "image/x-portable-arbitrarymap" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "PAM image (Portable Arbitrary Map)"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Decode an image (int16)",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/image-uint16" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Decode the first frame of the given DICOM instance. Pixels of grayscale images are truncated to the [0,65535] range.",
+            "parameters" : [
+               {
+                  "description" : "Quality for JPEG images (between 1 and 100, defaults to 90)",
+                  "in" : "query",
+                  "name" : "quality",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               },
+               {
+                  "description" : "Format of the resulting image. Can be `image/png` (default), `image/jpeg` or `image/x-portable-arbitrarymap`",
+                  "in" : "header",
+                  "name" : "Accept",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the DICOM instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "image/jpeg" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "JPEG image"
+                        }
+                     },
+                     "image/png" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "PNG image"
+                        }
+                     },
+                     "image/x-portable-arbitrarymap" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "PAM image (Portable Arbitrary Map)"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Decode an image (uint16)",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/image-uint8" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Decode the first frame of the given DICOM instance. Pixels of grayscale images are truncated to the [0,255] range.",
+            "parameters" : [
+               {
+                  "description" : "Quality for JPEG images (between 1 and 100, defaults to 90)",
+                  "in" : "query",
+                  "name" : "quality",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               },
+               {
+                  "description" : "Format of the resulting image. Can be `image/png` (default), `image/jpeg` or `image/x-portable-arbitrarymap`",
+                  "in" : "header",
+                  "name" : "Accept",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the DICOM instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "image/jpeg" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "JPEG image"
+                        }
+                     },
+                     "image/png" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "PNG image"
+                        }
+                     },
+                     "image/x-portable-arbitrarymap" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "PAM image (Portable Arbitrary Map)"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Decode an image (uint8)",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/matlab" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Decode the first frame of the given DICOM instance., and export this frame as a Octave/Matlab matrix to be imported with `eval()`: https://book.orthanc-server.com/faq/matlab.html",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the DICOM instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "Octave/Matlab matrix"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Decode frame for Matlab",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/metadata" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the list of metadata that are associated with the given instance",
+            "parameters" : [
+               {
+                  "description" : "If present, also retrieve the value of the individual metadata",
+                  "in" : "query",
+                  "name" : "expand",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "JSON array containing the names of the available metadata, or JSON associative array mapping metadata to their values (if `expand` argument is provided)",
+                           "example" : [
+                              "IndexInSeries",
+                              "ReceptionDate",
+                              "RemoteAET",
+                              "Origin",
+                              "TransferSyntax",
+                              "SopClassUid",
+                              "RemoteIP",
+                              "HttpUsername"
+                           ]
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "List metadata",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/metadata/{name}" : {
+         "delete" : {
+            "deprecated" : false,
+            "description" : "Delete some metadata associated with the given DICOM instance. This call will fail if trying to delete a system metadata (i.e. whose index is < 1024).",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the metadata, or its index (cf. `UserMetadata` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Delete metadata",
+            "tags" : [ "Instances" ]
+         },
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the value of a metadata that is associated with the given instance",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the metadata, or its index (cf. `UserMetadata` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "Value of the metadata"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get metadata",
+            "tags" : [ "Instances" ]
+         },
+         "put" : {
+            "deprecated" : false,
+            "description" : "Set the value of some metadata in the given DICOM instance. This call will fail if trying to modify a system metadata (i.e. whose index is < 1024).",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the metadata, or its index (cf. `UserMetadata` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "text/plain" : {
+                     "schema" : {
+                        "description" : "String value of the metadata"
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Set metadata",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/modify" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Download a modified version of the DICOM instance whose Orthanc identifier is provided in the URL: https://book.orthanc-server.com/users/anonymization.html#modification-of-a-single-instance",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "Force" : {
+                              "description" : "Allow the modification of tags related to DICOM identifiers, at the risk of breaking the DICOM model of the real world",
+                              "type" : "boolean"
+                           },
+                           "Keep" : {
+                              "description" : "Keep the original value of the specified tags, to be chosen among the `StudyInstanceUID`, `SeriesInstanceUID` and `SOPInstanceUID` tags. Avoid this feature as much as possible, as this breaks the DICOM model of the real world.",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           },
+                           "PrivateCreator" : {
+                              "description" : "The private creator to be used for private tags in `Replace`",
+                              "type" : "string"
+                           },
+                           "Remove" : {
+                              "description" : "List of tags that must be removed from the DICOM instances",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           },
+                           "RemovePrivateTags" : {
+                              "description" : "Remove the private tags from the DICOM instances (defaults to `false`)",
+                              "type" : "boolean"
+                           },
+                           "Replace" : {
+                              "description" : "Associative array to change the value of some DICOM tags in the DICOM instances",
+                              "type" : "object"
+                           },
+                           "Transcode" : {
+                              "description" : "Transcode the DICOM instances to the provided DICOM transfer syntax: https://book.orthanc-server.com/faq/transcoding.html",
+                              "type" : "string"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/dicom" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The modified DICOM instance"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Modify instance",
+            "tags" : [ "Instance" ]
+         }
+      },
+      "/instances/{id}/module" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the instance module of the DICOM instance whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Also include the DICOM tags that are provided in this list, even if their associated value is long",
+                  "in" : "query",
+                  "name" : "ignore-length",
+                  "required" : false,
+                  "schema" : {
+                     "items" : {
+                        "type" : "string"
+                     },
+                     "type" : "array"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "Information about the DICOM instance",
+                           "example" : {
+                              "0008,0005" : {
+                                 "Name" : "SpecificCharacterSet",
+                                 "Type" : "String",
+                                 "Value" : "ISO_IR 192"
+                              },
+                              "0008,0012" : {
+                                 "Name" : "InstanceCreationDate",
+                                 "Type" : "String",
+                                 "Value" : "20151217"
+                              },
+                              "0008,0013" : {
+                                 "Name" : "InstanceCreationTime",
+                                 "Type" : "String",
+                                 "Value" : "125204.215000"
+                              },
+                              "0008,0016" : {
+                                 "Name" : "SOPClassUID",
+                                 "Type" : "String",
+                                 "Value" : "1.2.840.10008.5.1.4.1.1.2"
+                              },
+                              "0008,0018" : {
+                                 "Name" : "SOPInstanceUID",
+                                 "Type" : "String",
+                                 "Value" : "1.3.6.1.4.1.14519.5.2.1.2193.7172.168997935789297163075628247666"
+                              },
+                              "0020,0013" : {
+                                 "Name" : "InstanceNumber",
+                                 "Type" : "String",
+                                 "Value" : "155"
+                              },
+                              "0028,0303" : {
+                                 "Name" : "LongitudinalTemporalInformationModified",
+                                 "Type" : "String",
+                                 "Value" : "MODIFIED"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get instance module",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/patient" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get detailed information about the parent patient of the DICOM instance whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "Information about the parent DICOM patient",
+                           "example" : {
+                              "ID" : "65ce8003-696b2eb6-03adeee7-6561ce8e-3e03f13a",
+                              "IsStable" : true,
+                              "LastUpdate" : "20200803T131236",
+                              "MainDicomTags" : {
+                                 "PatientBirthDate" : "",
+                                 "PatientID" : "HN_P001",
+                                 "PatientName" : "HN_P001",
+                                 "PatientSex" : "M"
+                              },
+                              "Studies" : [ "1c379a23-9fd28bba-02b60e5b-850ff34e-4349f09b" ],
+                              "Type" : "Patient"
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get parent patient",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/pdf" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the PDF file that is embedded in one DICOM instance. If the DICOM instance doesn't contain the `EncapsulatedDocument` tag or if the `MIMETypeOfEncapsulatedDocument` tag doesn't correspond to the PDF type, a `404` HTTP error is raised.",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the instance interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/pdf" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "PDF file"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get embedded PDF",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/preview" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Decode the first frame of the given DICOM instance. The full dynamic range of grayscale images is rescaled to the [0,255] range.",
+            "parameters" : [
+               {
+                  "description" : "Quality for JPEG images (between 1 and 100, defaults to 90)",
+                  "in" : "query",
+                  "name" : "quality",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               },
+               {
+                  "description" : "Format of the resulting image. Can be `image/png` (default), `image/jpeg` or `image/x-portable-arbitrarymap`",
+                  "in" : "header",
+                  "name" : "Accept",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the DICOM instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "image/jpeg" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "JPEG image"
+                        }
+                     },
+                     "image/png" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "PNG image"
+                        }
+                     },
+                     "image/x-portable-arbitrarymap" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "PAM image (Portable Arbitrary Map)"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Decode an image (preview)",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/reconstruct" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Reconstruct the main DICOM tags of the instance whose Orthanc identifier is provided in the URL. This is useful if child studies/series/instances have inconsistent values for higher-level tags, in order to force Orthanc to use the value from the resource of interest. Beware that this is a time-consuming operation, as all the children DICOM instances will be parsed again, and the Orthanc index will be updated accordingly.",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Reconstruct tags of instance",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/rendered" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Render the first frame of the given DICOM instance. This function takes scaling into account (`RescaleSlope` and `RescaleIntercept` tags), as well as the default windowing stored in the DICOM file (`WindowCenter` and `WindowWidth`tags), and can be used to resize the resulting image. Color images are not affected by windowing.",
+            "parameters" : [
+               {
+                  "description" : "Height of the resized image",
+                  "in" : "query",
+                  "name" : "height",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               },
+               {
+                  "description" : "Quality for JPEG images (between 1 and 100, defaults to 90)",
+                  "in" : "query",
+                  "name" : "quality",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               },
+               {
+                  "description" : "Whether to smooth image on resize",
+                  "in" : "query",
+                  "name" : "smooth",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
+                  "description" : "Width of the resized image",
+                  "in" : "query",
+                  "name" : "width",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               },
+               {
+                  "description" : "Windowing center",
+                  "in" : "query",
+                  "name" : "window-center",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               },
+               {
+                  "description" : "Windowing width",
+                  "in" : "query",
+                  "name" : "window-width",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               },
+               {
+                  "description" : "Format of the resulting image. Can be `image/png` (default), `image/jpeg` or `image/x-portable-arbitrarymap`",
+                  "in" : "header",
+                  "name" : "Accept",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the DICOM instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "image/jpeg" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "JPEG image"
+                        }
+                     },
+                     "image/png" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "PNG image"
+                        }
+                     },
+                     "image/x-portable-arbitrarymap" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "PAM image (Portable Arbitrary Map)"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Render an image",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/series" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get detailed information about the parent series of the DICOM instance whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "Information about the parent DICOM series",
+                           "example" : {
+                              "ExpectedNumberOfInstances" : null,
+                              "ID" : "52f4cb90-29d1d1a2-2ca34edd-4b8851fc-8cb269f2",
+                              "Instances" : [
+                                 "ccc7cee2-81566098-5531d590-57b3c148-1787d177",
+                                 "af464afa-bf0c7970-02a3c666-337a8df8-1d955e27",
+                                 "42616941-88cbd2a7-f30ceecb-3f53b658-c641372c",
+                                 "1470f579-11b80cb9-ecf22279-041175d9-d8f3c3ef",
+                                 "373622cf-43a0259b-ebf55c2a-02e5ef32-1a3115f0",
+                                 "72b68848-9729ad79-e8762db4-50d97dd3-f3591322",
+                                 "73e2f25f-aa47b7ba-5d1c6e7b-91b98261-a195316e",
+                                 "c22831de-6ddaa06c-1f877da5-400a8f03-83668321",
+                                 "0c322d30-98af6f31-0bd59c19-99e07f68-317aeb3b",
+                                 "dd69d888-f3065dac-a47c947c-1aed47c8-fc181d11",
+                                 "..."
+                              ],
+                              "IsStable" : true,
+                              "LastUpdate" : "20200803T131236",
+                              "MainDicomTags" : {
+                                 "BodyPartExamined" : "CHEST",
+                                 "ImageOrientationPatient" : "1\\0\\0\\0\\1\\0",
+                                 "Manufacturer" : "SIEMENS",
+                                 "Modality" : "CT",
+                                 "SeriesDate" : "20091022",
+                                 "SeriesDescription" : "HEAD/NECK  2.0  B30s",
+                                 "SeriesInstanceUID" : "1.3.6.1.4.1.14519.5.2.1.2193.7172.215111709746721743805035350686",
+                                 "SeriesNumber" : "4",
+                                 "SeriesTime" : "173151.203000"
+                              },
+                              "ParentStudy" : "1c379a23-9fd28bba-02b60e5b-850ff34e-4349f09b",
+                              "Status" : "Unknown",
+                              "Type" : "Series"
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get parent series",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/simplified-tags" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the DICOM tags in human-readable format",
+            "parameters" : [
+               {
+                  "description" : "Also include the DICOM tags that are provided in this list, even if their associated value is long",
+                  "in" : "query",
+                  "name" : "ignore-length",
+                  "required" : false,
+                  "schema" : {
+                     "items" : {
+                        "type" : "string"
+                     },
+                     "type" : "array"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the DICOM instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "JSON object containing the DICOM tags and their associated value",
+                           "example" : {
+                              "AccessionNumber" : "0",
+                              "AcquisitionDate" : "20061005",
+                              "AcquisitionNumber" : "3",
+                              "AcquisitionTime" : "101812.967223",
+                              "BitsAllocated" : "16",
+                              "BitsStored" : "12",
+                              "BodyPartExamined" : "EXTREMITY",
+                              "Columns" : "512",
+                              "ContentDate" : "20061005",
+                              "ContentTime" : "101812.967223",
+                              "{...}" : "..."
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get human-readable tags",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/statistics" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get statistics about the given instance",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "",
+                           "example" : {
+                              "DicomDiskSize" : "526744",
+                              "DicomDiskSizeMB" : 0,
+                              "DicomUncompressedSize" : "526744",
+                              "DicomUncompressedSizeMB" : 0,
+                              "DiskSize" : "539420",
+                              "DiskSizeMB" : 0,
+                              "UncompressedSize" : "539420",
+                              "UncompressedSizeMB" : 0
+                           },
+                           "properties" : {
+                              "DicomDiskSize" : {
+                                 "description" : "Size on the disk of the DICOM instances associated with the instance, expressed in bytes",
+                                 "type" : "string"
+                              },
+                              "DicomDiskSizeMB" : {
+                                 "description" : "Size on the disk of the DICOM instances associated with the instance, expressed in megabytes (MB)",
+                                 "type" : "number"
+                              },
+                              "DicomUncompressedSize" : {
+                                 "description" : "Size on the disk of the uncompressed DICOM instances associated with the instance, expressed in bytes",
+                                 "type" : "string"
+                              },
+                              "DicomUncompressedSizeMB" : {
+                                 "description" : "Size on the disk of the uncompressed DICOM instances associated with the instance, expressed in megabytes (MB)",
+                                 "type" : "number"
+                              },
+                              "DiskSize" : {
+                                 "description" : "Size of the instance on the disk in bytes, expressed as a string for 64bit compatibility with JSON",
+                                 "type" : "string"
+                              },
+                              "DiskSizeMB" : {
+                                 "description" : "Size of the instance on the disk, expressed in megabytes (MB)",
+                                 "type" : "number"
+                              },
+                              "UncompressedSize" : {
+                                 "description" : "Size of the instance after decompression in bytes, expressed as a string for 64bit compatibility with JSON",
+                                 "type" : "string"
+                              },
+                              "UncompressedSizeMB" : {
+                                 "description" : "Size of the instance after decompression, expressed in megabytes (MB). This is different from `DiskSizeMB` iff `StorageCompression` is `true`.",
+                                 "type" : "number"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get instance statistics",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/study" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get detailed information about the parent study of the DICOM instance whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "Information about the parent DICOM study",
+                           "example" : {
+                              "ID" : "1c379a23-9fd28bba-02b60e5b-850ff34e-4349f09b",
+                              "IsStable" : true,
+                              "LastUpdate" : "20200803T131236",
+                              "MainDicomTags" : {
+                                 "AccessionNumber" : "2819497684894126",
+                                 "ReferringPhysicianName" : "",
+                                 "StudyDate" : "20091022",
+                                 "StudyDescription" : "RT^HEAD_NECK (Adult)",
+                                 "StudyID" : "",
+                                 "StudyInstanceUID" : "1.3.6.1.4.1.14519.5.2.1.2193.7172.847236098565581057121195872945",
+                                 "StudyTime" : "172721.327000"
+                              },
+                              "ParentPatient" : "65ce8003-696b2eb6-03adeee7-6561ce8e-3e03f13a",
+                              "PatientMainDicomTags" : {
+                                 "PatientBirthDate" : "",
+                                 "PatientID" : "HN_P001",
+                                 "PatientName" : "HN_P001",
+                                 "PatientSex" : "M"
+                              },
+                              "Series" : [
+                                 "9c7031b2-97909802-c35563e6-168bf0af-5cfbdce4",
+                                 "1d9c4560-6480f3d9-0a4d3654-65715f38-755ad2e0",
+                                 "52f4cb90-29d1d1a2-2ca34edd-4b8851fc-8cb269f2"
+                              ],
+                              "Type" : "Study"
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get parent study",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/instances/{id}/tags" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the DICOM tags in the specified format. By default, the `full` format is used, which combines hexadecimal tags with human-readable description.",
+            "parameters" : [
+               {
+                  "description" : "If present, report the DICOM tags indexed in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "If present, report the DICOM tags in human-readable format (same as the `/instances/{id}/simplified-tags` route)",
+                  "in" : "query",
+                  "name" : "simplify",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the DICOM instance of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "JSON object containing the DICOM tags and their associated value",
+                           "example" : {
+                              "0008,0005" : {
+                                 "Name" : "SpecificCharacterSet",
+                                 "Type" : "String",
+                                 "Value" : "ISO_IR 100"
+                              },
+                              "0008,0008" : {
+                                 "Name" : "ImageType",
+                                 "Type" : "String",
+                                 "Value" : "ORIGINAL\\PRIMARY\\AXIAL\\CT_SOM5 SPI"
+                              },
+                              "0008,0016" : {
+                                 "Name" : "SOPClassUID",
+                                 "Type" : "String",
+                                 "Value" : "1.2.840.10008.5.1.4.1.1.2"
+                              },
+                              "0008,0018" : {
+                                 "Name" : "SOPInstanceUID",
+                                 "Type" : "String",
+                                 "Value" : "1.3.12.2.1107.5.1.4.54693.30000006100507010800000005269"
+                              },
+                              "0008,0020" : {
+                                 "Name" : "StudyDate",
+                                 "Type" : "String",
+                                 "Value" : "20061005"
+                              },
+                              "0008,0021" : {
+                                 "Name" : "SeriesDate",
+                                 "Type" : "String",
+                                 "Value" : "20061005"
+                              },
+                              "0008,0022" : {
+                                 "Name" : "AcquisitionDate",
+                                 "Type" : "String",
+                                 "Value" : "20061005"
+                              },
+                              "0008,0023" : {
+                                 "Name" : "ContentDate",
+                                 "Type" : "String",
+                                 "Value" : "20061005"
+                              },
+                              "0008,0030" : {
+                                 "Name" : "StudyTime",
+                                 "Type" : "String",
+                                 "Value" : "101556.921000"
+                              },
+                              "0008,0031" : {
+                                 "Name" : "SeriesTime",
+                                 "Type" : "String",
+                                 "Value" : "102051.046000"
+                              },
+                              "{...}" : "..."
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get DICOM tags",
+            "tags" : [ "Instances" ]
+         }
+      },
+      "/jobs" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "List all the available jobs",
+            "parameters" : [
+               {
+                  "description" : "If present, retrieve detailed information about the individual jobs",
+                  "in" : "query",
+                  "name" : "expand",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "JSON array containing either the jobs identifiers, or detailed information about the reported jobs (if `expand` argument is provided)",
+                           "example" : [
+                              "54a098c3-b13d-4650-946d-efbe66430a53",
+                              "645ecb02-7c0e-4465-b767-df873222dcfb",
+                              "7dcebce7-6583-43be-bef3-01b7cb242768",
+                              "..."
+                           ]
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "List jobs",
+            "tags" : [ "Jobs" ]
+         }
+      },
+      "/jobs/{id}" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Retrieve detailed information about the job whose identifier is provided in the URL: https://book.orthanc-server.com/users/advanced-rest.html#jobs",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the job of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "JSON object detailing the job",
+                           "example" : {
+                              "CompletionTime" : "20201227T161842.520129",
+                              "Content" : {
+                                 "ArchiveSizeMB" : 22,
+                                 "Description" : "REST API",
+                                 "InstancesCount" : 232,
+                                 "UncompressedSizeMB" : 64
+                              },
+                              "CreationTime" : "20201227T161836.428311",
+                              "EffectiveRuntime" : 6.0810000000000004,
+                              "ErrorCode" : 0,
+                              "ErrorDescription" : "Success",
+                              "ID" : "645ecb02-7c0e-4465-b767-df873222dcfb",
+                              "Priority" : 0,
+                              "Progress" : 100,
+                              "State" : "Success",
+                              "Timestamp" : "20201228T160340.253201",
+                              "Type" : "Media"
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get job",
+            "tags" : [ "Jobs" ]
+         }
+      },
+      "/jobs/{id}/cancel" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Cancel the job whose identifier is provided in the URL. Check out the Orthanc Book for more information about the state machine applicable to jobs: https://book.orthanc-server.com/users/advanced-rest.html#jobs",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the job of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "Empty JSON object in the case of a success"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Cancel job",
+            "tags" : [ "Jobs" ]
+         }
+      },
+      "/jobs/{id}/pause" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Pause the job whose identifier is provided in the URL. Check out the Orthanc Book for more information about the state machine applicable to jobs: https://book.orthanc-server.com/users/advanced-rest.html#jobs",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the job of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "Empty JSON object in the case of a success"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Pause job",
+            "tags" : [ "Jobs" ]
+         }
+      },
+      "/jobs/{id}/resubmit" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Resubmit the job whose identifier is provided in the URL. Check out the Orthanc Book for more information about the state machine applicable to jobs: https://book.orthanc-server.com/users/advanced-rest.html#jobs",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the job of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "Empty JSON object in the case of a success"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Resubmit job",
+            "tags" : [ "Jobs" ]
+         }
+      },
+      "/jobs/{id}/resume" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Resume the job whose identifier is provided in the URL. Check out the Orthanc Book for more information about the state machine applicable to jobs: https://book.orthanc-server.com/users/advanced-rest.html#jobs",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the job of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "Empty JSON object in the case of a success"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Resume job",
+            "tags" : [ "Jobs" ]
+         }
+      },
+      "/jobs/{id}/{key}" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Retrieve some output produced by a job. As of Orthanc 1.8.2, only the jobs that generate a DICOMDIR media or a ZIP archive provide such an output (with `key` equals to `archive`).",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the job of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Name of the output of interest",
+                  "in" : "path",
+                  "name" : "key",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/octet-stream" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "Content of the output of the job"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get job output",
+            "tags" : [ "Jobs" ]
+         }
+      },
+      "/modalities" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "List all the DICOM modalities that are known to Orthanc. This corresponds either to the content of the `DicomModalities` configuration option, or to the information stored in the database if `DicomModalitiesInDatabase` is `true`.",
+            "parameters" : [
+               {
+                  "description" : "If present, retrieve detailed information about the individual DICOM modalities",
+                  "in" : "query",
+                  "name" : "expand",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "JSON array containing either the identifiers of the modalities, or detailed information about the modalities (if `expand` argument is provided)"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "List DICOM modalities",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/modalities/{id}" : {
+         "delete" : {
+            "deprecated" : false,
+            "description" : "Delete one DICOM modality. This change is permanent iff. `DicomModalitiesInDatabase` is `true`, otherwise it is lost at the next restart of Orthanc.",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the DICOM modality of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Delete DICOM modality",
+            "tags" : [ "Networking" ]
+         },
+         "get" : {
+            "deprecated" : false,
+            "description" : "List the operations that are available for a DICOM modality.",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the DICOM modality of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "List of the available operations"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "List operations on modality",
+            "tags" : [ "Networking" ]
+         },
+         "put" : {
+            "deprecated" : false,
+            "description" : "Define a new DICOM modality, or update an existing one. This change is permanent iff. `DicomModalitiesInDatabase` is `true`, otherwise it is lost at the next restart of Orthanc.",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the new/updated DICOM modality",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "AET" : {
+                              "description" : "AET of the remote DICOM modality",
+                              "type" : "string"
+                           },
+                           "AllowEcho" : {
+                              "description" : "Whether to accept C-ECHO SCU commands issued by the remote modality",
+                              "type" : "boolean"
+                           },
+                           "AllowFind" : {
+                              "description" : "Whether to accept C-FIND SCU commands issued by the remote modality",
+                              "type" : "boolean"
+                           },
+                           "AllowGet" : {
+                              "description" : "Whether to accept C-GET SCU commands issued by the remote modality",
+                              "type" : "boolean"
+                           },
+                           "AllowMove" : {
+                              "description" : "Whether to accept C-MOVE SCU commands issued by the remote modality",
+                              "type" : "boolean"
+                           },
+                           "AllowStorageCommitment" : {
+                              "description" : "Whether to accept storage commitment requests issued by the remote modality",
+                              "type" : "boolean"
+                           },
+                           "AllowStore" : {
+                              "description" : "Whether to accept C-STORE SCU commands issued by the remote modality",
+                              "type" : "boolean"
+                           },
+                           "AllowTranscoding" : {
+                              "description" : "Whether to allow transcoding for operations initiated by this modality (typically, C-GET)",
+                              "type" : "boolean"
+                           },
+                           "Host" : {
+                              "description" : "Host address of the remote DICOM modality (typically, an IP address)",
+                              "type" : "string"
+                           },
+                           "Manufacturer" : {
+                              "description" : "Manufacturer of the remote DICOM modality (check configuration option `DicomModalities` for possible values",
+                              "type" : "string"
+                           },
+                           "Port" : {
+                              "description" : "TCP port of the remote DICOM modality",
+                              "type" : "number"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Update DICOM modality",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/modalities/{id}/configuration" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get detailed information about the configuration of some DICOM modality",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the modality of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "Configuration of the modality",
+                           "example" : {
+                              "AET" : "ORTHANCTEST",
+                              "AllowEcho" : true,
+                              "AllowEventReport" : true,
+                              "AllowFind" : true,
+                              "AllowGet" : true,
+                              "AllowMove" : true,
+                              "AllowNAction" : true,
+                              "AllowStore" : true,
+                              "AllowTranscoding" : true,
+                              "Host" : "127.0.1.1",
+                              "Manufacturer" : "Generic",
+                              "Port" : 5001
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get modality configuration",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/modalities/{id}/echo" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Trigger C-ECHO SCU command against the DICOM modality whose identifier is provided in URL: https://book.orthanc-server.com/users/rest.html#performing-c-echo",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the modality of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "CheckFind" : {
+                              "description" : "Issue a dummy C-FIND command after the C-GET SCU, in order to check whether the remote modality knows about Orthanc. This field defaults to the value of the `DicomEchoChecksFind` configuration option. New in Orthanc 1.8.1.",
+                              "type" : "boolean"
+                           },
+                           "Timeout" : {
+                              "description" : "Timeout for the C-ECHO command, in seconds",
+                              "type" : "number"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Trigger C-ECHO SCU",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/modalities/{id}/find" : {
+         "post" : {
+            "deprecated" : true,
+            "description" : "Trigger a sequence of C-FIND SCU commands against the DICOM modality whose identifier is provided in URL, in order to discover a hierarchy of matching patients/studies/series. Deprecated in favor of `/modalities/{id}/query`.",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the modality of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "Associative array containing the query on the values of the DICOM tags"
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "JSON array describing the DICOM tags of the matching patients, embedding the matching studies, then the matching series."
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Hierarchical C-FIND SCU",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/modalities/{id}/find-instance" : {
+         "post" : {
+            "deprecated" : true,
+            "description" : "Trigger C-FIND SCU command against the DICOM modality whose identifier is provided in URL, in order to find an instance. Deprecated in favor of `/modalities/{id}/query`.",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the modality of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "Associative array containing the query on the values of the DICOM tags"
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "JSON array describing the DICOM tags of the matching instances"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "C-FIND SCU for instances",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/modalities/{id}/find-patient" : {
+         "post" : {
+            "deprecated" : true,
+            "description" : "Trigger C-FIND SCU command against the DICOM modality whose identifier is provided in URL, in order to find a patient. Deprecated in favor of `/modalities/{id}/query`.",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the modality of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "Associative array containing the query on the values of the DICOM tags"
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "JSON array describing the DICOM tags of the matching patients"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "C-FIND SCU for patients",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/modalities/{id}/find-series" : {
+         "post" : {
+            "deprecated" : true,
+            "description" : "Trigger C-FIND SCU command against the DICOM modality whose identifier is provided in URL, in order to find a series. Deprecated in favor of `/modalities/{id}/query`.",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the modality of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "Associative array containing the query on the values of the DICOM tags"
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "JSON array describing the DICOM tags of the matching series"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "C-FIND SCU for series",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/modalities/{id}/find-study" : {
+         "post" : {
+            "deprecated" : true,
+            "description" : "Trigger C-FIND SCU command against the DICOM modality whose identifier is provided in URL, in order to find a study. Deprecated in favor of `/modalities/{id}/query`.",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the modality of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "Associative array containing the query on the values of the DICOM tags"
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "JSON array describing the DICOM tags of the matching studies"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "C-FIND SCU for studies",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/modalities/{id}/find-worklist" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Trigger C-FIND SCU command against the remote worklists of the DICOM modality whose identifier is provided in URL",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the modality of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "Associative array containing the query on the values of the DICOM tags"
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "JSON array describing the DICOM tags of the matching worklists"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "C-FIND SCU for worklist",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/modalities/{id}/move" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Start a C-MOVE SCU command as a job, in order to drive the execution of a sequence of C-STORE commands by some remote DICOM modality whose identifier is provided in the URL: https://book.orthanc-server.com/users/rest.html#performing-c-move",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the modality of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "Asynchronous" : {
+                              "description" : "If `true`, run the job in asynchronous mode, which means that the REST API call will immediately return, reporting the identifier of a job. Prefer this flavor wherever possible.",
+                              "type" : "boolean"
+                           },
+                           "Level" : {
+                              "description" : "Level of the query (`Patient`, `Study`, `Series` or `Instance`)",
+                              "type" : "string"
+                           },
+                           "LocalAet" : {
+                              "description" : "Local AET that is used for this commands, defaults to `DicomAet` configuration option",
+                              "type" : "string"
+                           },
+                           "Permissive" : {
+                              "description" : "If `true`, ignore errors during the individual steps of the job.",
+                              "type" : "boolean"
+                           },
+                           "Priority" : {
+                              "description" : "In asynchronous mode, the priority of the job. The lower the value, the higher the priority.",
+                              "type" : "number"
+                           },
+                           "Resources" : {
+                              "description" : "List of the Orthanc identifiers of all the DICOM resources to be sent",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           },
+                           "Synchronous" : {
+                              "description" : "If `true`, run the job in synchronous mode, which means that the HTTP answer will directly contain the result of the job. This is the default, easy behavior, but it is *not* desirable for long jobs, as it might lead to network timeouts.",
+                              "type" : "boolean"
+                           },
+                           "TargetAet" : {
+                              "description" : "Target AET that will be used by the remote DICOM modality as a target for its C-STORE SCU commands, defaults to `DicomAet` configuration option in order to do a simple query/retrieve",
+                              "type" : "string"
+                           },
+                           "Timeout" : {
+                              "description" : "Timeout for the C-STORE command, in seconds",
+                              "type" : "number"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "",
+                           "properties" : {
+                              "ID" : {
+                                 "description" : "In asynchronous mode, identifier of the job",
+                                 "type" : "string"
+                              },
+                              "Path" : {
+                                 "description" : "In asynchronous mode, path to access the job in the REST API",
+                                 "type" : "string"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Trigger C-MOVE SCU",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/modalities/{id}/query" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Trigger C-FIND SCU command against the DICOM modality whose identifier is provided in URL: https://book.orthanc-server.com/users/rest.html#performing-query-retrieve-c-find-and-find-with-rest",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the modality of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "Level" : {
+                              "description" : "Level of the query (`Patient`, `Study`, `Series` or `Instance`)",
+                              "type" : "string"
+                           },
+                           "Normalize" : {
+                              "description" : "Whether to normalize the query, i.e. whether to wipe out from the query, the DICOM tags that are not applicable for the query-retrieve level of interest",
+                              "type" : "boolean"
+                           },
+                           "Query" : {
+                              "description" : "Associative array containing the filter on the values of the DICOM tags",
+                              "type" : "object"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "",
+                           "properties" : {
+                              "ID" : {
+                                 "description" : "Identifier of the query, to be used with `/queries/{id}`",
+                                 "type" : "object"
+                              },
+                              "Path" : {
+                                 "description" : "Root path to the query in the REST API",
+                                 "type" : "object"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Trigger C-FIND SCU",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/modalities/{id}/storage-commitment" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Trigger a storage commitment request to some remote DICOM modality whose identifier is provided in the URL: https://book.orthanc-server.com/users/storage-commitment.html#storage-commitment-scu",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the modality of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "DicomInstances" : {
+                              "description" : "List of DICOM resources that are not necessarily stored within Orthanc, but that must be checked by storage commitment. This is a list of JSON objects that must contain the `SOPClassUID` and `SOPInstanceUID` fields.",
+                              "items" : {
+                                 "type" : "object"
+                              },
+                              "type" : "array"
+                           },
+                           "Resources" : {
+                              "description" : "List of the Orthanc identifiers of the DICOM resources to be checked by storage commitment",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "",
+                           "properties" : {
+                              "ID" : {
+                                 "description" : "Identifier of the storage commitment report, to be used with `/storage-commitment/{id}`",
+                                 "type" : "object"
+                              },
+                              "Path" : {
+                                 "description" : "Root path to the storage commitment report in the REST API",
+                                 "type" : "object"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Trigger storage commitment request",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/modalities/{id}/store" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Start a C-STORE SCU command as a job, in order to send DICOM resources stored locally to some remote DICOM modality whose identifier is provided in the URL: https://book.orthanc-server.com/users/rest.html#rest-store-scu",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the modality of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "Asynchronous" : {
+                              "description" : "If `true`, run the job in asynchronous mode, which means that the REST API call will immediately return, reporting the identifier of a job. Prefer this flavor wherever possible.",
+                              "type" : "boolean"
+                           },
+                           "LocalAet" : {
+                              "description" : "Local AET that is used for this commands, defaults to `DicomAet` configuration option",
+                              "type" : "string"
+                           },
+                           "MoveOriginatorAet" : {
+                              "description" : "Move originator AET that is used for this commands, in order to fake a C-MOVE SCU",
+                              "type" : "string"
+                           },
+                           "MoveOriginatorID" : {
+                              "description" : "Move originator ID that is used for this commands, in order to fake a C-MOVE SCU",
+                              "type" : "number"
+                           },
+                           "Permissive" : {
+                              "description" : "If `true`, ignore errors during the individual steps of the job.",
+                              "type" : "boolean"
+                           },
+                           "Priority" : {
+                              "description" : "In asynchronous mode, the priority of the job. The lower the value, the higher the priority.",
+                              "type" : "number"
+                           },
+                           "Resources" : {
+                              "description" : "List of the Orthanc identifiers of all the DICOM resources to be sent",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           },
+                           "StorageCommitment" : {
+                              "description" : "Whether to chain C-STORE with DICOM storage commitment to validate the success of the transmission: https://book.orthanc-server.com/users/storage-commitment.html#chaining-c-store-with-storage-commitment",
+                              "type" : "boolean"
+                           },
+                           "Synchronous" : {
+                              "description" : "If `true`, run the job in synchronous mode, which means that the HTTP answer will directly contain the result of the job. This is the default, easy behavior, but it is *not* desirable for long jobs, as it might lead to network timeouts.",
+                              "type" : "boolean"
+                           },
+                           "Timeout" : {
+                              "description" : "Timeout for the C-STORE command, in seconds",
+                              "type" : "number"
+                           }
+                        }
+                     }
+                  },
+                  "text/plain" : {
+                     "schema" : {
+                        "description" : "The Orthanc identifier of one resource to be sent"
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "",
+                           "properties" : {
+                              "ID" : {
+                                 "description" : "In asynchronous mode, identifier of the job",
+                                 "type" : "string"
+                              },
+                              "Path" : {
+                                 "description" : "In asynchronous mode, path to access the job in the REST API",
+                                 "type" : "string"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Trigger C-STORE SCU",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/modalities/{id}/store-straight" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Synchronously send the DICOM instance in the POST body to the remote DICOM modality whose identifier is provided in URL, without having to first store it locally within Orthanc. This is an alternative to command-line tools such as `storescu` from DCMTK or dcm4che.",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the modality of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/dicom" : {
+                     "schema" : {
+                        "description" : "DICOM instance to be sent"
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "",
+                           "properties" : {
+                              "SOPClassUID" : {
+                                 "description" : "SOP class UID of the DICOM instance, if the C-STORE SCU has succeeded",
+                                 "type" : "string"
+                              },
+                              "SOPInstanceUID" : {
+                                 "description" : "SOP instance UID of the DICOM instance, if the C-STORE SCU has succeeded",
+                                 "type" : "string"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Straight C-STORE SCU",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/patients" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "List the Orthanc identifiers of all the available DICOM patients",
+            "parameters" : [
+               {
+                  "description" : "If present, retrieve detailed information about the individual patients",
+                  "in" : "query",
+                  "name" : "expand",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Limit the number of results",
+                  "in" : "query",
+                  "name" : "limit",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               },
+               {
+                  "description" : "Show only the resources since the provided index",
+                  "in" : "query",
+                  "name" : "since",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "JSON array containing either the Orthanc identifiers, or detailed information about the reported patients (if `expand` argument is provided)",
+                           "example" : [
+                              "0946fcb6-cf12ab43-bad958c1-bf057ad5-0fc6f54c",
+                              "da39a3ee-5e6b4b0d-3255bfef-95601890-afd80709"
+                           ]
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "List the available patients",
+            "tags" : [ "Patients" ]
+         }
+      },
+      "/patients/{id}" : {
+         "delete" : {
+            "deprecated" : false,
+            "description" : "Delete the DICOM patient whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Delete some patient",
+            "tags" : [ "Patients" ]
+         },
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get detailed information about the DICOM patient whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "Information about the DICOM patient",
+                           "example" : {
+                              "ID" : "46e6332c-677825b6-202fcf7c-f787bc5f-7b07c382",
+                              "IsStable" : true,
+                              "LastUpdate" : "20180414T091542",
+                              "MainDicomTags" : {
+                                 "PatientID" : "SOtNwu",
+                                 "PatientName" : "INCISIX"
+                              },
+                              "Studies" : [ "e98b9ac7-dd31ac40-ff046cb2-f0400d30-12f81d85" ],
+                              "Type" : "Patient"
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get information about some patient",
+            "tags" : [ "Patients" ]
+         }
+      },
+      "/patients/{id}/anonymize" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Start a job that will anonymize all the DICOM instances within the patient whose identifier is provided in the URL. The modified DICOM instances will be stored into a brand new patient, whose Orthanc identifiers will be returned by the job. https://book.orthanc-server.com/users/anonymization.html#anonymization-of-patients-studies-or-series",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "Asynchronous" : {
+                              "description" : "If `true`, run the job in asynchronous mode, which means that the REST API call will immediately return, reporting the identifier of a job. Prefer this flavor wherever possible.",
+                              "type" : "boolean"
+                           },
+                           "DicomVersion" : {
+                              "description" : "Version of the DICOM standard to be used for anonymization. Check out configuration option `DeidentifyLogsDicomVersion` for possible values.",
+                              "type" : "string"
+                           },
+                           "Force" : {
+                              "description" : "Allow the modification of tags related to DICOM identifiers, at the risk of breaking the DICOM model of the real world",
+                              "type" : "boolean"
+                           },
+                           "Keep" : {
+                              "description" : "List of DICOM tags whose value must not be destroyed by the anonymization",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           },
+                           "KeepPrivateTags" : {
+                              "description" : "Keep the private tags from the DICOM instances (defaults to `false`)",
+                              "type" : "boolean"
+                           },
+                           "Permissive" : {
+                              "description" : "If `true`, ignore errors during the individual steps of the job.",
+                              "type" : "boolean"
+                           },
+                           "Priority" : {
+                              "description" : "In asynchronous mode, the priority of the job. The lower the value, the higher the priority.",
+                              "type" : "number"
+                           },
+                           "PrivateCreator" : {
+                              "description" : "The private creator to be used for private tags in `Replace`",
+                              "type" : "string"
+                           },
+                           "Remove" : {
+                              "description" : "List of additional tags to be removed from the DICOM instances",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           },
+                           "Replace" : {
+                              "description" : "Associative array to change the value of some DICOM tags in the DICOM instances",
+                              "type" : "object"
+                           },
+                           "Synchronous" : {
+                              "description" : "If `true`, run the job in synchronous mode, which means that the HTTP answer will directly contain the result of the job. This is the default, easy behavior, but it is *not* desirable for long jobs, as it might lead to network timeouts.",
+                              "type" : "boolean"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "",
+                           "properties" : {
+                              "ID" : {
+                                 "description" : "In asynchronous mode, identifier of the job",
+                                 "type" : "string"
+                              },
+                              "Path" : {
+                                 "description" : "In asynchronous mode, path to access the job in the REST API",
+                                 "type" : "string"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Anonymize patient",
+            "tags" : [ "Patients" ]
+         }
+      },
+      "/patients/{id}/archive" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Synchronously create a ZIP archive containing the DICOM patient whose Orthanc identifier is provided in the URL. This flavor is synchronous, which might *not* be desirable to archive large amount of data, as it might lead to network timeouts. Prefer the asynchronous version using `POST` method.",
+            "parameters" : [
+               {
+                  "description" : "If present, the DICOM files in the archive will be transcoded to the provided transfer syntax: https://book.orthanc-server.com/faq/transcoding.html",
+                  "in" : "query",
+                  "name" : "transcode",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/zip" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "ZIP file containing the archive"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Create ZIP archive",
+            "tags" : [ "Patients" ]
+         },
+         "post" : {
+            "deprecated" : false,
+            "description" : "Create a ZIP archive containing the DICOM patient whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "Asynchronous" : {
+                              "description" : "If `true`, create the archive in asynchronous mode, which means that a job is submitted to create the archive in background. Prefer this flavor wherever possible.",
+                              "type" : "boolean"
+                           },
+                           "Priority" : {
+                              "description" : "In asynchronous mode, the priority of the job. The lower the value, the higher the priority.",
+                              "type" : "number"
+                           },
+                           "Synchronous" : {
+                              "description" : "If `true`, create the archive in synchronous mode, which means that the HTTP answer will directly contain the ZIP file. This is the default, easy behavior, but it is *not* be desirable to archive large amount of data, as it might lead to network timeouts.",
+                              "type" : "boolean"
+                           },
+                           "Transcode" : {
+                              "description" : "If present, the DICOM files in the archive will be transcoded to the provided transfer syntax: https://book.orthanc-server.com/faq/transcoding.html",
+                              "type" : "string"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "In asynchronous mode, information about the job that has been submitted to generate the archive: https://book.orthanc-server.com/users/advanced-rest.html#jobs",
+                           "properties" : {
+                              "ID" : {
+                                 "description" : "Identifier of the job",
+                                 "type" : "string"
+                              },
+                              "Path" : {
+                                 "description" : "Path to access the job in the REST API",
+                                 "type" : "string"
+                              }
+                           }
+                        }
+                     },
+                     "application/zip" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "In synchronous mode, the ZIP file containing the archive"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Create ZIP archive",
+            "tags" : [ "Patients" ]
+         }
+      },
+      "/patients/{id}/attachments" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the list of attachments that are associated with the given patient",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "JSON array containing the names of the attachments",
+                           "example" : []
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "List attachments",
+            "tags" : [ "Patients" ]
+         }
+      },
+      "/patients/{id}/attachments/{name}" : {
+         "delete" : {
+            "deprecated" : false,
+            "description" : "Delete an attachment associated with the given DICOM patient. This call will fail if trying to delete a system attachment (i.e. whose index is < 1024).",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Delete attachment",
+            "tags" : [ "Patients" ]
+         },
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the list of the operations that are available for attachments associated with the given patient",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "List of the available operations",
+                           "example" : [
+                              "compress",
+                              "compressed-data",
+                              "compressed-md5",
+                              "compressed-size",
+                              "data",
+                              "is-compressed",
+                              "md5",
+                              "size",
+                              "uncompress",
+                              "verify-md5"
+                           ]
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "List operations on attachments",
+            "tags" : [ "Other" ]
+         },
+         "put" : {
+            "deprecated" : false,
+            "description" : "Attach a file to the given DICOM patient. This call will fail if trying to modify a system attachment (i.e. whose index is < 1024).",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/octet-stream" : {
+                     "schema" : {
+                        "description" : "Binary data containing the attachment"
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "Empty JSON object in the case of a success"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Set attachment",
+            "tags" : [ "Patients" ]
+         }
+      },
+      "/patients/{id}/attachments/{name}/compress" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Change the compression scheme that is used to store an attachment.",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Compress attachment",
+            "tags" : [ "Patients" ]
+         }
+      },
+      "/patients/{id}/attachments/{name}/compressed-data" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the (binary) content of one attachment associated with the given patient. The attachment will not be decompressed if `StorageCompression` is `true`.",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/octet-stream" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The attachment"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get attachment (no decompression)",
+            "tags" : [ "Patients" ]
+         }
+      },
+      "/patients/{id}/attachments/{name}/compressed-md5" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the MD5 hash of one attachment associated with the given patient, as stored on the disk. This is different from `.../md5` iff `EnableStorage` is `true`.",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The MD5 of the attachment, as stored on the disk"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get MD5 of attachment on disk",
+            "tags" : [ "Patients" ]
+         }
+      },
+      "/patients/{id}/attachments/{name}/compressed-size" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the size of one attachment associated with the given patient, as stored on the disk. This is different from `.../size` iff `EnableStorage` is `true`.",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The size of the attachment, as stored on the disk"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get size of attachment on disk",
+            "tags" : [ "Patients" ]
+         }
+      },
+      "/patients/{id}/attachments/{name}/data" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the (binary) content of one attachment associated with the given patient",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/octet-stream" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The attachment"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get attachment",
+            "tags" : [ "Patients" ]
+         }
+      },
+      "/patients/{id}/attachments/{name}/is-compressed" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Test whether the attachment has been stored as a compressed file on the disk.",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "`0` if the attachment was stored uncompressed, `1` if it was compressed"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Is attachment compressed?",
+            "tags" : [ "Patients" ]
+         }
+      },
+      "/patients/{id}/attachments/{name}/md5" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the MD5 hash of one attachment associated with the given patient",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The MD5 of the attachment"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get MD5 of attachment",
+            "tags" : [ "Patients" ]
+         }
+      },
+      "/patients/{id}/attachments/{name}/size" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the size of one attachment associated with the given patient",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The size of the attachment"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get size of attachment",
+            "tags" : [ "Patients" ]
+         }
+      },
+      "/patients/{id}/attachments/{name}/uncompress" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Change the compression scheme that is used to store an attachment.",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Uncompress attachment",
+            "tags" : [ "Patients" ]
+         }
+      },
+      "/patients/{id}/attachments/{name}/verify-md5" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Verify that the attachment is not corrupted, by validating its MD5 hash",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "On success, a valid JSON object is returned"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Verify attachment",
+            "tags" : [ "Patients" ]
+         }
+      },
+      "/patients/{id}/instances" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get detailed information about the child instances of the DICOM patient whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "JSON array containing information about the child DICOM instances",
+                           "example" : [
+                              {
+                                 "FileSize" : 526866,
+                                 "FileUuid" : "c14b2b87-53e2-420b-baf9-020cae34fedf",
+                                 "ID" : "e3dfd688-80e4743a-29c45f90-371ec4a4-04d18ae5",
+                                 "IndexInSeries" : 137,
+                                 "MainDicomTags" : {
+                                    "AcquisitionNumber" : "3",
+                                    "ImagePositionPatient" : "-96.3193359375\\-249.3193359375\\62",
+                                    "InstanceNumber" : "137",
+                                    "SOPInstanceUID" : "1.3.12.2.1107.5.1.4.54693.30000006053107175587500014881"
+                                 },
+                                 "{...}" : "..."
+                              },
+                              {
+                                 "FileSize" : 526870,
+                                 "FileUuid" : "27cdb02f-500f-4b37-9ca1-058d8d4f649a",
+                                 "ID" : "4fecddf1-518346e4-4f30176b-c453b3d8-65899230",
+                                 "IndexInSeries" : 114,
+                                 "MainDicomTags" : {
+                                    "AcquisitionNumber" : "3",
+                                    "ImagePositionPatient" : "-96.3193359375\\-249.3193359375\\73.5",
+                                    "InstanceNumber" : "114",
+                                    "SOPInstanceUID" : "1.3.12.2.1107.5.1.4.54693.30000006053107175587500014858"
+                                 },
+                                 "{...}" : "..."
+                              },
+                              {
+                                 "FileSize" : 526868,
+                                 "FileUuid" : "5a6334a8-e050-47e5-8832-531ee62aa9a7",
+                                 "ID" : "c9a55bc1-9e98ba4b-bc455dc3-24c4c525-1b171b6c",
+                                 "IndexInSeries" : 66,
+                                 "MainDicomTags" : {
+                                    "AcquisitionNumber" : "3",
+                                    "ImagePositionPatient" : "-96.3193359375\\-249.3193359375\\97.5",
+                                    "InstanceNumber" : "66",
+                                    "SOPInstanceUID" : "1.3.12.2.1107.5.1.4.54693.30000006053107175587500014810"
+                                 },
+                                 "{...}" : "..."
+                              },
+                              {
+                                 "FileSize" : 526866,
+                                 "FileUuid" : "e6c09e08-8284-4416-a90f-67a7dc9f68f0",
+                                 "ID" : "135cca6f-4c099fdd-afc99251-f58a819b-5a0222eb",
+                                 "IndexInSeries" : 161,
+                                 "MainDicomTags" : {
+                                    "AcquisitionNumber" : "3",
+                                    "ImagePositionPatient" : "-96.3193359375\\-249.3193359375\\50",
+                                    "InstanceNumber" : "161",
+                                    "SOPInstanceUID" : "1.3.12.2.1107.5.1.4.54693.30000006053107175587500014905"
+                                 },
+                                 "{...}" : "..."
+                              },
+                              {
+                                 "FileSize" : 526866,
+                                 "FileUuid" : "9eb33412-d1e9-4bb0-879b-5501db81d574",
+                                 "ID" : "719d58b1-2a259486-7cc5919d-68a2bd30-da2cd290",
+                                 "IndexInSeries" : 61,
+                                 "MainDicomTags" : {
+                                    "AcquisitionNumber" : "3",
+                                    "ImagePositionPatient" : "-96.3193359375\\-249.3193359375\\100",
+                                    "InstanceNumber" : "61",
+                                    "SOPInstanceUID" : "1.3.12.2.1107.5.1.4.54693.30000006053107175587500014805"
+                                 },
+                                 "{...}" : "..."
+                              },
+                              "..."
+                           ]
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get child instances",
+            "tags" : [ "Patients" ]
+         }
+      },
+      "/patients/{id}/instances-tags" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the tags of all the child instances of the DICOM patient whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Also include the DICOM tags that are provided in this list, even if their associated value is long",
+                  "in" : "query",
+                  "name" : "ignore-length",
+                  "required" : false,
+                  "schema" : {
+                     "items" : {
+                        "type" : "string"
+                     },
+                     "type" : "array"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "JSON object associating the Orthanc identifiers of the instances, with the values of their DICOM tags",
+                           "example" : {
+                              "011ead8d-f2508edd-da315604-80b002df-e678b796" : {
+                                 "0008,0005" : {
+                                    "Name" : "SpecificCharacterSet",
+                                    "Type" : "String",
+                                    "Value" : "ISO_IR 100"
+                                 },
+                                 "0008,0008" : {
+                                    "Name" : "ImageType",
+                                    "Type" : "String",
+                                    "Value" : "ORIGINAL\\PRIMARY\\AXIAL\\CT_SOM5 SPI"
+                                 },
+                                 "0008,0016" : {
+                                    "Name" : "SOPClassUID",
+                                    "Type" : "String",
+                                    "Value" : "1.2.840.10008.5.1.4.1.1.2"
+                                 },
+                                 "0008,0018" : {
+                                    "Name" : "SOPInstanceUID",
+                                    "Type" : "String",
+                                    "Value" : "1.3.12.2.1107.5.1.4.54693.30000006053107175587500014840"
+                                 },
+                                 "0008,0020" : {
+                                    "Name" : "StudyDate",
+                                    "Type" : "String",
+                                    "Value" : "20060531"
+                                 },
+                                 "{...}" : "..."
+                              },
+                              "01252811-30d1c47b-a8c03da5-73177742-48495192" : {
+                                 "0008,0005" : {
+                                    "Name" : "SpecificCharacterSet",
+                                    "Type" : "String",
+                                    "Value" : "ISO_IR 100"
+                                 },
+                                 "0008,0008" : {
+                                    "Name" : "ImageType",
+                                    "Type" : "String",
+                                    "Value" : "ORIGINAL\\PRIMARY\\AXIAL\\CT_SOM5 SPI"
+                                 },
+                                 "0008,0016" : {
+                                    "Name" : "SOPClassUID",
+                                    "Type" : "String",
+                                    "Value" : "1.2.840.10008.5.1.4.1.1.2"
+                                 },
+                                 "0008,0018" : {
+                                    "Name" : "SOPInstanceUID",
+                                    "Type" : "String",
+                                    "Value" : "1.3.12.2.1107.5.1.4.54693.30000006053107175587500014790"
+                                 },
+                                 "0008,0020" : {
+                                    "Name" : "StudyDate",
+                                    "Type" : "String",
+                                    "Value" : "20060531"
+                                 },
+                                 "{...}" : "..."
+                              },
+                              "04a30982-835a4b0a-3082b997-060f01f5-071a0f8d" : {
+                                 "0008,0005" : {
+                                    "Name" : "SpecificCharacterSet",
+                                    "Type" : "String",
+                                    "Value" : "ISO_IR 100"
+                                 },
+                                 "0008,0008" : {
+                                    "Name" : "ImageType",
+                                    "Type" : "String",
+                                    "Value" : "ORIGINAL\\PRIMARY\\AXIAL\\CT_SOM5 SPI"
+                                 },
+                                 "0008,0016" : {
+                                    "Name" : "SOPClassUID",
+                                    "Type" : "String",
+                                    "Value" : "1.2.840.10008.5.1.4.1.1.2"
+                                 },
+                                 "0008,0018" : {
+                                    "Name" : "SOPInstanceUID",
+                                    "Type" : "String",
+                                    "Value" : "1.3.12.2.1107.5.1.4.54693.30000006053107175587500014760"
+                                 },
+                                 "0008,0020" : {
+                                    "Name" : "StudyDate",
+                                    "Type" : "String",
+                                    "Value" : "20060531"
+                                 },
+                                 "{...}" : "..."
+                              },
+                              "04efd8b9-2ae1f3db-deb0f226-e3267002-6cd8fa3c" : {
+                                 "0008,0005" : {
+                                    "Name" : "SpecificCharacterSet",
+                                    "Type" : "String",
+                                    "Value" : "ISO_IR 100"
+                                 },
+                                 "0008,0008" : {
+                                    "Name" : "ImageType",
+                                    "Type" : "String",
+                                    "Value" : "ORIGINAL\\PRIMARY\\AXIAL\\CT_SOM5 SPI"
+                                 },
+                                 "0008,0016" : {
+                                    "Name" : "SOPClassUID",
+                                    "Type" : "String",
+                                    "Value" : "1.2.840.10008.5.1.4.1.1.2"
+                                 },
+                                 "0008,0018" : {
+                                    "Name" : "SOPInstanceUID",
+                                    "Type" : "String",
+                                    "Value" : "1.3.12.2.1107.5.1.4.54693.30000006053107175587500014832"
+                                 },
+                                 "0008,0020" : {
+                                    "Name" : "StudyDate",
+                                    "Type" : "String",
+                                    "Value" : "20060531"
+                                 },
+                                 "{...}" : "..."
+                              },
+                              "0df992f4-0a841d5c-aeb8cdda-9c1a0573-dbd49c3f" : {
+                                 "0008,0005" : {
+                                    "Name" : "SpecificCharacterSet",
+                                    "Type" : "String",
+                                    "Value" : "ISO_IR 100"
+                                 },
+                                 "0008,0008" : {
+                                    "Name" : "ImageType",
+                                    "Type" : "String",
+                                    "Value" : "ORIGINAL\\PRIMARY\\AXIAL\\CT_SOM5 SPI"
+                                 },
+                                 "0008,0016" : {
+                                    "Name" : "SOPClassUID",
+                                    "Type" : "String",
+                                    "Value" : "1.2.840.10008.5.1.4.1.1.2"
+                                 },
+                                 "0008,0018" : {
+                                    "Name" : "SOPInstanceUID",
+                                    "Type" : "String",
+                                    "Value" : "1.3.12.2.1107.5.1.4.54693.30000006053107175587500014882"
+                                 },
+                                 "0008,0020" : {
+                                    "Name" : "StudyDate",
+                                    "Type" : "String",
+                                    "Value" : "20060531"
+                                 },
+                                 "{...}" : "..."
+                              },
+                              "{...}" : "..."
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get tags of instances",
+            "tags" : [ "Patients" ]
+         }
+      },
+      "/patients/{id}/media" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Synchronously create a DICOMDIR media containing the DICOM patient whose Orthanc identifier is provided in the URL. This flavor is synchronous, which might *not* be desirable to archive large amount of data, as it might lead to network timeouts. Prefer the asynchronous version using `POST` method.",
+            "parameters" : [
+               {
+                  "description" : "If present, will include additional tags such as `SeriesDescription`, leading to a so-called *extended DICOMDIR*",
+                  "in" : "query",
+                  "name" : "extended",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "If present, the DICOM files in the archive will be transcoded to the provided transfer syntax: https://book.orthanc-server.com/faq/transcoding.html",
+                  "in" : "query",
+                  "name" : "transcode",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/zip" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "ZIP file containing the archive"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Create DICOMDIR media",
+            "tags" : [ "Patients" ]
+         },
+         "post" : {
+            "deprecated" : false,
+            "description" : "Create a DICOMDIR media containing the DICOM patient whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "Asynchronous" : {
+                              "description" : "If `true`, create the archive in asynchronous mode, which means that a job is submitted to create the archive in background. Prefer this flavor wherever possible.",
+                              "type" : "boolean"
+                           },
+                           "Extended" : {
+                              "description" : "If `true`, will include additional tags such as `SeriesDescription`, leading to a so-called *extended DICOMDIR*. Default value is `false`.",
+                              "type" : "boolean"
+                           },
+                           "Priority" : {
+                              "description" : "In asynchronous mode, the priority of the job. The lower the value, the higher the priority.",
+                              "type" : "number"
+                           },
+                           "Synchronous" : {
+                              "description" : "If `true`, create the archive in synchronous mode, which means that the HTTP answer will directly contain the ZIP file. This is the default, easy behavior, but it is *not* be desirable to archive large amount of data, as it might lead to network timeouts.",
+                              "type" : "boolean"
+                           },
+                           "Transcode" : {
+                              "description" : "If present, the DICOM files in the archive will be transcoded to the provided transfer syntax: https://book.orthanc-server.com/faq/transcoding.html",
+                              "type" : "string"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "In asynchronous mode, information about the job that has been submitted to generate the archive: https://book.orthanc-server.com/users/advanced-rest.html#jobs",
+                           "properties" : {
+                              "ID" : {
+                                 "description" : "Identifier of the job",
+                                 "type" : "string"
+                              },
+                              "Path" : {
+                                 "description" : "Path to access the job in the REST API",
+                                 "type" : "string"
+                              }
+                           }
+                        }
+                     },
+                     "application/zip" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "In synchronous mode, the ZIP file containing the archive"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Create DICOMDIR media",
+            "tags" : [ "Patients" ]
+         }
+      },
+      "/patients/{id}/metadata" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the list of metadata that are associated with the given patient",
+            "parameters" : [
+               {
+                  "description" : "If present, also retrieve the value of the individual metadata",
+                  "in" : "query",
+                  "name" : "expand",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "JSON array containing the names of the available metadata, or JSON associative array mapping metadata to their values (if `expand` argument is provided)",
+                           "example" : [ "LastUpdate" ]
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "List metadata",
+            "tags" : [ "Patients" ]
+         }
+      },
+      "/patients/{id}/metadata/{name}" : {
+         "delete" : {
+            "deprecated" : false,
+            "description" : "Delete some metadata associated with the given DICOM patient. This call will fail if trying to delete a system metadata (i.e. whose index is < 1024).",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the metadata, or its index (cf. `UserMetadata` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Delete metadata",
+            "tags" : [ "Patients" ]
+         },
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the value of a metadata that is associated with the given patient",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the metadata, or its index (cf. `UserMetadata` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "Value of the metadata"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get metadata",
+            "tags" : [ "Patients" ]
+         },
+         "put" : {
+            "deprecated" : false,
+            "description" : "Set the value of some metadata in the given DICOM patient. This call will fail if trying to modify a system metadata (i.e. whose index is < 1024).",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the metadata, or its index (cf. `UserMetadata` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "text/plain" : {
+                     "schema" : {
+                        "description" : "String value of the metadata"
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Set metadata",
+            "tags" : [ "Patients" ]
+         }
+      },
+      "/patients/{id}/modify" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Start a job that will modify all the DICOM instances within the patient whose identifier is provided in the URL. The modified DICOM instances will be stored into a brand new patient, whose Orthanc identifiers will be returned by the job. https://book.orthanc-server.com/users/anonymization.html#modification-of-studies-or-series",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "Asynchronous" : {
+                              "description" : "If `true`, run the job in asynchronous mode, which means that the REST API call will immediately return, reporting the identifier of a job. Prefer this flavor wherever possible.",
+                              "type" : "boolean"
+                           },
+                           "Force" : {
+                              "description" : "Allow the modification of tags related to DICOM identifiers, at the risk of breaking the DICOM model of the real world",
+                              "type" : "boolean"
+                           },
+                           "Keep" : {
+                              "description" : "Keep the original value of the specified tags, to be chosen among the `StudyInstanceUID`, `SeriesInstanceUID` and `SOPInstanceUID` tags. Avoid this feature as much as possible, as this breaks the DICOM model of the real world.",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           },
+                           "Permissive" : {
+                              "description" : "If `true`, ignore errors during the individual steps of the job.",
+                              "type" : "boolean"
+                           },
+                           "Priority" : {
+                              "description" : "In asynchronous mode, the priority of the job. The lower the value, the higher the priority.",
+                              "type" : "number"
+                           },
+                           "PrivateCreator" : {
+                              "description" : "The private creator to be used for private tags in `Replace`",
+                              "type" : "string"
+                           },
+                           "Remove" : {
+                              "description" : "List of tags that must be removed from the DICOM instances",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           },
+                           "RemovePrivateTags" : {
+                              "description" : "Remove the private tags from the DICOM instances (defaults to `false`)",
+                              "type" : "boolean"
+                           },
+                           "Replace" : {
+                              "description" : "Associative array to change the value of some DICOM tags in the DICOM instances",
+                              "type" : "object"
+                           },
+                           "Synchronous" : {
+                              "description" : "If `true`, run the job in synchronous mode, which means that the HTTP answer will directly contain the result of the job. This is the default, easy behavior, but it is *not* desirable for long jobs, as it might lead to network timeouts.",
+                              "type" : "boolean"
+                           },
+                           "Transcode" : {
+                              "description" : "Transcode the DICOM instances to the provided DICOM transfer syntax: https://book.orthanc-server.com/faq/transcoding.html",
+                              "type" : "string"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "",
+                           "properties" : {
+                              "ID" : {
+                                 "description" : "In asynchronous mode, identifier of the job",
+                                 "type" : "string"
+                              },
+                              "Path" : {
+                                 "description" : "In asynchronous mode, path to access the job in the REST API",
+                                 "type" : "string"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Modify patient",
+            "tags" : [ "Patients" ]
+         }
+      },
+      "/patients/{id}/module" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the patient module of the DICOM patient whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Also include the DICOM tags that are provided in this list, even if their associated value is long",
+                  "in" : "query",
+                  "name" : "ignore-length",
+                  "required" : false,
+                  "schema" : {
+                     "items" : {
+                        "type" : "string"
+                     },
+                     "type" : "array"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "Information about the DICOM patient",
+                           "example" : {
+                              "0010,0010" : {
+                                 "Name" : "PatientName",
+                                 "Type" : "String",
+                                 "Value" : "INCISIX"
+                              },
+                              "0010,0020" : {
+                                 "Name" : "PatientID",
+                                 "Type" : "String",
+                                 "Value" : "SOtNwu"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get patient module",
+            "tags" : [ "Patients" ]
+         }
+      },
+      "/patients/{id}/protected" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Is the patient protected against recycling?",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "`1` if protected, `0` if not protected"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Is the patient protected against recycling?",
+            "tags" : [ "Patients" ]
+         },
+         "put" : {
+            "deprecated" : false,
+            "description" : "Check out configuration options `MaximumStorageSize` and `MaximumPatientCount`",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Protect one patient against recycling",
+            "tags" : [ "Patients" ]
+         }
+      },
+      "/patients/{id}/reconstruct" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Reconstruct the main DICOM tags of the patient whose Orthanc identifier is provided in the URL. This is useful if child studies/series/instances have inconsistent values for higher-level tags, in order to force Orthanc to use the value from the resource of interest. Beware that this is a time-consuming operation, as all the children DICOM instances will be parsed again, and the Orthanc index will be updated accordingly.",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Reconstruct tags of patient",
+            "tags" : [ "Patients" ]
+         }
+      },
+      "/patients/{id}/series" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get detailed information about the child series of the DICOM patient whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "JSON array containing information about the child DICOM series",
+                           "example" : [
+                              {
+                                 "ExpectedNumberOfInstances" : null,
+                                 "ID" : "52cc572c-3ee31930-c4b6d5e7-16c786dc-97bc209b",
+                                 "Instances" : [
+                                    "e3dfd688-80e4743a-29c45f90-371ec4a4-04d18ae5",
+                                    "4fecddf1-518346e4-4f30176b-c453b3d8-65899230",
+                                    "c9a55bc1-9e98ba4b-bc455dc3-24c4c525-1b171b6c",
+                                    "135cca6f-4c099fdd-afc99251-f58a819b-5a0222eb",
+                                    "719d58b1-2a259486-7cc5919d-68a2bd30-da2cd290",
+                                    "..."
+                                 ],
+                                 "IsStable" : true,
+                                 "LastUpdate" : "20180414T091542",
+                                 "{...}" : "..."
+                              }
+                           ]
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get child series",
+            "tags" : [ "Patients" ]
+         }
+      },
+      "/patients/{id}/shared-tags" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Extract the DICOM tags whose value is constant across all the child instances of the DICOM patient whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "JSON object containing the values of the DICOM tags",
+                           "example" : {
+                              "0008,0005" : {
+                                 "Name" : "SpecificCharacterSet",
+                                 "Type" : "String",
+                                 "Value" : "ISO_IR 100"
+                              },
+                              "0008,0008" : {
+                                 "Name" : "ImageType",
+                                 "Type" : "String",
+                                 "Value" : "ORIGINAL\\PRIMARY\\AXIAL\\CT_SOM5 SPI"
+                              },
+                              "0008,0016" : {
+                                 "Name" : "SOPClassUID",
+                                 "Type" : "String",
+                                 "Value" : "1.2.840.10008.5.1.4.1.1.2"
+                              },
+                              "0008,0020" : {
+                                 "Name" : "StudyDate",
+                                 "Type" : "String",
+                                 "Value" : "20060531"
+                              },
+                              "0008,0021" : {
+                                 "Name" : "SeriesDate",
+                                 "Type" : "String",
+                                 "Value" : "20060531"
+                              },
+                              "{...}" : "..."
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get shared tags",
+            "tags" : [ "Patients" ]
+         }
+      },
+      "/patients/{id}/statistics" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get statistics about the given patient",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "",
+                           "example" : {
+                              "CountInstances" : 166,
+                              "CountSeries" : 1,
+                              "CountStudies" : 1,
+                              "DicomDiskSize" : "87460012",
+                              "DicomDiskSizeMB" : 83,
+                              "DicomUncompressedSize" : "87460012",
+                              "DicomUncompressedSizeMB" : 83,
+                              "DiskSize" : "89640436",
+                              "DiskSizeMB" : 85,
+                              "UncompressedSize" : "89640436",
+                              "UncompressedSizeMB" : 85
+                           },
+                           "properties" : {
+                              "CountInstances" : {
+                                 "description" : "Number of child instances within this patient",
+                                 "type" : "number"
+                              },
+                              "CountSeries" : {
+                                 "description" : "Number of child series within this patient",
+                                 "type" : "number"
+                              },
+                              "CountStudies" : {
+                                 "description" : "Number of child studies within this patient",
+                                 "type" : "number"
+                              },
+                              "DicomDiskSize" : {
+                                 "description" : "Size on the disk of the DICOM instances associated with the patient, expressed in bytes",
+                                 "type" : "string"
+                              },
+                              "DicomDiskSizeMB" : {
+                                 "description" : "Size on the disk of the DICOM instances associated with the patient, expressed in megabytes (MB)",
+                                 "type" : "number"
+                              },
+                              "DicomUncompressedSize" : {
+                                 "description" : "Size on the disk of the uncompressed DICOM instances associated with the patient, expressed in bytes",
+                                 "type" : "string"
+                              },
+                              "DicomUncompressedSizeMB" : {
+                                 "description" : "Size on the disk of the uncompressed DICOM instances associated with the patient, expressed in megabytes (MB)",
+                                 "type" : "number"
+                              },
+                              "DiskSize" : {
+                                 "description" : "Size of the patient on the disk in bytes, expressed as a string for 64bit compatibility with JSON",
+                                 "type" : "string"
+                              },
+                              "DiskSizeMB" : {
+                                 "description" : "Size of the patient on the disk, expressed in megabytes (MB)",
+                                 "type" : "number"
+                              },
+                              "UncompressedSize" : {
+                                 "description" : "Size of the patient after decompression in bytes, expressed as a string for 64bit compatibility with JSON",
+                                 "type" : "string"
+                              },
+                              "UncompressedSizeMB" : {
+                                 "description" : "Size of the patient after decompression, expressed in megabytes (MB). This is different from `DiskSizeMB` iff `StorageCompression` is `true`.",
+                                 "type" : "number"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get patient statistics",
+            "tags" : [ "Patients" ]
+         }
+      },
+      "/patients/{id}/studies" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get detailed information about the child studies of the DICOM patient whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the patient of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "JSON array containing information about the child DICOM studies",
+                           "example" : [
+                              {
+                                 "ID" : "e98b9ac7-dd31ac40-ff046cb2-f0400d30-12f81d85",
+                                 "IsStable" : true,
+                                 "LastUpdate" : "20180414T091542",
+                                 "MainDicomTags" : {
+                                    "AccessionNumber" : "0",
+                                    "InstitutionName" : "dPJ",
+                                    "ReferringPhysicianName" : "YzTEkpkak0p0Tk5",
+                                    "RequestedProcedureDescription" : "CT2 tête, face, sinus",
+                                    "StudyDate" : "20060531",
+                                    "{...}" : "..."
+                                 },
+                                 "ParentPatient" : "46e6332c-677825b6-202fcf7c-f787bc5f-7b07c382",
+                                 "{...}" : "..."
+                              }
+                           ]
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get child studies",
+            "tags" : [ "Patients" ]
+         }
+      },
+      "/peers" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "List all the Orthanc peers that are known to Orthanc. This corresponds either to the content of the `OrthancPeers` configuration option, or to the information stored in the database if `OrthancPeersInDatabase` is `true`.",
+            "parameters" : [
+               {
+                  "description" : "If present, retrieve detailed information about the individual Orthanc peers",
+                  "in" : "query",
+                  "name" : "expand",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "JSON array containing either the identifiers of the peers, or detailed information about the peers (if `expand` argument is provided)"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "List Orthanc peers",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/peers/{id}" : {
+         "delete" : {
+            "deprecated" : false,
+            "description" : "Delete one Orthanc peer. This change is permanent iff. `OrthancPeersInDatabase` is `true`, otherwise it is lost at the next restart of Orthanc.",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the Orthanc peer of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Delete Orthanc peer",
+            "tags" : [ "Networking" ]
+         },
+         "get" : {
+            "deprecated" : false,
+            "description" : "List the operations that are available for an Orthanc peer.",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the peer of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "List of the available operations"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "List operations on peer",
+            "tags" : [ "Networking" ]
+         },
+         "put" : {
+            "deprecated" : false,
+            "description" : "Define a new Orthanc peer, or update an existing one. This change is permanent iff. `OrthancPeersInDatabase` is `true`, otherwise it is lost at the next restart of Orthanc.",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the new/updated Orthanc peer",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "CertificateFile" : {
+                              "description" : "SSL certificate for the HTTPS connections",
+                              "type" : "string"
+                           },
+                           "CertificateKeyFile" : {
+                              "description" : "Key file for the SSL certificate for the HTTPS connections",
+                              "type" : "string"
+                           },
+                           "CertificateKeyPassword" : {
+                              "description" : "Key password for the SSL certificate for the HTTPS connections",
+                              "type" : "string"
+                           },
+                           "HttpHeaders" : {
+                              "description" : "HTTP headers to be used for the connections to the remote peer",
+                              "type" : "object"
+                           },
+                           "Password" : {
+                              "description" : "Password for the credentials",
+                              "type" : "string"
+                           },
+                           "URL" : {
+                              "description" : "URL of the root of the REST API of the remote Orthanc peer, for instance `http://localhost:8042/`",
+                              "type" : "string"
+                           },
+                           "Username" : {
+                              "description" : "Username for the credentials",
+                              "type" : "string"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Update Orthanc peer",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/peers/{id}/configuration" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get detailed information about the configuration of some Orthanc peer",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the peer of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "Configuration of the peer",
+                           "example" : {
+                              "HttpHeaders" : {},
+                              "Password" : null,
+                              "Pkcs11" : false,
+                              "Url" : "http://127.0.1.1:5000/",
+                              "Username" : "alice"
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get peer configuration",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/peers/{id}/store" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Send DICOM resources stored locally to some remote Orthanc peer whose identifier is provided in the URL: https://book.orthanc-server.com/users/rest.html#sending-one-resource",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the modality of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "Asynchronous" : {
+                              "description" : "If `true`, run the job in asynchronous mode, which means that the REST API call will immediately return, reporting the identifier of a job. Prefer this flavor wherever possible.",
+                              "type" : "boolean"
+                           },
+                           "Compress" : {
+                              "description" : "Whether to compress the DICOM instances using gzip before the actual sending",
+                              "type" : "boolean"
+                           },
+                           "Permissive" : {
+                              "description" : "If `true`, ignore errors during the individual steps of the job.",
+                              "type" : "boolean"
+                           },
+                           "Priority" : {
+                              "description" : "In asynchronous mode, the priority of the job. The lower the value, the higher the priority.",
+                              "type" : "number"
+                           },
+                           "Resources" : {
+                              "description" : "List of the Orthanc identifiers of all the DICOM resources to be sent",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           },
+                           "Synchronous" : {
+                              "description" : "If `true`, run the job in synchronous mode, which means that the HTTP answer will directly contain the result of the job. This is the default, easy behavior, but it is *not* desirable for long jobs, as it might lead to network timeouts.",
+                              "type" : "boolean"
+                           },
+                           "Transcode" : {
+                              "description" : "Transcode to the provided DICOM transfer syntax before the actual sending",
+                              "type" : "string"
+                           }
+                        }
+                     }
+                  },
+                  "text/plain" : {
+                     "schema" : {
+                        "description" : "The Orthanc identifier of one resource to be sent"
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "",
+                           "properties" : {
+                              "ID" : {
+                                 "description" : "In asynchronous mode, identifier of the job",
+                                 "type" : "string"
+                              },
+                              "Path" : {
+                                 "description" : "In asynchronous mode, path to access the job in the REST API",
+                                 "type" : "string"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Send to Orthanc peer",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/peers/{id}/system" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get system information about some Orthanc peer. This corresponds to doing a `GET` request against the `/system` URI of the remote peer. This route can be used to test connectivity.",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the peer of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "System information about the peer"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get peer system information",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/plugins" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "List all the installed plugins",
+            "parameters" : [],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "JSON array containing the identifiers of the installed plugins",
+                           "example" : [
+                              "explorer.js",
+                              "authorization",
+                              "connectivity-checks",
+                              "dicom-web",
+                              "gdcm",
+                              "mysql-index",
+                              "mysql-storage",
+                              "postgresql-index",
+                              "postgresql-storage",
+                              "serve-folders",
+                              "stone-webviewer",
+                              "transfers",
+                              "web-viewer",
+                              "worklists",
+                              "wsi"
+                           ]
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "List plugins",
+            "tags" : [ "System" ]
+         }
+      },
+      "/plugins/explorer.js" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the JavaScript extensions that are installed by all the plugins using the `OrthancPluginExtendOrthancExplorer()` function of the plugin SDK. This route is for internal use of Orthanc Explorer.",
+            "parameters" : [],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/javascript" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The JavaScript extensions"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "JavaScript extensions to Orthanc Explorer",
+            "tags" : [ "System" ]
+         }
+      },
+      "/plugins/{id}" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get system information about the plugin whose identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the job of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "JSON object containing information about the plugin",
+                           "example" : {
+                              "Description" : "Implementation of DICOMweb (QIDO-RS, STOW-RS and WADO-RS) and WADO-URI.",
+                              "ExtendsOrthancExplorer" : true,
+                              "ID" : "dicom-web",
+                              "RootUri" : "../dicom-web/app/client/index.html",
+                              "Version" : "1.4"
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get plugin",
+            "tags" : [ "System" ]
+         }
+      },
+      "/queries" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "List the identifiers of all the query/retrieve operations on DICOM modalities, as initiated by calls to `/modalities/{id}/query`. The length of this list is bounded by the `QueryRetrieveSize` configuration option of Orthanc. https://book.orthanc-server.com/users/rest.html#performing-query-retrieve-c-find-and-find-with-rest",
+            "parameters" : [],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "JSON array containing the identifiers"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "List query/retrieve operations",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/queries/{id}" : {
+         "delete" : {
+            "deprecated" : false,
+            "description" : "Delete the query/retrieve operation whose identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the query of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Delete a query",
+            "tags" : [ "Networking" ]
+         },
+         "get" : {
+            "deprecated" : false,
+            "description" : "List the available operations for the query/retrieve operation whose identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the query of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "JSON array containing the list of operations"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "List operations on a query",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/queries/{id}/answers" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "List the indices of all the available answers resulting from a query/retrieve operation on some DICOM modality, whose identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "If present, retrieve detailed information about the individual answers",
+                  "in" : "query",
+                  "name" : "expand",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "If present and if `expand` is present, format the tags of the answers in human-readable format",
+                  "in" : "query",
+                  "name" : "simplify",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Identifier of the query of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "JSON array containing the indices of the answers, or detailed information about the reported answers (if `expand` argument is provided)"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "List answers to a query",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/queries/{id}/answers/{index}" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "List the available operations on an answer associated with the query/retrieve operation whose identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the query of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Index of the answer",
+                  "in" : "path",
+                  "name" : "index",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "JSON array containing the list of operations"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "List operations on an answer",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/queries/{id}/answers/{index}/content" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the content (DICOM tags) of one answer associated with the query/retrieve operation whose identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "If present, format the tags of the answer in human-readable format",
+                  "in" : "query",
+                  "name" : "simplify",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Identifier of the query of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Index of the answer",
+                  "in" : "path",
+                  "name" : "index",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "JSON object containing the DICOM tags of the answer"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get one answer",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/queries/{id}/answers/{index}/query-instances" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Issue a second DICOM C-FIND operation, in order to query the child instances associated with one answer to some query/retrieve operation whose identifiers are provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the query of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Index of the answer",
+                  "in" : "path",
+                  "name" : "index",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "Query" : {
+                              "description" : "Associative array containing the filter on the values of the DICOM tags",
+                              "type" : "object"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "",
+                           "properties" : {
+                              "ID" : {
+                                 "description" : "Identifier of the query, to be used with `/queries/{id}`",
+                                 "type" : "object"
+                              },
+                              "Path" : {
+                                 "description" : "Root path to the query in the REST API",
+                                 "type" : "object"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Query the child instances of an answer",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/queries/{id}/answers/{index}/query-series" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Issue a second DICOM C-FIND operation, in order to query the child series associated with one answer to some query/retrieve operation whose identifiers are provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the query of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Index of the answer",
+                  "in" : "path",
+                  "name" : "index",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "Query" : {
+                              "description" : "Associative array containing the filter on the values of the DICOM tags",
+                              "type" : "object"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "",
+                           "properties" : {
+                              "ID" : {
+                                 "description" : "Identifier of the query, to be used with `/queries/{id}`",
+                                 "type" : "object"
+                              },
+                              "Path" : {
+                                 "description" : "Root path to the query in the REST API",
+                                 "type" : "object"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Query the child series of an answer",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/queries/{id}/answers/{index}/query-studies" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Issue a second DICOM C-FIND operation, in order to query the child studies associated with one answer to some query/retrieve operation whose identifiers are provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the query of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Index of the answer",
+                  "in" : "path",
+                  "name" : "index",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "Query" : {
+                              "description" : "Associative array containing the filter on the values of the DICOM tags",
+                              "type" : "object"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "",
+                           "properties" : {
+                              "ID" : {
+                                 "description" : "Identifier of the query, to be used with `/queries/{id}`",
+                                 "type" : "object"
+                              },
+                              "Path" : {
+                                 "description" : "Root path to the query in the REST API",
+                                 "type" : "object"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Query the child studies of an answer",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/queries/{id}/answers/{index}/retrieve" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Start a C-MOVE SCU command as a job, in order to retrieve one answer associated with the query/retrieve operation whose identifiers are provided in the URL: https://book.orthanc-server.com/users/rest.html#performing-retrieve-c-move",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the query of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Index of the answer",
+                  "in" : "path",
+                  "name" : "index",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "Asynchronous" : {
+                              "description" : "If `true`, run the job in asynchronous mode, which means that the REST API call will immediately return, reporting the identifier of a job. Prefer this flavor wherever possible.",
+                              "type" : "boolean"
+                           },
+                           "Permissive" : {
+                              "description" : "If `true`, ignore errors during the individual steps of the job.",
+                              "type" : "boolean"
+                           },
+                           "Priority" : {
+                              "description" : "In asynchronous mode, the priority of the job. The lower the value, the higher the priority.",
+                              "type" : "number"
+                           },
+                           "Synchronous" : {
+                              "description" : "If `true`, run the job in synchronous mode, which means that the HTTP answer will directly contain the result of the job. This is the default, easy behavior, but it is *not* desirable for long jobs, as it might lead to network timeouts.",
+                              "type" : "boolean"
+                           },
+                           "TargetAet" : {
+                              "description" : "AET of the target modality. By default, the AET of Orthanc is used, as defined in the `DicomAet` configuration option.",
+                              "type" : "string"
+                           },
+                           "Timeout" : {
+                              "description" : "Timeout for the C-MOVE command, in seconds",
+                              "type" : "number"
+                           }
+                        }
+                     }
+                  },
+                  "text/plain" : {
+                     "schema" : {
+                        "description" : "AET of the target modality"
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "",
+                           "properties" : {
+                              "ID" : {
+                                 "description" : "In asynchronous mode, identifier of the job",
+                                 "type" : "string"
+                              },
+                              "Path" : {
+                                 "description" : "In asynchronous mode, path to access the job in the REST API",
+                                 "type" : "string"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Retrieve one answer",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/queries/{id}/level" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the query level (value of the `QueryRetrieveLevel` tag) of the query/retrieve operation whose identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the query of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The level"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get level of original query",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/queries/{id}/modality" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the identifier of the DICOM modality that was targeted by the query/retrieve operation whose identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the query of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The identifier of the DICOM modality"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get modality of original query",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/queries/{id}/query" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the original DICOM filter associated with the query/retrieve operation whose identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "If present, format the tags of the DICOM filter in human-readable format",
+                  "in" : "query",
+                  "name" : "simplify",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Identifier of the query of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "Content of the original query"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get original query arguments",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/queries/{id}/retrieve" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Start a C-MOVE SCU command as a job, in order to retrieve all the answers associated with the query/retrieve operation whose identifier is provided in the URL: https://book.orthanc-server.com/users/rest.html#performing-retrieve-c-move",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the query of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "Asynchronous" : {
+                              "description" : "If `true`, run the job in asynchronous mode, which means that the REST API call will immediately return, reporting the identifier of a job. Prefer this flavor wherever possible.",
+                              "type" : "boolean"
+                           },
+                           "Permissive" : {
+                              "description" : "If `true`, ignore errors during the individual steps of the job.",
+                              "type" : "boolean"
+                           },
+                           "Priority" : {
+                              "description" : "In asynchronous mode, the priority of the job. The lower the value, the higher the priority.",
+                              "type" : "number"
+                           },
+                           "Synchronous" : {
+                              "description" : "If `true`, run the job in synchronous mode, which means that the HTTP answer will directly contain the result of the job. This is the default, easy behavior, but it is *not* desirable for long jobs, as it might lead to network timeouts.",
+                              "type" : "boolean"
+                           },
+                           "TargetAet" : {
+                              "description" : "AET of the target modality. By default, the AET of Orthanc is used, as defined in the `DicomAet` configuration option.",
+                              "type" : "string"
+                           },
+                           "Timeout" : {
+                              "description" : "Timeout for the C-MOVE command, in seconds",
+                              "type" : "number"
+                           }
+                        }
+                     }
+                  },
+                  "text/plain" : {
+                     "schema" : {
+                        "description" : "AET of the target modality"
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "",
+                           "properties" : {
+                              "ID" : {
+                                 "description" : "In asynchronous mode, identifier of the job",
+                                 "type" : "string"
+                              },
+                              "Path" : {
+                                 "description" : "In asynchronous mode, path to access the job in the REST API",
+                                 "type" : "string"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Retrieve all answers",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/series" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "List the Orthanc identifiers of all the available DICOM series",
+            "parameters" : [
+               {
+                  "description" : "If present, retrieve detailed information about the individual series",
+                  "in" : "query",
+                  "name" : "expand",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Limit the number of results",
+                  "in" : "query",
+                  "name" : "limit",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               },
+               {
+                  "description" : "Show only the resources since the provided index",
+                  "in" : "query",
+                  "name" : "since",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "JSON array containing either the Orthanc identifiers, or detailed information about the reported series (if `expand` argument is provided)",
+                           "example" : [
+                              "318603c5-03e8cffc-a82b6ee1-3ccd3c1e-18d7e3bb",
+                              "7124dba7-09803f33-98b73826-33f14632-ea842d29"
+                           ]
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "List the available series",
+            "tags" : [ "Series" ]
+         }
+      },
+      "/series/{id}" : {
+         "delete" : {
+            "deprecated" : false,
+            "description" : "Delete the DICOM series whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Delete some series",
+            "tags" : [ "Series" ]
+         },
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get detailed information about the DICOM series whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "Information about the DICOM series",
+                           "example" : {
+                              "ExpectedNumberOfInstances" : null,
+                              "ID" : "37836232-d13a2350-fa1dedc5-962b31aa-010f8e52",
+                              "Instances" : [ "6582b1c0-292ad5ab-ba0f088f-f7a1766f-9a29a54f" ],
+                              "IsStable" : true,
+                              "LastUpdate" : "20180414T091542",
+                              "MainDicomTags" : {
+                                 "ImageOrientationPatient" : "0\\1\\0\\0\\0\\-1",
+                                 "Manufacturer" : "Philips",
+                                 "Modality" : "CT",
+                                 "PerformedProcedureStepDescription" : "CT2 tête, face, sinus",
+                                 "ProtocolName" : "COU 2 mm/Neck/Sv",
+                                 "SeriesInstanceUID" : "1.2.840.113704.1.111.5692.1127828999.2",
+                                 "SeriesNumber" : "2276",
+                                 "StationName" : "ctrad"
+                              },
+                              "ParentStudy" : "49974143-ec23cb52-6b2a1c46-14d5daa0-0822ce1a",
+                              "Status" : "Unknown",
+                              "Type" : "Series"
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get information about some series",
+            "tags" : [ "Series" ]
+         }
+      },
+      "/series/{id}/anonymize" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Start a job that will anonymize all the DICOM instances within the series whose identifier is provided in the URL. The modified DICOM instances will be stored into a brand new series, whose Orthanc identifiers will be returned by the job. https://book.orthanc-server.com/users/anonymization.html#anonymization-of-patients-studies-or-series",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "Asynchronous" : {
+                              "description" : "If `true`, run the job in asynchronous mode, which means that the REST API call will immediately return, reporting the identifier of a job. Prefer this flavor wherever possible.",
+                              "type" : "boolean"
+                           },
+                           "DicomVersion" : {
+                              "description" : "Version of the DICOM standard to be used for anonymization. Check out configuration option `DeidentifyLogsDicomVersion` for possible values.",
+                              "type" : "string"
+                           },
+                           "Force" : {
+                              "description" : "Allow the modification of tags related to DICOM identifiers, at the risk of breaking the DICOM model of the real world",
+                              "type" : "boolean"
+                           },
+                           "Keep" : {
+                              "description" : "List of DICOM tags whose value must not be destroyed by the anonymization",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           },
+                           "KeepPrivateTags" : {
+                              "description" : "Keep the private tags from the DICOM instances (defaults to `false`)",
+                              "type" : "boolean"
+                           },
+                           "Permissive" : {
+                              "description" : "If `true`, ignore errors during the individual steps of the job.",
+                              "type" : "boolean"
+                           },
+                           "Priority" : {
+                              "description" : "In asynchronous mode, the priority of the job. The lower the value, the higher the priority.",
+                              "type" : "number"
+                           },
+                           "PrivateCreator" : {
+                              "description" : "The private creator to be used for private tags in `Replace`",
+                              "type" : "string"
+                           },
+                           "Remove" : {
+                              "description" : "List of additional tags to be removed from the DICOM instances",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           },
+                           "Replace" : {
+                              "description" : "Associative array to change the value of some DICOM tags in the DICOM instances",
+                              "type" : "object"
+                           },
+                           "Synchronous" : {
+                              "description" : "If `true`, run the job in synchronous mode, which means that the HTTP answer will directly contain the result of the job. This is the default, easy behavior, but it is *not* desirable for long jobs, as it might lead to network timeouts.",
+                              "type" : "boolean"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "",
+                           "properties" : {
+                              "ID" : {
+                                 "description" : "In asynchronous mode, identifier of the job",
+                                 "type" : "string"
+                              },
+                              "Path" : {
+                                 "description" : "In asynchronous mode, path to access the job in the REST API",
+                                 "type" : "string"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Anonymize series",
+            "tags" : [ "Series" ]
+         }
+      },
+      "/series/{id}/archive" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Synchronously create a ZIP archive containing the DICOM series whose Orthanc identifier is provided in the URL. This flavor is synchronous, which might *not* be desirable to archive large amount of data, as it might lead to network timeouts. Prefer the asynchronous version using `POST` method.",
+            "parameters" : [
+               {
+                  "description" : "If present, the DICOM files in the archive will be transcoded to the provided transfer syntax: https://book.orthanc-server.com/faq/transcoding.html",
+                  "in" : "query",
+                  "name" : "transcode",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/zip" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "ZIP file containing the archive"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Create ZIP archive",
+            "tags" : [ "Series" ]
+         },
+         "post" : {
+            "deprecated" : false,
+            "description" : "Create a ZIP archive containing the DICOM series whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "Asynchronous" : {
+                              "description" : "If `true`, create the archive in asynchronous mode, which means that a job is submitted to create the archive in background. Prefer this flavor wherever possible.",
+                              "type" : "boolean"
+                           },
+                           "Priority" : {
+                              "description" : "In asynchronous mode, the priority of the job. The lower the value, the higher the priority.",
+                              "type" : "number"
+                           },
+                           "Synchronous" : {
+                              "description" : "If `true`, create the archive in synchronous mode, which means that the HTTP answer will directly contain the ZIP file. This is the default, easy behavior, but it is *not* be desirable to archive large amount of data, as it might lead to network timeouts.",
+                              "type" : "boolean"
+                           },
+                           "Transcode" : {
+                              "description" : "If present, the DICOM files in the archive will be transcoded to the provided transfer syntax: https://book.orthanc-server.com/faq/transcoding.html",
+                              "type" : "string"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "In asynchronous mode, information about the job that has been submitted to generate the archive: https://book.orthanc-server.com/users/advanced-rest.html#jobs",
+                           "properties" : {
+                              "ID" : {
+                                 "description" : "Identifier of the job",
+                                 "type" : "string"
+                              },
+                              "Path" : {
+                                 "description" : "Path to access the job in the REST API",
+                                 "type" : "string"
+                              }
+                           }
+                        }
+                     },
+                     "application/zip" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "In synchronous mode, the ZIP file containing the archive"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Create ZIP archive",
+            "tags" : [ "Series" ]
+         }
+      },
+      "/series/{id}/attachments" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the list of attachments that are associated with the given series",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "JSON array containing the names of the attachments",
+                           "example" : []
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "List attachments",
+            "tags" : [ "Series" ]
+         }
+      },
+      "/series/{id}/attachments/{name}" : {
+         "delete" : {
+            "deprecated" : false,
+            "description" : "Delete an attachment associated with the given DICOM series. This call will fail if trying to delete a system attachment (i.e. whose index is < 1024).",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Delete attachment",
+            "tags" : [ "Series" ]
+         },
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the list of the operations that are available for attachments associated with the given series",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "List of the available operations",
+                           "example" : [
+                              "compress",
+                              "compressed-data",
+                              "compressed-md5",
+                              "compressed-size",
+                              "data",
+                              "is-compressed",
+                              "md5",
+                              "size",
+                              "uncompress",
+                              "verify-md5"
+                           ]
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "List operations on attachments",
+            "tags" : [ "Other" ]
+         },
+         "put" : {
+            "deprecated" : false,
+            "description" : "Attach a file to the given DICOM series. This call will fail if trying to modify a system attachment (i.e. whose index is < 1024).",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/octet-stream" : {
+                     "schema" : {
+                        "description" : "Binary data containing the attachment"
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "Empty JSON object in the case of a success"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Set attachment",
+            "tags" : [ "Series" ]
+         }
+      },
+      "/series/{id}/attachments/{name}/compress" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Change the compression scheme that is used to store an attachment.",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Compress attachment",
+            "tags" : [ "Series" ]
+         }
+      },
+      "/series/{id}/attachments/{name}/compressed-data" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the (binary) content of one attachment associated with the given series. The attachment will not be decompressed if `StorageCompression` is `true`.",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/octet-stream" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The attachment"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get attachment (no decompression)",
+            "tags" : [ "Series" ]
+         }
+      },
+      "/series/{id}/attachments/{name}/compressed-md5" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the MD5 hash of one attachment associated with the given series, as stored on the disk. This is different from `.../md5` iff `EnableStorage` is `true`.",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The MD5 of the attachment, as stored on the disk"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get MD5 of attachment on disk",
+            "tags" : [ "Series" ]
+         }
+      },
+      "/series/{id}/attachments/{name}/compressed-size" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the size of one attachment associated with the given series, as stored on the disk. This is different from `.../size` iff `EnableStorage` is `true`.",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The size of the attachment, as stored on the disk"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get size of attachment on disk",
+            "tags" : [ "Series" ]
+         }
+      },
+      "/series/{id}/attachments/{name}/data" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the (binary) content of one attachment associated with the given series",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/octet-stream" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The attachment"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get attachment",
+            "tags" : [ "Series" ]
+         }
+      },
+      "/series/{id}/attachments/{name}/is-compressed" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Test whether the attachment has been stored as a compressed file on the disk.",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "`0` if the attachment was stored uncompressed, `1` if it was compressed"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Is attachment compressed?",
+            "tags" : [ "Series" ]
+         }
+      },
+      "/series/{id}/attachments/{name}/md5" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the MD5 hash of one attachment associated with the given series",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The MD5 of the attachment"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get MD5 of attachment",
+            "tags" : [ "Series" ]
+         }
+      },
+      "/series/{id}/attachments/{name}/size" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the size of one attachment associated with the given series",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The size of the attachment"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get size of attachment",
+            "tags" : [ "Series" ]
+         }
+      },
+      "/series/{id}/attachments/{name}/uncompress" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Change the compression scheme that is used to store an attachment.",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Uncompress attachment",
+            "tags" : [ "Series" ]
+         }
+      },
+      "/series/{id}/attachments/{name}/verify-md5" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Verify that the attachment is not corrupted, by validating its MD5 hash",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "On success, a valid JSON object is returned"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Verify attachment",
+            "tags" : [ "Series" ]
+         }
+      },
+      "/series/{id}/instances" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get detailed information about the child instances of the DICOM series whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "JSON array containing information about the child DICOM instances",
+                           "example" : [
+                              {
+                                 "FileSize" : 368852,
+                                 "FileUuid" : "9016272a-ee8c-41b2-afc6-dcfe06dd3be8",
+                                 "ID" : "6582b1c0-292ad5ab-ba0f088f-f7a1766f-9a29a54f",
+                                 "IndexInSeries" : 1,
+                                 "MainDicomTags" : {
+                                    "ImagePositionPatient" : "0\\-159\\-425.915649",
+                                    "InstanceCreationDate" : "20050927",
+                                    "InstanceCreationTime" : "155030.000000",
+                                    "InstanceNumber" : "1",
+                                    "SOPInstanceUID" : "1.2.840.113704.7.1.1.6632.1127829031.2"
+                                 },
+                                 "{...}" : "..."
+                              }
+                           ]
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get child instances",
+            "tags" : [ "Series" ]
+         }
+      },
+      "/series/{id}/instances-tags" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the tags of all the child instances of the DICOM series whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Also include the DICOM tags that are provided in this list, even if their associated value is long",
+                  "in" : "query",
+                  "name" : "ignore-length",
+                  "required" : false,
+                  "schema" : {
+                     "items" : {
+                        "type" : "string"
+                     },
+                     "type" : "array"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "JSON object associating the Orthanc identifiers of the instances, with the values of their DICOM tags",
+                           "example" : {
+                              "6582b1c0-292ad5ab-ba0f088f-f7a1766f-9a29a54f" : {
+                                 "0008,0005" : {
+                                    "Name" : "SpecificCharacterSet",
+                                    "Type" : "String",
+                                    "Value" : "ISO_IR 100"
+                                 },
+                                 "0008,0008" : {
+                                    "Name" : "ImageType",
+                                    "Type" : "String",
+                                    "Value" : "ORIGINAL\\PRIMARY\\LOCALIZER\\ES"
+                                 },
+                                 "0008,0012" : {
+                                    "Name" : "InstanceCreationDate",
+                                    "Type" : "String",
+                                    "Value" : "20050927"
+                                 },
+                                 "0008,0013" : {
+                                    "Name" : "InstanceCreationTime",
+                                    "Type" : "String",
+                                    "Value" : "155030.000000"
+                                 },
+                                 "0008,0016" : {
+                                    "Name" : "SOPClassUID",
+                                    "Type" : "String",
+                                    "Value" : "1.2.840.10008.5.1.4.1.1.2"
+                                 },
+                                 "{...}" : "..."
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get tags of instances",
+            "tags" : [ "Series" ]
+         }
+      },
+      "/series/{id}/media" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Synchronously create a DICOMDIR media containing the DICOM series whose Orthanc identifier is provided in the URL. This flavor is synchronous, which might *not* be desirable to archive large amount of data, as it might lead to network timeouts. Prefer the asynchronous version using `POST` method.",
+            "parameters" : [
+               {
+                  "description" : "If present, will include additional tags such as `SeriesDescription`, leading to a so-called *extended DICOMDIR*",
+                  "in" : "query",
+                  "name" : "extended",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "If present, the DICOM files in the archive will be transcoded to the provided transfer syntax: https://book.orthanc-server.com/faq/transcoding.html",
+                  "in" : "query",
+                  "name" : "transcode",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/zip" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "ZIP file containing the archive"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Create DICOMDIR media",
+            "tags" : [ "Series" ]
+         },
+         "post" : {
+            "deprecated" : false,
+            "description" : "Create a DICOMDIR media containing the DICOM series whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "Asynchronous" : {
+                              "description" : "If `true`, create the archive in asynchronous mode, which means that a job is submitted to create the archive in background. Prefer this flavor wherever possible.",
+                              "type" : "boolean"
+                           },
+                           "Extended" : {
+                              "description" : "If `true`, will include additional tags such as `SeriesDescription`, leading to a so-called *extended DICOMDIR*. Default value is `false`.",
+                              "type" : "boolean"
+                           },
+                           "Priority" : {
+                              "description" : "In asynchronous mode, the priority of the job. The lower the value, the higher the priority.",
+                              "type" : "number"
+                           },
+                           "Synchronous" : {
+                              "description" : "If `true`, create the archive in synchronous mode, which means that the HTTP answer will directly contain the ZIP file. This is the default, easy behavior, but it is *not* be desirable to archive large amount of data, as it might lead to network timeouts.",
+                              "type" : "boolean"
+                           },
+                           "Transcode" : {
+                              "description" : "If present, the DICOM files in the archive will be transcoded to the provided transfer syntax: https://book.orthanc-server.com/faq/transcoding.html",
+                              "type" : "string"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "In asynchronous mode, information about the job that has been submitted to generate the archive: https://book.orthanc-server.com/users/advanced-rest.html#jobs",
+                           "properties" : {
+                              "ID" : {
+                                 "description" : "Identifier of the job",
+                                 "type" : "string"
+                              },
+                              "Path" : {
+                                 "description" : "Path to access the job in the REST API",
+                                 "type" : "string"
+                              }
+                           }
+                        }
+                     },
+                     "application/zip" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "In synchronous mode, the ZIP file containing the archive"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Create DICOMDIR media",
+            "tags" : [ "Series" ]
+         }
+      },
+      "/series/{id}/metadata" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the list of metadata that are associated with the given series",
+            "parameters" : [
+               {
+                  "description" : "If present, also retrieve the value of the individual metadata",
+                  "in" : "query",
+                  "name" : "expand",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "JSON array containing the names of the available metadata, or JSON associative array mapping metadata to their values (if `expand` argument is provided)",
+                           "example" : [ "LastUpdate" ]
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "List metadata",
+            "tags" : [ "Series" ]
+         }
+      },
+      "/series/{id}/metadata/{name}" : {
+         "delete" : {
+            "deprecated" : false,
+            "description" : "Delete some metadata associated with the given DICOM series. This call will fail if trying to delete a system metadata (i.e. whose index is < 1024).",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the metadata, or its index (cf. `UserMetadata` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Delete metadata",
+            "tags" : [ "Series" ]
+         },
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the value of a metadata that is associated with the given series",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the metadata, or its index (cf. `UserMetadata` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "Value of the metadata"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get metadata",
+            "tags" : [ "Series" ]
+         },
+         "put" : {
+            "deprecated" : false,
+            "description" : "Set the value of some metadata in the given DICOM series. This call will fail if trying to modify a system metadata (i.e. whose index is < 1024).",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the metadata, or its index (cf. `UserMetadata` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "text/plain" : {
+                     "schema" : {
+                        "description" : "String value of the metadata"
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Set metadata",
+            "tags" : [ "Series" ]
+         }
+      },
+      "/series/{id}/modify" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Start a job that will modify all the DICOM instances within the series whose identifier is provided in the URL. The modified DICOM instances will be stored into a brand new series, whose Orthanc identifiers will be returned by the job. https://book.orthanc-server.com/users/anonymization.html#modification-of-studies-or-series",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "Asynchronous" : {
+                              "description" : "If `true`, run the job in asynchronous mode, which means that the REST API call will immediately return, reporting the identifier of a job. Prefer this flavor wherever possible.",
+                              "type" : "boolean"
+                           },
+                           "Force" : {
+                              "description" : "Allow the modification of tags related to DICOM identifiers, at the risk of breaking the DICOM model of the real world",
+                              "type" : "boolean"
+                           },
+                           "Keep" : {
+                              "description" : "Keep the original value of the specified tags, to be chosen among the `StudyInstanceUID`, `SeriesInstanceUID` and `SOPInstanceUID` tags. Avoid this feature as much as possible, as this breaks the DICOM model of the real world.",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           },
+                           "Permissive" : {
+                              "description" : "If `true`, ignore errors during the individual steps of the job.",
+                              "type" : "boolean"
+                           },
+                           "Priority" : {
+                              "description" : "In asynchronous mode, the priority of the job. The lower the value, the higher the priority.",
+                              "type" : "number"
+                           },
+                           "PrivateCreator" : {
+                              "description" : "The private creator to be used for private tags in `Replace`",
+                              "type" : "string"
+                           },
+                           "Remove" : {
+                              "description" : "List of tags that must be removed from the DICOM instances",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           },
+                           "RemovePrivateTags" : {
+                              "description" : "Remove the private tags from the DICOM instances (defaults to `false`)",
+                              "type" : "boolean"
+                           },
+                           "Replace" : {
+                              "description" : "Associative array to change the value of some DICOM tags in the DICOM instances",
+                              "type" : "object"
+                           },
+                           "Synchronous" : {
+                              "description" : "If `true`, run the job in synchronous mode, which means that the HTTP answer will directly contain the result of the job. This is the default, easy behavior, but it is *not* desirable for long jobs, as it might lead to network timeouts.",
+                              "type" : "boolean"
+                           },
+                           "Transcode" : {
+                              "description" : "Transcode the DICOM instances to the provided DICOM transfer syntax: https://book.orthanc-server.com/faq/transcoding.html",
+                              "type" : "string"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "",
+                           "properties" : {
+                              "ID" : {
+                                 "description" : "In asynchronous mode, identifier of the job",
+                                 "type" : "string"
+                              },
+                              "Path" : {
+                                 "description" : "In asynchronous mode, path to access the job in the REST API",
+                                 "type" : "string"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Modify series",
+            "tags" : [ "Series" ]
+         }
+      },
+      "/series/{id}/module" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the series module of the DICOM series whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Also include the DICOM tags that are provided in this list, even if their associated value is long",
+                  "in" : "query",
+                  "name" : "ignore-length",
+                  "required" : false,
+                  "schema" : {
+                     "items" : {
+                        "type" : "string"
+                     },
+                     "type" : "array"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "Information about the DICOM series",
+                           "example" : {
+                              "0008,0060" : {
+                                 "Name" : "Modality",
+                                 "Type" : "String",
+                                 "Value" : "CT"
+                              },
+                              "0008,1111" : {
+                                 "Name" : "ReferencedPerformedProcedureStepSequence",
+                                 "Type" : "Sequence",
+                                 "Value" : [
+                                    {
+                                       "0008,1150" : {
+                                          "Name" : "ReferencedSOPClassUID",
+                                          "Type" : "String",
+                                          "Value" : "1.2.840.10008.3.1.2.3.3"
+                                       },
+                                       "0008,1155" : {
+                                          "Name" : "ReferencedSOPInstanceUID",
+                                          "Type" : "String",
+                                          "Value" : "1.2.840.113704.1.111.4496.1127828841.54"
+                                       }
+                                    }
+                                 ]
+                              },
+                              "0018,1030" : {
+                                 "Name" : "ProtocolName",
+                                 "Type" : "String",
+                                 "Value" : "COU 2 mm/Neck/Sv"
+                              },
+                              "0018,5100" : {
+                                 "Name" : "PatientPosition",
+                                 "Type" : "String",
+                                 "Value" : "HFS"
+                              },
+                              "0020,000e" : {
+                                 "Name" : "SeriesInstanceUID",
+                                 "Type" : "String",
+                                 "Value" : "1.2.840.113704.1.111.5692.1127828999.2"
+                              },
+                              "0020,0011" : {
+                                 "Name" : "SeriesNumber",
+                                 "Type" : "String",
+                                 "Value" : "2276"
+                              },
+                              "0040,0253" : {
+                                 "Name" : "PerformedProcedureStepID",
+                                 "Type" : "String",
+                                 "Value" : "A10011234815"
+                              },
+                              "0040,0254" : {
+                                 "Name" : "PerformedProcedureStepDescription",
+                                 "Type" : "String",
+                                 "Value" : "CT2 tête, face, sinus"
+                              },
+                              "0040,0260" : {
+                                 "Name" : "PerformedProtocolCodeSequence",
+                                 "Type" : "Sequence",
+                                 "Value" : [
+                                    {
+                                       "0008,0100" : {
+                                          "Name" : "CodeValue",
+                                          "Type" : "String",
+                                          "Value" : "CTTETE"
+                                       },
+                                       "0008,0102" : {
+                                          "Name" : "CodingSchemeDesignator",
+                                          "Type" : "String",
+                                          "Value" : "XPLORE"
+                                       },
+                                       "0008,0104" : {
+                                          "Name" : "CodeMeaning",
+                                          "Type" : "String",
+                                          "Value" : "CT2 tête, face, sinus"
+                                       }
+                                    }
+                                 ]
+                              },
+                              "0040,0275" : {
+                                 "Name" : "RequestAttributesSequence",
+                                 "Type" : "Sequence",
+                                 "Value" : [
+                                    {
+                                       "0040,0007" : {
+                                          "Name" : "ScheduledProcedureStepDescription",
+                                          "Type" : "String",
+                                          "Value" : "CT2 tête, face, sinus"
+                                       },
+                                       "0040,0008" : {
+                                          "Name" : "ScheduledProtocolCodeSequence",
+                                          "Type" : "Sequence",
+                                          "Value" : [
+                                             {
+                                                "0008,0100" : {
+                                                   "Name" : "CodeValue",
+                                                   "Type" : "String",
+                                                   "Value" : "CTTETE"
+                                                },
+                                                "0008,0102" : {
+                                                   "Name" : "CodingSchemeDesignator",
+                                                   "Type" : "String",
+                                                   "Value" : "XPLORE"
+                                                },
+                                                "0008,0104" : {
+                                                   "Name" : "CodeMeaning",
+                                                   "Type" : "String",
+                                                   "Value" : "CT2 TÊTE, FACE, SINUS"
+                                                }
+                                             }
+                                          ]
+                                       },
+                                       "0040,0009" : {
+                                          "Name" : "ScheduledProcedureStepID",
+                                          "Type" : "String",
+                                          "Value" : "A10011234815"
+                                       },
+                                       "0040,1001" : {
+                                          "Name" : "RequestedProcedureID",
+                                          "Type" : "String",
+                                          "Value" : "A10011234814"
+                                       }
+                                    }
+                                 ]
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get series module",
+            "tags" : [ "Series" ]
+         }
+      },
+      "/series/{id}/ordered-slices" : {
+         "get" : {
+            "deprecated" : true,
+            "description" : "Sort the instances and frames (slices) of the DICOM series whose Orthanc identifier is provided in the URL. This URI is essentially used by the Orthanc Web viewer and by the Osimis Web viewer.",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "",
+                           "example" : {
+                              "Dicom" : [
+                                 "/instances/fa1fc64f-e7a051a7-c1233b31-e19bca08-54629531/file",
+                                 "/instances/f5701efb-98170697-404d15f6-59baf69e-4e8ddfae/file",
+                                 "/instances/3b2a215c-2560d4b0-e3730c07-87d3fa7d-3fef44ed/file",
+                                 "/instances/6059d07c-02ae8c74-9436dc7c-007b4d5d-4c770a30/file",
+                                 "/instances/99264275-213c3190-73251bdc-97ccfdb4-1f9656d9/file",
+                                 "/instances/40df6ac1-5ec86316-035ff3c1-07e5c8a8-f6cbd37c/file",
+                                 "/instances/08ff3a1a-c8fb57d9-4e24d9cb-2ed22b80-0ff7461e/file",
+                                 "/instances/6fe353dd-544ce7af-58ce22dd-ab67370c-873330fc/file",
+                                 "/instances/3ad70bbe-bc51faff-860461d2-44745ccf-0ebbbbc8/file",
+                                 "/instances/9058e01a-31a7d982-1691e575-a8607d94-29a9aaca/file",
+                                 "..."
+                              ],
+                              "Slices" : [
+                                 "/instances/fa1fc64f-e7a051a7-c1233b31-e19bca08-54629531/frames/0",
+                                 "/instances/f5701efb-98170697-404d15f6-59baf69e-4e8ddfae/frames/0",
+                                 "/instances/3b2a215c-2560d4b0-e3730c07-87d3fa7d-3fef44ed/frames/0",
+                                 "/instances/6059d07c-02ae8c74-9436dc7c-007b4d5d-4c770a30/frames/0",
+                                 "/instances/99264275-213c3190-73251bdc-97ccfdb4-1f9656d9/frames/0",
+                                 "/instances/40df6ac1-5ec86316-035ff3c1-07e5c8a8-f6cbd37c/frames/0",
+                                 "/instances/08ff3a1a-c8fb57d9-4e24d9cb-2ed22b80-0ff7461e/frames/0",
+                                 "/instances/6fe353dd-544ce7af-58ce22dd-ab67370c-873330fc/frames/0",
+                                 "/instances/3ad70bbe-bc51faff-860461d2-44745ccf-0ebbbbc8/frames/0",
+                                 "/instances/9058e01a-31a7d982-1691e575-a8607d94-29a9aaca/frames/0",
+                                 "..."
+                              ],
+                              "SlicesShort" : [
+                                 [ "fa1fc64f-e7a051a7-c1233b31-e19bca08-54629531", 0, 1 ],
+                                 [ "f5701efb-98170697-404d15f6-59baf69e-4e8ddfae", 0, 1 ],
+                                 [ "3b2a215c-2560d4b0-e3730c07-87d3fa7d-3fef44ed", 0, 1 ],
+                                 [ "6059d07c-02ae8c74-9436dc7c-007b4d5d-4c770a30", 0, 1 ],
+                                 [ "99264275-213c3190-73251bdc-97ccfdb4-1f9656d9", 0, 1 ],
+                                 [ "40df6ac1-5ec86316-035ff3c1-07e5c8a8-f6cbd37c", 0, 1 ],
+                                 [ "08ff3a1a-c8fb57d9-4e24d9cb-2ed22b80-0ff7461e", 0, 1 ],
+                                 [ "6fe353dd-544ce7af-58ce22dd-ab67370c-873330fc", 0, 1 ],
+                                 [ "3ad70bbe-bc51faff-860461d2-44745ccf-0ebbbbc8", 0, 1 ],
+                                 [ "9058e01a-31a7d982-1691e575-a8607d94-29a9aaca", 0, 1 ],
+                                 "..."
+                              ],
+                              "Type" : "Volume"
+                           },
+                           "properties" : {
+                              "Dicom" : {
+                                 "description" : "Ordered list of paths to DICOM instances",
+                                 "items" : {
+                                    "type" : "string"
+                                 },
+                                 "type" : "array"
+                              },
+                              "Slices" : {
+                                 "description" : "Ordered list of paths to frames. It is recommended to use this field, as it is also valid in the case of multiframe images.",
+                                 "items" : {
+                                    "type" : "string"
+                                 },
+                                 "type" : "array"
+                              },
+                              "SlicesShort" : {
+                                 "description" : "Same information as the `Slices` field, but in a compact form",
+                                 "items" : {
+                                    "type" : "object"
+                                 },
+                                 "type" : "array"
+                              },
+                              "Type" : {
+                                 "description" : "Can be `Volume` (for 3D volumes) or `Sequence` (notably for cine images)",
+                                 "type" : "string"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Order the slices",
+            "tags" : [ "Series" ]
+         }
+      },
+      "/series/{id}/patient" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get detailed information about the parent patient of the DICOM series whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "Information about the parent DICOM patient",
+                           "example" : {
+                              "ID" : "2f74083e-9b042648-10edac14-b26950f8-f82ec3a0",
+                              "IsStable" : true,
+                              "LastUpdate" : "20180414T091601",
+                              "MainDicomTags" : {
+                                 "PatientBirthDate" : "19910101",
+                                 "PatientID" : "Vafk,T,6",
+                                 "PatientName" : "PHENIX",
+                                 "PatientSex" : ""
+                              },
+                              "Studies" : [ "49974143-ec23cb52-6b2a1c46-14d5daa0-0822ce1a" ],
+                              "Type" : "Patient"
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get parent patient",
+            "tags" : [ "Series" ]
+         }
+      },
+      "/series/{id}/reconstruct" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Reconstruct the main DICOM tags of the series whose Orthanc identifier is provided in the URL. This is useful if child studies/series/instances have inconsistent values for higher-level tags, in order to force Orthanc to use the value from the resource of interest. Beware that this is a time-consuming operation, as all the children DICOM instances will be parsed again, and the Orthanc index will be updated accordingly.",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Reconstruct tags of series",
+            "tags" : [ "Series" ]
+         }
+      },
+      "/series/{id}/shared-tags" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Extract the DICOM tags whose value is constant across all the child instances of the DICOM series whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "JSON object containing the values of the DICOM tags",
+                           "example" : {
+                              "0008,0005" : {
+                                 "Name" : "SpecificCharacterSet",
+                                 "Type" : "String",
+                                 "Value" : "ISO_IR 100"
+                              },
+                              "0008,0008" : {
+                                 "Name" : "ImageType",
+                                 "Type" : "String",
+                                 "Value" : "ORIGINAL\\PRIMARY\\LOCALIZER\\ES"
+                              },
+                              "0008,0012" : {
+                                 "Name" : "InstanceCreationDate",
+                                 "Type" : "String",
+                                 "Value" : "20050927"
+                              },
+                              "0008,0013" : {
+                                 "Name" : "InstanceCreationTime",
+                                 "Type" : "String",
+                                 "Value" : "155030.000000"
+                              },
+                              "0008,0016" : {
+                                 "Name" : "SOPClassUID",
+                                 "Type" : "String",
+                                 "Value" : "1.2.840.10008.5.1.4.1.1.2"
+                              },
+                              "{...}" : "..."
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get shared tags",
+            "tags" : [ "Series" ]
+         }
+      },
+      "/series/{id}/statistics" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get statistics about the given series",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "",
+                           "example" : {
+                              "CountInstances" : 1,
+                              "DicomDiskSize" : "368852",
+                              "DicomDiskSizeMB" : 0,
+                              "DicomUncompressedSize" : "368852",
+                              "DicomUncompressedSizeMB" : 0,
+                              "DiskSize" : "381000",
+                              "DiskSizeMB" : 0,
+                              "UncompressedSize" : "381000",
+                              "UncompressedSizeMB" : 0
+                           },
+                           "properties" : {
+                              "CountInstances" : {
+                                 "description" : "Number of child instances within this series",
+                                 "type" : "number"
+                              },
+                              "DicomDiskSize" : {
+                                 "description" : "Size on the disk of the DICOM instances associated with the series, expressed in bytes",
+                                 "type" : "string"
+                              },
+                              "DicomDiskSizeMB" : {
+                                 "description" : "Size on the disk of the DICOM instances associated with the series, expressed in megabytes (MB)",
+                                 "type" : "number"
+                              },
+                              "DicomUncompressedSize" : {
+                                 "description" : "Size on the disk of the uncompressed DICOM instances associated with the series, expressed in bytes",
+                                 "type" : "string"
+                              },
+                              "DicomUncompressedSizeMB" : {
+                                 "description" : "Size on the disk of the uncompressed DICOM instances associated with the series, expressed in megabytes (MB)",
+                                 "type" : "number"
+                              },
+                              "DiskSize" : {
+                                 "description" : "Size of the series on the disk in bytes, expressed as a string for 64bit compatibility with JSON",
+                                 "type" : "string"
+                              },
+                              "DiskSizeMB" : {
+                                 "description" : "Size of the series on the disk, expressed in megabytes (MB)",
+                                 "type" : "number"
+                              },
+                              "UncompressedSize" : {
+                                 "description" : "Size of the series after decompression in bytes, expressed as a string for 64bit compatibility with JSON",
+                                 "type" : "string"
+                              },
+                              "UncompressedSizeMB" : {
+                                 "description" : "Size of the series after decompression, expressed in megabytes (MB). This is different from `DiskSizeMB` iff `StorageCompression` is `true`.",
+                                 "type" : "number"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get series statistics",
+            "tags" : [ "Series" ]
+         }
+      },
+      "/series/{id}/study" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get detailed information about the parent study of the DICOM series whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the series of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "Information about the parent DICOM study",
+                           "example" : {
+                              "ID" : "49974143-ec23cb52-6b2a1c46-14d5daa0-0822ce1a",
+                              "IsStable" : true,
+                              "LastUpdate" : "20180414T091601",
+                              "MainDicomTags" : {
+                                 "AccessionNumber" : "A10011234814",
+                                 "InstitutionName" : "HUG",
+                                 "ReferringPhysicianName" : "CHIR-PED^CHIR-PE",
+                                 "RequestedProcedureDescription" : "CT2 TÊTE, FACE, SINUS",
+                                 "RequestingPhysician" : "KOHLER^Romain",
+                                 "StudyDate" : "20050927",
+                                 "StudyDescription" : "CT2 tête, face, sinus",
+                                 "StudyID" : "1361",
+                                 "StudyInstanceUID" : "2.16.840.1.113669.632.20.1211.10000098591",
+                                 "StudyTime" : "154952.000000"
+                              },
+                              "ParentPatient" : "2f74083e-9b042648-10edac14-b26950f8-f82ec3a0",
+                              "PatientMainDicomTags" : {
+                                 "PatientBirthDate" : "19910101",
+                                 "PatientID" : "Vafk,T,6",
+                                 "PatientName" : "PHENIX",
+                                 "PatientSex" : ""
+                              },
+                              "Series" : [
+                                 "37836232-d13a2350-fa1dedc5-962b31aa-010f8e52",
+                                 "7696013f-4c89c563-2b071693-5d1f97f6-f8ab232d",
+                                 "17cc7e52-4f1a3e4d-9182f727-56e9cc71-c037892f"
+                              ],
+                              "Type" : "Study"
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get parent study",
+            "tags" : [ "Series" ]
+         }
+      },
+      "/statistics" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get statistics related to the database of Orthanc",
+            "parameters" : [],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "",
+                           "example" : {
+                              "CountInstances" : 2552,
+                              "CountPatients" : 8,
+                              "CountSeries" : 26,
+                              "CountStudies" : 8,
+                              "TotalDiskSize" : "1068132148",
+                              "TotalDiskSizeMB" : 1018,
+                              "TotalUncompressedSize" : "1068132148",
+                              "TotalUncompressedSizeMB" : 1018
+                           },
+                           "properties" : {
+                              "CountInstances" : {
+                                 "description" : "Number of DICOM instances stored in Orthanc",
+                                 "type" : "number"
+                              },
+                              "CountPatients" : {
+                                 "description" : "Number of patients stored in Orthanc",
+                                 "type" : "number"
+                              },
+                              "CountSeries" : {
+                                 "description" : "Number of DICOM series stored in Orthanc",
+                                 "type" : "number"
+                              },
+                              "CountStudies" : {
+                                 "description" : "Number of DICOM studies stored in Orthanc",
+                                 "type" : "number"
+                              },
+                              "TotalDiskSize" : {
+                                 "description" : "Size of the storage area (in bytes)",
+                                 "type" : "string"
+                              },
+                              "TotalDiskSizeMB" : {
+                                 "description" : "Size of the storage area (in megabytes)",
+                                 "type" : "number"
+                              },
+                              "TotalUncompressedSize" : {
+                                 "description" : "Total size of all the files once uncompressed (in bytes). This corresponds to `TotalDiskSize` if no compression is enabled, cf. `StorageCompression` configuration option",
+                                 "type" : "string"
+                              },
+                              "TotalUncompressedSizeMB" : {
+                                 "description" : "Total size of all the files once uncompressed (in megabytes)",
+                                 "type" : "number"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get database statistics",
+            "tags" : [ "System" ]
+         }
+      },
+      "/storage-commitment/{id}" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the storage commitment report whose identifier is provided in the URL: https://book.orthanc-server.com/users/storage-commitment.html#storage-commitment-scu",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the storage commitment report",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "",
+                           "properties" : {
+                              "Failures" : {
+                                 "description" : "List of failures that have been encountered during the storage commitment request",
+                                 "items" : {
+                                    "type" : "object"
+                                 },
+                                 "type" : "array"
+                              },
+                              "RemoteAET" : {
+                                 "description" : "AET of the remote DICOM modality",
+                                 "type" : "string"
+                              },
+                              "Status" : {
+                                 "description" : "Can be `Success`, `Failure`, or `Pending` (the latter means that no report has been received yet)",
+                                 "type" : "string"
+                              },
+                              "Success" : {
+                                 "description" : "List of DICOM instances that have been acknowledged by the remote modality, each one is reported as a JSON object containing the `SOPClassUID` and `SOPInstanceUID` DICOM tags",
+                                 "items" : {
+                                    "type" : "object"
+                                 },
+                                 "type" : "array"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get storage commitment report",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/storage-commitment/{id}/remove" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Remove out of Orthanc, the DICOM instances that have been reported to have been properly received the storage commitment report whose identifier is provided in the URL. This is only possible if the `Status` of the storage commitment report is `Success`. https://book.orthanc-server.com/users/storage-commitment.html#removing-the-instances",
+            "parameters" : [
+               {
+                  "description" : "Identifier of the storage commitment report",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Remove after storage commitment",
+            "tags" : [ "Networking" ]
+         }
+      },
+      "/studies" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "List the Orthanc identifiers of all the available DICOM studies",
+            "parameters" : [
+               {
+                  "description" : "If present, retrieve detailed information about the individual studies",
+                  "in" : "query",
+                  "name" : "expand",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Limit the number of results",
+                  "in" : "query",
+                  "name" : "limit",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               },
+               {
+                  "description" : "Show only the resources since the provided index",
+                  "in" : "query",
+                  "name" : "since",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "number"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "JSON array containing either the Orthanc identifiers, or detailed information about the reported studies (if `expand` argument is provided)",
+                           "example" : [
+                              "6c65289b-db2fcb71-7eaf73f4-8e12470c-a4d6d7cf",
+                              "6b9e19d9-62094390-5f9ddb01-4a191ae7-9766b715"
+                           ]
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "List the available studies",
+            "tags" : [ "Studies" ]
+         }
+      },
+      "/studies/{id}" : {
+         "delete" : {
+            "deprecated" : false,
+            "description" : "Delete the DICOM study whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Delete some study",
+            "tags" : [ "Studies" ]
+         },
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get detailed information about the DICOM study whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "Information about the DICOM study",
+                           "example" : {
+                              "ID" : "27f7126f-4f66fb14-03f4081b-f9341db2-53925988",
+                              "IsStable" : true,
+                              "LastUpdate" : "20180414T091532",
+                              "MainDicomTags" : {
+                                 "AccessionNumber" : "0",
+                                 "InstitutionName" : "7GEFF0GbzqCNo43Yd0,Ibu,zQSSX",
+                                 "ReferringPhysicianName" : "dAEvNTxZJO0E",
+                                 "RequestedProcedureDescription" : "IRM cérébrale, neuro-crâne",
+                                 "StudyDate" : "20061201",
+                                 "StudyDescription" : "IRM cérébrale, neuro-crâne",
+                                 "StudyID" : "218211405",
+                                 "StudyInstanceUID" : "2.16.840.1.113669.632.20.1211.10000357775",
+                                 "StudyTime" : "141645.000000"
+                              },
+                              "ParentPatient" : "16738bc3-e47ed42a-43ce044c-a3414a45-cb069bd0",
+                              "PatientMainDicomTags" : {
+                                 "PatientBirthDate" : "19490301",
+                                 "PatientID" : "5Yp0E",
+                                 "PatientName" : "BRAINIX",
+                                 "PatientSex" : "0000"
+                              },
+                              "Series" : [
+                                 "635faa23-fd8378ee-d03bce29-ee47c2fb-a65c5509",
+                                 "dc0216d2-a406a5ad-31ef7a78-113ae9d9-29939f9e",
+                                 "1e2c125c-411b8e86-3f4fe68e-a7584dd3-c6da78f0",
+                                 "4baa97c7-d53d3d82-a5eb9403-17ef5a77-4e0efb55",
+                                 "2ac1316d-3e432022-62eabff2-c59f5475-9b1ac3f8",
+                                 "ae164c84-e5bd0366-ba937a6d-65414092-f294d6b6",
+                                 "3ca69615-fcd4a4fb-e5f2cc9d-9c7a49a5-add98bbf"
+                              ],
+                              "Type" : "Study"
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get information about some study",
+            "tags" : [ "Studies" ]
+         }
+      },
+      "/studies/{id}/anonymize" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Start a job that will anonymize all the DICOM instances within the study whose identifier is provided in the URL. The modified DICOM instances will be stored into a brand new study, whose Orthanc identifiers will be returned by the job. https://book.orthanc-server.com/users/anonymization.html#anonymization-of-patients-studies-or-series",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "Asynchronous" : {
+                              "description" : "If `true`, run the job in asynchronous mode, which means that the REST API call will immediately return, reporting the identifier of a job. Prefer this flavor wherever possible.",
+                              "type" : "boolean"
+                           },
+                           "DicomVersion" : {
+                              "description" : "Version of the DICOM standard to be used for anonymization. Check out configuration option `DeidentifyLogsDicomVersion` for possible values.",
+                              "type" : "string"
+                           },
+                           "Force" : {
+                              "description" : "Allow the modification of tags related to DICOM identifiers, at the risk of breaking the DICOM model of the real world",
+                              "type" : "boolean"
+                           },
+                           "Keep" : {
+                              "description" : "List of DICOM tags whose value must not be destroyed by the anonymization",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           },
+                           "KeepPrivateTags" : {
+                              "description" : "Keep the private tags from the DICOM instances (defaults to `false`)",
+                              "type" : "boolean"
+                           },
+                           "Permissive" : {
+                              "description" : "If `true`, ignore errors during the individual steps of the job.",
+                              "type" : "boolean"
+                           },
+                           "Priority" : {
+                              "description" : "In asynchronous mode, the priority of the job. The lower the value, the higher the priority.",
+                              "type" : "number"
+                           },
+                           "PrivateCreator" : {
+                              "description" : "The private creator to be used for private tags in `Replace`",
+                              "type" : "string"
+                           },
+                           "Remove" : {
+                              "description" : "List of additional tags to be removed from the DICOM instances",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           },
+                           "Replace" : {
+                              "description" : "Associative array to change the value of some DICOM tags in the DICOM instances",
+                              "type" : "object"
+                           },
+                           "Synchronous" : {
+                              "description" : "If `true`, run the job in synchronous mode, which means that the HTTP answer will directly contain the result of the job. This is the default, easy behavior, but it is *not* desirable for long jobs, as it might lead to network timeouts.",
+                              "type" : "boolean"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "",
+                           "properties" : {
+                              "ID" : {
+                                 "description" : "In asynchronous mode, identifier of the job",
+                                 "type" : "string"
+                              },
+                              "Path" : {
+                                 "description" : "In asynchronous mode, path to access the job in the REST API",
+                                 "type" : "string"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Anonymize study",
+            "tags" : [ "Studies" ]
+         }
+      },
+      "/studies/{id}/archive" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Synchronously create a ZIP archive containing the DICOM study whose Orthanc identifier is provided in the URL. This flavor is synchronous, which might *not* be desirable to archive large amount of data, as it might lead to network timeouts. Prefer the asynchronous version using `POST` method.",
+            "parameters" : [
+               {
+                  "description" : "If present, the DICOM files in the archive will be transcoded to the provided transfer syntax: https://book.orthanc-server.com/faq/transcoding.html",
+                  "in" : "query",
+                  "name" : "transcode",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/zip" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "ZIP file containing the archive"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Create ZIP archive",
+            "tags" : [ "Studies" ]
+         },
+         "post" : {
+            "deprecated" : false,
+            "description" : "Create a ZIP archive containing the DICOM study whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "Asynchronous" : {
+                              "description" : "If `true`, create the archive in asynchronous mode, which means that a job is submitted to create the archive in background. Prefer this flavor wherever possible.",
+                              "type" : "boolean"
+                           },
+                           "Priority" : {
+                              "description" : "In asynchronous mode, the priority of the job. The lower the value, the higher the priority.",
+                              "type" : "number"
+                           },
+                           "Synchronous" : {
+                              "description" : "If `true`, create the archive in synchronous mode, which means that the HTTP answer will directly contain the ZIP file. This is the default, easy behavior, but it is *not* be desirable to archive large amount of data, as it might lead to network timeouts.",
+                              "type" : "boolean"
+                           },
+                           "Transcode" : {
+                              "description" : "If present, the DICOM files in the archive will be transcoded to the provided transfer syntax: https://book.orthanc-server.com/faq/transcoding.html",
+                              "type" : "string"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "In asynchronous mode, information about the job that has been submitted to generate the archive: https://book.orthanc-server.com/users/advanced-rest.html#jobs",
+                           "properties" : {
+                              "ID" : {
+                                 "description" : "Identifier of the job",
+                                 "type" : "string"
+                              },
+                              "Path" : {
+                                 "description" : "Path to access the job in the REST API",
+                                 "type" : "string"
+                              }
+                           }
+                        }
+                     },
+                     "application/zip" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "In synchronous mode, the ZIP file containing the archive"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Create ZIP archive",
+            "tags" : [ "Studies" ]
+         }
+      },
+      "/studies/{id}/attachments" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the list of attachments that are associated with the given study",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "JSON array containing the names of the attachments",
+                           "example" : []
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "List attachments",
+            "tags" : [ "Studies" ]
+         }
+      },
+      "/studies/{id}/attachments/{name}" : {
+         "delete" : {
+            "deprecated" : false,
+            "description" : "Delete an attachment associated with the given DICOM study. This call will fail if trying to delete a system attachment (i.e. whose index is < 1024).",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Delete attachment",
+            "tags" : [ "Studies" ]
+         },
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the list of the operations that are available for attachments associated with the given study",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "List of the available operations",
+                           "example" : [
+                              "compress",
+                              "compressed-data",
+                              "compressed-md5",
+                              "compressed-size",
+                              "data",
+                              "is-compressed",
+                              "md5",
+                              "size",
+                              "uncompress",
+                              "verify-md5"
+                           ]
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "List operations on attachments",
+            "tags" : [ "Other" ]
+         },
+         "put" : {
+            "deprecated" : false,
+            "description" : "Attach a file to the given DICOM study. This call will fail if trying to modify a system attachment (i.e. whose index is < 1024).",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/octet-stream" : {
+                     "schema" : {
+                        "description" : "Binary data containing the attachment"
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "Empty JSON object in the case of a success"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Set attachment",
+            "tags" : [ "Studies" ]
+         }
+      },
+      "/studies/{id}/attachments/{name}/compress" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Change the compression scheme that is used to store an attachment.",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Compress attachment",
+            "tags" : [ "Studies" ]
+         }
+      },
+      "/studies/{id}/attachments/{name}/compressed-data" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the (binary) content of one attachment associated with the given study. The attachment will not be decompressed if `StorageCompression` is `true`.",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/octet-stream" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The attachment"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get attachment (no decompression)",
+            "tags" : [ "Studies" ]
+         }
+      },
+      "/studies/{id}/attachments/{name}/compressed-md5" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the MD5 hash of one attachment associated with the given study, as stored on the disk. This is different from `.../md5` iff `EnableStorage` is `true`.",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The MD5 of the attachment, as stored on the disk"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get MD5 of attachment on disk",
+            "tags" : [ "Studies" ]
+         }
+      },
+      "/studies/{id}/attachments/{name}/compressed-size" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the size of one attachment associated with the given study, as stored on the disk. This is different from `.../size` iff `EnableStorage` is `true`.",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The size of the attachment, as stored on the disk"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get size of attachment on disk",
+            "tags" : [ "Studies" ]
+         }
+      },
+      "/studies/{id}/attachments/{name}/data" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the (binary) content of one attachment associated with the given study",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/octet-stream" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The attachment"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get attachment",
+            "tags" : [ "Studies" ]
+         }
+      },
+      "/studies/{id}/attachments/{name}/is-compressed" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Test whether the attachment has been stored as a compressed file on the disk.",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "`0` if the attachment was stored uncompressed, `1` if it was compressed"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Is attachment compressed?",
+            "tags" : [ "Studies" ]
+         }
+      },
+      "/studies/{id}/attachments/{name}/md5" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the MD5 hash of one attachment associated with the given study",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The MD5 of the attachment"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get MD5 of attachment",
+            "tags" : [ "Studies" ]
+         }
+      },
+      "/studies/{id}/attachments/{name}/size" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the size of one attachment associated with the given study",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The size of the attachment"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get size of attachment",
+            "tags" : [ "Studies" ]
+         }
+      },
+      "/studies/{id}/attachments/{name}/uncompress" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Change the compression scheme that is used to store an attachment.",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Uncompress attachment",
+            "tags" : [ "Studies" ]
+         }
+      },
+      "/studies/{id}/attachments/{name}/verify-md5" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Verify that the attachment is not corrupted, by validating its MD5 hash",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the attachment, or its index (cf. `UserContentType` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "On success, a valid JSON object is returned"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Verify attachment",
+            "tags" : [ "Studies" ]
+         }
+      },
+      "/studies/{id}/instances" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get detailed information about the child instances of the DICOM study whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "JSON array containing information about the child DICOM instances",
+                           "example" : [
+                              {
+                                 "FileSize" : 527858,
+                                 "FileUuid" : "42607af0-e2ca-402a-9cb4-8819a0485dbd",
+                                 "ID" : "82cc1a6b-7b05d34e-cd74474b-594f0d43-94f609d8",
+                                 "IndexInSeries" : 3,
+                                 "MainDicomTags" : {
+                                    "AcquisitionNumber" : "3",
+                                    "ImagePositionPatient" : "-118.20798927708\\-118.00763136239\\71.7517339810729",
+                                    "InstanceCreationDate" : "20061201",
+                                    "InstanceCreationTime" : "145313.000000",
+                                    "InstanceNumber" : "3",
+                                    "{...}" : "..."
+                                 },
+                                 "{...}" : "..."
+                              },
+                              {
+                                 "FileSize" : 527858,
+                                 "FileUuid" : "f986a0de-cf3b-4acc-a2ca-ce6a5844ec63",
+                                 "ID" : "2fbd6d5f-802f6561-b9d8da32-c54ead16-18a208bd",
+                                 "IndexInSeries" : 13,
+                                 "MainDicomTags" : {
+                                    "AcquisitionNumber" : "3",
+                                    "ImagePositionPatient" : "-116.77244740887\\-113.68593889565\\11.9247972592711",
+                                    "InstanceCreationDate" : "20061201",
+                                    "InstanceCreationTime" : "145313.000000",
+                                    "InstanceNumber" : "13",
+                                    "{...}" : "..."
+                                 },
+                                 "{...}" : "..."
+                              },
+                              {
+                                 "FileSize" : 527858,
+                                 "FileUuid" : "64cc6dae-228d-4e60-82ea-34c540a09cfb",
+                                 "ID" : "4dbca7c1-f6e1a582-b3196370-0151cac8-19caac8e",
+                                 "IndexInSeries" : 17,
+                                 "MainDicomTags" : {
+                                    "AcquisitionNumber" : "3",
+                                    "ImagePositionPatient" : "-116.19823080464\\-111.95726186127\\-12.005976177752",
+                                    "InstanceCreationDate" : "20061201",
+                                    "InstanceCreationTime" : "145313.000000",
+                                    "InstanceNumber" : "17",
+                                    "{...}" : "..."
+                                 },
+                                 "{...}" : "..."
+                              },
+                              {
+                                 "FileSize" : 527858,
+                                 "FileUuid" : "06823b17-6217-4534-b318-4de5c9157c74",
+                                 "ID" : "98c6f0c7-e6f9812b-d0a9df8a-97eeaa41-fa891d8e",
+                                 "IndexInSeries" : 6,
+                                 "MainDicomTags" : {
+                                    "AcquisitionNumber" : "3",
+                                    "ImagePositionPatient" : "-117.77732664509\\-116.71112352700\\53.8036520108580",
+                                    "InstanceCreationDate" : "20061201",
+                                    "InstanceCreationTime" : "145313.000000",
+                                    "InstanceNumber" : "6",
+                                    "{...}" : "..."
+                                 },
+                                 "{...}" : "..."
+                              },
+                              {
+                                 "FileSize" : 527858,
+                                 "FileUuid" : "7012f4ad-e1f7-49a8-95e0-5050227b4090",
+                                 "ID" : "c25f4e48-8f7d737e-3dbeafb5-f1563a30-eddf816c",
+                                 "IndexInSeries" : 20,
+                                 "MainDicomTags" : {
+                                    "AcquisitionNumber" : "3",
+                                    "ImagePositionPatient" : "-115.76756829186\\-110.66075450272\\-29.954057492315",
+                                    "InstanceCreationDate" : "20061201",
+                                    "InstanceCreationTime" : "145313.000000",
+                                    "InstanceNumber" : "20",
+                                    "{...}" : "..."
+                                 },
+                                 "{...}" : "..."
+                              },
+                              "..."
+                           ]
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get child instances",
+            "tags" : [ "Studies" ]
+         }
+      },
+      "/studies/{id}/instances-tags" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the tags of all the child instances of the DICOM study whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Also include the DICOM tags that are provided in this list, even if their associated value is long",
+                  "in" : "query",
+                  "name" : "ignore-length",
+                  "required" : false,
+                  "schema" : {
+                     "items" : {
+                        "type" : "string"
+                     },
+                     "type" : "array"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "JSON object associating the Orthanc identifiers of the instances, with the values of their DICOM tags",
+                           "example" : {
+                              "00330d0f-911e5e8d-1e305bae-e5c53b73-d2a49298" : {
+                                 "0008,0005" : {
+                                    "Name" : "SpecificCharacterSet",
+                                    "Type" : "String",
+                                    "Value" : "ISO_IR 100"
+                                 },
+                                 "0008,0008" : {
+                                    "Name" : "ImageType",
+                                    "Type" : "String",
+                                    "Value" : "ORIGINAL\\PRIMARY\\M_SE\\M\\SE"
+                                 },
+                                 "0008,0012" : {
+                                    "Name" : "InstanceCreationDate",
+                                    "Type" : "String",
+                                    "Value" : "20061201"
+                                 },
+                                 "0008,0013" : {
+                                    "Name" : "InstanceCreationTime",
+                                    "Type" : "String",
+                                    "Value" : "145331.000000"
+                                 },
+                                 "0008,0014" : {
+                                    "Name" : "InstanceCreatorUID",
+                                    "Type" : "String",
+                                    "Value" : "1.3.46.670589.11.8743.5"
+                                 },
+                                 "{...}" : "..."
+                              },
+                              "00402ce7-ac05c687-4d0839bc-cecd4fad-3d1b7eed" : {
+                                 "0008,0005" : {
+                                    "Name" : "SpecificCharacterSet",
+                                    "Type" : "String",
+                                    "Value" : "ISO_IR 100"
+                                 },
+                                 "0008,0008" : {
+                                    "Name" : "ImageType",
+                                    "Type" : "String",
+                                    "Value" : "ORIGINAL\\PRIMARY\\M_FFE\\M\\FFE"
+                                 },
+                                 "0008,0012" : {
+                                    "Name" : "InstanceCreationDate",
+                                    "Type" : "String",
+                                    "Value" : "20061201"
+                                 },
+                                 "0008,0013" : {
+                                    "Name" : "InstanceCreationTime",
+                                    "Type" : "String",
+                                    "Value" : "145326.000000"
+                                 },
+                                 "0008,0014" : {
+                                    "Name" : "InstanceCreatorUID",
+                                    "Type" : "String",
+                                    "Value" : "1.3.46.670589.11.8743.5"
+                                 },
+                                 "{...}" : "..."
+                              },
+                              "00ffd506-6460663a-cda9bddc-a0090c47-145ba829" : {
+                                 "0008,0005" : {
+                                    "Name" : "SpecificCharacterSet",
+                                    "Type" : "String",
+                                    "Value" : "ISO_IR 100"
+                                 },
+                                 "0008,0008" : {
+                                    "Name" : "ImageType",
+                                    "Type" : "String",
+                                    "Value" : "ORIGINAL\\PRIMARY\\M_FFE\\M\\FFE"
+                                 },
+                                 "0008,0012" : {
+                                    "Name" : "InstanceCreationDate",
+                                    "Type" : "String",
+                                    "Value" : "20061201"
+                                 },
+                                 "0008,0013" : {
+                                    "Name" : "InstanceCreationTime",
+                                    "Type" : "String",
+                                    "Value" : "145346.000000"
+                                 },
+                                 "0008,0014" : {
+                                    "Name" : "InstanceCreatorUID",
+                                    "Type" : "String",
+                                    "Value" : "1.3.46.670589.11.8743.5"
+                                 },
+                                 "{...}" : "..."
+                              },
+                              "01a6ffdc-335f82a7-c79360c2-2e6bbc35-d24ca33d" : {
+                                 "0008,0005" : {
+                                    "Name" : "SpecificCharacterSet",
+                                    "Type" : "String",
+                                    "Value" : "ISO_IR 100"
+                                 },
+                                 "0008,0008" : {
+                                    "Name" : "ImageType",
+                                    "Type" : "String",
+                                    "Value" : "ORIGINAL\\PRIMARY\\M_SE\\M\\SE"
+                                 },
+                                 "0008,0012" : {
+                                    "Name" : "InstanceCreationDate",
+                                    "Type" : "String",
+                                    "Value" : "20061201"
+                                 },
+                                 "0008,0013" : {
+                                    "Name" : "InstanceCreationTime",
+                                    "Type" : "String",
+                                    "Value" : "145313.000000"
+                                 },
+                                 "0008,0014" : {
+                                    "Name" : "InstanceCreatorUID",
+                                    "Type" : "String",
+                                    "Value" : "1.3.46.670589.11.8743.5"
+                                 },
+                                 "{...}" : "..."
+                              },
+                              "0577c66f-25d7cc30-bb763c60-53bb7ba0-72c8b018" : {
+                                 "0008,0005" : {
+                                    "Name" : "SpecificCharacterSet",
+                                    "Type" : "String",
+                                    "Value" : "ISO_IR 100"
+                                 },
+                                 "0008,0008" : {
+                                    "Name" : "ImageType",
+                                    "Type" : "String",
+                                    "Value" : "ORIGINAL\\PRIMARY\\M_FFE\\M\\FFE"
+                                 },
+                                 "0008,0012" : {
+                                    "Name" : "InstanceCreationDate",
+                                    "Type" : "String",
+                                    "Value" : "20061201"
+                                 },
+                                 "0008,0013" : {
+                                    "Name" : "InstanceCreationTime",
+                                    "Type" : "String",
+                                    "Value" : "145346.000000"
+                                 },
+                                 "0008,0014" : {
+                                    "Name" : "InstanceCreatorUID",
+                                    "Type" : "String",
+                                    "Value" : "1.3.46.670589.11.8743.5"
+                                 },
+                                 "{...}" : "..."
+                              },
+                              "{...}" : "..."
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get tags of instances",
+            "tags" : [ "Studies" ]
+         }
+      },
+      "/studies/{id}/media" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Synchronously create a DICOMDIR media containing the DICOM study whose Orthanc identifier is provided in the URL. This flavor is synchronous, which might *not* be desirable to archive large amount of data, as it might lead to network timeouts. Prefer the asynchronous version using `POST` method.",
+            "parameters" : [
+               {
+                  "description" : "If present, will include additional tags such as `SeriesDescription`, leading to a so-called *extended DICOMDIR*",
+                  "in" : "query",
+                  "name" : "extended",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "If present, the DICOM files in the archive will be transcoded to the provided transfer syntax: https://book.orthanc-server.com/faq/transcoding.html",
+                  "in" : "query",
+                  "name" : "transcode",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/zip" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "ZIP file containing the archive"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Create DICOMDIR media",
+            "tags" : [ "Studies" ]
+         },
+         "post" : {
+            "deprecated" : false,
+            "description" : "Create a DICOMDIR media containing the DICOM study whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "Asynchronous" : {
+                              "description" : "If `true`, create the archive in asynchronous mode, which means that a job is submitted to create the archive in background. Prefer this flavor wherever possible.",
+                              "type" : "boolean"
+                           },
+                           "Extended" : {
+                              "description" : "If `true`, will include additional tags such as `SeriesDescription`, leading to a so-called *extended DICOMDIR*. Default value is `false`.",
+                              "type" : "boolean"
+                           },
+                           "Priority" : {
+                              "description" : "In asynchronous mode, the priority of the job. The lower the value, the higher the priority.",
+                              "type" : "number"
+                           },
+                           "Synchronous" : {
+                              "description" : "If `true`, create the archive in synchronous mode, which means that the HTTP answer will directly contain the ZIP file. This is the default, easy behavior, but it is *not* be desirable to archive large amount of data, as it might lead to network timeouts.",
+                              "type" : "boolean"
+                           },
+                           "Transcode" : {
+                              "description" : "If present, the DICOM files in the archive will be transcoded to the provided transfer syntax: https://book.orthanc-server.com/faq/transcoding.html",
+                              "type" : "string"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "In asynchronous mode, information about the job that has been submitted to generate the archive: https://book.orthanc-server.com/users/advanced-rest.html#jobs",
+                           "properties" : {
+                              "ID" : {
+                                 "description" : "Identifier of the job",
+                                 "type" : "string"
+                              },
+                              "Path" : {
+                                 "description" : "Path to access the job in the REST API",
+                                 "type" : "string"
+                              }
+                           }
+                        }
+                     },
+                     "application/zip" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "In synchronous mode, the ZIP file containing the archive"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Create DICOMDIR media",
+            "tags" : [ "Studies" ]
+         }
+      },
+      "/studies/{id}/merge" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Start a new job so as to move some DICOM series into the DICOM study whose Orthanc identifier is provided in the URL: https://book.orthanc-server.com/users/anonymization.html#merging",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "Asynchronous" : {
+                              "description" : "If `true`, run the job in asynchronous mode, which means that the REST API call will immediately return, reporting the identifier of a job. Prefer this flavor wherever possible.",
+                              "type" : "boolean"
+                           },
+                           "KeepSource" : {
+                              "description" : "If set to `true`, instructs Orthanc to keep a copy of the original resources in their source study. By default, the original resources are deleted from Orthanc.",
+                              "type" : "boolean"
+                           },
+                           "Permissive" : {
+                              "description" : "If `true`, ignore errors during the individual steps of the job.",
+                              "type" : "boolean"
+                           },
+                           "Priority" : {
+                              "description" : "In asynchronous mode, the priority of the job. The lower the value, the higher the priority.",
+                              "type" : "number"
+                           },
+                           "Resources" : {
+                              "description" : "The list of DICOM resources (patients, studies, series, and/or instances) to be merged into the study of interest (mandatory option)",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           },
+                           "Synchronous" : {
+                              "description" : "If `true`, run the job in synchronous mode, which means that the HTTP answer will directly contain the result of the job. This is the default, easy behavior, but it is *not* desirable for long jobs, as it might lead to network timeouts.",
+                              "type" : "boolean"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "",
+                           "properties" : {
+                              "ID" : {
+                                 "description" : "In asynchronous mode, identifier of the job",
+                                 "type" : "string"
+                              },
+                              "Path" : {
+                                 "description" : "In asynchronous mode, path to access the job in the REST API",
+                                 "type" : "string"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Merge study",
+            "tags" : [ "Studies" ]
+         }
+      },
+      "/studies/{id}/metadata" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the list of metadata that are associated with the given study",
+            "parameters" : [
+               {
+                  "description" : "If present, also retrieve the value of the individual metadata",
+                  "in" : "query",
+                  "name" : "expand",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "JSON array containing the names of the available metadata, or JSON associative array mapping metadata to their values (if `expand` argument is provided)",
+                           "example" : [ "LastUpdate" ]
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "List metadata",
+            "tags" : [ "Studies" ]
+         }
+      },
+      "/studies/{id}/metadata/{name}" : {
+         "delete" : {
+            "deprecated" : false,
+            "description" : "Delete some metadata associated with the given DICOM study. This call will fail if trying to delete a system metadata (i.e. whose index is < 1024).",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the metadata, or its index (cf. `UserMetadata` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Delete metadata",
+            "tags" : [ "Studies" ]
+         },
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the value of a metadata that is associated with the given study",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the metadata, or its index (cf. `UserMetadata` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "Value of the metadata"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get metadata",
+            "tags" : [ "Studies" ]
+         },
+         "put" : {
+            "deprecated" : false,
+            "description" : "Set the value of some metadata in the given DICOM study. This call will fail if trying to modify a system metadata (i.e. whose index is < 1024).",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               },
+               {
+                  "description" : "The name of the metadata, or its index (cf. `UserMetadata` configuration option)",
+                  "in" : "path",
+                  "name" : "name",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "text/plain" : {
+                     "schema" : {
+                        "description" : "String value of the metadata"
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Set metadata",
+            "tags" : [ "Studies" ]
+         }
+      },
+      "/studies/{id}/modify" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Start a job that will modify all the DICOM instances within the study whose identifier is provided in the URL. The modified DICOM instances will be stored into a brand new study, whose Orthanc identifiers will be returned by the job. https://book.orthanc-server.com/users/anonymization.html#modification-of-studies-or-series",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "Asynchronous" : {
+                              "description" : "If `true`, run the job in asynchronous mode, which means that the REST API call will immediately return, reporting the identifier of a job. Prefer this flavor wherever possible.",
+                              "type" : "boolean"
+                           },
+                           "Force" : {
+                              "description" : "Allow the modification of tags related to DICOM identifiers, at the risk of breaking the DICOM model of the real world",
+                              "type" : "boolean"
+                           },
+                           "Keep" : {
+                              "description" : "Keep the original value of the specified tags, to be chosen among the `StudyInstanceUID`, `SeriesInstanceUID` and `SOPInstanceUID` tags. Avoid this feature as much as possible, as this breaks the DICOM model of the real world.",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           },
+                           "Permissive" : {
+                              "description" : "If `true`, ignore errors during the individual steps of the job.",
+                              "type" : "boolean"
+                           },
+                           "Priority" : {
+                              "description" : "In asynchronous mode, the priority of the job. The lower the value, the higher the priority.",
+                              "type" : "number"
+                           },
+                           "PrivateCreator" : {
+                              "description" : "The private creator to be used for private tags in `Replace`",
+                              "type" : "string"
+                           },
+                           "Remove" : {
+                              "description" : "List of tags that must be removed from the DICOM instances",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           },
+                           "RemovePrivateTags" : {
+                              "description" : "Remove the private tags from the DICOM instances (defaults to `false`)",
+                              "type" : "boolean"
+                           },
+                           "Replace" : {
+                              "description" : "Associative array to change the value of some DICOM tags in the DICOM instances",
+                              "type" : "object"
+                           },
+                           "Synchronous" : {
+                              "description" : "If `true`, run the job in synchronous mode, which means that the HTTP answer will directly contain the result of the job. This is the default, easy behavior, but it is *not* desirable for long jobs, as it might lead to network timeouts.",
+                              "type" : "boolean"
+                           },
+                           "Transcode" : {
+                              "description" : "Transcode the DICOM instances to the provided DICOM transfer syntax: https://book.orthanc-server.com/faq/transcoding.html",
+                              "type" : "string"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "",
+                           "properties" : {
+                              "ID" : {
+                                 "description" : "In asynchronous mode, identifier of the job",
+                                 "type" : "string"
+                              },
+                              "Path" : {
+                                 "description" : "In asynchronous mode, path to access the job in the REST API",
+                                 "type" : "string"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Modify study",
+            "tags" : [ "Studies" ]
+         }
+      },
+      "/studies/{id}/module" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the study module of the DICOM study whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Also include the DICOM tags that are provided in this list, even if their associated value is long",
+                  "in" : "query",
+                  "name" : "ignore-length",
+                  "required" : false,
+                  "schema" : {
+                     "items" : {
+                        "type" : "string"
+                     },
+                     "type" : "array"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "Information about the DICOM study",
+                           "example" : {
+                              "0008,0020" : {
+                                 "Name" : "StudyDate",
+                                 "Type" : "String",
+                                 "Value" : "20061201"
+                              },
+                              "0008,0030" : {
+                                 "Name" : "StudyTime",
+                                 "Type" : "String",
+                                 "Value" : "141645.000000"
+                              },
+                              "0008,0050" : {
+                                 "Name" : "AccessionNumber",
+                                 "Type" : "String",
+                                 "Value" : "0"
+                              },
+                              "0008,0090" : {
+                                 "Name" : "ReferringPhysicianName",
+                                 "Type" : "String",
+                                 "Value" : "dAEvNTxZJO0E"
+                              },
+                              "0008,1030" : {
+                                 "Name" : "StudyDescription",
+                                 "Type" : "String",
+                                 "Value" : "IRM cérébrale, neuro-crâne"
+                              },
+                              "0008,1032" : {
+                                 "Name" : "ProcedureCodeSequence",
+                                 "Type" : "Sequence",
+                                 "Value" : [
+                                    {
+                                       "0008,0100" : {
+                                          "Name" : "CodeValue",
+                                          "Type" : "String",
+                                          "Value" : "IRMCEREB"
+                                       },
+                                       "0008,0102" : {
+                                          "Name" : "CodingSchemeDesignator",
+                                          "Type" : "String",
+                                          "Value" : "XPLORE"
+                                       },
+                                       "0008,0104" : {
+                                          "Name" : "CodeMeaning",
+                                          "Type" : "String",
+                                          "Value" : "IRM cérébrale, neuro-crâne"
+                                       },
+                                       "0008,010b" : {
+                                          "Name" : "ContextGroupExtensionFlag",
+                                          "Type" : "String",
+                                          "Value" : "N"
+                                       }
+                                    }
+                                 ]
+                              },
+                              "0008,1110" : {
+                                 "Name" : "ReferencedStudySequence",
+                                 "Type" : "Sequence",
+                                 "Value" : [
+                                    {
+                                       "0008,1150" : {
+                                          "Name" : "ReferencedSOPClassUID",
+                                          "Type" : "String",
+                                          "Value" : "1.2.840.10008.3.1.2.3.1"
+                                       },
+                                       "0008,1155" : {
+                                          "Name" : "ReferencedSOPInstanceUID",
+                                          "Type" : "String",
+                                          "Value" : "2.16.840.1.113669.632.20.1211.10000357775"
+                                       }
+                                    }
+                                 ]
+                              },
+                              "0020,000d" : {
+                                 "Name" : "StudyInstanceUID",
+                                 "Type" : "String",
+                                 "Value" : "2.16.840.1.113669.632.20.1211.10000357775"
+                              },
+                              "0020,0010" : {
+                                 "Name" : "StudyID",
+                                 "Type" : "String",
+                                 "Value" : "218211405"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get study module",
+            "tags" : [ "Studies" ]
+         }
+      },
+      "/studies/{id}/module-patient" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the patient module of the DICOM study whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Also include the DICOM tags that are provided in this list, even if their associated value is long",
+                  "in" : "query",
+                  "name" : "ignore-length",
+                  "required" : false,
+                  "schema" : {
+                     "items" : {
+                        "type" : "string"
+                     },
+                     "type" : "array"
+                  }
+               },
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "Information about the DICOM study",
+                           "example" : {
+                              "0010,0010" : {
+                                 "Name" : "PatientName",
+                                 "Type" : "String",
+                                 "Value" : "BRAINIX"
+                              },
+                              "0010,0020" : {
+                                 "Name" : "PatientID",
+                                 "Type" : "String",
+                                 "Value" : "5Yp0E"
+                              },
+                              "0010,0030" : {
+                                 "Name" : "PatientBirthDate",
+                                 "Type" : "String",
+                                 "Value" : "19490301"
+                              },
+                              "0010,0040" : {
+                                 "Name" : "PatientSex",
+                                 "Type" : "String",
+                                 "Value" : "0000"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get patient module of study",
+            "tags" : [ "Studies" ]
+         }
+      },
+      "/studies/{id}/patient" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get detailed information about the parent patient of the DICOM study whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "Information about the parent DICOM patient",
+                           "example" : {
+                              "ID" : "16738bc3-e47ed42a-43ce044c-a3414a45-cb069bd0",
+                              "IsStable" : true,
+                              "LastUpdate" : "20180414T091532",
+                              "MainDicomTags" : {
+                                 "PatientBirthDate" : "19490301",
+                                 "PatientID" : "5Yp0E",
+                                 "PatientName" : "BRAINIX",
+                                 "PatientSex" : "0000"
+                              },
+                              "Studies" : [ "27f7126f-4f66fb14-03f4081b-f9341db2-53925988" ],
+                              "Type" : "Patient"
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get parent patient",
+            "tags" : [ "Studies" ]
+         }
+      },
+      "/studies/{id}/reconstruct" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Reconstruct the main DICOM tags of the study whose Orthanc identifier is provided in the URL. This is useful if child studies/series/instances have inconsistent values for higher-level tags, in order to force Orthanc to use the value from the resource of interest. Beware that this is a time-consuming operation, as all the children DICOM instances will be parsed again, and the Orthanc index will be updated accordingly.",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Reconstruct tags of study",
+            "tags" : [ "Studies" ]
+         }
+      },
+      "/studies/{id}/series" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get detailed information about the child series of the DICOM study whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "JSON array containing information about the child DICOM series",
+                           "example" : [
+                              {
+                                 "ExpectedNumberOfInstances" : null,
+                                 "ID" : "635faa23-fd8378ee-d03bce29-ee47c2fb-a65c5509",
+                                 "Instances" : [
+                                    "ed8aacd6-5d2cfad4-9e1a2f77-edf1cee5-8f3bdde0",
+                                    "7a93b85e-5956dbf9-894c1f27-dc73112f-4cbcda70",
+                                    "065baa49-a7b4e4a0-e7468f1d-e9b5bca8-56316fa2",
+                                    "ca69bc1a-a4fcc0a8-9e6828b0-c816dbaa-240fdc45",
+                                    "edd8ff85-9805d97a-2375f736-40662993-aef40418",
+                                    "..."
+                                 ],
+                                 "IsStable" : true,
+                                 "LastUpdate" : "20180414T091528",
+                                 "{...}" : "..."
+                              },
+                              {
+                                 "ExpectedNumberOfInstances" : null,
+                                 "ID" : "dc0216d2-a406a5ad-31ef7a78-113ae9d9-29939f9e",
+                                 "Instances" : [
+                                    "2cd73574-190bb147-0a86bcca-68c75104-d22f09dd",
+                                    "ff95b7c0-d14e3e42-d642eacd-281cb07c-4e0bbc8b",
+                                    "22384bf2-0bbe7bdb-013f6ff2-f7834e9f-3d8754bf",
+                                    "3e50a403-17c8ce10-6e0234e3-a8bed1bf-3dbc54ee",
+                                    "3db0ed84-61a28da4-72a52d5a-3f7daa77-b81ddf17",
+                                    "..."
+                                 ],
+                                 "IsStable" : true,
+                                 "LastUpdate" : "20180414T091530",
+                                 "{...}" : "..."
+                              },
+                              {
+                                 "ExpectedNumberOfInstances" : null,
+                                 "ID" : "1e2c125c-411b8e86-3f4fe68e-a7584dd3-c6da78f0",
+                                 "Instances" : [
+                                    "2db53a93-91179cd5-f2080c32-c9b156ec-b8f65fa7",
+                                    "9058e01a-31a7d982-1691e575-a8607d94-29a9aaca",
+                                    "40df6ac1-5ec86316-035ff3c1-07e5c8a8-f6cbd37c",
+                                    "144ca294-6e759cfb-e14e3404-e78a0a29-1dd3273c",
+                                    "3b2a215c-2560d4b0-e3730c07-87d3fa7d-3fef44ed",
+                                    "..."
+                                 ],
+                                 "IsStable" : true,
+                                 "LastUpdate" : "20180414T091530",
+                                 "{...}" : "..."
+                              },
+                              {
+                                 "ExpectedNumberOfInstances" : null,
+                                 "ID" : "4baa97c7-d53d3d82-a5eb9403-17ef5a77-4e0efb55",
+                                 "Instances" : [
+                                    "9b41ef96-b4031ffc-b1b7ea5d-8a38d55d-fe804601",
+                                    "8137542c-069dd229-d0226fba-f8c571cd-19c7b61a",
+                                    "985681e7-99cd2ce5-f7d79f12-27bfc29f-0e5a4d72",
+                                    "f0b9f0ab-110181f8-ce83a1a2-4d8eb2c9-0b682503",
+                                    "ef13019a-9edf339d-395d8632-558518bf-b82b1b21",
+                                    "..."
+                                 ],
+                                 "IsStable" : true,
+                                 "LastUpdate" : "20180414T091531",
+                                 "{...}" : "..."
+                              },
+                              {
+                                 "ExpectedNumberOfInstances" : null,
+                                 "ID" : "2ac1316d-3e432022-62eabff2-c59f5475-9b1ac3f8",
+                                 "Instances" : [
+                                    "61eeef27-cb5515a3-0860ab44-90125207-a56e6883",
+                                    "18bc4146-4bb09c43-e4080c80-19bfc186-6b3d7272",
+                                    "00402ce7-ac05c687-4d0839bc-cecd4fad-3d1b7eed",
+                                    "ea902bf2-6dc22ee9-e962333a-7ce2c27f-d684977e",
+                                    "8371936f-4141219a-ca7d69df-0d82697e-271eef91",
+                                    "..."
+                                 ],
+                                 "IsStable" : true,
+                                 "LastUpdate" : "20180414T091531",
+                                 "{...}" : "..."
+                              },
+                              "..."
+                           ]
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get child series",
+            "tags" : [ "Studies" ]
+         }
+      },
+      "/studies/{id}/shared-tags" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Extract the DICOM tags whose value is constant across all the child instances of the DICOM study whose Orthanc identifier is provided in the URL",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "JSON object containing the values of the DICOM tags",
+                           "example" : {
+                              "0008,0005" : {
+                                 "Name" : "SpecificCharacterSet",
+                                 "Type" : "String",
+                                 "Value" : "ISO_IR 100"
+                              },
+                              "0008,0012" : {
+                                 "Name" : "InstanceCreationDate",
+                                 "Type" : "String",
+                                 "Value" : "20061201"
+                              },
+                              "0008,0014" : {
+                                 "Name" : "InstanceCreatorUID",
+                                 "Type" : "String",
+                                 "Value" : "1.3.46.670589.11.8743.5"
+                              },
+                              "0008,0016" : {
+                                 "Name" : "SOPClassUID",
+                                 "Type" : "String",
+                                 "Value" : "1.2.840.10008.5.1.4.1.1.4"
+                              },
+                              "0008,0020" : {
+                                 "Name" : "StudyDate",
+                                 "Type" : "String",
+                                 "Value" : "20061201"
+                              },
+                              "{...}" : "..."
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get shared tags",
+            "tags" : [ "Studies" ]
+         }
+      },
+      "/studies/{id}/split" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Start a new job so as to split the DICOM study whose Orthanc identifier is provided in the URL, by taking some of its children series out of it and putting them into a brand new study (this new study is created by setting the `StudyInstanceUID` tag to a random identifier): https://book.orthanc-server.com/users/anonymization.html#splitting",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "Asynchronous" : {
+                              "description" : "If `true`, run the job in asynchronous mode, which means that the REST API call will immediately return, reporting the identifier of a job. Prefer this flavor wherever possible.",
+                              "type" : "boolean"
+                           },
+                           "KeepSource" : {
+                              "description" : "If set to `true`, instructs Orthanc to keep a copy of the original series in the source study. By default, the original series are deleted from Orthanc.",
+                              "type" : "boolean"
+                           },
+                           "Permissive" : {
+                              "description" : "If `true`, ignore errors during the individual steps of the job.",
+                              "type" : "boolean"
+                           },
+                           "Priority" : {
+                              "description" : "In asynchronous mode, the priority of the job. The lower the value, the higher the priority.",
+                              "type" : "number"
+                           },
+                           "Remove" : {
+                              "description" : "List of tags that must be removed in the new study (from the same modules as in the `Replace` option)",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           },
+                           "Replace" : {
+                              "description" : "Associative array to change the value of some DICOM tags in the new study. These tags must be part of the \"Patient Module Attributes\" or the \"General Study Module Attributes\", as specified by the DICOM 2011 standard in Tables C.7-1 and C.7-3.",
+                              "type" : "object"
+                           },
+                           "Series" : {
+                              "description" : "The list of series to be separated from the parent study (mandatory option). These series must all be children of the same source study, that is specified in the URI.",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           },
+                           "Synchronous" : {
+                              "description" : "If `true`, run the job in synchronous mode, which means that the HTTP answer will directly contain the result of the job. This is the default, easy behavior, but it is *not* desirable for long jobs, as it might lead to network timeouts.",
+                              "type" : "boolean"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "",
+                           "properties" : {
+                              "ID" : {
+                                 "description" : "In asynchronous mode, identifier of the job",
+                                 "type" : "string"
+                              },
+                              "Path" : {
+                                 "description" : "In asynchronous mode, path to access the job in the REST API",
+                                 "type" : "string"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Split study",
+            "tags" : [ "Studies" ]
+         }
+      },
+      "/studies/{id}/statistics" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get statistics about the given study",
+            "parameters" : [
+               {
+                  "description" : "Orthanc identifier of the study of interest",
+                  "in" : "path",
+                  "name" : "id",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "",
+                           "example" : {
+                              "CountInstances" : 232,
+                              "CountSeries" : 7,
+                              "DicomDiskSize" : "68153234",
+                              "DicomDiskSizeMB" : 64,
+                              "DicomUncompressedSize" : "68153234",
+                              "DicomUncompressedSizeMB" : 64,
+                              "DiskSize" : "72203548",
+                              "DiskSizeMB" : 68,
+                              "UncompressedSize" : "72203548",
+                              "UncompressedSizeMB" : 68
+                           },
+                           "properties" : {
+                              "CountInstances" : {
+                                 "description" : "Number of child instances within this study",
+                                 "type" : "number"
+                              },
+                              "CountSeries" : {
+                                 "description" : "Number of child series within this study",
+                                 "type" : "number"
+                              },
+                              "DicomDiskSize" : {
+                                 "description" : "Size on the disk of the DICOM instances associated with the study, expressed in bytes",
+                                 "type" : "string"
+                              },
+                              "DicomDiskSizeMB" : {
+                                 "description" : "Size on the disk of the DICOM instances associated with the study, expressed in megabytes (MB)",
+                                 "type" : "number"
+                              },
+                              "DicomUncompressedSize" : {
+                                 "description" : "Size on the disk of the uncompressed DICOM instances associated with the study, expressed in bytes",
+                                 "type" : "string"
+                              },
+                              "DicomUncompressedSizeMB" : {
+                                 "description" : "Size on the disk of the uncompressed DICOM instances associated with the study, expressed in megabytes (MB)",
+                                 "type" : "number"
+                              },
+                              "DiskSize" : {
+                                 "description" : "Size of the study on the disk in bytes, expressed as a string for 64bit compatibility with JSON",
+                                 "type" : "string"
+                              },
+                              "DiskSizeMB" : {
+                                 "description" : "Size of the study on the disk, expressed in megabytes (MB)",
+                                 "type" : "number"
+                              },
+                              "UncompressedSize" : {
+                                 "description" : "Size of the study after decompression in bytes, expressed as a string for 64bit compatibility with JSON",
+                                 "type" : "string"
+                              },
+                              "UncompressedSizeMB" : {
+                                 "description" : "Size of the study after decompression, expressed in megabytes (MB). This is different from `DiskSizeMB` iff `StorageCompression` is `true`.",
+                                 "type" : "number"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get study statistics",
+            "tags" : [ "Studies" ]
+         }
+      },
+      "/system" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get system information about Orthanc",
+            "parameters" : [],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "",
+                           "example" : {
+                              "ApiVersion" : 9,
+                              "DatabaseBackendPlugin" : null,
+                              "DatabaseVersion" : 6,
+                              "DicomAet" : "ORTHANC",
+                              "DicomPort" : 4242,
+                              "HttpPort" : 8042,
+                              "IsHttpServerSecure" : false,
+                              "Name" : "Orthanc Demo",
+                              "PluginsEnabled" : true,
+                              "StorageAreaPlugin" : null,
+                              "Version" : "1.8.2"
+                           },
+                           "properties" : {
+                              "ApiVersion" : {
+                                 "description" : "Version of the REST API",
+                                 "type" : "number"
+                              },
+                              "DatabaseBackendPlugin" : {
+                                 "description" : "Information about the installed database index plugin (`null` if no such plugin is installed)",
+                                 "type" : "string"
+                              },
+                              "DatabaseVersion" : {
+                                 "description" : "Version of the database: https://book.orthanc-server.com/developers/db-versioning.html",
+                                 "type" : "number"
+                              },
+                              "DicomAet" : {
+                                 "description" : "The DICOM AET of Orthanc",
+                                 "type" : "string"
+                              },
+                              "DicomPort" : {
+                                 "description" : "The port to the DICOM server of Orthanc",
+                                 "type" : "number"
+                              },
+                              "HttpPort" : {
+                                 "description" : "The port to the HTTP server of Orthanc",
+                                 "type" : "number"
+                              },
+                              "IsHttpServerSecure" : {
+                                 "description" : "Whether the REST API is properly secured (assuming no reverse proxy is in use): https://book.orthanc-server.com/faq/security.html#securing-the-http-server",
+                                 "type" : "boolean"
+                              },
+                              "Name" : {
+                                 "description" : "The name of the Orthanc server, cf. the `Name` configuration option",
+                                 "type" : "string"
+                              },
+                              "PluginsEnabled" : {
+                                 "description" : "Whether Orthanc was built with support for plugins",
+                                 "type" : "boolean"
+                              },
+                              "StorageAreaPlugin" : {
+                                 "description" : "Information about the installed storage area plugin (`null` if no such plugin is installed)",
+                                 "type" : "string"
+                              },
+                              "Version" : {
+                                 "description" : "Version of Orthanc",
+                                 "type" : "string"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get system information",
+            "tags" : [ "System" ]
+         }
+      },
+      "/tools" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "List the available operations under URI `/tools/`",
+            "parameters" : [],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "schema" : {
+                           "description" : "List of the available operations",
+                           "example" : [
+                              "create-archive",
+                              "create-dicom",
+                              "create-media",
+                              "create-media-extended",
+                              "default-encoding",
+                              "dicom-conformance",
+                              "dicom-echo",
+                              "execute-script",
+                              "find",
+                              "generate-uid",
+                              "invalidate-tags",
+                              "log-level",
+                              "log-level-dicom",
+                              "log-level-generic",
+                              "log-level-http",
+                              "log-level-jobs",
+                              "log-level-lua",
+                              "log-level-plugins",
+                              "log-level-sqlite",
+                              "lookup",
+                              "metrics",
+                              "metrics-prometheus",
+                              "now",
+                              "now-local",
+                              "reconstruct",
+                              "reset",
+                              "shutdown"
+                           ]
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "List operations",
+            "tags" : [ "Other" ]
+         }
+      },
+      "/tools/create-archive" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Create a ZIP archive containing the DICOM resources (patients, studies, series, or instances) whose Orthanc identifiers are provided in the body",
+            "parameters" : [],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "Asynchronous" : {
+                              "description" : "If `true`, create the archive in asynchronous mode, which means that a job is submitted to create the archive in background. Prefer this flavor wherever possible.",
+                              "type" : "boolean"
+                           },
+                           "Priority" : {
+                              "description" : "In asynchronous mode, the priority of the job. The lower the value, the higher the priority.",
+                              "type" : "number"
+                           },
+                           "Resources" : {
+                              "description" : "The list of Orthanc identifiers of interest.",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           },
+                           "Synchronous" : {
+                              "description" : "If `true`, create the archive in synchronous mode, which means that the HTTP answer will directly contain the ZIP file. This is the default, easy behavior, but it is *not* be desirable to archive large amount of data, as it might lead to network timeouts.",
+                              "type" : "boolean"
+                           },
+                           "Transcode" : {
+                              "description" : "If present, the DICOM files in the archive will be transcoded to the provided transfer syntax: https://book.orthanc-server.com/faq/transcoding.html",
+                              "type" : "string"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "In asynchronous mode, information about the job that has been submitted to generate the archive: https://book.orthanc-server.com/users/advanced-rest.html#jobs",
+                           "properties" : {
+                              "ID" : {
+                                 "description" : "Identifier of the job",
+                                 "type" : "string"
+                              },
+                              "Path" : {
+                                 "description" : "Path to access the job in the REST API",
+                                 "type" : "string"
+                              }
+                           }
+                        }
+                     },
+                     "application/zip" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "In synchronous mode, the ZIP file containing the archive"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Create ZIP archive",
+            "tags" : [ "System" ]
+         }
+      },
+      "/tools/create-dicom" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Create one DICOM instance, and store it into Orthanc",
+            "parameters" : [],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "Content" : {
+                              "description" : "This field can be used to embed an image (pixel data) or a PDF inside the created DICOM instance. The PNG image, the JPEG image or the PDF file must be provided using their [data URI scheme encoding](https://en.wikipedia.org/wiki/Data_URI_scheme). This field can possibly contain a JSON array, in which case a DICOM series is created containing one DICOM instance for each item in the `Content` field.",
+                              "type" : "string"
+                           },
+                           "InterpretBinaryTags" : {
+                              "description" : "If some value in the `Tags` associative array is formatted according to some [data URI scheme encoding](https://en.wikipedia.org/wiki/Data_URI_scheme), whether this value is decoded to a binary value or kept as such (`true` by default)",
+                              "type" : "boolean"
+                           },
+                           "Parent" : {
+                              "description" : "If present, the newly created instance will be attached to the parent DICOM resource whose Orthanc identifier is contained in this field. The DICOM tags of the parent modules in the DICOM hierarchy will be automatically copied to the newly created instance.",
+                              "type" : "string"
+                           },
+                           "PrivateCreator" : {
+                              "description" : "The private creator to be used for private tags in `Tags`",
+                              "type" : "string"
+                           },
+                           "Tags" : {
+                              "description" : "Associative array containing the tags of the new instance to be created",
+                              "type" : "object"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "",
+                           "properties" : {
+                              "ID" : {
+                                 "description" : "Orthanc identifier of the newly created instance",
+                                 "type" : "string"
+                              },
+                              "Path" : {
+                                 "description" : "Path to access the instance in the REST API",
+                                 "type" : "string"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Create one DICOM instance",
+            "tags" : [ "System" ]
+         }
+      },
+      "/tools/create-media" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Create a DICOMDIR media containing the DICOM resources (patients, studies, series, or instances) whose Orthanc identifiers are provided in the body",
+            "parameters" : [],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "Asynchronous" : {
+                              "description" : "If `true`, create the archive in asynchronous mode, which means that a job is submitted to create the archive in background. Prefer this flavor wherever possible.",
+                              "type" : "boolean"
+                           },
+                           "Extended" : {
+                              "description" : "If `true`, will include additional tags such as `SeriesDescription`, leading to a so-called *extended DICOMDIR*. Default value is `false`.",
+                              "type" : "boolean"
+                           },
+                           "Priority" : {
+                              "description" : "In asynchronous mode, the priority of the job. The lower the value, the higher the priority.",
+                              "type" : "number"
+                           },
+                           "Resources" : {
+                              "description" : "The list of Orthanc identifiers of interest.",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           },
+                           "Synchronous" : {
+                              "description" : "If `true`, create the archive in synchronous mode, which means that the HTTP answer will directly contain the ZIP file. This is the default, easy behavior, but it is *not* be desirable to archive large amount of data, as it might lead to network timeouts.",
+                              "type" : "boolean"
+                           },
+                           "Transcode" : {
+                              "description" : "If present, the DICOM files in the archive will be transcoded to the provided transfer syntax: https://book.orthanc-server.com/faq/transcoding.html",
+                              "type" : "string"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "In asynchronous mode, information about the job that has been submitted to generate the archive: https://book.orthanc-server.com/users/advanced-rest.html#jobs",
+                           "properties" : {
+                              "ID" : {
+                                 "description" : "Identifier of the job",
+                                 "type" : "string"
+                              },
+                              "Path" : {
+                                 "description" : "Path to access the job in the REST API",
+                                 "type" : "string"
+                              }
+                           }
+                        }
+                     },
+                     "application/zip" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "In synchronous mode, the ZIP file containing the archive"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Create DICOMDIR media",
+            "tags" : [ "System" ]
+         }
+      },
+      "/tools/create-media-extended" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Create a DICOMDIR media containing the DICOM resources (patients, studies, series, or instances) whose Orthanc identifiers are provided in the body",
+            "parameters" : [],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "Asynchronous" : {
+                              "description" : "If `true`, create the archive in asynchronous mode, which means that a job is submitted to create the archive in background. Prefer this flavor wherever possible.",
+                              "type" : "boolean"
+                           },
+                           "Extended" : {
+                              "description" : "If `true`, will include additional tags such as `SeriesDescription`, leading to a so-called *extended DICOMDIR*. Default value is `true`.",
+                              "type" : "boolean"
+                           },
+                           "Priority" : {
+                              "description" : "In asynchronous mode, the priority of the job. The lower the value, the higher the priority.",
+                              "type" : "number"
+                           },
+                           "Resources" : {
+                              "description" : "The list of Orthanc identifiers of interest.",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           },
+                           "Synchronous" : {
+                              "description" : "If `true`, create the archive in synchronous mode, which means that the HTTP answer will directly contain the ZIP file. This is the default, easy behavior, but it is *not* be desirable to archive large amount of data, as it might lead to network timeouts.",
+                              "type" : "boolean"
+                           },
+                           "Transcode" : {
+                              "description" : "If present, the DICOM files in the archive will be transcoded to the provided transfer syntax: https://book.orthanc-server.com/faq/transcoding.html",
+                              "type" : "string"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "In asynchronous mode, information about the job that has been submitted to generate the archive: https://book.orthanc-server.com/users/advanced-rest.html#jobs",
+                           "properties" : {
+                              "ID" : {
+                                 "description" : "Identifier of the job",
+                                 "type" : "string"
+                              },
+                              "Path" : {
+                                 "description" : "Path to access the job in the REST API",
+                                 "type" : "string"
+                              }
+                           }
+                        }
+                     },
+                     "application/zip" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "In synchronous mode, the ZIP file containing the archive"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Create DICOMDIR media",
+            "tags" : [ "System" ]
+         }
+      },
+      "/tools/default-encoding" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the default encoding that is used by Orthanc if parsing a DICOM instance without the `SpecificCharacterEncoding` tag, or during C-FIND. This corresponds to the configuration option `DefaultEncoding`.",
+            "parameters" : [],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The name of the encoding"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get default encoding",
+            "tags" : [ "System" ]
+         },
+         "put" : {
+            "deprecated" : false,
+            "description" : "Change the default encoding that is used by Orthanc if parsing a DICOM instance without the `SpecificCharacterEncoding` tag, or during C-FIND. This corresponds to the configuration option `DefaultEncoding`.",
+            "parameters" : [],
+            "requestBody" : {
+               "content" : {
+                  "text/plain" : {
+                     "schema" : {
+                        "description" : "The name of the encoding. Check out configuration option `DefaultEncoding` for the allowed values."
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Set default encoding",
+            "tags" : [ "System" ]
+         }
+      },
+      "/tools/dicom-conformance" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the DICOM conformance statement of Orthanc",
+            "parameters" : [],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The DICOM conformance statement"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get DICOM conformance",
+            "tags" : [ "System" ]
+         }
+      },
+      "/tools/dicom-echo" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Trigger C-ECHO SCU command against a DICOM modality described in the POST body, without having to register the modality in some `/modalities/{id}` (new in Orthanc 1.8.1)",
+            "parameters" : [],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "AET" : {
+                              "description" : "AET of the remote DICOM modality",
+                              "type" : "string"
+                           },
+                           "CheckFind" : {
+                              "description" : "Issue a dummy C-FIND command after the C-GET SCU, in order to check whether the remote modality knows about Orthanc. This field defaults to the value of the `DicomEchoChecksFind` configuration option. New in Orthanc 1.8.1.",
+                              "type" : "boolean"
+                           },
+                           "Host" : {
+                              "description" : "Host address of the remote DICOM modality (typically, an IP address)",
+                              "type" : "string"
+                           },
+                           "Manufacturer" : {
+                              "description" : "Manufacturer of the remote DICOM modality (check configuration option `DicomModalities` for possible values",
+                              "type" : "string"
+                           },
+                           "Port" : {
+                              "description" : "TCP port of the remote DICOM modality",
+                              "type" : "number"
+                           },
+                           "Timeout" : {
+                              "description" : "Timeout for the C-ECHO command, in seconds",
+                              "type" : "number"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Trigger C-ECHO SCU",
+            "tags" : [ "System" ]
+         }
+      },
+      "/tools/execute-script" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Execute the provided Lua script by the Orthanc server. This is very insecure for Orthanc servers that are remotely accessible, cf. configuration option `ExecuteLuaEnabled`",
+            "parameters" : [],
+            "requestBody" : {
+               "content" : {
+                  "text/plain" : {
+                     "schema" : {
+                        "description" : "The Lua script to be executed"
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "Output of the Lua script"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Execute Lua script",
+            "tags" : [ "System" ]
+         }
+      },
+      "/tools/find" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "This URI can be used to perform a search on the content of the local Orthanc server, in a way that is similar to querying remote DICOM modalities using C-FIND SCU: https://book.orthanc-server.com/users/rest.html#performing-finds-within-orthanc",
+            "parameters" : [],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "CaseSensitive" : {
+                              "description" : "Enable case-sensitive search for PN value representations (defaults to configuration option `CaseSensitivePN`)",
+                              "type" : "boolean"
+                           },
+                           "Expand" : {
+                              "description" : "Also retrieve the content of the matching resources, not only their Orthanc identifiers",
+                              "type" : "boolean"
+                           },
+                           "Level" : {
+                              "description" : "Level of the query (`Patient`, `Study`, `Series` or `Instance`)",
+                              "type" : "string"
+                           },
+                           "Limit" : {
+                              "description" : "Limit the number of reported resources",
+                              "type" : "number"
+                           },
+                           "Query" : {
+                              "description" : "Associative array containing the filter on the values of the DICOM tags",
+                              "type" : "object"
+                           },
+                           "Since" : {
+                              "description" : "Show only the resources since the provided index (in conjunction with `Limit`)",
+                              "type" : "number"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "JSON array containing either the Orthanc identifiers, or detailed information about the reported resources (if `Expand` argument is `true`)"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Look for local resources",
+            "tags" : [ "System" ]
+         }
+      },
+      "/tools/generate-uid" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Generate a random DICOM identifier",
+            "parameters" : [
+               {
+                  "description" : "Type of DICOM resource among: `patient`, `study`, `series` or `instance`",
+                  "in" : "query",
+                  "name" : "level",
+                  "required" : true,
+                  "schema" : {
+                     "type" : "string"
+                  }
+               }
+            ],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The generated identifier"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Generate an identifier",
+            "tags" : [ "System" ]
+         }
+      },
+      "/tools/invalidate-tags" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Remove all the attachments of the type \"DICOM-as-JSON\" that are associated will all the DICOM instances stored in Orthanc. These summaries will be automatically re-created on the next access. This is notably useful after changes to the `Dictionary` configuration option. https://book.orthanc-server.com/faq/orthanc-storage.html#storage-area",
+            "parameters" : [],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Invalidate DICOM-as-JSON summaries",
+            "tags" : [ "System" ]
+         }
+      },
+      "/tools/log-level" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the main log level of Orthanc",
+            "parameters" : [],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "Possible values: `default`, `verbose` or `trace`"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get main log level",
+            "tags" : [ "Logs" ]
+         },
+         "put" : {
+            "deprecated" : false,
+            "description" : "Set the main log level of Orthanc",
+            "parameters" : [],
+            "requestBody" : {
+               "content" : {
+                  "text/plain" : {
+                     "schema" : {
+                        "description" : "Possible values: `default`, `verbose` or `trace`"
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Set main log level",
+            "tags" : [ "Logs" ]
+         }
+      },
+      "/tools/log-level-dicom" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the log level of the log category `dicom`",
+            "parameters" : [],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "Possible values: `default`, `verbose` or `trace`"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get log level for `dicom`",
+            "tags" : [ "Logs" ]
+         },
+         "put" : {
+            "deprecated" : false,
+            "description" : "Set the log level of the log category `dicom`",
+            "parameters" : [],
+            "requestBody" : {
+               "content" : {
+                  "text/plain" : {
+                     "schema" : {
+                        "description" : "Possible values: `default`, `verbose` or `trace`"
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Set log level for `dicom`",
+            "tags" : [ "Logs" ]
+         }
+      },
+      "/tools/log-level-generic" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the log level of the log category `generic`",
+            "parameters" : [],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "Possible values: `default`, `verbose` or `trace`"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get log level for `generic`",
+            "tags" : [ "Logs" ]
+         },
+         "put" : {
+            "deprecated" : false,
+            "description" : "Set the log level of the log category `generic`",
+            "parameters" : [],
+            "requestBody" : {
+               "content" : {
+                  "text/plain" : {
+                     "schema" : {
+                        "description" : "Possible values: `default`, `verbose` or `trace`"
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Set log level for `generic`",
+            "tags" : [ "Logs" ]
+         }
+      },
+      "/tools/log-level-http" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the log level of the log category `http`",
+            "parameters" : [],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "Possible values: `default`, `verbose` or `trace`"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get log level for `http`",
+            "tags" : [ "Logs" ]
+         },
+         "put" : {
+            "deprecated" : false,
+            "description" : "Set the log level of the log category `http`",
+            "parameters" : [],
+            "requestBody" : {
+               "content" : {
+                  "text/plain" : {
+                     "schema" : {
+                        "description" : "Possible values: `default`, `verbose` or `trace`"
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Set log level for `http`",
+            "tags" : [ "Logs" ]
+         }
+      },
+      "/tools/log-level-jobs" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the log level of the log category `jobs`",
+            "parameters" : [],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "Possible values: `default`, `verbose` or `trace`"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get log level for `jobs`",
+            "tags" : [ "Logs" ]
+         },
+         "put" : {
+            "deprecated" : false,
+            "description" : "Set the log level of the log category `jobs`",
+            "parameters" : [],
+            "requestBody" : {
+               "content" : {
+                  "text/plain" : {
+                     "schema" : {
+                        "description" : "Possible values: `default`, `verbose` or `trace`"
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Set log level for `jobs`",
+            "tags" : [ "Logs" ]
+         }
+      },
+      "/tools/log-level-lua" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the log level of the log category `lua`",
+            "parameters" : [],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "Possible values: `default`, `verbose` or `trace`"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get log level for `lua`",
+            "tags" : [ "Logs" ]
+         },
+         "put" : {
+            "deprecated" : false,
+            "description" : "Set the log level of the log category `lua`",
+            "parameters" : [],
+            "requestBody" : {
+               "content" : {
+                  "text/plain" : {
+                     "schema" : {
+                        "description" : "Possible values: `default`, `verbose` or `trace`"
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Set log level for `lua`",
+            "tags" : [ "Logs" ]
+         }
+      },
+      "/tools/log-level-plugins" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the log level of the log category `plugins`",
+            "parameters" : [],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "Possible values: `default`, `verbose` or `trace`"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get log level for `plugins`",
+            "tags" : [ "Logs" ]
+         },
+         "put" : {
+            "deprecated" : false,
+            "description" : "Set the log level of the log category `plugins`",
+            "parameters" : [],
+            "requestBody" : {
+               "content" : {
+                  "text/plain" : {
+                     "schema" : {
+                        "description" : "Possible values: `default`, `verbose` or `trace`"
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Set log level for `plugins`",
+            "tags" : [ "Logs" ]
+         }
+      },
+      "/tools/log-level-sqlite" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get the log level of the log category `sqlite`",
+            "parameters" : [],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "Possible values: `default`, `verbose` or `trace`"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get log level for `sqlite`",
+            "tags" : [ "Logs" ]
+         },
+         "put" : {
+            "deprecated" : false,
+            "description" : "Set the log level of the log category `sqlite`",
+            "parameters" : [],
+            "requestBody" : {
+               "content" : {
+                  "text/plain" : {
+                     "schema" : {
+                        "description" : "Possible values: `default`, `verbose` or `trace`"
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Set log level for `sqlite`",
+            "tags" : [ "Logs" ]
+         }
+      },
+      "/tools/lookup" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "This URI can be used to convert one DICOM identifier to a list of matching Orthanc resources",
+            "parameters" : [],
+            "requestBody" : {
+               "content" : {
+                  "text/plain" : {
+                     "schema" : {
+                        "description" : "The DICOM identifier of interest (i.e. the value of `PatientID`, `StudyInstanceUID`, `SeriesInstanceUID`, or `SOPInstanceUID`)"
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "JSON array containing a list of matching Orthanc resources, each item in the list corresponding to a JSON object with the fields `Type`, `ID` and `Path` identifying one DICOM resource that is stored by Orthanc"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Look for DICOM identifiers",
+            "tags" : [ "System" ]
+         }
+      },
+      "/tools/metrics" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Returns a Boolean specifying whether Prometheus metrics are collected and exposed at `/tools/metrics-prometheus`",
+            "parameters" : [],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "`1` if metrics are collected, `0` if metrics are disabled"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Are metrics collected?",
+            "tags" : [ "System" ]
+         },
+         "put" : {
+            "deprecated" : false,
+            "description" : "Enable or disable the collection and publication of metrics at `/tools/metrics-prometheus`",
+            "parameters" : [],
+            "requestBody" : {
+               "content" : {
+                  "text/plain" : {
+                     "schema" : {
+                        "description" : "`1` if metrics are collected, `0` if metrics are disabled"
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Enable collection of metrics",
+            "tags" : [ "System" ]
+         }
+      },
+      "/tools/metrics-prometheus" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get usage metrics of Orthanc in the Prometheus file format (OpenMetrics): https://book.orthanc-server.com/users/advanced-rest.html#instrumentation-with-prometheus",
+            "parameters" : [],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "example" : "orthanc_count_instances 2552 1609310738535\northanc_count_patients 8 1609310738535\northanc_count_series 26 1609310738535\northanc_count_studies 8 1609310738535\northanc_disk_size_mb 1018.65021 1609310738535\northanc_jobs_completed 10 1609310738535\northanc_jobs_failed 0 1609310738535\northanc_jobs_pending 0 1609310738535\northanc_jobs_running 0 1609310738535\northanc_jobs_success 10 1609310738535\northanc_rest_api_active_requests 1 1609310738534\northanc_rest_api_duration_ms 305 1609310737152\northanc_storage_read_duration_ms 2 1609310732748\northanc_uncompressed_size_mb 1018.65021 1609310738535\n"
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get usage metrics",
+            "tags" : [ "System" ]
+         }
+      },
+      "/tools/now" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get UTC time",
+            "parameters" : [],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "example" : "20201230T064538",
+                        "schema" : {
+                           "description" : "The UTC time"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get UTC time",
+            "tags" : [ "System" ]
+         }
+      },
+      "/tools/now-local" : {
+         "get" : {
+            "deprecated" : false,
+            "description" : "Get local time",
+            "parameters" : [],
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "text/plain" : {
+                        "example" : "20201230T064538",
+                        "schema" : {
+                           "description" : "The local time"
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Get local time",
+            "tags" : [ "System" ]
+         }
+      },
+      "/tools/reconstruct" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Reconstruct the index of all the tags of all the DICOM instances that are stored in Orthanc. This is notably useful after the deletion of resources whose children resources have inconsistent values with their sibling resources. Beware that this is a highly time-consuming operation, as all the DICOM instances will be parsed again, and as all the Orthanc index will be regenerated.",
+            "parameters" : [],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Reconstruct all the index",
+            "tags" : [ "System" ]
+         }
+      },
+      "/tools/reset" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Restart Orthanc",
+            "parameters" : [],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Restart Orthanc",
+            "tags" : [ "System" ]
+         }
+      },
+      "/tools/shutdown" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Shutdown Orthanc",
+            "parameters" : [],
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Shutdown Orthanc",
+            "tags" : [ "System" ]
+         }
+      }
+   },
+   "servers" : [
+      {
+         "url" : "https://demo.orthanc-server.com/"
+      }
+   ]
+}
--- a/OpenAPI/orthanc-openapi.yaml	Wed Dec 30 07:28:25 2020 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2537 +0,0 @@
-openapi: 3.0.0
-info:
-  title: Orthanc
-  version: 1.0.0
-  description: >-
-    One of the major strengths of Orthanc lies in its built-in RESTful API, that can be used to drive Orthanc from external applications, independently of the programming language that is used to develop these applications. The REST API of Orthanc gives a full programmatic access to all the core features of Orthanc. Importantly, Orthanc Explorer (the embedded administrative interface of Orthanc) entirely resorts to this REST API for all its features. This implies that anything that can be done through Orthanc Explorer, can also be done through REST queries.<p>
-    This documentation is <b>work-in-progress</b>: The entire REST API is not covered yet. Please contribute by improving the source code of the documentation: https://bitbucket.org/sjodogne/orthanc-book/src/default/
-servers:
-  - url: 'https://demo.orthanc-server.com'
-components:
-
-####################################################################################
-## SCHEMAS / MODELS
-####################################################################################
-
-  schemas:
-    patient:
-      properties:
-        ID:
-          type: string
-        Studies:
-          type: array
-          items:
-            type: string
-        MainDicomTags:
-          type: object
-          properties:
-            OtherPatientIDs:
-              type: string
-            PatientBirthDate:
-              type: string
-            PatientName:
-              type: string
-            PatientSex:
-              type: string
-        ParentPatient:
-              type: string
-        Type:
-          type: string
-          enum:
-            - Patient
-      example: {
-        "ID" : "07a6ec1c-1be5920b-18ef5358-d24441f3-10e926ea",
-        "MainDicomTags" : {
-          "OtherPatientIDs" : "(null)",
-          "PatientBirthDate" : "0",
-          "PatientID" : "000000185",
-          "PatientName" : "Anonymous^Unknown",
-          "PatientSex" : "O"
-        },
-        "Studies" : [ "9ad2b0da-a406c43c-6e0df76d-1204b86f-78d12c15" ],
-        "Type" : "Patient"
-      }
-    study:
-      properties:
-        ID:
-          type: string
-        Series:
-          type: array
-          items:
-            type: string
-        MainDicomTags:
-          type: object
-          properties:
-            AccesionNumber:
-              type: string
-            StudyDate:
-              type: string
-            StudyDescription:
-              type: string
-            StudyID:
-              type: string
-            StudyInstanceUID:
-              type: string
-            StudyTime:
-              type: string
-        ParentPatient:
-              type: string
-        Type:
-          type: string
-          enum:
-            - Study
-      example: {
-        "ID" : "9ad2b0da-a406c43c-6e0df76d-1204b86f-78d12c15",
-        "MainDicomTags" : {
-          "AccessionNumber" : "(null)",
-          "StudyDate" : "20120716",
-          "StudyDescription" : "TestSUVce-TF",
-          "StudyID" : "23848",
-          "StudyInstanceUID" : "1.2.840.113704.1.111.7016.1342451220.40",
-          "StudyTime" : "170728"
-        },
-        "ParentPatient" : "07a6ec1c-1be5920b-18ef5358-d24441f3-10e926ea",
-        "Series" : [
-          "6821d761-31fb55a9-031ebecb-ba7f9aae-ffe4ddc0",
-          "2cc6336f-2d4ae733-537b3ca3-e98184b1-ba494b35",
-          "7384c47e-6398f2a8-901846ef-da1e2e0b-6c50d598"
-        ],
-        "Type" : "Study"
-      }
-    series:
-      properties:
-        ID:
-          type: string
-        ExpectedNumberOfInstances:
-          type: number
-        Instances:
-          type: array
-          items:
-            type: string
-        MainDicomTags:
-          type: object
-          properties:
-            Manufacturer:
-              type: string
-            Modality:
-              type: string
-            NumberOfSlices:
-              type: string
-            ProtocolName:
-              type: string
-            SeriesDate:
-              type: string
-            SeriesDescription:
-              type: string
-            SeriesInstanceUID:
-              type: string
-            SeriesNumber:
-              type: string
-            SeriesTime:
-              type: string
-            StationName:
-              type: string
-        ParentStudy:
-              type: string
-        Type:
-          type: string
-          enum:
-            - Series
-        Status:
-          type: string
-          enum:
-            - Complete
-      example: {
-        "ExpectedNumberOfInstances" : 45,
-        "ID" : "2cc6336f-2d4ae733-537b3ca3-e98184b1-ba494b35",
-        "Instances" : [
-          "41bc3f74-360f9d10-6ae9ffa4-01ea2045-cbd457dd",
-          "1d3de868-6c4f0494-709fd140-7ccc4c94-a6daa3a8",
-          "1010f80b-161b71c0-897ec01b-c85cd206-e669a3ea",
-          "e668dcbf-8829a100-c0bd203b-41e404d9-c533f3d4"
-        ],
-        "MainDicomTags" : {
-          "Manufacturer" : "Philips Medical Systems",
-          "Modality" : "PT",
-          "NumberOfSlices" : "45",
-          "ProtocolName" : "CHU/Body_PET/CT___50",
-          "SeriesDate" : "20120716",
-          "SeriesDescription" : "[WB_CTAC] Body",
-          "SeriesInstanceUID" : "1.3.46.670589.28.2.12.30.26407.37145.2.2516.0.1342458737",
-          "SeriesNumber" : "587370",
-          "SeriesTime" : "171121",
-          "StationName" : "r054-svr"
-        },
-        "ParentStudy" : "9ad2b0da-a406c43c-6e0df76d-1204b86f-78d12c15",
-        "Status" : "Complete",
-        "Type" : "Series"
-      }
-    instance:
-      properties:
-        FileSize:
-          type: number
-        FileUuid: 
-          type: string
-        ID:
-          type: string
-        IndexInSeries:
-          type: number
-        MainDicomTags:
-          type: object
-          properties:
-            AcquisitionNumber:
-              type: string
-            ImageIndex:
-              type: string
-            ImagePositionPatient:
-              type: string
-            InstanceNumber:
-              type: string
-            SOPInstanceUID:
-              type: string
-        ParentSeries:
-              type: string
-        Type:
-          enum:
-            - Instance
-      example: {
-        "FileSize" : 35440,
-        "FileUuid" : "7976ad32-4d15-439b-8789-bf70f52200ec",
-        "ID" : "055bfbaf-2aae936c-82ed5a9a-9267f8b7-416a4000",
-        "IndexInSeries" : 59,
-        "MainDicomTags" : {
-            "AcquisitionNumber" : "2",
-            "ImageIndex" : "59",
-            "ImagePositionPatient" : "-134.74816\\-272.14441\\-712.764",
-            "InstanceNumber" : "59",
-            "SOPInstanceUID" : "1.3.12.2.1107.5.1.4.36085.2.0.3752288429331748"
-        },
-        "ParentSeries" : "318603c5-03e8cffc-a82b6ee1-3ccd3c1e-18d7e3bb",
-        "Type" : "Instance"
-      }
-
-
-    jobId:
-      properties:
-        ID:
-          type: string
-        Path:
-          type: string
-      example: {
-        "ID": "11541b16-e368-41cf-a8e9-3acf4061d238",
-        "Path": "/jobs/11541b16-e368-41cf-a8e9-3acf4061d238"
-      }
-
-
-    jobCStore:
-      properties:
-        Description:
-          type: string
-        FailedInstancesCount: 
-          type: number
-        InstancesCount:
-          type: number
-        LocalAet:
-          type: string
-        RemoteAet:
-          type: string
-      example: {
-        "Description": "REST API",
-        "FailedInstancesCount": 0,
-        "InstancesCount": 1,
-        "LocalAet": "ORTHANCA",
-        "RemoteAet": "ORTHANCB"
-      }
-
-
-    jobPeerStore:
-      properties:
-        Description:
-          type: string
-        FailedInstancesCount: 
-          type: number
-        InstancesCount:
-          type: number
-        Peer:
-          type: string
-      example: {
-        "Description": "REST API",
-        "FailedInstancesCount": 0,
-        "InstancesCount": 1,
-        "Peer": [
-          "http://127.0.0.1:8543/"
-        ]
-      }
-
-
-    listOfResourcesWithAsynchOption:
-      properties:
-        Resources:
-          description: A list of resources IDs (Patient, Studies, Series or Instances)
-          type: array
-          items:
-            type: string
-        Asynchronous:
-          description: true to create a job and return immediately, false to wait for job completion.  
-            The response will vary according to this parameter.  If the call is synchronous, you'll receive
-            a completed job in the response while if the call is asynchronous, you'll receive a job identifier.
-          type: boolean
-      example: {
-        "Resources" : ["62cdfbea-07c71f0c-cd643b19-841a306a-01221339"],
-        "Asynchronous" : true
-      }
-
-
-    listOfResources:
-      description: A list of resources IDs (Patient, Studies, Series or Instances)
-      schema:
-        type: array
-        items:
-          type: string
-      example: ["62cdfbea-07c71f0c-cd643b19-841a306a-01221339"]
-
-
-    singleResource:
-      description: A resource ID (Patient, Studies, Series or Instances)
-      type: string
-      example: "62cdfbea-07c71f0c-cd643b19-841a306a-01221339"
-
-    peer:
-      required:
-        - Url
-      properties:
-        Url:
-          type: string
-          description: the root url of the Orthanc Rest API of the other peer
-        Username: 
-          type: string
-        Password:
-          type: string
-        HttpHeaders:
-          description: HTTP headers to add to every request sent to that peer
-          type: object
-        CertificateFile:
-          type: string
-        CertificateKeyFile:
-          type: string
-        CertificateKeyPassword:
-          type: string
-      example: {
-        "Url" : "http://localhost:8044",
-        "Username" : "alice",                          
-        "Password" : "alicePassword",                  
-        "HttpHeaders" : { "Token" : "Hello world" },   
-        "CertificateFile" : "client.crt",              
-        "CertificateKeyFile" : "client.key",           
-        "CertificateKeyPassword" : "certpass"          
-      }
-
-
-####################################################################################
-## ROUTES / PATHS
-####################################################################################
-
-paths:
-  /instances:
-    post:
-      tags: [Instances]
-      description: The upload of DICOM files is possible by querying the REST API using the following syntax.
-      requestBody:
-        description: DICOM file
-        content:
-          application/dicom: {}
-      responses:
-        200:
-          description: New instance successfully posted
-          content:
-            application/json:
-              schema:
-                properties:
-                  ID:
-                    description: New Orthanc instance ID
-                    type: string
-                  Path:
-                    description: URL path for the instance
-                    type: string
-                  Status:
-                    description: Status
-                    type: string
-                    enum:
-                      - Success
-    get:
-      tags: [Instances]
-      description: Get all DICOM instances ID's in Orthanc
-      parameters:
-        - name: limit
-          in: query
-          schema:
-            type: number
-          description: Limit the number of results to the specified. number
-        - name: since
-          in: query
-          schema:
-            type: number
-          description: Show only the resources since the index provided.
-      responses:
-        200:
-          description: Array of all instances ID's
-          content:
-            application/json:
-              schema:
-                type: array
-                items:
-                  type: string
-                example: [
-   "055bfbaf-2aae936c-82ed5a9a-9267f8b7-416a4000",
-   "62dc1ec1-9fc2dd9d-aa66eae1-0db608b1-e17f8ce8"
-]
-  /instances/{Id}:
-    get:
-      tags: [Instances]
-      description: Get an instance from Orthanc
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-      responses:
-        200:
-          description: Orthanc instance
-          content:
-            application/json:
-              schema:
-                $ref: "#/components/schemas/instance"
-    delete:
-      tags : [Instances]
-      description: Delete an instance
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-      responses:
-       200:
-         description: Success
-  /instances/{Id}/simplified-tags:
-    get:
-      tags: [Instances]
-      description: Get the human readable tags for the DICOM instance.
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-      responses:
-        200:
-          description: DICOM tags and values
-          content:
-            application/json:
-              schema:
-                type: object
-              example: {
-  "ACR_NEMA_2C_VariablePixelDataGroupLength" : "57130",
-  "AccessionNumber" : null,
-  "AcquisitionDate" : "20120716",
-  "AcquisitionDateTime" : "20120716171219",
-  "AcquisitionTime" : "171219",
-  "ActualFrameDuration" : "3597793",
-  "AttenuationCorrectionMethod" : "CTAC-SG",
-  "PatientID" : "000000185",
-  "PatientName" : "Anonymous^Unknown",
-  "PatientOrientationCodeSequence" : [
-     {
-        "CodeMeaning" : "recumbent",
-        "CodeValue" : "F-10450",
-        "CodingSchemeDesignator" : "99SDM",
-        "PatientOrientationModifierCodeSequence" : [
-           {
-              "CodeMeaning" : "supine",
-              "CodeValue" : "F-10340",
-              "CodingSchemeDesignator" : "99SDM"
-           }
-        ]
-     }
-  ],
-  "StudyDescription" : "TestSUVce-TF",
-  "StudyID" : "23848",
-  "StudyInstanceUID" : "1.2.840.113704.1.111.7016.1342451220.40",
-  "StudyTime" : "171117",
-  "TypeOfDetectorMotion" : "NONE",
-  "Units" : "BQML",
-  "Unknown" : null,
-  "WindowCenter" : "1.496995e+04",
-  "WindowWidth" : "2.993990e+04"
-}
-  /instances/{Id}/tags:
-    get:
-      tags: [Instances]
-      description: Get the detailed tags for the DICOM instance.
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-        - name: simplify
-          required: false
-          description: Show more user-friendly tags like in /simplified-tags
-          in: query
-          schema:
-            type: boolean
-        - name: short
-          required: false
-          description: Shorten the values so that they are not separate JSON objects with the user-friendly description of the tag and the type. Instead, values are given as direct values to the tags.
-          in: query
-          schema:
-            type: boolean
-      responses:
-        200:
-          description: DICOM tags and values
-          content:
-            application/json:
-              schema:
-                type: object
-              example: 
-                {
-   "0008,0005" : {
-      "Name" : "SpecificCharacterSet",
-      "Type" : "String",
-      "Value" : "ISO_IR 100"
-   },
-   "0008,0008" : {
-      "Name" : "ImageType",
-      "Type" : "String",
-      "Value" : "ORIGINAL\\PRIMARY\\HEADER_CORRECTED"
-   },
-   "0008,0016" : {
-      "Name" : "SOPClassUID",
-      "Type" : "String",
-      "Value" : "1.2.840.10008.5.1.4.1.1.128"
-   },
-   "0008,0018" : {
-      "Name" : "SOPInstanceUID",
-      "Type" : "String",
-      "Value" : "1.3.12.2.1107.5.1.4.36085.2.0.3752288429331748"
-   },
-   "0008,0020" : {
-      "Name" : "StudyDate",
-      "Type" : "String",
-      "Value" : "20040304"
-   },
-   "0008,0021" : {
-      "Name" : "SeriesDate",
-      "Type" : "String",
-      "Value" : "20040304"
-   },
-   "0008,0022" : {
-      "Name" : "AcquisitionDate",
-      "Type" : "String",
-      "Value" : "20040304"
-   }
-}
-  /instances/{Id}/header:
-    get:
-      tags: [Instances]
-      description: Get the detailed header tags for the DICOM instance.
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-        - name: simplify
-          required: false
-          description: Show more user-friendly tags like in /simplified-tags
-          in: query
-          schema:
-            type: boolean
-        - name: short
-          required: false
-          description: Shorten the values so that they are not separate JSON objects with the user-friendly description of the tag and the type. Instead, values are given as direct values to the tags.
-          in: query
-          schema:
-            type: boolean
-      responses:
-        200:
-          description: DICOM tags and values
-          content:
-            application/json:
-              schema:
-                type: object
-              example: {
-   "0002,0000" : {
-      "Name" : "FileMetaInformationGroupLength",
-      "Type" : "String",
-      "Value" : "222"
-   },
-   "0002,0002" : {
-      "Name" : "MediaStorageSOPClassUID",
-      "Type" : "String",
-      "Value" : "1.2.840.10008.5.1.4.1.1.128"
-   },
-   "0002,0003" : {
-      "Name" : "MediaStorageSOPInstanceUID",
-      "Type" : "String",
-      "Value" : "1.3.12.2.1107.5.1.4.36085.2.0.3752288429331748"
-   },
-   "0002,0010" : {
-      "Name" : "TransferSyntaxUID",
-      "Type" : "String",
-      "Value" : "1.2.840.10008.1.2.1"
-   },
-   "0002,0012" : {
-      "Name" : "ImplementationClassUID",
-      "Type" : "String",
-      "Value" : "1.2.826.0.1.3680043.2.1143.107.104.103.115.2.2.4"
-   },
-   "0002,0013" : {
-      "Name" : "ImplementationVersionName",
-      "Type" : "String",
-      "Value" : "GDCM 2.2.4"
-   },
-   "0002,0016" : {
-      "Name" : "SourceApplicationEntityTitle",
-      "Type" : "String",
-      "Value" : "gdcmconv"
-   }
-}
-  /instances/{Id}/content/{Tag}:
-    get:
-      tags: [Instances]
-      description: Get the value for a single tag of a DICOM instance.
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-        - name: Tag
-          required: true
-          in: path
-          schema:
-            type: string
-      responses:
-        200:
-          description: Returns the DICOM tag value or value sub-structure.
-          content:
-            application/json:
-              schema:
-                type: object
-            text/plain:
-              example: Anonymous^Unknown
-  /instances/{Id}/file:
-    get:
-      tags: [Instances]
-      description: Download the DICOM instance file in DCM format.
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-      responses:
-        200:
-          description: DICOM file contents
-          content:
-            application/dicom: {}
-  /instances/{Id}/preview:
-    get:
-      tags: [Instances]
-      description: Download a preview image of the DICOM instance.
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-        - name: Accept
-          description: Default is image/png
-          required: false
-          in: header
-          schema:
-            type: string
-            enum:
-              - image/png
-              - image/jpeg
-      responses:
-        200:
-          description: DICOM preview
-          content:
-            image/png: {}
-            image/jpg: {}
-  /instances/{Id}/{PixelFormat}:
-    get:
-      tags: [Instances]
-      description: Download an image of the DICOM instance in the specified format.
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-        - name: PixelFormat
-          required: true
-          in: path
-          schema:
-            type: string
-            enum:
-              - image-uint8
-              - image-uint16
-              - image-int16
-              - matlab
-              - raw
-              - raw.gz
-        - name: Accept
-          required: true
-          in: header
-          schema:
-            type: string
-            enum:
-              - image/png
-              - image/jpeg
-              - image/x-portable-arbitrarymap
-      responses:
-        200:
-          description: Image
-          content:
-            image/png: {}
-            image/jpg: {}
-            image/x-portable-arbitrarymap: {}
-            application/octet-stream: {}
-            text/plain: {}
-  /instances/{Id}/pdf:
-    get:
-      tags: [Instances]
-      description: Download the embedded PDF of the DICOM instance.
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string    
-      responses:
-        200:
-          description: The raw PDF bytes are returned.
-          content:
-            application/pdf: {}
-        404:
-          description: The instance does not contain an encapsulated PDF or the instance is not found.
-  /series:
-    get:
-      tags: [Series]
-      description: Get all DICOM series ID's in Orthanc
-      parameters:
-        - name: limit
-          in: query
-          schema:
-            type: number
-          description: Limit the number of results to the specified. number
-        - name: since
-          in: query
-          schema:
-            type: number
-          description: Show only the resources since the index provided.
-      responses:
-        200:
-          description: Array of all series ID's
-          content:
-            application/json:
-              schema:
-                type: array
-                items:
-                  type: string
-                example: [
-   "055bfbaf-2aae936c-82ed5a9a-9267f8b7-416a4000",
-   "62dc1ec1-9fc2dd9d-aa66eae1-0db608b1-e17f8ce8"
-]
-  /series/{Id}:
-    get:
-      tags: [Series]
-      description: Get a series from Orthanc
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-      responses:
-        200:
-          description: Orthanc series
-          content:
-            application/json:
-              schema:
-                $ref: "#/components/schemas/series"
-    delete:
-      tags : [Series]
-      description: Delete a series
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-      responses:
-       200:
-         description: Success
-  /series/{Id}/instances:
-    get:
-      tags: [Series]
-      description: Get the instances for a series
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-      responses:
-        200:
-          description: Orthanc instances
-          content:
-            application/json:
-              schema:
-                type: array
-                items:
-                  $ref: "#/components/schemas/instance"
-         
-  /studies:
-    get:
-      tags: [Studies]
-      description: Get all DICOM studies ID's in Orthanc
-      parameters:
-        - name: limit
-          in: query
-          schema:
-            type: number
-          description: Limit the number of results to the specified. number
-        - name: since
-          in: query
-          schema:
-            type: number
-          description: Show only the resources since the index provided.
-      responses:
-        200:
-          description: Array of all study ID's
-          content:
-            application/json:
-              schema:
-                type: array
-                items:
-                  type: string
-                example: [
-   "055bfbaf-2aae936c-82ed5a9a-9267f8b7-416a4000",
-   "62dc1ec1-9fc2dd9d-aa66eae1-0db608b1-e17f8ce8"
-]
-  /studies/{Id}:
-    get:
-      tags: [Studies]
-      description: Get a study from Orthanc
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-      responses:
-        200:
-          description: Orthanc study
-          content:
-            application/json:
-              schema:
-                $ref: "#/components/schemas/study"
-    delete:
-      tags : [Studies]
-      description: Delete a study
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-      responses:
-       200:
-         description: Success
-  /studies/{Id}/series:
-    get:
-      tags: [Studies]
-      description: Get the series for a study
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-      responses:
-        200:
-          description: Orthanc series
-          content:
-            application/json:
-              schema:
-                type: array
-                items:
-                  $ref: "#/components/schemas/series"
-  /studies/{Id}/instances:
-    get:
-      tags: [Studies]
-      description: Get the instances for a study
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-      responses:
-        200:
-          description: Orthanc instances
-          content:
-            application/json:
-              schema:
-                type: array
-                items:
-                  $ref: "#/components/schemas/instance"
-
-  /patients:
-    get:
-      tags: [Patients]
-      description: Get all DICOM patient ID's in Orthanc
-      parameters:
-        - name: limit
-          in: query
-          schema:
-            type: number
-          description: Limit the number of results to the specified. number
-        - name: since
-          in: query
-          schema:
-            type: number
-          description: Show only the resources since the index provided.
-      responses:
-        200:
-          description: Array of all patient ID's
-          content:
-            application/json:
-              schema:
-                type: array
-                items:
-                  type: string
-                example: [
-   "055bfbaf-2aae936c-82ed5a9a-9267f8b7-416a4000",
-   "62dc1ec1-9fc2dd9d-aa66eae1-0db608b1-e17f8ce8"
-]
-  /patients/{Id}:
-    get:
-      tags: [Patients]
-      description: Get a patient from Orthanc
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-      responses:
-        200:
-          description: Orthanc patient
-          content:
-            application/json:
-              schema:
-                $ref: "#/components/schemas/patient"
-    delete:
-      tags : [Patients]
-      description: Delete a patient
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-      responses:
-       200:
-         description: Success
-  /patients/{Id}/studies:
-    get:
-      tags: [Patients]
-      description: Get the studies for a patient
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-      responses:
-        200:
-          description: Success
-          content:
-            application/json:
-              schema:
-                type: array
-                items:
-                  $ref: "#/components/schemas/study"
-  /patients/{Id}/series:
-    get:
-      tags: [Patients]
-      description: Get the series for a patient
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-      responses:
-        200:
-          description: Orthanc series
-          content:
-            application/json:
-              schema:
-                type: array
-                items:
-                  $ref: "#/components/schemas/series"
-  /patients/{Id}/instances:
-    get:
-      tags: [Patients]
-      description: Get the instances for a patient
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-      responses:
-        200:
-          description: Orthanc instances
-          content:
-            application/json:
-              schema:
-                type: array
-                items:
-                  $ref: "#/components/schemas/instance"
-
-  /peers:
-    get:
-      tags: [Orthanc Peers]
-      description: Get a list of Orthanc peers.
-      parameters:
-        - name: expand
-          in: query
-          required: false
-          schema:
-            type: boolean
-      responses:
-        200:
-          description: List of Orthanc peers
-          content:
-            application/json:
-              schema:
-                type: array
-                items:
-                  type: string
-  /peers/{Peer}:
-    put:
-      tags: [Orthanc Peers]
-      summary: Add a new Orthanc peer. 
-      description: Note that this will only be stored in memory unless the 'OrthancPeersInDatabase' configuration option is set.
-      parameters:
-        - name: Peer
-          in: path
-          required: true
-          schema:
-            type: string
-      requestBody:
-        content:
-          application/json:
-            schema:
-              type: array
-              items:
-                $ref: "#/components/schemas/peer"
-      responses:
-        200:
-          description: Peer created
-  /peers/{Peer}/store:
-    post:
-      tags: [Orthanc Peers]
-      summary: Send resources to an Orthanc peer.
-      parameters:
-        - name: Peer
-          in: path
-          required: true
-          description: the peer alias as defined in the Orthanc configuration file
-          schema:
-            type: string
-      requestBody:
-        content:
-          application/json:
-            schema:
-              oneOf:
-                - $ref: "#/components/schemas/listOfResourcesWithAsynchOption"
-                - $ref: "#/components/schemas/listOfResources"          
-          text/plain:
-            schema:
-              $ref: "#/components/schemas/singleResource"
-      responses:
-        200:
-          description: Jobs that have been created
-          content:
-            application/json:
-              schema:
-                oneOf:
-                  - $ref: "#/components/schemas/jobId"
-                  - $ref: "#/components/schemas/jobPeerStore"
-
-  /modalities/{Modality}/store:
-    post:
-      tags: [Remote Modalities]
-      summary: Send resources from Orthanc to a remote modality through C-Store.
-      parameters:
-        - name: Modality
-          in: path
-          required: true
-          description: the modality alias where you want to send data (as defined in the Orthanc configuration file)
-          schema:
-            type: string
-      requestBody:
-        content:
-          application/json:
-            schema:
-              oneOf:
-                - $ref: "#/components/schemas/listOfResourcesWithAsynchOption"
-                - $ref: "#/components/schemas/listOfResources"
-          text/plain:
-            schema:
-              $ref: "#/components/schemas/singleResource"
-      responses:
-        200:
-          description: Jobs that have been created
-          content:
-            application/json:
-              schema:
-                oneOf:
-                  - $ref: "#/components/schemas/jobId"
-                  - $ref: "#/components/schemas/jobCStore"
-
-
-  /modalities/{Modality}/query:
-    post:
-      tags: [Remote Modalities]
-      description: To initiate a query you perform a POST command against the Modality with the identifiers you are looking for. This search is case insensitive unless configured otherwise within the Orthanc configuration file. Note that queries are cleaned up after a period of inactivity, which can sometimes be very short. You will need to access the query results quickly.
-      parameters:
-        - name: Modality
-          in: path
-          required: true
-          description: The Modality to be queried from within the Orthanc configuration file
-          schema:
-            type: string
-      requestBody:
-        content:
-          application/json:
-            schema:
-              properties:
-                Level:
-                  type: string
-                  enum:
-                    - Patient
-                    - Study
-                    - Series
-                    - Instance
-                Query:
-                  type: object
-                  properties:
-                    PatientID:
-                      type: string
-                    StudyDescription:
-                      type: string
-                      description: Match the study description. Note that wildcard "*" can be used to match any text (eg. "*Chest*").
-                    PatientName:
-                      type: string
-                    StudyDate:
-                      type: string
-                      description: This is the study date in the format "20160504". Note that ranges can be used using a hyphen (eg. "20160504-" and "20160504-20170504").
-                    StudyTime:
-                      type: string
-                  required: [Level, Query]
-                  example: {"Level":"Study","Query": {"PatientID":"","StudyDescription":"*Chest*","PatientName":""}}
-      responses:
-        200:
-          description: Query successful
-          content:
-            application/json:
-              schema:
-                properties:
-                  ID:
-                    type: string
-                  Path:
-                    type: string
-              example: {
-   "ID": "5af318ac-78fb-47ff-b0b0-0df18b0588e0",
-   "Path": "/queries/5af318ac-78fb-47ff-b0b0-0df18b0588e0"
-}
-  /queries/{QueryID}/level:
-    get:
-      tags: [Remote Modalities]
-      description: Review the query level, such as Patient, Study, Series or Instance.
-      parameters:
-        - name: QueryID
-          description: This is the query ID that comes from posting a query to the modality.
-          in: path
-          required: true
-          schema:
-            type: string
-      responses:
-        200:
-          description: Return the level of the query, whether Patient, Study, Series or Instance.
-          content:
-            text/plain:
-              example: Series
-  /queries/{QueryID}/modality:
-    get:
-      tags: [Remote Modalities]
-      description: Review the query modality name that the query was originally performed against.
-      parameters:
-        - name: QueryID
-          description: This is the query ID that comes from posting a query to the modality.
-          in: path
-          required: true
-          schema:
-            type: string
-      responses:
-        200:
-          description: Return the name of the modality that the query was run against.
-          content:
-            text/plain:
-              example: SomeModalityName
-  /queries/{QueryID}/query:
-    get:
-      tags: [Remote Modalities]
-      description: Review the query that was posted.
-      parameters:
-        - name: QueryID
-          description: This is the query ID that comes from posting a query to the modality.
-          in: path
-          required: true
-          schema:
-            type: string
-      responses:
-        200:
-          description: Return the query identifiers that were used originally when it was posted.
-  /queries/{QueryID}/answers:
-    get:
-      tags: [Remote Modalities]
-      description: Review the query answers.
-      parameters:
-        - name: QueryID
-          description: This is the query ID that comes from posting a query to the modality.
-          in: path
-          required: true
-          schema:
-            type: string
-      responses:
-        200:
-          description: Return the query answers.
-  /queries/{QueryID}/answers/{Idx}/content:
-    get:
-      tags: [Remote Modalities]
-      description: Review a specific query answer. If there are content items missing, you may add them by adding that identifier to the original query. For example if we wanted Modalities listed in this JSON answer in the initial query we would add to the POST body "ModalitiesInStudy":""
-      parameters:
-        - name: QueryID
-          description: This is the query ID that comes from posting a query to the modality.
-          in: path
-          required: true
-          schema:
-            type: string
-        - name: Idx
-          description: This is the index of a specific answer in the list of answers of the query.
-          in: path
-          required: true
-          schema:
-            type: number
-      responses:
-        200:
-          description: Return a single query answer
-          content:
-            application/json: {}
-  /queries/{QueryID}/retrieve:
-    post:
-      tags: [Remote Modalities]
-      description: You can perform a C-Move to retrieve all studies within the original query using a post command and identifying the Modality (named in this example Orthanc), to be one to in the POST contents. The C-Move can be done asynchronously using an Orthanc job using a JSON parameter in the request body.
-      parameters:
-        - name: QueryID
-          description: This is the query ID that comes from posting a query to the modality.
-          in: path
-          required: true
-          schema:
-            type: string
-      requestBody:
-        description: The request body is the name of the modality to perform the C-Move or a JSON structure with additional information.
-        content:
-          text/plain:
-            example: Orthanc
-          application/json:
-            schema:
-              properties:
-                TargetAet:
-                  type: string
-                Synchronous:
-                  type: boolean
-                  default: true
-                  description: If Synchronous is set to false then this operation runs as an Orthanc job. The output of this request will indicate the Job ID.
-                Priority:
-                  type: number
-                  default: 0
-                  description: If Synchronous is set to false then this sets the priority of the job. The default priority is 0.
-            example: {"TargetAet":"Orthanc","Synchronous":false}
-      responses:
-        200:
-          description: Success
-          content:
-            application/json:
-              schema:
-                properties:
-                  ID:
-                    type: string
-                    description: The ID of the job if the retrieve is asynchronous (ie. Synchronous is set to true)
-                  Path:
-                    type: string
-                    description: The URL path of the job if the retrieve is asynchronous (ie. Synchronous is set to false)
-              example: {
-    "ID" : "11541b16-e368-41cf-a8e9-3acf4061d238",
-    "Path" : "/jobs/11541b16-e368-41cf-a8e9-3acf4061d238"
-}
-  /queries/{QueryID}/answers/{Idx}/retrieve:
-    post:
-      tags: [Remote Modalities]
-      description: You can perform a C-Move to retrieve a specific study within the original query using a post command and identifying the Modality (named in this example Orthanc), to be one to in the POST contents.
-      parameters:
-        - name: QueryID
-          description: This is the query ID that comes from posting a query to the modality.
-          in: path
-          required: true
-          schema:
-            type: string
-        - name: Idx
-          description: This is the index of a specific answer in the list of answers of the query.
-          in: path
-          required: true
-          schema:
-            type: number
-      requestBody:
-        description: The request body is the name of the modality to perform the C-Move.
-        content:
-          text/plain:
-            example: Orthanc
-      responses:
-        200:
-          description: Success
-  /tools/find:
-    post:
-      tags: [Find]
-      description: Performing a find within Orthanc is very similar to using Queries against DICOM modalities and the additional options listed above work with find also. When performing a find, you will receive the Orthanc ID’s of all the matched items within your find. For example if you perform a study level find and 5 Studies match you will receive 5 study level Orthanc ID’s in JSON format as a response.
-      requestBody:
-        description: The request body gives the parameters for the find much like when querying a remote modality.
-        content:
-          application/json:
-            schema:
-              properties:
-                Level:
-                  type: string
-                  enum:
-                    - Patient
-                    - Study
-                    - Series
-                    - Instance
-                Expand:
-                  type: boolean
-                  description: Returns an array of resources instead of just ID's.
-                Limit:
-                  type: number
-                Query:
-                  properties:
-                    Modality:
-                      type: string
-                    StudyDate:
-                      type: string
-                    PatientID:
-                      type: string
-            example: {"Level":"Instance","Limit": 2, "Query":{"Modality":"CR","StudyDate":"20180323-","PatientID":"*"}}
-      responses:
-        200:
-          description: Success
-          content:
-            application/json:
-              schema:
-                oneOf:
-                  - type: array
-                    items:
-                      type: string
-                  - type: array
-                    items:
-                      $ref: "#/components/schemas/instance"
-                  - type: array
-                    items:
-                      $ref: "#/components/schemas/series"
-                  - type: array
-                    items:
-                      $ref: "#/components/schemas/study"
-                  - type: array
-                    items:
-                      $ref: "#/components/schemas/patient"
-              example: [ "6821d761-31fb55a9-031ebecb-ba7f9aae-ffe4ddc0", "2cc6336f-2d4ae733-537b3ca3-e98184b1-ba494b35" ]
-  /changes:
-    get:
-      tags: [Tracking Changes]
-      parameters:
-        - name: limit
-          description: Limit the number of changes to a maximum of the provided number.
-          in: query
-          required: false
-          schema:
-            type: number
-        - name: since
-          description: Show only changes that have happened after the change with the provided sequence number.
-          in: query
-          required: false
-          schema:
-            type: number
-      description: Whenever Orthanc receives a new DICOM instance, this event is recorded in the so-called “Changes Log”. This enables remote scripts to react to the arrival of new DICOM resources. A typical application is auto-routing, where an external script waits for a new DICOM instance to arrive into Orthanc, then forward this instance to another modality.
-      responses:
-        200:
-          description: The list of recent changes
-          content:
-            application/json:
-              schema:
-                properties:
-                  Changes:
-                    type: array
-                    items:
-                      properties:
-                        ChangeType:
-                          type: string
-                          enum:
-                            - NewPatient
-                            - NewStudy
-                            - NewSeries
-                            - NewInstance
-                            - StablePatient
-                            - StableStudy
-                            - StableSeries
-                            - StableInstance
-                        Date:
-                          type: string
-                        ID:
-                          type: string
-                        Path:
-                          type: string
-                        ResourceType:
-                          type: string
-                          enum:
-                            - Patient
-                            - Study
-                            - Series
-                            - Instance
-                        Seq:
-                          type: number
-                  Done:
-                    type: boolean
-                    description: The flag Done is set to true if no further event has occurred after this lastly returned event. If Done is set to false, further events are available and can be retrieved. This is done by setting the since option that specifies from which sequence number the changes must be returned.
-                  Last:
-                    type: number
-                    description: The flag Last records the sequence number of the lastly returned event.
-              example: {
-  "Changes" : [
-     {
-        "ChangeType" : "NewInstance",
-        "Date" : "20130507T143902",
-        "ID" : "8e289db9-0e1437e1-3ecf395f-d8aae463-f4bb49fe",
-        "Path" : "/instances/8e289db9-0e1437e1-3ecf395f-d8aae463-f4bb49fe",
-        "ResourceType" : "Instance",
-        "Seq" : 921
-     },
-     {
-        "ChangeType" : "NewSeries",
-        "Date" : "20130507T143902",
-        "ID" : "cceb768f-e0f8df71-511b0277-07e55743-9ef8890d",
-        "Path" : "/series/cceb768f-e0f8df71-511b0277-07e55743-9ef8890d",
-        "ResourceType" : "Series",
-        "Seq" : 922
-     },
-     {
-        "ChangeType" : "NewStudy",
-        "Date" : "20130507T143902",
-        "ID" : "c4ec7f68-9b162055-2c8c5888-5bf5752f-155ab19f",
-        "Path" : "/studies/c4ec7f68-9b162055-2c8c5888-5bf5752f-155ab19f",
-        "ResourceType" : "Study",
-        "Seq" : 923
-     },
-     {
-        "ChangeType" : "NewPatient",
-        "Date" : "20130507T143902",
-        "ID" : "dc65762c-f476e8b9-898834f4-2f8a5014-2599bc94",
-        "Path" : "/patients/dc65762c-f476e8b9-898834f4-2f8a5014-2599bc94",
-        "ResourceType" : "Patient",
-        "Seq" : 924
-     }
-  ],
-  "Done" : true,
-  "Last" : 924
-}
-    delete:
-      tags : [Tracking Changes]
-      description: Clear the content of the changes log
-      responses:
-       200:
-         description: Success
-         
-  /exports:
-    get:
-      tags: [Exported Resources]
-      description: For medical traceability, Orthanc can be configured to store a log of all the resources that have been exported to remote modalities.
-      responses:
-        200: {description: Success}
-        
-    delete:
-      tags: [Exported Resources]
-      description: In auto-routing scenarios, it is important to prevent this log to grow indefinitely as incoming instances are routed. You can either disable this logging by setting the option LogExportedResources to false in the configuration file, or periodically clear this log by DELETE-ing this URI.
-      responses:
-        200: {description: Success}
-        
-  /instances/{Id}/anonymize:
-    post:
-      tags: [Anonymization]
-      description: Anonymize the instance by erasing all the tags that are specified in Table E.1-1 from PS 3.15 of the DICOM standard 2008 or 2017c (default). The response will contain the anonymized DICOM result. New UUIDs are automatically generated for the instance.
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-      requestBody:
-        content:
-          application/json:
-            schema:
-              properties:
-                DicomVersion:
-                  type: string
-                  description: Specifies which version of the DICOM standard shall be used for anonymization. Allowed values are 2008 and 2017c (default value if the parameter is absent). This parameter has been introduced in Orthanc 1.3.0. In earlier version, the 2008 standard was used.
-                  enum:
-                    - 2017c
-                    - 2008
-                Replace:
-                  type: object
-                  description: Replace is an associative array that associates a DICOM tag with its new string value. The value is dynamically cast to the proper DICOM data type (an HTTP error will occur if the cast fails). Replacements are applied after all the tags to anonymize have been removed.
-                Keep:
-                  type: array
-                  items:
-                    type: string
-                  description: List of DICOM tags that should be kept through the anonymization process.
-                KeepPrivateTags:
-                  type: boolean
-                  description: If KeepPrivateTags is set to true in the JSON request, private tags (i.e. manufacturer-specific tags) are not removed by the anonymization process. The default behavior consists in removing the private tags, as such tags can contain patient-specific information.
-            example: {"Replace":{"PatientName":"Hello","0010-1001":"World"},"Keep":["StudyDescription", "SeriesDescription"],"KeepPrivateTags": true, "DicomVersion" : "2017c"}        
-      responses:
-        200:
-          description: The response contains a DICOM file that has been anonymized.
-          content:
-            application/dicom: {}
-            
-  /patients/{Id}/anonymize:
-    post:
-      tags: [Anonymization]
-      description: Anonymize the patient
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-      requestBody:
-        content:
-          application/json:
-            schema:
-              properties:
-                DicomVersion:
-                  type: string
-                  description: Specifies which version of the DICOM standard shall be used for anonymization. Allowed values are 2008 and 2017c (default value if the parameter is absent). This parameter has been introduced in Orthanc 1.3.0. In earlier version, the 2008 standard was used.
-                  enum:
-                    - 2017c
-                    - 2008
-                Replace:
-                  type: object
-                  description: Replace is an associative array that associates a DICOM tag with its new string value. The value is dynamically cast to the proper DICOM data type (an HTTP error will occur if the cast fails). Replacements are applied after all the tags to anonymize have been removed.
-                Keep:
-                  type: array
-                  items:
-                    type: string
-                  description: List of DICOM tags that should be kept through the anonymization process.
-                KeepPrivateTags:
-                  type: boolean
-                  description: If KeepPrivateTags is set to true in the JSON request, private tags (i.e. manufacturer-specific tags) are not removed by the anonymization process. The default behavior consists in removing the private tags, as such tags can contain patient-specific information.
-                Synchronous:
-                  type: boolean
-                  default: true
-                  description: If Synchronous is set to false then this operation runs as an Orthanc job. The output of this request will indicate the Job ID.
-                Priority:
-                  type: number
-                  default: 0
-                  description: If Synchronous is set to false then this sets the priority of the job. The default priority is 0.
-            example: {"Replace":{"PatientName":"Hello","0010-1001":"World"},"Keep":["StudyDescription", "SeriesDescription"],"KeepPrivateTags": true, "DicomVersion" : "2017c"}        
-      responses:
-        200:
-          description: Success
-          content:
-            application/json:
-              schema:
-                properties:
-                  ID:
-                    type: string
-                    description: The ID of the new anonymized patient.
-                  Path:
-                    type: string
-                    description: The URL of the new anonymized patient.
-                  PatientID:
-                    type: string
-                  Type:
-                    type: string
-                    enum:
-                      - Patient
-              example: {
-  "ID" : "f7ff9e8b-7bb2e09b-70935a5d-785e0cc5-d9d0abf0",
-  "Path" : "/patients/f7ff9e8b-7bb2e09b-70935a5d-785e0cc5-d9d0abf0",
-  "PatientID" : "f7ff9e8b-7bb2e09b-70935a5d-785e0cc5-d9d0abf0",
-  "Type" : "Patient"
-}
-
-  /studies/{Id}/anonymize:
-    post:
-      tags: [Anonymization]
-      description: Anonymize the study
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-      requestBody:
-        content:
-          application/json:
-            schema:
-              properties:
-                DicomVersion:
-                  type: string
-                  description: Specifies which version of the DICOM standard shall be used for anonymization. Allowed values are 2008 and 2017c (default value if the parameter is absent). This parameter has been introduced in Orthanc 1.3.0. In earlier version, the 2008 standard was used.
-                  enum:
-                    - 2017c
-                    - 2008
-                Replace:
-                  type: object
-                  description: Replace is an associative array that associates a DICOM tag with its new string value. The value is dynamically cast to the proper DICOM data type (an HTTP error will occur if the cast fails). Replacements are applied after all the tags to anonymize have been removed.
-                Keep:
-                  type: array
-                  items:
-                    type: string
-                  description: List of DICOM tags that should be kept through the anonymization process.
-                KeepPrivateTags:
-                  type: boolean
-                  description: If KeepPrivateTags is set to true in the JSON request, private tags (i.e. manufacturer-specific tags) are not removed by the anonymization process. The default behavior consists in removing the private tags, as such tags can contain patient-specific information.
-                Synchronous:
-                  type: boolean
-                  default: true
-                  description: If Synchronous is set to false then this operation runs as an Orthanc job. The output of this request will indicate the Job ID.
-                Priority:
-                  type: number
-                  default: 0
-                  description: If Synchronous is set to false then this sets the priority of the job. The default priority is 0.
-            example: {"Replace":{"PatientName":"Hello","0010-1001":"World"},"Keep":["StudyDescription", "SeriesDescription"],"KeepPrivateTags": true, "DicomVersion" : "2017c"}        
-      responses:
-        200:
-          description: Success
-          content:
-            application/json:
-              schema:
-                properties:
-                  ID:
-                    type: string
-                    description: The ID of the new anonymized study.
-                  Path:
-                    type: string
-                    description: The URL of the new anonymized study.
-              example: {
-  "ID" : "3bd3d343-82879d86-da77321c-1d23fd6b-faa07bce",
-  "Path" : "/studies/3bd3d343-82879d86-da77321c-1d23fd6b-faa07bce"
-}
-
-  /series/{Id}/anonymize:
-    post:
-      tags: [Anonymization]
-      description: Anonymize the series
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-      requestBody:
-        content:
-          application/json:
-            schema:
-              properties:
-                DicomVersion:
-                  type: string
-                  description: Specifies which version of the DICOM standard shall be used for anonymization. Allowed values are 2008 and 2017c (default value if the parameter is absent). This parameter has been introduced in Orthanc 1.3.0. In earlier version, the 2008 standard was used.
-                  enum:
-                    - 2017c
-                    - 2008
-                Replace:
-                  type: object
-                  description: Replace is an associative array that associates a DICOM tag with its new string value. The value is dynamically cast to the proper DICOM data type (an HTTP error will occur if the cast fails). Replacements are applied after all the tags to anonymize have been removed.
-                Keep:
-                  type: array
-                  items:
-                    type: string
-                  description: List of DICOM tags that should be kept through the anonymization process.
-                KeepPrivateTags:
-                  type: boolean
-                  description: If KeepPrivateTags is set to true in the JSON request, private tags (i.e. manufacturer-specific tags) are not removed by the anonymization process. The default behavior consists in removing the private tags, as such tags can contain patient-specific information.
-                Synchronous:
-                  type: boolean
-                  default: true
-                  description: If Synchronous is set to false then this operation runs as an Orthanc job. The output of this request will indicate the Job ID.
-                Priority:
-                  type: number
-                  default: 0
-                  description: If Synchronous is set to false then this sets the priority of the job. The default priority is 0.
-            example: {"Replace":{"PatientName":"Hello","0010-1001":"World"},"Keep":["StudyDescription", "SeriesDescription"],"KeepPrivateTags": true, "DicomVersion" : "2017c"}        
-      responses:
-        200:
-          description: Success
-          content:
-            application/json:
-              schema:
-                properties:
-                  ID:
-                    type: string
-                    description: The ID of the new anonymized series.
-                  Path:
-                    type: string
-                    description: The URL of the new anonymized series.
-              example: {
-  "ID" : "3bd3d343-82879d86-da77321c-1d23fd6b-faa07bce",
-  "Path" : "/series/3bd3d343-82879d86-da77321c-1d23fd6b-faa07bce"
-}
-            
-  /instances/{Id}/modify:
-    post:
-      tags: [Modification]
-      description: Orthanc allows to modify a set of specified tags in a single DICOM instance and to download the resulting modified DICOM file.
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-      requestBody:
-        content:
-          application/json:
-            schema:
-              properties:
-                Replace:
-                  type: object
-                  description: The Replace associative array specifies the substitions to be applied (cf. anonymization).
-                Remove:
-                  type: array
-                  items:
-                    type: string
-                  description: The Remove array specifies the list of the tags to remove.
-                RemovePrivateTags:
-                  type: boolean
-                  description: If RemovePrivateTags is set to true, the private tags (i.e. manufacturer-specific tags) are removed.
-                Force:
-                  type: boolean
-                  description: The Force option must be set to true, in order to allow the modification of the PatientID, as such a modification of the DICOM identifiers might lead to breaking the DICOM model of the real-world. In general, any explicit modification to one of the PatientID, StudyInstanceUID, SeriesInstanceUID, and SOPInstanceUID requires Force to be set to true, in order to prevent any unwanted side effect.
-                  default: false
-            example: {"Replace":{"PatientName":"hello","PatientID":"world"},"Remove":["InstitutionName"],"RemovePrivateTags": true, "Force": true}       
-      responses:
-        200:
-          description: The response contains a DICOM file that has been anonymized.
-          content:
-            application/dicom: {}
-            
-  /studies/{Id}/modify:
-    post:
-      tags: [Modification]
-      description: It is possible to modify all the instances from a study or from a series in a single request. In this case, the modified instances are stored back into the Orthanc store.
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-      requestBody:
-        content:
-          application/json:
-            schema:
-              properties:
-                Replace:
-                  type: object
-                  description: The Replace associative array specifies the substitions to be applied (cf. anonymization).
-                Remove:
-                  type: array
-                  items:
-                    type: string
-                  description: The Remove array specifies the list of the tags to remove.
-                RemovePrivateTags:
-                  type: boolean
-                  description: If RemovePrivateTags is set to true, the private tags (i.e. manufacturer-specific tags) are removed.
-                Force:
-                  type: boolean
-                  description: The Force option must be set to true, in order to allow the modification of the PatientID, as such a modification of the DICOM identifiers might lead to breaking the DICOM model of the real-world. In general, any explicit modification to one of the PatientID, StudyInstanceUID, SeriesInstanceUID, and SOPInstanceUID requires Force to be set to true, in order to prevent any unwanted side effect.
-                  default: false
-                Synchronous:
-                  type: boolean
-                  default: true
-                  description: If Synchronous is set to false then this operation runs as an Orthanc job. The output of this request will indicate the Job ID.
-                Priority:
-                  type: number
-                  default: 0
-                  description: If Synchronous is set to false then this sets the priority of the job. The default priority is 0.
-            example: {"Replace":{"InstitutionName":"My own clinic"}}      
-      responses:
-        200:
-          description: Success
-          content:
-            application/json:
-              schema:
-                properties:
-                  ID:
-                    type: string
-                    description: The ID of the new modified study.
-                  Path:
-                    type: string
-                    description: The URL of the new modified study.
-              example: {
-  "ID" : "3bd3d343-82879d86-da77321c-1d23fd6b-faa07bce",
-  "Path" : "/studies/3bd3d343-82879d86-da77321c-1d23fd6b-faa07bce"
-}
-
-  /series/{Id}/modify:
-    post:
-      tags: [Modification]
-      description: It is possible to modify all the instances from a study or from a series in a single request. In this case, the modified instances are stored back into the Orthanc store.
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-      requestBody:
-        content:
-          application/json:
-            schema:
-              properties:
-                Replace:
-                  type: object
-                  description: The Replace associative array specifies the substitions to be applied (cf. anonymization).
-                Remove:
-                  type: array
-                  items:
-                    type: string
-                  description: The Remove array specifies the list of the tags to remove.
-                RemovePrivateTags:
-                  type: boolean
-                  description: If RemovePrivateTags is set to true, the private tags (i.e. manufacturer-specific tags) are removed.
-                Force:
-                  type: boolean
-                  description: The Force option must be set to true, in order to allow the modification of the PatientID, as such a modification of the DICOM identifiers might lead to breaking the DICOM model of the real-world. In general, any explicit modification to one of the PatientID, StudyInstanceUID, SeriesInstanceUID, and SOPInstanceUID requires Force to be set to true, in order to prevent any unwanted side effect.
-                  default: false
-                Synchronous:
-                  type: boolean
-                  default: true
-                  description: If Synchronous is set to false then this operation runs as an Orthanc job. The output of this request will indicate the Job ID.
-                Priority:
-                  type: number
-                  default: 0
-                  description: If Synchronous is set to false then this sets the priority of the job. The default priority is 0.
-            example: {"Replace":{"InstitutionName":"My own clinic"}}      
-      responses:
-        200:
-          description: Success
-          content:
-            application/json:
-              schema:
-                properties:
-                  ID:
-                    type: string
-                    description: The ID of the new modified study.
-                  Path:
-                    type: string
-                    description: The URL of the new modified study.
-              example: {
-  "ID" : "3bd3d343-82879d86-da77321c-1d23fd6b-faa07bce",
-  "Path" : "/series/3bd3d343-82879d86-da77321c-1d23fd6b-faa07bce"
-}
-
-  /patients/{Id}/modify:
-    post:
-      tags: [Modification]
-      description: Starting with Orthanc 0.7.5, Orthanc can also modify all the instances of a patient with a single REST call.
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-      requestBody:
-        content:
-          application/json:
-            schema:
-              properties:
-                Replace:
-                  type: object
-                  description: The Replace associative array specifies the substitions to be applied (cf. anonymization).
-                Remove:
-                  type: array
-                  items:
-                    type: string
-                  description: The Remove array specifies the list of the tags to remove.
-                RemovePrivateTags:
-                  type: boolean
-                  description: If RemovePrivateTags is set to true, the private tags (i.e. manufacturer-specific tags) are removed.
-                Force:
-                  type: boolean
-                  description: The Force option must be set to true, in order to allow the modification of the PatientID, as such a modification of the DICOM identifiers might lead to breaking the DICOM model of the real-world. In general, any explicit modification to one of the PatientID, StudyInstanceUID, SeriesInstanceUID, and SOPInstanceUID requires Force to be set to true, in order to prevent any unwanted side effect.
-                  default: false
-                Synchronous:
-                  type: boolean
-                  default: true
-                  description: If Synchronous is set to false then this operation runs as an Orthanc job. The output of this request will indicate the Job ID.
-                Priority:
-                  type: number
-                  default: 0
-                  description: If Synchronous is set to false then this sets the priority of the job. The default priority is 0.
-            example: {"Replace":{"PatientID":"Hello","PatientName":"Sample patient name"},"Force":true}   
-      responses:
-        200:
-          description: Success
-          content:
-            application/json:
-              schema:
-                properties:
-                  ID:
-                    type: string
-                    description: The ID of the new modified patient.
-                  Path:
-                    type: string
-                    description: The URL of the new modified patient.
-                  PatientID:
-                    type: string
-                  Type:
-                    type: string
-                    enum:
-                      - Patient
-              example: {
-  "ID" : "f7ff9e8b-7bb2e09b-70935a5d-785e0cc5-d9d0abf0",
-  "Path" : "/patients/f7ff9e8b-7bb2e09b-70935a5d-785e0cc5-d9d0abf0",
-  "PatientID" : "f7ff9e8b-7bb2e09b-70935a5d-785e0cc5-d9d0abf0",
-  "Type" : "Patient"
-}
-
-  /studies/{Id}/split:
-    post:
-      tags: [Split/merge DICOM studies]
-      description: "Starting with Orthanc 1.5.0, Orthanc supports splitting and merging DICOM studies through its REST API. By issuing the example command, the series whose Orthanc identifier is 6ca4c9f3-5e895cb3-4d82c6da-09e060fe-9c59f228, and that is part of the source study with identifier in the URL, will be removed from the source study, and will be moved to a brand new study. This is done by generating a new value for all the following DICOM tags in the DICOM instances of the series of interest: StudyInstanceUID (0x0020, 0x000d), SeriesInstanceUID (0x0020, 0x000e), and SOPInstanceUID (0x0008, 0x0018)"
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-      requestBody:
-        content:
-          application/json:
-            schema:
-              properties:
-                Series:
-                  type: array
-                  items:
-                    type: string
-                  description: Series gives the list of series to be separated from the parent study (mandatory option). These series must all be children of the same source study, that is specified in the URI.
-                Replace:
-                  type: object
-                  description: Replace allows to overwrite the DICOM tags that are part of the "Patient Module Attributes" and the "General Study Module Attributes", as specified by the DICOM 2011 standard in Tables C.7-1 and C.7-3.
-                Remove:
-                  type: array
-                  items:
-                    type: string
-                  description: Remove allows to remove DICOM tags from the same modules as in the Replace options.
-                KeepSource:
-                  type: boolean
-                  description: KeepSource (Boolean value), if set to true, instructs Orthanc to keep a copy of the original series in the source study. By default, the original series are deleted from Orthanc.
-                Synchronous:
-                  type: boolean
-                  default: true
-                  description: If Synchronous is set to false then this operation runs as an Orthanc job. The output of this request will indicate the Job ID.
-                Priority:
-                  type: number
-                  default: 0
-                  description: If Synchronous is set to false then this sets the priority of the job. The default priority is 0.
-            example: {"Series":["6ca4c9f3-5e895cb3-4d82c6da-09e060fe-9c59f228"],"Replace":{"PatientName":"HELLO"},"Remove":["AccessionNumber"]}
-      responses:
-        200:
-          description: Success
-          
-  /studies/{Id}/merge:
-    post:
-      tags: [Split/merge DICOM studies]
-      description: "Merge DICOM series into another DICOM study. By issuing this command, the DICOM series whose Orthanc identifier is ef2ce55f-9342856a-aee23907-2667e859-9f3b734d, will be merged into target study with identifier Id in the URL. As in the case of splitting, this is done by updating the following DICOM tags: StudyInstanceUID (0x0020, 0x000d), SeriesInstanceUID (0x0020, 0x000e), and SOPInstanceUID (0x0008, 0x0018). Furthermore, all the DICOM tags that are part of the “Patient Module Attributes” and the “General Study Module Attributes” (as specified by the DICOM 2011 standard in Tables C.7-1 and C.7-3), are modified to match the target study."
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-      requestBody:
-        content:
-          application/json:
-            schema:
-              properties:
-                Resources:
-                  type: array
-                  items:
-                    type: string
-                  description: Resources gives the list of source studies or source series that are to be merged into the target study.
-                KeepSource:
-                  type: boolean
-                  description: KeepSource (Boolean value), if set to true, instructs Orthanc to keep the source studies and series. By default, the original resources are deleted from Orthanc.
-                Synchronous:
-                  type: boolean
-                  default: true
-                  description: If Synchronous is set to false then this operation runs as an Orthanc job. The output of this request will indicate the Job ID.
-                Priority:
-                  type: number
-                  default: 0
-                  description: If Synchronous is set to false then this sets the priority of the job. The default priority is 0.
-            example: {"Resources":["ef2ce55f-9342856a-aee23907-2667e859-9f3b734d"]}
-      responses:
-        200:
-          description: Success
-
-  /instances/{Id}/frames:
-    get:
-      tags: [Frames]
-      description: Get the list of frames for a DICOM instance.
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-      responses:
-        200:
-          description: Success
-          content:
-            application/json:
-              schema:
-                type: array
-                items:
-                  type: number
-              example: [0, 75]
-  /instances/{Id}/frames/{Idx}/{PixelFormat}:
-    get:
-      tags: [Frames]
-      description: Get the image data of a frame within an instance.
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-        - name: Idx
-          required: true
-          in: path
-          schema:
-            type: number
-        - name: PixelFormat
-          required: true
-          in: path
-          schema:
-            type: string
-            enum:
-              - image-uint8
-              - image-uint16
-              - image-int16
-              - matlab
-              - raw
-              - raw.gz
-        - name: Accept
-          required: true
-          in: header
-          schema:
-            type: string
-            enum:
-              - image/png
-              - image/jpeg
-              - image/x-portable-arbitrarymap
-      responses:
-        200:
-          description: Image
-          content:
-            image/png: {}
-            image/jpg: {}
-            image/x-portable-arbitrarymap: {}
-            application/octet-stream: {}
-            text/plain: {}
-  /instances/{Id}/frames/{Idx}/preview:
-    get:
-      tags: [Frames]
-      description: Download a preview image of the frame of a DICOM instance.
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-        - name: Idx
-          required: true
-          in: path
-          schema:
-            type: number
-        - name: Accept
-          description: Default is image/png
-          required: false
-          in: header
-          schema:
-            type: string
-            enum:
-              - image/png
-              - image/jpeg
-      responses:
-        200:
-          description: DICOM preview
-          content:
-            image/png: {}
-            image/jpg: {}
-            
-  /tools/lookup:
-    post:
-      tags: [Lookup]
-      description: Lookup resources by their UID
-      requestBody:
-        content:
-          text/plain:
-            example: "1.2.826.0.1.3680043.8.1055.1.20111103111148288.81713267.86905863"
-      responses:
-        200:
-          description: Success
-          content:
-            application/json:
-              schema:
-                type: array
-                items:
-                  properties:
-                    ID:
-                      type: string
-                    Path:
-                      type: string
-                    Type:
-                      type: string
-                      enum:
-                        - Patient
-                        - Study
-                        - Series
-                        - Instance
-                  example: {
-      "ID" : "53a15d3a-ec236c65-5958be97-e31b8725-5f55ca69",
-      "Path" : "/instances/53a15d3a-ec236c65-5958be97-e31b8725-5f55ca69",
-      "Type" : "Instance"
-   }
-   
-  /tools/create-archive:
-    post:
-      tags: [Archive]
-      description: Create an archive (zip) of the specified resource ID's as a collection of DICOM files.
-      requestBody:
-        content:
-          application/json:
-            schema:
-              oneOf:
-                - type: array
-                  items:
-                    type: string
-                - properties:
-                    Synchronous:
-                      type: boolean
-                      default: true
-                      description: If synchronous is set to false then the archive is created through a job. The job ID and path will be given in the response. Once that job is complete then you can access the archive from the /jobs/{Id}/archive endpoint.
-                    Resources:
-                      type: array
-                      items:
-                        type: string
-              example: [ 
-            'ca29faea-b6a0e17f-067743a1-8b778011-a48b2a17',
-            '0a9b3153-2512774b-2d9580de-1fc3dcf6-3bd83918',
-            '1e2c125c-411b8e86-3f4fe68e-a7584dd3-c6da78f0'
-        ]
-      responses:
-        200:
-          description: Success
-          content:
-            application/zip: {}
-            application/json:
-              schema:
-                properties:
-                  ID:
-                    type: string
-                  Path:
-                    type: string
-                example: {
-   "ID" : "6c5bab22-79ae-4eca-b0af-d979431801bd",
-   "Path" : "/jobs/6c5bab22-79ae-4eca-b0af-d979431801bd"
-}
-   
-  /tools/default-encoding:
-    get:
-      tags: [I18N]
-      description: Get the default text encoding for the Orthanc server.
-      responses:
-        200:
-          description: Success
-          content:
-            text/plain:
-              example: Latin1
-    post:
-      tags: [I18N]
-      description: Set the default text encoding for the Orthanc server.
-      requestBody:
-        content:
-          text/plain:
-            example: "Latin1"
-      responses:
-        200:
-          description: Success
-          
-  /jobs:
-    get:
-      tags: [Jobs]
-      description: The list of all jobs can be retrieved as follows.
-      responses:
-        200:
-          description: Success
-          content:
-            application/json:
-              schema:
-                type: array
-                items:
-                  type: string
-              example: [ "e0d12aac-47eb-454f-bb7f-9857931e2904" ]
-              
-  /jobs/{Id}:
-    get:
-      tags: [Jobs]
-      description: The list of all jobs can be retrieved as follows.
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-      responses:
-        200:
-          description: Success
-          content:
-            application/json:
-              schema:
-                properties:
-                  CompletionTime:
-                    type: string
-                  Content:
-                    type: array
-                    items:
-                      properties:
-                        Description:
-                          type: string
-                        InstanceCount:
-                          type: number
-                        UncompressedSizeMB:
-                          type: number
-                  CreationTime:
-                    type: string
-                  EffectiveRuntime:
-                    type: number
-                  ErrorCode:
-                    type: number
-                  ErrorDescription:
-                    type: string
-                  ID:
-                    type: string
-                  Priority:
-                    type: number
-                  Progress:
-                    type: number
-                  State:
-                    type: string
-                    enum:
-                      - Success
-                      - Failure
-                      - Pending
-                      - Running
-                      - Paused
-                      - Retry
-                  Timestamp:
-                    type: string
-                  Type:
-                    type: string
-              example: {
-  "CompletionTime" : "20190306T095223.753851",
-  "Content" : {
-    "Description" : "REST API",
-    "InstancesCount" : 1,
-    "UncompressedSizeMB" : 0
-  },
-  "CreationTime" : "20190306T095223.750666",
-  "EffectiveRuntime" : 0.001,
-  "ErrorCode" : 0,
-  "ErrorDescription" : "Success",
-  "ID" : "e0d12aac-47eb-454f-bb7f-9857931e2904",
-  "Priority" : 0,
-  "Progress" : 100,
-  "State" : "Success",
-  "Timestamp" : "20190306T095408.556082",
-  "Type" : "Archive"
-}
-  /jobs/{Id}/archive:
-    get:
-      tags: [Jobs]
-      description: Get the archive generated by the job. Note that the job must be an archive job and it must be complete.
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-      responses:
-        200:
-          description: Success
-          content:
-            application/zip: {}
-  /jobs/{Id}/cancel:
-    post:
-      tags: [Jobs]
-      description: Cancel the job
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-      responses:
-       200:
-         description: Success
-  /jobs/{Id}/pause:
-    post:
-      tags: [Jobs]
-      description: Pause the job
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-      responses:
-       200:
-         description: Success
-  /jobs/{Id}/resume:
-    post:
-      tags: [Jobs]
-      description: Resume the job
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-      responses:
-       200:
-         description: Success
-  /jobs/{Id}/resubmit:
-    post:
-      tags: [Jobs]
-      description: Retry the job
-      parameters:
-        - name: Id
-          required: true
-          in: path
-          schema:
-            type: string
-      responses:
-       200:
-         description: Success
-         
-  /tools/create-dicom:
-    post:
-      tags: [PDF]
-      description: The /tools/create-dicom URI can be used to upload a PDF file to Orthanc. You can retrieve the PDF from the instance using /instances/{Id}/pdf.
-      requestBody:
-        content:
-          application/json:
-            schema:
-              properties:
-                Tags:
-                  properties:
-                    PatientName:
-                      type: string
-                    Modality:
-                      type: string
-                Content:
-                  type: string
-                  pattern: 'data:application/pdf;base64,.*'
-                  description: Base 64 encoded bytes of the PDF to store.
-            example: {"Tags" : {"PatientName" : "Benjamino", "Modality" : "CT"},"Content" : "data:application/pdf;base64,<base64contentsofpdf>"}
-      responses:
-        200:
-          description: The ID of the new DICOM instance is returned.
-          content:
-            text/plain:
-              example: "e0d12aac-47eb-454f-bb7f-9857931e2904"
-
-  /tools/metrics-prometheus:
-    get:
-      tags: [Prometheus Metrics]
-      description: Orthanc publishes its metrics according to the text-based format of Prometheus (check also the OpenMetrics project), onto the /tools/metrics-prometheus URI of the REST API.
-      responses:
-        200:
-          description: Success
-          content:
-            text/plain:
-              example: |
-                orthanc_count_instances 1 1551868380543
-                orthanc_count_patients 1 1551868380543
-                orthanc_count_series 1 1551868380543
-                orthanc_count_studies 1 1551868380543
-                orthanc_disk_size_mb 0.0135002136 1551868380543
-                orthanc_jobs_completed 1 1551868380543
-                orthanc_jobs_failed 0 1551868380543
-                orthanc_jobs_pending 0 1551868380543
-                orthanc_jobs_running 0 1551868380543
-                orthanc_jobs_success 1 1551868380543
-                orthanc_rest_api_active_requests 1 1551868380543
-                orthanc_rest_api_duration_ms 0 1551868094265
-                orthanc_storage_create_duration_ms 0 1551865919315
-                orthanc_storage_read_duration_ms 0 1551865943752
-                orthanc_store_dicom_duration_ms 5 1551865919319
-                orthanc_uncompressed_size_mb 0.0135002136 1551868380543
-
-  /tools/metrics:
-    get:
-      tags: [Prometheus Metrics]
-      description: Get the enablement state of the metrics gathering.
-      responses:
-        200:
-          description: Success
-          content:
-            text/plain:
-              example: "1"
-    put:
-      tags: [Prometheus Metrics]
-      description: Set the enablement state of the metrics gathering.
-      requestBody:
-        content:
-          text/plain:
-            example: "1"
-      responses:
-        200:
-          description: Success
-
-  /system:
-    get:
-      tags: [System]
-      description: Get system information for the Orthanc server.
-      responses:
-        200:
-          description: Success
-          content:
-            application/json:
-              schema:
-                properties:
-                  ApiVersion:
-                    type: number
-                  DatabaseBackendPlugin:
-                    type: string
-                  DatabaseVersion:
-                    type: number
-                  DicomAet:
-                    type: string
-                  DicomPort:
-                    type: number
-                  HttpPort:
-                    type: number
-                  Name:
-                    type: string
-                  PluginsEnabled:
-                    type: boolean
-                  StorageAreaPlugin:
-                    type: string
-                  Version:
-                    type: string
-              example: {
-   "ApiVersion" : 3,
-   "DatabaseBackendPlugin" : null,
-   "DatabaseVersion" : 6,
-   "DicomAet" : "ORTHANC",
-   "DicomPort" : 4242,
-   "HttpPort" : 8042,
-   "Name" : "Orthanc Demo",
-   "PluginsEnabled" : true,
-   "StorageAreaPlugin" : null,
-   "Version" : "1.5.7"
-}
-
-  /statistics:
-    get:
-      tags: [Statistics]
-      description: Get statistics about the data stored in Orthanc.
-      responses:
-        200:
-          description: Success
-          content:
-            application/json:
-              schema:
-                properties:
-                  CountInstances:
-                    type: number
-                  CountPatients:
-                    type: number
-                  CountSeries:
-                    type: number
-                  CountStudies:
-                    type: number
-                  TotalDiskSize:
-                    type: string
-                  TotalDiskSizeMB:
-                    type: number
-                  TotalUncompressedSize:
-                    type: string
-                  TotalUncompressedSizeMB:
-                    type: number
-              example: {
-   "CountInstances" : 2352,
-   "CountPatients" : 7,
-   "CountSeries" : 23,
-   "CountStudies" : 7,
-   "TotalDiskSize" : "913213057",
-   "TotalDiskSizeMB" : 870,
-   "TotalUncompressedSize" : "913213057",
-   "TotalUncompressedSizeMB" : 870
-}
-
-  /tools/execute-script:
-    post:
-      tags: [Lua]
-      description: Execute the posted Lua script
-      requestBody:
-        content:
-          text/plain:
-            example: print(42)
-      responses:
-        200:
-          description: Script executed
-          content:
-            text/plain:
-              example: "42"
\ No newline at end of file
--- a/Sphinx/source/faq/orthanc-storage.rst	Wed Dec 30 07:28:25 2020 +0100
+++ b/Sphinx/source/faq/orthanc-storage.rst	Wed Dec 30 07:55:12 2020 +0100
@@ -11,7 +11,9 @@
 DICOM files it receives in a folder called ``OrthancStorage`` on the
 filesystem. Orthanc also associates each incoming DICOM file with a
 JSON file that summarizes all its DICOM tags, which speeds up
-subsequent processing by avoiding a costly DICOM parsing.
+subsequent processing by avoiding a costly DICOM parsing (these
+summaries are refered to as ``DICOM-as-JSON`` :ref:`attachments
+<metadata>`).
 
 More generally, the ``OrthancStorage`` folder contains a set of
 so-called **attachments**, that may correspond to either a DICOM file,
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Sphinx/source/users/rest-cheatsheet.csv	Wed Dec 30 07:55:12 2020 +0100
@@ -0,0 +1,214 @@
+Path,GET,POST,DELETE,PUT,Summary
+``/changes``,`GET <https://api.orthanc-server.com/index.html#tag/Tracking-changes/paths/~1changes/get>`__,,`DELETE <https://api.orthanc-server.com/index.html#tag/Tracking-changes/paths/~1changes/delete>`__,,List changes
+``/exports``,`GET <https://api.orthanc-server.com/index.html#tag/Tracking-changes/paths/~1exports/get>`__,,`DELETE <https://api.orthanc-server.com/index.html#tag/Tracking-changes/paths/~1exports/delete>`__,,List exports
+``/instances``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances/get>`__,`POST <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances/post>`__,,,List the available instances
+``/instances/{id}``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}/get>`__,,`DELETE <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}/delete>`__,,Get information about some instance
+``/instances/{id}/anonymize``,,`POST <https://api.orthanc-server.com/index.html#tag/Instance/paths/~1instances~1{id}~1anonymize/post>`__,,,Anonymize instance
+``/instances/{id}/attachments``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1attachments/get>`__,,,,List attachments
+``/instances/{id}/attachments/{name}``,`GET <https://api.orthanc-server.com/index.html#tag/Other/paths/~1instances~1{id}~1attachments~1{name}/get>`__,,`DELETE <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1attachments~1{name}/delete>`__,`PUT <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1attachments~1{name}/put>`__,List operations on attachments
+``/instances/{id}/attachments/{name}/compress``,,`POST <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1attachments~1{name}~1compress/post>`__,,,Compress attachment
+``/instances/{id}/attachments/{name}/compressed-data``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1attachments~1{name}~1compressed-data/get>`__,,,,Get attachment (no decompression)
+``/instances/{id}/attachments/{name}/compressed-md5``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1attachments~1{name}~1compressed-md5/get>`__,,,,Get MD5 of attachment on disk
+``/instances/{id}/attachments/{name}/compressed-size``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1attachments~1{name}~1compressed-size/get>`__,,,,Get size of attachment on disk
+``/instances/{id}/attachments/{name}/data``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1attachments~1{name}~1data/get>`__,,,,Get attachment
+``/instances/{id}/attachments/{name}/is-compressed``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1attachments~1{name}~1is-compressed/get>`__,,,,Is attachment compressed?
+``/instances/{id}/attachments/{name}/md5``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1attachments~1{name}~1md5/get>`__,,,,Get MD5 of attachment
+``/instances/{id}/attachments/{name}/size``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1attachments~1{name}~1size/get>`__,,,,Get size of attachment
+``/instances/{id}/attachments/{name}/uncompress``,,`POST <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1attachments~1{name}~1uncompress/post>`__,,,Uncompress attachment
+``/instances/{id}/attachments/{name}/verify-md5``,,`POST <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1attachments~1{name}~1verify-md5/post>`__,,,Verify attachment
+``/instances/{id}/content``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1content/get>`__,,,,Get raw tag
+``/instances/{id}/export``,,`POST <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1export/post>`__,,,Write DICOM onto filesystem
+``/instances/{id}/file``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1file/get>`__,,,,Download DICOM
+``/instances/{id}/frames``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1frames/get>`__,,,,List available frames
+``/instances/{id}/frames/{frame}``,`GET <https://api.orthanc-server.com/index.html#tag/Other/paths/~1instances~1{id}~1frames~1{frame}/get>`__,,,,List operations
+``/instances/{id}/frames/{frame}/image-int16``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1frames~1{frame}~1image-int16/get>`__,,,,Decode a frame (int16)
+``/instances/{id}/frames/{frame}/image-uint16``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1frames~1{frame}~1image-uint16/get>`__,,,,Decode a frame (uint16)
+``/instances/{id}/frames/{frame}/image-uint8``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1frames~1{frame}~1image-uint8/get>`__,,,,Decode a frame (uint8)
+``/instances/{id}/frames/{frame}/matlab``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1frames~1{frame}~1matlab/get>`__,,,,Decode frame for Matlab
+``/instances/{id}/frames/{frame}/preview``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1frames~1{frame}~1preview/get>`__,,,,Decode a frame (preview)
+``/instances/{id}/frames/{frame}/raw``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1frames~1{frame}~1raw/get>`__,,,,Access raw frame
+``/instances/{id}/frames/{frame}/raw.gz``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1frames~1{frame}~1raw.gz/get>`__,,,,Access raw frame (compressed)
+``/instances/{id}/frames/{frame}/rendered``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1frames~1{frame}~1rendered/get>`__,,,,Render a frame
+``/instances/{id}/header``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1header/get>`__,,,,Get DICOM meta-header
+``/instances/{id}/image-int16``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1image-int16/get>`__,,,,Decode an image (int16)
+``/instances/{id}/image-uint16``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1image-uint16/get>`__,,,,Decode an image (uint16)
+``/instances/{id}/image-uint8``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1image-uint8/get>`__,,,,Decode an image (uint8)
+``/instances/{id}/matlab``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1matlab/get>`__,,,,Decode frame for Matlab
+``/instances/{id}/metadata``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1metadata/get>`__,,,,List metadata
+``/instances/{id}/metadata/{name}``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1metadata~1{name}/get>`__,,`DELETE <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1metadata~1{name}/delete>`__,`PUT <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1metadata~1{name}/put>`__,Get metadata
+``/instances/{id}/modify``,,`POST <https://api.orthanc-server.com/index.html#tag/Instance/paths/~1instances~1{id}~1modify/post>`__,,,Modify instance
+``/instances/{id}/module``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1module/get>`__,,,,Get instance module
+``/instances/{id}/patient``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1patient/get>`__,,,,Get parent patient
+``/instances/{id}/pdf``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1pdf/get>`__,,,,Get embedded PDF
+``/instances/{id}/preview``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1preview/get>`__,,,,Decode an image (preview)
+``/instances/{id}/reconstruct``,,`POST <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1reconstruct/post>`__,,,Reconstruct tags of instance
+``/instances/{id}/rendered``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1rendered/get>`__,,,,Render an image
+``/instances/{id}/series``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1series/get>`__,,,,Get parent series
+``/instances/{id}/simplified-tags``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1simplified-tags/get>`__,,,,Get human-readable tags
+``/instances/{id}/statistics``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1statistics/get>`__,,,,Get instance statistics
+``/instances/{id}/study``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1study/get>`__,,,,Get parent study
+``/instances/{id}/tags``,`GET <https://api.orthanc-server.com/index.html#tag/Instances/paths/~1instances~1{id}~1tags/get>`__,,,,Get DICOM tags
+``/jobs``,`GET <https://api.orthanc-server.com/index.html#tag/Jobs/paths/~1jobs/get>`__,,,,List jobs
+``/jobs/{id}``,`GET <https://api.orthanc-server.com/index.html#tag/Jobs/paths/~1jobs~1{id}/get>`__,,,,Get job
+``/jobs/{id}/cancel``,,`POST <https://api.orthanc-server.com/index.html#tag/Jobs/paths/~1jobs~1{id}~1cancel/post>`__,,,Cancel job
+``/jobs/{id}/pause``,,`POST <https://api.orthanc-server.com/index.html#tag/Jobs/paths/~1jobs~1{id}~1pause/post>`__,,,Pause job
+``/jobs/{id}/resubmit``,,`POST <https://api.orthanc-server.com/index.html#tag/Jobs/paths/~1jobs~1{id}~1resubmit/post>`__,,,Resubmit job
+``/jobs/{id}/resume``,,`POST <https://api.orthanc-server.com/index.html#tag/Jobs/paths/~1jobs~1{id}~1resume/post>`__,,,Resume job
+``/jobs/{id}/{key}``,`GET <https://api.orthanc-server.com/index.html#tag/Jobs/paths/~1jobs~1{id}~1{key}/get>`__,,,,Get job output
+``/modalities``,`GET <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1modalities/get>`__,,,,List DICOM modalities
+``/modalities/{id}``,`GET <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1modalities~1{id}/get>`__,,`DELETE <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1modalities~1{id}/delete>`__,`PUT <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1modalities~1{id}/put>`__,List operations on modality
+``/modalities/{id}/configuration``,`GET <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1modalities~1{id}~1configuration/get>`__,,,,Get modality configuration
+``/modalities/{id}/echo``,,`POST <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1modalities~1{id}~1echo/post>`__,,,Trigger C-ECHO SCU
+``/modalities/{id}/find``,,`(post) <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1modalities~1{id}~1find/post>`__,,,*(deprecated)* Hierarchical C-FIND SCU
+``/modalities/{id}/find-instance``,,`(post) <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1modalities~1{id}~1find-instance/post>`__,,,*(deprecated)* C-FIND SCU for instances
+``/modalities/{id}/find-patient``,,`(post) <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1modalities~1{id}~1find-patient/post>`__,,,*(deprecated)* C-FIND SCU for patients
+``/modalities/{id}/find-series``,,`(post) <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1modalities~1{id}~1find-series/post>`__,,,*(deprecated)* C-FIND SCU for series
+``/modalities/{id}/find-study``,,`(post) <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1modalities~1{id}~1find-study/post>`__,,,*(deprecated)* C-FIND SCU for studies
+``/modalities/{id}/find-worklist``,,`POST <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1modalities~1{id}~1find-worklist/post>`__,,,C-FIND SCU for worklist
+``/modalities/{id}/move``,,`POST <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1modalities~1{id}~1move/post>`__,,,Trigger C-MOVE SCU
+``/modalities/{id}/query``,,`POST <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1modalities~1{id}~1query/post>`__,,,Trigger C-FIND SCU
+``/modalities/{id}/storage-commitment``,,`POST <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1modalities~1{id}~1storage-commitment/post>`__,,,Trigger storage commitment request
+``/modalities/{id}/store``,,`POST <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1modalities~1{id}~1store/post>`__,,,Trigger C-STORE SCU
+``/modalities/{id}/store-straight``,,`POST <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1modalities~1{id}~1store-straight/post>`__,,,Straight C-STORE SCU
+``/patients``,`GET <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients/get>`__,,,,List the available patients
+``/patients/{id}``,`GET <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}/get>`__,,`DELETE <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}/delete>`__,,Get information about some patient
+``/patients/{id}/anonymize``,,`POST <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}~1anonymize/post>`__,,,Anonymize patient
+``/patients/{id}/archive``,`GET <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}~1archive/get>`__,`POST <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}~1archive/post>`__,,,Create ZIP archive
+``/patients/{id}/attachments``,`GET <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}~1attachments/get>`__,,,,List attachments
+``/patients/{id}/attachments/{name}``,`GET <https://api.orthanc-server.com/index.html#tag/Other/paths/~1patients~1{id}~1attachments~1{name}/get>`__,,`DELETE <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}~1attachments~1{name}/delete>`__,`PUT <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}~1attachments~1{name}/put>`__,List operations on attachments
+``/patients/{id}/attachments/{name}/compress``,,`POST <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}~1attachments~1{name}~1compress/post>`__,,,Compress attachment
+``/patients/{id}/attachments/{name}/compressed-data``,`GET <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}~1attachments~1{name}~1compressed-data/get>`__,,,,Get attachment (no decompression)
+``/patients/{id}/attachments/{name}/compressed-md5``,`GET <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}~1attachments~1{name}~1compressed-md5/get>`__,,,,Get MD5 of attachment on disk
+``/patients/{id}/attachments/{name}/compressed-size``,`GET <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}~1attachments~1{name}~1compressed-size/get>`__,,,,Get size of attachment on disk
+``/patients/{id}/attachments/{name}/data``,`GET <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}~1attachments~1{name}~1data/get>`__,,,,Get attachment
+``/patients/{id}/attachments/{name}/is-compressed``,`GET <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}~1attachments~1{name}~1is-compressed/get>`__,,,,Is attachment compressed?
+``/patients/{id}/attachments/{name}/md5``,`GET <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}~1attachments~1{name}~1md5/get>`__,,,,Get MD5 of attachment
+``/patients/{id}/attachments/{name}/size``,`GET <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}~1attachments~1{name}~1size/get>`__,,,,Get size of attachment
+``/patients/{id}/attachments/{name}/uncompress``,,`POST <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}~1attachments~1{name}~1uncompress/post>`__,,,Uncompress attachment
+``/patients/{id}/attachments/{name}/verify-md5``,,`POST <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}~1attachments~1{name}~1verify-md5/post>`__,,,Verify attachment
+``/patients/{id}/instances``,`GET <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}~1instances/get>`__,,,,Get child instances
+``/patients/{id}/instances-tags``,`GET <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}~1instances-tags/get>`__,,,,Get tags of instances
+``/patients/{id}/media``,`GET <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}~1media/get>`__,`POST <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}~1media/post>`__,,,Create DICOMDIR media
+``/patients/{id}/metadata``,`GET <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}~1metadata/get>`__,,,,List metadata
+``/patients/{id}/metadata/{name}``,`GET <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}~1metadata~1{name}/get>`__,,`DELETE <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}~1metadata~1{name}/delete>`__,`PUT <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}~1metadata~1{name}/put>`__,Get metadata
+``/patients/{id}/modify``,,`POST <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}~1modify/post>`__,,,Modify patient
+``/patients/{id}/module``,`GET <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}~1module/get>`__,,,,Get patient module
+``/patients/{id}/protected``,`GET <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}~1protected/get>`__,,,`PUT <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}~1protected/put>`__,Is the patient protected against recycling?
+``/patients/{id}/reconstruct``,,`POST <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}~1reconstruct/post>`__,,,Reconstruct tags of patient
+``/patients/{id}/series``,`GET <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}~1series/get>`__,,,,Get child series
+``/patients/{id}/shared-tags``,`GET <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}~1shared-tags/get>`__,,,,Get shared tags
+``/patients/{id}/statistics``,`GET <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}~1statistics/get>`__,,,,Get patient statistics
+``/patients/{id}/studies``,`GET <https://api.orthanc-server.com/index.html#tag/Patients/paths/~1patients~1{id}~1studies/get>`__,,,,Get child studies
+``/peers``,`GET <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1peers/get>`__,,,,List Orthanc peers
+``/peers/{id}``,`GET <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1peers~1{id}/get>`__,,`DELETE <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1peers~1{id}/delete>`__,`PUT <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1peers~1{id}/put>`__,List operations on peer
+``/peers/{id}/configuration``,`GET <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1peers~1{id}~1configuration/get>`__,,,,Get peer configuration
+``/peers/{id}/store``,,`POST <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1peers~1{id}~1store/post>`__,,,Send to Orthanc peer
+``/peers/{id}/system``,`GET <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1peers~1{id}~1system/get>`__,,,,Get peer system information
+``/plugins``,`GET <https://api.orthanc-server.com/index.html#tag/System/paths/~1plugins/get>`__,,,,List plugins
+``/plugins/explorer.js``,`GET <https://api.orthanc-server.com/index.html#tag/System/paths/~1plugins~1explorer.js/get>`__,,,,JavaScript extensions to Orthanc Explorer
+``/plugins/{id}``,`GET <https://api.orthanc-server.com/index.html#tag/System/paths/~1plugins~1{id}/get>`__,,,,Get plugin
+``/queries``,`GET <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1queries/get>`__,,,,List query/retrieve operations
+``/queries/{id}``,`GET <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1queries~1{id}/get>`__,,`DELETE <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1queries~1{id}/delete>`__,,List operations on a query
+``/queries/{id}/answers``,`GET <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1queries~1{id}~1answers/get>`__,,,,List answers to a query
+``/queries/{id}/answers/{index}``,`GET <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1queries~1{id}~1answers~1{index}/get>`__,,,,List operations on an answer
+``/queries/{id}/answers/{index}/content``,`GET <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1queries~1{id}~1answers~1{index}~1content/get>`__,,,,Get one answer
+``/queries/{id}/answers/{index}/query-instances``,,`POST <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1queries~1{id}~1answers~1{index}~1query-instances/post>`__,,,Query the child instances of an answer
+``/queries/{id}/answers/{index}/query-series``,,`POST <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1queries~1{id}~1answers~1{index}~1query-series/post>`__,,,Query the child series of an answer
+``/queries/{id}/answers/{index}/query-studies``,,`POST <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1queries~1{id}~1answers~1{index}~1query-studies/post>`__,,,Query the child studies of an answer
+``/queries/{id}/answers/{index}/retrieve``,,`POST <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1queries~1{id}~1answers~1{index}~1retrieve/post>`__,,,Retrieve one answer
+``/queries/{id}/level``,`GET <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1queries~1{id}~1level/get>`__,,,,Get level of original query
+``/queries/{id}/modality``,`GET <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1queries~1{id}~1modality/get>`__,,,,Get modality of original query
+``/queries/{id}/query``,`GET <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1queries~1{id}~1query/get>`__,,,,Get original query arguments
+``/queries/{id}/retrieve``,,`POST <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1queries~1{id}~1retrieve/post>`__,,,Retrieve all answers
+``/series``,`GET <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series/get>`__,,,,List the available series
+``/series/{id}``,`GET <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series~1{id}/get>`__,,`DELETE <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series~1{id}/delete>`__,,Get information about some series
+``/series/{id}/anonymize``,,`POST <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series~1{id}~1anonymize/post>`__,,,Anonymize series
+``/series/{id}/archive``,`GET <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series~1{id}~1archive/get>`__,`POST <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series~1{id}~1archive/post>`__,,,Create ZIP archive
+``/series/{id}/attachments``,`GET <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series~1{id}~1attachments/get>`__,,,,List attachments
+``/series/{id}/attachments/{name}``,`GET <https://api.orthanc-server.com/index.html#tag/Other/paths/~1series~1{id}~1attachments~1{name}/get>`__,,`DELETE <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series~1{id}~1attachments~1{name}/delete>`__,`PUT <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series~1{id}~1attachments~1{name}/put>`__,List operations on attachments
+``/series/{id}/attachments/{name}/compress``,,`POST <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series~1{id}~1attachments~1{name}~1compress/post>`__,,,Compress attachment
+``/series/{id}/attachments/{name}/compressed-data``,`GET <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series~1{id}~1attachments~1{name}~1compressed-data/get>`__,,,,Get attachment (no decompression)
+``/series/{id}/attachments/{name}/compressed-md5``,`GET <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series~1{id}~1attachments~1{name}~1compressed-md5/get>`__,,,,Get MD5 of attachment on disk
+``/series/{id}/attachments/{name}/compressed-size``,`GET <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series~1{id}~1attachments~1{name}~1compressed-size/get>`__,,,,Get size of attachment on disk
+``/series/{id}/attachments/{name}/data``,`GET <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series~1{id}~1attachments~1{name}~1data/get>`__,,,,Get attachment
+``/series/{id}/attachments/{name}/is-compressed``,`GET <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series~1{id}~1attachments~1{name}~1is-compressed/get>`__,,,,Is attachment compressed?
+``/series/{id}/attachments/{name}/md5``,`GET <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series~1{id}~1attachments~1{name}~1md5/get>`__,,,,Get MD5 of attachment
+``/series/{id}/attachments/{name}/size``,`GET <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series~1{id}~1attachments~1{name}~1size/get>`__,,,,Get size of attachment
+``/series/{id}/attachments/{name}/uncompress``,,`POST <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series~1{id}~1attachments~1{name}~1uncompress/post>`__,,,Uncompress attachment
+``/series/{id}/attachments/{name}/verify-md5``,,`POST <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series~1{id}~1attachments~1{name}~1verify-md5/post>`__,,,Verify attachment
+``/series/{id}/instances``,`GET <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series~1{id}~1instances/get>`__,,,,Get child instances
+``/series/{id}/instances-tags``,`GET <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series~1{id}~1instances-tags/get>`__,,,,Get tags of instances
+``/series/{id}/media``,`GET <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series~1{id}~1media/get>`__,`POST <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series~1{id}~1media/post>`__,,,Create DICOMDIR media
+``/series/{id}/metadata``,`GET <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series~1{id}~1metadata/get>`__,,,,List metadata
+``/series/{id}/metadata/{name}``,`GET <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series~1{id}~1metadata~1{name}/get>`__,,`DELETE <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series~1{id}~1metadata~1{name}/delete>`__,`PUT <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series~1{id}~1metadata~1{name}/put>`__,Get metadata
+``/series/{id}/modify``,,`POST <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series~1{id}~1modify/post>`__,,,Modify series
+``/series/{id}/module``,`GET <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series~1{id}~1module/get>`__,,,,Get series module
+``/series/{id}/ordered-slices``,`(get) <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series~1{id}~1ordered-slices/get>`__,,,,*(deprecated)* Order the slices
+``/series/{id}/patient``,`GET <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series~1{id}~1patient/get>`__,,,,Get parent patient
+``/series/{id}/reconstruct``,,`POST <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series~1{id}~1reconstruct/post>`__,,,Reconstruct tags of series
+``/series/{id}/shared-tags``,`GET <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series~1{id}~1shared-tags/get>`__,,,,Get shared tags
+``/series/{id}/statistics``,`GET <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series~1{id}~1statistics/get>`__,,,,Get series statistics
+``/series/{id}/study``,`GET <https://api.orthanc-server.com/index.html#tag/Series/paths/~1series~1{id}~1study/get>`__,,,,Get parent study
+``/statistics``,`GET <https://api.orthanc-server.com/index.html#tag/System/paths/~1statistics/get>`__,,,,Get database statistics
+``/storage-commitment/{id}``,`GET <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1storage-commitment~1{id}/get>`__,,,,Get storage commitment report
+``/storage-commitment/{id}/remove``,,`POST <https://api.orthanc-server.com/index.html#tag/Networking/paths/~1storage-commitment~1{id}~1remove/post>`__,,,Remove after storage commitment
+``/studies``,`GET <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies/get>`__,,,,List the available studies
+``/studies/{id}``,`GET <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}/get>`__,,`DELETE <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}/delete>`__,,Get information about some study
+``/studies/{id}/anonymize``,,`POST <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}~1anonymize/post>`__,,,Anonymize study
+``/studies/{id}/archive``,`GET <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}~1archive/get>`__,`POST <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}~1archive/post>`__,,,Create ZIP archive
+``/studies/{id}/attachments``,`GET <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}~1attachments/get>`__,,,,List attachments
+``/studies/{id}/attachments/{name}``,`GET <https://api.orthanc-server.com/index.html#tag/Other/paths/~1studies~1{id}~1attachments~1{name}/get>`__,,`DELETE <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}~1attachments~1{name}/delete>`__,`PUT <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}~1attachments~1{name}/put>`__,List operations on attachments
+``/studies/{id}/attachments/{name}/compress``,,`POST <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}~1attachments~1{name}~1compress/post>`__,,,Compress attachment
+``/studies/{id}/attachments/{name}/compressed-data``,`GET <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}~1attachments~1{name}~1compressed-data/get>`__,,,,Get attachment (no decompression)
+``/studies/{id}/attachments/{name}/compressed-md5``,`GET <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}~1attachments~1{name}~1compressed-md5/get>`__,,,,Get MD5 of attachment on disk
+``/studies/{id}/attachments/{name}/compressed-size``,`GET <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}~1attachments~1{name}~1compressed-size/get>`__,,,,Get size of attachment on disk
+``/studies/{id}/attachments/{name}/data``,`GET <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}~1attachments~1{name}~1data/get>`__,,,,Get attachment
+``/studies/{id}/attachments/{name}/is-compressed``,`GET <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}~1attachments~1{name}~1is-compressed/get>`__,,,,Is attachment compressed?
+``/studies/{id}/attachments/{name}/md5``,`GET <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}~1attachments~1{name}~1md5/get>`__,,,,Get MD5 of attachment
+``/studies/{id}/attachments/{name}/size``,`GET <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}~1attachments~1{name}~1size/get>`__,,,,Get size of attachment
+``/studies/{id}/attachments/{name}/uncompress``,,`POST <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}~1attachments~1{name}~1uncompress/post>`__,,,Uncompress attachment
+``/studies/{id}/attachments/{name}/verify-md5``,,`POST <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}~1attachments~1{name}~1verify-md5/post>`__,,,Verify attachment
+``/studies/{id}/instances``,`GET <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}~1instances/get>`__,,,,Get child instances
+``/studies/{id}/instances-tags``,`GET <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}~1instances-tags/get>`__,,,,Get tags of instances
+``/studies/{id}/media``,`GET <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}~1media/get>`__,`POST <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}~1media/post>`__,,,Create DICOMDIR media
+``/studies/{id}/merge``,,`POST <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}~1merge/post>`__,,,Merge study
+``/studies/{id}/metadata``,`GET <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}~1metadata/get>`__,,,,List metadata
+``/studies/{id}/metadata/{name}``,`GET <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}~1metadata~1{name}/get>`__,,`DELETE <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}~1metadata~1{name}/delete>`__,`PUT <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}~1metadata~1{name}/put>`__,Get metadata
+``/studies/{id}/modify``,,`POST <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}~1modify/post>`__,,,Modify study
+``/studies/{id}/module``,`GET <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}~1module/get>`__,,,,Get study module
+``/studies/{id}/module-patient``,`GET <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}~1module-patient/get>`__,,,,Get patient module of study
+``/studies/{id}/patient``,`GET <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}~1patient/get>`__,,,,Get parent patient
+``/studies/{id}/reconstruct``,,`POST <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}~1reconstruct/post>`__,,,Reconstruct tags of study
+``/studies/{id}/series``,`GET <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}~1series/get>`__,,,,Get child series
+``/studies/{id}/shared-tags``,`GET <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}~1shared-tags/get>`__,,,,Get shared tags
+``/studies/{id}/split``,,`POST <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}~1split/post>`__,,,Split study
+``/studies/{id}/statistics``,`GET <https://api.orthanc-server.com/index.html#tag/Studies/paths/~1studies~1{id}~1statistics/get>`__,,,,Get study statistics
+``/system``,`GET <https://api.orthanc-server.com/index.html#tag/System/paths/~1system/get>`__,,,,Get system information
+``/tools``,`GET <https://api.orthanc-server.com/index.html#tag/Other/paths/~1tools/get>`__,,,,List operations
+``/tools/create-archive``,,`POST <https://api.orthanc-server.com/index.html#tag/System/paths/~1tools~1create-archive/post>`__,,,Create ZIP archive
+``/tools/create-dicom``,,`POST <https://api.orthanc-server.com/index.html#tag/System/paths/~1tools~1create-dicom/post>`__,,,Create one DICOM instance
+``/tools/create-media``,,`POST <https://api.orthanc-server.com/index.html#tag/System/paths/~1tools~1create-media/post>`__,,,Create DICOMDIR media
+``/tools/create-media-extended``,,`POST <https://api.orthanc-server.com/index.html#tag/System/paths/~1tools~1create-media-extended/post>`__,,,Create DICOMDIR media
+``/tools/default-encoding``,`GET <https://api.orthanc-server.com/index.html#tag/System/paths/~1tools~1default-encoding/get>`__,,,`PUT <https://api.orthanc-server.com/index.html#tag/System/paths/~1tools~1default-encoding/put>`__,Get default encoding
+``/tools/dicom-conformance``,`GET <https://api.orthanc-server.com/index.html#tag/System/paths/~1tools~1dicom-conformance/get>`__,,,,Get DICOM conformance
+``/tools/dicom-echo``,,`POST <https://api.orthanc-server.com/index.html#tag/System/paths/~1tools~1dicom-echo/post>`__,,,Trigger C-ECHO SCU
+``/tools/execute-script``,,`POST <https://api.orthanc-server.com/index.html#tag/System/paths/~1tools~1execute-script/post>`__,,,Execute Lua script
+``/tools/find``,,`POST <https://api.orthanc-server.com/index.html#tag/System/paths/~1tools~1find/post>`__,,,Look for local resources
+``/tools/generate-uid``,`GET <https://api.orthanc-server.com/index.html#tag/System/paths/~1tools~1generate-uid/get>`__,,,,Generate an identifier
+``/tools/invalidate-tags``,,`POST <https://api.orthanc-server.com/index.html#tag/System/paths/~1tools~1invalidate-tags/post>`__,,,Invalidate DICOM-as-JSON summaries
+``/tools/log-level``,`GET <https://api.orthanc-server.com/index.html#tag/Logs/paths/~1tools~1log-level/get>`__,,,`PUT <https://api.orthanc-server.com/index.html#tag/Logs/paths/~1tools~1log-level/put>`__,Get main log level
+``/tools/log-level-dicom``,`GET <https://api.orthanc-server.com/index.html#tag/Logs/paths/~1tools~1log-level-dicom/get>`__,,,`PUT <https://api.orthanc-server.com/index.html#tag/Logs/paths/~1tools~1log-level-dicom/put>`__,Get log level for `dicom`
+``/tools/log-level-generic``,`GET <https://api.orthanc-server.com/index.html#tag/Logs/paths/~1tools~1log-level-generic/get>`__,,,`PUT <https://api.orthanc-server.com/index.html#tag/Logs/paths/~1tools~1log-level-generic/put>`__,Get log level for `generic`
+``/tools/log-level-http``,`GET <https://api.orthanc-server.com/index.html#tag/Logs/paths/~1tools~1log-level-http/get>`__,,,`PUT <https://api.orthanc-server.com/index.html#tag/Logs/paths/~1tools~1log-level-http/put>`__,Get log level for `http`
+``/tools/log-level-jobs``,`GET <https://api.orthanc-server.com/index.html#tag/Logs/paths/~1tools~1log-level-jobs/get>`__,,,`PUT <https://api.orthanc-server.com/index.html#tag/Logs/paths/~1tools~1log-level-jobs/put>`__,Get log level for `jobs`
+``/tools/log-level-lua``,`GET <https://api.orthanc-server.com/index.html#tag/Logs/paths/~1tools~1log-level-lua/get>`__,,,`PUT <https://api.orthanc-server.com/index.html#tag/Logs/paths/~1tools~1log-level-lua/put>`__,Get log level for `lua`
+``/tools/log-level-plugins``,`GET <https://api.orthanc-server.com/index.html#tag/Logs/paths/~1tools~1log-level-plugins/get>`__,,,`PUT <https://api.orthanc-server.com/index.html#tag/Logs/paths/~1tools~1log-level-plugins/put>`__,Get log level for `plugins`
+``/tools/log-level-sqlite``,`GET <https://api.orthanc-server.com/index.html#tag/Logs/paths/~1tools~1log-level-sqlite/get>`__,,,`PUT <https://api.orthanc-server.com/index.html#tag/Logs/paths/~1tools~1log-level-sqlite/put>`__,Get log level for `sqlite`
+``/tools/lookup``,,`POST <https://api.orthanc-server.com/index.html#tag/System/paths/~1tools~1lookup/post>`__,,,Look for DICOM identifiers
+``/tools/metrics``,`GET <https://api.orthanc-server.com/index.html#tag/System/paths/~1tools~1metrics/get>`__,,,`PUT <https://api.orthanc-server.com/index.html#tag/System/paths/~1tools~1metrics/put>`__,Are metrics collected?
+``/tools/metrics-prometheus``,`GET <https://api.orthanc-server.com/index.html#tag/System/paths/~1tools~1metrics-prometheus/get>`__,,,,Get usage metrics
+``/tools/now``,`GET <https://api.orthanc-server.com/index.html#tag/System/paths/~1tools~1now/get>`__,,,,Get UTC time
+``/tools/now-local``,`GET <https://api.orthanc-server.com/index.html#tag/System/paths/~1tools~1now-local/get>`__,,,,Get local time
+``/tools/reconstruct``,,`POST <https://api.orthanc-server.com/index.html#tag/System/paths/~1tools~1reconstruct/post>`__,,,Reconstruct all the index
+``/tools/reset``,,`POST <https://api.orthanc-server.com/index.html#tag/System/paths/~1tools~1reset/post>`__,,,Restart Orthanc
+``/tools/shutdown``,,`POST <https://api.orthanc-server.com/index.html#tag/System/paths/~1tools~1shutdown/post>`__,,,Shutdown Orthanc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Sphinx/source/users/rest-cheatsheet.rst	Wed Dec 30 07:55:12 2020 +0100
@@ -0,0 +1,23 @@
+.. _cheatsheet:
+
+Cheat sheet of the REST API
+===========================
+
+This quick reference of the :ref:`REST API of Orthanc <rest>` is
+automatically generated from the source code of Orthanc. Clicking on
+one of the HTTP methods will open its full OpenAPI documentation.
+
+If you are looking for samples, check out the dedicated :ref:`FAQ
+entry <rest-samples>`.
+
+
+.. csv-table:: Reference
+               :header-rows: 1
+               :file: ./rest-cheatsheet.csv
+               :widths: 10, 2, 2, 2, 2, 10
+                        
+NB: Up to Orthanc 1.8.2, this cheat sheet was manually published as an
+`online spreadsheet
+<https://docs.google.com/spreadsheets/d/e/2PACX-1vSBEymDKGZgskFEFF6yzge5JovGHPK_FIbEnW5a6SWUbPkX06tkoObUHh6T1XQhgj-HqFd0AWSnVFOv/pubhtml>`__. This
+spreadsheet is still available online for history purpose, but is now
+left unmaintained.
--- a/Sphinx/source/users/rest.rst	Wed Dec 30 07:28:25 2020 +0100
+++ b/Sphinx/source/users/rest.rst	Wed Dec 30 07:55:12 2020 +0100
@@ -1101,10 +1101,9 @@
   <rest-advanced>`.
 * A :ref:`FAQ entry <rest-samples>` lists where you can find more
   advanced samples of the REST API of Orthanc.
-* The full documentation of the REST API is maintained as an online
-  spreadsheet accessible from the `documentation part of the official
-  Web site
-  <https://www.orthanc-server.com/static.php?page=documentation>`__
-  (click on the *Reference of the REST API* button).
-* A documentation of the REST API in the OpenAPI/Swagger format is
-  `available as work-in-progress <https://api.orthanc-server.com/>`__.
+* A :ref:`short reference of the REST API of Orthanc <cheatsheet>` is
+  part of the Orthanc Book.
+* The full documentation of the REST API in the OpenAPI/Swagger format
+  is `available online <https://api.orthanc-server.com/>`__. This
+  reference is automatically generated from the source code of
+  Orthanc.