scapy.contrib.dicom
DICOM (Digital Imaging and Communications in Medicine) Protocol Reference: DICOM PS3.8 - Network Communication Support for Message Exchange https://dicom.nema.org/medical/dicom/current/output/html/part08.html
- class scapy.contrib.dicom.A_ABORT(_pkt, /, *, reserved1=0, reserved2=0, source=0, reason_diag=0)[source]
Bases:
PacketA-ABORT PDU for aborting DICOM associations.
- SOURCE_CODES = {0: 'DICOM UL service-user', 2: 'DICOM UL service-provider'}
- aliastypes = [<class 'scapy.contrib.dicom.A_ABORT'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.dicom.A_ASSOCIATE_AC(_pkt, /, *, protocol_version=1, reserved1=0, called_ae_title=b'', calling_ae_title=b'', reserved2=b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', variable_items=[])[source]
Bases:
PacketA-ASSOCIATE-AC PDU for accepting DICOM associations.
- aliastypes = [<class 'scapy.contrib.dicom.A_ASSOCIATE_AC'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ShortField (A_ASSOCIATE_AC).protocol_version>, <ShortField (A_ASSOCIATE_AC).reserved1>, <DICOMAETitleField (A_ASSOCIATE_AC).called_ae_title>, <DICOMAETitleField (A_ASSOCIATE_AC).calling_ae_title>, <StrFixedLenField (A_ASSOCIATE_AC).reserved2>, <PacketListField (A_ASSOCIATE_AC).variable_items>]
- class scapy.contrib.dicom.A_ASSOCIATE_RJ(_pkt, /, *, reserved1=0, result=1, source=1, reason_diag=1)[source]
Bases:
PacketA-ASSOCIATE-RJ PDU for rejecting DICOM associations.
- RESULT_CODES = {1: 'rejected-permanent', 2: 'rejected-transient'}
- SOURCE_CODES = {1: 'DICOM UL service-user', 2: 'DICOM UL service-provider (ACSE)', 3: 'DICOM UL service-provider (Presentation)'}
- aliastypes = [<class 'scapy.contrib.dicom.A_ASSOCIATE_RJ'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.dicom.A_ASSOCIATE_RQ(_pkt, /, *, protocol_version=1, reserved1=0, called_ae_title=b'', calling_ae_title=b'', reserved2=b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', variable_items=[])[source]
Bases:
PacketA-ASSOCIATE-RQ PDU for initiating DICOM associations.
- aliastypes = [<class 'scapy.contrib.dicom.A_ASSOCIATE_RQ'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ShortField (A_ASSOCIATE_RQ).protocol_version>, <ShortField (A_ASSOCIATE_RQ).reserved1>, <DICOMAETitleField (A_ASSOCIATE_RQ).called_ae_title>, <DICOMAETitleField (A_ASSOCIATE_RQ).calling_ae_title>, <StrFixedLenField (A_ASSOCIATE_RQ).reserved2>, <PacketListField (A_ASSOCIATE_RQ).variable_items>]
- class scapy.contrib.dicom.A_RELEASE_RP(_pkt, /, *, reserved1=0)[source]
Bases:
PacketA-RELEASE-RP PDU for confirming association release.
- aliastypes = [<class 'scapy.contrib.dicom.A_RELEASE_RP'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.dicom.A_RELEASE_RQ(_pkt, /, *, reserved1=0)[source]
Bases:
PacketA-RELEASE-RQ PDU for requesting association release.
- aliastypes = [<class 'scapy.contrib.dicom.A_RELEASE_RQ'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.dicom.C_ECHO_RQ(_pkt, /, *, affected_sop_class_uid='1.2.840.10008.1.1', command_field=48, message_id=1, data_set_type=257)[source]
Bases:
DIMSEPacketC-ECHO-RQ DIMSE Command for verification.
- aliastypes = [<class 'scapy.contrib.dicom.C_ECHO_RQ'>, <class 'scapy.contrib.dicom.DIMSEPacket'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.dicom.C_ECHO_RSP(_pkt, /, *, affected_sop_class_uid='1.2.840.10008.1.1', command_field=32816, message_id_responded=1, data_set_type=257, status=0)[source]
Bases:
DIMSEPacketC-ECHO-RSP DIMSE Response.
- aliastypes = [<class 'scapy.contrib.dicom.C_ECHO_RSP'>, <class 'scapy.contrib.dicom.DIMSEPacket'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.dicom.C_FIND_RQ(_pkt, /, *, affected_sop_class_uid='1.2.840.10008.5.1.4.1.2.1.1', command_field=32, message_id=1, priority=2, data_set_type=0)[source]
Bases:
DIMSEPacketC-FIND-RQ DIMSE Command for querying DICOM objects.
- aliastypes = [<class 'scapy.contrib.dicom.C_FIND_RQ'>, <class 'scapy.contrib.dicom.DIMSEPacket'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.dicom.C_FIND_RSP(_pkt, /, *, affected_sop_class_uid='1.2.840.10008.5.1.4.1.2.1.1', command_field=32800, message_id_responded=1, data_set_type=257, status=0)[source]
Bases:
DIMSEPacketC-FIND-RSP DIMSE Response.
- aliastypes = [<class 'scapy.contrib.dicom.C_FIND_RSP'>, <class 'scapy.contrib.dicom.DIMSEPacket'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.dicom.C_GET_RQ(_pkt, /, *, affected_sop_class_uid='1.2.840.10008.5.1.4.1.2.1.3', command_field=16, message_id=1, priority=2, data_set_type=0)[source]
Bases:
DIMSEPacketC-GET-RQ DIMSE Command for retrieving objects on same association.
- aliastypes = [<class 'scapy.contrib.dicom.C_GET_RQ'>, <class 'scapy.contrib.dicom.DIMSEPacket'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.dicom.C_GET_RSP(_pkt, /, *, affected_sop_class_uid='1.2.840.10008.5.1.4.1.2.1.3', command_field=32784, message_id_responded=1, data_set_type=257, status=0, num_remaining=0, num_completed=0, num_failed=0, num_warning=0)[source]
Bases:
DIMSEPacketC-GET-RSP DIMSE Response.
- aliastypes = [<class 'scapy.contrib.dicom.C_GET_RSP'>, <class 'scapy.contrib.dicom.DIMSEPacket'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<DICOMUIDField (C_GET_RSP).affected_sop_class_uid>, <DICOMUSField (C_GET_RSP).command_field>, <DICOMUSField (C_GET_RSP).message_id_responded>, <DICOMUSField (C_GET_RSP).data_set_type>, <DICOMUSField (C_GET_RSP).status>, <DICOMUSField (C_GET_RSP).num_remaining>, <DICOMUSField (C_GET_RSP).num_completed>, <DICOMUSField (C_GET_RSP).num_failed>, <DICOMUSField (C_GET_RSP).num_warning>]
- class scapy.contrib.dicom.C_MOVE_RQ(_pkt, /, *, affected_sop_class_uid='1.2.840.10008.5.1.4.1.2.1.2', command_field=33, message_id=1, priority=2, data_set_type=0, move_destination=b'')[source]
Bases:
DIMSEPacketC-MOVE-RQ DIMSE Command for retrieving DICOM objects.
- aliastypes = [<class 'scapy.contrib.dicom.C_MOVE_RQ'>, <class 'scapy.contrib.dicom.DIMSEPacket'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<DICOMUIDField (C_MOVE_RQ).affected_sop_class_uid>, <DICOMUSField (C_MOVE_RQ).command_field>, <DICOMUSField (C_MOVE_RQ).message_id>, <DICOMUSField (C_MOVE_RQ).priority>, <DICOMUSField (C_MOVE_RQ).data_set_type>, <DICOMAEDIMSEField (C_MOVE_RQ).move_destination>]
- class scapy.contrib.dicom.C_MOVE_RSP(_pkt, /, *, affected_sop_class_uid='1.2.840.10008.5.1.4.1.2.1.2', command_field=32801, message_id_responded=1, data_set_type=257, status=0, num_remaining=0, num_completed=0, num_failed=0, num_warning=0)[source]
Bases:
DIMSEPacketC-MOVE-RSP DIMSE Response.
- aliastypes = [<class 'scapy.contrib.dicom.C_MOVE_RSP'>, <class 'scapy.contrib.dicom.DIMSEPacket'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<DICOMUIDField (C_MOVE_RSP).affected_sop_class_uid>, <DICOMUSField (C_MOVE_RSP).command_field>, <DICOMUSField (C_MOVE_RSP).message_id_responded>, <DICOMUSField (C_MOVE_RSP).data_set_type>, <DICOMUSField (C_MOVE_RSP).status>, <DICOMUSField (C_MOVE_RSP).num_remaining>, <DICOMUSField (C_MOVE_RSP).num_completed>, <DICOMUSField (C_MOVE_RSP).num_failed>, <DICOMUSField (C_MOVE_RSP).num_warning>]
- class scapy.contrib.dicom.C_STORE_RQ(_pkt, /, *, affected_sop_class_uid='1.2.840.10008.5.1.4.1.1.2', command_field=1, message_id=1, priority=2, data_set_type=0, affected_sop_instance_uid='1.2.3.4.5.6.7.8.9')[source]
Bases:
DIMSEPacketC-STORE-RQ DIMSE Command for storing DICOM objects.
- aliastypes = [<class 'scapy.contrib.dicom.C_STORE_RQ'>, <class 'scapy.contrib.dicom.DIMSEPacket'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<DICOMUIDField (C_STORE_RQ).affected_sop_class_uid>, <DICOMUSField (C_STORE_RQ).command_field>, <DICOMUSField (C_STORE_RQ).message_id>, <DICOMUSField (C_STORE_RQ).priority>, <DICOMUSField (C_STORE_RQ).data_set_type>, <DICOMUIDField (C_STORE_RQ).affected_sop_instance_uid>]
- class scapy.contrib.dicom.C_STORE_RSP(_pkt, /, *, affected_sop_class_uid='1.2.840.10008.5.1.4.1.1.2', command_field=32769, message_id_responded=1, data_set_type=257, status=0, affected_sop_instance_uid='1.2.3.4.5.6.7.8.9')[source]
Bases:
DIMSEPacketC-STORE-RSP DIMSE Response.
- aliastypes = [<class 'scapy.contrib.dicom.C_STORE_RSP'>, <class 'scapy.contrib.dicom.DIMSEPacket'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<DICOMUIDField (C_STORE_RSP).affected_sop_class_uid>, <DICOMUSField (C_STORE_RSP).command_field>, <DICOMUSField (C_STORE_RSP).message_id_responded>, <DICOMUSField (C_STORE_RSP).data_set_type>, <DICOMUSField (C_STORE_RSP).status>, <DICOMUIDField (C_STORE_RSP).affected_sop_instance_uid>]
- class scapy.contrib.dicom.DICOM(_pkt, /, *, pdu_type=1, reserved1=0, length=None)[source]
Bases:
PacketDICOM Upper Layer (UL) PDU header.
- aliastypes = [<class 'scapy.contrib.dicom.DICOM'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (DICOM).pdu_type>, <ByteField (DICOM).reserved1>, <LenField (DICOM).length>]
- payload_guess: List[Tuple[Dict[str, Any], Type[Packet]]] = [({'pdu_type': 1}, <class 'scapy.contrib.dicom.A_ASSOCIATE_RQ'>), ({'pdu_type': 2}, <class 'scapy.contrib.dicom.A_ASSOCIATE_AC'>), ({'pdu_type': 3}, <class 'scapy.contrib.dicom.A_ASSOCIATE_RJ'>), ({'pdu_type': 4}, <class 'scapy.contrib.dicom.P_DATA_TF'>), ({'pdu_type': 5}, <class 'scapy.contrib.dicom.A_RELEASE_RQ'>), ({'pdu_type': 6}, <class 'scapy.contrib.dicom.A_RELEASE_RP'>), ({'pdu_type': 7}, <class 'scapy.contrib.dicom.A_ABORT'>)]
- class scapy.contrib.dicom.DICOMAEDIMSEField(name: str, default: Any, tag_group: int, tag_elem: int)[source]
Bases:
DICOMElementFieldDICOM AE element field for DIMSE - 16 bytes, space-padded.
- class scapy.contrib.dicom.DICOMAETitleField(name: str, default: bytes = b'')[source]
Bases:
StrFixedLenFieldDICOM AE Title field - 16 bytes, space-padded per PS3.5 Section 6.2.
- class scapy.contrib.dicom.DICOMAbstractSyntax(_pkt, /, *, uid=b'')[source]
Bases:
PacketDICOM Abstract Syntax item.
- aliastypes = [<class 'scapy.contrib.dicom.DICOMAbstractSyntax'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.dicom.DICOMApplicationContext(_pkt, /, *, uid=b'1.2.840.10008.3.1.1.1\x00')[source]
Bases:
PacketDICOM Application Context item.
- aliastypes = [<class 'scapy.contrib.dicom.DICOMApplicationContext'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.dicom.DICOMAsyncOperationsWindow(_pkt, /, *, max_ops_invoked=1, max_ops_performed=1)[source]
Bases:
PacketDICOM Asynchronous Operations Window sub-item.
- aliastypes = [<class 'scapy.contrib.dicom.DICOMAsyncOperationsWindow'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.dicom.DICOMElementField(name: str, default: Any, tag_group: int, tag_elem: int)[source]
Bases:
Field[bytes,bytes]DICOM data element field with explicit tag and length encoding.
- randval() RandString[source]
- tag_elem
- tag_group
- class scapy.contrib.dicom.DICOMImplementationClassUID(_pkt, /, *, uid=b'')[source]
Bases:
PacketDICOM Implementation Class UID sub-item.
- aliastypes = [<class 'scapy.contrib.dicom.DICOMImplementationClassUID'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.dicom.DICOMImplementationVersionName(_pkt, /, *, name='DICOM Implementation Version Name')[source]
Bases:
PacketDICOM Implementation Version Name sub-item.
- aliastypes = [<class 'scapy.contrib.dicom.DICOMImplementationVersionName'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.dicom.DICOMMaximumLength(_pkt, /, *, max_pdu_length=16384)[source]
Bases:
PacketDICOM Maximum Length sub-item.
- aliastypes = [<class 'scapy.contrib.dicom.DICOMMaximumLength'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.dicom.DICOMPresentationContextAC(_pkt, /, *, context_id=1, reserved1=0, result=0, reserved2=0, sub_items=[])[source]
Bases:
PacketDICOM Presentation Context item for association accepts.
- RESULT_CODES = {0: 'acceptance', 1: 'user-rejection', 2: 'no-reason', 3: 'abstract-syntax-not-supported', 4: 'transfer-syntaxes-not-supported'}
- aliastypes = [<class 'scapy.contrib.dicom.DICOMPresentationContextAC'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteField (DICOMPresentationContextAC).context_id>, <ByteField (DICOMPresentationContextAC).reserved1>, <ByteEnumField (DICOMPresentationContextAC).result>, <ByteField (DICOMPresentationContextAC).reserved2>, <PacketListField (DICOMPresentationContextAC).sub_items>]
- class scapy.contrib.dicom.DICOMPresentationContextRQ(_pkt, /, *, context_id=1, reserved1=0, reserved2=0, reserved3=0, sub_items=[])[source]
Bases:
PacketDICOM Presentation Context item for association requests.
- aliastypes = [<class 'scapy.contrib.dicom.DICOMPresentationContextRQ'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteField (DICOMPresentationContextRQ).context_id>, <ByteField (DICOMPresentationContextRQ).reserved1>, <ByteField (DICOMPresentationContextRQ).reserved2>, <ByteField (DICOMPresentationContextRQ).reserved3>, <PacketListField (DICOMPresentationContextRQ).sub_items>]
- class scapy.contrib.dicom.DICOMSCPSCURoleSelection(_pkt, /, *, uid_length=None, sop_class_uid=b'', scu_role=0, scp_role=0)[source]
Bases:
PacketDICOM SCP/SCU Role Selection sub-item.
- aliastypes = [<class 'scapy.contrib.dicom.DICOMSCPSCURoleSelection'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.dicom.DICOMSOPClassCommonExtendedNegotiation(_pkt, /, *, sop_class_uid_length=None, sop_class_uid=b'', service_class_uid_length=None, service_class_uid=b'', related_sop_class_uid_length=None, related_sop_class_uids=b'')[source]
Bases:
PacketDICOM SOP Class Common Extended Negotiation sub-item (PS3.7 D.3.3.6).
- aliastypes = [<class 'scapy.contrib.dicom.DICOMSOPClassCommonExtendedNegotiation'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<FieldLenField (DICOMSOPClassCommonExtendedNegotiation).sop_class_uid_length>, <StrLenField (DICOMSOPClassCommonExtendedNegotiation).sop_class_uid>, <FieldLenField (DICOMSOPClassCommonExtendedNegotiation).service_class_uid_length>, <StrLenField (DICOMSOPClassCommonExtendedNegotiation).service_class_uid>, <FieldLenField (DICOMSOPClassCommonExtendedNegotiation).related_sop_class_uid_length>, <StrLenField (DICOMSOPClassCommonExtendedNegotiation).related_sop_class_uids>]
- class scapy.contrib.dicom.DICOMSOPClassExtendedNegotiation(_pkt, /, *, sop_class_uid_length=None, sop_class_uid=b'', service_class_application_information=b'')[source]
Bases:
PacketDICOM SOP Class Extended Negotiation sub-item (PS3.7 D.3.3.5).
- aliastypes = [<class 'scapy.contrib.dicom.DICOMSOPClassExtendedNegotiation'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.dicom.DICOMSocket(dst_ip: str, dst_port: int, dst_ae: str, src_ae: str = 'SCAPY_SCU', read_timeout: int = 10)[source]
Bases:
objectDICOM application-layer socket for associations and DIMSE operations.
- accepted_contexts: Dict[int, Tuple[str, str]]
- c_store(dataset_bytes: bytes, sop_class_uid: str, sop_instance_uid: str, transfer_syntax_uid: str) int | None[source]
- sock: socket | None
- stream: StreamSocket | None
- class scapy.contrib.dicom.DICOMTransferSyntax(_pkt, /, *, uid=b'1.2.840.10008.1.2\x00')[source]
Bases:
PacketDICOM Transfer Syntax item.
- aliastypes = [<class 'scapy.contrib.dicom.DICOMTransferSyntax'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.dicom.DICOMUIDField(name: str, default: Any, tag_group: int, tag_elem: int)[source]
Bases:
DICOMElementFieldDICOM UID element field with automatic even-length padding.
- class scapy.contrib.dicom.DICOMUIDFieldRaw(name: str, default: Any, tag_group: int, tag_elem: int)[source]
Bases:
DICOMElementFieldDICOM UID element field without automatic padding.
- class scapy.contrib.dicom.DICOMULField(name: str, default: Any, tag_group: int, tag_elem: int)[source]
Bases:
DICOMElementFieldDICOM Unsigned Long (UL) element field.
- class scapy.contrib.dicom.DICOMUSField(name: str, default: Any, tag_group: int, tag_elem: int)[source]
Bases:
DICOMElementFieldDICOM Unsigned Short (US) element field.
- class scapy.contrib.dicom.DICOMUserIdentity(_pkt, /, *, user_identity_type=1, positive_response_requested=0, primary_field_length=None, primary_field=b'', secondary_field_length=None, secondary_field=b'')[source]
Bases:
PacketDICOM User Identity sub-item.
- aliastypes = [<class 'scapy.contrib.dicom.DICOMUserIdentity'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (DICOMUserIdentity).user_identity_type>, <ByteField (DICOMUserIdentity).positive_response_requested>, <FieldLenField (DICOMUserIdentity).primary_field_length>, <StrLenField (DICOMUserIdentity).primary_field>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>]
- class scapy.contrib.dicom.DICOMUserIdentityResponse(_pkt, /, *, response_length=None, server_response=b'')[source]
Bases:
PacketDICOM User Identity Server Response sub-item.
- aliastypes = [<class 'scapy.contrib.dicom.DICOMUserIdentityResponse'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.dicom.DICOMUserInformation(_pkt, /, *, sub_items=[])[source]
Bases:
PacketDICOM User Information item.
- aliastypes = [<class 'scapy.contrib.dicom.DICOMUserInformation'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.dicom.DICOMVariableItem(_pkt, /, *, item_type=16, reserved=0, length=None)[source]
Bases:
PacketDICOM variable item header with type and length fields.
- aliastypes = [<class 'scapy.contrib.dicom.DICOMVariableItem'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (DICOMVariableItem).item_type>, <ByteField (DICOMVariableItem).reserved>, <LenField (DICOMVariableItem).length>]
- payload_guess: List[Tuple[Dict[str, Any], Type[Packet]]] = [({'item_type': 16}, <class 'scapy.contrib.dicom.DICOMApplicationContext'>), ({'item_type': 32}, <class 'scapy.contrib.dicom.DICOMPresentationContextRQ'>), ({'item_type': 33}, <class 'scapy.contrib.dicom.DICOMPresentationContextAC'>), ({'item_type': 48}, <class 'scapy.contrib.dicom.DICOMAbstractSyntax'>), ({'item_type': 64}, <class 'scapy.contrib.dicom.DICOMTransferSyntax'>), ({'item_type': 80}, <class 'scapy.contrib.dicom.DICOMUserInformation'>), ({'item_type': 81}, <class 'scapy.contrib.dicom.DICOMMaximumLength'>), ({'item_type': 82}, <class 'scapy.contrib.dicom.DICOMImplementationClassUID'>), ({'item_type': 83}, <class 'scapy.contrib.dicom.DICOMAsyncOperationsWindow'>), ({'item_type': 84}, <class 'scapy.contrib.dicom.DICOMSCPSCURoleSelection'>), ({'item_type': 85}, <class 'scapy.contrib.dicom.DICOMImplementationVersionName'>), ({'item_type': 86}, <class 'scapy.contrib.dicom.DICOMSOPClassExtendedNegotiation'>), ({'item_type': 87}, <class 'scapy.contrib.dicom.DICOMSOPClassCommonExtendedNegotiation'>), ({'item_type': 88}, <class 'scapy.contrib.dicom.DICOMUserIdentity'>), ({'item_type': 89}, <class 'scapy.contrib.dicom.DICOMUserIdentityResponse'>), ({}, <class 'scapy.contrib.dicom.DICOMGenericItem'>)]
- class scapy.contrib.dicom.DIMSEPacket(_pkt, /)[source]
Bases:
PacketBase class for DIMSE command packets with automatic group length.
- GROUP_LENGTH_ELEMENT_SIZE = 12
- aliastypes = [<class 'scapy.contrib.dicom.DIMSEPacket'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.dicom.P_DATA_TF(_pkt, /, *, pdv_items=[])[source]
Bases:
PacketP-DATA-TF PDU for transferring DICOM data.
- aliastypes = [<class 'scapy.contrib.dicom.P_DATA_TF'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.dicom.PresentationDataValueItem(_pkt, /, *, length=None, context_id=1, reserved_bits=0, is_last=0, is_command=0, data=b'')[source]
Bases:
PacketPresentation Data Value (PDV) item within P-DATA-TF PDU.
- aliastypes = [<class 'scapy.contrib.dicom.PresentationDataValueItem'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<FieldLenField (PresentationDataValueItem).length>, <ByteField (PresentationDataValueItem).context_id>, <BitField (PresentationDataValueItem).reserved_bits>, <BitField (PresentationDataValueItem).is_last>, <BitField (PresentationDataValueItem).is_command>, <StrLenField (PresentationDataValueItem).data>]
- scapy.contrib.dicom.build_presentation_context_rq(context_id: int, abstract_syntax_uid: str, transfer_syntax_uids: List[str]) Packet[source]
Build a Presentation Context RQ item.