---
title: "SQL-355: Update MedicareQueryHistory via UpdateHistoryRecord"
summary: Update operation against MedicareQueryHistory via NHibernate ORM.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-09-24
library: SAIF.Services
reference_type: package
---

# SQL-355: Update MedicareQueryHistory via UpdateHistoryRecord

This ORM statement updates a `MEDICARE_QUERY_HISTORY` row with the Medicare query response data (claim number, name/gender/birth-date match, tax id) and submission dates, executed from `Services/SAIF.Services/Claims/Medicare/MedicareService.cs (L93)`. The SQL below is inferred from the `IRepository<MedicareQueryHistory>.Update` call and the `MedicareQueryHistory` NHibernate mapping, not literal SQL text in source.

## Classification

| Field | Value |
| --- | --- |
| **SQL ID** | SQL-355 |
| **Operation type** | Update |
| **Execution method** | ORM (IRepository.Update) |
| **Database** | Oracle |
| **Schema** | [unqualified]** |
| **Command type** | N/A (ORM-generated) |
| **Business object** | `MedicareQueryHistory` |
| **Criteria property** | N/A — ORM |
| **Lifecycle method** | `UpdateHistoryRecord` |

## Parameters

| Parameter | Direction | Type | Max length | Description |
| --- | --- | --- | --- | --- |
| `:Id` | Input | long | N/A | Identifier of the MedicareQueryHistory being updated (`MEDICARE_QUERY_HISTORY_SEQ_NUM`) |
| `:UpdateNum` | Input | int | N/A | New value of `UPDATE_NUM` |
| `:PersonId` | Input | long | N/A | New value of `CLAIM_PERSON_ID` |
| `:FirstSubmissionDate` | Input | DateTime | N/A | New value of `FIRST_SUBMISSION_DATE` |
| `:LastSubmissionDate` | Input | DateTime | N/A | New value of `LAST_SUBMISSION_DATE` |
| `:TaxId` | Input | string | N/A | New value of `TAX_ID` |
| `:LastName` | Input | string | N/A | New value of `LAST_NAME` |
| `:FirstInitial` | Input | string | N/A | New value of `FIRST_INITIAL` |
| `:GenderCode` | Input | string | N/A | New value of `GENDER_CODE` |
| `:BirthDate` | Input | DateTime? | N/A | New value of `BIRTH_DATE` |
| `:IsPrimaryTaxId` | Input | bool | N/A | New value of `PRIMARY_TAX_ID_FLAG` |
| `:IsMedicareBeneficiary` | Input | bool | N/A | New value of `MEDICARE_BENEFICIARY_FLAG` |
| `:ResponseMedicareClaimNumber` | Input | string | N/A | New value of `RESPONSE_MEDICARE_CLAIM_NUMBER` |
| `:ResponseTaxId` | Input | string | N/A | New value of `RESPONSE_TAX_ID` |
| `:ResponseLastName` | Input | string | N/A | New value of `RESPONSE_LAST_NAME` |
| `:ResponseFirstInitial` | Input | string | N/A | New value of `RESPONSE_FIRST_INITIAL` |
| `:ResponseGenderCode` | Input | string | N/A | New value of `RESPONSE_GENDER_CODE` |
| `:ResponseBirthDate` | Input | DateTime? | N/A | New value of `RESPONSE_BIRTH_DATE` |
| `:UpdateUser` | Input | string | N/A | New value of `UPDATE_USER` |
| `:UpdateDate` | Input | DateTime | N/A | New value of `UPDATE_DATE` |

## Tables

| Table | Access | Columns used |
| --- | --- | --- |
| [MEDICARE_QUERY_HISTORY](../database-tables.md#medicare_query_history) | UPDATE | `MEDICARE_QUERY_HISTORY_SEQ_NUM`, `UPDATE_NUM`, `CLAIM_PERSON_ID`, `FIRST_SUBMISSION_DATE`, `LAST_SUBMISSION_DATE`, `TAX_ID`, `LAST_NAME`, `FIRST_INITIAL`, `GENDER_CODE`, `BIRTH_DATE`, `PRIMARY_TAX_ID_FLAG`, `MEDICARE_BENEFICIARY_FLAG`, `RESPONSE_MEDICARE_CLAIM_NUMBER`, `RESPONSE_TAX_ID`, `RESPONSE_LAST_NAME`, `RESPONSE_FIRST_INITIAL`, `RESPONSE_GENDER_CODE`, `RESPONSE_BIRTH_DATE`, `UPDATE_USER`, `UPDATE_DATE` |

## LINQ statement

Source: `Services/SAIF.Services/Claims/Medicare/MedicareService.cs:93`. The repository is obtained at `Services/SAIF.Services/Claims/Medicare/MedicareService.cs:66`.

```csharp
// Services/SAIF.Services/Claims/Medicare/MedicareService.cs:66
var repository = _unitOfWork.GetRepository<MedicareQueryHistory>();

// Services/SAIF.Services/Claims/Medicare/MedicareService.cs:93
repository.Update(historyRecord);
```

## Sample SQL

> **Inferred SQL:** This SQL was inferred from the LINQ statement above and the NHibernate mappings. It is not concrete SQL from source code; NHibernate generates the executed statement at runtime, so aliases, column order, join syntax, and bind-parameter names may differ.

```sql
-- Inferred from LINQ (NHibernate mapping translation); not concrete SQL
UPDATE MEDICARE_QUERY_HISTORY
SET
  UPDATE_NUM = :UpdateNum,
  CLAIM_PERSON_ID = :PersonId,
  FIRST_SUBMISSION_DATE = :FirstSubmissionDate,
  LAST_SUBMISSION_DATE = :LastSubmissionDate,
  TAX_ID = :TaxId,
  LAST_NAME = :LastName,
  FIRST_INITIAL = :FirstInitial,
  GENDER_CODE = :GenderCode,
  BIRTH_DATE = :BirthDate,
  PRIMARY_TAX_ID_FLAG = :IsPrimaryTaxId,
  MEDICARE_BENEFICIARY_FLAG = :IsMedicareBeneficiary,
  RESPONSE_MEDICARE_CLAIM_NUMBER = :ResponseMedicareClaimNumber,
  RESPONSE_TAX_ID = :ResponseTaxId,
  RESPONSE_LAST_NAME = :ResponseLastName,
  RESPONSE_FIRST_INITIAL = :ResponseFirstInitial,
  RESPONSE_GENDER_CODE = :ResponseGenderCode,
  RESPONSE_BIRTH_DATE = :ResponseBirthDate,
  UPDATE_USER = :UpdateUser,
  UPDATE_DATE = :UpdateDate
WHERE MEDICARE_QUERY_HISTORY_SEQ_NUM = :Id
```

Translation notes:

- No `Version(...)` mapping, so the UPDATE has no optimistic-concurrency predicate.
- `Update(entity)` emits an explicit UPDATE of every updatable mapped column (no `DynamicUpdate()` on this map).
- `repository` is `_unitOfWork.GetRepository<MedicareQueryHistory>()` created at line 66 and passed into `UpdateHistoryRecord` (line 78).

## Operations and processes
- MedicareService.UpdateHistoryRecord — see [Operations and processes](../operations-processes.md)

## Sources
- `Services/SAIF.Services/Claims/Medicare/MedicareService.cs (L93)`
