Mercurial > hg > orthanc
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 } |