Skip to main content

Doctors API

The Doctors API is used to create, view, update, and delete doctor records.

Backend folder:

app/doctor/

Endpoints

MethodEndpointDescription
POST/doctor/Create doctor
GET/doctor/Get all doctors
GET/doctor/{id}Get doctor by ID
PUT/doctor/{id}Update doctor
DELETE/doctor/{id}Delete doctor
GET/doctor/reg_number/{reg_number}Get doctor by registration number

Create Doctor

POST /doctor/

Creates a new doctor record.

This request also creates the linked user account for the doctor.

Request Body

{
"first_name": "Anil",
"middle_name": "Kumar",
"last_name": "Sharma",
"alt_phone_number": "+9779811111111",
"bio": "Senior cardiologist with experience in heart disease treatment.",
"license_number": "NMC-12345",
"gender": "Male",
"dob": "1985-05-26",
"experience": 10,
"consultation_fee": 1500,
"addresses": [
{
"address_type": "home",
"street": "Baneshwor",
"city": "Kathmandu",
"state": "Bagmati",
"postal_code": "44600",
"country": "Nepal"
}
],
"user": {
"username": "dr.anil",
"email": "[email protected]",
"phone_number": "+9779800000000",
"type": "doctor",
"password": "StrongPassword123@"
}
}

Note: password must contain at least one symbol from the set:

[

Field Notes

FieldTypeDescription
first_namestringDoctor first name
middle_namestringDoctor middle name
last_namestringDoctor last name
alt_phone_numberstringAlternative phone number
biostringShort professional bio
license_numberstringMedical license number
genderstringDoctor gender
dobdateDate of birth
experiencenumberYears of experience
consultation_feenumberDoctor consultation fee
addressesarray of objectsDoctor address list
addresses[].address_typestringType of address, such as home or office
addresses[].streetstringStreet name or area
addresses[].citystringCity
addresses[].statestringState or province
addresses[].postal_codestringPostal code
addresses[].countrystringCountry
userobjectLinked user account details
user.usernamestringUsername for login
user.emailstringUser email address
user.phone_numberstringUser phone number
user.typestringUser type, for example doctor
user.passwordstringAccount password

Response Example

{
"id": "7b3b7f9e-9d4e-4b21-8a2c-3cb0d2f07d91",
"reg_number": "DOC-001",
"first_name": "Anil",
"middle_name": "Kumar",
"last_name": "Sharma",
"alt_phone_number": "+9779811111111",
"bio": "Senior cardiologist with experience in heart disease treatment.",
"license_number": "NMC-12345",
"gender": "Male",
"dob": "1985-05-26",
"experience": 10,
"consultation_fee": 1500,
"addresses": [
{
"address_type": "home",
"street": "Baneshwor",
"city": "Kathmandu",
"state": "Bagmati",
"postal_code": "44600",
"country": "Nepal"
}
],
"user": {
"id": "9a1e1f0d-b7d6-4ef0-91d1-4e17f19dd222",
"username": "dr.anil",
"email": "[email protected]",
"phone_number": "+9779800000000",
"type": "doctor"
}
}

Get All Doctors

GET /doctor/

Returns all doctor records.

Response Example

[
{
"id": "7b3b7f9e-9d4e-4b21-8a2c-3cb0d2f07d91",
"reg_number": "DOC-001",
"first_name": "Anil",
"middle_name": "Kumar",
"last_name": "Sharma",
"gender": "Male",
"license_number": "NMC-12345",
"experience": 10,
"consultation_fee": 1500
}
]

Get Doctor By ID

GET /doctor/{id}

Returns a single doctor by UUID.

Path Parameter

ParameterTypeDescription
idUUIDDoctor ID

Example Request

GET /doctor/7b3b7f9e-9d4e-4b21-8a2c-3cb0d2f07d91

Response Example

{
"id": "7b3b7f9e-9d4e-4b21-8a2c-3cb0d2f07d91",
"reg_number": "DOC-001",
"first_name": "Anil",
"middle_name": "Kumar",
"last_name": "Sharma",
"gender": "Male",
"dob": "1985-05-26",
"license_number": "NMC-12345",
"experience": 10,
"consultation_fee": 1500
}

Update Doctor

PUT /doctor/{id}

Updates an existing doctor record by UUID.

Path Parameter

ParameterTypeDescription
idUUIDDoctor ID

Example Request

PUT /doctor/7b3b7f9e-9d4e-4b21-8a2c-3cb0d2f07d91

Request Body

{
"first_name": "Anil",
"middle_name": "Kumar",
"last_name": "Sharma",
"alt_phone_number": "+9779811111111",
"bio": "Senior cardiologist with 12 years of experience.",
"license_number": "NMC-12345",
"gender": "Male",
"dob": "1985-05-26",
"experience": 12,
"consultation_fee": 1800,
"addresses": [
{
"address_type": "home",
"street": "Baneshwor",
"city": "Kathmandu",
"state": "Bagmati",
"postal_code": "44600",
"country": "Nepal"
}
],
"user": {
"username": "dr.anil",
"email": "[email protected]",
"phone_number": "+9779800000000",
"type": "doctor",
"password": "StrongPassword123@"
}
}

Response Example

{
"id": "7b3b7f9e-9d4e-4b21-8a2c-3cb0d2f07d91",
"reg_number": "DOC-001",
"message": "Doctor updated successfully"
}

Delete Doctor

DELETE /doctor/{id}

Deletes a doctor record by UUID.

Path Parameter

ParameterTypeDescription
idUUIDDoctor ID

Example Request

DELETE /doctor/7b3b7f9e-9d4e-4b21-8a2c-3cb0d2f07d91

Response Example

{
"message": "Doctor deleted successfully"
}

Get Doctor By Registration Number

GET /doctor/reg_number/{reg_number}

Returns a doctor using their registration number.

Path Parameter

ParameterTypeDescription
reg_numberstringDoctor registration number

Example Request

GET /doctor/reg_number/DOC-001

Response Example

{
"id": "7b3b7f9e-9d4e-4b21-8a2c-3cb0d2f07d91",
"reg_number": "DOC-001",
"first_name": "Anil",
"middle_name": "Kumar",
"last_name": "Sharma",
"gender": "Male",
"license_number": "NMC-12345",
"experience": 10,
"consultation_fee": 1500
}

Possible Responses

Status CodeMeaning
200Request successful
201Doctor created successfully
400Invalid request data
401Not authenticated
403Permission denied
404Doctor not found
422Validation error