Schedule a demo
Segment

Product experience sender

Identifies the organization or individual sending a product experience report and carries the sender's event identifier, sequence number, comments, the date the sender became aware of the event, the report date, timing type, and report source. It appears in product experience report messages (P07/P08) to establish the origin and timing of adverse event submissions for regulatory tracking.

13fields
1required
v2.9HL7 version
pes.py
from zato.hl7v2 import PES

pes = PES()
pes.event_report_date = '20260601'
pes.sender_sequence_number = '1'
pes.event_report_source = 'M'

Build PES segments in Python

How to construct and work with real-world PES segments.

1

Initial report filing

Sender files an initial adverse event report with identifier, date, and timing type

from zato.hl7v2.v2_9 import PES
from zato.hl7v2.v2_9 import EI

pes = PES()
pes.sender_event_identifier = EI(
    entity_identifier='EVT-2024-001',
    namespace_id='SENDER01'
)
pes.sender_comment = (
    'Filed initial report'
)
pes.sender_aware_date_time = (
    '20240510'
)
pes.event_report_date = '20240601'
pes.event_report_timing_type = '15D'
pes.event_report_source = 'M'
2

Follow-up submission

Sender submits a follow-up report with sequence number and updated comment

from zato.hl7v2.v2_9 import PES
from zato.hl7v2.v2_9 import EI

pes = PES()
pes.sender_event_identifier = EI(
    entity_identifier='EVT-2024-002',
    namespace_id='SENDER01'
)
pes.sender_sequence_number = '2'
pes.sender_comment = (
    'Follow-up evaluation'
)
pes.sender_aware_date_time = (
    '20240601'
)
pes.event_report_date = '20240715'
pes.event_report_timing_type = '30D'
pes.event_report_source = 'D'
3

Periodic summary report

Sender submits a periodic summary with report date, comment, and source type

from zato.hl7v2.v2_9 import PES
from zato.hl7v2.v2_9 import EI

pes = PES()
pes.sender_event_identifier = EI(
    entity_identifier='EVT-2024-100',
    namespace_id='PHARMA01'
)
pes.sender_sequence_number = '5'
pes.sender_comment = (
    'Quarterly summary'
)
pes.sender_aware_date_time = (
    '20240101'
)
pes.event_report_date = '20240401'
pes.event_report_timing_type = 'QR'
pes.event_report_source = 'M'

Learn by building

Step-by-step guides for working with HL7 v2 in Zato.

Frequently asked questions

PES identifies the sender of a product experience report and carries the event identifier, sequence number, sender comments, awareness date, report date, timing type, and source. It is used in P07/P08 messages to establish the origin and submission timeline for regulatory adverse event reports.

The sender_event_identifier field uses the EI (entity identifier) datatype:

from zato.hl7v2.v2_9 import PES, EI

pes = PES()
pes.sender_event_identifier = EI(
    entity_identifier='EVT-2024-001',
    namespace_id='SENDER01'
)

The event_report_timing_type field uses HL7 table 0234 for report timing classification:

from zato.hl7v2.v2_9 import PES

pes = PES()

# 15D = 15 day report
pes.event_report_timing_type = '15D'

# 30D = 30 day report
pes.event_report_timing_type = '30D'

The event_report_source field uses HL7 table 0235 to identify who submitted the report:

from zato.hl7v2.v2_9 import PES

pes = PES()

# M = Manufacturer
pes.event_report_source = 'M'

# D = Distributor
pes.event_report_source = 'D'

Use the sender_aware_date_time DTM field to record when the sender first learned of the event:

from zato.hl7v2.v2_9 import PES

pes = PES()
pes.sender_aware_date_time = (
    '20240510'
)
pes.event_report_date = '20240601'

Zato connects to any system that speaks HL7v2 over MLLP or FHIR over REST. This includes Epic, Cerner, Meditech, Allscripts, and other EHR platforms.

Yes, Zato has built-in MLLP support for sending and receiving HL7v2 messages. MLLP channels handle the framing protocol automatically.

Zato supports HL7 v2.9, which is backward compatible with earlier versions including v2.3, v2.5, and v2.7. Standard segments and datatypes are available as typed Python classes.

Yes. Zato handles both HL7v2 and FHIR natively, so you can parse v2 messages and build FHIR resources with IG-specific extensions in the same service. Typed Python classes are available for both protocols, including extensions from US Core, UK Core, Da Vinci, and other Implementation Guides.

PES field reference

Complete list of fields in the PES segment, HL7 v2.9.

#Python nameDatatypeUsageRepeatableTable
1sender_organization_nameXONOptionalYes-
2sender_individual_nameXCNOptionalYes-
3sender_addressXADOptionalYes-
4sender_telephoneXTNOptionalYes-
5sender_event_identifierEIOptionalNo-
6sender_sequence_numberNMOptionalNo-
7sender_event_descriptionFTOptionalYes-
8sender_commentFTOptionalNo-
9sender_aware_date_timeDTMOptionalNo-
10event_report_dateDTMRequiredNo-
11event_report_timing_typeIDOptionalNoHL70234
12event_report_sourceIDOptionalNoHL70235
13event_reported_toIDOptionalYesHL70236

Ready to build integrations?

Get started with Zato and connect your systems in minutes.

Open source In Python