---
title: "Procedure data model"
url: "https://docs.unified.to/healthcare/procedure/model"
description: "The Procedure data model object in Unified's Procedure API: 17 fields, including created_at, updated_at and patient_id, with types and enum values."
date: "2026-10-24T20:36:42.560Z"
updated: "2026-10-24T20:36:42.560Z"
---
# Procedure data model

Updated: October 24, 2026

 View field support, webhooks, and list parameters for each integration on the [Supported Integrations](https://docs.unified.to/healthcare/integrations.md) page. 

| Field                    | Type                                                                                               | Required | Description                                                                                                                            |
| ------------------------ | -------------------------------------------------------------------------------------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| id                       | string                                                                                             | No       | Unique identifier for the procedure                                                                                                    |
| created\_at              | string (date-time)                                                                                 | No       | When the procedure record was created (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)                                                         |
| updated\_at              | string (date-time)                                                                                 | No       | When the procedure record was last updated (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)                                                    |
| patient\_id              | string                                                                                             | No       | The patient the procedure was performed on                                                                                             |
| encounter\_id            | string                                                                                             | No       | The encounter in which the procedure was performed                                                                                     |
| practitioner\_ids        | string\[\]                                                                                         | No       | The practitioners who performed the procedure                                                                                          |
| location\_id             | string                                                                                             | No       | Where the procedure was performed                                                                                                      |
| condition\_ids           | string\[\]                                                                                         | No       | Conditions that justified the procedure                                                                                                |
| name                     | string                                                                                             | No       | Human-readable name of the procedure                                                                                                   |
| codes                    | [HealthcareCode](https://docs.unified.to/healthcare/procedure/model.md#HealthcareCode)\[\]         | No       | Codings for the procedure (e.g. CPT, SNOMED CT)                                                                                        |
| codes\[\].system         | string                                                                                             | No       | The code system URI (e.g. http://loinc.org, http://snomed.info/sct)                                                                    |
| codes\[\].code           | string                                                                                             | No       | The code within the system                                                                                                             |
| codes\[\].display        | string                                                                                             | No       | Human-readable display text for the code                                                                                               |
| status                   | enum                                                                                               | No       | Status of the procedure Values: PREPARATION, IN\_PROGRESS, NOT\_DONE, ON\_HOLD, STOPPED, COMPLETED, ENTERED\_IN\_ERROR, UNKNOWN, OTHER |
| reasons                  | [HealthcareCode](https://docs.unified.to/healthcare/procedure/model.md#HealthcareCode)\[\]         | No       | Codings for the reason the procedure was performed                                                                                     |
| reasons\[\].system       | string                                                                                             | No       | The code system URI (e.g. http://loinc.org, http://snomed.info/sct)                                                                    |
| reasons\[\].code         | string                                                                                             | No       | The code within the system                                                                                                             |
| reasons\[\].display      | string                                                                                             | No       | Human-readable display text for the code                                                                                               |
| body\_sites              | [HealthcareCode](https://docs.unified.to/healthcare/procedure/model.md#HealthcareCode)\[\]         | No       | Codings for the anatomical locations of the procedure                                                                                  |
| body\_sites\[\].system   | string                                                                                             | No       | The code system URI (e.g. http://loinc.org, http://snomed.info/sct)                                                                    |
| body\_sites\[\].code     | string                                                                                             | No       | The code within the system                                                                                                             |
| body\_sites\[\].display  | string                                                                                             | No       | Human-readable display text for the code                                                                                               |
| start\_at                | string (date-time)                                                                                 | No       | When the procedure was performed (or started) (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)                                                 |
| end\_at                  | string (date-time)                                                                                 | No       | When the procedure ended (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)                                                                      |
| notes                    | string                                                                                             | No       | Free-text notes about the procedure                                                                                                    |
| metadata                 | [HealthcareMetadata](https://docs.unified.to/healthcare/procedure/model.md#HealthcareMetadata)\[\] | No       | Custom field values                                                                                                                    |
| metadata\[\].id          | string                                                                                             | No       | Identifier of the custom field                                                                                                         |
| metadata\[\].value       | object                                                                                             | No       | The custom field value                                                                                                                 |
| metadata\[\].namespace   | string                                                                                             | No       | The scope or origin of the custom field                                                                                                |
| metadata\[\].format      | enum                                                                                               | No       | The data type of the value Values: TEXT, NUMBER, DATE, BOOLEAN, ARRAY, OBJECT                                                          |
| metadata\[\].extra\_data | object                                                                                             | No       | Additional data about the custom field                                                                                                 |
| metadata\[\].slug        | string                                                                                             | No       | The custom field key                                                                                                                   |

## TypeScript

```typescript
export type HealthcareProcedure = {
	id?: string; // Unique identifier for the procedure
	created_at?: string-time; // When the procedure record was created (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	updated_at?: string-time; // When the procedure record was last updated (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	patient_id?: string; // The patient the procedure was performed on
	encounter_id?: string; // The encounter in which the procedure was performed
	practitioner_ids?: string[]; // The practitioners who performed the procedure
	location_id?: string; // Where the procedure was performed
	condition_ids?: string[]; // Conditions that justified the procedure
	name?: string; // Human-readable name of the procedure
	codes?: []; // Codings for the procedure (e.g. CPT, SNOMED CT)
	status?: 'PREPARATION' | 'IN_PROGRESS' | 'NOT_DONE' | 'ON_HOLD' | 'STOPPED' | 'COMPLETED' | 'ENTERED_IN_ERROR' | 'UNKNOWN' | 'OTHER'; // Status of the procedure
	reasons?: []; // Codings for the reason the procedure was performed
	body_sites?: []; // Codings for the anatomical locations of the procedure
	start_at?: string-time; // When the procedure was performed (or started) (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	end_at?: string-time; // When the procedure ended (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	notes?: string; // Free-text notes about the procedure
	metadata?: []; // Custom field values
	raw?: any; // Raw data from integration
} 
```

## Zod

```typescript
import { z } from 'zod';

export const ZodHealthcareProcedure = z.object({
	id: z.string().optional().describe("Unique identifier for the procedure"),
	created_at: z.string-time().optional().describe("When the procedure record was created (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	updated_at: z.string-time().optional().describe("When the procedure record was last updated (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	patient_id: z.string().optional().describe("The patient the procedure was performed on"),
	encounter_id: z.string().optional().describe("The encounter in which the procedure was performed"),
	practitioner_ids: z.array().optional().describe("The practitioners who performed the procedure"),
	location_id: z.string().optional().describe("Where the procedure was performed"),
	condition_ids: z.array().optional().describe("Conditions that justified the procedure"),
	name: z.string().optional().describe("Human-readable name of the procedure"),
	codes: z.array().optional().describe("Codings for the procedure (e.g. CPT, SNOMED CT)"),
	status: z.enum("PREPARATION", "IN_PROGRESS", "NOT_DONE", "ON_HOLD", "STOPPED", "COMPLETED", "ENTERED_IN_ERROR", "UNKNOWN", "OTHER").optional().describe("Status of the procedure"),
	reasons: z.array().optional().describe("Codings for the reason the procedure was performed"),
	body_sites: z.array().optional().describe("Codings for the anatomical locations of the procedure"),
	start_at: z.string-time().optional().describe("When the procedure was performed (or started) (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	end_at: z.string-time().optional().describe("When the procedure ended (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	notes: z.string().optional().describe("Free-text notes about the procedure"),
	metadata: z.array().optional().describe("Custom field values"),

});
```

## Python

```python
import dataclasses

@dataclasses.dataclass
class HealthcareProcedureStatus(str, Enum):
	PREPARATION = 'PREPARATION'
	IN_PROGRESS = 'IN_PROGRESS'
	NOT_DONE = 'NOT_DONE'
	ON_HOLD = 'ON_HOLD'
	STOPPED = 'STOPPED'
	COMPLETED = 'COMPLETED'
	ENTERED_IN_ERROR = 'ENTERED_IN_ERROR'
	UNKNOWN = 'UNKNOWN'
	OTHER = 'OTHER'

@dataclasses.dataclass
class HealthcareProcedure:
	"""Unique identifier for the procedure"""
	id: Optional[str]
	"""When the procedure record was created (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	created_at: Optional[str]
	"""When the procedure record was last updated (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	updated_at: Optional[str]
	"""The patient the procedure was performed on"""
	patient_id: Optional[str]
	"""The encounter in which the procedure was performed"""
	encounter_id: Optional[str]
	"""The practitioners who performed the procedure"""
	practitioner_ids: Optional[List[List[str]]]
	"""Where the procedure was performed"""
	location_id: Optional[str]
	"""Conditions that justified the procedure"""
	condition_ids: Optional[List[List[str]]]
	"""Human-readable name of the procedure"""
	name: Optional[str]
	"""Codings for the procedure (e.g. CPT, SNOMED CT)"""
	codes: Optional[PropertyHealthcareProcedureCodes]
	"""Status of the procedure"""
	status: Optional[HealthcareProcedureStatus]
	"""Codings for the reason the procedure was performed"""
	reasons: Optional[PropertyHealthcareProcedureReasons]
	"""Codings for the anatomical locations of the procedure"""
	body_sites: Optional[PropertyHealthcareProcedureBody_sites]
	"""When the procedure was performed (or started) (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	start_at: Optional[str]
	"""When the procedure ended (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	end_at: Optional[str]
	"""Free-text notes about the procedure"""
	notes: Optional[str]
	"""Custom field values"""
	metadata: Optional[PropertyHealthcareProcedureMetadata]

```
