Chức năng giám định tự động cần dễ triển khai, dễ sử dụng, dễ
dàng bảo trì sửa chữa khi có sự cố. Cũng như có khả năng chịu
lỗi cao, trong trường hợp các thành phần hệ thống gặp sự cố,
không hoạt động một thời gian khi các thành phần hoạt động trở
lại thì cần chức năng vẫn hoạt động trở lại bình thường. Riêng
với chức năng giám định hồ sơ thì trung bình hiện tại có khoảng
15 triệu hồ sơ được gửi trong một tháng. Nghĩa là trung bình
một ngày có khoảng 500 nghìn hồ sơ khám chữa bệnh. Một phút
khoảng 350 hồ sơ. Nhưng trong những khoảng thời gian cao
điểm nhất định thì lượng hồ sơ có thể gửi cao hơn rất nhiều. Đây
sẽ là bài toán phức tạp trong độ trễ của việc giám định sau khi
gửi hồ sơ giám định.
Từ những yêu cầu về tính độc lập, tự trị, khả năng phục hồi khi
xảy ra lỗi. Hiện tại chức năng chưa cần sử dụng lại nhưng có thể
trong tương lai sẽ cần sử dụng lại dịch vụ để thực hiện giám định
tự động công khai. Vì vậy từ những tính chất, yêu cầu của chức
năng giám định tự động mà ta sẽ lựa chọn mô hình kiến trúc
SOA với phương pháp top-down (xuất phát từ những yêu cầu
nghiệp vụ để xác định các dịch vụ) để xây dựng giám định tự
động.
                
              
                                            
                                
            
 
            
                 25 trang
25 trang | 
Chia sẻ: yenxoi77 | Lượt xem: 921 | Lượt tải: 1 
              
            Bạn đang xem trước 20 trang tài liệu Tóm tắt Luận văn Phân tích và xây dựng chức năng giám định tự động trong hệ thống giám định bảo hiểm xã hội, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1 
ĐẠI HỌC QUỐC GIA HÀ NỘI 
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ 
PHAN VĂN NAM 
PHÂN TÍCH VÀ XÂY DỰNG 
 CHỨC NĂNG GIÁM ĐỊNH TỰ ĐỘNG 
TRONG HỆ THỐNG GIÁM ĐỊNH BẢO HIỂM XÃ HỘI 
 Ngành: Công nghệ thông tin 
 Chuyên ngành: Kỹ thuật phần mềm 
 Mã số: 60.48.01.03 
TÓM TẮT LUẬN VĂN THẠC SĨ CÔNG NGHỆ 
THÔNG TIN 
Hà Nội -2017 
1 
MỞ ĐẦU 
1. Bài toán 
Hiện nay Bảo hiểm y tế đóng vai trò rất quan trọng trong việc 
an sinh xã hội, tính đến nay cả nước đã có hơn 80% dân số tham gia 
bảo hiểm y tế. Cùng theo quá trình phát triển của đất nước thì càng 
ngày lượng khám chữa bệnh một ngày tăng, quy trình thanh toán 
bảo hiểm theo hồ sơ giấy không thể đáp ứng được nhu cầu, vì vậy 
nhu cầu thanh quyết toán điện tử chi phí khám chữa bệnh là cấp 
thiết. Từ nhu cầu cấp thiết đó mà hệ thống Giám định bảo hiểm xã 
hội được hình thành để đáp ứng quá trình thanh quyết toán chi phí 
khám chữa bệnh bảo hiểm y tế, phát hiện những sai phạm, tránh 
trục lợi trong quá trình thanh quyết toán bảo hiểm y tế. Nhưng với 
lượng lượt khám chữa bệnh khổng lồ, để nhằm hỗ trợ, phục vụ các 
giám định viên trong quá trình giám định, việc giám định tự động 
qua các quy tắc có sẵn là điều tất yếu. Đề tài “Phân tích và xây 
dựng chức năng giám định tự động trong hệ thống giám định 
bảo hiểm xã hội” sẽ tìm hiểu cơ sở lý thuyết kiến trúc hướng dịch 
vụ SOA và xây dựng chức năng giám định tự động phát hiện các 
sai phạm trong quá trình giám định, hỗ trợ đắc lực cho các giám 
định viên phát hiện sai phạm, để việc thanh quyết toán chi phí khám 
chữa bệnh bảo hiểm y tế được rõ ràng, minh bạch tránh trục lợi. 
2. Mục tiêu 
Tìm hiểu cơ sở lý thuyết về kiến trúc hướng dịch vụ SOA và áp 
dụng xây dựng chức năng giám định tự động cùng bộ quy tắc giám 
2 
định để phát hiện sai phạm trong quá trình thanh quyết toán hồ sơ 
khám chữa bệnh. 
3. Phương pháp nghiên cứu 
Tìm hiểu cơ sở lý thuyết về kiến trúc hướng dịch vụ SOA. Các 
bước xây dựng một ứng dụng dựa trên kiến trúc hướng dịch vụ. 
Áp dụng các bước xây dựng một ứng dụng dựa trên kiến trúc hướng 
dịch vụ, cụ thể sẽ là phương pháp top-down để xây dựng chức năng 
giám định tự động gồm bộ quy tắc giám định, phân tích xây dựng 
các bộ service thực hiện quét hồ sơ, tài liệu cần được giám định. 
Chức năng sẽ gồm 2 bộ service: Giám định hồ sơ và giám định danh 
mục. 
Giám định hồ sơ sẽ gồm bộ 3 service: 
- GetDataKB: có nhiệm vụ quét các hồ sơ cần giám định và 
đẩy lên một queue trên RabbitMQ 
- ProcessDataKB: có nhiệm vụ lấy hồ sơ trên queue do service 
GetDataKB đẩy lên để thực hiện giám định, sau khi giám 
định sẽ tiến hành đẩy vào một queue trên RabbitMQ 
- SendDataKB: có nhiệm vụ lấy hồ sơ trên queue do service 
ProcessDataKB đẩy lên để thực hiện lưu kết quả vào 
Database. 
Giám định danh mục sẽ gồm bộ 3 service: 
- GetData: có nhiệm vụ quét các danh mục cần giám định và 
đẩy lên một queue trên RabbitMQ 
3 
- ProcessData: có nhiệm vụ lấy danh mục cần giám định trên 
queue do service GetData đẩy lên, sau đó thực hiện giám 
định và đẩy lên một queue trên RabbitMQ 
- SendData: có nhiệm vụ lấy danh mục trên queue do service 
ProcessData đẩy lên để thực hiện lưu kết quả vào Database. 
 Áp dụng các công nghệ như RabbitMQ để giao tiếp giữa các bộ 
service. 
4. Kết quả đạt được 
Luận văn đã tìm hiểu về kiến trúc hướng dịch vụ SOA, phương 
pháp xây dựng một ứng dụng dựa trên kiến trúc hướng dịch vụ. Áp 
dụng vào bài toán giám định tự động. 
Luận văn đã xây dựng thành công: 
- Bộ service giám định hồ sơ: GetDataKB, ProcessDataKB, 
SendDataKB 
- Bộ service giám định danh mục: GetData, ProcessData, 
SendData 
- Bộ quy tắc hồ sơ: Quy tắc thẻ, quy tắc mức hưởng, quy tắc 
thuốc, quy tắc dịch vụ kỹ thuật, quy tắc vật tư y tế và các quy 
tắc khác về máu, thanh toán ngày giường 
- Bộ quy tắc danh mục: Quy tắc thuốc thầu tỉnh, vật tư thầu 
tỉnh, thuốc bệnh viện, dịch vụ kỹ thuật bệnh viện, vật tư y tế 
bệnh viện. 
Hiện tại trên toàn quốc có khoảng hơn 14 nghìn cơ sở khám chữa 
bệnh, với trung bình một tháng khoảng 15 triệu hồ sơ khám chữa 
bệnh. Bộ service giám định hồ sơ có thể xử lý được khoảng trên 40 
4 
hồ sơ/ giây, đóng vai trò đắc lực hỗ trợ giám định viên phát hiện xử 
lý sai phạm trong quá trình thanh quyết toán bảo hiểm y tế, giúp tiết 
kiệm ngân sách hàng năm của nhà nước. 
5. Bố cục của luận văn 
Luận văn được trình bày thành 4 chương chính: 
Chương 1: Giới thiệu về bảo hiểm y tế và quy trình giám định 
bảo hiểm y tế 
Chương 2: Kiến trúc hướng dịch vụ SOA 
Chương 3: Phân tích và xây dựng chức năng giám định tự động 
Chương 4: Cài đặt, triển khai và thực nghiệm giám định tự động 
CHƯƠNG 1: GIỚI THIỆU BẢO HIỂM Y TẾ VÀ QUY 
TRÌNH GIÁM ĐỊNH BẢO HIỂM Y TẾ 
1.1. Quá trình hình thành Bảo hiểm y tế ở Việt Nam 
Từ trước những năm 1985, Việt Nam áp dụng mô hình bảo hiểm 
mà ngân sách nhà nước cấp cho các bệnh viện để thực hiện khám 
chữa bệnh để thực hiện khám chữa bệnh miễn phí cho nhân dân. 
Sau khi thực hiện chính sách đổi mới, Việt Nam dần chuyển đổi từ 
bước từ bao cấp cho các bệnh viện sang cơ chế BHYT. 
1.2. Vận hành Bảo hiểm y tế ở Việt Nam 
Sau hơn 20 năm thực hiện BHYT, đặc biệt sau 4 năm thực hiện 
Luật BHYT, Việt Nam đã đạt gần 70% dân số tham gia BHYT. 
5 
1.2.1. Về độ bao phủ Bảo hiểm y tế ở Việt Nam 
Việc đạt tỷ lệ bao phủ BHYT ở mức được gần 70% là cố gắng 
lớn của Nhà nước và mỗi người dân. Dự báo năm 2020 đạt 80% 
dân số có BHYT. 
Nhà nước tiếp tục thực hiện hỗ trợ nhân dân tham gia BHYT, nhất 
là gia đình chính sách, đối tượng khó khăn. 
1.2.2. Thực hiện nguyên lý chia sẻ của BHYT 
Nguyên lý chia sẻ của BHYT là: Đóng theo lương/thu nhập, 
hưởng theo bệnh. 
1.2.3. Về quyền lợi bệnh nhân, hiệu quả BHYT 
Với điều kiện Kinh Tế- Xã Hội và mức thu nhập 1750 
USD/người(2013), quyền lợi hưởng BHYT khá lớn, trên cả mức 
dịch vụ y tế cơ bản. 
1.2.4. Về quản lý quỹ Bảo hiểm y tế 
Việt Nam đã gộp chung cả BHYT và BHXH vào một đơn vị do 
BHXH Việt Nam điều hành, việc này có thể tiết kiệm được một số 
biên chế, trụ sở, và có thể hỗ trợ giữa hai quỹ 
1.3. Quy trình giám định bảo hiểm y tế tại cơ quan bảo hiểm 
xã hội 
Phòng giám định sẽ công bố danh mục thuốc, dịch vụ, vật tư 
được dùng chung cho các bệnh viện. Hằng năm khi có kết quả đấu 
thầu, hoặc có sự thay đổi danh mục, các cơ sở khám chữa bệnh tiến 
hành gửi dữ liệu danh mục cũng như hằng ngày, khi có phát sinh 
hồ sơ khám chữa bệnh cơ sở sẽ gửi hồ sơ khám chữa bệnh lên để 
thực hiện giám định. 
6 
Hệ thống sẽ kiểm tra tính hợp lệ của dữ liệu cơ sở khám chữa bệnh 
gửi lên, nếu không hợp lệ sẽ tiến hành trả lại dữ liệu về cơ sở khám 
chữa bệnh, để cơ sở thực hiện sửa chữa và gửi lại. 
Thực hiện giám định danh mục thuốc, vật tư y tế: Kiểm tra đối chiếu 
tên thuốc, hoạt chất... 
Thực hiện giám định giá thuốc, vật tư y tế: Kiểm tra đối chiếu giá 
thanh toán với kết quả thầu. 
Thực hiện giám định giá dịch vụ kỹ thuật: kiểm tra xác định tính 
pháp lý của danh mục. Kiểm tra đối chiếu bảng giá DVKT so với 
quy định của BYT. 
Sau khi thực hiện giám định nếu không có yêu cầu thẩm định lại 
thì sẽ tiến hành trả kết quả giám định cho cơ sở khám chữa bệnh. 
1.4. Kết luận 
CHƯƠNG 2: KIẾN TRÚC HƯỚNG DỊCH VỤ (SERVICE -
ORIENTED ARCHITECTURE) 
 2.1. Dịch vụ 
Dịch vụ (service) về mặt định nghĩa, dịch vụ là một hệ thống 
có khả năng nhận một hay nhiều yêu cầu xử lý và sau đó đáp ứng 
lại bằng cách trả về một hay nhiều kết quả. 
2.2. Các đặc điểm chính của dịch vụ 
2.2.1. Có ranh giới rõ ràng 
Các dịch vụ thực hiện quá trình tương tác chủ yếu thông qua 
thành phần giao tiếp. 
7 
2.2.2. Tính tự trị 
Các dịch vụ cần phải được triển khai và hoạt động như những 
thực thể độc lập mà không lệ thuộc vào một dịch vụ khác. 
2.2.3. Chia sẻ lược đồ 
 Các dịch vụ nên cung cấp thành phần giao tiếp của nó 
(interface) ra bên ngoài. 
2.2.4. Tính tương thích của dịch vụ dựa trên chính sách 
 Một dịch vụ khi muốn tương tác với một dịch vụ khác thì 
phải thỏa mãn các chính sách và yêu cầu của dịch vụ đó như mã 
hóa, bảo mật... 
2.3. Kiến trúc hướng dịch vụ 
Kiến trúc hướng dịch vụ (Service – oriented architecture) là 
một hướng tiếp cận với việc thiết kế và tích hợp các phần mềm, 
chức năng, hệ thống theo dạng module. 
2.4. Các tính chất của một hệ thống SOA 
2.4.1. Kết nối lỏng lẻo 
 Vấn đề kết nối thể hiện một số ràng buộc giữa các module 
với nhau. 
2.4.2. Sử dụng lại dịch vụ 
 Bởi vì các dịch vụ được cung cấp lên trên mạng và được 
đăng ký ở nơi lưu trữ dịch vụ nào đó nên chúng dễ dàng được tìm 
thấy và tái sử dụng. 
8 
2.4.3. Sử dụng dịch vụ bất đồng bộ 
 Trong phương thức triệu gọi dịch vụ bất đồng bộ, bên gọi 
gửi một thông điệp với đầy đủ thông tin ngữ cảnh tới bên nhận. Bên 
nhận xử lí thông tin và trả kết quả về một kênh thông điệp, bên gọi 
không phải chờ đến khi thông điệp được xử lí xong. 
2.4.4. Quản lý các chính sách 
 Khi sử dụng chia sẻ trên mạng, tùy theo mỗi ứng dụng sẽ có 
một luật kết hợp riêng gọi là các chính sách. Các chính sách cần 
được quản lý các áp dụng cho mỗi dịch vụ cả khi thiết kế lẫn trong 
thời gian thực thi. 
2.4.5. Khả năng cộng tác 
 Kiếm trúc hướng dịch vụ hướng nhấn mạnh đến khả năng 
cộng tác, khả năng mà các hệ thống có thể giao tiếp với nhau trên 
nhiều nền tảng và ngôn ngữ khác nhau. 
2.4.6. Tự dò tìm và ràng buộc động 
SOA hỗ trợ khái niệm truy tìm dịch vụ. Một người sử dụng 
cần đến một dịch vụ nào đó có thể tìm kiếm dịch vụ dựa trên một 
số tiêu chuẩn khi cần. Người sử dụng chỉ cần hỏi một dịch vụ lưu 
trữ về dịch vụ nào thỏa mãn yêu cầu tìm kiếm. 
2.4.7. Khả năng tự phục hồi 
Một hệ thống tự phục hồi là một hệ thống có khả năng tự hồi 
phục sau khi bị lỗi mà không cần sự can thiệp của con người. 
9 
2.5. Kiến trúc phân tầng chi tiết SOA 
2.5.1. Tầng kết nối 
Mục đích của tầng kết nối là kết nối đến các ứng dụng 
enterprise hoặc tài nguyên bên dưới và cung cấp chúng thành những 
dịch vụ. 
2.5.2. Tầng orchestration 
Tầng orchestration chứa các thành phần vừa đóng vai trò là 
những dịch vụ vừa là những dịch vụ cung cấp. 
2.5.3. Tầng ứng dụng tổng hợp 
Dữ liệu truyền qua lại giữa những dịch vụ cuối cùng cũng 
định hướng đến người sử dụng theo nhiều giao diện khác nhau. 
2.6. Các bước triển khai một ứng dụng theo mô hình SOA 
 Hai phương pháp cơ bản để xác định các dịch vụ là: phương 
pháp top-down (xuất phát từ yêu cầu nghiệp vụ) và phương pháp 
bottom-up (xuất phát từ thực trạng của hệ thống hiện có). 
Trong phương pháp top-down các bước chính để xây dựng hệ thống 
dựa trên SOA đó là: 
 Phân rã domain 
 Xây dựng mô hình Goal-service 
 Phân tích hệ thống con 
 Đưa ra các dịch 
 Đặc tả thành phần 
 Cấu trúc thành phần và dịch vụ 
 Lựa chọn công nghệ thực hiện 
10 
2.7. Kết luận 
CHƯƠNG 3: PHÂN TÍCH VÀ XÂY DỰNG CHỨC NĂNG 
GIÁM ĐỊNH TỰ ĐỘNG 
3.1. Giới thiệu hệ thống Giám định bảo hiểm và bài toán giám 
định tự động 
3.1.1. Giới thiệu hệ thống giám định 
Với những yêu cầu đặt ra phần mềm giám định BHYT phải đáp 
ứng các yêu cầu: 
- Quản lý các danh mục, thông tin 
- Tiếp nhận hồ sơ yêu cầu thanh toán 
- Giám định tự động 
- Tạo quy tắc giám định 
- Thống kê, phân tích dữ liệu 
- Giám định theo tỷ lệ 
Giám định tự động: Giám định danh mục, giá thuốc, hóa chất, vật 
tư y tế, dịch vụ kỹ thuật. Giám định tự động dữ liệu đề nghị thanh 
toán từ cơ sở khám chữa bệnh. 
3.1.2. Bài toán giám định tự động 
Với lượng hồ sơ khám chữa bệnh ngày càng tăng, cũng như mỗi 
cơ sở khám chữa bệnh có những loại thuốc khác nhau, giá thành, 
thành phẩm khác nhau. Việc giám định rất khó khăn. Vì vậy cần 
xây dựng một chức năng có khả năng chạy độc lập với hệ thống 
giám định, có khả năng tự trị, hồi phục khi xảy ra lỗi để thực hiện 
nghiệp vụ chạy qua các quy tắc giám định, hỗ trợ các giám định 
11 
viên phát hiện các sai phạm một cách hiệu quả trong quá trình giám 
định. 
Chức năng giám định tự động cần dễ triển khai, dễ sử dụng, dễ 
dàng bảo trì sửa chữa khi có sự cố. Cũng như có khả năng chịu 
lỗi cao, trong trường hợp các thành phần hệ thống gặp sự cố, 
không hoạt động một thời gian khi các thành phần hoạt động trở 
lại thì cần chức năng vẫn hoạt động trở lại bình thường. Riêng 
với chức năng giám định hồ sơ thì trung bình hiện tại có khoảng 
15 triệu hồ sơ được gửi trong một tháng. Nghĩa là trung bình 
một ngày có khoảng 500 nghìn hồ sơ khám chữa bệnh. Một phút 
khoảng 350 hồ sơ. Nhưng trong những khoảng thời gian cao 
điểm nhất định thì lượng hồ sơ có thể gửi cao hơn rất nhiều. Đây 
sẽ là bài toán phức tạp trong độ trễ của việc giám định sau khi 
gửi hồ sơ giám định. 
Từ những yêu cầu về tính độc lập, tự trị, khả năng phục hồi khi 
xảy ra lỗi. Hiện tại chức năng chưa cần sử dụng lại nhưng có thể 
trong tương lai sẽ cần sử dụng lại dịch vụ để thực hiện giám định 
tự động công khai. Vì vậy từ những tính chất, yêu cầu của chức 
năng giám định tự động mà ta sẽ lựa chọn mô hình kiến trúc 
SOA với phương pháp top-down (xuất phát từ những yêu cầu 
nghiệp vụ để xác định các dịch vụ) để xây dựng giám định tự 
động. 
12 
3.2. Phân tích và xây dựng chức năng giám định tự động 
3.2.1. Giám định hồ sơ 
3.2.2. Phân rã domain 
Với nghiệp vụ cần thực hiện lấy những hồ sơ mới được gửi lên 
rồi thực hiện giám định. Giám định xong cập nhật kết quả giám định 
vào cơ sở dữ liệu và tính toán các trường để đẩy dữ liệu lên Solr. 
Mô hình usecase: 
 Lấy hồ sơ khám chữa bệnh mới 
 Xử lý giám định 
 Cập nhật kết quả giám định 
 Tính toán và đẩy dữ liệu lên Solr 
3.2.3. Xây dựng mô hình Goal-service 
Trong giai đoạn phân rã domain ta đã xác định được các usecase 
nghiệp vụ, và đây sẽ là cơ sở chính để ta xác định các dịch vụ. 
Có nhiều cách thể hiện mô hình goal-service, ở đây ta sẽ sử dụng 
một cách đơn giản đó là dùng danh sách phân cấp để biểu diễn các 
goal, sub-goal, dịch vụ. 
 Giám định hồ sơ 
o Lấy hồ sơ KCB mới 
 Kết nối cơ sở dữ liệu và lấy các bản ghi theo 
trạng thái mới 
 GetXml19324() 
 Gửi thông điệp tới các dịch vụ khác 
 SendMessage(Message) 
13 
 Xử lý và ghi log khi có sự cố 
 Xử lý(exeption) 
 Ghi log(exeption) 
o Xử lý giám định 
 Nhận thông điệp từ dịch vụ khác 
 GetMessage() 
 Giải mã thông điệp 
 Giả mã(Message) 
 Kết nối cơ sở dữ liệu 
 ConnectDB() 
 Thực hiện giám định 
 Lấy các quy tắc giám định đang bật 
o GetDmFunction(xml.NgayThan
hToan) 
 Thực hiện chạy các quy tắc giám định 
o Run(xml19324) 
 Gửi thông điệp cho dịch vụ khác 
 SendMessage(Message) 
 Xử lý và ghi log khi có sự cố 
 Xử lý() 
 Ghi log() 
o Cập nhật kết quả giám định 
 Nhận thông điệp từ dịch vụ khác 
 GetMesssage() 
 Giải mã thông điệp 
 Giải mã(Message) 
14 
 Kết nối cơ sở dữ liệu và cập nhật kết quả 
 ConnectDB() 
 UpdateSauGD(Xml19324) 
 Xử lý và ghi log khi có sự cố 
 Xử lý(exeption) 
 Ghi log(exeption) 
o Tính toán và đẩy dữ liệu lên Solr 
 Tính toán theo yêu cầu báo cáo 
 Tinhtoan(ref xml19324) 
 Chuyển đổi dữ liệu về schema của Solr 
 Convert(xml19324) 
 Đẩy dữ liệu lên Solr 
 SendSolr(Xml19324_Report) 
 Xử lý và ghi log khi có sự cố 
 Xử lý(exeption) 
 Ghi log(exeption) 
3.2.4. Phân tích hệ thống con 
Trong chức năng giám định hồ sơ thì sẽ gồm các hệ thống con: 
Lấy hồ sơ KCB mới, Xử lý giám định, Cập nhật kết quả giám định, 
Tính toán và đẩy dữ liệu lên Solr. 
3.2.5. Đưa ra các dịch vụ 
Như vậy với các hệ thống con trong chức năng giám định hồ sơ: 
Lấy hồ sơ KCB mới, xử lý giám định, cập nhật kết quả giám định, 
tính toán và đẩy dữ liệu lên Solr. Ta sẽ đặt tên cho các hệ thống con 
để có thể dễ dàng sử dụng, và đưa các dịch vụ vào các thành phần. 
15 
GetDataKB: Lấy hồ sơ KCB mới sẽ gồm các dịch vụ 
 GetXml19324(): Lấy những hồ sơ KCB theo trạng thái mới 
được gửi lên 
 SendMessage(Message): Gửi thông điệp cho thành phần 
khác với thông điệp dạng đối tượng Message 
 Xử lý(exeption): Xử lý khi xảy ra sự cố 
 Ghilog(exeption): Ghi log khi xảy ra sự cố 
ProcessDataKB: Xử lý giám định sẽ gồm các dịch vụ 
 GetMesssage(): Nhận thông điệp từ dịch vụ khác 
 Giải mã(Message): Giải mã thông điệp 
 ConnectDB(): Kết nối cơ sở dữ liệu 
 GetDmFunction(xml.NgayThanhToan): Lấy những quy tắc 
đang bật theo ngày thanh toán của hồ sơ 
 Run(Xml19324): Thực hiện chạy các quy tắc giám định hồ 
sơ 
 SendMessage(Messgae): Gửi thông điệp tới dịch vụ khác 
 Xử lý(exeption): Xử lý khi xảy ra sự cố 
 Ghilog(exeption): Ghi log khi xảy ra sự cố 
SendDataKB: Cập nhật kết quả giám định và tính toán rồi đẩy 
dữ liệu lên Solr sẽ gồm các dịch vụ 
 GetMesssage(): Nhận thông điệp từ dịch vụ khác 
 Giải mã(Message): Giải mã thông điệp 
 ConnectDB(): Kết nối cơ sở dữ liệu 
16 
 UpdateSGD(Xml19324): Cập nhật kết quả sau giám định 
 Tinhtoan(ref Xml19324): Tính toán theo yêu cầu báo cáo 
 Convert(Xml19324): Chuyển đổi về schema của Solr 
 SendSolr(Xml19324_report): Đẩy dữ liệu lên Solr 
 Xử lý(exeption): Xử lý khi xảy ra sự cố 
 Ghilog(exeption): Ghi log khi xảy ra sự cố 
3.2.6. Đặc tả thành phần 
Với các dịch vụ GetDataKB, ProcessDataKB, SendDataKB sẽ 
gửi thông điệp với nhau qua một hệ thống MessageBroker. 
3.2.7. Cấu trúc thành phần và dịch vụ 
Tiến hành đưa các thành phần và dịch vụ vào các tầng của SOA 
3.2.8. Lựa chọn công nghệ thực hiện 
Với việc xây dựng các bộ dịch vụ: GetDataKB, ProcessDataKB, 
SendDataKB sẽ triển khai trên cùng một dải mạng WAN, chạy tự 
động, độc lập trên windown server, ta sẽ xây dựng các dịch vụ trên 
dưới dạng Winservice hoặc Application. Nhưng để triển khai cũng 
như quản lý một cách dễ dàng, tăng giảm số luồng, số dịch vụ khi 
triển khai thì ta sẽ chọn Application. 
Vấn đề để các dịch vụ trao đổi thông điệp với nhau, ta cần sử dụng 
một hệ thống chuyển giao thông điệp (Message Broker). Một trong 
những hệ thống message broker phổ biến cũng như dễ sử dụng hiện 
nay là RabbitMQ. Cơ sở dữ liệu: Oracle 11g 64bit. Ngôn ngữ lập 
trình: C# trên môi trường .Net 4.0, công cụ lập trình Visual Studio 
15. Các thư viện client sử dụng sẽ được trình bày chi tiết hơn ở 
chương 4. 
17 
3.2.9. Các quy tắc hồ sơ 
o Quy tắc thẻ 
o Quy tắc mức hưởng 
o Quy tắc thuốc 
o Quy tắc dịch vụ 
o Quy tắc vật tư y tế 
o Quy tắc khác 
3.2.2. Giám định danh mục 
3.2.2.1. Phân rã domain 
Với nghiệp vụ cần thực hiện lấy những danh mục mới được gửi 
lên rồi thực hiện giám định. Giám định xong cập nhật kết quả giám 
định vào cơ sở dữ liệu. 
3.2.2.2. Xây dựng mô hình goal-service 
Trong giai đoạn phân rã domain ta đã xác định được các usecase 
nghiệp vụ, và đây sẽ là cơ sở chính để ta xác định các dịch vụ. 
 Giám định danh mục 
o Lấy danh mục mới được gửi 
 Kết nối cơ sở cơ sở dữ liệu để lấy các danh 
mục theo trạng thái mới gửi 
 GetListDm() 
 Gửi thông điệp tới dịch vụ khác 
 SendMessage(Message) 
 Xử lý và ghi log khi có sự cố 
 Xử lý(exeption) 
 Ghi log(exeption) 
o Xử lý giám định 
18 
 Nhận thông điệp từ dịch vụ khác 
 GetMessage() 
 Giải mã thông điệp 
 Giả mã(Message) 
 Kết nối cơ sở dữ liệu 
 ConnectDB() 
 Thực hiện giám định 
 Thực hiện ánh xạ danh mục 
o MappingDm(objectDm) 
 Lấy các quy tắc giám định đang bật 
o GetDmFunctionDm() 
 Thực hiện chạy các quy tắc giám định 
o Run(objectDm) 
 Gửi thông điệp cho dịch vụ khác 
 SendMessage(Message) 
 Xử lý và ghi log khi có sự cố 
 Xử lý() 
 Ghi log() 
o Cập nhật kết quả 
 Nhận thông điệp từ dịch vụ khác 
 GetMesssage() 
 Giải mã thông điệp 
 Giải mã(Message) 
 Kết nối cơ sở dữ liệu và cập nhật kết quả 
 ConnectDB() 
 UpdateSauGD(ObjectDm) 
19 
 Xử lý và ghi log khi có sự cố 
 Xử lý(exeption) 
 Ghi log(exeption) 
3.2.2.3. Phân tích hệ thống con 
Các usecase nghiệp vụ sẽ là cơ sở thiết kế các usecase hệ thống. 
Trong chức năng giám định danh mục thì sẽ gồm các hệ thống con: 
Lấy danh mục mới gửi, Xử lý giám định, Cập nhật kết quả giám 
định. 
3.2.2.4. Đưa ra các dịch vụ 
Như vậy với các hệ thống con trong chức năng giám định danh 
mục: Lấy danh mục mới gửi, xử lý giám định, cập nhật kết quả giám 
định. Ta sẽ đặt tên cho các hệ thống con để có thể dễ dàng sử dụng, 
và đưa các dịch vụ vào các thành phần. 
GetData: Lấy danh mục mới sẽ gồm các dịch vụ 
 GetListDm(): Lấy danh sách danh mục theo trạng thái mới 
được gửi lên 
 SendMessage(Message): Gửi thông điệp cho thành phần 
khác với thông điệp dạng đối tượng Message 
 Xử lý(exeption): Xử lý khi xảy ra sự cố 
 Ghilog(exeption): Ghi log khi xảy ra sự cố 
ProcessData: Xử lý giám định sẽ gồm các dịch vụ 
 GetMesssage(): Nhận thông điệp từ dịch vụ khác 
 Giải mã(Message): Giải mã thông điệp 
20 
 ConnectDB(): Kết nối cơ sở dữ liệu 
 GetDmFunctionDm(object.Tungay): Lấy những quy tắc 
đang bật trong DmFunctionDm theo giá trị từ ngày của danh 
mục 
 Mapping(objectDm): Thực hiện ánh xạ danh mục với từng 
loại danh mục 
 Run(ObjectDm): Thực hiện chạy các quy tắc giám định danh 
mục 
 SendMessage(Messgae): Gửi thông điệp tới dịch vụ khác 
 Xử lý(exeption): Xử lý khi xảy ra sự cố 
 Ghilog(exeption): Ghi log khi xảy ra sự cố 
SendData: Cập nhật kết quả giám định 
 GetMesssage(): Nhận thông điệp từ dịch vụ khác 
 Giải mã(Message): Giải mã thông điệp 
 ConnectDB(): Kết nối cơ sở dữ liệu 
 UpdateSGD(ObjectDm): Cập nhật kết quả sau giám định 
 Xử lý(exeption): Xử lý khi xảy ra sự cố 
 Ghilog(exeption): Ghi log khi xảy ra sự cố 
3.2.2.5. Đặc tả thành phần 
Với các dịch vụ GetData, ProcessData, SendData sẽ gửi thông 
điệp với nhau qua một hệ thống MessageBroker. 
3.2.2.6. Cấu trúc thành phần và dịch vụ 
Tiến hành đưa các thành phần và dịch vụ vào các tầng của SOA 
21 
3.2.2.7. Lựa chọn công nghệ thực hiện 
Tương tự như dịch vụ giám định hồ sơ 
3.2.2.8. Các quy tắc giám định danh mục 
o Danh mục thuốc tỉnh 
o Danh mục vật tư tỉnh 
o Danh mục thuốc bệnh viện 
o Danh mục dịch vụ kỹ thuật bệnh viện 
3.3. Kết luận 
CHƯƠNG 4: CÀI ĐẶT, TRIỂN KHAI VÀ THỰC NGHIỆM 
GIÁM ĐỊNH TỰ ĐỘNG 
4.1. Cài đặt 
Như đã đề cập trong chương trước, ta sẽ sử dụng: Ngôn ngữ lập 
trình: C# môi trường .Net 4.0. Phiên bản ODTwithODAC 32bit, 
64bit phiên bản 11, công cụ lập trình: Visual Studio 15. 
4.1.1. Giám định hồ sơ 
4.1.1.1. GetDataKB 
GetXml19324(), SendMessage(Message) 
Xử lý(exeption), Ghilog(exeption) 
4.1.1.2. ProcessDataKB 
GetMesssage(), Giảimã(Message) 
ConnectDBGetDmFunction(xml.NgayThanhToan) 
22 
Run(Xml19324), SendMessage(Message) 
Xử lý(exeption), Ghilog(exeption) 
4.1.1.3. SendDataKB 
GetMesssage(), Giải mã(Message) 
ConnectDB(), UpdateSGD(Xml19324) 
Tinhtoan(ref Xml19324), Convert(Xml19324) 
SendSolr(Xml19324_report), Xử lý(exeption), Ghilog(exeption) 
4.1.2. Giám định danh mục 
4.1.2.1. GetData 
GetListDm(), SendMessage(Message) 
Xử lý(exeption), Ghilog(exeption) 
4.1.2.2. ProcessData 
GetMesssage(), Giải mã(Message) 
ConnectDB(), GetDmFunctionDm(objectDm.Tungay) 
Mapping(objectDm), Run(ObjectDm) 
SendMessage(Message), Xửlý(exeption), Ghilog(exeption) 
4.1.2.3. SendDta 
GetMesssage(), Giải mã(Message), ConnectDB() 
UpdateSGD(ObjectDm), Xử lý(exeption), Ghilog(exeption) 
23 
4.2. Triển khai 
Các dịch vụ sẽ được triển khai trên Win server được cài đặt môi 
trường .net 4.0 và phiên bản ODTwithODAC 32bit, 64bit phiên bản 
11. 
Cùng các hệ thống RabbitMQ 3.6.2, Solr 6.4 
4.3. Kết quả thực nghiệm 
Sau đây là một vài kết quả thực nghiệm của chức năng giám 
định hồ sơ với mô hình triển khai bật một service GetDataKB, 5 
service ProcessDataKB, 3 service SendDataKB: 
Số lượng hồ sơ Thời gian xử lý xong 
134 20.12s 
1120 77.85s 
16739 932s 
KẾT LUẬN 
Luận văn đã trình bày kiến trúc hướng dịch vụ SOA, phương 
pháp xây dựng một ứng dụng dựa trên kiến trúc hướng dịch vụ SOA 
cụ thể là phương pháp top-down. Từ đó áp dụng vào bài toán giám 
định tự động. Luận văn đã phân tích và xây dựng thành công: 
- Bộ service giám định hồ sơ: GetDataKB, ProcessDataKB, 
SendDataKB 
- Bộ service giám định danh mục: GetData, ProcessData, 
SendData 
24 
- Bộ quy tắc hồ sơ: Quy tắc thẻ, quy tắc mức hưởng, quy tắc 
thuốc, quy tắc dịch vụ kỹ thuật, quy tắc vật tư y tế và quy 
tắc khác về máu, thanh toán ngày giường 
- Bộ quy tắc danh mục: Quy tắc thuốc thầu tỉnh, vật tư thầu 
tỉnh, thuốc bệnh viện, dịch vụ kỹ thuật bệnh viện, vật tư y tế 
bệnh viện. 
Hiện tại bộ service hồ sơ có thể xử lý được khoảng trên 40 hồ 
sơ/giây, đóng vai trò đắc lực hỗ trợ giám định viên phát hiện xử lý 
sai phạm trong quá trình thanh quyết toán bảo hiểm y tế. Giúp tiết 
kiệm ngân sách hàng năm của nhà nước. 
Nhưng hạn chế của giải pháp này là phải định nghĩa trước được bộ 
quy tắc cần phải chạy, vì vậy trong tương lai định hướng phát triển 
của em sẽ theo hướng mà sẽ mã hóa các bộ quy tắc trước được lưu 
trữ trong file hoặc database dưới dạng chuỗi base64 hoặc json. 
Trong service ProcessDataKB thực hiện giám định, sẽ cần phát 
triển tính năng đọc được chuỗi mã hóa quy tắc để tìm ra những quy 
tắc giám định. Với giải pháp này khi thêm quy tắc mới chỉ cần thêm 
một chuỗi mã hóa quy tắc mà không cần sửa lại service xử lý. 
Hiện tại với giám định tự động chưa có yêu cầu công khai như một 
dịch vụ nhưng trong tương lai giám định tự động có thể sẽ được 
công khai rộng rãi như một dịch vụ. Chức năng sẽ công khai một 
đầu webservice để cơ sở thực hiện gửi hồ sơ dạng file xml, tận dụng 
các bộ service nghiệp vụ như hiện tại để xử lý và trả lại kết quả cho 
webservice thông qua hệ thống message queue. 
            Các file đính kèm theo tài liệu này:
 tom_tat_luan_van_phan_tich_va_xay_dung_chuc_nang_giam_dinh_t.pdf tom_tat_luan_van_phan_tich_va_xay_dung_chuc_nang_giam_dinh_t.pdf