openapi: 3.2.0
info:
title: EHRbase EHR API
description: 'EHRbase implements the official openEHR REST API. Additionally, EHRbase provides a custom `status` heartbeat endpoint, an Admin API (if activated) and a Status and Metrics API (if activated) for monitoring and maintenance. Note: The openEHR REST API is documented in their official documentation, not here. Please refer to their separate documentation.'
license:
name: Apache 2.0
url: https://github.com/ehrbase/ehrbase/blob/develop/LICENSE.md
version: v1
servers:
- url: https://sandkiste.ehrbase.org/ehrbase
description: Generated server url
tags:
- name: EHR
paths:
/rest/openehr/v1/ehr/{ehr_id}:
get:
tags:
- EHR
summary: Get EHR by id
externalDocs:
url: https://specifications.openehr.org/releases/ITS-REST/latest/ehr.html#tag/EHR/operation/ehr_get_by_id
operationId: getEhrById
parameters:
- name: ehr_id
in: path
required: true
schema:
type: string
responses:
'200':
description: OK, is returned when the requested EHR resource is successfully retrieved.
content:
application/json:
schema:
$ref: '#/components/schemas/Ehr'
'404':
description: Not Found, is returned when an EHR with ehr_id does not exist.
put:
tags:
- EHR
summary: Create EHR with id
externalDocs:
url: https://specifications.openehr.org/releases/ITS-REST/1.0.3/ehr.html#tag/EHR/operation/ehr_get_by_id
operationId: createEhrWithId
parameters:
- name: openEHR-VERSION
in: header
required: false
schema:
type: string
- name: openEHR-AUDIT_DETAILS
in: header
required: false
schema:
type: string
- name: Prefer
in: header
required: false
schema:
type: string
- name: ehr_id
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EhrStatus'
responses:
'201':
description: Created, is returned when the EHR has been successfully created. The new EHR resource is returned in the body when the request's Prefer header value is return=representation , otherwise only headers are returned.
content:
application/json:
schema:
$ref: '#/components/schemas/Ehr'
'400':
description: Bad Request, is returned when the request URL or body (if provided) could not be parsed or has invalid content.
'409':
description: Conflict, Unable to create a new EHR due to a conflict with an already existing EHR with the same subject id, namespace pair, whenever EHR_STATUS is supplied.
/rest/openehr/v1/ehr:
get:
tags:
- EHR
summary: Get EHR summary by subject id and namespace
externalDocs:
url: https://specifications.openehr.org/releases/ITS-REST/latest/ehr.html#tag/EHR/operation/ehr_get_by_subject
operationId: getEhrBySubject
parameters:
- name: subject_id
in: query
required: true
schema:
type: string
- name: subject_namespace
in: query
required: true
schema:
type: string
responses:
'200':
description: OK, is returned when the requested EHR resource is successfully retrieved.
content:
application/json:
schema:
$ref: '#/components/schemas/Ehr'
'404':
description: Not Found, is returned when an EHR with supplied subject parameters does not exist.
post:
tags:
- EHR
summary: Create EHR
externalDocs:
url: https://specifications.openehr.org/releases/ITS-REST/latest/ehr.html#tag/EHR/operation/ehr_create
operationId: createEhr
parameters:
- name: openEHR-VERSION
in: header
required: false
schema:
type: string
- name: openEHR-AUDIT_DETAILS
in: header
required: false
schema:
type: string
- name: Prefer
in: header
required: false
schema:
type: string
default: return=minimal
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EhrStatus'
responses:
'201':
description: Created, is returned when the EHR has been successfully created. The new EHR resource is returned in the body when the request's Prefer header value is return=representation , otherwise only headers are returned.
content:
application/json:
schema:
$ref: '#/components/schemas/Ehr'
'400':
description: Bad Request, is returned when the request URL or body (if provided) could not be parsed or has invalid content.
'409':
description: Conflict, Unable to create a new EHR due to a conflict with an already existing EHR with the same subject id, namespace pair, whenever EHR_STATUS is supplied.
components:
schemas:
ObjectId:
type: object
properties:
value:
type: string
EhrStatus:
type: object
properties:
name:
$ref: '#/components/schemas/DvText'
archetypeNodeId:
type: string
uid:
$ref: '#/components/schemas/UIDBasedId'
archetypeDetails:
$ref: '#/components/schemas/Archetyped'
feederAudit:
$ref: '#/components/schemas/FeederAudit'
links:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/Link'
subject:
$ref: '#/components/schemas/PartySelf'
otherDetails:
$ref: '#/components/schemas/ItemStructure'
path:
type: string
is_modifiable:
type: boolean
is_queryable:
type: boolean
TermMapping:
type: object
properties:
match:
type: string
purpose:
$ref: '#/components/schemas/DvCodedText'
target:
$ref: '#/components/schemas/CodePhrase'
DvDuration:
type: 'null'
properties:
normalStatus:
$ref: '#/components/schemas/CodePhrase'
normalRange:
$ref: '#/components/schemas/DvIntervalDvDuration'
otherReferenceRanges:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/ReferenceRangeDvDuration'
magnitudeStatus:
type:
- string
- 'null'
accuracy:
type:
- number
- 'null'
format: double
accuracyIsPercent:
type:
- boolean
- 'null'
value:
type: object
properties:
units:
type: array
items:
type: object
properties:
durationEstimated:
type: boolean
duration:
type: string
timeBased:
type: boolean
dateBased:
type: boolean
ItemStructure:
type: 'null'
properties:
name:
$ref: '#/components/schemas/DvText'
archetypeNodeId:
type: string
uid:
$ref: '#/components/schemas/UIDBasedId'
archetypeDetails:
$ref: '#/components/schemas/Archetyped'
feederAudit:
type: 'null'
links:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/Link'
items:
type: array
items:
$ref: '#/components/schemas/Item'
path:
type: string
Archetyped:
type: 'null'
properties:
archetypeId:
$ref: '#/components/schemas/ArchetypeID'
templateId:
$ref: '#/components/schemas/TemplateId'
rmVersion:
type: string
PartyRef:
type: 'null'
properties:
namespace:
type: string
type:
type: string
id:
$ref: '#/components/schemas/ObjectId'
ReferenceRangeDvDateTime:
type: object
properties:
range:
$ref: '#/components/schemas/DvIntervalDvDateTime'
meaning:
$ref: '#/components/schemas/DvText'
ObjectRefObjectId:
type: object
properties:
namespace:
type: string
type:
type: string
id:
$ref: '#/components/schemas/ObjectId'
PartyProxy:
type: 'null'
properties:
externalRef:
$ref: '#/components/schemas/PartyRef'
DvIntervalDvDuration:
type: 'null'
properties:
lower:
$ref: '#/components/schemas/DvDuration'
upper:
$ref: '#/components/schemas/DvDuration'
lowerUnbounded:
type: boolean
upperUnbounded:
type: boolean
lowerIncluded:
type: boolean
upperIncluded:
type: boolean
TerminologyId:
type: object
properties:
value:
type: string
DvCodedText:
type: 'null'
properties:
value:
type: string
hyperlink:
$ref: '#/components/schemas/DvURI'
formatting:
type:
- string
- 'null'
language:
$ref: '#/components/schemas/CodePhrase'
encoding:
$ref: '#/components/schemas/CodePhrase'
definingCode:
$ref: '#/components/schemas/CodePhrase'
UIDBasedId:
type: 'null'
properties:
value:
type: string
Ehr:
type: object
properties:
systemId:
$ref: '#/components/schemas/HierObjectId'
ehrId:
$ref: '#/components/schemas/HierObjectId'
contributions:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/ObjectRefObjectId'
ehrStatus:
$ref: '#/components/schemas/ObjectRefObjectId'
ehrAccess:
$ref: '#/components/schemas/ObjectRefObjectId'
compositions:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/ObjectRefObjectId'
directory:
$ref: '#/components/schemas/ObjectRefObjectId'
folders:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/ObjectRefObjectId'
timeCreated:
$ref: '#/components/schemas/DvDateTime'
PartySelf:
type: object
properties:
externalRef:
$ref: '#/components/schemas/PartyRef'
DvEncapsulated:
type: 'null'
properties:
charset:
$ref: '#/components/schemas/CodePhrase'
language:
$ref: '#/components/schemas/CodePhrase'
Item:
type: object
properties:
name:
$ref: '#/components/schemas/DvText'
archetypeNodeId:
type: string
uid:
$ref: '#/components/schemas/UIDBasedId'
archetypeDetails:
$ref: '#/components/schemas/Archetyped'
feederAudit:
type: 'null'
links:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/Link'
path:
type: string
TemplateId:
type: 'null'
properties:
value:
type: string
PartyIdentified:
type: 'null'
properties:
externalRef:
$ref: '#/components/schemas/PartyRef'
name:
type:
- string
- 'null'
identifiers:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/DvIdentifier'
ReferenceRangeDvDuration:
type: object
properties:
range:
$ref: '#/components/schemas/DvIntervalDvDuration'
meaning:
$ref: '#/components/schemas/DvText'
DvIntervalDvDateTime:
type: 'null'
properties:
lower:
$ref: '#/components/schemas/DvDateTime'
upper:
$ref: '#/components/schemas/DvDateTime'
lowerUnbounded:
type: boolean
upperUnbounded:
type: boolean
lowerIncluded:
type: boolean
upperIncluded:
type: boolean
DvEHRURI:
type: object
properties:
value:
type: string
format: uri
ArchetypeID:
type: object
properties:
qualified_rm_entity:
type: string
writeOnly: true
domain_concept:
type: string
writeOnly: true
rm_originator:
type: string
writeOnly: true
rm_name:
type: string
writeOnly: true
rm_entity:
type: string
writeOnly: true
specialisation:
type:
- string
- 'null'
versionId:
type:
- string
- 'null'
value:
type: string
namespace:
type:
- string
- 'null'
qualifiedRmEntity:
type:
- string
- 'null'
domainConcept:
type:
- string
- 'null'
rmOriginator:
type:
- string
- 'null'
rmName:
type:
- string
- 'null'
rmEntity:
type:
- string
- 'null'
semanticId:
type: string
fullId:
type: string
Link:
type: object
properties:
meaning:
$ref: '#/components/schemas/DvText'
type:
$ref: '#/components/schemas/DvText'
target:
$ref: '#/components/schemas/DvEHRURI'
DvDateTime:
type: 'null'
properties:
normalStatus:
$ref: '#/components/schemas/CodePhrase'
normalRange:
$ref: '#/components/schemas/DvIntervalDvDateTime'
otherReferenceRanges:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/ReferenceRangeDvDateTime'
magnitudeStatus:
type:
- string
- 'null'
accuracy:
$ref: '#/components/schemas/DvDuration'
value: {}
CodePhrase:
type: 'null'
properties:
terminologyId:
$ref: '#/components/schemas/TerminologyId'
codeString:
type: string
preferredTerm:
type:
- string
- 'null'
DvIdentifier:
type: object
properties:
issuer:
type:
- string
- 'null'
assigner:
type:
- string
- 'null'
id:
type: string
type:
type:
- string
- 'null'
FeederAuditDetails:
type: 'null'
properties:
systemId:
type: string
location:
$ref: '#/components/schemas/PartyIdentified'
provider:
$ref: '#/components/schemas/PartyIdentified'
subject:
$ref: '#/components/schemas/PartyProxy'
time:
$ref: '#/components/schemas/DvDateTime'
versionId:
type:
- string
- 'null'
otherDetails:
$ref: '#/components/schemas/ItemStructure'
HierObjectId:
type: object
properties:
value:
type: string
DvURI:
type: 'null'
properties:
value:
type: string
format: uri
DvText:
type: object
properties:
value:
type: string
hyperlink:
$ref: '#/components/schemas/DvURI'
formatting:
type:
- string
- 'null'
mappings:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/TermMapping'
language:
$ref: '#/components/schemas/CodePhrase'
encoding:
$ref: '#/components/schemas/CodePhrase'
FeederAudit:
type: 'null'
properties:
originatingSystemItemIds:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/DvIdentifier'
feederSystemItemIds:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/DvIdentifier'
originalContent:
$ref: '#/components/schemas/DvEncapsulated'
originatingSystemAudit:
$ref: '#/components/schemas/FeederAuditDetails'
feederSystemAudit:
$ref: '#/components/schemas/FeederAuditDetails'
externalDocs:
description: EHRbase Documentation
url: https://docs.ehrbase.org/