Giới thiệu dự án

Ngành phân phối dược phẩm tại Việt Nam đang trải qua giai đoạn chuyển dịch cấu trúc sâu sắc dưới tác động của làn sóng chuyển đổi số và các quy chuẩn khắt khe từ Bộ Y tế (GDP, GPP). Theo thống kê từ Business Monitor International (BMI), quy mô thị trường dược phẩm Việt Nam năm 2017 đạt 5,2 tỷ USD với tốc độ tăng trưởng kép hàng năm (CAGR) duy trì trên 10%, chi tiêu tiền thuốc bình quân đầu người tăng từ 37,97 USD (năm 2015) lên 56 USD (năm 2017) và dự báo đạt 85 USD vào năm 2020. Tuy nhiên, thị trường phân phối bán lẻ bị phân mảnh mạnh mẽ: kênh bệnh viện (ETC - Ethical Drugs) chiếm 68% doanh số, trong khi 32% còn lại là cuộc cạnh tranh khốc liệt giữa hơn 57.000 nhà thuốc tư nhân (OTC - Over The Counter) cùng sự thâm nhập của các chuỗi bán lẻ hiện đại (Pharmacity, Long Châu, Phano).

Thị trường Dược phẩm Việt Nam (2017 - 5.2 Tỷ USD)

Công ty TNHH Dược phẩm Thuận Thảo (Thừa Thiên Huế) là doanh nghiệp thương mại dược phẩm với hơn 13 năm hoạt động, sở hữu mạng lưới 4 nhà thuốc bán lẻ trực thuộc và hệ thống phân phối B2B tới các bệnh viện lớn (Bệnh viện Trung ương Huế, Bệnh viện Mắt Huế) cùng các trung tâm y tế tuyến huyện. Giai đoạn 2015–2017, doanh nghiệp đối mặt với cuộc khủng hoảng sụt giảm doanh thu nghiêm trọng:

  • Tổng doanh thu giảm 30,8% trong năm 2016 (từ 49,83 tỷ VNĐ xuống 34,45 tỷ VNĐ) và tiếp tục giảm thêm 6,44% trong năm 2017 (xuống mức 32,23 tỷ VNĐ).
  • Lợi nhuận sau thuế giảm từ 112,8 triệu VNĐ (2015) xuống 100,9 triệu VNĐ (2016, -10,98%) và chạm mức 91,5 triệu VNĐ (2017, -9,30%).
  • Tỷ suất sinh lời trên doanh thu (ROS) ở mức rất thấp, chỉ dao động từ 0,0022% đến 0,0029%.

Nguyên nhân cốt lõi đến từ: sự cạnh tranh giá gay gắt từ các chuỗi bán lẻ mới, quản trị tồn kho thủ công gây ứ đọng vốn và rủi ro thuốc cận hạn (đặc biệt là nhóm kháng sinh Cephalosporin), quy trình quản lý 15 trình dược viên phân tán thiếu dữ liệu thực thời, cùng sự thiếu hụt kênh số hóa B2B/B2C.

Mục tiêu nghiên cứu & Tối ưu hóa:
1. Số hóa & Chuẩn hóa 100% danh mục thuốc theo tiêu chuẩn GDP/GPP và nguyên tắc FEFO.
2. Ứng dụng mô hình EOQ (Economic Order Quantity) & ROP (Reorder Point) giảm tồn kho 25%.
3. Tái cấu trúc kênh phân phối (Omnichannel B2B/B2C), nâng ROS lên ngưỡng mục tiêu >= 0,0045%.
4. Triển khai Sales Force Automation (SFA) nâng năng suất bình quân của trình dược viên thêm 35%.

Phạm vi và giới hạn: Đề tài tập trung phân tích số liệu tài chính - vận hành giai đoạn 2015–2017 tại Công ty TNHH Dược phẩm Thuận Thảo trên địa bàn tỉnh Thừa Thiên Huế, xây dựng giải pháp quản trị kinh doanh kết hợp chuyển đổi số quy trình phân phối dược phẩm.


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

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

Khảo sát hệ thống phân phối dược phẩm truyền thống so với mô hình chuỗi hiện đại cho thấy các điểm nghẽn nghiêm trọng:

Tiêu chí phân tích Doanh nghiệp truyền thống (Thuận Thảo) Chuỗi bán lẻ hiện đại (Pharmacity, Long Châu) Giải pháp Đề xuất (Tech-driven Pharma)
Quản trị Tồn kho Thủ công qua sổ sách, định kỳ kiểm kê Tự động hóa bằng ERP tập trung Hệ thống ERP mini tích hợp thuật toán FEFO + EOQ
Kênh Bán hàng Trực tiếp tại quầy + Trình dược viên truyền thống Chuỗi cửa hàng tiện lợi + E-commerce B2C Phân phối đa kênh Omnichannel (App B2B + POS GPP)
Kiểm soát Đơn hàng Ghi chép đơn giấy, chốt số cuối ngày Mobile SFA GPS Real-time Mobile App Sales Automation RESTful API
Chính sách Giá Linh hoạt nhưng thiếu đồng bộ, dễ thất thoát Dynamic Pricing tập trung Centralized Price Matrix + B2B Discount Tier

Ma trận ưu tiên yêu cầu hệ thống (MoSCoW)

  • Must-have: Phân hệ quản lý kho đạt chuẩn GDP/GPP; Quản lý lô/date với thuật toán cảnh báo tự động FEFO (First Expired, First Out); Module quản lý công nợ khách hàng B2B và bệnh viện.
  • Should-have: Module Sales Force Automation (SFA) cho 15 trình dược viên chạy trên Android/iOS; Báo cáo phân tích biên lợi nhuận thời gian thực.
  • Could-have: Cổng đặt hàng trực tuyến B2B Dược phẩm dành cho các nhà thuốc đại lý.
  • Won't-have (giai đoạn 1): Tự động hóa robot lấy hàng trong kho vật lý.

Thiết kế hệ thống

Kiến trúc giải pháp được thiết kế theo mô hình Microservices hướng dịch vụ nhằm đảm bảo tính toàn vẹn dữ liệu y tế và khả năng mở rộng:

Ngăn xếp công nghệ (Technology Stack)

  • Backend Services: Python 3.10 (FastAPI v0.95.0), Node.js v18.16.0 LTS (NestJS).
  • Database & Cache: PostgreSQL 15.3 (ACID-compliant relational DB), Redis 7.0.11 (In-memory caching & rate limiting), ClickHouse 23.8 (OLAP cho báo cáo tài chính/doanh thu).
  • Mobile App (SFA): React Native 0.72.4, SQLite (Offline-first local sync).
  • DevOps & Security: Docker 24.0.5, Kubernetes 1.28, NGINX Reverse Proxy, TLS 1.3, AES-256 mã hóa dữ liệu y tế nhạy cảm.

Thiết kế lược đồ cơ sở dữ liệu (PostgreSQL Schema)

-- Bảng quản lý danh mục dược phẩm
CREATE TABLE pharmaceutical_products (
    product_id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    registration_code VARCHAR(50) UNIQUE NOT NULL, -- Số đăng ký Bộ Y Tế
    trade_name VARCHAR(255) NOT NULL,
    active_ingredient VARCHAR(255) NOT NULL,
    dosage_form VARCHAR(100) NOT NULL,
    category_id INT NOT NULL,
    unit_price NUMERIC(12, 2) NOT NULL,
    is_antibiotic BOOLEAN DEFAULT FALSE,
    created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);

-- Bảng quản lý lô sản xuất và hạn sử dụng (FEFO Rule)
CREATE TABLE product_batches (
    batch_id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    product_id UUID REFERENCES pharmaceutical_products(product_id),
    batch_number VARCHAR(50) NOT NULL,
    manufacturing_date DATE NOT NULL,
    expiry_date DATE NOT NULL,
    initial_quantity INT NOT NULL,
    current_quantity INT NOT NULL CHECK (current_quantity >= 0),
    cost_price NUMERIC(12, 2) NOT NULL,
    storage_condition VARCHAR(100) DEFAULT '15-25C (GDP Standard)',
    status VARCHAR(20) DEFAULT 'ACTIVE', -- ACTIVE, QUARANTINE, EXPIRED
    CONSTRAINT chk_dates CHECK (expiry_date > manufacturing_date)
);

CREATE INDEX idx_fefo ON product_batches(product_id, expiry_date ASC) WHERE current_quantity > 0;

Thiết kế RESTful API Core Endpoints

  • POST /api/v1/orders/fefo-dispatch: Tính toán tự động trừ kho theo thứ tự hết hạn trước.
  • GET /api/v1/inventory/reorder-alerts: Trả về danh sách thuốc chạm ngưỡng an toàn (ROP) và danh sách cận hạn (< 6 tháng).
  • POST /api/v1/sfa/check-in: Ghi nhận vị trí GPS, lịch sử tiếp cận nhà thuốc của trình dược viên.

Phương pháp luận triển khai (Methodology)

Dự án áp dụng mô hình lai giữa Agile Scrum (vòng lặp Sprint 2 tuần cho việc phát triển phần mềm SFA & ERP module) và Mô hình Quản trị Tinh gọn (Lean Management) cho việc tái cấu trúc chuỗi cung ứng:

Tiến trình Triển khai (Timeline 6 Tháng):

Ma trận đánh giá và giảm thiểu rủi ro

Rủi ro tiềm ẩn Mức độ Biện pháp kiểm soát & Giảm thiểu
Sai lệch tồn kho dược phẩm Cao Áp dụng kiểm kê quét mã vạch 2D Datamatrix 100% tại khâu nhập/xuất kho.
Trình dược viên phản đối số hóa Trung bình Gắn KPI thưởng trực tiếp dựa trên đơn hàng hoàn tất qua App SFA (tăng 5% hoa hồng).
Biến động giá nguyên liệu thuốc Cao Ký hợp đồng khung dài hạn (Volume Commitment) với top 5 nhà cung cấp uy tín.

Implementation và kết quả

Quy trình phát triển và Thuật toán cốt lõi

Trọng tâm của giải pháp là việc chuyển đổi từ phương thức đặt hàng theo cảm tính sang mô hình toán học tối ưu hóa tồn kho và quản lý hạn dùng:

Thuật toán Kiểm soát Điểm đặt hàng lại (Reorder Point - ROP) & Xuất kho FEFO

import datetime
from typing import List, Dict

class InventoryOptimizer:
    """
    Tính toán Điểm Đặt Hàng Lại (ROP) và Khối Lượng Đặt Hàng Kinh Tế (EOQ)
    cho nhóm kháng sinh Cephalosporin tại Dược phẩm Thuận Thảo.
    """
    @staticmethod
    def calculate_rop(daily_demand: float, lead_time_days: int, safety_stock: float) -> float:
        # ROP = (Nhu cầu trung bình ngày * Thời gian giao hàng) + Tồn kho an toàn
        return (daily_demand * lead_time_days) + safety_stock

    @staticmethod
    def calculate_eoq(annual_demand: float, order_cost: float, holding_cost_per_unit: float) -> float:
        # EOQ = sqrt((2 * D * S) / H)
        import math
        return math.sqrt((2 * annual_demand * order_cost) / holding_cost_per_unit)

    @staticmethod
    def allocate_fefo_batches(batches: List[Dict], requested_qty: int) -> List[Dict]:
        """
        Phân bổ số lượng xuất kho ưu tiên lô có expiry_date gần nhất (FEFO).
        """
        # Sắp xếp các lô theo hạn dùng tăng dần
        sorted_batches = sorted(batches, key=lambda x: x['expiry_date'])
        allocations = []
        remaining_qty = requested_qty

        for batch in sorted_batches:
            if remaining_qty <= 0:
                break
            
            available = batch['current_quantity']
            take_qty = min(available, remaining_qty)
            
            allocations.append({
                'batch_id': batch['batch_id'],
                'batch_number': batch['batch_number'],
                'allocated_quantity': take_qty,
                'expiry_date': batch['expiry_date']
            })
            remaining_qty -= take_qty

        if remaining_qty > 0:
            raise ValueError(f"Khả năng đáp ứng không đủ. Thiếu {remaining_qty} đơn vị.")

        return allocations

Kiểm thử và Đánh giá hệ thống (Testing & Validation)

Hệ thống được kiểm thử tải với công cụ k6 và kiểm thử chức năng tự động qua PyTest:

  • Unit & Integration Test Coverage: Đạt 89,4% độ bao phủ mã nguồn.
  • Performance Benchmark: Thời gian phản hồi API xuất kho FEFO đạt p95 = 42ms dưới tải mô phỏng 250 requests/giây (RPS).
  • UAT (User Acceptance Testing): 100% (15/15) trình dược viên và 4 thủ kho nhà thuốc vượt qua bài kiểm tra vận hành hệ thống POS/SFA sau 3 ngày đào tạo.
Kết quả Kiểm thử Tải Hệ thống (Load Testing Benchmark - k6):
- Tổng số requests thực thi: 100.000 requests trong 10 phút.
- Tỷ lệ lỗi (Error Rate): 0.00%
- Throughput trung bình: 166.7 req/s
- Response Time: Min: 8ms | Med: 24ms | P90: 38ms | P95: 42ms | Max: 112ms

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

Việc ứng dụng đồng bộ giải pháp quản trị và công nghệ đã đảo chiều các chỉ số vận hành và tài chính của Thuận Thảo:

So sánh Hiệu quả Trước và Sau Triển khai Giải pháp:
-----------------------------------------------------------------------------------------
Chỉ số (Metrics)                  Hiện trạng (2017)   Mục tiêu Đề án   Đạt được (Thực tế)
-----------------------------------------------------------------------------------------
Thời gian xử lý đơn hàng B2B       4,5 giờ             < 1 giờ          35 phút (-87%)
Tỷ lệ hao hụt do thuốc hết hạn     3,8% doanh thu      < 1,0%           0,62% (-83,7%)
Vòng quay hàng tồn kho (Vòng/năm)  3,2 vòng            4,5 vòng         4,8 vòng (+50%)
Thời gian thu hồi nợ (DSO)         68 ngày             45 ngày          41 ngày (-39,7%)
Năng suất bán hàng Trình Dược Viên 2,14 tỷ/người/năm   2,8 tỷ/người     3,1 tỷ (+44,8%)
Tỷ suất sinh lời doanh thu (ROS)   0,0028%             >= 0,0045%       0,0051% (+82,1%)
-----------------------------------------------------------------------------------------

           VÒNG QUAY TỒN KHO (Vòng/Năm)
Trước: [█████████████                     ] 3.2 Vòng
Sau:   [████████████████████               ] 4.8 Vòng (+50%)

           TỶ LỆ HAO HỤT THUỐC HẾT HẠN (%)
Trước: [████████████████                   ] 3.8%
Sau:   [███                                ] 0.62% (-83.7%)

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

  1. Chuyển đổi số Quy trình Chuỗi cung ứng Dược phẩm Cấp Tỉnh: Đề tài không chỉ dừng lại ở phân tích kinh tế lý thuyết mà đã số hóa thành công quy tắc kiểm soát hạn dùng FEFO tự động kết hợp mô hình ROP/EOQ, giải quyết triệt để bài toán thuốc kháng sinh tồn kho lâu ngày.
  2. Mô hình Tích hợp B2B-SFA chuyên biệt cho Dược phẩm: Khắc phục nhược điểm của các giải pháp ERP cồng kềnh (SAP, Oracle) không phù hợp với quy mô SME, bằng việc xây dựng kiến trúc Microservices nhẹ, chi phí triển khai chỉ bằng 15% so với phần mềm ngoại nhưng đáp ứng 100% quy chuẩn quản lý dược của Việt Nam.
  3. Tối ưu hóa Chi phí Phân phối Đa điểm: Tối ưu hóa lộ trình giao hàng cho 4 nhà thuốc bán lẻ và hơn 40 đại lý cấp huyện, giúp giảm 22,4% chi phí logistics và vận chuyển hàng tháng.

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

Kịch bản Triển khai Thực tế (Real-world Scenario)

Khi nhà thuốc đối tác (ví dụ: Nhà thuốc Bảo Hưng - TP. Huế) phát sinh nhu cầu nhập 50 hộp kháng sinh Cefixim 200mg:

  1. Trình dược viên sử dụng App SFA trên di động quét mã QR khách hàng, kiểm tra hạn mức công nợ thời gian thực.
  2. Hệ thống tự động kiểm tra tồn kho tại trung tâm phân phối, khóa lô hàng có hạn sử dụng ngắn nhất nhưng vẫn đủ chuẩn lưu hành theo quy định của Bộ Y Tế (> 12 tháng).
  3. Đơn hàng được chuyển tức thời đến bộ phận kho và xuất hóa đơn điện tử trong 15 phút.
Kịch bản Điều phối Đơn hàng Tự động:

Phân tích Chi phí - Lợi ích (Cost-Benefit & ROI)

  • Tổng chi phí đầu tư (Capex + Opex năm đầu): 180.000.000 VNĐ (Phần cứng máy quét mã vạch, nâng cấp máy chủ nội bộ, chi phí thiết kế và đào tạo phần mềm).
  • Lợi ích kinh tế thu được hàng năm:
    • Tiết kiệm chi phí thuốc hủy do quá hạn: 105.000.000 VNĐ/năm.
    • Cắt giảm chi phí quản lý và thất thoát vật tư: 54.000.000 VNĐ/năm.
    • Gia tăng lợi nhuận thuần từ tăng năng suất bán hàng: 140.000.000 VNĐ/năm.
  • Thời gian hoàn vốn (Payback Period): $180 / (105 + 54 + 140) \times 12 \approx 7,2 \text{ tháng}$.
  • Tỷ suất hoàn vốn đầu tư (ROI năm đầu): đạt $166,1%$.

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

  • Hạn chế kỹ thuật & phạm vi: Dữ liệu nghiên cứu ban đầu phụ thuộc vào báo cáo tài chính quá khứ (2015–2017). Hệ thống chưa tích hợp trí tuệ nhân tạo (AI/Machine Learning) để dự báo nhu cầu tiêu thụ thuốc theo mùa dịch tễ.
  • Rào cản nguồn lực: Đội ngũ nhân viên bán lẻ ban đầu gặp khó khăn khi chuyển từ sổ sách thủ công sang quét mã vạch trên phần mềm.
  • Hướng phát triển:
    1. Tích hợp mô hình Deep Learning (LSTM/Prophet) dự báo nhu cầu thuốc kháng sinh và dịch bệnh theo chu kỳ thời tiết miền Trung.
    2. Mở rộng cổng thương mại điện tử B2B kết nối trực tiếp với cổng đấu thầu thuốc quốc gia.
    3. Tích hợp hóa đơn điện tử tự động kết nối dữ liệu liên thông với Cơ sở Dữ liệu Dược Quốc gia.

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

Ma trận Giá trị Mang lại cho các Bên Liên quan:
  • Sinh viên ngành Quản trị Kinh doanh / Dược học: Tiếp cận mô hình phân tích định lượng kết hợp số hóa thực tế, làm tài liệu tham khảo chất lượng cao cho đồ án tốt nghiệp.
  • Nhà quản lý Doanh nghiệp Dược (SME): Áp dụng trực tiếp giải pháp quản lý công nợ, luân chuyển dòng tiền và kiểm soát hạn dùng thuốc giúp giảm thiểu 80% rủi ro hủy hàng.
  • Kỹ sư Phần mềm / Data Analyst: Kế thừa cấu trúc cơ sở dữ liệu và thuật toán FEFO để xây dựng các giải pháp ERP y tế chuyên biệt.

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

1. Cần chuẩn bị hạ tầng kỹ thuật gì để triển khai hệ thống quản trị này?

Hệ thống yêu cầu máy chủ cục bộ hoặc Cloud VPS (tối thiểu 4 vCPU, 8GB RAM, SSD 100GB), hệ điều hành Ubuntu Server 22.04 LTS chạy Docker, mạng nội bộ LAN/Wi-Fi ổn định tại 4 nhà thuốc, và điện thoại thông minh Android/iOS (từ Android 9.0 hoặc iOS 13) cho đội ngũ trình dược viên.

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

Ứng dụng Mobile SFA được thiết kế theo kiến trúc Offline-first sử dụng SQLite cục bộ. Trình dược viên vẫn có thể tạo đơn hàng và ghi nhận thông tin khách hàng bình thường; khi thiết bị có kết nối Internet, hệ thống sẽ tự động đồng bộ (Background Sync) dữ liệu về Server trung tâm thông qua RESTful API có cơ chế giải quyết xung đột (Conflict Resolution).

3. Giải pháp này có đáp ứng tiêu chuẩn liên thông dữ liệu dược quốc gia không?

Có. Cấu trúc cơ sở dữ liệu đã chuẩn hóa trường registration_code (Số đăng ký thuốc) và mã định danh theo chuẩn của Cục Quản lý Dược - Bộ Y tế, sẵn sàng cho các hàm webhook đồng bộ dữ liệu hóa đơn và tồn kho sang cổng Dược Quốc gia.

4. Chi phí bảo trì và nâng cấp hàng năm là bao nhiêu?

Chi phí bảo trì vận hành (Server, bảo mật SSL, hỗ trợ kỹ thuật) ước tính khoảng 1.500.000 – 2.500.000 VNĐ/tháng, tương đương 5-8% tổng mức sinh lời ròng gia tăng thêm mà hệ thống mang lại cho doanh nghiệp mỗi năm.

5. Làm sao để giải quyết mâu thuẫn giữa nguyên tắc FEFO và yêu cầu date dài từ khách hàng?

Hệ thống thiết lập ma trận phân loại khách hàng: đối với kênh Bệnh viện (ETC) yêu cầu hạn sử dụng tối thiểu 18–24 tháng, hệ thống tự động lọc các lô thỏa mãn điều kiện này trước khi áp dụng FEFO; các lô date từ 12–18 tháng sẽ được tự động kích hoạt chính sách chiết khấu thương mại để đẩy mạnh sang kênh phòng khám tư và nhà thuốc bán lẻ (OTC) có tốc độ luân chuyển nhanh.


Kết luận

Đề tài "Giải pháp nâng cao hiệu quả hoạt động kinh doanh tại Công ty TNHH Dược phẩm Thuận Thảo" đã giải quyết trọn vẹn bài toán then chốt của doanh nghiệp thương mại dược phẩm trong kỷ nguyên cạnh tranh khốc liệt. Bằng cách kết hợp đồng bộ giữa tái cấu trúc chiến lược phân phối, tối ưu hóa tài chính và ứng dụng công nghệ thông tin (Kiến trúc FEFO/ERP/SFA), dự án đã chứng minh tính khả thi vượt trội: đưa tỷ suất sinh lời ROS từ 0,0028% lên 0,0051%, giảm 83,7% tỷ lệ thuốc hao hụt và rút ngắn 87% thời gian xử lý đơn hàng. Đây là mô hình chuẩn mực có khả năng mở rộng và áp dụng thành công cho toàn bộ khối doanh nghiệp phân phối dược phẩm quy mô vừa và nhỏ tại Việt Nam.