openapi: 3.0.3 info: title: Elation Health REST Allergies Visit Notes API description: RESTful API for Elation's primary care EHR platform enabling management of patient profiles, visit notes, clinical documents, problems, allergies, immunizations, vitals, medications, lab orders, imaging orders, referrals, appointments, insurance, billing, pharmacy, messaging, and practice administration. Supports OAuth2 client credentials authentication with both sandbox and production environments. version: '2.0' contact: name: Elation Health Developer Support url: https://docs.elationhealth.com/reference/api-overview termsOfService: https://www.elationhealth.com/ servers: - url: https://app.elationemr.com/api/2.0 description: Production - url: https://sandbox.elationemr.com/api/2.0 description: Sandbox security: - oauth2: [] tags: - name: Visit Notes description: Clinical encounter documentation paths: /visit_notes/: get: operationId: visit_notes_list summary: List visit notes description: Retrieve a paginated list of visit notes. tags: - Visit Notes parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - name: patient in: query schema: type: integer description: Filter by patient ID - name: physician in: query schema: type: integer description: Filter by physician ID responses: '200': description: Paginated list of visit notes content: application/json: schema: $ref: '#/components/schemas/PaginatedVisitNoteList' post: operationId: visit_notes_create summary: Create a visit note description: Create a new clinical visit note. tags: - Visit Notes requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/VisitNoteCreate' responses: '201': description: Visit note created content: application/json: schema: $ref: '#/components/schemas/VisitNote' /visit_notes/{id}/: get: operationId: visit_notes_retrieve summary: Retrieve a visit note description: Get details for a specific visit note. tags: - Visit Notes parameters: - $ref: '#/components/parameters/id' responses: '200': description: Visit note details content: application/json: schema: $ref: '#/components/schemas/VisitNote' put: operationId: visit_notes_update summary: Update a visit note description: Replace all visit note fields with the provided values. tags: - Visit Notes parameters: - $ref: '#/components/parameters/id' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/VisitNoteCreate' responses: '200': description: Visit note updated content: application/json: schema: $ref: '#/components/schemas/VisitNote' patch: operationId: visit_notes_partial_update summary: Partially update a visit note description: Update one or more visit note fields. tags: - Visit Notes parameters: - $ref: '#/components/parameters/id' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/VisitNoteCreate' responses: '200': description: Visit note updated content: application/json: schema: $ref: '#/components/schemas/VisitNote' delete: operationId: visit_notes_destroy summary: Delete a visit note description: Soft-delete a visit note. tags: - Visit Notes parameters: - $ref: '#/components/parameters/id' responses: '204': description: Visit note deleted components: schemas: VisitNote: allOf: - $ref: '#/components/schemas/VisitNoteCreate' - type: object properties: id: type: integer format: int64 readOnly: true checklists: type: object description: PE and ROS checklist items edits: type: array readOnly: true items: type: object signatures: type: array readOnly: true items: type: object signed_date: type: string format: date-time nullable: true signed_by: type: integer nullable: true amendment_request: type: object nullable: true created_date: type: string format: date-time readOnly: true last_modified: type: string format: date-time readOnly: true deleted_date: type: string format: date-time nullable: true readOnly: true clinical_summary_link: type: string format: uri readOnly: true visit_summary_link: type: string format: uri readOnly: true VisitNoteCreate: type: object required: - patient - physician - practice - document_date - chart_date - template properties: patient: type: integer format: int64 description: Patient ID physician: type: integer format: int64 description: Clinician ID practice: type: integer format: int64 description: Practice ID document_date: type: string format: date-time description: Clinical service date chart_date: type: string format: date-time description: Date entry was recorded in chart template: type: string enum: - Simple - SOAP - Complete H&P - Pre-Op description: Document structure format type: type: string maxLength: 50 description: Visit note classification bullets: type: array description: Clinical bullet points organized by category items: type: object properties: category: type: string text: type: string maxLength: 500 confidential: type: boolean description: Privacy flag for sensitive content tags: type: array items: type: string PaginatedVisitNoteList: allOf: - $ref: '#/components/schemas/PaginationMeta' - type: object properties: results: type: array items: $ref: '#/components/schemas/VisitNote' PaginationMeta: type: object properties: count: type: integer description: Total number of results next: type: string nullable: true description: URL for next page previous: type: string nullable: true description: URL for previous page parameters: offset: name: offset in: query schema: type: integer default: 0 description: Pagination offset id: name: id in: path required: true schema: type: integer description: Unique resource identifier limit: name: limit in: query schema: type: integer default: 25 description: Number of results to return securitySchemes: oauth2: type: oauth2 flows: clientCredentials: tokenUrl: https://sandbox.elationemr.com/api/2.0/oauth2/token/ scopes: apiv2: Full API access