Schedule a demo
Segment

General segment

Serves as the primary observation and test definition segment in the master file framework, carrying the universal service identifier, observation type, specimen requirements, applicable units, and observation-producing department. It is used in MFN messages sent by LIS and lab systems to synchronize test catalogs with ordering systems such as CPOE and EHRs. Every observation type definition requires at minimum an OM1 segment.

59fields
5required
v2.9HL7 version
om1.py
from zato.hl7v2.v2_9 import OM1
from zato.hl7v2.v2_9 import CWE

om1 = OM1()
om1.sequence_number_test_observation_master_file = '1'
om1.producers_service_test_observation_id = CWE(
        identifier='2093-3',
        text='Cholesterol total',
    )

Build OM1 segments in Python

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

1

Nutrition panel observation definition

Defines a comprehensive nutrition panel test in the master file with specimen requirement, producer, and observation description

from zato.hl7v2.v2_9 import OM1
from zato.hl7v2.v2_9 import CWE

om1 = OM1()
om1.sequence_number_test_observation_master_file = '1'
om1.producers_service_test_observation_id = CWE(
    identifier='NUT100',
    text='Nutrition Panel',
    name_of_coding_system='LN'
)
om1.permitted_data_types = 'NM'
om1.specimen_required = 'Y'
om1.producer_id = CWE(
    identifier='LABWELL',
    text='Wellness Lab',
    name_of_coding_system='LN'
)
om1.observation_description = 'Comprehensive nutrition marker panel including vitamins and minerals'
2

Fitness assessment test setup

Configures a fitness assessment observation with an alternate test ID, specimen not required, and a nature-of-service classification

from zato.hl7v2.v2_9 import OM1
from zato.hl7v2.v2_9 import CWE

om1 = OM1()
om1.sequence_number_test_observation_master_file = '2'
om1.producers_service_test_observation_id = CWE(
    identifier='FIT200',
    text='Cardio Fitness Score',
    name_of_coding_system='LN'
)
om1.permitted_data_types = 'NM'
om1.specimen_required = 'N'
om1.producer_id = CWE(
    identifier='FITDEPT',
    text='Fitness Dept',
    name_of_coding_system='LN'
)
om1.observation_description = 'Resting and recovery heart rate fitness assessment'
om1.other_service_test_observation_i_ds_for_the_observation = CWE(
    identifier='FIT200A',
    text='Cardio Fitness Alt',
    name_of_coding_system='LN'
)
om1.nature_of_service_test_observation = CWE(
    identifier='P',
    text='Profile',
    name_of_coding_system='HL70174'
)
3

Routine vitals check definition with units

Defines a routine blood pressure observation with units of measure, portable device support, and diagnostic service section

from zato.hl7v2.v2_9 import OM1
from zato.hl7v2.v2_9 import CWE

om1 = OM1()
om1.sequence_number_test_observation_master_file = '3'
om1.producers_service_test_observation_id = CWE(
    identifier='8480-6',
    text='Systolic BP',
    name_of_coding_system='LN'
)
om1.permitted_data_types = 'NM'
om1.specimen_required = 'N'
om1.producer_id = CWE(
    identifier='VITALS',
    text='Vitals Station',
    name_of_coding_system='LN'
)
om1.observation_description = 'Routine resting systolic blood pressure'
om1.preferred_report_name_for_the_observation = 'mmHg^millimeters of mercury^UCUM'
om1.portable_device_indicator = 'N'

Learn by building

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

Frequently asked questions

OM1 rows describe catalog entries for preventive panels and fitness markers. They travel after MFI and MFE segments so receiving systems can align identifiers, names, and scheduling metadata with each master file record.

Field 2 is a CWE with optional text and coding system:

from zato.hl7v2.v2_9 import OM1, CWE

om1 = OM1()
om1.producers_service_test_observation_id = CWE(
    identifier='2093-3',
    text='Cholesterol total',
    name_of_coding_system='LN',
)

Field 4 uses table HL70136. A value of Y means a specimen is expected before the observation can be fulfilled, which is typical for lab-based wellness chemistry markers.

from zato.hl7v2.v2_9 import OM1

om1 = OM1()
om1.specimen_required = 'Y'

Field 18 is a required CWE that classifies the observation family such as chemistry or fitness testing. Downstream report layouts often use it to group preventive screening results.

Use OM2 for numeric reference ranges, OM3 for categorical answers, OM4 for specimen collection detail, and OM7 for scheduling and consent-oriented catalog attributes. Together they round out the definition beyond the OM1 row.

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.

OM1 field reference

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

#Python nameDatatypeUsageRepeatableTable
1sequence_number_test_observation_master_fileNMRequiredNo-
2producers_service_test_observation_idCWERequiredNo-
3permitted_data_typesIDOptionalYesHL70125
4specimen_requiredIDRequiredNoHL70136
5producer_idCWERequiredNoHL70631
6observation_descriptionTXOptionalNo-
7other_service_test_observation_i_ds_for_the_observationCWEOptionalYesHL70632
8other_namesSTOptionalYes-
9preferred_report_name_for_the_observationSTOptionalNo-
10preferred_short_name_or_mnemonic_for_the_observationSTOptionalNo-
11preferred_long_name_for_the_observationSTOptionalNo-
12orderabilityIDOptionalNoHL70136
13identity_of_instrument_used_to_perform_this_studyCWEOptionalYesHL70633
14coded_representation_of_methodCWEOptionalYesHL70635
15portable_device_indicatorIDOptionalNoHL70136
16observation_producing_department_sectionCWEOptionalYesHL70636
17telephone_number_of_sectionXTNOptionalNo-
18nature_of_service_test_observationCWERequiredNoHL70174
19report_subheaderCWEOptionalNoHL70637
20report_display_orderSTOptionalNo-
21date_time_stamp_for_any_change_in_definition_for_the_observationDTMOptionalNo-
22effective_date_time_of_changeDTMOptionalNo-
23typical_turn_around_timeNMOptionalNo-
24processing_timeNMOptionalNo-
25processing_priorityIDOptionalYesHL70168
26reporting_priorityIDOptionalNoHL70169
27outside_sites_where_observation_may_be_performedCWEOptionalYesHL70638
28address_of_outside_sitesXADOptionalYes-
29phone_number_of_outside_siteXTNOptionalNo-
30confidentiality_codeCWEOptionalNoHL70177
31observations_required_to_interpret_this_observationCWEOptionalYesHL70639
32interpretation_of_observationsTXOptionalNo-
33contraindications_to_observationsCWEOptionalYesHL70640
34reflex_tests_observationsCWEOptionalYesHL70641
35rules_that_trigger_reflex_testingTXOptionalYes-
36fixed_canned_messageCWEOptionalYesHL70643
37patient_preparationTXOptionalYes-
38procedure_medicationCWEOptionalNoHL70644
39factors_that_may_affect_the_observationTXOptionalNo-
40service_test_observation_performance_scheduleSTOptionalYes-
41description_of_test_methodsTXOptionalNo-
42kind_of_quantity_observedCWEOptionalNoHL70254
43point_versus_intervalCWEOptionalNoHL70255
44challenge_informationTXOptionalNoHL70256
45relationship_modifierCWEOptionalNoHL70258
46target_anatomic_site_of_testCWEOptionalNoHL70645
47modality_of_imaging_measurementCWEOptionalNoHL70910
48exclusive_testIDOptionalNoHL70919
49diagnostic_serv_sect_idIDOptionalNoHL70074
50taxonomic_classification_codeCWEOptionalNo-
51other_names_51STOptionalYes-
52replacement_producers_service_test_observation_idCWEOptionalYesHL70646
53prior_resuts_instructionsTXOptionalYes-
54special_instructionsTXOptionalNo-
55test_categoryCWEOptionalYes-
56observation_identifier_associated_with_producers_service_test_observation_idCWEOptionalNoHL70647
57typical_turn_around_time_57CQOptionalNo-
58gender_restrictionCWEOptionalYesHL70001
59age_restrictionNROptionalYes-

Ready to build integrations?

Get started with Zato and connect your systems in minutes.

Open source In Python