Schedule a demo
Segment

Facility

Identifies a healthcare or manufacturing facility involved in a product experience report, carrying the facility identifier, type, telecommunication details, and signature authority information. It appears in product experience report messages (P07/P08) to document which facilities are associated with the manufacturing, distribution, or clinical use of the reported product.

12fields
4required
v2.9HL7 version
fac.py
from zato.hl7v2 import FAC

fac = FAC()
fac.facility_id_fac = 'FAC-001'
fac.facility_type = 'M'

Build FAC segments in Python

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

1

Manufacturing facility

Identifies a manufacturing facility with its type, phone number, and authority title

from zato.hl7v2.v2_9 import FAC
from zato.hl7v2.v2_9 import EI, XTN

fac = FAC()
fac.facility_id_fac = EI(
    entity_identifier='FAC-001',
    namespace_id='MFG_SITE',
    universal_id_type='LOCAL'
)
fac.facility_type = 'M'
fac.facility_telecommunication = XTN(
    telecommunication_use_code='PRN',
    telecommunication_equipment_type='PH',
    country_code='1',
    area_city_code='555',
    local_number='5551234'
)
fac.signature_authority_title = (
    'Plant Manager'
)
fac.signature_authority_telecommunication = XTN(
    telecommunication_use_code='PRN',
    telecommunication_equipment_type='PH',
    country_code='1',
    area_city_code='555',
    local_number='5551235'
)
2

Distribution center

Registers a distribution facility with its identifier and contact phone

from zato.hl7v2.v2_9 import FAC
from zato.hl7v2.v2_9 import EI, XTN

fac = FAC()
fac.facility_id_fac = EI(
    entity_identifier='DC-100',
    namespace_id='DIST_CTR',
    universal_id_type='LOCAL'
)
fac.facility_type = 'D'
fac.facility_telecommunication = XTN(
    telecommunication_use_code='PRN',
    telecommunication_equipment_type='PH',
    country_code='1',
    area_city_code='212',
    local_number='5559000'
)
fac.signature_authority_title = (
    'Director'
)
3

User facility

Records a clinical user facility with email contact and signature authority phone

from zato.hl7v2.v2_9 import FAC
from zato.hl7v2.v2_9 import EI, XTN

fac = FAC()
fac.facility_id_fac = EI(
    entity_identifier='HOSP-50',
    namespace_id='MAIN_HOSP',
    universal_id_type='LOCAL'
)
fac.facility_type = 'U'
fac.facility_telecommunication = XTN(
    telecommunication_use_code='NET',
    telecommunication_equipment_type=(
        'Internet'
    ),
    communication_address=(
        'admin@hosp.org'
    )
)
fac.signature_authority_title = (
    'Chief Medical Officer'
)
fac.signature_authority_telecommunication = XTN(
    telecommunication_use_code='PRN',
    telecommunication_equipment_type='PH',
    country_code='1',
    area_city_code='312',
    local_number='5558000'
)

Learn by building

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

Frequently asked questions

FAC identifies a facility involved in a product experience report - manufacturer, distributor, or user facility. It carries the facility identifier, type, telecommunication details, and signature authority information for regulatory documentation.

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

from zato.hl7v2.v2_9 import FAC, EI

fac = FAC()
fac.facility_id_fac = EI(
    entity_identifier='FAC-001',
    namespace_id='MFG_SITE',
    universal_id_type='LOCAL'
)

The facility_telecommunication field uses the XTN (extended telecommunication) datatype:

from zato.hl7v2.v2_9 import FAC, XTN

fac = FAC()
fac.facility_telecommunication = XTN(
    telecommunication_use_code='PRN',
    telecommunication_equipment_type='PH',
    country_code='1',
    area_city_code='555',
    local_number='5551234'
)

The facility_type field uses HL7 table 0331 to classify the facility role:

from zato.hl7v2.v2_9 import FAC

fac = FAC()

# M = Manufacturer
fac.facility_type = 'M'

# D = Distributor
fac.facility_type = 'D'

# U = User facility
fac.facility_type = 'U'

Use signature_authority_title and signature_authority_telecommunication to identify the responsible person:

from zato.hl7v2.v2_9 import FAC, XTN

fac = FAC()
fac.signature_authority_title = (
    'Plant Manager'
)
fac.signature_authority_telecommunication = XTN(
    telecommunication_use_code='PRN',
    telecommunication_equipment_type='PH',
    country_code='1',
    area_city_code='555',
    local_number='5551235'
)

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.

FAC field reference

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

#Python nameDatatypeUsageRepeatableTable
1facility_id_facEIRequiredNo-
2facility_typeIDOptionalNoHL70331
3facility_addressXADRequiredYes-
4facility_telecommunicationXTNRequiredNo-
5contact_personXCNOptionalYes-
6contact_titleSTOptionalYes-
7contact_addressXADOptionalYes-
8contact_telecommunicationXTNOptionalYes-
9signature_authorityXCNRequiredYes-
10signature_authority_titleSTOptionalNo-
11signature_authority_addressXADOptionalYes-
12signature_authority_telecommunicationXTNOptionalNo-

Ready to build integrations?

Get started with Zato and connect your systems in minutes.

Open source In Python