HL7 v2 SCH Segment Guide: Fields, Format, and Testing Gotchas
Every appointment-booking, cancellation, or reschedule message that crosses an interface engine leans on one segment to carry the actual scheduling facts: SCH. Get the wrong value into the wrong sub-field here and a downstream scheduling system either double-books a slot or silently drops the visit.
SCH (Scheduling Activity Information) carries the details of a single scheduled event inside an SIU (Schedule Information Unsolicited) message — who requested it, what filler system owns it, why the visit is happening, how long it should run, when it starts and ends, and what state the appointment is currently in.
The fields that actually matter in practice
Example
A synthetic SCH segment for a 30-minute follow-up office visit, generated with fake identifiers and no real patient or provider data.
Where this trips people up
Teams building test suites almost always reach for the trigger event in MSH-9 to determine appointment state and then forget that SCH-25 is where the filler system records its own status independently. A test message can carry an S12 (new appointment booking) trigger while SCH-25 already reads CANCELLED if the source data wasn't regenerated cleanly — and a validation script that only checks MSH-9 will wave that discrepancy straight through.