---
title: clsMedicalBill
summary: API reference for clsMedicalBill.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-07-28
library: SAIF.Business.Claim.MedicalBill
reference_type: package
---

# clsMedicalBill

`clsMedicalBill` is the main medical-bill business object, combining claim, worker, provider, bill-status, patient-reference, and audit-related details for a bill.*

## Purpose

- Represents the full business view of a medical bill.*
- Brings together bill identity, claimant and provider context, status fields, and the related audit or payment details used to manage the bill.

## Context

- Namespace: `SAIF.Business.Claim.MedicalBill`
- Assembly/package: `SAIF.Business.Claim.MedicalBill`

## Public members

| Member | Signature | Purpose |
| --- | --- | --- |
| `EobTypeDescription` | `Public ReadOnly Property EobTypeDescription As String Implements IExplanationOfBenefit.EobTypeDescription` | Returns eob type description. |
| `BillID` | `Public ReadOnly Property BillID() As Decimal Implements IExplanationOfBenefit.SAIFBillNumber` | Returns bill i d. |
| `ClaimSecurity` | `Public ReadOnly Property ClaimSecurity() As clsClaimSecurity` | Returns claim security. |
| `SaifClaim` | `Public ReadOnly Property SaifClaim() As String Implements IExplanationOfBenefit.ClaimNumber` | Returns saif claim. |
| `ClaimCheckChar` | `Public ReadOnly Property ClaimCheckChar() As String` | Returns claim check char. |
| `SaifClaimNum` | `Public ReadOnly Property SaifClaimNum() As String` | Returns saif claim num. |
| `ClaimID` | `Public ReadOnly Property ClaimID() As Decimal Implements IExplanationOfBenefit.ClaimId` | Returns claim i d. |
| `PolicyNum` | `Public ReadOnly Property PolicyNum() As Decimal Implements IExplanationOfBenefit.PolicyNumber` | Returns policy num. |
| `WorkerID` | `Public ReadOnly Property WorkerID() As Decimal` | Returns worker i d. |
| `WorkerName` | `Public ReadOnly Property WorkerName() As String Implements IExplanationOfBenefit.WorkerName` | Returns worker name. |
| `ProviderLocationID` | `Public ReadOnly Property ProviderLocationID() As Decimal Implements IExplanationOfBenefit.ProviderLocationId` | Returns provider location i d. |
| `ProviderLocation` | `Public ReadOnly Property ProviderLocation() As Provider.clsProviderLocation` | Returns provider location. |
| `ProviderRegisteredName` | `Public ReadOnly Property ProviderRegisteredName() As String` | Returns provider registered name. |
| `ProviderBusinessName` | `Public ReadOnly Property ProviderBusinessName() As String` | Returns provider business name. |
| `PatientReferenceNumber` | `Public ReadOnly Property PatientReferenceNumber() As String` | Returns patient reference number. |
| `SpecialHandlingCode` | `Public ReadOnly Property SpecialHandlingCode() As String` | Returns special handling code. |
| `BillStatus` | `Public ReadOnly Property BillStatus() As String Implements IExplanationOfBenefit.BillStatusDescription` | Returns bill status. |
| `ProvId` | `Public ReadOnly Property ProvId() As Decimal` | Returns prov id. |
| `BillStatusCode` | `Public ReadOnly Property BillStatusCode() As String` | Returns bill status code. |
| `UbBillTypeCode` | `Public ReadOnly Property UbBillTypeCode() As String` | Returns ub bill type code. |
| `AdmissionDate` | `Public ReadOnly Property AdmissionDate() As clsSmartDate` | Returns admission date. |
| `DischargeDate` | `Public ReadOnly Property DischargeDate() As clsSmartDate` | Returns discharge date. |
| `BillStatusType` | `Public ReadOnly Property BillStatusType() As BillStatusTypes` | Returns bill status type. |
| `MailRoomReceivedDate` | `Public ReadOnly Property MailRoomReceivedDate() As Date` | Returns mail room received date. |
| `DRGCode` | `Public ReadOnly Property DRGCode() As String` | Returns d r g code. |
| `BillTypeCode` | `Public ReadOnly Property BillTypeCode() As String` | Returns bill type code. |
| `ICDTypeCode` | `Public ReadOnly Property ICDTypeCode() As String` | Returns i c d type code. |
| `AdjusterEmail` | `Public ReadOnly Property AdjusterEmail() As String Implements IExplanationOfBenefit.AdjusterEmail` | Returns adjuster email. |
| `AdjusterName` | `Public ReadOnly Property AdjusterName() As String Implements IExplanationOfBenefit.AdjusterName` | Returns adjuster name. |
| `AdjusterEmailLink` | `Public ReadOnly Property AdjusterEmailLink() As String Implements IExplanationOfBenefit.AdjusterEmailLink` | Returns adjuster email link. |
| `IsSaifEmployee` | `Public Property IsSaifEmployee() As Boolean` | Gets or sets is saif employee. |
| `PrintLink` | `Public Property PrintLink() As String Implements IExplanationOfBenefit.PrintLink` | Gets or sets print link. |
| `CheckNum` | `Public ReadOnly Property CheckNum() As Decimal Implements IExplanationOfBenefit.PaymentNumber` | Returns check num. |
| `ServiceBeginDate` | `Public ReadOnly Property ServiceBeginDate() As Date Implements IExplanationOfBenefit.ServiceBeginDate` | Returns service begin date. |
| `S_serviceBeginDate` | `Public ReadOnly Property S_serviceBeginDate() As clsSmartDate` | Returns s_service begin date. |
| `ServiceEndDate` | `Public ReadOnly Property ServiceEndDate() As Date Implements IExplanationOfBenefit.ServiceEndDate` | Returns service end date. |
| `S_ServiceEndDate` | `Public ReadOnly Property S_ServiceEndDate() As clsSmartDate` | Returns s_ service end date. |
| `CurrentStatusEffectiveDate` | `Public ReadOnly Property CurrentStatusEffectiveDate() As Date` | Returns current status effective date. |
| `QualifyDate` | `Public ReadOnly Property QualifyDate() As Date Implements IExplanationOfBenefit.QualifyDate` | Returns qualify date. |
| `PaymentIssueDate` | `Public ReadOnly Property PaymentIssueDate() As Date Implements IExplanationOfBenefit.IssueDate` | Returns payment issue date. |
| `AuditServices` | `Public ReadOnly Property AuditServices() As clsAuditServiceCollection` | Returns audit services. |
| `TotalChargeAmt` | `Public ReadOnly Property TotalChargeAmt() As Decimal Implements IExplanationOfBenefit.TotalCharged` | Returns total charge amt. |
| `TotalAdjustmentAmt` | `Public ReadOnly Property TotalAdjustmentAmt() As Decimal` | Returns total adjustment amt. |
| `TotalMCOAdminFeeAmt` | `Public ReadOnly Property TotalMCOAdminFeeAmt() As Decimal` | Returns total m c o admin fee amt. |
| `TotalAllowedAmt` | `Public ReadOnly Property TotalAllowedAmt() As Decimal` | Returns total allowed amt. |
| `TotalPaidAmt` | `Public ReadOnly Property TotalPaidAmt() As Nullable(Of Decimal) Implements IExplanationOfBenefit.TotalPayment` | Returns total paid amt. |
| `EOBNotes` | `Public ReadOnly Property EOBNotes() As clsEOBNoteCollection` | Returns e o b notes. |
| `AuditDescriptions` | `Public ReadOnly Property AuditDescriptions() As clsAdjustmentCodeCollection` | Returns audit descriptions. |
| `Parent` | `Public Shadows ReadOnly Property Parent() As clsMedicalBillCollection` | Returns parent. |
| `IsValid` | `Public Overrides ReadOnly Property IsValid() As Boolean` | Returns is valid. |
| `IsDirty` | `Public Overrides ReadOnly Property IsDirty() As Boolean` | Returns is dirty. |
| `Equals` | `Public Overloads Shared Function Equals(ByVal objA As Object, ByVal objB As Object) As Boolean` | Exposes the public member. |
| `Equals` | `Public Overloads Overrides Function Equals(ByVal inObject As Object) As Boolean` | Exposes the public member. |
| `Equals` | `Public Overloads Function Equals(ByVal inObject As clsMedicalBill) As Boolean` | Exposes the public member. |
| `GetHashCode` | `Public Overrides Function GetHashCode() As Integer` | Retrieves the `GetHashCode` operation. |
| `ToString` | `Public Overrides Function ToString() As String` | Exposes the public member. |
| `GetMedicalBill` | `Public Shared Function GetMedicalBill(ByVal dataportal As IDataPortalInfo, ByVal billID As Long) As clsMedicalBill` | Retrieves the `GetMedicalBill` operation. |
| `New` | `Public Sub New(ByVal inDataPortalInfo As IDataPortalInfo, ByVal billId As Long)` | Executes the `New` operation. |

## Behavioral notes

- This type is documented from its source declaration.
- The type participates in the `clsBusinessApiBase` inheritance path used by `SAIF.Business.Claim.MedicalBill`.

## Constraints and usage notes

- Consumers should rely on the public members and BOF lifecycle patterns visible in the source file.

## Inherited members (from clsBusinessApiBase)

This type inherits the following public surface from `clsBusinessApiBase` (SAIF.Framework.Core), in addition to the members listed above:

| Member | Signature | Purpose |
| --- | --- | --- |
| `MyGuid` | `ReadOnly Property MyGuid() As String` | Returns the internal GUID that uniquely identifies this in-memory API object instance. |
| `IsNew` | `ReadOnly Property IsNew() As Boolean` | Indicates whether the adapter instance represents unsaved API state. |
| `IsDeleted` | `ReadOnly Property IsDeleted() As Boolean` | Indicates whether the adapter has been marked for deletion. |
| `IsDirty` | `Overridable ReadOnly Property IsDirty() As Boolean` | Indicates whether this API object has unsaved changes. |
| `SetValueOnChange` | `Function SetValueOnChange(Of T)(ByRef inFieldValue As T, ByVal inSetValue As T, Optional ByVal inMarkDirty As Boolean = True) As Boolean` | Updates a backing field only when the new value differs. |
| `SetValueOnChange (tracked)` | `Function SetValueOnChange(Of T)(propertyName As String, ByRef inFieldValue As T, ByVal inSetValue As T, Optional ByVal inMarkDirty As Boolean = True) As Boolean` | Updates a tracked backing field and records the modification only when the new value differs. |
| `RegisterProperty` | `Sub RegisterProperty(propertyName As String, originalValue As Object, Optional forceReset As Boolean = True)` | Registers a property for modification tracking. |
| `GetTrackedProperty` | `Function GetTrackedProperty(propertyName As String, Optional createIfEmpty As Boolean = True) As ITrackedProperty` | Returns tracked-property metadata for the supplied property name. |
| `TrackedProperties` | `ReadOnly Property TrackedProperties As IEnumerable(Of ITrackedProperty)` | Returns all registered tracked properties. |
| `ModifiedProperties` | `ReadOnly Property ModifiedProperties As IEnumerable(Of ITrackedProperty)` | Returns only tracked properties whose values have changed. |
| `RegisterPropertiesForTracking` | `Overridable Sub RegisterPropertiesForTracking()` | Allows derived types to register properties after create/fill operations. |
| `IsSavable` | `Overridable ReadOnly Property IsSavable() As Boolean` | Indicates whether the object is both dirty and valid. |
| `PreviousLinkItem / NextLinkItem` | `ReadOnly Property PreviousLinkItem() As ILinkItem` / `ReadOnly Property NextLinkItem() As ILinkItem` | Returns the adjacent linked-list items for collection traversal. |
| `SetPreviousLink / SetNextLink` | `Sub SetPreviousLink(ByRef inLinkItem As ILinkItem)` / `Sub SetNextLink(ByRef inLinkItem As ILinkItem)` | Wires the object into a linked list maintained by the BOF framework. |
| `InsertLinkAfter / InsertLinkBefore` | `Sub InsertLinkAfter(ByRef inLinkItem As ILinkItem)` / `Sub InsertLinkBefore(ByRef inLinkItem As ILinkItem)` | Inserts another link item relative to the current object. |
| `RemoveLinks` | `Sub RemoveLinks()` | Detaches the object from its linked-list neighbors. |
| `BeginEdit / CancelEdit / ApplyEdit` | `Sub BeginEdit()` / `Sub CancelEdit()` / `Sub ApplyEdit()` | Starts, rolls back, or commits an editable snapshot transaction. |
| `Delete` | `Sub Delete()` | Marks the object for deletion on the next save. |
| `Clone` | `Function Clone() As Object` | Returns a deep copy of the API object. |
| `IsCopyInProgress` | `ReadOnly Property IsCopyInProgress() As Boolean` | Indicates whether the framework is currently copying the object. |
| `ValidateOnDelete` | `Property ValidateOnDelete() As Boolean` | Controls whether business rules are checked before delete operations. |
| `Rules` | `ReadOnly Property Rules() As clsRulesManager` | Returns the rules manager that tracks broken rules for this object. |
| `IsValid` | `Overridable ReadOnly Property IsValid() As Boolean` | Indicates whether the object currently has no broken validation rules. |
| `ErrorCount / ErrorMessages` | `ReadOnly Property ErrorCount() As Integer` / `ReadOnly Property ErrorMessages() As String()` | Returns the count and text of broken error-severity rules. |
| `WarningCount / WarningMessages` | `ReadOnly Property WarningCount() As Integer` / `ReadOnly Property WarningMessages() As String()` | Returns the count and text of broken warning-severity rules. |
| `InformationalCount / InformationalMessages` | `ReadOnly Property InformationalCount() As Integer` / `ReadOnly Property InformationalMessages() As String()` | Returns the count and text of broken informational-severity rules. |
| `Save` | `Overridable Function Save() As Boolean` | Persists the API object through the BOF data portal when valid. |
| `SaveChild` | `Overridable Function SaveChild() As Boolean` | Persists the object as a child of a parent object or collection. |
| `XMLElementName` | `Property XMLElementName() As String` | Gets or sets the XML element name used when serializing this object. |
| `GetDataset` | `Sub GetDataset(ByRef inDS As DataSet)` | Populates a `DataSet` with the object's field values. |
| `GetDataset (named table)` | `Sub GetDataset(ByRef inDS As DataSet, ByVal inTableName As String)` | Populates a named `DataSet` table with the object's field values. |
| `GetReportXML` | `Function GetReportXML(ByVal inElementName As String) As String` / `Function GetReportXML() As String` | Returns XML representing the object using the supplied or default element name. |
| `ToXml` | `Function ToXml() As String` / `Function ToXml(ByVal inTagName As String) As String` | Serializes the object to XML using the default or a supplied element name. |

`clsBusinessApiBase` declares no explicit constructor in the cached framework context, so derived API objects rely on the parameterless base constructor.

### Protected extensibility members

| Member | Signature | Purpose |
| --- | --- | --- |
| `MarkNew / MarkOld / MarkDeleted / MarkDirty / MarkClean` | `Protected Overridable Sub MarkNew()` / `Protected Overridable Sub MarkOld()` / `Protected Overridable Sub MarkDeleted()` / `Protected Overridable Sub MarkDirty()` / `Protected Friend Overridable Sub MarkClean()` | Manage the object's new/deleted/dirty lifecycle state inside derived adapters. |
| `Parent / ParentObject / SetParent` | `Protected ReadOnly Property Parent() As clsBusinessCollectionApiBase` / `Protected Friend Property ParentObject() As Object` / `Protected Friend Sub SetParent(ByVal inParent As clsBusinessCollectionApiBase)` | Expose and maintain parent-collection or parent-object relationships. |
| `AddChildObject` | `Protected Friend Sub AddChildObject(ByVal inChild As clsBusinessCollectionApiBase)` / `Protected Friend Sub AddChildObject(ByVal inChild As clsBusinessApiBase)` | Registers child API objects or child collections against the current parent object. |
| `IsChild / MarkAsChild` | `Protected Friend ReadOnly Property IsChild() As Boolean` / `Protected Friend Sub MarkAsChild()` | Identifies or marks the object as a child in the BOF object graph. |
| `AllowCopy / BeforeCopy / AfterCopy / Copy / OnCopy` | `Protected Friend Overridable Property AllowCopy() As Boolean` / `Protected Friend Overridable Sub BeforeCopy()` / `Protected Friend Overridable Sub AfterCopy(ByRef inCopiedObject As clsBusinessApiBase)` / `Protected Friend Function Copy() As clsBusinessApiBase` / `Protected Friend Overridable Sub OnCopy()` | Customizes clone/copy behavior for derived adapters. |
| `AddBusinessRules / CheckRules / RemoveMessage` | `Protected Friend Overridable Sub AddBusinessRules()` / `Protected Sub CheckRules()` / `Protected Sub CheckRules(ByVal inRuleIdentifier As String)` / `Protected Friend Sub RemoveMessage(ByVal inMessageID As String)` | Defines, re-evaluates, and removes business-rule messages. |
| `ValidateChildObject / ValidateChildObjects` | `Protected Overridable Function ValidateChildObject(ByVal inChild As clsBusinessApiBase) As Boolean` / `Protected Overridable Function ValidateChildObject(ByVal inChild As clsBusinessCollectionApiBase) As Boolean` / `Protected Overridable Function ValidateChildObjects(ByVal childObjects As IEnumerable(Of clsBusinessApiBase)) As Boolean` / `Protected Overridable Function ValidateChildObjects(ByVal childObjects As IEnumerable(Of clsBusinessCollectionApiBase)) As Boolean` / `Protected Overridable Function ValidateChildObjects(ByVal childObjects As IEnumerable(Of clsBusinessApiBase), ByVal childCollections As IEnumerable(Of clsBusinessCollectionApiBase)) As Boolean` | Validates child objects and child collections before save operations. |
| `SaveChildObject` | `Protected Overridable Function SaveChildObject(ByVal inChild As clsBusinessApiBase) As Boolean` / `Protected Overridable Function SaveChildObject(ByVal inChild As clsBusinessCollectionApiBase) As Boolean` | Persists a child object or child collection from within a derived adapter. |
| `Deserialized / Serialized / Serializing` | `Protected Overridable Sub Deserialized()` / `Protected Overridable Sub Serialized()` / `Protected Overridable Sub Serializing()` | Provides serialization lifecycle hooks for derived adapters. |
| `ReadOnly` | `Protected WriteOnly Property [ReadOnly]() As Boolean` | Propagates read-only state to the underlying undoable base implementation. |
| `IsRecursiveProperty / IsXMLProperty` | `Protected Overridable Function IsRecursiveProperty(ByVal inProp As Reflection.PropertyInfo) As Boolean` / `Protected Overridable Function IsXMLProperty(ByVal inProp As Reflection.PropertyInfo) As Boolean` / `Protected Overridable Function IsXMLProperty(ByVal inPropertyName As String) As Boolean` | Filters which properties participate in recursive or XML serialization. |

## Sources

- `Business\SAIF.Business.Claim.MedicalBill\clsMedicalBill.vb`
