|
PACS System 0.1.0
PACS DICOM system library
|
DICOMweb (WADO-RS) API endpoints implementation. More...
#include "crow.h"#include "kcenon/pacs/core/dicom_dataset.h"#include "kcenon/pacs/core/dicom_element.h"#include "kcenon/pacs/core/dicom_file.h"#include "kcenon/pacs/core/dicom_tag_constants.h"#include "kcenon/pacs/encoding/compression/htj2k_codec.h"#include "kcenon/pacs/encoding/compression/jpeg_baseline_codec.h"#include "kcenon/pacs/encoding/transfer_syntax.h"#include "kcenon/pacs/encoding/vr_type.h"#include "kcenon/pacs/storage/file_storage.h"#include "kcenon/pacs/storage/index_database.h"#include "kcenon/pacs/storage/instance_record.h"#include "kcenon/pacs/storage/patient_record.h"#include "kcenon/pacs/storage/series_record.h"#include "kcenon/pacs/storage/study_record.h"#include "kcenon/pacs/web/auth/oauth2_middleware.h"#include "kcenon/pacs/web/endpoints/dicomweb_endpoints.h"#include "kcenon/pacs/web/endpoints/system_endpoints.h"#include "kcenon/pacs/web/rest_config.h"#include "kcenon/pacs/web/rest_types.h"#include <algorithm>#include <chrono>#include <cstdint>#include <filesystem>#include <fstream>#include <iomanip>#include <random>#include <sstream>
Go to the source code of this file.
Namespaces | |
| namespace | kcenon |
| namespace | kcenon::pacs |
| namespace | kcenon::pacs::web |
| namespace | kcenon::pacs::web::dicomweb |
| namespace | kcenon::pacs::web::endpoints |
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::is_bulk_data_tag (uint32_t tag) -> bool |
| Check if a DICOM tag contains bulk data. | |
| 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::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::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::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 ¶ms) -> rendered_result |
| Render a DICOM image to JPEG or PNG. | |
| void | kcenon::pacs::web::endpoints::register_dicomweb_endpoints_impl (crow::SimpleApp &app, std::shared_ptr< rest_server_context > ctx) |
DICOMweb (WADO-RS) API endpoints implementation.
Definition in file dicomweb_endpoints.cpp.