Schedule a demo
Segment

Possible causal relationship

Links a product to an adverse event by recording the implicated product, manufacturing and expiration dates, implantation and explantation dates, evaluation status, and relatedness assessment. It appears in product experience report messages (P07/P08) to document potential causal connections between a device or drug and a reported adverse outcome, supporting regulatory post-market surveillance workflows.

23fields
1required
v2.9HL7 version
pcr.py
from zato.hl7v2 import PCR

pcr = PCR()
pcr.implicated_product = 'DEV001'
pcr.product_problem = 'Y'
pcr.relatedness_assessment = 'HR'

Build PCR segments in Python

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

1

Device investigation

Records an implicated device with manufacture date, single-use flag, and evaluation status

from zato.hl7v2.v2_9 import PCR
from zato.hl7v2.v2_9 import CWE

pcr = PCR()
pcr.implicated_product = CWE(
    identifier='DEV001',
    text='CardioMonitor',
    name_of_coding_system='LOCAL'
)
pcr.product_manufacture_date = (
    '20230101'
)
pcr.product_expiration_date = (
    '20260101'
)
pcr.single_use_device = CWE(
    identifier='Y',
    text='Yes',
    name_of_coding_system='HL70244'
)
pcr.product_problem = CWE(
    identifier='Y',
    text='Yes',
    name_of_coding_system='HL70245'
)
pcr.product_serial_lot_number = (
    'SN-44821'
)
pcr.relatedness_assessment = 'HR'
2

Implant evaluation

Documents an implanted device with implantation date, evaluation results, and return date

from zato.hl7v2.v2_9 import PCR
from zato.hl7v2.v2_9 import CWE

pcr = PCR()
pcr.implicated_product = CWE(
    identifier='IMP100',
    text='HipJoint',
    name_of_coding_system='LOCAL'
)
pcr.product_implantation_date = (
    '20230615'
)
pcr.product_explantation_date = (
    '20240801'
)
pcr.product_problem = CWE(
    identifier='Y',
    text='Yes',
    name_of_coding_system='HL70245'
)
pcr.product_evaluation_status = CWE(
    identifier='CO',
    text='Complete',
    name_of_coding_system='HL70247'
)
pcr.product_evaluation_results = CWE(
    identifier='NC',
    text='No cause',
    name_of_coding_system='HL70674'
)
pcr.date_product_returned_to_manufacturer = (
    '20240901'
)
3

Drug reaction report

Captures a drug product with therapy duration, indication for use, and action taken

from zato.hl7v2.v2_9 import PCR
from zato.hl7v2.v2_9 import CWE

pcr = PCR()
pcr.implicated_product = CWE(
    identifier='RX500',
    text='Metformin',
    name_of_coding_system='NDC'
)
pcr.product_manufacture_date = (
    '20230601'
)
pcr.product_expiration_date = (
    '20240601'
)
pcr.indication_for_product_use = CWE(
    identifier='HBP',
    text='Diabetes',
    name_of_coding_system='ICD10'
)
pcr.product_serial_lot_number = (
    'LOT-9921'
)
pcr.relatedness_assessment = 'SR'
pcr.action_taken_in_response_to_the_event = (
    'WD'
)

Learn by building

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

Frequently asked questions

PCR documents a possible causal relationship between a product and an adverse event. It captures the implicated product, manufacturing and expiration dates, evaluation status, and relatedness assessment, and is used in product experience reports for regulatory post-market surveillance.

The implicated_product field uses the CWE datatype with HL7 table 0670:

from zato.hl7v2.v2_9 import PCR, CWE

pcr = PCR()
pcr.implicated_product = CWE(
    identifier='DEV001',
    text='CardioMonitor',
    name_of_coding_system='LOCAL'
)

The relatedness_assessment field uses HL7 table 0250 to indicate the degree of causal relationship:

from zato.hl7v2.v2_9 import PCR

pcr = PCR()

# HR = Highly related
pcr.relatedness_assessment = 'HR'

# SR = Somewhat related
pcr.relatedness_assessment = 'SR'

# NR = Not related
pcr.relatedness_assessment = 'NR'

Use product_evaluation_status (table 0247) and product_evaluation_results (table 0674):

from zato.hl7v2.v2_9 import PCR, CWE

pcr = PCR()
pcr.product_evaluation_status = CWE(
    identifier='CO',
    text='Complete',
    name_of_coding_system='HL70247'
)
pcr.product_evaluation_results = CWE(
    identifier='NC',
    text='No cause',
    name_of_coding_system='HL70674'
)

Use the DTM-typed date fields to record when a device was implanted and later removed:

from zato.hl7v2.v2_9 import PCR

pcr = PCR()
pcr.product_implantation_date = (
    '20230615'
)
pcr.product_explantation_date = (
    '20240801'
)

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.

PCR field reference

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

#Python nameDatatypeUsageRepeatableTable
1implicated_productCWERequiredNoHL70670
2generic_productISOptionalNoHL70249
3product_classCWEOptionalNoHL70671
4total_duration_of_therapyCQOptionalNo-
5product_manufacture_dateDTMOptionalNo-
6product_expiration_dateDTMOptionalNo-
7product_implantation_dateDTMOptionalNo-
8product_explantation_dateDTMOptionalNo-
9single_use_deviceCWEOptionalNoHL70244
10indication_for_product_useCWEOptionalNoHL70672
11product_problemCWEOptionalNoHL70245
12product_serial_lot_numberSTOptionalNo-
13product_available_for_inspectionCWEOptionalNoHL70246
14product_evaluation_performedCWEOptionalNoHL70673
15product_evaluation_statusCWEOptionalNoHL70247
16product_evaluation_resultsCWEOptionalNoHL70674
17evaluated_product_sourceIDOptionalNoHL70248
18date_product_returned_to_manufacturerDTMOptionalNo-
19device_operator_qualificationsIDOptionalNoHL70242
20relatedness_assessmentIDOptionalNoHL70250
21action_taken_in_response_to_the_eventIDOptionalNoHL70251
22event_causality_observationsIDOptionalNoHL70252
23indirect_exposure_mechanismIDOptionalNoHL70253

Ready to build integrations?

Get started with Zato and connect your systems in minutes.

Open source In Python