Mercurial > hg > orthanc
comparison Core/DicomNetworking/Internals/CommandDispatcher.cpp @ 3706:bd34b6ac5c08 storage-commitment
timeouts in storage commitment SCU and SCP
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 27 Feb 2020 12:24:29 +0100 |
parents | d8b214a46b91 |
children | 56f2397f027a |
comparison
equal
deleted
inserted
replaced
3705:d8b214a46b91 | 3706:bd34b6ac5c08 |
---|---|
889 return cond; | 889 return cond; |
890 } | 890 } |
891 | 891 |
892 | 892 |
893 static DcmDataset* ReadDataset(T_ASC_Association* assoc, | 893 static DcmDataset* ReadDataset(T_ASC_Association* assoc, |
894 const char* errorMessage) | 894 const char* errorMessage, |
895 int timeout) | |
895 { | 896 { |
896 DcmDataset *tmp = NULL; | 897 DcmDataset *tmp = NULL; |
897 T_ASC_PresentationContextID presIdData; | 898 T_ASC_PresentationContextID presIdData; |
898 | 899 |
899 OFCondition cond = DIMSE_receiveDataSetInMemory( | 900 OFCondition cond = DIMSE_receiveDataSetInMemory( |
900 assoc, /*opt_blockMode*/ DIMSE_BLOCKING, | 901 assoc, (timeout ? DIMSE_NONBLOCKING : DIMSE_BLOCKING), timeout, |
901 /*opt_dimse_timeout*/ 0, &presIdData, &tmp, NULL, NULL); | 902 &presIdData, &tmp, NULL, NULL); |
902 if (!cond.good() || | 903 if (!cond.good() || |
903 tmp == NULL) | 904 tmp == NULL) |
904 { | 905 { |
905 throw OrthancException(ErrorCode_NetworkProtocol, errorMessage); | 906 throw OrthancException(ErrorCode_NetworkProtocol, errorMessage); |
906 } | 907 } |
1025 * J.3-1. Storage Commitment Request - Action Information": | 1026 * J.3-1. Storage Commitment Request - Action Information": |
1026 * http://dicom.nema.org/medical/dicom/2019a/output/chtml/part04/sect_J.3.2.html#table_J.3-1 | 1027 * http://dicom.nema.org/medical/dicom/2019a/output/chtml/part04/sect_J.3.2.html#table_J.3-1 |
1027 **/ | 1028 **/ |
1028 | 1029 |
1029 std::auto_ptr<DcmDataset> dataset( | 1030 std::auto_ptr<DcmDataset> dataset( |
1030 ReadDataset(assoc_, "Cannot read the dataset in N-ACTION SCP")); | 1031 ReadDataset(assoc_, "Cannot read the dataset in N-ACTION SCP", associationTimeout_)); |
1031 | 1032 |
1032 std::string transactionUid = ReadString(*dataset, DCM_TransactionUID); | 1033 std::string transactionUid = ReadString(*dataset, DCM_TransactionUID); |
1033 | 1034 |
1034 std::vector<std::string> sopClassUid, sopInstanceUid; | 1035 std::vector<std::string> sopClassUid, sopInstanceUid; |
1035 ReadSopSequence(sopClassUid, sopInstanceUid, | 1036 ReadSopSequence(sopClassUid, sopInstanceUid, |
1148 * J.3-2. Storage Commitment Result - Event Information": | 1149 * J.3-2. Storage Commitment Result - Event Information": |
1149 * http://dicom.nema.org/medical/dicom/2019a/output/chtml/part04/sect_J.3.3.html#table_J.3-2 | 1150 * http://dicom.nema.org/medical/dicom/2019a/output/chtml/part04/sect_J.3.3.html#table_J.3-2 |
1150 **/ | 1151 **/ |
1151 | 1152 |
1152 std::auto_ptr<DcmDataset> dataset( | 1153 std::auto_ptr<DcmDataset> dataset( |
1153 ReadDataset(assoc_, "Cannot read the dataset in N-EVENT-REPORT SCP")); | 1154 ReadDataset(assoc_, "Cannot read the dataset in N-EVENT-REPORT SCP", associationTimeout_)); |
1154 | 1155 |
1155 std::string transactionUid = ReadString(*dataset, DCM_TransactionUID); | 1156 std::string transactionUid = ReadString(*dataset, DCM_TransactionUID); |
1156 | 1157 |
1157 std::vector<std::string> successSopClassUid, successSopInstanceUid; | 1158 std::vector<std::string> successSopClassUid, successSopInstanceUid; |
1158 ReadSopSequence(successSopClassUid, successSopInstanceUid, | 1159 ReadSopSequence(successSopClassUid, successSopInstanceUid, |