Facilities

Facilities represent healthcare locations such as hospitals, clinics, pharmacies, and laboratories. MediLoop supports multi-branch facilities (chains) and service-based discovery.

Endpoints

POST/api/v1/facilities/register/Register a facility
GET/api/v1/facilities/search/Search facilities
GET/api/v1/facilities/{facility_id}/Get facility details
GET/api/v1/facilities/services/search/Search by service type
GET/api/v1/facilities/{facility_id}/branches/List facility branches
GET/api/v1/facilities/{facility_id}/nearest_branch/Find nearest branch
GET/api/v1/facilities/search/chains/Search facility chains

The Facility Object

Attributes

iduuid

Unique identifier for the facility.

namestring

Facility name.

facility_typestring

Type: hospital, clinic, pharmacy, laboratory, etc.

license_numberstring

Government license number.

addressstring

Physical address.

districtstring

District location.

citystringnullable

City.

latitudenumbernullable

GPS latitude.

longitudenumbernullable

GPS longitude.

phone_numberstring

Contact phone.

emailstringnullable

Contact email.

servicesarray

List of services offered.

operating_hoursobjectnullable

Operating hours by day.

is_24_hoursboolean

Whether facility operates 24/7.

is_chainboolean

Whether this is a chain/franchise.

parent_facility_iduuidnullable

Parent facility for branches.

is_activeboolean

Whether the facility is active.

fhir_organization_idstring

FHIR Organization resource ID.

RESPONSE200
{
  "id": "fac-xyz-789-012",
  "name": "Mulago National Referral Hospital",
  "facility_type": "hospital",
  "license_number": "MOH-2024-12345",
  "address": "Upper Mulago Hill Road",
  "district": "Kampala",
  "city": "Kampala",
  "latitude": 0.3476,
  "longitude": 32.5825,
  "phone_number": "+256414541111",
  "email": "info@mulago.go.ug",
  "services": [
    "emergency",
    "outpatient",
    "inpatient",
    "surgery",
    "laboratory",
    "radiology"
  ],
  "operating_hours": {
    "monday": {
      "open": "08:00",
      "close": "17:00"
    },
    "tuesday": {
      "open": "08:00",
      "close": "17:00"
    }
  },
  "is_24_hours": true,
  "is_chain": false,
  "is_active": true,
  "fhir_organization_id": "Organization/fhir-org-123"
}

Register a Facility

Registers a new healthcare facility.

POST/api/v1/facilities/register/

Request Body

namestringrequired

Facility name

facility_typestringrequired

Type of facility

license_numberstringrequired

Government license number

addressstringrequired

Physical address

districtstringrequired

District

phone_numberstringrequired

Contact phone

emailstringoptional

Contact email

latitudenumberoptional

GPS latitude

longitudenumberoptional

GPS longitude

servicesarrayoptional

Services offered

is_24_hoursbooleanoptional

24/7 operation

parent_facility_iduuidoptional

Parent facility for branches

Request
bash
curl -X POST https://api.mediloop.co/api/v1/facilities/register/ \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{
    "name": "City Clinic Kampala",
    "facility_type": "clinic",
    "license_number": "MOH-2024-54321",
    "address": "Plot 45, Kampala Road",
    "district": "Kampala",
    "phone_number": "+256700111222",
    "services": ["outpatient", "laboratory", "pharmacy"],
    "latitude": 0.3136,
    "longitude": 32.5811
  }'
RESPONSE201
{
  "id": "fac-new-123-456",
  "name": "City Clinic Kampala",
  "facility_type": "clinic",
  "license_number": "MOH-2024-54321",
  "district": "Kampala",
  "is_active": true,
  "created_at": "2024-01-15T10:00:00Z"
}

Search by Service

Find facilities that offer specific services.

GET/api/v1/facilities/services/search/

Query Parameters

servicestringrequired

Service type to search for

districtstringoptional

Filter by district

latitudenumberoptional

Center latitude

longitudenumberoptional

Center longitude

radius_kmnumberoptional

Search radius

Request
bash
curl "https://api.mediloop.co/api/v1/facilities/services/search/?service=laboratory&district=Kampala" \
  -H "Authorization: Bearer sk_test_..."
RESPONSE200
{
  "count": 3,
  "service": "laboratory",
  "results": [
    {
      "id": "fac-lab-001",
      "name": "Lancet Laboratories",
      "facility_type": "laboratory",
      "services": [
        "laboratory",
        "blood-tests",
        "imaging"
      ]
    },
    {
      "id": "fac-lab-002",
      "name": "MBN Clinical Laboratories",
      "facility_type": "laboratory",
      "services": [
        "laboratory",
        "pathology"
      ]
    }
  ]
}

Facility Branches

List all branches of a facility chain.

GET/api/v1/facilities/{facility_id}/branches/
Request
bash
curl https://api.mediloop.co/api/v1/facilities/fac-chain-001/branches/ \
  -H "Authorization: Bearer sk_test_..."
RESPONSE200
{
  "parent_facility": {
    "id": "fac-chain-001",
    "name": "City Pharmacy",
    "is_chain": true
  },
  "branches": [
    {
      "id": "fac-branch-001",
      "name": "City Pharmacy - Kampala Central",
      "district": "Kampala",
      "address": "Plot 10, Kampala Road"
    },
    {
      "id": "fac-branch-002",
      "name": "City Pharmacy - Ntinda",
      "district": "Kampala",
      "address": "Ntinda Shopping Center"
    }
  ],
  "total_branches": 2
}

Facility Types

TypeDescription
hospitalFull-service hospital
clinicOutpatient clinic
pharmacyPharmacy/Drugstore
laboratoryDiagnostic laboratory
imagingRadiology/Imaging center
dentalDental clinic
opticalEye care center
health_centerGovernment health center

Common Services

emergency
outpatient
inpatient
surgery
laboratory
radiology
pharmacy
maternity
pediatrics
dental
physiotherapy
vaccination