Exam Manager#

Introduction#

The Exam Manager API is designed to manage the complete lifecycle of exams, procedures, jobs, and records within the healthcare system. This comprehensive API allows users to perform essential operations on these entities and offers the following key endpoints:

Web API#

POST /api/v1/exam/#

Exam Create

Create exam endpoint.

Parameters#

payload

Exam pydantic input model.

Returns#

Exam pydantic output moddel.

Raises#

HTTPException

404: Creation unsuccessful

status 201:

Successful Response

status 422:

Validation Error

GET /api/v1/exam/{exam_id}#

Exam Get

Get exam endpoint.

Parameters#

exam_id

Id of requested exam entry

Returns#

Exam pydantic output model.

Raises#

HTTPException

404: Not found

param integer exam_id:

status 200:

Successful Response

status 422:

Validation Error

PUT /api/v1/exam/{exam_id}#

Exam Update

Update exam.

Parameters#

exam_id

Id of the exam to be updated

payload

Exam pydantic input model

Returns#

Exam pydantic output model

Raises#

HTTPException

404: Not found

param integer exam_id:

status 200:

Successful Response

status 422:

Validation Error

DELETE /api/v1/exam/{exam_id}#

Exam Delete

Delete exam by id.

Parameters#

exam_id

Id of the exam to be deleted

Raises#

HTTPException

404: Not found

param integer exam_id:

status 204:

Successful Response

status 422:

Validation Error

GET /api/v1/exam/all/{patient_id}#

Exam Get All

Get all exams of a patient endpoint.

Parameters#

patient_id

Id of parent

Returns#

List of exam pydantic output models

param integer patient_id:

status 200:

Successful Response

status 422:

Validation Error

POST /api/v1/exam/procedure#

Procedure Create

Procedure post endpoint.

Parameters#

payload

Pydantic input model

Returns#

Pydantic output model

Raises#

HTTPException

404: Creation not succesful

status 201:

Successful Response

status 422:

Validation Error

GET /api/v1/exam/procedure/{procedure_id}#

Procedure Get

Procedure get endpoint.

Parameters#

procedure_id

Id of entry to return

Returns#

Pydantic output model

Raises#

HTTPException

404: Not found

param integer procedure_id:

status 200:

Successful Response

status 422:

Validation Error

PUT /api/v1/exam/procedure/{procedure_id}#

Proceedure Update

Update procedure endpoint.

Parameters#

procedure_id

Id of procedure to be updated

payload

Pydantic input model

Returns#

Pydantic output model

Raises#

HTTPException

404: Entry not found

param integer procedure_id:

status 200:

Successful Response

status 422:

Validation Error

DELETE /api/v1/exam/procedure/{procedure_id}#

Procedure Delete

Delete procedure endpoint.

Parameters#

procedure_id

Id of entry to be deleted

Raises#

HTTPException

404: Not found

param integer procedure_id:

status 204:

Successful Response

status 422:

Validation Error

GET /api/v1/exam/procedure/all/{exam_id}#

Procedure Get All

Get all procedures of a parent endpoint.

Parameters#

exam_id

Id of the parent object

Returns#

List of pydantic output models

param integer exam_id:

status 200:

Successful Response

status 422:

Validation Error

POST /api/v1/exam/job#

Job Create

Create new job endpoint.

Parameters#

payload

Job pydantic input model

Returns#

Job pydantic output model

Raises#

HTTPException

404: Creation unsuccessful

status 201:

Successful Response

status 422:

Validation Error

GET /api/v1/exam/job/{job_id}#

Job Get

Get job endpoint.

Parameters#

job_id

Id of the job to be returned

Returns#

Job pydantic output model

Raises#

HTTPException

404: Not found

param integer job_id:

status 200:

Successful Response

status 422:

Validation Error

PUT /api/v1/exam/job/{job_id}#

Job Update

Update job endpoint.

Parameters#

job_id

Id of the job to be updated

payload

Job pydantic indput model

Returns#

Job pydantic output model

Raises#

HTTPException

404: Not found

param integer job_id:

status 200:

Successful Response

status 422:

Validation Error

DELETE /api/v1/exam/job/{job_id}#

Job Delete

Delete job endpoint.

Parameters#

job_id

Id of the job to be deleted

Raises#

HTTPException

404: Not found

param integer job_id:

status 204:

Successful Response

status 422:

Validation Error

GET /api/v1/exam/job/all/{procedure_id}#

Job Get All

Get all jobs of a procedure endpoint.

Parameters#

procedure_id

Id of parent procedure

Returns#

List of job pydantic output model

param integer procedure_id:

status 200:

Successful Response

status 422:

Validation Error

POST /api/v1/exam/record#

Record Create

Create record endpoint.

Parameters#

payload

Record pydantic input model

Returns#

Record pydantic output model

Raises#

HTTPException

404: Creation unsuccessful

status 201:

Successful Response

status 422:

Validation Error

GET /api/v1/exam/record/{record_id}#

Record Get

Get single record endpoint.

Parameters#

record_id

Id of the record to return

Returns#

Record pydantic output model

Raises#

HTTPException

404: Not found

param integer record_id:

status 200:

Successful Response

status 422:

Validation Error

DELETE /api/v1/exam/record/{record_id}#

Record Delete

Delete record endpoint.

Parameters#

record_id

Id of the record to be deleted

Raises#

HTTPException

404: Not found

param integer record_id:

status 204:

Successful Response

status 422:

Validation Error

GET /api/v1/exam/record/all/{job_id}#

Record Get All

Get all records of a job endpoint.

Parameters#

job_id

Id of parental job

Returns#

List of record pydantic output model

param integer job_id:

status 200:

Successful Response

status 422:

Validation Error

GET /api/v1/exam/health/readiness#

Readiness

Readiness health endpoint.

Returns#

Status dictionary

Raises#

HTTPException

500: Any of the exam-tree tables does not exist

status 200:

Successful Response

License#

Exam Manager, including all its source code and associated documentation (collectively, the “Software”), is dual-licensed under the GNU General Public License version 3 (GPLv3) and the ScanHub commercial license.

Open Source License#

If you want to use the Software under the terms of the GPLv3, you may do so for free. Under the GPLv3, you are allowed to modify and distribute the Software, but any derivative works that you distribute must also be licensed under the GPLv3. For the precise terms and conditions, please refer to the text of the GPLv3, which is included with the Software and can also be found at: http://www.gnu.org/licenses/gpl-3.0.html

Commercial License#

If you wish to use the Software without the restrictions of the GPLv3, such as for the purpose of developing proprietary software that includes the Software without the obligation to disclose your source code, you may purchase a commercial license from BRAIN-LINK UG (haftungsbeschränkt).

The commercial license grants you, the licensee, the rights to use, modify, and distribute the Software without the requirement of providing the source code of your proprietary software to the end users. The commercial license also includes access to premium support and services.

For more information on the commercial license, including pricing, please contact us at info@brain-link.de.

Choice of License#

You may choose to use the Software under either the GPLv3 or the commercial license. If you choose to use the Software under the GPLv3, you must comply with all of the terms of the GPLv3. If you choose to use the Software under the commercial license, you must comply with all of the terms of the commercial license.

Disclaimer#

This is not a legal document. The exact terms of the GPLv3 and the commercial license are specified in their respective legal texts. This document is merely intended to provide a general overview of the dual licensing scheme.