---
title: "POST /SurgicalRecords/{id}/finalize"
method: POST
path: "/SurgicalRecords/{id}/finalize"
tags: ["SurgicalRecords"]
---

# POST /SurgicalRecords/{id}/finalize

`POST /SurgicalRecords/{id}/finalize`

## Path parameters

- `id` string, required

## Request body

- FinalizeSurgicalRecordRequest
  - `reason` string, nullable — Optional note recorded on the finalization row. Nothing needs explaining when a chart is signed off at the end of a procedure.

## Response `200`

OK

- SurgicalRecordResponseDto
  - `id` string
  - `appointmentId` string
  - `patientId` string
  - `procedureName` string
  - `surgeonId` string, nullable
  - `procedureStartTime` string, date-time, nullable
  - `procedureEndTime` string, date-time, nullable
  - `procedureDurationSeconds` union
    - integer
    - string, int32
  - `activePhase` string
  - `anesthesiaDataJson` string, nullable
  - `vitalsSnapshotJson` string, nullable
  - `activeAgentsJson` string, nullable
  - `createdAt` string, date-time
  - `updatedAt` string, date-time
  - `finalizedAt` string, date-time, nullable — When the chart was frozen, or null while it is still being written.
  - `finalizedById` string, nullable
  - `finalizedByName` string, nullable
  - `isFinalized` boolean — Convenience for the client, which gates every write affordance on this rather than re-deriving it from the timestamp. Mirrors `IsEditable` on the SOAP note DTOs.
  - `finalizationEvents` SurgicalRecordFinalizationEventDto[] — Finalize/reopen history, oldest first.
    - `id` string
    - `action` string — "finalized" or "reopened".
    - `reason` string, nullable
    - `actorUserId` string, nullable
    - `actorUserName` string, nullable
    - `createdAt` string, date-time
  - `timelineEvents` SurgicalTimelineEventDto[]
    - `id` string
    - `surgicalRecordId` string
    - `title` string
    - `details` string, nullable
    - `type` string
    - `color` string, nullable
    - `isPinned` boolean
    - `occurredAt` string, date-time
    - `sortOrder` union
      - integer
      - string, int32
    - `createdAt` string, date-time
    - `amendments` SurgicalTimelineEventAmendmentDto[] — Corrections made to DateTime SurgicalTimelineEventDto.OccurredAt, oldest first. Empty for the overwhelming majority of events; a non-empty list is what the UI keys off to mark a stamp as edited.
      - `id` string
      - `originalOccurredAt` string, date-time
      - `amendedOccurredAt` string, date-time
      - `reason` string, nullable
      - `amendedById` string, nullable
      - `amendedByName` string, nullable
      - `createdAt` string, date-time

## Other responses

- `404` — Not Found
- `409` — Conflict

---

[API](https://skmtc.net/clinicos/apis/pawthosx-business-api-v1.md) · [All operations](https://skmtc.net/clinicos/apis/pawthosx-business-api-v1/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/clinicos/pawthosx-business-api-v1/revisions/d8d7501dde48/schema)
