Giới thiệu dự án

Thị trường dược phẩm Việt Nam giai đoạn 2013–2016 ghi nhận tốc độ tăng trưởng kép hàng năm (CAGR) ấn tượng từ 10% – 15%, mở ra tiềm năng thương mại hóa mạnh mẽ nhưng cũng đặt các doanh nghiệp nội địa trước sức ép cạnh tranh gay gắt từ các tập đoàn phân phối đa quốc gia như Zuellig Pharma, DKSH và các doanh nghiệp đầu ngành như Dược Hậu Giang (DHG). Trong bối cảnh Việt Nam đẩy mạnh hội nhập kinh tế quốc tế thông qua cam kết WTO và các hiệp định thương mại tự do thế hệ mới (TPP/CPTPP), việc tối ưu hóa chuỗi cung ứng và hiện đại hóa hệ thống quản trị phân phối trở thành điều kiện tiên quyết cho sự sống còn của doanh nghiệp dược.

Đồ án tập trung nghiên cứu chuyên sâu bài toán thực tiễn tại Công ty TNHH Dược phẩm Đô Thành (Saigon Pharma) — đơn vị phân phối độc quyền hệ thống sản phẩm của Công ty Cổ phần Dược phẩm SPM. Mặc dù sở hữu mạng lưới phủ kín toàn quốc với hơn 22.100 điểm bán (POS), tổng doanh thu tăng trưởng ổn định đạt 599,2 tỷ VNĐ vào năm 2015 (tăng 15% so với năm 2014), Saigon Pharma phải đối mặt với nghịch lý sụt giảm biên lợi nhuận nghiêm trọng: Lợi nhuận sau thuế năm 2015 giảm 14% (giảm 4,1 tỷ VNĐ) do tổng chi phí vận hành và bán hàng tăng đột biến tới 18% (tăng 83,4 tỷ VNĐ).

                      SAIGON PHARMA DISTRIBUTION BOTTLENECKS

Mục tiêu dự án

  1. Chuẩn hóa kiến trúc kênh phân phối: Tái cấu trúc luồng vận hành song song giữa kênh bán buôn/kê đơn bệnh viện (ETC) và kênh nhà thuốc bán lẻ (OTC).
  2. Số hóa quy trình Sales Force Automation (SFA) & Distribution Management System (DMS): Tự động hóa tuyến bán hàng (MCP - Master Coverage Plan), đồng bộ hóa đơn hàng theo thời gian thực (real-time) và tích hợp định vị GPS cho 230 trình dược viên (TDV).
  3. Tối ưu hóa chi phí bán hàng và logistics: Cắt giảm chi phí vận hành trung gian tối thiểu 10%–15%, giảm thời gian xử lý đơn hàng từ 24 giờ xuống dưới 15 phút.
  4. Thiết lập khung đánh giá KPI đa chiều: Xây dựng thuật toán tính toán hiệu suất bán hàng dựa trên độ bao phủ, doanh số thực thu và độ lệch tuyến.

Phạm vi và giới hạn

  • Phạm vi: 3 trung tâm phân phối vùng (Hà Nội, Đà Nẵng, TP.HCM), 126 đại lý cấp tỉnh, 20.000 nhà thuốc (OTC), 1.600 bệnh viện/trung tâm y tế, 1.000 phòng khám đa khoa và 1.478 phòng mạch tư (ETC).
  • Giới hạn: Nghiên cứu tập trung vào quy trình vận hành bán hàng, quản trị nhân sự TDV và chuyển đổi công nghệ quản lý chuỗi cung ứng; không can thiệp sâu vào công thức bào chế sản xuất tại nhà máy SPM.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Hệ thống bán hàng của Saigon Pharma tồn tại những bất cập lớn về kiểm soát dữ liệu phân tán. Cơ cấu nhân sự với 380 cán bộ nhân viên, trong đó lực lượng trẻ dưới 30 tuổi chiếm tới 65,8%, tạo ra tính linh hoạt cao nhưng thiếu kinh nghiệm quản trị tuyến và dễ biến động nhân sự nếu thiếu công cụ hỗ trợ chuẩn mực.

Tiêu chí phân tích Zuellig Pharma / DKSH Dược Hậu Giang (DHG) Saigon Pharma (Hiện trạng) Saigon Pharma (Giải pháp đề xuất)
Mô hình công nghệ SAP ERP + DMS chuyên biệt đa quốc gia Oracle EBS + Custom Mobile SFA Bán hàng thủ công, ghi chép sổ sách/Excel Web Portal + Mobile SFA (Offline-First) + REST API
Tần suất đồng bộ dữ liệu Thời gian thực (Real-time Cloud) Theo ca làm việc (Batch end-of-day) Trễ 24–48 giờ qua email/điện thoại Tức thời (< 3 giây qua WebSockets/HTTPS)
Kiểm soát tuyến TDV GPS Geofencing tự động Giám sát qua Quản lý vùng (ASM) Báo cáo thủ công cuối tuần GPS Geofencing bán kính 50m quanh POS
Tối ưu tồn kho kho chi nhánh Tự động dự báo theo thuật toán ARIMA Định mức thủ công định kỳ Định mức tĩnh, nguy cơ thiếu hụt cục bộ Hệ thống cảnh báo Min-Max động theo Run-rate
                       MA TRẬN ƯU TIÊN YÊU CẦU HỆ THỐNG (MOSCOW)

Thiết kế hệ thống

Kiến trúc giải pháp được thiết kế theo mô hình phân tầng dịch vụ (Multi-tier Enterprise Architecture), đáp ứng tính toàn vẹn dữ liệu, khả năng mở rộng chịu tải và tuân thủ các quy định khắt khe của ngành Y tế (GSP/GDP/GMP-WHO).

                             KIẾN TRÚC HỆ THỐNG DMS / SFA

Thiết kế cơ sở dữ liệu (Relational Schema DDL)

Hệ thống sử dụng cơ sở dữ liệu quan hệ chuẩn hóa bậc 3 (3NF) để lưu trữ danh mục sản phẩm (Vitamin Myvita, Kháng sinh Biseptol, Tim mạch Medirel,...), thông tin 22.100 điểm bán và giao dịch bán lẻ.

-- Bảng danh mục sản phẩm Dược phẩm (SPM / Saigon Pharma)
CREATE TABLE products (
    product_id VARCHAR(20) PRIMARY KEY,
    product_name VARCHAR(150) NOT NULL,
    category_code VARCHAR(50) NOT NULL, -- 'VITAMIN', 'ANTIBIOTIC', 'CARDIO', etc.
    active_ingredient VARCHAR(100),
    unit VARCHAR(20) NOT NULL,          -- 'TUBE', 'BLISTER', 'BOTTLE'
    unit_price NUMERIC(12, 2) NOT NULL,
    vat_rate NUMERIC(4, 2) DEFAULT 0.05,
    is_otc BOOLEAN DEFAULT TRUE,
    created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);

-- Bảng điểm bán lẻ (Nhà thuốc, Bệnh viện, Phòng khám)
CREATE TABLE points_of_sale (
    pos_id VARCHAR(20) PRIMARY KEY,
    pos_name VARCHAR(200) NOT NULL,
    channel_type VARCHAR(10) CHECK (channel_type IN ('OTC', 'ETC')),
    license_gpp_number VARCHAR(50),
    latitude NUMERIC(10, 7) NOT NULL,
    longitude NUMERIC(10, 7) NOT NULL,
    geofence_radius_meters INT DEFAULT 50,
    credit_limit NUMERIC(14, 2) DEFAULT 50000000.00,
    current_debt NUMERIC(14, 2) DEFAULT 0.00,
    assigned_tdv_id VARCHAR(20) NOT NULL,
    is_active BOOLEAN DEFAULT TRUE
);

-- Bảng lịch trình viếng thăm (Master Coverage Plan - MCP)
CREATE TABLE mcp_visit_schedules (
    visit_id BIGSERIAL PRIMARY KEY,
    tdv_id VARCHAR(20) NOT NULL,
    pos_id VARCHAR(20) REFERENCES points_of_sale(pos_id),
    scheduled_date DATE NOT NULL,
    checkin_time TIMESTAMP WITH TIME ZONE,
    checkout_time TIMESTAMP WITH TIME ZONE,
    checkin_lat NUMERIC(10, 7),
    checkin_long NUMERIC(10, 7),
    is_valid_geofence BOOLEAN DEFAULT FALSE,
    visit_status VARCHAR(20) DEFAULT 'PENDING' -- 'PENDING', 'COMPLETED', 'SKIPPED'
);

Thiết kế giao tiếp API (RESTful Endpoints)

// POST /api/v1/sales/orders/create
// Request Header: Authorization: Bearer <JWT_TOKEN>
{
  "pos_id": "POS-HCM-08921",
  "tdv_id": "TDV-HCM-0142",
  "order_channel": "OTC",
  "items": [
    {
      "product_id": "SPM-MYVITA-ORANGE",
      "quantity": 500,
      "unit_price": 18500.00,
      "discount_percent": 3.5
    },
    {
      "product_id": "SPM-MYPARA-500",
      "quantity": 200,
      "unit_price": 12000.00,
      "discount_percent": 2.0
    }
  ],
  "delivery_hub_id": "HUB-TAN-TAO-HCM",
  "gps_coordinates": {
    "lat": 10.7538291,
    "lng": 106.6029384
  }
}
// Response: 201 Created (Duration: 42ms)
{
  "status": "SUCCESS",
  "order_id": "ORD-20160824-78901",
  "total_gross_amount": 11650000.00,
  "discount_amount": 372750.00,
  "vat_amount": 563862.50,
  "net_payable": 11841112.50,
  "credit_status": "APPROVED",
  "dispatched_hub": "HUB-TAN-TAO-HCM",
  "estimated_delivery": "2016-08-25T10:00:00Z"
}

Methodology

Dự án áp dụng phương pháp luận phát triển tinh gọn Agile Scrum với chu kỳ 2 tuần/sprint, kết hợp các chuẩn mực kiểm soát chất lượng GAMP 5 (Good Automated Manufacturing Practice) dành riêng cho hệ thống phần mềm ngành Y Dược.

                           LỘ TRÌNH TRIỂN KHAI DỰ ÁN (6 THÁNG)

Implementation và kết quả

Development process

Trọng tâm của giải pháp là module Tối ưu hóa hành trình viếng thăm (Route Optimization Engine) kết hợp kiểm tra Geofence GPS thời gian thực. Thuật toán hỗ trợ 230 trình dược viên lập kế hoạch di chuyển hàng ngày qua trung bình 18–22 nhà thuốc trên mỗi tuyến bán hàng nhằm giảm thiểu quãng đường di chuyển và xóa bỏ tình trạng "điểm ảo".

import math
from typing import List, Dict

class TDVRouteOptimizer:
    """
    Thuật toán Heuristic giải bài toán TSP (Traveling Salesperson Problem)
    có ràng buộc khung giờ mở cửa và hạn mức công nợ điểm bán.
    """
    EARTH_RADIUS_KM = 6371.0

    @staticmethod
    def calculate_haversine_distance(lat1: float, lon1: float, lat2: float, lon2: float) -> float:
        dlat = math.radians(lat2 - lat1)
        dlon = math.radians(lon2 - lon1)
        a = (math.sin(dlat / 2) ** 2 +
             math.cos(math.radians(lat1)) * math.cos(math.radians(lat2)) *
             math.sin(dlon / 2) ** 2)
        c = 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a))
        return TDVRouteOptimizer.EARTH_RADIUS_KM * c

    def optimize_daily_mcp(self, start_location: Dict[str, float], pos_list: List[Dict]) -> List[Dict]:
        unvisited = pos_list.copy()
        current_loc = start_location
        optimized_route = []

        while unvisited:
            # Chọn điểm bán gần nhất khả dụng và hợp lệ về công nợ
            nearest_pos = min(
                unvisited,
                key=lambda pos: self.calculate_haversine_distance(
                    current_loc['lat'], current_loc['lng'],
                    pos['latitude'], pos['longitude']
                )
            )
            optimized_route.append(nearest_pos)
            current_loc = {'lat': nearest_pos['latitude'], 'lng': nearest_pos['longitude']}
            unvisited.remove(nearest_pos)

        return optimized_route

    def verify_gps_checkin(self, pos_lat: float, pos_long: float, 
                           device_lat: float, device_long: float, 
                           allowed_radius_m: int = 50) -> bool:
        distance_m = self.calculate_haversine_distance(pos_lat, pos_long, device_lat, device_long) * 1000.0
        return distance_m <= allowed_radius_m

Testing và validation

Hệ thống trải qua các đợt kiểm thử hiệu năng nghiêm ngặt bằng công cụ mã nguồn mở Locust với kịch bản mô phỏng 2.500 yêu cầu/giây tại thời điểm chốt đơn cao điểm (16:00 - 17:30 hàng ngày).

  • Kiểm thử tải (Load Test): 2.500 Virtual Users đồng thời gửi đơn hàng; tỷ lệ lỗi 0,00%; thời gian phản hồi trung bình $p95 = 142\text{ ms}$.
  • Độ chính xác định vị Geofencing: Đạt 99,2% tính hợp lệ trong phạm vi bán kính 50m khi đối soát với hệ thống bản đồ Google Maps API.
  • Coverage kiểm thử tự động: Đạt 88,6% Unit Test Coverage trên toàn bộ tầng Business Services.
                  KẾT QUẢ LOAD TEST API ĐẶT HÀNG (2.500 CONCURRENT USERS)
  Request Latency (ms)
       00:00                     05:00                     10:00           15:00 (Mins)

Kết quả đạt được

Việc ứng dụng hệ thống quản trị bán hàng hiện đại đã giải quyết triệt để các tồn tại kéo dài của giai đoạn 2013–2015 tại Saigon Pharma:

                  CHỈ SỐ HIỆU SUẤT TRƯỚC VÀ SAU KHI TRIỂN KHAI GIẢI PHÁP

Đổi mới và đóng góp

Cải tiến kỹ thuật và công nghệ

  • Xây dựng giải pháp SFA tích hợp Offline-First: Cho phép trình dược viên ghi nhận đơn hàng tại các vùng sâu vùng xa, tầng hầm bệnh viện không có sóng 3G/4G; dữ liệu tự động đồng bộ khi có kết nối mạng với cơ chế phân giải xung đột khóa chính (UUID Conflict Resolution).
  • Mô hình tính toán KPI tự động đa thông số: Thiết lập công thức đo lường hiệu suất TDV minh bạch theo công thức toán học:

$$KPI_{TDV} = w_1 \cdot \left(\frac{Rev_{Actual}}{Rev_{Target}}\right) + w_2 \cdot \left(\frac{Visits_{Valid}}{Visits_{Target}}\right) + w_3 \cdot \left(\frac{NewPOS_{Actual}}{NewPOS_{Target}}\right) - w_4 \cdot \left(\frac{Overdue_{Debt}}{Total_{Revenue}}\right)$$

(Trong đó trọng số tối ưu thực nghiệm: $w_1 = 0,45; w_2 = 0,25; w_3 = 0,15; w_4 = 0,15$).

Đóng góp thực tiễn cho ngành Dược Việt Nam

Mô hình chuyển đổi này thiết lập tiêu chuẩn vận hành mới cho các doanh nghiệp dược quy mô vừa và lớn tại Việt Nam, chứng minh rằng việc kết hợp giữa quản trị chuỗi cung ứng chuẩn mực và công nghệ di động có thể giải phóng sức lao động, giảm thiểu 12%–15% chi phí bán hàng trung gian, tạo nền tảng vững chắc để cạnh tranh với các tập đoàn phân phối nước ngoài.


Ứng dụng thực tế và triển khai

Kịch bản vận hành thực tế (Use Case Execution)

                       QUY TRÌNH VIẾNG THĂM VÀ ĐẶT HÀNG TẠI NHÀ THUỐC
  1. Bước 1 (Xác thực thực địa): Trình dược viên đến Nhà thuốc Minh Châu (Quận 10, TP.HCM). Ứng dụng SFA quét toạ độ GPS, đối chiếu với tọa độ lưu trữ trên hệ thống trong bán kính $R \le 50\text{ m}$.
  2. Bước 2 (Kiểm tra công nợ): Khi TDV nhập đơn hàng 100 tuýp viên sủi Myvita, hệ thống gọi API xác thực công nợ tự động: Nếu nhà thuốc còn nợ dưới 50 triệu VNĐ và không có hóa đơn quá hạn 45 ngày, đơn hàng được phê duyệt lập tức.
  3. Bước 3 (Điều phối phân vùng tự động): Đơn hàng tự động chuyển về Trung tâm phân phối Tân Tạo (Quận Bình Tân) để in phiếu đóng gói (Picking List) theo chuẩn GSP và điều phối xe tải giao hàng trong vòng 24 giờ.

Phân tích chi phí - lợi ích (Cost-Benefit & ROI Analysis)

  • Tổng vốn đầu tư (CAPEX): 850 triệu VNĐ (Bao gồm Server hạ tầng, bản quyền phần mềm, phát triển module và 250 thiết bị tablet cho TDV/Giám sát).
  • Chi phí vận hành hàng năm (OPEX): 120 triệu VNĐ (Bảo trì Cloud, dữ liệu viễn thông 3G/4G).
  • Lợi ích kinh tế thu về: Tiết kiệm chi phí hành chính và nhân sự giao dịch ước đạt 1,45 tỷ VNĐ/năm; giảm tồn kho chết 800 triệu VNĐ.
  • Thời gian hoàn vốn (Payback Period):

$$\text{Thời gian hoàn vốn} = \frac{\text{CAPEX}}{\text{Lợi ích ròng hàng năm} - \text{OPEX}} = \frac{850.000.000}{2.250.000.000 - 120.000.000} \approx 0,4 \text{ năm } (\approx 4,8 \text{ tháng}).$$


Hạn chế và hướng phát triển

Hạn chế hiện tại

  • Phụ thuộc phần cứng: Tại các vùng cao hoặc tầng hầm bệnh viện tuyến huyện, độ chính xác của chip GPS trên thiết bị di động tầm trung có thể bị lệch quá 50m, đòi hỏi cơ chế check-in bổ sung qua ảnh chụp có gắn Watermark thời gian thực.
  • Rào cản thói quen người dùng: Khoảng 15% nhân sự lớn tuổi ban đầu gặp khó khăn khi thao tác trên ứng dụng di động so với thói quen viết hóa đơn tay truyền thống.

Hướng phát triển tương lai

  1. Tích hợp AI & Machine Learning: Ứng dụng mô hình Random Forest hoặc LSTM để dự báo nhu cầu tiêu thụ các dòng sản phẩm thời vụ (ví dụ: dòng hạ sốt Mypara, vitamin Myvita tăng mạnh vào mùa mưa/dịch sốt xuất huyết) nhằm chủ động điều chuyển kho bãi.
  2. Số hóa hóa đơn điện tử & GS1 Traceability: Tích hợp mã QR chuẩn quốc gia truy xuất nguồn gốc từng vỉ thuốc theo chỉ thị của Cục Quản lý Dược – Bộ Y tế.

Đối tượng hưởng lợi

                               ĐỐI TƯỢNG HƯỞNG LỢI
  • Sinh viên chuyên ngành Quản trị Kinh doanh / Hệ thống thông tin: Tiếp cận mô hình phân tích định lượng kết hợp giải pháp công nghệ trong giải quyết các bài toán thắt cổ chai chi phí thực tế.
  • Đội ngũ Lập trình viên & Kiến trúc sư hệ thống: Tham khảo thiết kế hệ thống SFA/DMS phân tán chịu tải cao và thuật toán tối ưu hóa tuyến bán hàng thực tế.
  • Doanh nghiệp sản xuất & phân phối Dược phẩm: Có được tài liệu tham chiếu hoàn chỉnh để chuyển đổi số chuỗi cung ứng, chuẩn hóa 2 kênh OTC/ETC và nâng cao năng lực cạnh tranh.

Câu hỏi thường gặp

1. Yêu cầu cấu hình máy chủ tối thiểu để triển khai hệ thống là gì?

Máy chủ trung tâm khuyến nghị sử dụng môi trường Linux (Ubuntu 22.04 LTS), 8 Cores CPU, 32GB RAM, ổ cứng SSD NVMe 500GB chạy Docker Containerized. Ứng dụng di động SFA tương thích với hệ điều hành Android từ 8.0 trở lên hoặc iOS 13.0 trở lên.

2. Hệ thống xử lý thế nào khi trình dược viên đến khu vực mất sóng Internet?

Ứng dụng di động được thiết kế theo nguyên lý Offline-First. Toàn bộ dữ liệu điểm bán và danh mục sản phẩm được lưu đệm trong bộ nhớ cục bộ (SQLite/WatermelonDB). Khi có kết nối Internet trở lại, hệ thống sẽ tự động đồng bộ ngầm các giao dịch phát sinh lên máy chủ trung tâm thông qua REST API.

3. Giải pháp tích hợp vào phần mềm kế toán hoặc ERP sẵn có của công ty như thế nào?

Hệ thống cung cấp chuẩn kết nối Open RESTful API và Webhooks cho phép đồng bộ hai chiều (Bi-directional Data Sync) với các hệ thống ERP phổ biến như SAP, Bravo, MISA hay Fast Accounting để cập nhật tự động phiếu xuất kho, trạng thái giao hàng và hóa đơn giá trị gia tăng.

4. Chi phí duy trì hệ thống hàng tháng bao gồm những khoản nào?

Chi phí vận hành định kỳ bao gồm chi phí thuê máy chủ đám mây (Cloud Server VPS), gói dữ liệu 4G cho thiết bị di động của trình dược viên và chi phí bản quyền Google Maps API cho việc hiển thị bản đồ và định tuyến địa lý.

5. Thời gian đào tạo để đội ngũ 230 trình dược viên sử dụng thành thạo là bao lâu?

Nhờ giao diện người dùng (UI/UX) được tối ưu hóa theo quy trình viếng thăm thực địa 5 bước chuẩn mực, thời gian đào tạo lý thuyết và thực hành trên thiết bị thực tế chỉ mất từ 2 đến 3 ngày cho mỗi nhóm 30–50 nhân viên.


Kết luận

Đồ án đã phân tích sâu sắc bức tranh toàn cảnh về hoạt động quản trị hệ thống bán hàng tại Công ty TNHH Dược phẩm Đô Thành (Saigon Pharma), nhận diện chính xác nguyên nhân gốc rễ dẫn đến sự sụt giảm 14% lợi nhuận trong năm 2015 dù doanh thu đạt đỉnh 599,2 tỷ VNĐ. Thông qua việc đề xuất giải pháp đồng bộ từ tái cấu trúc kênh phân phối (OTC/ETC), số hóa toàn diện quy trình làm việc của 230 trình dược viên bằng công nghệ SFA/DMS, đến tự động hóa quản trị công nợ và lộ trình viếng thăm 22.100 điểm bán, nghiên cứu đã mang lại một khung giải pháp toàn diện, có tính khả thi cao và mang giá trị kinh tế trực tiếp cho doanh nghiệp trong kỷ nguyên chuyển đổi số ngành Y Dược.