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 |
Chia sẻ: yenxoi77 | Lượt xem: 635 | Lượt tải: 0
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