Medplum Fhir API

The Fhir API from Medplum — 4 operation(s) for fhir.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

medplum-fhir-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Medplum - OpenAPI 3.0 Fhir API
  description: Medplum OpenAPI 3.0 specification.  Learn more about Medplum at [https://www.medplum.com](https://www.medplum.com).
  termsOfService: https://www.medplum.com/terms
  contact:
    email: hello@medplum.com
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  version: 1.0.5
servers:
- url: https://api.medplum.com/
security:
- BasicAuth: []
  BearerAuth: []
  OpenID: []
tags:
- name: Fhir
paths:
  /fhir/R4/{resourceType}:
    get:
      summary: Search
      description: Search
      operationId: search
      parameters:
      - name: resourceType
        in: path
        description: Resource Type
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/fhir+json:
              schema:
                $ref: '#/components/schemas/Bundle'
      tags:
      - Fhir
    post:
      summary: Create Resource
      description: Create Resource
      operationId: createResource
      parameters:
      - name: resourceType
        in: path
        description: Resource Type
        required: true
        schema:
          type: string
      requestBody:
        description: Create Resource
        content:
          application/fhir+json:
            schema:
              $ref: '#/components/schemas/ResourceList'
        required: true
      responses:
        '201':
          description: Success
          content:
            application/fhir+json:
              schema:
                $ref: '#/components/schemas/ResourceList'
      tags:
      - Fhir
  /fhir/R4/{resourceType}/{id}:
    get:
      summary: Read Resource
      description: Read Resource
      operationId: readResource
      parameters:
      - name: resourceType
        in: path
        description: Resource Type
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: Resource ID
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Success
          content:
            application/fhir+json:
              schema:
                $ref: '#/components/schemas/ResourceList'
      tags:
      - Fhir
    put:
      summary: Update Resource
      description: Update Resource
      operationId: updateResource
      parameters:
      - name: resourceType
        in: path
        description: Resource Type
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: Resource ID
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        description: Update Resource
        content:
          application/fhir+json:
            schema:
              $ref: '#/components/schemas/ResourceList'
        required: true
      responses:
        '200':
          description: Success
          content:
            application/fhir+json:
              schema:
                $ref: '#/components/schemas/ResourceList'
      tags:
      - Fhir
    delete:
      summary: Delete Resource
      description: Delete Resource
      operationId: deleteResource
      parameters:
      - name: resourceType
        in: path
        description: Resource Type
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: Resource ID
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '204':
          description: Success
      tags:
      - Fhir
    patch:
      summary: Patch Resource
      description: Patch Resource
      operationId: patchResource
      parameters:
      - name: resourceType
        in: path
        description: Resource Type
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: Resource ID
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '204':
          description: Success
      tags:
      - Fhir
  /fhir/R4/{resourceType}/{id}/_history:
    get:
      summary: Read Resource History
      description: Read Resource History
      operationId: readResourceHistory
      parameters:
      - name: resourceType
        in: path
        description: Resource Type
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: Resource ID
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Success
          content:
            application/fhir+json:
              schema:
                $ref: '#/components/schemas/Bundle'
      tags:
      - Fhir
  /fhir/R4/{resourceType}/{id}/_history/{versionId}:
    get:
      summary: Read Version
      description: Read Version
      operationId: readVersion
      parameters:
      - name: resourceType
        in: path
        description: Resource Type
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: Resource ID
        required: true
        schema:
          type: string
          format: uuid
      - name: versionId
        in: path
        description: Version ID
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Success
          content:
            application/fhir+json:
              schema:
                $ref: '#/components/schemas/ResourceList'
      tags:
      - Fhir
components:
  schemas:
    ExampleScenario_Actor:
      description: Example of workflow instance.
      properties:
        id:
          description: Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
          $ref: '#/components/schemas/string'
        extension:
          description: May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
          items:
            $ref: '#/components/schemas/Extension'
          type: array
        modifierExtension:
          description: 'May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element''s descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.


            Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).'
          items:
            $ref: '#/components/schemas/Extension'
          type: array
        actorId:
          description: ID or acronym of actor.
          $ref: '#/components/schemas/string'
        type:
          description: The type of actor - person or system.
          enum:
          - person
          - entity
        name:
          description: The name of the actor as shown in the page.
          $ref: '#/components/schemas/string'
        description:
          description: The description of the actor.
          $ref: '#/components/schemas/markdown'
      additionalProperties: false
    TestScript_Action:
      description: A structured set of tests against a FHIR server or client implementation to determine compliance against the FHIR specification.
      properties:
        id:
          description: Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
          $ref: '#/components/schemas/string'
        extension:
          description: May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
          items:
            $ref: '#/components/schemas/Extension'
          type: array
        modifierExtension:
          description: 'May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element''s descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.


            Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).'
          items:
            $ref: '#/components/schemas/Extension'
          type: array
        operation:
          description: The operation to perform.
          $ref: '#/components/schemas/TestScript_Operation'
        assert:
          description: Evaluates the results of previous operations to determine if the server under test behaves appropriately.
          $ref: '#/components/schemas/TestScript_Assert'
      additionalProperties: false
    Condition_Evidence:
      description: A clinical condition, problem, diagnosis, or other event, situation, issue, or clinical concept that has risen to a level of concern.
      properties:
        id:
          description: Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
          $ref: '#/components/schemas/string'
        extension:
          description: May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
          items:
            $ref: '#/components/schemas/Extension'
          type: array
        modifierExtension:
          description: 'May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element''s descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.


            Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).'
          items:
            $ref: '#/components/schemas/Extension'
          type: array
        code:
          description: A manifestation or symptom that led to the recording of this condition.
          items:
            $ref: '#/components/schemas/CodeableConcept'
          type: array
        detail:
          description: Links to other relevant information, including pathology reports.
          items:
            $ref: '#/components/schemas/Reference'
          type: array
      additionalProperties: false
    RelatedPerson_Communication:
      description: Information about a person that is involved in the care for a patient, but who is not the target of healthcare, nor has a formal responsibility in the care process.
      properties:
        id:
          description: Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
          $ref: '#/components/schemas/string'
        extension:
          description: May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
          items:
            $ref: '#/components/schemas/Extension'
          type: array
        modifierExtension:
          description: 'May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element''s descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.


            Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).'
          items:
            $ref: '#/components/schemas/Extension'
          type: array
        language:
          description: The ISO-639-1 alpha 2 code in lower case for the language, optionally followed by a hyphen and the ISO-3166-1 alpha 2 code for the region in upper case; e.g. "en" for English, or "en-US" for American English versus "en-EN" for England English.
          $ref: '#/components/schemas/CodeableConcept'
        preferred:
          description: Indicates whether or not the patient prefers this language (over other languages he masters up a certain level).
          $ref: '#/components/schemas/boolean'
      additionalProperties: false
      required:
      - language
    MedicinalProduct_NamePart:
      description: Detailed definition of a medicinal product, typically for uses other than direct patient care (e.g. regulatory use).
      properties:
        id:
          description: Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
          $ref: '#/components/schemas/string'
        extension:
          description: May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
          items:
            $ref: '#/components/schemas/Extension'
          type: array
        modifierExtension:
          description: 'May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element''s descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.


            Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).'
          items:
            $ref: '#/components/schemas/Extension'
          type: array
        part:
          description: A fragment of a product name.
          $ref: '#/components/schemas/string'
        type:
          description: Idenifying type for this part of the name (e.g. strength part).
          $ref: '#/components/schemas/Coding'
      additionalProperties: false
      required:
      - type
    EnrollmentResponse:
      description: This resource provides enrollment and plan details from the processing of an EnrollmentRequest resource.
      properties:
        resourceType:
          description: This is a EnrollmentResponse resource
          type: string
        id:
          description: The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
          $ref: '#/components/schemas/id'
        meta:
          description: The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.
          $ref: '#/components/schemas/Meta'
        implicitRules:
          description: A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.
          $ref: '#/components/schemas/uri'
        language:
          description: The base language in which the resource is written.
          $ref: '#/components/schemas/code'
        text:
          description: A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.
          $ref: '#/components/schemas/Narrative'
        contained:
          description: These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.
          items:
            $ref: '#/components/schemas/ResourceList'
          type: array
        extension:
          description: May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
          items:
            $ref: '#/components/schemas/Extension'
          type: array
        modifierExtension:
          description: 'May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element''s descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.


            Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).'
          items:
            $ref: '#/components/schemas/Extension'
          type: array
        identifier:
          description: The Response business identifier.
          items:
            $ref: '#/components/schemas/Identifier'
          type: array
        status:
          description: The status of the resource instance.
          $ref: '#/components/schemas/code'
        request:
          description: Original request resource reference.
          $ref: '#/components/schemas/Reference'
        outcome:
          description: 'Processing status: error, complete.'
          enum:
          - queued
          - complete
          - error
          - partial
        disposition:
          description: A description of the status of the adjudication.
          $ref: '#/components/schemas/string'
        created:
          description: The date when the enclosed suite of services were performed or completed.
          $ref: '#/components/schemas/dateTime'
        organization:
          description: The Insurer who produced this adjudicated response.
          $ref: '#/components/schemas/Reference'
        requestProvider:
          description: The practitioner who is responsible for the services rendered to the patient.
          $ref: '#/components/schemas/Reference'
      additionalProperties: false
      required:
      - resourceType
    oid:
      pattern: ^urn:oid:[0-2](\.(0|[1-9][0-9]*))+$
      type: string
      description: An OID represented as a URI
    PackageRelease:
      description: Definition of a marketplace package release, which represents a specific release of a package that can be installed and used by a system.
      properties:
        resourceType:
          description: This is a PackageRelease resource
          type: string
        id:
          description: The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
          $ref: '#/components/schemas/string'
        meta:
          description: The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.
          $ref: '#/components/schemas/Meta'
        implicitRules:
          description: A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.
          $ref: '#/components/schemas/uri'
        language:
          description: The base language in which the resource is written.
          $ref: '#/components/schemas/code'
        text:
          description: A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.
          $ref: '#/components/schemas/Narrative'
        contained:
          description: These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.
          items:
            $ref: '#/components/schemas/Resource'
          type: array
        extension:
          description: May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
          items:
            $ref: '#/components/schemas/Extension'
          type: array
        modifierExtension:
          description: 'May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element''s descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.


            Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).'
          items:
            $ref: '#/components/schemas/Extension'
          type: array
        identifier:
          description: An identifier for this package release.
          items:
            $ref: '#/components/schemas/Identifier'
          type: array
        package:
          description: The Package of this release.
          $ref: '#/components/schemas/Reference'
        version:
          description: The version of the PackageRelease.
          $ref: '#/components/schemas/string'
        description:
          description: A summary, characterization or explanation of the PackageRelease.
          $ref: '#/components/schemas/markdown'
        content:
          description: The actual content of the package release.
          $ref: '#/components/schemas/Attachment'
      additionalProperties: false
      required:
      - resourceType
      - package
      - version
      - content
    Composition_Event:
      description: A set of healthcare-related information that is assembled together into a single logical package that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. A Composition defines the structure and narrative content necessary for a document. However, a Composition alone does not constitute a document. Rather, the Composition must be the first entry in a Bundle where Bundle.type=document, and any other resources referenced from Composition must be included as subsequent entries in the Bundle (for example Patient, Practitioner, Encounter, etc.).
      properties:
        id:
          description: Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
          $ref: '#/components/schemas/string'
        extension:
          description: May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
          items:
            $ref: '#/components/schemas/Extension'
          type: array
        modifierExtension:
          description: 'May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element''s descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.


            Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).'
          items:
            $ref: '#/components/schemas/Extension'
          type: array
        code:
          description: This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a "History and Physical Report" in which the procedure being documented is necessarily a "History and Physical" act.
          items:
            $ref: '#/components/schemas/CodeableConcept'
          type: array
        period:
          description: The period of time covered by the documentation. There is no assertion that the documentation is a complete representation for this period, only that it documents events during this time.
          $ref: '#/components/schemas/Period'
        detail:
          description: The description and/or reference of the event(s) being documented. For example, this could be used to document such a colonoscopy or an appendectomy.
          items:
            $ref: '#/components/schemas/Reference'
          type: array
      additionalProperties: false
    MedicinalProductPharmaceutical_WithdrawalPeriod:
      description: A pharmaceutical product described in terms of its composition and dose form.
      properties:
        id:
          description: Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
          $ref: '#/components/schemas/string'
        extension:
          description: May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
          items:
            $ref: '#/components/schemas/Extension'
          type: array
        modifierExtension:
          description: 'May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element''s descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.


            Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).'
          items:
            $ref: '#/components/schemas/Extension'
          type: array
        tissue:
          description: Coded expression for the type of tissue for which the withdrawal period applues, e.g. meat, milk.
          $ref: '#/components/schemas/CodeableConcept'
        value:
          description: A value for the time.
          $ref: '#/components/schemas/Quantity'
        supportingInformation:
          description: Extra information about the withdrawal period.
          $ref: '#/components/schemas/string'
      additionalProperties: false
      required:
      - tissue
      - value
    Bundle_Entry:
      description: A container for a collection of resources.
      pr

# --- truncated at 32 KB (2907 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/medplum/refs/heads/main/openapi/medplum-fhir-api-openapi.yml