Mercurial > hg > orthanc-stone
comparison Framework/Toolbox/OrthancSlicesLoader.cpp @ 267:89d02de83c03 am-2
added declaretion of messages handled/emitted
author | am@osimis.io |
---|---|
date | Wed, 22 Aug 2018 14:59:20 +0200 |
parents | c9cf95b49a86 |
children | 5bd4161bf11b |
comparison
equal
deleted
inserted
replaced
266:c9cf95b49a86 | 267:89d02de83c03 |
---|---|
251 | 251 |
252 switch (operation->GetMode()) | 252 switch (operation->GetMode()) |
253 { | 253 { |
254 case Mode_FrameGeometry: | 254 case Mode_FrameGeometry: |
255 case Mode_SeriesGeometry: | 255 case Mode_SeriesGeometry: |
256 that_.EmitMessage(IMessage(MessageType_SliceGeometryError)); | 256 that_.EmitMessage(IMessage(MessageType_SliceLoader_GeometryError)); |
257 that_.state_ = State_Error; | 257 that_.state_ = State_Error; |
258 break; | 258 break; |
259 | 259 |
260 case Mode_LoadImage: | 260 case Mode_LoadImage: |
261 { | 261 { |
319 state_ = State_GeometryReady; | 319 state_ = State_GeometryReady; |
320 | 320 |
321 if (ok) | 321 if (ok) |
322 { | 322 { |
323 LOG(INFO) << "Loaded a series with " << slices_.GetSliceCount() << " slice(s)"; | 323 LOG(INFO) << "Loaded a series with " << slices_.GetSliceCount() << " slice(s)"; |
324 EmitMessage(IMessage(MessageType_SliceGeometryReady)); | 324 EmitMessage(IMessage(MessageType_SliceLoader_GeometryReady)); |
325 } | 325 } |
326 else | 326 else |
327 { | 327 { |
328 LOG(ERROR) << "This series is empty"; | 328 LOG(ERROR) << "This series is empty"; |
329 EmitMessage(IMessage(MessageType_SliceGeometryError)); | 329 EmitMessage(IMessage(MessageType_SliceLoader_GeometryError)); |
330 } | 330 } |
331 } | 331 } |
332 | 332 |
333 | 333 |
334 void OrthancSlicesLoader::ParseSeriesGeometry(const void* answer, | 334 void OrthancSlicesLoader::ParseSeriesGeometry(const void* answer, |
336 { | 336 { |
337 Json::Value series; | 337 Json::Value series; |
338 if (!MessagingToolbox::ParseJson(series, answer, size) || | 338 if (!MessagingToolbox::ParseJson(series, answer, size) || |
339 series.type() != Json::objectValue) | 339 series.type() != Json::objectValue) |
340 { | 340 { |
341 EmitMessage(IMessage(MessageType_SliceGeometryError)); | 341 EmitMessage(IMessage(MessageType_SliceLoader_GeometryError)); |
342 return; | 342 return; |
343 } | 343 } |
344 | 344 |
345 Json::Value::Members instances = series.getMemberNames(); | 345 Json::Value::Members instances = series.getMemberNames(); |
346 | 346 |
383 { | 383 { |
384 Json::Value tags; | 384 Json::Value tags; |
385 if (!MessagingToolbox::ParseJson(tags, answer, size) || | 385 if (!MessagingToolbox::ParseJson(tags, answer, size) || |
386 tags.type() != Json::objectValue) | 386 tags.type() != Json::objectValue) |
387 { | 387 { |
388 EmitMessage(IMessage(MessageType_SliceGeometryError)); | 388 EmitMessage(IMessage(MessageType_SliceLoader_GeometryError)); |
389 return; | 389 return; |
390 } | 390 } |
391 | 391 |
392 OrthancPlugins::FullOrthancDataset dataset(tags); | 392 OrthancPlugins::FullOrthancDataset dataset(tags); |
393 | 393 |
410 slices_.AddSlice(slice.release()); | 410 slices_.AddSlice(slice.release()); |
411 } | 411 } |
412 else | 412 else |
413 { | 413 { |
414 LOG(WARNING) << "Skipping invalid multi-frame instance " << instanceId; | 414 LOG(WARNING) << "Skipping invalid multi-frame instance " << instanceId; |
415 EmitMessage(IMessage(MessageType_SliceGeometryError)); | 415 EmitMessage(IMessage(MessageType_SliceLoader_GeometryError)); |
416 return; | 416 return; |
417 } | 417 } |
418 } | 418 } |
419 | 419 |
420 SortAndFinalizeSlices(); | 420 SortAndFinalizeSlices(); |
428 { | 428 { |
429 Json::Value tags; | 429 Json::Value tags; |
430 if (!MessagingToolbox::ParseJson(tags, answer, size) || | 430 if (!MessagingToolbox::ParseJson(tags, answer, size) || |
431 tags.type() != Json::objectValue) | 431 tags.type() != Json::objectValue) |
432 { | 432 { |
433 EmitMessage(IMessage(MessageType_SliceGeometryError)); | 433 EmitMessage(IMessage(MessageType_SliceLoader_GeometryError)); |
434 return; | 434 return; |
435 } | 435 } |
436 | 436 |
437 OrthancPlugins::FullOrthancDataset dataset(tags); | 437 OrthancPlugins::FullOrthancDataset dataset(tags); |
438 | 438 |
444 std::auto_ptr<Slice> slice(new Slice); | 444 std::auto_ptr<Slice> slice(new Slice); |
445 if (slice->ParseOrthancFrame(dicom, instanceId, frame)) | 445 if (slice->ParseOrthancFrame(dicom, instanceId, frame)) |
446 { | 446 { |
447 LOG(INFO) << "Loaded instance geometry " << instanceId; | 447 LOG(INFO) << "Loaded instance geometry " << instanceId; |
448 slices_.AddSlice(slice.release()); | 448 slices_.AddSlice(slice.release()); |
449 EmitMessage(IMessage(MessageType_SliceGeometryReady)); | 449 EmitMessage(IMessage(MessageType_SliceLoader_GeometryReady)); |
450 } | 450 } |
451 else | 451 else |
452 { | 452 { |
453 LOG(WARNING) << "Skipping invalid instance " << instanceId; | 453 LOG(WARNING) << "Skipping invalid instance " << instanceId; |
454 EmitMessage(IMessage(MessageType_SliceGeometryError)); | 454 EmitMessage(IMessage(MessageType_SliceLoader_GeometryError)); |
455 } | 455 } |
456 } | 456 } |
457 | 457 |
458 | 458 |
459 void OrthancSlicesLoader::ParseSliceImagePng(const Operation& operation, | 459 void OrthancSlicesLoader::ParseSliceImagePng(const Operation& operation, |
782 webCallback_(new WebCallback(broker, *this)), | 782 webCallback_(new WebCallback(broker, *this)), |
783 //userCallback_(callback), | 783 //userCallback_(callback), |
784 orthanc_(orthanc), | 784 orthanc_(orthanc), |
785 state_(State_Initialization) | 785 state_(State_Initialization) |
786 { | 786 { |
787 DeclareEmittableMessage(MessageType_SliceLoader_GeometryReady); | |
788 DeclareEmittableMessage(MessageType_SliceLoader_GeometryError); | |
789 DeclareEmittableMessage(MessageType_SliceLoader_ImageError); | |
790 DeclareEmittableMessage(MessageType_SliceLoader_ImageReady); | |
787 } | 791 } |
788 | 792 |
789 | 793 |
790 void OrthancSlicesLoader::ScheduleLoadSeries(const std::string& seriesId) | 794 void OrthancSlicesLoader::ScheduleLoadSeries(const std::string& seriesId) |
791 { | 795 { |