def test_message_to_primitive_c_store(self): """Test converting C_STORE_RQ and _RSP to C_STORE primitive.""" msg = C_STORE_RQ() for data in [c_store_rq_cmd, c_store_ds]: p_data = P_DATA() p_data.presentation_data_value_list.append([0, data]) msg.decode_msg(p_data) primitive = msg.message_to_primitive() assert isinstance(primitive, C_STORE) assert isinstance(primitive.DataSet, BytesIO) assert primitive.AffectedSOPClassUID == UID("1.1.1") assert primitive.AffectedSOPInstanceUID == UID("1.2.1") assert primitive.Priority == 2 assert primitive.MoveOriginatorApplicationEntityTitle == "UNITTEST" assert primitive.MoveOriginatorMessageID == 3 ds = decode(primitive.DataSet, True, True) assert ds.PatientName == "Tube^HeNe" assert ds.PatientID == "Test1101" msg = C_STORE_RSP() p_data = P_DATA() p_data.presentation_data_value_list.append([0, c_store_rsp_cmd]) msg.decode_msg(p_data) primitive = msg.message_to_primitive() assert isinstance(primitive, C_STORE) assert primitive.DataSet is None for elem in msg.command_set: if hasattr(primitive, elem.keyword): item = getattr(primitive, elem.keyword) assert item == elem.value
def test_decode(self): """Test decoding of a DIMSE message.""" primitive = C_STORE() primitive.MessageID = 7 primitive.AffectedSOPClassUID = "1.1.1" primitive.AffectedSOPInstanceUID = "1.2.1" primitive.Priority = 0x02 primitive.MoveOriginatorApplicationEntityTitle = "UNITTEST" primitive.MoveOriginatorMessageID = 3 ds = Dataset() ds.PatientID = "Test1101" ds.PatientName = "Tube^HeNe" primitive.DataSet = BytesIO(encode(ds, True, True)) dimse_msg = C_STORE_RQ() dimse_msg.primitive_to_message(primitive) # CMD: (1x4, 3x1), DS: (0x1, 2x1) p_data = dimse_msg.encode_msg(12, 24) # Command set decoding dimse_msg.decode_msg(next(p_data)) # MCHB 1 dimse_msg.decode_msg(next(p_data)) # MCHB 1 dimse_msg.decode_msg(next(p_data)) # MCHB 1 dimse_msg.decode_msg(next(p_data)) # MCHB 1 dimse_msg.decode_msg(next(p_data)) # MCHB 3 - end of command set assert dimse_msg.__class__ == C_STORE_RQ # Test decoded command set cs = dimse_msg.command_set assert cs.CommandGroupLength == 94 assert cs.AffectedSOPClassUID == UID("1.1.1") assert cs.AffectedSOPInstanceUID == UID("1.2.1") assert cs.Priority == 2 assert cs.CommandDataSetType == 1 assert cs.CommandField == 1 assert cs.MoveOriginatorApplicationEntityTitle == "UNITTEST" assert cs.MoveOriginatorMessageID == 3 # Test decoded dataset dimse_msg.decode_msg(next(p_data)) # MCHB 1 # MCHB 0 dimse_msg.decode_msg(next(p_data)) # MCHB 1 # MCHB 2 assert dimse_msg.data_set.getvalue() == c_store_ds[1:] # Test returns false msg = C_STORE_RSP() assert not msg.decode_msg(c_store_rsp_cmd)