comparison OrthancFramework/Sources/DicomNetworking/Internals/CommandDispatcher.cpp @ 4285:544120b34c09

fix for VS2008, debug logs for C-FIND SCP and for storage commitment SCP
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 04 Nov 2020 16:27:59 +0100
parents 756126cd2219
children 5b254bd435d3
comparison
equal deleted inserted replaced
4284:756126cd2219 4285:544120b34c09
746 746
747 // if the command which was received has extra status 747 // if the command which was received has extra status
748 // detail information, dump this information 748 // detail information, dump this information
749 if (statusDetail != NULL) 749 if (statusDetail != NULL)
750 { 750 {
751 //LOG4CPP_WARN(Internals::GetLogger(), "Status Detail:" << OFendl << DcmObject::PrintHelper(*statusDetail)); 751 std::stringstream s; // This is necessary for VS2008
752 s << DcmObject::PrintHelper(*statusDetail);
753 CLOG(TRACE, DICOM) << "Status Detail:" << std::endl << s.str();
754
752 delete statusDetail; 755 delete statusDetail;
753 } 756 }
754 757
755 if (cond == DIMSE_OUTOFRESOURCES) 758 if (cond == DIMSE_OUTOFRESOURCES)
756 { 759 {
1135 * http://dicom.nema.org/medical/dicom/2019a/output/chtml/part04/sect_J.3.2.html#table_J.3-1 1138 * http://dicom.nema.org/medical/dicom/2019a/output/chtml/part04/sect_J.3.2.html#table_J.3-1
1136 **/ 1139 **/
1137 1140
1138 std::unique_ptr<DcmDataset> dataset( 1141 std::unique_ptr<DcmDataset> dataset(
1139 ReadDataset(assoc_, "Cannot read the dataset in N-ACTION SCP", associationTimeout_)); 1142 ReadDataset(assoc_, "Cannot read the dataset in N-ACTION SCP", associationTimeout_));
1140 1143 assert(dataset.get() != NULL);
1144
1145 {
1146 std::stringstream s; // This is necessary for VS2008
1147 s << DcmObject::PrintHelper(*dataset);
1148 CLOG(TRACE, DICOM) << "Received Storage Commitment Request:" << std::endl << s.str();
1149 }
1150
1141 std::string transactionUid = ReadString(*dataset, DCM_TransactionUID); 1151 std::string transactionUid = ReadString(*dataset, DCM_TransactionUID);
1142 1152
1143 std::vector<std::string> sopClassUid, sopInstanceUid; 1153 std::vector<std::string> sopClassUid, sopInstanceUid;
1144 ReadSopSequence(sopClassUid, sopInstanceUid, NULL, 1154 ReadSopSequence(sopClassUid, sopInstanceUid, NULL,
1145 *dataset, DCM_ReferencedSOPSequence, true /* mandatory */); 1155 *dataset, DCM_ReferencedSOPSequence, true /* mandatory */);
1198 strncpy(content.AffectedSOPInstanceUID, UID_StorageCommitmentPushModelSOPInstance, DIC_UI_LEN); 1208 strncpy(content.AffectedSOPInstanceUID, UID_StorageCommitmentPushModelSOPInstance, DIC_UI_LEN);
1199 content.ActionTypeID = 0; // Not present, as "O_NACTION_ACTIONTYPEID" not set in "opts" 1209 content.ActionTypeID = 0; // Not present, as "O_NACTION_ACTIONTYPEID" not set in "opts"
1200 content.DataSetType = DIMSE_DATASET_NULL; // Dataset is absent in storage commitment response 1210 content.DataSetType = DIMSE_DATASET_NULL; // Dataset is absent in storage commitment response
1201 content.opts = O_NACTION_AFFECTEDSOPCLASSUID | O_NACTION_AFFECTEDSOPINSTANCEUID; 1211 content.opts = O_NACTION_AFFECTEDSOPCLASSUID | O_NACTION_AFFECTEDSOPINSTANCEUID;
1202 1212
1213 {
1214 OFString str;
1215 CLOG(TRACE, DICOM) << "Sending Storage Commitment Request Response:" << std::endl
1216 << DIMSE_dumpMessage(str, response, DIMSE_OUTGOING);
1217 }
1218
1203 return DIMSE_sendMessageUsingMemoryData( 1219 return DIMSE_sendMessageUsingMemoryData(
1204 assoc_, presID, &response, NULL /* no dataset */, NULL /* dataObject */, 1220 assoc_, presID, &response, NULL /* no dataset */, NULL /* dataObject */,
1205 NULL /* callback */, NULL /* callback context */, NULL /* commandSet */); 1221 NULL /* callback */, NULL /* callback context */, NULL /* commandSet */);
1206 } 1222 }
1207 } 1223 }
1258 * http://dicom.nema.org/medical/dicom/2019a/output/chtml/part04/sect_J.3.3.html#table_J.3-2 1274 * http://dicom.nema.org/medical/dicom/2019a/output/chtml/part04/sect_J.3.3.html#table_J.3-2
1259 **/ 1275 **/
1260 1276
1261 std::unique_ptr<DcmDataset> dataset( 1277 std::unique_ptr<DcmDataset> dataset(
1262 ReadDataset(assoc_, "Cannot read the dataset in N-EVENT-REPORT SCP", associationTimeout_)); 1278 ReadDataset(assoc_, "Cannot read the dataset in N-EVENT-REPORT SCP", associationTimeout_));
1263 1279 assert(dataset.get() != NULL);
1280
1281 {
1282 std::stringstream s; // This is necessary for VS2008
1283 s << DcmObject::PrintHelper(*dataset);
1284 CLOG(TRACE, DICOM) << "Received Storage Commitment Report:" << std::endl << s.str();
1285 }
1286
1264 std::string transactionUid = ReadString(*dataset, DCM_TransactionUID); 1287 std::string transactionUid = ReadString(*dataset, DCM_TransactionUID);
1265 1288
1266 std::vector<std::string> successSopClassUid, successSopInstanceUid; 1289 std::vector<std::string> successSopClassUid, successSopInstanceUid;
1267 ReadSopSequence(successSopClassUid, successSopInstanceUid, NULL, 1290 ReadSopSequence(successSopClassUid, successSopInstanceUid, NULL,
1268 *dataset, DCM_ReferencedSOPSequence, 1291 *dataset, DCM_ReferencedSOPSequence,
1338 strncpy(content.AffectedSOPInstanceUID, UID_StorageCommitmentPushModelSOPInstance, DIC_UI_LEN); 1361 strncpy(content.AffectedSOPInstanceUID, UID_StorageCommitmentPushModelSOPInstance, DIC_UI_LEN);
1339 content.EventTypeID = 0; // Not present, as "O_NEVENTREPORT_EVENTTYPEID" not set in "opts" 1362 content.EventTypeID = 0; // Not present, as "O_NEVENTREPORT_EVENTTYPEID" not set in "opts"
1340 content.DataSetType = DIMSE_DATASET_NULL; // Dataset is absent in storage commitment response 1363 content.DataSetType = DIMSE_DATASET_NULL; // Dataset is absent in storage commitment response
1341 content.opts = O_NEVENTREPORT_AFFECTEDSOPCLASSUID | O_NEVENTREPORT_AFFECTEDSOPINSTANCEUID; 1364 content.opts = O_NEVENTREPORT_AFFECTEDSOPCLASSUID | O_NEVENTREPORT_AFFECTEDSOPINSTANCEUID;
1342 1365
1366 {
1367 OFString str;
1368 CLOG(TRACE, DICOM) << "Sending Storage Commitment Report Response:" << std::endl
1369 << DIMSE_dumpMessage(str, response, DIMSE_OUTGOING);
1370 }
1371
1343 return DIMSE_sendMessageUsingMemoryData( 1372 return DIMSE_sendMessageUsingMemoryData(
1344 assoc_, presID, &response, NULL /* no dataset */, NULL /* dataObject */, 1373 assoc_, presID, &response, NULL /* no dataset */, NULL /* dataObject */,
1345 NULL /* callback */, NULL /* callback context */, NULL /* commandSet */); 1374 NULL /* callback */, NULL /* callback context */, NULL /* commandSet */);
1346 } 1375 }
1347 } 1376 }