DICOMweb Standard-API's gebruiken met Python

In dit artikel wordt beschreven hoe u kunt werken met de DICOMweb-service met behulp van Python en voorbeeld-DCM DICOM-bestanden®.

Gebruik deze voorbeeldbestanden:

  • blue-circle.dcm
  • dicom-metadata.csv
  • green-square.dcm
  • red-triangle.dcm

De bestandsnaam, studyUID, seriesUID en instanceUID van de DICOM-voorbeeldbestanden zijn:

Bestand StudyUID SeriesUID InstanceUID
green-square.dcm 1.2.826.0.1.3680043.8.498.13230779778012324449356534479549187420 1.2.826.0.1.3680043.8.498.45787841905473114233124723359129632652 1.2.826.0.1.3680043.8.498.12714725698140337137334606354172323212
red-triangle.dcm 1.2.826.0.1.3680043.8.498.13230779778012324449356534479549187420 1.2.826.0.1.3680043.8.498.45787841905473114233124723359129632652 1.2.826.0.1.3680043.8.498.47359123102728459884412887463296905395
blue-circle.dcm 1.2.826.0.1.3680043.8.498.13230779778012324449356534479549187420 1.2.826.0.1.3680043.8.498.77033797676425927098669402985243398207 1.2.826.0.1.3680043.8.498.13273713909719068980354078852867170114

Notitie

Elk van deze bestanden vertegenwoordigt één exemplaar en maakt deel uit van dezelfde studie. Ook maakt de groene vierkant en rode driehoek deel uit van dezelfde reeks, terwijl de blauwe cirkel zich in een aparte reeks bevindt.

Vereisten

Als u de DICOMweb Standard-API's wilt gebruiken, moet er een exemplaar van de DICOM-service zijn geïmplementeerd. Zie DICOM-service implementeren met behulp van Azure Portal voor meer informatie.

Nadat u een exemplaar van de DICOM-service hebt geïmplementeerd, haalt u de URL voor uw App Service op:

  1. Meld u aan bij de Azure-portal.
  2. Zoek recente resources en selecteer uw DICOM-service-exemplaar.
  3. Kopieer de service-URL van uw DICOM-service.
  4. Als u geen token hebt, raadpleegt u Toegangstoken ophalen voor de DICOM-service met behulp van Azure CLI.

Voor deze code krijgt u toegang tot een openbare preview van de Azure-service. Het is belangrijk dat u geen persoonlijke gezondheidsinformatie (PHI) uploadt.

Werken met de DICOM-service

De DICOMweb Standard maakt intensief gebruik van multipart/related HTTP-aanvragen in combinatie met DICOM-specifieke acceptheaders. Ontwikkelaars die bekend zijn met andere OP REST gebaseerde API's, vinden vaak het werken met de DICOMweb-standaard onhandig. Na de uitvoering is het echter eenvoudig te gebruiken. Het duurt maar een beetje vertrouwd om aan de slag te gaan.

De Python-bibliotheken importeren

Importeer eerst de benodigde Python-bibliotheken.

We implementeren dit voorbeeld met behulp van de synchrone requests bibliotheek. Voor asynchrone ondersteuning kunt u overwegen om een andere asynchrone bibliotheek te gebruiken httpx . Daarnaast importeren we twee ondersteunende functies urllib3 om ondersteuning te bieden voor het werken met multipart/related aanvragen.

Daarnaast importeren DefaultAzureCredential we om u aan te melden bij Azure en een token op te halen.

import requests
import pydicom
from pathlib import Path
from urllib3.filepost import encode_multipart_formdata, choose_boundary
from azure.identity import DefaultAzureCredential

Door de gebruiker gedefinieerde variabelen configureren

Vervang alle variabelewaarden die zijn verpakt in { } door uw eigen waarden. Controleer ook of eventuele samengestelde variabelen juist zijn. Wordt bijvoorbeeld base_url samengesteld met behulp van de service-URL en vervolgens toegevoegd aan de versie van de REST API die wordt gebruikt. De service-URL van uw DICOM-service is: https://<workspacename-dicomservicename>.dicom.azurehealthcareapis.com. U kunt Azure Portal gebruiken om naar de DICOM-service te navigeren en uw service-URL te verkrijgen. U kunt ook de DOCUMENTATIE voor API-versiebeheer voor DICOM-service bezoeken voor meer informatie over versiebeheer. Als u een aangepaste URL gebruikt, moet u die waarde overschrijven met uw eigen URL.

dicom_service_name = "{server-name}"
path_to_dicoms_dir = "{path to the folder that includes green-square.dcm and other dcm files}"

base_url = f"{Service URL}/v{version}"

study_uid = "1.2.826.0.1.3680043.8.498.13230779778012324449356534479549187420"; #StudyInstanceUID for all 3 examples
series_uid = "1.2.826.0.1.3680043.8.498.45787841905473114233124723359129632652"; #SeriesInstanceUID for green-square and red-triangle
instance_uid = "1.2.826.0.1.3680043.8.498.47359123102728459884412887463296905395"; #SOPInstanceUID for red-triangle

Verifiëren bij Azure en een token ophalen

DefaultAzureCredential hiermee kunnen we verschillende manieren gebruiken om tokens op te halen om zich aan te melden bij de service. In dit voorbeeld gebruikt u de AzureCliCredential opdracht om een token op te halen om u aan te melden bij de service. Er zijn andere referentieproviders, zoals ManagedIdentityCredential en EnvironmentCredential die ook kunnen worden gebruikt. Als u AzureCliCredential wilt gebruiken, moet u zich aanmelden bij Azure vanuit de CLI voordat u deze code uitvoert. Zie Toegangstoken ophalen voor de DICOM-service met behulp van Azure CLI voor meer informatie. U kunt ook het token kopiëren en plakken dat is opgehaald tijdens het aanmelden bij de CLI.

Notitie

DefaultAzureCredential retourneert verschillende referentieobjecten. We verwijzen naar het AzureCliCredential 5e item in de geretourneerde verzameling. Dit is mogelijk niet consistent. Zo ja, verwijder de opmerking bij de print(credential.credential) regel. Hiermee worden alle items weergegeven. Zoek de juiste index en onthoud dat Python gebruikmaakt van indexering op basis van nul.

Notitie

Als u zich niet hebt aangemeld bij Azure met behulp van de CLI, mislukt dit. U moet zijn aangemeld bij Azure vanuit de CLI om dit te laten werken.

from azure.identity import DefaultAzureCredential
credential = DefaultAzureCredential()

#print(credential.credentials) # this can be used to find the index of the AzureCliCredential
token = credential.credentials[4].get_token('https://dicom.healthcareapis.azure.com')
bearer_token = f'Bearer {token.token}'

Ondersteunende methoden maken om ondersteuning te bieden multipart\related

De Requests bibliotheken (en de meeste Python-bibliotheken) werken niet op multipart\related een manier die DICOMweb ondersteunt. Vanwege deze bibliotheken moeten we een aantal methoden toevoegen om het werken met DICOM-bestanden te ondersteunen.

encode_multipart_related neemt een set velden (in het DICOM-geval zijn deze bibliotheken doorgaans deel 10 dambestanden) en een optionele door de gebruiker gedefinieerde grens. Het retourneert zowel het volledige lichaam, samen met de content_type, die kan worden gebruikt.

def encode_multipart_related(fields, boundary=None):
    if boundary is None:
        boundary = choose_boundary()

    body, _ = encode_multipart_formdata(fields, boundary)
    content_type = str('multipart/related; boundary=%s' % boundary)

    return body, content_type

requests Een sessie maken

Hiermee maakt u een requests sessie die wordt aangeroepen client om te communiceren met de DICOM-service.

client = requests.session()

Controleren of verificatie juist is geconfigureerd

Roep het eindpunt van de changefeed-API aan, dat een 200 retourneert als de verificatie is geslaagd.

headers = {"Authorization":bearer_token}
url= f'{base_url}/changefeed'

response = client.get(url,headers=headers)
if (response.status_code != 200):
    print('Error! Likely not authenticated!')

DICOM-exemplaren uploaden (STOW)

In de volgende voorbeelden worden persistente DICOM-bestanden gemarkeerd.

Exemplaren opslaan met multipart/related

In dit voorbeeld ziet u hoe u één DICOM-bestand uploadt en een beetje python gebruikt om het DICOM-bestand (als bytes) vooraf te laden in het geheugen. Wanneer een matrix met bestanden wordt doorgegeven aan de veldparameter van encode_multipart_related, kunnen meerdere bestanden in één POST worden geüpload. Het wordt soms gebruikt om verschillende exemplaren in een volledige reeks of studie te uploaden.

Details:

  • Pad:.. /Studies

  • Methode: POST

  • Kopteksten:

    • Accepteren: application/dicom+json
    • Inhoudstype: multipart/related; type="application/dicom"
    • Autorisatie: Bearer $token"
  • Tekst:

    • Inhoudstype: toepassing/dicom voor elk geüpload bestand, gescheiden door een grenswaarde

Sommige programmeertalen en hulpprogramma's gedragen zich anders. Sommige vereisen bijvoorbeeld dat u uw eigen grens definieert. Voor deze talen en hulpprogramma's moet u mogelijk een enigszins gewijzigde inhoudstype-header gebruiken. Deze talen en hulpprogramma's kunnen worden gebruikt.

  • Inhoudstype: multipart/related; type="application/dicom"; boundary=ABCD1234
  • Inhoudstype: multipart/related; boundary=ABCD1234
  • Inhoudstype: meerdere onderdelen/gerelateerd
#upload blue-circle.dcm
filepath = Path(path_to_dicoms_dir).joinpath('blue-circle.dcm')

# Read through file and load bytes into memory 
with open(filepath,'rb') as reader:
    rawfile = reader.read()
files = {'file': ('dicomfile', rawfile, 'application/dicom')}

#encode as multipart_related
body, content_type = encode_multipart_related(fields = files)

headers = {'Accept':'application/dicom+json', "Content-Type":content_type, "Authorization":bearer_token}

url = f'{base_url}/studies'
response = client.post(url, body, headers=headers, verify=False)

Exemplaren opslaan voor een specifieke studie

In dit voorbeeld ziet u hoe u meerdere DICOM-bestanden uploadt naar de opgegeven studie. Er wordt een beetje python gebruikt om het DICOM-bestand (als bytes) vooraf in het geheugen te laden.

Wanneer een matrix met bestanden wordt doorgegeven aan de veldparameter van encode_multipart_related, kunnen meerdere bestanden in één POST worden geüpload. Het wordt soms gebruikt om een volledige reeks of studie te uploaden.

Details:

  • Pad:.. /studies/{study}
  • Methode: POST
  • Headers:
    • Accepteren: application/dicom+json
    • Inhoudstype: multipart/related; type="application/dicom"
    • Autorisatie: Bearer $token"
  • Lichaam:
    • Inhoudstype: toepassing/dicom voor elk geüpload bestand, gescheiden door een grenswaarde

filepath_red = Path(path_to_dicoms_dir).joinpath('red-triangle.dcm')
filepath_green = Path(path_to_dicoms_dir).joinpath('green-square.dcm')

# Open up and read through file and load bytes into memory 
with open(filepath_red,'rb') as reader:
    rawfile_red = reader.read()
with open(filepath_green,'rb') as reader:
    rawfile_green = reader.read()  
       
files = {'file_red': ('dicomfile', rawfile_red, 'application/dicom'),
         'file_green': ('dicomfile', rawfile_green, 'application/dicom')}

#encode as multipart_related
body, content_type = encode_multipart_related(fields = files)

headers = {'Accept':'application/dicom+json', "Content-Type":content_type, "Authorization":bearer_token}

url = f'{base_url}/studies'
response = client.post(url, body, headers=headers, verify=False)

Eén exemplaar opslaan (niet-standaard)

In het volgende codevoorbeeld ziet u hoe u één DICOM-bestand uploadt. Het is een niet-standaard API-eindpunt dat het uploaden van één bestand vereenvoudigt als binaire bytes die in de hoofdtekst van een aanvraag worden verzonden

Details:

  • Pad:.. /Studies
  • Methode: POST
  • Headers:
    • Accepteren: application/dicom+json
    • Inhoudstype: toepassing/dicom
    • Autorisatie: Bearer $token"
  • Lichaam:
    • Bevat één DICOM-bestand als binaire bytes.
#upload blue-circle.dcm
filepath = Path(path_to_dicoms_dir).joinpath('blue-circle.dcm')

# Open up and read through file and load bytes into memory 
with open(filepath,'rb') as reader:
    body = reader.read()

headers = {'Accept':'application/dicom+json', 'Content-Type':'application/dicom', "Authorization":bearer_token}

url = f'{base_url}/studies'
response = client.post(url, body, headers=headers, verify=False)
response  # response should be a 409 Conflict if the file was already uploaded in the above request

DICOM-exemplaren ophalen (WADO)

In de volgende voorbeelden worden DICOM-exemplaren opgehaald.

Alle exemplaren in een studie ophalen

In dit voorbeeld worden alle exemplaren in één studie opgehaald.

Details:

  • Pad:.. /studies/{study}
  • Methode: GET
  • Headers:
    • Accepteren: meerdere onderdelen/gerelateerd; type="application/dicom"; transfer-syntax=*
    • Autorisatie: Bearer $token"

Alle drie de dcm-bestanden die we eerder hebben geüpload, maken deel uit van dezelfde studie, zodat het antwoord alle drie de exemplaren moet retourneren. Controleer of het antwoord de statuscode OK heeft en of alle drie de exemplaren worden geretourneerd.

url = f'{base_url}/studies/{study_uid}'
headers = {'Accept':'multipart/related; type="application/dicom"; transfer-syntax=*', "Authorization":bearer_token}

response = client.get(url, headers=headers) #, verify=False)

De opgehaalde exemplaren gebruiken

De exemplaren worden opgehaald als binaire bytes. U kunt de geretourneerde items doorlopen en de bytes converteren naar een bestand dat pydicom kan worden gelezen.

import requests_toolbelt as tb
from io import BytesIO

mpd = tb.MultipartDecoder.from_response(response)
for part in mpd.parts:
    # Note that the headers are returned as binary!
    print(part.headers[b'content-type'])
    
    # You can convert the binary body (of each part) into a pydicom DataSet
    #   And get direct access to the various underlying fields
    dcm = pydicom.dcmread(BytesIO(part.content))
    print(dcm.PatientName)
    print(dcm.SOPInstanceUID)

Metagegevens van alle instanties in onderzoek ophalen

Met deze aanvraag worden de metagegevens opgehaald voor alle exemplaren binnen één studie.

Details:

  • Pad:.. /studies/{study}/metadata
  • Methode: GET
  • Headers:
    • Accepteren: application/dicom+json
    • Autorisatie: Bearer $token"

Alle drie de .dcm bestanden die we eerder hebben geüpload, maken deel uit van dezelfde studie, zodat het antwoord de metagegevens voor alle drie de exemplaren moet retourneren. Controleer of het antwoord een statuscode van OK heeft en of alle metagegevens worden geretourneerd.

url = f'{base_url}/studies/{study_uid}/metadata'
headers = {'Accept':'application/dicom+json', "Authorization":bearer_token}

response = client.get(url, headers=headers) #, verify=False)

Alle exemplaren in een reeks ophalen

Met deze aanvraag worden alle exemplaren binnen één reeks opgehaald.

Details:

  • Pad:.. /studies/{study}/series/{series}
  • Methode: GET
  • Headers:
    • Accepteren: meerdere onderdelen/gerelateerd; type="application/dicom"; transfer-syntax=*
    • Autorisatie: Bearer $token"

Deze reeks heeft twee exemplaren (groen-vierkant en rode driehoek), dus het antwoord moet beide exemplaren retourneren. Controleer of het antwoord een statuscode van OK heeft en of beide exemplaren worden geretourneerd.

url = f'{base_url}/studies/{study_uid}/series/{series_uid}'
headers = {'Accept':'multipart/related; type="application/dicom"; transfer-syntax=*', "Authorization":bearer_token}

response = client.get(url, headers=headers) #, verify=False)

Metagegevens van alle exemplaren in reeks ophalen

Met deze aanvraag worden de metagegevens opgehaald voor alle exemplaren binnen één reeks.

Details:

  • Pad:.. /studies/{study}/series/{series}/metadata
  • Methode: GET
  • Headers:
    • Accepteren: application/dicom+json
    • Autorisatie: Bearer $token"

Deze reeks heeft twee exemplaren (groen-vierkant en rode driehoek), dus het antwoord moet worden geretourneerd voor beide exemplaren. Controleer of het antwoord een statuscode van OK heeft en of beide metagegevens van exemplaren worden geretourneerd.

url = f'{base_url}/studies/{study_uid}/series/{series_uid}/metadata'
headers = {'Accept':'application/dicom+json', "Authorization":bearer_token}

response = client.get(url, headers=headers) #, verify=False)

Eén exemplaar binnen een reeks van een studie ophalen

Met deze aanvraag wordt één exemplaar opgehaald.

Details:

  • Pad:.. /studies/{study}/series{series}/instances/{instance}
  • Methode: GET
  • Headers:
    • Accepteren: toepassing/dicom; transfer-syntax=*
    • Autorisatie: Bearer $token"

In dit codevoorbeeld moet alleen het rode driehoekje van het exemplaar worden geretourneerd. Controleer of het antwoord een statuscode van OK heeft en of het exemplaar wordt geretourneerd.

url = f'{base_url}/studies/{study_uid}/series/{series_uid}/instances/{instance_uid}'
headers = {'Accept':'application/dicom; transfer-syntax=*', "Authorization":bearer_token}

response = client.get(url, headers=headers) #, verify=False)

Metagegevens van één exemplaar ophalen binnen een reeks van een studie

Met deze aanvraag worden de metagegevens opgehaald voor één exemplaar binnen één studie en reeks.

Details:

  • Pad:.. /studies/{study}/series/{series}/instances/{instance}/metadata
  • Methode: GET
  • Headers:
    • Accepteren: application/dicom+json
    • Autorisatie: Bearer $token"

In dit codevoorbeeld moeten alleen de metagegevens voor het rode driehoekje van het exemplaar worden geretourneerd. Controleer of het antwoord een statuscode van OK heeft en of de metagegevens worden geretourneerd.

url = f'{base_url}/studies/{study_uid}/series/{series_uid}/instances/{instance_uid}/metadata'
headers = {'Accept':'application/dicom+json', "Authorization":bearer_token}

response = client.get(url, headers=headers) #, verify=False)

Een of meer frames ophalen uit één exemplaar

Met deze aanvraag worden een of meer frames opgehaald uit één exemplaar.

Details:

  • Pad:.. /studies/{study}/series{series}/instances/{instance}/frames/1,2,3
  • Methode: GET
  • Headers:
    • Autorisatie: Bearer $token"
    • Accept: multipart/related; type="application/octet-stream"; transfer-syntax=1.2.840.10008.1.2.1 (Standaard) of
    • Accept: multipart/related; type="application/octet-stream"; transfer-syntax=* of
    • Accept: multipart/related; type="application/octet-stream";

In dit codevoorbeeld moet het enige frame uit de rode driehoek worden geretourneerd. Controleer of het antwoord een statuscode van OK heeft en of het frame wordt geretourneerd.

url = f'{base_url}/studies/{study_uid}/series/{series_uid}/instances/{instance_uid}/frames/1'
headers = {'Accept':'multipart/related; type="application/octet-stream"; transfer-syntax=*', "Authorization":bearer_token}

response = client.get(url, headers=headers) #, verify=False)

Query DICOM (QIDO)

In de volgende voorbeelden zoeken we naar items met behulp van hun unieke id's. U kunt ook zoeken naar andere kenmerken, zoals PatientName.

Raadpleeg het document dicom-conformanceverklaring voor ondersteunde DICOM-kenmerken.

Zoeken naar studies

Met deze aanvraag wordt gezocht naar een of meer studies op basis van DICOM-kenmerken.

Details:

  • Pad:.. /Studies? StudyInstanceUID={study}
  • Methode: GET
  • Headers:
    • Accepteren: application/dicom+json
    • Autorisatie: Bearer $token"

Controleer of het antwoord één studie bevat en of de antwoordcode ok is.

url = f'{base_url}/studies'
headers = {'Accept':'application/dicom+json', "Authorization":bearer_token}
params = {'StudyInstanceUID':study_uid}

response = client.get(url, headers=headers, params=params) #, verify=False)

Zoeken naar reeksen

Met deze aanvraag wordt gezocht naar een of meer reeksen door DICOM-kenmerken.

Details:

  • Pad:.. /Serie? SeriesInstanceUID={series}
  • Methode: GET
  • Headers:
    • Accepteren: application/dicom+json
    • Autorisatie: Bearer $token"

Controleer of het antwoord één reeks bevat en of de antwoordcode OK is.

url = f'{base_url}/series'
headers = {'Accept':'application/dicom+json', "Authorization":bearer_token}
params = {'SeriesInstanceUID':series_uid}

response = client.get(url, headers=headers, params=params) #, verify=False)

Zoeken naar reeksen binnen een studie

Met deze aanvraag wordt gezocht naar een of meer reeksen binnen één onderzoek door DICOM-kenmerken.

Details:

  • Pad:.. /studies/{study}/series? SeriesInstanceUID={series}
  • Methode: GET
  • Headers:
    • Accepteren: application/dicom+json
    • Autorisatie: Bearer $token"

Controleer of het antwoord één reeks bevat en of de antwoordcode OK is.

url = f'{base_url}/studies/{study_uid}/series'
headers = {'Accept':'application/dicom+json', "Authorization":bearer_token}
params = {'SeriesInstanceUID':series_uid}

response = client.get(url, headers=headers, params=params) #, verify=False)

Exemplaren zoeken

Met deze aanvraag wordt gezocht naar een of meer exemplaren op basis van DICOM-kenmerken.

Details:

  • Pad:.. /Exemplaren? SOPInstanceUID={instance}
  • Methode: GET
  • Headers:
    • Accepteren: application/dicom+json
    • Autorisatie: Bearer $token"

Controleer of het antwoord één exemplaar bevat en of de antwoordcode OK is.

url = f'{base_url}/instances'
headers = {'Accept':'application/dicom+json', "Authorization":bearer_token}
params = {'SOPInstanceUID':instance_uid}

response = client.get(url, headers=headers, params=params) #, verify=False)

Zoeken naar instanties binnen een studie

Met deze aanvraag wordt gezocht naar een of meer exemplaren binnen één onderzoek door DICOM-kenmerken.

Details:

  • Pad:.. /studies/{study}/instances? SOPInstanceUID={instance}
  • Methode: GET
  • Headers:
    • Accepteren: application/dicom+json
    • Autorisatie: Bearer $token"

Controleer of het antwoord één exemplaar bevat en of de antwoordcode OK is.

url = f'{base_url}/studies/{study_uid}/instances'
headers = {'Accept':'application/dicom+json', "Authorization":bearer_token}
params = {'SOPInstanceUID':instance_uid}

response = client.get(url, headers=headers, params=params) #, verify=False)

Zoeken naar instanties binnen een studie en reeks

Met deze aanvraag wordt gezocht naar een of meer exemplaren binnen één studie en één reeks door DICOM-kenmerken.

Details:

  • Pad:.. /studies/{study}/series/{series}/instances? SOPInstanceUID={instance}
  • Methode: GET
  • Headers:
    • Accepteren: application/dicom+json
    • Autorisatie: Bearer $token"

Controleer of het antwoord één exemplaar bevat en of de antwoordcode OK is.

url = f'{base_url}/studies/{study_uid}/series/{series_uid}/instances'
headers = {'Accept':'application/dicom+json'}
params = {'SOPInstanceUID':instance_uid}

response = client.get(url, headers=headers, params=params) #, verify=False)

DICOM verwijderen

Notitie

Verwijderen maakt geen deel uit van de DICOM-standaard, maar is voor het gemak toegevoegd.

Er wordt een 204-antwoordcode geretourneerd wanneer het verwijderen is geslaagd. Er wordt een 404-antwoordcode geretourneerd als de items nooit bestaan of al zijn verwijderd.

Een specifiek exemplaar in een studie en reeks verwijderen

Met deze aanvraag wordt één exemplaar binnen één studie en één reeks verwijderd.

Details:

  • Pad:.. /studies/{study}/series/{series}/instances/{instance}
  • Methode: DELETE
  • Headers:
    • Autorisatie: Bearer $token

Met deze aanvraag wordt het exemplaar van de rode driehoek van de server verwijderd. Als dit lukt, bevat de antwoordstatuscode geen inhoud.

headers = {"Authorization":bearer_token}
url = f'{base_url}/studies/{study_uid}/series/{series_uid}/instances/{instance_uid}'
response = client.delete(url, headers=headers) 

Een specifieke reeks in een studie verwijderen

Met deze aanvraag wordt één reeks (en alle onderliggende exemplaren) in één studie verwijderd.

Details:

  • Pad:.. /studies/{study}/series/{series}
  • Methode: DELETE
  • Headers:
    • Autorisatie: Bearer $token

In dit codevoorbeeld wordt het green-square-exemplaar verwijderd (het is het enige element in de reeks) van de server. Als dit lukt, wordt de inhoud van de antwoordstatus niet verwijderd.

headers = {"Authorization":bearer_token}
url = f'{base_url}/studies/{study_uid}/series/{series_uid}'
response = client.delete(url, headers=headers) 

Een specifiek onderzoek verwijderen

Met deze aanvraag wordt één studie verwijderd (en alle onderliggende reeksen en instanties).

Details:

  • Pad:.. /studies/{study}
  • Methode: DELETE
  • Headers:
    • Autorisatie: Bearer $token
headers = {"Authorization":bearer_token}
url = f'{base_url}/studies/{study_uid}'
response = client.delete(url, headers=headers) 

Notitie

DICOM® is het gedeponeerde handelsmerk van de National Electrical Manufacturers Association voor haar standaardenpublicaties met betrekking tot digitale communicatie van medische informatie.