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