PACS System 0.1.0
PACS DICOM system library
Loading...
Searching...
No Matches
dicomweb_endpoints.h File Reference

DICOMweb (WADO-RS) API endpoints for REST server. More...

#include <cstdint>
#include <memory>
#include <optional>
#include <span>
#include <string>
#include <string_view>
#include <vector>
Include dependency graph for dicomweb_endpoints.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  kcenon::pacs::web::dicomweb::media_type
 Media types supported by WADO-RS. More...
 
struct  kcenon::pacs::web::dicomweb::accept_info
 Parsed Accept header information. More...
 
class  kcenon::pacs::web::dicomweb::multipart_builder
 Builder for multipart MIME responses. More...
 
struct  kcenon::pacs::web::dicomweb::multipart_builder::part
 
struct  kcenon::pacs::web::dicomweb::multipart_part
 Parsed part from multipart request. More...
 
class  kcenon::pacs::web::dicomweb::multipart_parser
 Parser for multipart/related request bodies. More...
 
struct  kcenon::pacs::web::dicomweb::multipart_parser::parse_error
 Parse error information. More...
 
struct  kcenon::pacs::web::dicomweb::multipart_parser::parse_result
 Parse result - either parts or error. More...
 
struct  kcenon::pacs::web::dicomweb::store_instance_result
 STOW-RS store result for a single instance. More...
 
struct  kcenon::pacs::web::dicomweb::store_response
 STOW-RS overall store response. More...
 
struct  kcenon::pacs::web::dicomweb::validation_result
 Validation result for DICOM instance. More...
 
struct  kcenon::pacs::web::dicomweb::rendered_params
 Parameters for rendered image requests. More...
 
struct  kcenon::pacs::web::dicomweb::rendered_result
 Result of rendered image operation. More...
 

Namespaces

namespace  kcenon
 
namespace  kcenon::pacs
 
namespace  kcenon::pacs::core
 
namespace  kcenon::pacs::storage
 
namespace  kcenon::pacs::web
 
namespace  kcenon::pacs::web::dicomweb
 
namespace  kcenon::pacs::web::endpoints
 

Enumerations

enum class  kcenon::pacs::web::dicomweb::rendered_format { kcenon::pacs::web::dicomweb::jpeg , kcenon::pacs::web::dicomweb::png , kcenon::pacs::web::dicomweb::jphc }
 Rendered image output format. More...
 

Functions

auto kcenon::pacs::web::dicomweb::parse_accept_header (std::string_view accept_header) -> std::vector< accept_info >
 Parse Accept header into structured format.
 
auto kcenon::pacs::web::dicomweb::is_acceptable (const std::vector< accept_info > &accept_infos, std::string_view media_type) -> bool
 Check if a media type is acceptable based on Accept header.
 
auto kcenon::pacs::web::dicomweb::dataset_to_dicom_json (const core::dicom_dataset &dataset, bool include_bulk_data=false, std::string_view bulk_data_uri_prefix="") -> std::string
 Convert a DICOM dataset to DicomJSON format.
 
auto kcenon::pacs::web::dicomweb::vr_to_string (uint16_t vr_code) -> std::string
 Convert a VR type code to DicomJSON VR string.
 
auto kcenon::pacs::web::dicomweb::is_bulk_data_tag (uint32_t tag) -> bool
 Check if a DICOM tag contains bulk data.
 
auto kcenon::pacs::web::dicomweb::validate_instance (const core::dicom_dataset &dataset, std::optional< std::string_view > target_study_uid=std::nullopt) -> validation_result
 Validate a DICOM instance for STOW-RS storage.
 
auto kcenon::pacs::web::dicomweb::build_store_response_json (const store_response &response, std::string_view base_url) -> std::string
 Build STOW-RS response in DicomJSON format.
 
auto kcenon::pacs::web::dicomweb::study_record_to_dicom_json (const storage::study_record &record, std::string_view patient_id, std::string_view patient_name) -> std::string
 Convert a study record to DicomJSON format for QIDO-RS response.
 
auto kcenon::pacs::web::dicomweb::series_record_to_dicom_json (const storage::series_record &record, std::string_view study_uid) -> std::string
 Convert a series record to DicomJSON format for QIDO-RS response.
 
auto kcenon::pacs::web::dicomweb::instance_record_to_dicom_json (const storage::instance_record &record, std::string_view series_uid, std::string_view study_uid) -> std::string
 Convert an instance record to DicomJSON format for QIDO-RS response.
 
auto kcenon::pacs::web::dicomweb::parse_study_query_params (const std::string &url_params) -> storage::study_query
 Parse QIDO-RS query parameters from HTTP request.
 
auto kcenon::pacs::web::dicomweb::parse_series_query_params (const std::string &url_params) -> storage::series_query
 Parse QIDO-RS series query parameters from HTTP request.
 
auto kcenon::pacs::web::dicomweb::parse_instance_query_params (const std::string &url_params) -> storage::instance_query
 Parse QIDO-RS instance query parameters from HTTP request.
 
auto kcenon::pacs::web::dicomweb::parse_frame_numbers (std::string_view frame_list) -> std::vector< uint32_t >
 Parse frame numbers from URL path.
 
auto kcenon::pacs::web::dicomweb::extract_frame (std::span< const uint8_t > pixel_data, uint32_t frame_number, size_t frame_size) -> std::vector< uint8_t >
 Extract a single frame from pixel data.
 
auto kcenon::pacs::web::dicomweb::parse_rendered_params (std::string_view query_string, std::string_view accept_header) -> rendered_params
 Parse rendered image parameters from HTTP request.
 
auto kcenon::pacs::web::dicomweb::apply_window_level (std::span< const uint8_t > pixel_data, uint16_t width, uint16_t height, uint16_t bits_stored, bool is_signed, double window_center, double window_width, double rescale_slope=1.0, double rescale_intercept=0.0) -> std::vector< uint8_t >
 Apply window/level transformation to pixel data.
 
auto kcenon::pacs::web::dicomweb::render_dicom_image (std::string_view file_path, const rendered_params &params) -> rendered_result
 Render a DICOM image to JPEG or PNG.
 

Detailed Description

DICOMweb (WADO-RS) API endpoints for REST server.

This file provides the DICOMweb endpoints for retrieving DICOM objects over HTTP following the WADO-RS (Web Access to DICOM Objects - RESTful) specification as defined in DICOM PS3.18.

See also
DICOM PS3.18 - Web Services
https://www.dicomstandard.org/dicomweb
Author
kcenon
Since
1.0.0

Definition in file dicomweb_endpoints.h.