---
title: Sv2Segment
summary: API reference for Sv2Segment.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-09-15
library: SAIF.Framework.Common.Files
reference_type: package
---

# Sv2Segment

`Sv2Segment` models the X12 SV2 institutional service-line segment, used in 837I claim transactions to carry a single billed institutional service line: a revenue code, the procedure/service code (inherited from `SvSegmentBase`), the charge amount, unit type, and quantity. It is inbound-only in this library: `Build()` throws `NotImplementedException` ([BR-054](../../business-rules.md#br-054-dmg-hi-sv1-sv2-sv3-are-inbound-only-segments)).

## Purpose
- Represents the SV2 segment identity via `SegmentId` returning the literal `"SV2"` ([BR-020](../../business-rules.md#br-020-first-element-is-the-segment-identifier)).
- Carries `RevenueCode`, `ChargeAmount`, `UnitTypeCode`, and `ServiceQuantity` describing the billed institutional service line.
- Is inbound-only: `Fill(IEdiSegment)` populates the object from a parsed segment, but `Build()` throws `NotImplementedException` ([BR-054](../../business-rules.md#br-054-dmg-hi-sv1-sv2-sv3-are-inbound-only-segments)).

## Context
- Namespace: `SAIF.Common.Files.Edi.Segments`
- Assembly/package: `SAIF.Framework.Common.Files`

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| SegmentId | `string SegmentId { get; }` | Returns the literal X12 segment identifier `"SV2"`. |
| RevenueCode | `string RevenueCode { get; set; }` | The revenue code for the institutional service line (SV201), element 1. |
| ChargeAmount | `decimal ChargeAmount { get; set; }` | The charge amount for the service line (SV203), element 3. |
| UnitTypeCode | `string UnitTypeCode { get; set; }` | The unit-of-measure code for `ServiceQuantity` (SV204), element 4. |
| ServiceQuantity | `decimal ServiceQuantity { get; set; }` | The quantity of units billed for the service (SV205), element 5. |
| Build | `IEdiSegment Build()` | Always throws `NotImplementedException`; outbound SV2 generation is not supported ([BR-054](../../business-rules.md#br-054-dmg-hi-sv1-sv2-sv3-are-inbound-only-segments)). |
| Fill | `void Fill(IEdiSegment segment)` | Reads `RevenueCode` at element 1; reads `ServiceCode` directly from element 2 if it is a plain data element, or via `FillServiceCode` if it is a composite; reads `ChargeAmount` and `ServiceQuantity` as `decimal` at elements 3 and 5, and `UnitTypeCode` at element 4. |
| Parse | `static Sv2Segment Parse(IEdiSegment segment)` | Instantiates a new `Sv2Segment`, calls `Fill(segment)` on it, and returns it. |

## Inherited public members

Members in this section are inherited from `SvSegmentBase` in `SAIF.Framework.Common.Files`. They are available on this type through inheritance.

| Member | Signature | Purpose | Origin |
| --- | --- | --- | --- |
| Qualifier | `string Qualifier { get; set; }` | The procedure-code qualifier identifying the coding system in use, composite sub-element 1. | `SAIF.Framework.Common.Files` — `SvSegmentBase` |
| ServiceCode | `string ServiceCode { get; set; }` | The procedure/service code value, either read directly from a plain element 2 or from composite sub-element 2. | `SAIF.Framework.Common.Files` — `SvSegmentBase` |
| ServiceModifierCode1 | `string ServiceModifierCode1 { get; set; }` | The first of up to four procedure modifier codes, composite sub-element 3. | `SAIF.Framework.Common.Files` — `SvSegmentBase` |
| ServiceModifierCode2 | `string ServiceModifierCode2 { get; set; }` | The second procedure modifier code, composite sub-element 4. | `SAIF.Framework.Common.Files` — `SvSegmentBase` |
| ServiceModifierCode3 | `string ServiceModifierCode3 { get; set; }` | The third procedure modifier code, composite sub-element 5. | `SAIF.Framework.Common.Files` — `SvSegmentBase` |
| ServiceModifierCode4 | `string ServiceModifierCode4 { get; set; }` | The fourth procedure modifier code, composite sub-element 6. | `SAIF.Framework.Common.Files` — `SvSegmentBase` |
| ServiceDescription | `string ServiceDescription { get; set; }` | A free-text description of the procedure, composite sub-element 7. | `SAIF.Framework.Common.Files` — `SvSegmentBase` |
| BuildElement | `EdiCompositeDataElement BuildElement()` | Constructs a composite element with `Qualifier`/`ServiceCode` and the four modifier codes. | `SAIF.Framework.Common.Files` — `SvSegmentBase` |
| FillServiceCode | `void FillServiceCode(IEdiCompositeDataElement element)` | Reads sub-elements 1-7 of a composite element into `Qualifier`, `ServiceCode`, the four modifier codes, and `ServiceDescription`. | `SAIF.Framework.Common.Files` — `SvSegmentBase` |

## Behavioral notes
- Element position SV202 is skipped entirely (used for the procedure/service code composite itself, mapped via `ServiceCode`/`FillServiceCode`), and elements SV206-SV210 are read by neither `Build()` nor `Fill()`, per an explicit code comment*.

## Constraints and usage notes
- Any caller invoking `Build()` on an `Sv2Segment` receives a `NotImplementedException` rather than a built segment ([BR-054](../../business-rules.md#br-054-dmg-hi-sv1-sv2-sv3-are-inbound-only-segments)).

> **Note:** Statements marked with `*` were inferred from code structure, naming
> conventions, or contextual evidence where direct confirmation was not available
> in source artifacts.

## Sources
- Common\SAIF.Common.Files\Edi\Segments\Sv2Segment.cs
- Common\SAIF.Common.Files\Edi\Segments\SvSegmentBase.cs
