24namespace consumer_tags {
85 const auto* evidence_elem = kos_dataset.
get(
88 if (!evidence_elem || !evidence_elem->is_sequence()) {
89 result.
error_message =
"KOS document does not contain evidence sequence";
94 for (
const auto& study_item : evidence_elem->sequence_items()) {
97 if (!study_uid.empty()) {
106 const auto* series_elem = study_item.get(
108 if (!series_elem || !series_elem->is_sequence()) {
112 for (
const auto& series_item : series_elem->sequence_items()) {
114 if (!series_uid.empty()) {
123 const auto* sop_elem = series_item.get(
125 if (!sop_elem || !sop_elem->is_sequence()) {
129 for (
const auto& sop_item : sop_elem->sequence_items()) {
130 auto instance_uid = sop_item.get_string(
132 if (!instance_uid.empty()) {
143 const std::string& study_uid,
144 const std::string& series_uid,
145 const std::string& instance_uid)
const {
147 std::ostringstream url;
157 url <<
"studies/" << study_uid
158 <<
"/series/" << series_uid
159 <<
"/instances/" << instance_uid;
auto get(dicom_tag tag) noexcept -> dicom_element *
Get a pointer to the element with the given tag.
void set_config(const imaging_document_consumer_config &config)
Set configuration.
imaging_document_consumer()=default
const imaging_document_consumer_config & config() const noexcept
Get current configuration.
document_retrieval_result extract_references(const core::dicom_dataset &kos_dataset) const
Extract image references from a KOS dataset.
document_retrieval_result retrieve_document(const document_reference &doc_ref) const
Retrieve a specific document from the XDS repository.
registry_query_result query_registry(const registry_query_params ¶ms) const
Query the XDS registry for imaging documents.
std::string build_wado_rs_url(const std::string &study_uid, const std::string &series_uid, const std::string &instance_uid) const
Build a WADO-RS URL for retrieving a specific instance.
imaging_document_consumer_config config_
Compile-time constants for commonly used DICOM tags.
IHE XDS-I.b Imaging Document Consumer Actor.
Document reference returned from a registry query.
Result of a document retrieval.
std::vector< std::string > referenced_study_uids
Instance references extracted from the KOS.
std::string error_message
Error message (if failed)
std::vector< std::string > referenced_series_uids
std::vector< std::string > referenced_instance_uids
bool success
Whether the retrieval succeeded.
Configuration for the Imaging Document Consumer actor.
std::string wado_rs_url
WADO-RS base URL for image retrieval (alternative to C-MOVE)
std::string registry_url
XDS Registry endpoint URL for queries (ITI-18)
std::string repository_url
XDS Repository endpoint URL for document retrieval (ITI-43)
Query parameters for XDS registry stored query (ITI-18)
Result of a registry query.
std::string error_message
Error message (if failed)
bool success
Whether the query succeeded.