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

# Sv3Segment

`Sv3Segment` models the X12 SV3 dental service-line segment, used in 837D claim transactions to carry a single billed dental service line: a revenue code, the procedure/service code (inherited from `SvSegmentBase`), the charge amount, place of service, up to five oral-cavity designation codes, a prosthesis code, 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 SV3 segment identity via `SegmentId` returning the literal `"SV3"` ([BR-020](../../business-rules.md#br-020-first-element-is-the-segment-identifier)).
- Carries `RevenueCode`, `ChargeAmount`, `ServiceLocationCode`, and `ServiceQuantity` describing the billed dental service line.
- Carries up to five `OralCavityDesignationCode` values identifying the oral cavity area(s) treated, read either as a single data element or a composite of up to five sub-elements depending on how the source segment was structured.
- Carries `ProsthesisCode` indicating whether the service involves an initial or replacement prosthesis.
- 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 `"SV3"`. |
| RevenueCode | `string RevenueCode { get; set; }` | The revenue code for the dental service line (SV301), element 1. |
| ChargeAmount | `decimal ChargeAmount { get; set; }` | The charge amount for the service line (SV302), element 2. |
| ServiceQuantity | `decimal ServiceQuantity { get; set; }` | The quantity of units billed for the service (SV306), element 6. |
| OralCavityDesignationCode1 | `string OralCavityDesignationCode1 { get; set; }` | The first oral-cavity designation code (SV304), element 4 (or sub-element 1 of the composite). |
| OralCavityDesignationCode2 | `string OralCavityDesignationCode2 { get; set; }` | The second oral-cavity designation code, sub-element 2 of the composite. |
| OralCavityDesignationCode3 | `string OralCavityDesignationCode3 { get; set; }` | The third oral-cavity designation code, sub-element 3 of the composite. |
| OralCavityDesignationCode4 | `string OralCavityDesignationCode4 { get; set; }` | The fourth oral-cavity designation code, sub-element 4 of the composite. |
| OralCavityDesignationCode5 | `string OralCavityDesignationCode5 { get; set; }` | The fifth oral-cavity designation code, sub-element 5 of the composite. |
| ProsthesisCode | `string ProsthesisCode { get; set; }` | The prosthesis placement code for the service (SV305), element 5. |
| ServiceLocationCode | `string ServiceLocationCode { get; set; }` | The place-of-service code for the service line (SV303), element 3. |
| Build | `IEdiSegment Build()` | Always throws `NotImplementedException`; outbound SV3 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 1 if it is a plain data element, or via `FillServiceCode` if it is a composite; reads `ChargeAmount` at element 2 and `ServiceLocationCode` at element 3; reads element 4 either as a single `OralCavityDesignationCode1` or, if composite, splits it into all five oral-cavity codes; reads `ProsthesisCode` at element 5 and `ServiceQuantity` at element 6. |
| Parse | `static Sv3Segment Parse(IEdiSegment segment)` | Instantiates a new `Sv3Segment`, 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 1 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
- Elements SV307-SV311 are read by neither `Build()` nor `Fill()`, per an explicit code comment*.

## Constraints and usage notes
- Any caller invoking `Build()` on an `Sv3Segment` 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\Sv3Segment.cs
- Common\SAIF.Common.Files\Edi\Segments\SvSegmentBase.cs
