1#![deny(unsafe_code)]
2#![warn(missing_docs)]
3
4mod annotation_export;
16mod api;
17mod application;
18#[cfg(feature = "bench-internals")]
19#[doc(hidden)]
20pub mod bench_support;
21mod calibration;
22mod coordinate;
23mod diagnostics;
24mod encode;
25mod error;
26mod export;
27mod icc;
28mod instance_context;
29mod lossy;
30mod metadata;
31#[cfg(all(feature = "metal", target_os = "macos"))]
32#[allow(unsafe_code)]
33mod metal_interop;
34mod options;
35mod passthrough;
36mod report;
37mod request;
38mod routing;
39mod synthetic_source;
40mod tile;
41#[doc(hidden)]
42pub mod time;
43mod uid;
44mod validation;
45mod writer;
46
47#[cfg(test)]
48mod test_support;
49
50pub use annotation_export::{
51 export_qupath_annotations, AnnotationCoordinateSpace, AnnotationDiagnosticReport,
52 AnnotationExportReport, AnnotationInstanceReport, AnnotationTarget, QuPathAnnotationOptions,
53};
54pub use api::Export;
55pub use application::{
56 run_export_workflow, ExportWorkflowError, ExportWorkflowProgress, ExportWorkflowProgressEvent,
57 ExportWorkflowReport, ExportWorkflowRequest, ExportWorkflowStage, MetadataInput,
58};
59pub use calibration::{
60 create_icc_calibration_bundle, ColorManagement, IccCalibrationRegistry, IccConflictPolicy,
61 IccProfile, ScannerIdentity, ICC_CALIBRATION_REGISTRY_MAX_BYTES, ICC_PROFILE_MAX_BYTES,
62};
63pub use diagnostics::{run_dicom_self_test, SelfTestOptions, SelfTestReport};
64pub use error::Error;
65pub use export::default_transfer_syntax_for_source;
66pub use export::{
67 encode_dicom_j2k_frame, export_dicom, profile_corpus_route_coverage,
68 profile_dicom_route_corpus_coverage, profile_dicom_route_coverage, profile_dicom_routes,
69 profile_slide_route_coverage,
70};
71pub use metadata::{
72 DicomMetadata, MetadataSource, SpecimenIdentifierIssuer, UniversalEntityIdType,
73 METADATA_JSON_MAX_BYTES,
74};
75pub use options::{
76 CodecValidation, EncodeBackendPreference, ExportOptions, ExportPreset, JpegDirectHtj2kProfile,
77 SourcePixelSpacingMm, TransferSyntax, UidPolicy,
78};
79pub use report::{
80 EncodedFrame, ExportMetrics, ExportReport, GpuEncodeMetrics, IccConflictDecision,
81 IccProfileSource, InstanceReport, JpegDirectHtj2kMetrics, RouteCorpusCoverageFailure,
82 RouteCorpusCoverageReport, RouteCounters, RouteCoverageReport, RouteProfileReport,
83 WriteTimings,
84};
85pub use request::{
86 CorpusRouteCoverageRequest, DefaultTransferSyntaxRequest, ExportRequest, FrameSamples,
87 J2kFrameEncodeRequest, RouteCoverageRequest, RouteCoverageTarget, RouteProfileRequest,
88 RouteProgressSink, SlideRouteCoverageRequest,
89};
90pub use validation::{
91 doctor_dicom_environment, validate_dicom_path, DoctorOptions, DoctorReport, DoctorStatus,
92 DoctorTool, ExecutionFailure, ValidationCheck, ValidationExecution, ValidationOptions,
93 ValidationProfile, ValidationReport, ValidationStatus,
94};
95
96pub mod prelude {
97 pub use crate::{
100 CodecValidation, ColorManagement, DefaultTransferSyntaxRequest, Error, Export,
101 ExportOptions, ExportPreset, ExportReport, ExportRequest, FrameSamples,
102 IccCalibrationRegistry, IccConflictDecision, IccConflictPolicy, IccProfile,
103 IccProfileSource, J2kFrameEncodeRequest, JpegDirectHtj2kProfile, MetadataSource,
104 ScannerIdentity, SourcePixelSpacingMm, SpecimenIdentifierIssuer, TransferSyntax, UidPolicy,
105 UniversalEntityIdType, ValidationOptions,
106 };
107}
108
109pub(crate) const VL_WSI_SOP_CLASS_UID: &str = "1.2.840.10008.5.1.4.1.1.77.1.6";