openapi: 3.1.0 info: title: HL7 FHIR R4 Healthcare Bundle Patient API description: HL7 FHIR R4 (v4.0.1) RESTful API for healthcare data exchange. Provides access to patient demographics, clinical observations, conditions, medications, encounters, care plans, and diagnostic reports. Implements the FHIR REST specification including CRUD operations, search parameters, history, and batch/ transaction bundles. SMART on FHIR OAuth 2.0 authorization required. version: 4.0.1 contact: name: HL7 International url: https://www.hl7.org/fhir/ license: name: Creative Commons CC0 url: https://creativecommons.org/publicdomain/zero/1.0/ servers: - url: https://fhir-server.example.com/fhir/R4 description: FHIR R4 server base URL (replace with actual server URL) security: - SMARTonFHIR: [] tags: - name: Patient description: Patient demographic and identity resources paths: /Patient: get: operationId: searchPatient summary: Search patients description: Searches for Patient resources matching the specified search parameters. Supports name, identifier (MRN), birthdate, gender, and address searches. Returns a Bundle containing matching Patient resources. tags: - Patient parameters: - name: _id in: query schema: type: string description: Logical id of the patient - name: identifier in: query schema: type: string description: Patient identifier (e.g., "http://hospital.example.org/patients|12345") - name: family in: query schema: type: string description: A portion of the family name of the patient - name: given in: query schema: type: string description: A portion of the given name of the patient - name: birthdate in: query schema: type: string description: The patient's date of birth (e.g., "1990-01-15" or "ge1990") - name: gender in: query schema: type: string enum: - male - female - other - unknown - name: _count in: query schema: type: integer default: 20 description: Number of results per page - name: _sort in: query schema: type: string description: Sort criteria (e.g., "family,-birthdate") - name: _include in: query schema: type: string description: Include related resources (e.g., "Patient:general-practitioner") responses: '200': description: Bundle of matching Patient resources content: application/fhir+json: schema: $ref: '#/components/schemas/Bundle' '400': description: Invalid search parameters content: application/fhir+json: schema: $ref: '#/components/schemas/OperationOutcome' post: operationId: createPatient summary: Create a patient description: Creates a new Patient resource. The server assigns the logical ID. tags: - Patient requestBody: required: true content: application/fhir+json: schema: $ref: '#/components/schemas/Patient' responses: '201': description: Patient created headers: Location: schema: type: string description: URL of created resource (e.g., Patient/123/_history/1) content: application/fhir+json: schema: $ref: '#/components/schemas/Patient' '400': description: Invalid resource /Patient/{id}: get: operationId: readPatient summary: Read a patient description: Returns the current version of a Patient resource by its logical ID. tags: - Patient parameters: - name: id in: path required: true schema: type: string description: Logical ID of the patient responses: '200': description: Patient resource returned content: application/fhir+json: schema: $ref: '#/components/schemas/Patient' '404': description: Patient not found put: operationId: updatePatient summary: Update a patient description: Updates an existing Patient resource using a complete replacement (PUT semantics). tags: - Patient parameters: - name: id in: path required: true schema: type: string requestBody: required: true content: application/fhir+json: schema: $ref: '#/components/schemas/Patient' responses: '200': description: Patient updated content: application/fhir+json: schema: $ref: '#/components/schemas/Patient' '201': description: Patient created (upsert) '400': description: Invalid resource components: schemas: CodeableConcept: type: object properties: coding: type: array items: $ref: '#/components/schemas/Coding' text: type: string Bundle: type: object description: A container for a collection of FHIR resources properties: resourceType: type: string enum: - Bundle id: type: string type: type: string enum: - document - message - transaction - transaction-response - batch - batch-response - history - searchset - collection total: type: integer description: Total number of matches (for searchset bundles) link: type: array items: type: object properties: relation: type: string enum: - self - first - previous - next - last url: type: string format: uri entry: type: array items: type: object properties: fullUrl: type: string format: uri resource: type: object description: FHIR resource (any type) search: type: object properties: mode: type: string enum: - match - include - outcome score: type: number request: type: object properties: method: type: string enum: - GET - HEAD - POST - PUT - DELETE - PATCH url: type: string response: type: object properties: status: type: string location: type: string required: - resourceType - type Address: type: object properties: use: type: string enum: - home - work - temp - old - billing type: type: string enum: - postal - physical - both text: type: string line: type: array items: type: string city: type: string district: type: string state: type: string postalCode: type: string country: type: string HumanName: type: object properties: use: type: string enum: - usual - official - temp - nickname - anonymous - old - maiden text: type: string family: type: string given: type: array items: type: string prefix: type: array items: type: string suffix: type: array items: type: string Reference: type: object properties: reference: type: string description: Relative or absolute URL (e.g., "Patient/123") type: type: string format: uri identifier: $ref: '#/components/schemas/Identifier' display: type: string Identifier: type: object properties: use: type: string enum: - usual - official - temp - secondary - old type: $ref: '#/components/schemas/CodeableConcept' system: type: string format: uri value: type: string OperationOutcome: type: object properties: resourceType: type: string enum: - OperationOutcome issue: type: array items: type: object properties: severity: type: string enum: - fatal - error - warning - information code: type: string details: $ref: '#/components/schemas/CodeableConcept' diagnostics: type: string expression: type: array items: type: string required: - resourceType - issue Patient: type: object description: Demographics and administrative information about a patient properties: resourceType: type: string enum: - Patient id: type: string meta: $ref: '#/components/schemas/Meta' identifier: type: array items: $ref: '#/components/schemas/Identifier' description: Patient identifiers (MRN, SSN, etc.) active: type: boolean name: type: array items: $ref: '#/components/schemas/HumanName' telecom: type: array items: $ref: '#/components/schemas/ContactPoint' gender: type: string enum: - male - female - other - unknown birthDate: type: string format: date deceased: type: object properties: deceasedBoolean: type: boolean deceasedDateTime: type: string format: date-time address: type: array items: $ref: '#/components/schemas/Address' communication: type: array items: type: object properties: language: $ref: '#/components/schemas/CodeableConcept' preferred: type: boolean generalPractitioner: type: array items: $ref: '#/components/schemas/Reference' required: - resourceType Coding: type: object properties: system: type: string format: uri description: Identity of the terminology system (e.g., "http://loinc.org", "http://snomed.info/sct") version: type: string code: type: string display: type: string userSelected: type: boolean Meta: type: object properties: versionId: type: string lastUpdated: type: string format: date-time profile: type: array items: type: string format: uri tag: type: array items: $ref: '#/components/schemas/Coding' ContactPoint: type: object properties: system: type: string enum: - phone - fax - email - pager - url - sms - other value: type: string use: type: string enum: - home - work - temp - old - mobile securitySchemes: SMARTonFHIR: type: oauth2 description: SMART on FHIR OAuth 2.0 authorization flows: authorizationCode: authorizationUrl: https://auth.example.com/authorize tokenUrl: https://auth.example.com/token scopes: patient/Patient.read: Read patient data patient/Observation.read: Read observations patient/Condition.read: Read conditions patient/MedicationRequest.read: Read medication requests patient/Encounter.read: Read encounters launch/patient: Patient context launch openid: OpenID Connect identity externalDocs: description: HL7 FHIR R4 Specification url: https://www.hl7.org/fhir/R4/