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
- 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ụ, để các cơ sở thực hiện giám định tự động trước khi gửi hồ sơ để tránh sai phạm,
mất thời gian gửi dữ liệu. 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.
96 trang |
Chia sẻ: yenxoi77 | Lượt xem: 578 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu 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
ssage 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, về rabbitMQ thì đã
được trình bày trong phần giám định hồ sơ.
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.
3.2.2.8. Các quy tắc giám định danh mục
Danh mục thuốc tỉnh:
- A1_1: Thuốc không có số đăng ký
Trường hợp thuốc phóng xạ và vị thuốc y học cổ truyền thì không có số đăng ký
nên sẽ bỏ qua còn những trường hợp khác không có số đăng ký sẽ cảnh báo
(DM_THUOC_THAU.SODK == null).
- A1_2: Thuốc chưa được kê khai
Thuốc cần kê khai với cục quản lý dược để cấp số đăng ký, vì vậy tìm kiếm với
số đăng ký được gửi lên trong danh mục kê khai kê khai lại của cục quản lý dược
nếu không tìm thấy thì từ chối duyệt những thuốc này (DM_THUOC_KK).
- A1_3: Thuốc vượt giá kê khai kê khai lại
64
Với những thuốc đã được kê khai, cần kiểm tra giá khi gửi lên với giá thuốc khi
kê khai bên cục quản lý, nếu giá thuốc gửi lên mà cao hơn thì sẽ từ chối duyệt những
thuốc giá cao hơn (DM_THUOC_THAU.GIA > DM_THUOC_KK.GIA).
- A1_5: Thuốc ngoài danh mục Bộ Y tế
Tùy trường hợp thuốc là đơn chất hay đa chất có quy định, đa chất không có quy
định mà kiểm tra tìm kiếm trong Thông tư 40 (DM_HOATCHAT) hay Thông tư 05
(DM_THUOCYHCT). Khi không tìm thấy sẽ tiến hành cảnh báo thuốc này.
- A1_6: Không có thuốc được cấp số đăng ký có cùng đường dùng và ngày công
bố phù hợp
Với trường hợp thuốc phóng xạ và vị thuốc y học cổ truyền thì không có số đăng
ký, còn những trường hợp còn lại có số đăng ký, cần kiểm số đăng ký này trên cục
quản lý dược. Nếu không có thuốc nào được tìm thấy thì từ chối thuốc được gửi lên
(DM_THUOC).
- A1_8: Thuốc kết hợp Vitamin sai quy định
Chỉ kiểm tra với những đa chất không có quy định tại Thông tư 40
(DM_HOATCHAT). Theo quy định hoạt chất vitamin không được kết hợp với một
hoạt chất khác không cùng nhóm vitamin nên sẽ kiểm tra nếu thuốc đa chất không
có quy định mà có vitamin kết hợp với một hoặc nhiều hoạt chất không cùng nhóm
vitamin thì sẽ tiến hành cảnh báo (Kiểm tra các hoạt chất trong của thuốc, từ
MA_THUOC).
- A1_9: Sai hoạt chất
Với trường hợp thuốc tân dược, kiểm tra với Thông tư 40 nếu tên hoạt chất của
thuốc được gửi lên khác so với hoạt chất được quy định với Thông tư 40 thì tiến
hành cảnh báo (tìm trong DM_HOATCHAT theo mã hoạt chất trong
DM_THUOC_THAU.MA_THUOC, kiểm tra DM_THUOC_THAU.TEN với
DM_HOATCHAT.TEN).
- A1_10: Đa chất kết hợp sai đơn chất
65
Với trường hợp đa chất được kết hợp bởi nhiều đơn chất, cần kiểm tra từng đơn
chất có tồn tại trong Thông tư 40 hay Thông tư 05 hay không (DM_HOATCHAT
với DM_THUOCYHCT). Nếu tồn tại một đơn chất không tồn tại thì tiến hành cảnh
báo vi phạm.
- A1_11: Đa chất kết hợp sai đường dùng
Với trường hợp đa chất kết hợp bởi nhiều đơn chất, những đơn chất đã tồn tại
trong Thông tư 40 hay Thông tư 05 (DM_HOATCHAT, DM_THUOCYHCT) thì
cần kiểm tra những đơn chất này có cùng đường dùng hay nhóm đường dùng được
quy định ở Thông tư 40, Thông tư 05 hay không. Nếu tồn tại một đơn chất mà đường
dùng khác hoặc đường dùng không thuộc nhóm đường dùng thì tiến hành cảnh báo
vi phạm.
Danh mục vật tư tỉnh:
- A3_16: Không nằm trong danh mục dùng chung Bộ y tế
Cần kiểm tra vật tư được gửi lên có trong danh mục vật tư mà Bộ y tế ban hành
hay không (DM_VATTU). Nếu vật tư gửi lên không nằm trong danh mục vật tư của
Bộ y tế thì sẽ bị từ chối phê duyệt (DM_VATTU_THAU).
- A3_17: Sai tên vật tư y tế
Khi vật tư gửi lên đã có trong danh mục vật tư mà Bộ y tế ban hành
(DM_VATTU), cần kiểm tra tên của vật tư gửi lên có giống với tên của vật tư mà
Bộ y tế ban hành hay không. Nếu không giống thì cần cảnh báo
(DM_VATTU_THAU.TEN != DM_VATTU.TEN).
- A3_18: Vật tư y tế không thanh toán riêng
Có những vật tư sẽ không được thanh toán riêng nếu thanh toán một mình vì vậy
khi vật tư đã có trong danh mục vật tư mà Bộ y tế ban hành (DM_VATTU), nếu vật
tư này không được thanh toán riêng thì cần từ chối phê duyệt
(DM_VATTU.KHONGTHANHTOANRIENG == 1).
Danh mục thuốc bệnh viện:
- B1_20: Thuốc kết hợp nhiều đường dùng khác nhau
66
Với thuôc tân dược, trường hợp đa chất được kết hợp bởi nhiều đơn chất, cần
kiểm tra tất cả các đơn chất được kết hợp có cùng đường dùng hoặc nhóm đường
dùng. Nếu tồn tại một hoặc nhiều đơn chất mà không có cùng đường dùng hoặc
nhóm đường dùng thì sẽ cảnh báo (từ DM_THUOC_BV.MA -> lấy trong
DM_HOATCHAT.DUONGDUNG).
- B1_21: Thuốc tân dược không có số đăng ký
Trường hợp thuốc tân dược gửi lên không có số đăng ký cần cảnh báo để giám
định viên biết (DM_THUOC_BV.LOAITHUOC == 1 và DM_THUOC_BV.SODK
== null).
- B1_22: Thuốc không có tên hoạt chất/ đường dùng
Trường hợp thuốc tân dược (DM_THUOC_BV.LOAITHUOC == 1) gửi lên
không có tên hoạt chất hoặc đường dùng cần cảnh báo để giám định viên biết.
(DM_THUOC_BV.HOATCHAT == null hoặc DUONGDUNG == null).
- B1_23: Tân dược nằm ngoài danh mục
Trường hợp thuốc tân dược, đơn chất hay đa chất có quy định hay đa chất không
có quy định, cần kiểm tra các hoạt chất của thuốc tồn tại trong Thông tư 40
(DM_HOATCHAT) hoặc Thông tư 05 (DM_THUOCYHCT). Nếu tồn tại một hoặc
nhiều hoạt chất không tồn tại trong Thông tư 40 hoặc Thông tư 05 thì sẽ từ chối phê
duyệt thuốc.
- B1_25: Thuốc sử dụng sai hạng
Với thuốc tân dược, trong Thông tư 40 có quy định về hạng bệnh viện được sử
dụng các loại thuốc khác nhau, vì vậy cần kiểm tra thuốc được dùng tại cơ sở gửi
lên có đúng hạng đã được quy định trong Thông tư 40 hay không. Nếu sử dụng sai
hạng sẽ cảnh báo (DM_HOATCHAT.HANG != CSKCB.HANGBV).
- B1_26: Thuốc vượt giá kê khai kê khai lại
Với thuốc tân dược, khi cơ sở gửi thuốc lên giám định, cần kiểm tra giá thuốc
của cơ sở gửi lên so với giá thuốc mà cục quản lý dược quản lý. Nếu giá thuốc cơ sở
67
gửi lên cao hơn giá thuốc cục quản lý dược quản lý thì sẽ bị từ chối phê duyệt
(DM_THUOC_BV.GIA > DM_THUOC_KK.GIA).
- B1_27: Thuốc tân dược vượt giá đấu thầu
Với thuốc tân dược (DM_THUOC_BV.LOAITHUOC == 1), khi cơ sở gửi thuốc
lên giám định cũng cần kiểm tra giá thuốc của cơ sở gửi lên so với giá thuốc mà tỉnh
đã đấu thầu. Nếu giá thuốc cơ sở gửi lên cao hơn giá thuốc tỉnh đã đấu thầu thì sẽ bị
từ chối phê duyệt (DM_THUOC_BV.GIA > DM_THUOC_THAU.GIA).
- B1_28: Thuốc kết hợp nhóm Vitamin ngoài quy định
Với thuốc tân dược, đa chất mà có chứa đơn chất là vitamin (mã nhóm chứa
.A27). Theo quy định vitamin sẽ chỉ được kết hợp với các đơn chất là cùng vitamin
hoặc nhóm vitamin. Cần kiểm tra các đơn chất của thuốc, nếu tồn tại một đơn chất
khác nhóm vitamin thì cần cảnh báo thuốc.
- B1_30: Thuốc tân dược ngoài thầu
Với thuốc tân dược, khi cơ sở gửi lên giám định, cần kiểm tra lại so với dữ liệu
đấu thầu của tỉnh (DM_THUOC_THAU), nếu thuốc cơ sở gửi lên không tồn tại
trong dữ liệu đấu thầu của tỉnh thì sẽ bị từ chối phê duyệt.
- B1_31: Thuốc phối hợp có sử dụng nhóm điều trị ung thư
Với thuốc tân dược, đa chất mà có chứa hoạt chất có mã nhóm điều trị ung thư
(mã nhóm chứa .A.8.1). Cần kiểm tra cơ sở đấy có được sử dụng thuốc điều trị ung
thư hay không (COSO_KCB.UNGTHU != 1). Nếu không được điều trị cần từ chối
phê duyệt.
- B1_32: Thuốc sai tên hoạt chất
Với thuốc tân dược (DM_THUOC_BV.LOAITHUOC == 1), cần kiểm tra từng
tên hoạt chất cấu thành thuốc mà cơ sở gửi lên so với Thông tư 40. Nếu tên hoạt chất
khác nhau cần cảnh báo vi phạm (DM_THUOC_BV.HOATCHAT !=
DMHOATCHAT.TEN).
- B1_33: Thuốc sai tên đường dùng
68
Với thuốc tân dược, cần kiểm tra đường dùng của các hoạt chất, nếu tồn tại một
hoạt chất có đường dùng khác hoặc nhóm đường dùng khác thì cần cảnh báo vi phạm
(DM_THUOC_BV.DUONGDUNG != DM_HOATCHAT.DUONGDUNG).
- B1_34: Thuốc sử dụng vượt tuyến đi kèm với dịch vụ kỹ thuật
Với thuốc tân dược, các thuốc cơ sở gửi lên cần kiểm tra với Thông tư 40
(DM_HOATCHAT) để biết hạng bệnh viện được sử dụng. Nếu sai hạng, sẽ kiểm tra
quyết định phê duyệt kèm theo (DM_HOATCHAT.HANG !=
COSO_KCB.HANGBV). Nếu không có quyết định phê duyệt cơ sở được sử dụng
thuốc này thì tiến hành từ chối phê duyệt (DM_QUYETDINHPHEDUYET).
- B1_35: Thuốc có số đăng ký chưa được công bố
Với thuốc tân dược, cần kiểm tra thuốc cơ sở gửi lên có tồn tại trong cục quản lí
dược hay không (DM_THUOC). Nếu không tồn tại thì tiến hành từ chối phê duyệt.
- B1_37: Thuốc tân dược sai tên so với thầu
Với thuốc tân dược, cần kiểm tra tên thuốc cơ sở gửi lên so với tên thuốc trong
dữ liệu đấu thầu của tỉnh. Nếu khác nhau cần cảnh báo (DM_THUOC_BV.TEN !=
DM_THUOC_THAU.TEN).
- B1_38: Thuốc tân dược sai đường dùng so với thầu
Với thuốc tân dược, cần kiểm tra đường dùng của thuốc cơ sở gửi lên so với
đường dùng của thuốc trong dữ liệu đấu thầu của tỉnh. Nếu đường dùng khác nhau
cần cảnh báo
(DM_THUOC_BV.DUONGDUNG != DM_THUOCTHAU.DUONGDUNG).
Danh mục dịch vụ kỹ thuật bệnh viện:
- B5_62: Dịch vụ kỹ thuật không nằm trong danh mục tương đương
Kiểm tra dịch vụ kĩ thuật bệnh viện cơ sở gửi lên có nằm trong danh mục tương
đương mà Bộ y tế ban hành hay không (DM_DICHVU_TD). Nếu dịch vụ kỹ thuật
bệnh viện cơ sở gửi lên không nằm trong danh mục tương đương thì tiến hành từ
chối phê duyệt.
69
- B5_63: Dịch vụ có tên sai quy định (Thông tư 43, Thông tư 50)
Với dịch vụ kỹ thuật bệnh viện cơ sở gửi lên đã tồn tại trong Thông tư 43, Thông
tư 50, tiến hành kiểm tra tên của dịch vụ bệnh viện cơ sở gửi lên với tên dịch vụ kỹ
thuật trong Thông tư 43, Thông tư 50. Nếu khác nhau thì cảnh báo.
(DM_DICHVU_BV.TEN != DM_TEN_DICHVU.TEN)
- B5_66: Dịch vụ kỹ thuật không phù hợp với tuyến, hạng của bệnh viện
Thông tư 43, Thông tư 50 có quy định về hạng bệnh viện được sử dụng dịch vụ
kỹ thuật, vì vậy cần kiểm tra dịch vụ kỹ thuật cơ sở gửi lên có phù hợp với hạng viện
viện của cơ sở hay không. Nếu hạng bệnh viện không phù hợp theo Thông tư 43,
Thông tư 50 thì từ chối phê duyệt (COSO_KCB.HANGBV !=
DM_TEN_DICHVU.HANG).
- B6_68: Dịch vụ kỹ thuật không nằm trong danh mục phê duyệt của tỉnh
Kiểm tra danh mục dịch vụ kỹ thuật phê duyệt của tỉnh, nếu dịch vụ kỹ thuật cơ
sở gửi lên không tồn tại trong danh mục dịch vụ kỹ thuật phê duyệt của tỉnh thì tiến
hành từ chối phê duyệt (DM_GIA_DICHVU_TINH).
- B6_69: Giá sử dụng cao hơn giá phê duyệt
Với những dịch vụ kỹ thuật đã nằm trong danh mục dịch vụ kỹ thuật phê duyệt
của tỉnh, tiến hành so sánh giá dịch vụ kỹ thuật cơ sở gửi lên với danh mục dịch vụ
kỹ thuật phê duyệt của tỉnh, nếu giá lớn hơn thì tiến hành từ chối phê duyệt
(DM_DICHVU_BV.GIA > DM_GIA_DICHVU_TINH.GIA).
- B6_70: Giá sử dụng cao hơn giá trong thông tư Bộ Y tế
Với những dịch vụ kỹ thuật đã nằm trong danh mục dịch vụ kỹ thuật tương đương
do Bộ y tế ban hành, tiến hành kiểm tra giá của dịch vụ kỹ thuật cơ sở gửi lên với
giá của dịch vụ kĩ thuật trong danh mục tương đương mà Bộ y tế ban hành. Nếu lớn
hơn thì từ chối phê duyệt (DM_DICHVU_BV.GIA > DM_DICHVU_TD.GIA).
- B6_71: Dịch vụ kỹ thuật không nằm trong danh mục được phê duyệt của cơ
sở thực hiện
70
Theo Công văn 510, dịch vụ kỹ thuật của cơ sở gửi lên sẽ nằm trong danh mục
được phê duyệt của cơ sở thực hiện. Vì vậy cần kiểm tra dịch vụ kỹ thuật của cơ sở
gửi lên có nằm trong danh mục dịch vụ kỹ thuật của cơ sở thực hiện. Nếu không tồn
tại thì thực hiện từ chối phê duyệt.
Danh mục vật tư bệnh viện:
- B7_72: Vật tư y tế không nằm trong danh mục Bộ y tế
Với những vật tư cơ sở gửi lên, cần kiểm tra với danh mục vật tư do Bộ y tế ban
hành, nếu vật tư cơ sở gửi lên mà không tồn tại trong danh mục vật tư do Bộ y tế ban
hành thì từ chối phê duyệt (DM_VATTU).
- B7_73: Vật tư y tế không thanh toán riêng
Với những vật tư đã tồn tại trong danh mục vật tư do Bộ y tế ban hành thì tiến
hành kiểm tra vật tư đó có được thanh toán riêng hay không. Nếu vật tư đó không
được thanh toán riêng thì cảnh báo (DM_VATTU.KHONGTHANHTOANRIENG
== 1).
- B7_74: Sai tên vật tư y tế
Với những vật tư đã tồn tại trong danh mục vật tư do Bộ y tế ban hành thì tiến hành
kiểm tra tên của vật tư đó so với vật tư trong danh mục Bộ y tế. Nếu tên khác nhau
thì tiến hành cảnh báo (DM_VATTU_BV.TEN != DM_VATTU.TEN).
- B7_75: Vật tư y tế không nằm trong danh mục thầu tỉnh
Với những vật tư y tế cơ sở gửi lên, cần kiểm tra với danh mục đấu thầu của tỉnh
(DM_VATTU_THAU). Nếu trong danh mục đấu thầu của tỉnh không tồn tại vật tư
mà cơ sở gửi lên thì tiến hành từ chối phê duyệt
- B7_76: Vật tư y tế giá cao hơn danh mục thầu tỉnh
Với những vật tư y tế cơ sở gửi lên đã tồn tại trong danh mục đấu thầu của tỉnh
(DM_VATTU_THAU), kiểm tra giá vật tư y tế mà cơ sở đưa lên, nếu giá vật tư y tế
mà cơ sở đưa lên lớn hơn giá của vật tư trong danh mục đấu thầu tỉnh thì tiến hành
từ chối phê duyệt (DM_VATTU_BV.GIA > DM_VATTU_THAU.GIA).
71
3.3. Kết luận
Chương 3 đã giới thiệu về hệ thống giám định bảo hiểm xã hội việt nam, từ đó giới
thiệu về bài toán giám định tự động, các tính chất, yêu cầu của giám định tự động.
Áp dụng các bước xây dựng một ứng dụng kiến trúc hướng dịch vụ vào bài toán
giám định tự động. Phân tích và xây dựng các dịch vụ được đưa cùng hai bộ quy tắc
hồ sơ và quy tắc danh mục.
72
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
Nhiệm vụ của dịch vụ GetDataKB sẽ cần phải chạy độc lập, liên tục khi có các
hồ sơ mới được gửi lên và lưu vào bảng Xml19324, Xml29324, Xml39324,
Xml49324, Xml59324. Sau khi lấy được danh sách các hồ sơ mới được gửi lên dưới
dạng danh sách Object của Xml19324 dịch vụ sẽ cần phải gửi lên hệ thống Message
Broker với queue có tên là WaitingProcessKB. Trong trường hợp xảy ra sự cố thì
dịch vụ cần phải xử lý sự cố cũng như ghi log lại để quản trị viên có thể xử lý kịp
thời.
Dịch vụ cần quét liên tục nên cơ chế Timer sẽ phù hợp với yêu cầu này.
Với tham số thời gian vòng lặp sẽ được đọc ở file cấu hình để tùy chỉnh số giây mà
Timer sẽ quét lượt tiếp theo.
Vì cần đánh dấu các hồ sơ đã lấy để xử lý, mà thời gian đánh dấu sẽ có độ trễ nên
dịch vụ ta sẽ thực hiện theo cơ đế đơn luồng.
Dịch vụ GetXml19324(): Dịch vụ lấy những hồ sơ KCB theo trạng thái mới được
gửi lên: Sử dụng Nhibernate.dll để kết nối đến cơ sở dữ liệu. Rồi thực hiện select
trong bảng Xml19324 với status = 0, mỗi lần ta sẽ lấy một lượng theo cấu hình trong
file cấu hình, sau khi lấy thì tiến hành cập nhật status của bản ghi = 1 để đánh dấu
bản ghi là trạng thái đã được lấy để xử lý.
73
SendMessage(Message): Dịch vụ sẽ 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 lên hệ thống MessageBroker với queue tên
WaitingProcessKB.
Tạo kết nối đến Hệ thống MessageBroker sử dụng RabbitMQ.Client.dll. Sau khi tạo
kết nối thì tiến hành gửi nội dung thông điệp lên queue. Gửi nội dung lên queue, cần
mã hóa nội dung gửi thành mảng byte.
Hàm chuyển từ đối tượng sang mảng byte được hỗ trợ bởi Newtonsoft.Json.dll
Xử lý(exeption): Xử lý khi xảy ra sự cố, trong trường hợp có lỗi kết nối đến cơ sở
dữ liệu thì sẽ tiến hành ghi log để quản trị viên có thể xử lý, còn trường hợp có sự
cố khi gửi thông điệp lên queue thì sẽ tiến hành cập nhật lại bản ghi thành trạng thái
mới (status = 0).
Ghilog(exeption): Dịch vụ ghi log khi xảy ra sự cố dùng log4net.dll
4.1.1.2. ProcessDataKB
Nhiệm vụ của dịch vụ ProcessDataKB là thực hiện tìm kiếm trên queue
WaitingProcessKB, nếu có thông điệp mới được gửi đến từ dịch vụ GetDataKB thì
tiến hành giải mã thông điệp, thực hiện giám định và gửi thông điệp tới dịch vụ khác
thông qua queue FinishProcessKB của RabbitMQ. Trong trường hợp xảy ra sự cố
thì tiến hành xử lý và ghi log để quản trị viên biết và xử lý kịp thời.
Dịch vụ cần quét liên tục nên cơ chế Timer sẽ phù hợp với yêu cầu này. Với tham
số thời gian vòng lặp sẽ được đọc ở file cấu hình để tùy chỉnh số giây mà Timer sẽ
quét lượt tiếp theo.
Với việc nghiệp vụ có thể thực hiện một cách song song, vì vậy dịch vụ sẽ thực hiện
cơ chế đa luồng để tăng hiệu năng. Số luồng sẽ được cấu hình ở file cấu hình.
GetMesssage(): Dịch vụ nhận thông điệp từ dịch vụ khác, tiến hành kết nối đến
RabbitMQ để lấy thông điệp.
Sau khi kết nối đến queue WaitingProcessKB của hệ thống MessageBroker sẽ tiến
hành lấy thông điệp. Nhưng nội dung của thông điệp là chuỗi json vì vậy cần giải
mã thông điệp về đối tượng để sử dụng.
74
Giải mã(Message): Dịch vụ giải mã thông điệp, khi đã lấy được phần nội dung trong
thông điệp, nhưng phần nội dung của thông điệp đang ở dạng mảng bytes, vì vậy
cần giải mã về dạng đối tượng để xử lý giám định.
Với hàm chuyển từ mảng bytes sang chuỗi string của System.dll của .net
Hàm chuyển từ chuỗi json sang đối tượng message sử dụng thư viện
Newtonsoft.Json.dll
Hàm chuyển từ chuỗi base64 sang đối tượng sử dụng thư viện Newtonsoft.Json.dll
và System.dll
ConnectDB(): Kết nối cơ sở dữ liệu sử dụng Nhibernate.dll
GetDmFunction(xml.NgayThanhToan): Lấy những quy tắc đang bật theo ngày thanh
toán của hồ sơ. Lấy những bản ghi thỏa mãn điều kiện, start_date nhỏ hơn hoặc bằng
ngày thành toán, end_date có thể null hoặc lớn hơn ngày thanh toán và giá trị value
bằng một là những quy tắc đang được bật.
Run(Xml19324): Thực hiện chạy các quy tắc giám định hồ sơ, với danh sách các quy
tắc hồ sơ lấy được từ dịch vụ GetDmFunction(xml.NgayThanhToan), tiến hành chạy
lần lượt qua các quy tắc để phát hiện sai phạm.
Các quy tắc sẽ được gọi bằng phương thức Invoke theo tên hàm trùng với Key trong
DmFunction. Nội dung các quy tắc sẽ tuân theo chi tiết trong phần các quy tắc giám
định hồ sơ.
SendMessage(Message): Dịch vụ sẽ 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 lên hệ thống MessageBroker với queue tên
FinishProcessKB.
Tạo kết nối đến Hệ thống MessageBroker sử dụng RabbitMQ.Client.dll. Thực hiện
chuyển đổi đối tượng thông điệp sang mảng byte để thực hiện gửi lên queue. Với
hàm chuyển từ đối tượng sang mảng byte được hỗ trợ bởi Newtonsoft.Json.dll
Xử lý(exeption): Xử lý khi xảy ra sự cố, trong trường hợp có lỗi kết nối đến cơ sở
dữ liệu thì sẽ tiến hành ghi log để quản trị viên có thể xử lý, còn trường hợp có sự
cố khi gửi thông điệp lên queue thì sẽ tiến hành cập nhật lại bản ghi thành trạng thái
mới.
75
Ghilog(exeption): Dịch vụ ghi log khi xảy ra sự cố dùng log4net.dll
4.1.1.3. SendDataKB
Nhiệm vụ của dịch vụ SendDataKB là thực hiện tìm kiếm trên queue
FinishProcessKB, nếu có thông điệp mới được gửi đến từ dịch vụ ProcessDataKB
thì tiến hành giải mã thông điệp, cập nhật kết quả vào cơ sở dữ liệu, thực hiện tính
toán các trường nghiệp vụ để tiến hành gửi dữ liệu lên Solr. Trong trường hợp xảy
ra sự cố thì tiến hành xử lý và ghi log để quản trị viên biết và xử lý kịp thời.
Dịch vụ cần quét liên tục nên cơ chế Timer sẽ phù hợp với yêu cầu này. Với tham
số thời gian vòng lặp sẽ được đọc ở file cấu hình để tùy chỉnh số giây mà Timer sẽ
quét lượt tiếp theo. Với việc nghiệp vụ có thể thực hiện một cách song song, vì vậy
dịch vụ sẽ thực hiện cơ chế đa luồng để tăng hiệu năng. Số luồng sẽ được cấu hình
ở file cấu hình.
GetMesssage(): Dịch vụ nhận thông điệp từ dịch vụ khác, tiến hành kết nối đến
RabbitMQ để lấy thông điệp.
Sau khi kết nối đến queue FinishProcessKB của hệ thống MessageBroker sẽ tiến
hành lấy thông điệp.
Giải mã(Message): Dịch vụ giải mã thông điệp, khi đã lấy được phần nội dung trong
thông điệp, nhưng phần nội dung của thông điệp đang ở dạng mảng bytes, vì vậy
cần giải mã về dạng đối tượng để xử lý giám định:
Với hàm chuyển từ mảng bytes sang chuỗi string của System.dll của .net
Hàm chuyển từ chuỗi json sang đối tượng message sử dụng thư viện
Newtonsoft.Json.dll
Hàm chuyển từ chuỗi base64 sang đối tượng sử dụng thư viện Newtonsoft.Json.dll
và System.dll
ConnectDB(): Kết nối cơ sở dữ liệu sử dụng Nhibernate.dll
UpdateSGD(Xml19324): Cập nhật kết quả sau giám định, thực hiện cập nhật các
trường loại bn, các trường tiền cơ sở đề nghị sau, tiền quyết toán sau khi tổng hợp
từ chi tiết và tiền xuất toán sau khi thực hiện giám định. Cùng với các kết quả giám
định ghi vào các trường resultchung, resultthuoc, resultdichvu tương ứng với các
quy tắc.
76
Tinhtoan(ref Xml19324): Tính toán theo yêu cầu báo cáo. Từ các trường tiền đề nghị
tính toán trường tổng chi là tổng số tiền được đề nghị lên. Tổng quyết toán là tổng
các trường tiền quyết toán. Tổng tiền bảo hiểm thanh toán quyết toán là tổng các
trường tiền đề nghị có nhân mức hưởng nhưng tiền vận chuyển sẽ không nhân mức
hưởng.
Convert(Xml19324): Chuyển đổi về schema của Solr, gán giá trị tương tứng ở đối
tượng Xml19324 với các trường trong đối tượng Xml19324_report.
SendSolr(Xml19324_report): Đẩy dữ liệu lên Solr. Thư viện sử dụng SolrNet.dll.
Việc đẩy lên Solr đối tượng Xml19324_report sẽ cần mapping trong đối tượng tương
ứng với các trường nghiệp vụ trên Solr schema.
Xử lý(exeption): Xử lý khi xảy ra sự cố, trong trường hợp có lỗi kết nối đến cơ sở
dữ liệu thì sẽ tiến hành ghi log để quản trị viên có thể xử lý, còn trường hợp có sự
cố khi gửi thông điệp lên queue hoặc Solr thì sẽ tiến hành cập nhật lại bản ghi thành
trạng thái mới (status = 0).
Ghilog(exeption): Dịch vụ ghi log khi xảy ra sự cố dùng log4net.dll
4.1.2. Giám định danh mục
4.1.2.1. GetData
Nhiệm vụ của dịch vụ GetData sẽ cần phải chạy độc lập, liên tục khi có các danh
mục mới được gửi lên và lưu vào các bảng danh mục tương ứng: DmThuocThau,
DmVattuThau, DmGiadvTinh, DmThuocBv, DmVattuBv, DmDichvuBv. Sau khi
lấy được danh sách các danh mục mới được gửi lên dưới dạng danh sách Object của
các danh mục tương ứng dịch vụ sẽ cần phải gửi lên hệ thống Message Broker với
queue có tên là WaitingProcess. Trong trường hợp xảy ra sự cố thì dịch vụ cần phải
xử lý sự cố cũng như ghi log lại để quản trị viên có thể xử lý kịp thời.
Dịch vụ cần quét liên tục nên cơ chế Timer sẽ phù hợp với yêu cầu này.
Với tham số thời gian vòng lặp sẽ được đọc ở file cấu hình để tùy chỉnh số giây mà
Timer sẽ quét lượt tiếp theo.
77
Vì cần đánh dấu các hồ sơ đã lấy để xử lý, mà thời gian đánh dấu sẽ có độ trễ nên
dịch vụ ta sẽ thực hiện theo cơ đế đơn luồng, nhưng với mỗi loại danh mục sẽ tạo
một luồng riêng.
GetListDm(): Lấy danh sách danh mục theo trạng thái mới được gửi lên, số lượng
bản ghi lấy sẽ được cấu hình trong file cấu hình.
DmThuocBv: Với danh mục thuốc bệnh viện có status = 0, chưa có hiệu lực (hiệu
lực = 0) và chưa bị xóa isdel = 0.
DmVattuBv: Với danh mục vật tư bệnh viện có status = 0, chưa có hiệu lực (hiệu
lực = 0) và chưa bị xóa isdel = 0.
DmDichvuBv: Với danh mục dịch vụ bệnh viện có status = 0, chưa có hiệu lực (hiệu
lực = 0) và chưa bị xóa và thuộc trong một bảng giá (bảng giá dvkt id không null).
DmThuocThau: Với danh mục thuốc thầu có status = 0, chưa có hiệu lực (hiệu lực
= 0) và chưa bị xóa isdel = 0.
DmVattuThau: Với danh mục vật tư thầu có status = 0, chưa có hiệu lực (hiệu lực =
0) và chưa bị xóa isdel = 0.
DmGiaDichvuTinh: Với danh mục giá dịch vụ tỉnh có status =0, chưa có hiệu lực
(hiệu lực = 0) và chưa bị xóa isdel = 0.
Sau khi lấy được danh sách các bản ghi thì tiến hành cập nhật status = 1 để đánh dấu
trạng thái đã được lấy để xử lý.
SendMessage(Message): Dịch vụ sẽ 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 lên hệ thống MessageBroker với queue tên
WaitingProcess.
Tạo kết nối đến Hệ thống MessageBroker sử dụng RabbitMQ.Client.dll. Sau khi kết
nối sẽ tiến hành mã hóa đối tượng sang bảng byte rồi thực hiện gửi thông điệp. Hàm
chuyển từ đối tượng sang mảng byte được hỗ trợ bởi Newtonsoft.Json.dll
Xử lý(exeption): Xử lý khi xảy ra sự cố, trong trường hợp có lỗi kết nối đến cơ sở
dữ liệu thì sẽ tiến hành ghi log để quản trị viên có thể xử lý, còn trường hợp có sự
78
cố khi gửi thông điệp lên queue thì sẽ tiến hành cập nhật lại bản ghi thành trạng thái
mới.
Ghilog(exeption): Dịch vụ ghi log khi xảy ra sự cố dùng log4net.dll
4.1.2.2. ProcessData
Nhiệm vụ của dịch vụ ProcessData là thực hiện tìm kiếm trên queue
WaitingProcess, nếu có thông điệp mới được gửi đến từ dịch vụ GetData thì tiến
hành giải mã thông điệp, thực hiện giám định và gửi thông điệp tới dịch vụ khác
thông qua queue FinishProcess của RabbitMQ. Trong trường hợp xảy ra sự cố thì
tiến hành xử lý và ghi log để quản trị viên biết và xử lý kịp thời.
Dịch vụ cần quét liên tục nên cơ chế Timer sẽ phù hợp với yêu cầu này.
Với tham số thời gian vòng lặp sẽ được đọc ở file cấu hình để tùy chỉnh số giây mà
Timer sẽ quét lượt tiếp theo.
Với việc nghiệp vụ có thể thực hiện một cách song song, vì vậy dịch vụ sẽ thực hiện
cơ chế đa luồng để tăng hiệu năng. Số luồng sẽ được cấu hình ở file cấu hình.
GetMesssage(): Dịch vụ nhận thông điệp từ dịch vụ khác, tiến hành kết nối đến
RabbitMQ để lấy thông điệp.
Sau khi kết nối đến queue WaitingProcess của hệ thống MessageBroker sẽ tiến hành
lấy thông điệp. Vì thông điệp đang ở dạng chuỗi json vì vậy cần giải mã thông điệp
sang dạng đối tượng.
Giải mã(Message): Dịch vụ giải mã thông điệp, khi đã lấy được phần nội dung trong
thông điệp, nhưng phần nội dung của thông điệp đang ở dạng mảng bytes, vì vậy
cần giải mã về dạng đối tượng để xử lý giám định. Với hàm chuyển từ mảng bytes
sang chuỗi string của System.dll của .net. Hàm chuyển từ chuỗi json sang đối tượng
message sử dụng thư viện Newtonsoft.Json.dll. Hàm chuyển từ chuỗi base64 sang
đối tượng sử dụng thư viện Newtonsoft.Json.dll và System.dll
ConnectDB(): Kết nối cơ sở dữ liệu sử dụng Nhibernate.dll
GetDmFunctionDm(objectDm.Tungay): Lấy những quy tắc danh mục đang bật theo
từ ngày của danh mục. Từ ngày của danh mục lớn hơn hoặc bằng ngày bắt đầu của
79
quy tắc. Ngày kết thúc của quy tắc có thể không có hoặc từ ngày của danh mục nhỏ
hơn hoặc bằng ngày kết thúc của quy tắc, và giá trị của quy tắc đang bật value = 1.
Mapping(objectDm): Thực hiện ánh xạ danh mục với từng loại danh mục. Với từng
loại danh mục cần ánh xạ với các danh mục dùng chung như DmThuoc,
DmDichvuTd, Dmhoatchat, DmYhct
Run(ObjectDm): Thực hiện chạy các quy tắc giám định danh mục lấy được. Các quy
tắc sẽ được gọi bằng phương thức Invoke theo tên hàm trùng với Key trong
DmFunctionDm. Nội dung các quy tắc sẽ tuân theo chi tiết trong phần các quy tắc
giám định danh mục.
SendMessage(Message): Dịch vụ sẽ 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 lên hệ thống MessageBroker với queue tên
FinishProcess.
Tạo kết nối đến Hệ thống MessageBroker sử dụng RabbitMQ.Client.dll. Sau khi kết
nối đến hệ thống queue, tiến hành chuyển đối tượng sang chuỗi byte để thực hiện
gửi thông điệp lên queue. Hàm chuyển từ đối tượng sang mảng byte được hỗ trợ bởi
Newtonsoft.Json.dll
Xửlý(exeption): Xử lý khi xảy ra sự cố, trong trường hợp có lỗi kết nối đến cơ sở dữ
liệu thì sẽ tiến hành ghi log để quản trị viên có thể xử lý, còn trường hợp có sự cố
khi gửi thông điệp lên queue thì sẽ tiến hành cập nhật lại bản ghi thành trạng thái
mới.
Ghilog(exeption): Dịch vụ ghi log khi xảy ra sự cố dùng log4net.dll
4.1.2.3. SendData
Nhiệm vụ của dịch vụ SendData là thực hiện tìm kiếm trên queue FinishProcess,
nếu có thông điệp mới được gửi đến từ dịch vụ ProcessData thì tiến hành giải mã
thông điệp, cập nhật kết quả vào cơ sở dữ liệu. Trong trường hợp xảy ra sự cố thì
tiến hành xử lý và ghi log để quản trị viên biết và xử lý kịp thời.
Dịch vụ cần quét liên tục nên cơ chế Timer sẽ phù hợp với yêu cầu này.
Với tham số thời gian vòng lặp sẽ được đọc ở file cấu hình để tùy chỉnh số giây mà
Timer sẽ quét lượt tiếp theo.
80
Với việc nghiệp vụ có thể thực hiện một cách song song, vì vậy dịch vụ sẽ thực hiện
cơ chế đa luồng để tăng hiệu năng. Số luồng sẽ được cấu hình ở file cấu hình.
GetMesssage(): Dịch vụ nhận thông điệp từ dịch vụ khác, tiến hành kết nối đến
RabbitMQ để lấy thông điệp.
Sau khi kết nối đến queue FinishProcess của hệ thống MessageBroker sẽ tiến hành
lấy thông điệp. Vì thông điệp lấy được đang ở dạng json nên cần giải mã từ chuỗi
json về dạng đối tượng để sử dụng.
Giải mã(Message): Dịch vụ giải mã thông điệp, khi đã lấy được phần nội dung trong
thông điệp, nhưng phần nội dung của thông điệp đang ở dạng mảng bytes, vì vậy
cần giải mã về dạng đối tượng để xử lý giám định. Với hàm chuyển từ mảng bytes
sang chuỗi string của System.dll của .net. Hàm chuyển từ chuỗi json sang đối tượng
message sử dụng thư viện Newtonsoft.Json.dll. Hàm chuyển từ chuỗi base64 sang
đối tượng sử dụng thư viện Newtonsoft.Json.dll và System.dll.
ConnectDB(): Kết nối cơ sở dữ liệu sử dụng Nhibernate.dll
UpdateSGD(ObjectDm): Tùy từng loại danh mục mà tiến hành cập nhật kết quả
giám định tương ứng vào cơ sở dữ liệu
Xử lý(exeption): Xử lý khi xảy ra sự cố, trong trường hợp có lỗi kết nối đến cơ sở
dữ liệu thì sẽ tiến hành ghi log để quản trị viên có thể xử lý, còn trường hợp có sự
cố khi gửi thông điệp lên queue thì sẽ tiến hành cập nhật lại bản ghi thành trạng thái
mới.
Ghilog(exeption): Dịch vụ ghi log khi xảy ra sự cố dùng log4net.dll
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
Một vài chú ý trong quá trình triển khai:
- Các service GetData, GetDataKB vì chạy đơn luồng nên khi có lượng hồ sơ
hay danh mục được gửi lên nhiều. Với 1 app không thể đáp ứng được tốc độ
81
sẽ thì sẽ tiến hành chia nhỏ các app Get ra thành một bộ Get riêng, có thể chia
theo nghiệp vụ. Ví dụ với hồ sơ, có thể làm bộ Get theo các tháng quyết toán
khác nhau. Với những tháng có thể lấy theo hồ sơ theo giới tính hoặc mã loại
khám chữa bệnh
- Các service ProcessDataKB, ProcessData là các service xử lý nên tùy vào
lượng thông điệp được gửi đến queue WaitingProcessDataKB,
WaitingProcessData để lựa chọn số lượng app bật sao cho phù hợp nhất.
Tương tự với các app SendDataKB và SendData.
Một vài hình ảnh về bộ service giám định tự động:
Hình 4.1. Màn hình hiển thị service GetDataKB khi quét trong Database.
Hình 4.1 hiển thị màn hình của service GetDataKB khi đang quét trong cơ sở dữ liệu
bảng Xml19324 để tìm các hồ sơ mới được gửi lên.
82
Hình 4.2. Màn hình hiển thị của Service ProcessDataKB khi đang giám định hồ sơ.
Hình 4.2 là màn hình hiển thị Service ProcessDataKB khi đang thực hiện giám định
hồ sơ. Sau khi giám định sẽ thực hiện gửi thông điệp lên queue FinishProcessKB.
4.3. Kết quả thực nghiệm
Nội dung thực nghiệm: Sau khi triển khai môi trường, các dịch vụ giám định tự
động đã đáp ứng các yêu cầu về nghiệp vụ giám định. Nhưng cần phải đảm bảo về
mặt hiệu năng xử lý nữa nên phần thực nghiệm sẽ tập trung về tốc độ xử lý của dịch
vụ giám định hồ sơ. Sau đây là kết quả thực nghiệm dịch vụ giám định hồ sơ.
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
83
Hê thống đã đáp ứng với những yêu cầu phi chức năng đã nêu:
- Khả năng dễ sử dụng: sử dụng nền tảng application nên chỉ cần bật tắt, thông
báo hiển thị ra màn hình dos. Rất dễ sử dụng.
- Khả năng dễ triển khai: chỉ cần cài đặt môi trường .net 4.0 và oda bản 11 64bit
để triển khai.
- Khả năng dễ bảo trì: vì phát triển trên nền tảng application, việc nâng cấp sửa
chữa phiên bản rất dễ dàng.
- Tính sẵn sàng của hệ thống: hệ thống làm việc 24/24h trừ những khoảng thời
gian bảo trì, nâng cấp. Hệ thống triển khai trên môi trường win server, dưới
dạng các application và cơ chế timer sẽ hoạt động 24/24h trừ các thời gian
bảo trì, nâng cấp.
- Hiệu năng: với trung bình một tháng có 15 triệu hồ sơ được gửi lên, khoảng
350 hồ sơ trung bình một phút, nhưng với những thời điểm cao điểm lượng
hồ sơ tăng gấp nhiều lần. Hệ thống phải đảm bảo xử lý độ trễ các hồ sơ không
quá 1h: Với yêu cầu về thời gian thực thi, như bảng thời gian thực thi giám
định hồ sơ ở trên cho thấy một phút chức năng giám định hồ sơ có thể xử lý
khoảng 1077hs. Điều này có thể đáp ứng được nhu cầu vào những ngày bình
thường, lượng hồ sơ gửi lên khoảng 350hs một phút. Nhưng với những ngày
cao điểm, lượng hồ sơ được gửi lên trong một thời điểm sẽ tăng lên rất nhiều.
Hiện tại chức năng sẽ xử lý được lượng hồ sơ tăng gấp 3 lần bình thường.
Nhưng như thế là chưa đủ. Vì vậy vào những thời điểm cao điểm, nếu lượng
hồ sơ tăng vọt thì cần tăng lượng application xử lý để hạn chế độ trễ của việc
giám định. Đây cũng là một ưu điểm khi phát triển chức năng bằng
Application.
Với chức năng giám định tự động hiện tại đã thể hiện một vài tính chất của hệ thống
kiến trúc hướng dịch vụ như sau:
- Sử dụng dịch vụ bất đồng bộ: các yêu cầu được đưa lên hệ thống message
queue, bên gửi thông điệp không cần chờ bên nhận xử lý thông điệp xử lý
xong.
Hiện tại chức năng giám định tự động chưa thể hiện được các tính chất của hệ thống
kiến trúc hướng dịch vụ sau:
- Tính kết nối lỏng lẻo: các service hiện tại đang kết nối với nhau
84
- Sử dụng lại dịch vụ: các dịch vụ hiện tại đang chạy trên cùng dải wan, chưa
cung cấp một dịch vụ công khai trên mạng.
- Quản lý chính sách: vì chưa công khai một dịch vụ nên hiện tại các dịch vụ
chưa cung cấp một chính sách để giao tiếp.
- Khả năng cộng tác: hiện tại các dịch vụ chỉ có thể cộng tác trong cùng một
ngôn ngữ C#.
Trong tương lai gần bài toán công khai dịch vụ giám định tự động cho cơ sở khám
chữa bệnh thực hiện giám định tự động công khai để có thể kiểm tra hồ sơ một cách
dễ dàng trước khi đẩy dữ liệu sẽ tiết kiệm được thời gian ngân sách. Vì vậy trong
tương lai định hướng của đề tài sẽ phát triển một đầu webservice cung cấp các đầu
hàm hỗ trợ giám định tự động và sử dụng các đầu dịch vụ hiện tại để xử lý. Khi đó
các tính chất về kiến trúc hướng dịch vụ như tính sử dụng lại dịch vụ, quản lý chinh
sách, khả năng cộng tác sẽ được thỏa mãn.
4.4. Kết luận
Chương 4 đã trình bày về chi tiết cài đặt các dịch vụ, ngôn ngữ, công cụ lập trình.
Môi trường phát triển cùng các thư viện sử dụng. Chương này cũng đưa ra môi
trường triển khai cho các dịch vụ. Kết quả thực nghiệm của các dịch vụ giám định
hồ sơ, đánh giá giám định hồ sơ dựa vào các yêu cầu phi chức năng của chức năng
cũng như đánh giá các tính chất mà chức năng đã đáp ứng được của hệ thống kiến
trúc hướng dịch vụ và những tính chất chưa đáp ứng được, giải pháp để đáp ứng
được các tính chất đó.
85
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
- 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ụ, để các cơ sở thực hiện giám định tự động trước khi gửi hồ sơ để tránh sai phạm,
mất thời gian gửi dữ liệu. 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.
86
TÀI LIỆU THAM KHẢO
Tiếng Việt
[1]. Công văn 510/BHXH-CSYT, thanh toán BHYT cho một số dịch vụ kỹ thuật y tế
chuyển sang cơ sở KCB khác để thực hiện.
[2]. Công văn 9324/BYT - BH, trích xuất đầu ra dữ liệu yêu cầu thanh toán BHYT.
[3]. Đặng Đức Hạnh, Trương Ninh Thuận, Giáo trình Phân tích Thiết kế hướng đối
tượng, Nhà xuất bản đại học quốc gia Hà Nội.
[4]. Nguyễn Thị Dung, Đề tài nghiên cứu khoa học Kiến trúc hướng dịch vụ
(Service- Oriented - Architecture).
[5]. Quy trình giám định bảo hiểm y tế, kèm theo quyết định số 1456/QĐ-BHXH.
[6]. Quyết định 3465/QĐ-BYT, về việc ban hành bộ mã danh mục dùng chung áp
dụng trong khám bệnh, chữa bệnh và thanh toán bảo hiểm y tế
[7]. Thông tư 27/2013/TT-BYT, ban hành danh mục vật tư y tế thuộc phạm vi thanh
toán của quỹ bảo hiểm y tế.
[8]. Thông tư 40/2014/TT-BYT, ban hành và hướng dẫn thực hiện danh mục thuốc
tân dược thuộc phạm vi thanh toán của quỹ bảo hiểm y tế.
[9]. Thông tư 05/2016/TT-BYT, quy định về kê đơn thuốc trong điều trị ngoại trú.
Tiếng Anh
[10]. IBM Red Book Team (2004), Parttern: Service- Oriented Architecture and
Web Services.
[11]. RabbitMQ tutorials, https://www.rabbitmq.com/getstarted.html.
[12]. Rabbitmq beginner, https://www.cloudamqp.com/blog/2015-05-18-part1-
rabbitmq-for-beginners-what-is-rabbitmq.html
[13]. Solr architure, https://lucene.apache.org/solr/guide/6_6/a-quick-
overview.html.
[14]. Solr tutorial,
[15]. Document of redis, https://redis.io/documentation.
[16]. Redis tutorial, https://www.tutorialspoint.com/redis/
87
PHỤ LỤC
Danh sách các trường dữ liệu trong các bảng danh mục tương ứng
Các danh mục dùng chung được BYT ban hành:
DM_THUOC: Danh mục thuốc được BYT ban hành, có số đăng ký công bố
ID, TEN, MA, HIEULUC, STT, DUONGDUNG, DONVITINH,
VANBANQUYETDINH_ID, HOATCHAT, QUYCACH, SODK, TIEUCHUAN,
MIEUTA, BAOCHE, TUOITHO, STTTHONGTU, NGUONGOC, NUOCDANGKY,
DIACHIDANGKY, CONGTYDANGKY, DIACHISANXUAT, NUOCSANXUAT,
CONGTYSANXUAT,MADUONGDUNG, MADONVITINH, TUNGAY, DENNGAY,
HAMLUONG, LOAI, NHOMTHUOC_ID, GHICHU.
DM_THUOC_KK: Danh mục thuốc sau khi nhà sản xuất đăng ký số đăng ký với cơ
quan quản lý dược, kèm theo giá bán.
ID, STT, TEN, HOATCHAT, HAMLUONG, BAO_CHE, SO_DANG_KY,
QUYCACH, DONVITINH, GIABAN, NHASX, DONVIKEKHAI, NGAYKEKHAI,
GHICHU, LOAIKEKHAI, NGAYCONGB, HIEULUC, TRANG_THAI
DM_HOATCHAT: Theo thông tư 40 của BYT ban hành về hoạt chất của các thuốc
tân dược
ID, TEN, TEN_EN, MA, STT, STTHOATCHAT, HIEULUC, LOAITHUOC,
VANBANQUYETDINH_ID, PHANLOAIHOATCHAT_ID, MIEUTA, HANG1,
HANG2, HANG3, HANG4,DUONGDUNG, TYLE, HOICHAN, MANHOM,
MAATC, DANGLUUHANH, PHATHANH, CHUANHOA, UNGTHU,
CODIEUKIEN, MADUONGDUNG, DUONGDUNG_ID,
MAVANBANQUYETDINH, TUNGAY, DENNGAY, DANGDUNG, DONVITINH
DM_THUOCYHCT: Theo thông tư 05 của BYT ban hành về hoạt chất của các thuốc
y học cổ truyền
ID, TEN, TEN_EN, MA, STT, STTHOATCHAT, HIEULUC,TENKHOAHOC,
TENKHOAHOCCAY, LOAITHUOC, VANBANQUYETDINH_ID,
NHOMTHUOCYHCT_ID, MIEUTA, DUONGDUNG , NGUONGOC, TYLE,
88
MADUONGDUNG,DUONGDUNG_ID, TUNGAY, DENNGAY, CODIEUKIEN,
HOICHAN, DANGLUUHANH
DM_DICHVU_TD: Danh mục dịch vụ kỹ thuật dùng chung được BYT ban hành
ID, MA, MA4350, MAGIA, TEN, TENGIA, LOAIPTTT, GIA, GIASAU, GHICHU,
HIEULUC, VANBANQUYETDINH_ID, TUNGAY, DENNGAY, QUYETDINH,
DOT, BANGGIA_DVKT_ID, NHOMDICHVU_ID, MA_NHOMDICHVU
DM_VATTU: Danh mục vật tư dùng chung được BYT ban hành
ID, TEN, MA, NHOMVATTU_ID, HIEULUC, STT, VANBANQUYETDINH_ID,
TEN_EN, DONVITINH, MIEUTA, MANHOMVATTU, TUNGAY, DENNGAY,
TYLE, KOTHANHTOAN, DIKEM_DICHVU
DM_MUCHUONGBHYT: Danh mục mức hưởng của từng loại đối tượng khám chữa
bệnh
ID, NHOMDTBHYT_ID, MAHIEU, TYLE, MA, TEN, MIEUTA, STT, HIEULUC,
VANCHUYEN
DM_GIAXANG: Danh mục giá xăng do BHXH Việt Nam quản lý
ID, DONGIA, TUNGAY, DENNGAY, MIEUTA, HIEULUC
DM_MAU: Danh mục máu do BHXH Việt Nam quản lý
ID, MA, TEN, LOAIMAU_ID, THETICH, GIATOIDA, MIEUTA, HIEULUC,
VANBANQUYETDINH_ID, TUNGAY, DENNGAY
DM_COSOKCB: Danh mục cơ sở khám chữa bệnh do BHXH Việt Nam cấp phát
và quản lý
ID, TEN, MA, MABHYT, DONVIHANHCHINH_ID, DIACHI, HANGBENHVIEN,
TUYENCMKT, HIEULUC, MIEUTA, STT, TINHTHANH_ID, QUANHUYEN_ID,
MATINHTHANH, MAQUANHUYEN, DONVI_ID, MACOSOKCBCHA,
COSOKCBCHA_ID, MADONVI, THANNHANTAO, THAIGHEP,
LOAIHOPDONG, DKKCBBD, HINHTHUCTT, LOAIBENHVIEN, KHAMTREEM,
NGAYNGUNGHD, MATAICHINH, PKDAKHOA, UNGTHU, VIEMGAN,
89
TEBAOMAUTD, KHAMT7, KHAMCN, KHAMNGAYLE, MASOTHUE,
DIENTHOAI, EMAIL, FAX, COQUANCHUQUAN, NGAYKYHOPDONG,
KIEUBV, CAPCSKCB_MIN, TTPHEDUYET, SOHOPDONG, LYDO,
TRANGTHAI, TUCHU, HANGDICHVU_TD, HANGTHUOC_TD,
HANGVATTU_TD, BYT, SO_GPHD, KCB, NGAYCAPMA, NGAYDIEUCHINH,
LOAI_DONVICHUQUAN, CHUA_PD43, NGAYKYHOPDONGLANDAU,
GHICHU_TINHTHAYDOI, SL_THE_BH_DKBD, SL_THE_BH_DA_CAP,
LOAI_CK, TEN_VIETTAT
DM_TYLETRAITUYEN: Danh mục tỷ lệ trái tuyến, với những trường hợp đi khám
trái tuyến, tỷ lệ hưởng sẽ được thể hiện trong bảng
ID, STT, HANGBV, TUYENBV, BHYT_THANHTOAN, BN_THANHTOAN,
TUNGAY, DENNGAY, HINHTHUC_KCB, QUYENLOI_THEOTHE, HIEULUC,
MIEUTA
Các danh mục thầu của tỉnh được thể hiện ở các bảng:
DM_THUOC_THAU: Danh mục thuốc trúng thầu của tỉnh
ID, TEN, MA, DUONGDUNG, HAMLUONG, HOATCHAT, SODK, QUYCACH,
TIEUCHUAN, COSOKCB_ID, TINHTHANH_ID, HIEULUC, STT,
STTHOATCHAT, DONVITINH, NHASX, NUOCSX, MADUONGDUNG,
TENNHATHAU, QUYETDINH, GOITHAU, NHOMTHUOC, HANSUDUNG,
NAM, MANHATHAU, DANGBAOCHE, LYDOTUCHOI, MIEUTA,
MACOSOKCB, MATINHTHANH, LOAI, TUNGAY, DENNGAY, HOSO_ID,
STATUS, RESULT, SOLUONG, CONGBO, TRANGTHAI, GOITHAU_ID,
THUOC_ID, STTPHEDUYET, KETQUA, DONGGOI, NHOMTHAU, DONGIA,
THANHTIEN, MA_GY, TT4005_ID, LANNHAP, MOTALOI, LISTCELLERROR,
MADD_GY, AX_CD, AX_TD, KETQUA_TD, GIA, HOATCHAT2, TT3112_ID,
HANTHAUCU, NGAY_NHAN, NGAY_AP_DUNG
DM_VATTU_THAU: Danh mục vật tư trúng thầu của tỉnh
TEN, MA, MIEUTA, NAM, NGAYCONGBO, QUYETDINHTHAU, DOTTHAU,
HINHTHUCTHAU, DONVITINH, SOLUONG, QUYCACH, NHASX, NUOCSX,
HIEULUC, MACOSOKCB, STT, MATHAU, NHATHAU, COSOKCB_ID,
90
TINHTHANH_ID, MATINHTHANH, MANHOMVATTU, TUNGAY, DENNGAY,
SODK, STTPHEDUYET, GOITHAU_ID, VATTU_ID, KETQUA, ID,
TRANGTHAI, STATUS, RESULT, LOAI, MAHIEU, THANHTIEN, MA_GY,
TEN_GY, LANNHAP, MOTALOI, LISTCELLERROR, AX_CD, AX_TD,
KETQUA_TD, TENCHITIET, LYDOTUCHOI, GIATHAU, NGAY_NHAN,
NGAY_AP_DUNG
DM_GIADICHVU_TINH: Danh mục dịch vụ kỹ thuật trúng thầu của tỉnh
ID, TUNGAY, GIA, TINHTHANH_ID, HIEULUC, MADV, DENNGAY, MIEUTA,
HANGBV, MATINHTHANH, TEN, STTPHEDUYET, KETQUA, TRANGTHAI,
STATUS, QUYETDINH, RESULT, GIADICHVU_ID, DICHVU_ID,
LYDOTUCHOI, GOITHAU_ID, MOTALOI, LISTCELLERROR, LANNHAP,
MA37, TEN37, MATD, MA5084, TEN5084
Các danh mục của bệnh viện sử dụng được thể hiện ở các bảng sau:
DM_THUOC_BV: Danh mục thuốc mà bệnh viện sử dụng
ID, TEN, TEN_EN, MA, DUONGDUNG, HAMLUONG, HOATCHAT, SODK,
QUYCACH, TIEUCHUAN, COSOKCB_ID, TINHTHANH_ID, HIEULUC, STT,
STTHOATCHAT, DONVITINH, NHASX, NUOCSX, MADUONGDUNG,
TENNHATHAU, QUYETDINH, GOITHAU, NHOMTHUOC, HANSUDUNG,
NAM, MANHATHAU, DANGBAOCHE, LYDOTUCHOI, MIEUTA,
MACOSOKCB, MATINHTHANH, LOAITHAU, DAGIAMDINH, TUNGAY,
DENNGAY, HOSO_ID, STATUS, RESULT, THUOC_ID, LOAI, KETQUA,
TRANGTHAI, MA_BV, CONGBO, THUOCTHAU_ID, NGOAIDINHSUAT,
NHOM_THAU, TT4005_ID, MANHOM_9324, KHONGTHANHTOAN, MA_GY,
HUONGDAN, MADD_GY, ISDEL, AX_ID, AX_CD, AX_TD, KETQUA_TD,
RESULT_TD, GIA, GIABH, SOLUONG, KEY, TT3112_ID, TEN_BV,
THUOCGOC_ID, NGAY_NHAN, NGAY_AP_DUNG, NGAY_HET_HAN,
GHICHU, SOLUONG_BV, RESULTSOLUONG
DM_DICHVU_BV: Danh mục dịch vụ kỹ thuật mà bệnh viện sử dụng
ID, TEN, MA, TEN_EN, COSOKCB_ID, HIEULUC, STT, MIEUTA,
MACOSOKCB, STATUS, MATINH, NGAYBATDAU, DAGIAMDINH, RESULT,
91
SOQUYETDINH, NHOMDICHVU_ID, TRANGTHAI, MAKHOA,
STTPHEDUYET, SOMAYTH, SOCANBOCM, THOIGIANTH, SOCACHOPHEP,
MATT, KETQUA, TENDICHVU_ID, TUNGAY, DENNGAY, DICHVU_TD_ID,
GIADICHVU_ID, GIADICHVU_TINH_ID, LOAIPTTT, TINHTHANH_ID,
NGOAIDINHSUAT, MANHOM_9324, TYLE, KHONGTHANHTOAN,
QUYTRINH, ISDEL, AX_ID, MAGIA_GY, MA_GY, TEN_GY, AX_CD, AX_TD,
KETQUA_TD, RESULT_TD, LYDOTUCHOI, PHEDUYET_ID, GIA, GIABYT,
BANGGIA_DVKT_ID, TIENKHAM_ID, TIENGIUONG_ID, KEY,
PHEDUYET_GIA_ID, CHUA_PD43, TEN_BV, NGAY_NHAN, NGAY_AP_DUNG
DM_VATTU_BV: Danh mục vật tư mà bệnh viện sử dụng
ID, MA_BYT, TEN, MA_BV, MIEUTA, HIEULUC, QUYCACH, NUOCSX,
NHASX, DONVITINH, DINHMUC, COSOKCB_ID, SOLUONG, STT,
MATINHTHANH, MANHOM, LOAITHAU, DAGIAMDINH, HOSO_ID,
MACOSOKCB, STATUS, TUNGAY, DENNGAY, RESULT, SODK, NHATHAU,
NHOMVATTU_ID, DASUDUNG, SOCATHUCHIEN, DINHMUCPD, KETQUA,
VATTU_ID, TRANGTHAI, TEN_BV, MAHIEU, QUYETDINH, CONGBO,
VATTUTHAU_ID, NGOAIDINHSUAT, TYLE, MANHOM_9324,
KHONGTHANHTOAN, MA_GY, TEN_GY, ISDEL, AX_ID, AX_CD, AX_TD,
KETQUA_TD, RESULT_TD, LYDOTUCHOI, GIA, GIABHYT, KEY,
NGAY_NHAN, NGAY_AP_DUNG
Hồ sơ khám chữa bệnh sẽ được thể hiện ở các bảng:
XML1_9324: Thông tin cá nhân, bệnh án, tổng chi phí mà bệnh nhân sử dụng trong
quá trình khám chữa bệnh
ID, MA_LK, STT, MA_BN, HO_TEN, GIOI_TINH, DIA_CHI, MA_THE,
MA_DKBD, TEN_BENH, MA_BENH, MA_BENHKHAC, MA_LYDO_VVIEN ,
MA_NOI_CHUYEN, MA_TAI_NAN, SO_NGAY_DTRI, KET_QUA_DTRI,
TINH_TRANG_RV, NGAY_TTOAN, MUC_HUONG , T_THUOC, T_VTYT,
T_TONGCHI, T_BNTT, T_BHTT, T_NGUONKHAC, T_NGOAIDS, NAM_QT,
THANG_QT, MA_LOAI_KCB, MA_KHOA, MA_CSKCB, MA_KHUVUC,
MA_PTTT_QT, CAN_NANG, COSOKCB_ID, TINHTHANH_ID, TRANGTHAI,
HOSO_ID, KYGIAMDINH_ID, MIEUTA, STATUS, NGAY_SINH, NGAY_RA,
92
NGAY_VAO, GT_THE_TU, GT_THE_DEN, RESULTCHUNG, RESULTTHUOC,
RESULTDICHVU, NGUOIGIAMDINH_ID, NGAYTHANHTOAN,
DOTGIAMDINH_ID, TRONGMAU, LOAI_BN, NGAYNHAN,
RESULTCHUNG_TD, RESULTTHUOC_TD, RESULTDICHVU_TD,
TRANGTHAI_TD, THEODOI, GIAMDINHTIEP, KETQUA, STTMAU,
KETQUA_TD, MA_LYDO_VVIEN_TD, MUC_HUONG_TD, LYDOXT,
XUATTOAN, K_XETNGHIEM, K_CDHATDCN, K_THUOC, K_MAU, K_PTTT,
K_VTYT, H_DVKT, H_THUOC, H_VTYT, TIENKHAM, VANCHUYEN,
TIENGIUONG, K_XETNGHIEM_QT, K_CDHATDCN_QT,
K_THUOC_QTK_MAU_QT, K_PTTT_QT, K_VTYT_QT, H_DVKT_QT,
H_THUOC_QT, H_VTYT_QT, TIENKHAM_QT, VANCHUYEN_QT,
TIENGIUONG_QT, T_BNTT_QT, MUC_HUONG_BV, MA_LYDO_VVIEN_BV,
K_XETNGHIEM_KTL, K_CDHATDCN_KTL, K_THUOC_KTL, K_MAU_KTL,
K_PTTT_KTL, K_VTYT_KTL, H_DVKT_KTL, H_THUOC_KTL, H_VTYT_KTL,
TIENKHAM_KTL, VANCHUYEN_KTL, TIENGIUONG_KTL, T_NGOAIDS_QT,
CHOTDLQUY_ID, CHOTDLNAM_ID, ISNEW, XML1_GOP_ID,
PHANCONG_ID, KY_QT, GHICHUHS, T_TONGCHI_TD, T_BHTT_TD,
T_TONGCHI_XT, QTTHE, LOAI_THE, ISEDIT, NGAY_XU_LY,
MODIFIER_DATE, T_TONGCHI_XTTD
XML2_9324: Thông chi tiết các thuốc mà bệnh nhân sử dụng trong quá trình khám
chữa bệnh
ID, MA_LK, STT, MA_THUOC, MA_NHOM, TEN_THUOC, DON_VI_TINH,
HAM_LUONG, DUONG_DUNG, LIEU_DUNG, SO_DANG_KY, SO_LUONG,
TY_LE, MA_KHOA, MA_BAC_SI, MA_BENH, MA_PTTT, COSOKCB_ID,
TINHTHANH_ID, TRANGTHAI, HOSO_ID, XML1_9324_ID, KYGIAMDINH_ID,
MIEUTA, STATUS, NGAY_YL, THUOC_ID, NGUOIGIAMDINH_ID, LYDO_ID,
SOLUONG_TD, LYDO_TEN, MA_THUOC_GOC, SO_LUONG_BV, TY_LE_TD,
TEN_THUOC_GOC, XML2_GOC_ID, DON_GIA, DON_GIA_BV,
DON_GIA_TD, THANH_TIEN, KY_QT, DON_VI_TINH_GOC, THEMMOI,
NGAY_YL_NUMBER, SL192021, DG192021, MA192021, SL_VUOTTHAU,
MUC_HUONG, SL_DOT_NGTRU, TYLE_DOT_NGTRU
93
XML3_9324: Thông tin chi tiết các dịch vụ kỹ thuật, vật tư mà bệnh nhân sử dụng
trong quá trình khám chữa bệnh
ID, MA_LK, STT, MA_DICH_VU, MA_VAT_TU, MA_NHOM, TEN_DICH_VU,
DON_VI_TINH, SO_LUONG, TYLE_TT, MA_KHOA, MA_BAC_SI, MA_BENH,
NGAY_YL, NGAY_KQ, MA_PTTT, COSOKCB_ID, TINHTHANH_ID,
TRANGTHAI, HOSO_ID, XML1_9324_ID, KYGIAMDINH_ID, MIEUTA,
STATUS, NGUOIGIAMDINH_ID, LYDO_ID, SOLUONG_TD, LYDO_TEN,
MA_VATTU_GOC, MA_DICHVU_GOC, MA_GIA_DV, THEMMOI,
SO_LUONG_BV, TY_LE_TD, TEN_DICHVU_GOC, XML3_GOC_ID, DON_GIA,
DON_GIA_BV, DON_GIA_TD, THANH_TIEN, KY_QT, T_NGUONKHAC,
DON_VI_TINH_GOC, TYLE_APTRAN, NGAY_YL_NUMBER,
NGAY_KQ_NUMBER, SL192021, DG192021, MA192021, MUC_HUONG,
GOI_VTYT, SL_DOT_NGTRU, TYLE_DOT_NGTRU
XML4_9324: Thông tin chỉ tiêu chỉ số kết quả cận lâm sang
ID, MA_LK, STT, MA_DICH_VU, MA_CHI_SO, TEN_CHI_SO, GIA_TRI,
MA_MAY, MO_TA, KET_LUAN, NGAY_KQ, HOSO_ID, KYGIAMDINH_ID,
COSOKCB_ID, TINHTHANH_ID, TRANGTHAI, MIEUTA, STATUS,
XML1_9324_ID, NGUOIGIAMDINH_ID, NGAYKETQUA, KY_QT
XML5_9324: Thông tin chỉ tiêu theo dõi diễn biến lâm sang
ID, MA_LK, STT, DIEN_BIEN, HOI_CHAN, PHAU_THUAT, NGAY_YL,
HOSO_ID, KYGIAMDINH_ID, COSOKCB_ID, TINHTHANH_ID, TRANGTHAI,
MIEUTA, STATUS, XML1_9324_ID, NGUOIGIAMDINH_ID, NGAYYLENH,
MABACSI, KY_QT
Một số bảng khác:
DM_FUNCTION: danh sách các quy tắc hồ sơ, quy định bật hay tắc các quy tắc
KEY, VALUE, DESCRIPTION, TYPE, RESULT, START_DATE, END_DATE,
LYDO_ID, HIEULUC
DM_FUNCTION_DM: danh sách các quy tắc danh mục, quy định bật hay tắt các
quy tắc
94
KEY, VALUE, DESCRIPTION, TYPE, RESULT, START_DATE, END_DATE,
HIEULUC
Với các bảng XML1_9324 sẽ có quan hệ 1-n với các bảng XML2_9324,
XML3_9324, XML4_9324, XML5_9324 với khóa ngoại là XML1_9324_ID.
Các file đính kèm theo tài liệu này:
- luan_van_phan_tich_va_xay_dung_chuc_nang_giam_dinh_tu_dong_t.pdf