ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO CUỐI KỲ
MÔN HỌC: CÔNG NGHỆ BLOCKCHAIN
ĐỀ TÀI 7
XÂY DỰNG WEBSITE QUẢN LÝ BỆNH ÁN TRÊN
NỀN TẢNG HYPERLEDGER
SINH VIÊN THỰC HIỆN:
NGUYỄN MẠNH ĐỨC
LỚP: 19TCLC_DT2 NHÓM:
NGUYỄN VĂN VĨNH
LỚP: 19TCLC_DT2 NHĨM:
GIẢNG VIÊN HƯỚNG DẪN: TS. NGUYỄN TẤN KHƠI
Đà Nẵng, 11/ 2022
Cơng nghệ Blockchain
MỤC LỤC
MỤC LỤC..............................................................................................................
DANH SÁCH HÌNH VẼ........................................................................................
DANH SÁCH BẢNG BIỂU...................................................................................
DANH SÁCH CÁC TỪ VIẾT TẮT.......................................................................
MỞ ĐẦU (GIỚI THIỆU ĐỀ TÀI)..........................................................................
CHƯƠNG 1. CƠ SỞ LÝ THUYẾT........................................................................
1.1.
….............................................................................................................
1.2.
….............................................................................................................
CHƯƠNG 2. PHÂN TÍCH THIẾT KẾ HỆ THỐNG..............................................
2.1.
….............................................................................................................
2.2.
….............................................................................................................
CHƯƠNG 3. TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ......................................
3.1.
….............................................................................................................
3.2.
….............................................................................................................
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN..............................................................
TÀI LIỆU THAM KHẢO.......................................................................................
[1] Tên tác giả, Tên tài liệu, Tên nhà xuất bản, năm xuất bản.................................
[2] Tên chủ sở hữu, Tên bài viết, url, ngày truy cập...............................................
PHỤ LỤC...............................................................................................................
Mạnh Đức, Văn Vĩnh
Trang
Cơng nghệ Blockchain
DANH SÁCH HÌNH VẼ
No table of figures entries found.
Mạnh Đức, Văn Vĩnh
Trang
Công nghệ Blockchain
DANH SÁCH BẢNG BIỂU
No table of table entries found.
Mạnh Đức, Văn Vĩnh
Trang
Công nghệ Blockchain
DANH SÁCH CÁC TỪ VIẾT TẮT
No table of abbreviation entries found.
Mạnh Đức, Văn Vĩnh
Trang
Công nghệ Blockchain
MỞ ĐẦU
Chuỗi khối là một danh sách ngày càng tăng các bản ghi được liên kết với
nhau trong một mạng phân tán. Các bản ghi được liên kết này được gọi là sổ cái
có bản chất khơng thay đổi, cung cấp khả năng chống lại sự thay đổi. Chuỗi khối
cung cấp một cách an toàn để xử lý dữ liệu trong mơi trường phân tán. Nó đã
tham gia rộng rãi vào tiền điện tử trong những ngày đầu và tuy nhiên, ứng dụng
của nó trong bitcoin đã thúc đẩy và truyền cảm hứng cho các ứng dụng khác để
điều chỉnh các khái niệm của nó. Ứng dụng của nó trong chăm sóc sức khỏe địi
hỏi blockchain phải có tính bảo mật cao, cung cấp một mơi trường đáng tin cậy
hơn so với blockchain truyền thống, nghĩa là theo thiết kế phải là một blockchain
cấp doanh nghiệp bằng cách hạn chế quyền truy cập của công chúng.
Hyperledger Fabric đáp ứng tất cả các yêu cầu này trong việc cung cấp một mơi
trường an tồn và phân tán cho các hệ thống chăm sóc sức khỏe. Trong lĩnh vực
chăm sóc sức khỏe, có rất nhiều lĩnh vực có thể áp dụng Hyperledger Fabric,
nhưng trọng tâm ở đây là quản lý hồ sơ bệnh án của bệnh nhân. Theo truyền
thống, các hồ sơ y tế hoặc được lưu trữ tập trung trong cơ sở dữ liệu mà chỉ các
bệnh viện sở hữu nó mới có thể truy cập được, điều này gây ra nhiều vấn đề cho
bệnh nhân. Ở đây, việc áp dụng Hyperledger Fabric có thể mở đường cho các
giao dịch suôn sẻ hơn nhiều cho bệnh nhân và các bệnh viện liên quan. Mục đích
là để xem xét kịch bản thực tế về cách xử lý hồ sơ, cách bệnh nhân sẽ tương tác
trong thế giới thực và thiết kế một hệ thống sử dụng Hyperledger Fabric để giải
quyết các vấn đề lớn nếu khơng muốn nói là tất cả. Bằng cách sử dụng kiến trúc
được đề xuất, một mô phỏng được thực hiện với các kịch bản được xác định và
so sánh với hệ thống cơ sở dữ liệu truyền thống, đồng thời thảo luận về ưu điểm
và nhược điểm của việc sử dụng kết cấu Hyperledger. Điều này sẽ cung cấp một
bức tranh rõ ràng về việc liệu Hyperledger Fabric có phù hợp để duy trì hồ sơ y
tế của bệnh nhân hay khơng, hoặc liệu có bất kỳ thiếu sót nào trong cơng nghệ
ngăn cản việc điều chỉnh hồn tồn Hyperledger Fabric trong trường hợp nói trên
hay không.
Mạnh Đức, Văn Vĩnh
Trang
Công nghệ Blockchain
CHƯƠNG 1. CƠ SỞ LÝ THUYẾT
1.1.
Đặt vấn đề:
Blockchain đang trở nên phổ biến nhờ thiết kế phi tập trung, cơ sở dữ liệu
chống thay đổi và xử lý dữ liệu an toàn và chứng tỏ là một hệ thống an tồn hơn
nhiều. Bắt đầu với ý tưởng có các khối được bảo mật bằng mật mã để duy trì các
tài liệu có dấu thời gian cố định để triển khai nó làm cơ sở cho tiền điện tử bằng
bitcoin, để có các chuỗi khối được phân loại doanh nghiệp, nó đang phát triển
nhanh chóng. Theo truyền thống, nó được sử dụng rộng rãi trong lĩnh vực tài
chính, sau sự phát triển huy hồng của Bitcoin, một số cơng nghệ Chuỗi khối
khác đã xuất hiện để tăng cường sử dụng nó bên cạnh khía cạnh tài chính và bắt
đầu lan rộng nguồn gốc của nó sang nhiều lĩnh vực khác như chăm sóc sức khỏe,
chuỗi cung ứng và các khái niệm công nghiệp 4.0 khác. Do xử lý dữ liệu an tồn
và mạng phi tập trung, nó cung cấp một cách hiệu quả để xử lý dữ liệu. Như
trường hợp của Bitcoin ngay từ khi bắt đầu công nghệ này, mục tiêu chính của
Bitcoin là cung cấp quyền truy cập vào các phong trào tài chính ẩn danh, đáng tin
cậy, có thể bảo mật và có thể kiểm tra được. Hơn nữa, blockchain tạo ra kho lưu
trữ dữ liệu đáng tin cậy và an toàn bằng cách sử dụng các kỹ thuật mã hóa với sự
kết hợp của các thủ tục đồng thuận phân tán. Trong trường hợp của Bitcoin, đảm
bảo ngăn chặn sự tham gia của bên thứ ba này vào giao dịch. Chuỗi khối chủ yếu
sử dụng khái niệm sổ cái phân tán, đại diện cuối cùng của một chuỗi có trật tự và
tương quan của một số giao dịch tài chính. Các giao dịch này diễn ra trên một
mạng không đáng tin cậy sử dụng bằng chứng về nhiệm vụ để hoàn thành thỏa
thuận giữa các bên. Mặc dù Blockchain đang được tất cả mọi người u thích,
nhưng nó dự kiến sẽ có tác động lớn trong những năm sắp tới và sẽ được sử dụng
đáng kể trong các lĩnh vực như quản lý chuỗi cung ứng, IoT- Internet vạn vật,
chăm sóc sức khỏe và nhiều hơn nữa trong tương lai. Chuỗi khối có thể được sử
dụng trong chăm sóc sức khỏe cho luồng truyền dữ liệu an tồn thích hợp để đảm
bảo tính bảo mật của dữ liệu nhạy cảm, để theo dõi bệnh nhân giữa các cơ sở y tế
cũng như cho phép minh bạch về phương pháp điều trị được cung cấp cho bệnh
nhân.
Quản lý hồ sơ bệnh án của bệnh nhân luôn là một cơng việc tẻ nhạt vì đây
là dữ liệu cực kỳ nhạy cảm cần được xử lý cẩn thận. Hồ sơ sức khỏe điện tử
(EHR) giúp dễ dàng truy xuất nguồn gốc lịch sử y tế của bệnh nhân, cung cấp
thêm thơng tin cho bác sĩ vì nó giúp họ khám phá ngân hàng dữ liệu sức khỏe của
bệnh nhân để đưa ra quyết định phù hợp trong việc cung cấp phương pháp điều
trị tốt nhất, nhưng nó cũng có những vấn đề riêng. Khi nói đến EHR, cần phải
chú ý thêm để cung cấp tính bảo mật, khả năng truy cập dễ dàng và có thể kiểm
tra được. Ví dụ, bất cứ khi nào chúng ta nghĩ về thông tin, đặc biệt là dữ liệu cá
Mạnh Đức, Văn Vĩnh
Trang
Công nghệ Blockchain
nhân của chúng ta được lưu trữ trực tuyến hoặc chuyển giao trực tuyến lúc đầu,
đó là mối quan tâm lớn về thao tác dữ liệu, mất mát hoặc bị đánh cắp khác dẫn
đến dữ liệu khơng có sẵn trong khoảng thời gian cần thiết. Thực hiện truyền dữ
liệu an toàn và đáng tin cậy giữa các tổ chức qua một mạng khơng bảo mật. Việc
có một EHR duy nhất cho mỗi người sẽ tạo ra một lượng lớn dữ liệu phải được
xử lý trong các hệ thống tập trung. "Nói một cách dễ hiểu, trong lĩnh vực tài
chính, tổng số giao dịch tài chính do Bitcoin thực hiện đã đạt 400 triệu giao dịch
trong mười năm. Trong bối cảnh này, trong lĩnh vực y tế của Brazil, đã có 1,4 tỷ
lượt bệnh nhân đến khám chỉ trong năm 2018 bởi Hệ thống y tế hợp nhất của nó.
Tại Trung Quốc, đã có khoảng 7 tỷ lượt bệnh nhân vào năm 2017."[4] Điều này
lại tạo ra nhiều vấn đề khác nhau về khả năng bảo trì, khả năng tiếp cận, bảo mật,
độ tin cậy và khả năng tương tác. Để tránh xa những tình huống có vấn đề như
vậy, blockchain có thể được điều chỉnh để xử lý dữ liệu của bệnh nhân.
Việc áp dụng công nghệ chuỗi khối trong lĩnh vực chăm sóc sức khỏe có
thể chuyển đổi hệ thống hiện có bằng cách cung cấp độ tin cậy cao hơn và khả
năng truy cập dễ dàng thông qua mạng phân tán, bảo mật bằng cách sử dụng các
phương pháp mã hóa và khả năng kiểm tra thông qua các bản ghi bất biến. Để đạt
được tất cả các yêu cầu này, một chuỗi khối phải có các tính năng đã nói ở trên
cùng với mạng được phân loại doanh nghiệp để hạn chế quyền truy cập công
khai mà không được phép. Hyperledger Fabric đáp ứng điều này bằng cách cung
cấp chính xác cùng một loại chuỗi khối. Hyper-ledger Fabric cung cấp một mạng
chuỗi khối cấp doanh nghiệp sử dụng khái niệm hợp đồng thông minh để thực
hiện các giao dịch trong mạng. Điều này có thể chứng minh là một giải pháp
tuyệt vời trong việc giải quyết các vấn đề đặt ra bởi các hệ thống cơ sở dữ liệu
truyền thống trong lĩnh vực chăm sóc sức khỏe cùng với các vấn đề liên quan đến
chính lĩnh vực chăm sóc sức khỏe đó.
Trong bài báo này, nội dung thảo luận chính là về quản lý dữ liệu bệnh
nhân, đây sẽ là quá trình truyền dữ liệu an toàn linh hoạt giữa các chuyên gia y tế
thuộc các tổ chức khác nhau và cung cấp khả năng tiếp cận dễ dàng cho bệnh
nhân thông qua việc sử dụng Hyperledger Fabric.
1.2.
Mục đích:
Chăm sóc sức khỏe là một trong những ngành cơng nghiệp quan trọng nhất
hiện có. Trong thời đại cơng nghệ và đổi mới này, ngành Chăm sóc sức khỏe đôi
khi tạo ra ảo tưởng về một ngoại lệ. Nếu chúng ta nghĩ về nó, rất nhiều cơng việc
trong Bệnh viện, chẳng hạn như lưu trữ và quản lý dữ liệu của bệnh nhân, được
thực hiện giống như cách đã được thực hiện một thập kỷ trước. Mặt khác, chúng
ta có thể thấy các số liệu thống kê như tuổi thọ và tỷ lệ tử vong cho thấy đã có
những đổi mới lớn trong ngành chăm sóc sức khỏe. Để giải mã những tuyên bố
mâu thuẫn này, chúng ta cần hiểu sự khác biệt giữa đổi mới theo chiều dọc và
chiều ngang. Đổi mới theo chiều dọc nói về sự đổi mới cụ thể cho một lĩnh vực
Mạnh Đức, Văn Vĩnh
Trang
Công nghệ Blockchain
hoặc ngành trong khi đổi mới theo chiều ngang là những đổi mới xuyên suốt các
ngành hoặc ngành dọc khác nhau [2]. Mặc dù đã có rất nhiều đổi mới theo chiều
dọc trong lĩnh vực chăm sóc sức khỏe, nhưng những đổi mới theo chiều ngang
vẫn chưa tương tác tốt với ngành này. Chuỗi khối là một ví dụ tuyệt vời về sự đổi
mới theo chiều ngang, một điều có thể rất có lợi cho ngành chăm sóc sức khỏe
liên quan đến việc lưu trữ và chia sẻ dữ liệu của bệnh nhân bằng điện tử.
Để hiểu việc sử dụng chuỗi khối trong quản lý dữ liệu bệnh nhân, chúng ta
cần đi sâu vào một số yêu cầu trong miền này:
Khả năng tương tác có lẽ là yêu cầu lớn nhất vì việc truy cập vào tiền sử
bệnh của bệnh nhân là điều cần thiết để kê đơn thuốc chính xác. Lý tưởng
nhất là dữ liệu bệnh nhân có thể được sử dụng trên các tổ chức chăm sóc
sức khỏe khác nhau bởi các bên liên quan khác nhau như bệnh nhân, bác sĩ,
v.v. .
Quyền riêng tư và bảo mật là những khía cạnh quan trọng khác cần được
tính đến. Hồ sơ sức khỏe có thể chứa thơng tin cá nhân, tính bảo mật của
thơng tin này không nên bị xâm phạm.
Hồ sơ sức khỏe phải có thể kiểm tra được và khơng bị giả mạo. Cần có một
hệ thống minh bạch nhưng an tồn, trong đó bất kỳ thay đổi nào về trạng
thái của cơ sở dữ liệu đều có thể được ghi lại và truy ngược lại thực thể đã
thực hiện thay đổi.
Cần có một hệ thống lấy bệnh nhân làm trung tâm để bệnh nhân kiểm sốt
dữ liệu của mình.
Với các yêu cầu nêu trên, việc sử dụng phương pháp tiếp cận hệ thống tập
trung trở nên khá khó khăn. Cách tiếp cận tập trung gây khó khăn trong việc đáp
ứng yêu cầu về khả năng tương tác vì dữ liệu được lưu trữ trong cơ sở dữ liệu
trung tâm của một tổ chức và khả năng chặn thông tin vẫn có thể xảy ra. Ngồi
ra, cần phải có mức độ tin cậy cao trong một hệ thống như vậy vì khơng có tính
minh bạch và quản trị viên của cơ sở dữ liệu tập trung có thể thao túng dữ liệu
(giả mạo) mà không bị theo dõi. Một bất lợi khác là có một điểm thất bại duy
nhất.
Một blockchain được phép có vẻ phù hợp với tình huống này. Chuỗi khối là
một sổ cái phân tán không thay đổi. Chuỗi khối được phép (riêng tư) không mở
cho tất cả mọi người mà chỉ những người tham gia đáng tin cậy mới được chọn là
một phần của hệ thống như vậy. Nó thuận lợi cho khả năng tương tác vì nó là
một hệ thống phân tán. Nó là một phương tiện an toàn và đáng tin cậy đáp ứng
các yêu cầu về quyền riêng tư và bảo mật. Nó cung cấp một hệ thống có thể kiểm
tra và chống giả mạo vì các chuỗi khối là bất biến và lịch sử giao dịch được ghi
lại.
Mạnh Đức, Văn Vĩnh
Trang
Cơng nghệ Blockchain
Tóm lại, động lực chính cho dự án này là sử dụng chuỗi khối được cấp phép
để thiết kế một hệ thống quản lý dữ liệu bệnh nhân (dưới dạng hồ sơ sức khỏe
điện tử) lấy bệnh nhân làm trung tâm và trao quyền cho bệnh nhân kiểm sốt dữ
liệu của mình. dữ liệu tốt hơn. Hệ thống này tính đến các yếu tố như khả năng
tương tác, quyền riêng tư, bảo mật, tính minh bạch và khả năng kiểm tra hồ sơ
sức khỏe điện tử.
1.3.
Giới thiệu Hyperledger Fabric:
Chuỗi khối đã xuất hiện trong hai thập kỷ qua nhưng vì cơng nghệ này liên
quan đến nhiều bên hoặc thực thể và những thực thể này có thể đáng tin cậy
và/hoặc không đáng tin cậy nên Chuỗi khối chưa được xem xét cho các ứng dụng
doanh nghiệp. Nhưng với khái niệm về blockchain được phép, nhiều công nghệ
xuất hiện cho các mạng blockchain đáng tin cậy. Một số ví dụ về chuỗi khối
được phép là NEM, Quorum, Chain core và Hyperledger Fabric.
Linux đã bắt đầu dự án Hyperledger Fabric, một chuỗi khối riêng tư và
được phép. Nó cung cấp một mạng sổ cái phân tán bất biến được phép cho các
doanh nghiệp thực hiện các giao dịch công khai cũng như bí mật trong cùng một
mạng. Nó cung cấp một mạng con đáng tin cậy trong một mạng chia sẻ chỉ cho
phép các bên đáng tin cậy tham gia vào mạng con đáng tin cậy này. Nó cung cấp
một mạng trong mạng cho phép người tham gia giao tiếp cả giao dịch khơng bí
mật và bí mật với các thực thể mạng khác theo u cầu.
Vì chuỗi khối có sổ cái bất biến và mỗi sổ cái được thêm vào sau khi phê
duyệt giao dịch. Các thuật toán khác nhau đã được sử dụng trong các chuỗi khối
công khai, Proof of Work (PoW) và Proof of Stake (PoS) là những ví dụ về các
thuật tốn như vậy được sử dụng trong phê duyệt giao dịch. Các thuật toán như
vậy dựa trên sự đồng thuận và yêu cầu một số người tham gia đồng thuận để phê
duyệt bất kỳ giao dịch nào. Cách tiếp cận này không tuân thủ khi nói đến các
giao dịch doanh nghiệp, vì khơng phải lúc nào cũng cần có sự chấp thuận của tất
cả người tham gia, chỉ cần hai người tham gia hoặc thậm chí sự chấp thuận của
một người tham gia là đủ cho một số giao dịch nhất định và không thể đồng
thuận với PoW và PoS. Để khắc phục nhược điểm này, các chính sách chứng
thực đã được giới thiệu trong Hyperledger Fabric để phê duyệt giao dịch và mỗi
người tham gia đã được chỉ định vai trò của họ. Mạng Hyperledger Fabric liên
quan đến nhiều vai trò và thành phần và sẽ dễ giải thích hơn sau khi xác định các
vai trò và thành phần này:
Membership service provider (MSP): tất cả các thực thể mạng trong Hyperledger Fabric tự đăng ký sử dụng nhà cung cấp dịch vụ thành viên. Mọi tổ
chức trong Hyperledger Fabric đều có thể có MSP của riêng mình và sau
đó, một MSP chung sẽ được yêu cầu để thực hiện giao dịch trên mạng.
Distributed ledger: Hyperledger Fabric cung cấp một sổ cái bất biến với
mỗi ngang hàng cam kết và được thêm vào sau mỗi giao dịch thành công.
Mạnh Đức, Văn Vĩnh
Trang
Cơng nghệ Blockchain
Mỗi sổ cái có thêm hai thành phần là trạng thái thế giới và nhật ký giao
dịch. Trạng thái thế giới có trạng thái sổ cái hiện tại trong khi nhật ký giao
dịch lưu giữ hồ sơ của tất cả các giao dịch dẫn đến trạng thái thế giới.
Consensus: Nó chỉ xảy ra trong Hyperledger Fabric thơng qua một số đồng
nghiệp nhất định. Chính sách xác nhận xác định ít nhất có bao nhiêu đồng
nghiệp phải phê duyệt giao dịch trước khi sổ cái được thêm vào.
Smart contracts: Đây là các mã chương trình cung cấp cho người tham gia
Hyperledger Fabric quyền truy cập có kiểm soát vào sổ cái. Mọi nhiệm vụ
hoặc chức năng được thực hiện trong Hyperledger Fabric thông qua các hợp
đồng thông minh được xác định trước. Các hợp đồng thông minh này đang
được viết bằng lập trình chung như Go, Javascript, Java, v.v. và không phải
bằng bất kỳ ngôn ngữ dành riêng cho miền nào.
Chaincode: Đó là một gói hợp đồng thơng minh và chính sách chứng thực
và đã được xác định trên một kênh tại thời điểm tạo kênh và tất cả những
người tham gia kênh phải phê duyệt chaincode để tham gia vào bất kỳ giao
dịch nào thông qua kênh này. Chaincode chứa tất cả các tác vụ có thể được
thực hiện trên mạng.
Channel: Mạng blockchain được phép trong đó chỉ những người tham gia
được phép mới có thể truy cập. Tất cả các giao dịch trong Hyperledger
Fabric được thực hiện thông qua một kênh.
Peer: Các thực thể mạng chứa sổ cái và liên quan trực tiếp đến giao dịch.
Các tổ chức tham gia vào Hyperledger Fabric kết nối với mạng bằng cách
sử dụng các đồng nghiệp này. Có hai loại đồng nghiệp: Đồng nghiệp xác
nhận chịu trách nhiệm xác nhận các giao dịch theo các chính sách đã xác
định. Trong khi các đồng nghiệp xác nhận cam kết các giao dịch một khi nó
được xác nhận bởi số lượng tối thiểu các đồng nghiệp xác nhận theo chính
sách chứng thực.
Orderer: Một thực thể mạng chịu trách nhiệm đặt hàng các giao dịch trong
đó các giao dịch sẽ được thêm vào tất cả các sổ cái sau khi xác nhận. Có thể
có nhiều người đặt hàng trong một mạng lưới và sẽ tạo thành một dịch vụ
đặt hàng.
Sau khi xác định các thành phần và vai trị, Hyperledger Fabric có thể được
giải thích là một chuỗi khối trong đó các tổ chức được quản trị viên cho phép,
truy cập các kênh thông qua các đồng nghiệp. Vai trị của các đồng nghiệp này có
thể được nhận ra bằng cách sử dụng MSP. Các tổ chức có thể có nhiều đồng
nghiệp và những đồng nghiệp này có thể đóng vai trị vừa là đồng nghiệp cam kết
vừa là đồng nghiệp xác nhận. Một ứng dụng hoặc SDK cung cấp một cổng để
các tổ chức này truy cập vào kênh. Thông qua ứng dụng này, các tổ chức được
phép có thể yêu cầu giao dịch. Các đồng nghiệp chứng thực xác nhận các giao
Mạnh Đức, Văn Vĩnh
Trang
Công nghệ Blockchain
dịch sau khi xác thực và gửi chúng cho Người đặt hàng. Người đặt hàng đặt hàng
chuỗi giao dịch và sau đó gửi chuỗi đó cho các đồng nghiệp cam kết. Các đồng
nghiệp cam kết sau khi xác minh rằng các giao dịch này đã được xác nhận bởi
các đồng nghiệp xác nhận cam kết các giao dịch. Trong Hyperledger Fabric, tất
cả các đồng nghiệp cam kết đều chứa một sổ cái và cập nhật tất cả các sổ cái
đồng thời.
1.4.
Hyperledger Fabric và Hệ thống bệnh án:
Hyperledger Fabric cung cấp giải pháp khả thi cho các vấn đề đặt ra khi xử
lý Hồ sơ sức khỏe điện tử (EHR). Là một chuỗi khối được phép, Hyperledger
Fabric chỉ cho phép những người tham gia có thể nhận dạng (các tổ chức y tế)
tham gia vào các giao dịch, do đó có thể tạo ra một hệ thống những người tham
gia đáng tin cậy 'có khả năng'. Như đã giải thích trong phần trước, sổ cái phân tán
của Hyperledger Fabric được sử dụng để phân cấp EHR, giúp giải quyết vấn đề
tập trung hóa hồ sơ, nhằm tránh điểm lỗi duy nhất và duy trì tính sẵn sàng cao,
đồng thời giảm chi phí chuyển EHR sang viện y tế khác trong trường hợp cần
thiết bằng cách loại bỏ người trung gian. Do đó, dữ liệu có thể được minh bạch
hơn cho bệnh nhân. Sổ cái bất biến mang lại lợi thế là duy trì tính tồn vẹn của
EHR và lịch sử y tế của bệnh nhân cũng có thể được theo dõi dễ dàng, do đó đạt
được khả năng kiểm toán.
EHR yêu cầu mức độ bảo mật cao, hạn chế quyền truy cập vào hồ sơ của
nhân viên được ủy quyền và mức độ mã hóa cao. Hyperledger Fabric cung cấp
nhiều tính năng có thể cắm khác nhau hỗ trợ việc này. Một tính năng đáng chú ý
như vậy là liên hệ thơng minh mà qua đó có thể truy cập sổ cái, sử dụng các chức
năng cốt lõi của hệ thống y tế này có thể được xây dựng với hợp đồng thơng
minh. Ví dụ: xác định cách tạo EHR, ai có quyền truy cập vào nó, ai có thể sửa
đổi nội dung của EHR và nhiều chức năng khác. Cũng sẽ có trường hợp bệnh
nhân có thể muốn thu hồi quyền truy cập vào một bác sĩ hoặc tổ chức y tế cụ thể
và cấp quyền truy cập cho người khác, điều này có thể đạt được với sự trợ giúp
của hợp đồng thông minh. Do các hợp đồng thơng minh này trong đó các chức
năng cốt lõi của hệ thống được xác định, các chức năng này có thể được tách
thành nhiều liên hệ thơng minh do đó cung cấp khả năng bảo trì của hệ thống. Ví
dụ, trong trường hợp có bất kỳ thay đổi nào trong hành vi của hệ thống, một chức
năng mới sẽ được cung cấp cho các bác sĩ, được xác định trong hợp đồng thơng
minh và có thể dễ dàng thay thế bằng một hợp đồng thông minh khác mà không
ảnh hưởng đến tồn bộ hệ thống chăm sóc sức khỏe.
Một ưu điểm lớn khác của việc sử dụng Hyperledger Fabric là khái niệm
thu thập dữ liệu riêng tư, điều này cho phép tổ chức tham gia giữ dữ liệu của họ ở
chế độ riêng tư với các tổ chức khác trong khi vẫn duy trì tính chất phi tập trung
của Hyperledger Fabric. Điều này đạt được bằng cách lưu trữ dữ liệu trong một
bộ sưu tập riêng trong đó bộ sưu tập có thể thuộc sở hữu của một hoặc nhiều tổ
Mạnh Đức, Văn Vĩnh
Trang
Công nghệ Blockchain
chức và giá trị băm của dữ liệu đó đang được phân phối trên mạng. Nếu một tổ
chức bên ngồi bộ sưu tập muốn kiểm tra tính tồn vẹn của dữ liệu, tổ chức đó có
thể yêu cầu giá trị băm của bộ sưu tập và kiểm tra giá trị đó với giá trị mà nó có
tại bất kỳ thời điểm nào. Ngoài ra, dữ liệu thực tế khơng bao giờ được truyền
trong mạng và nó khơng bao giờ rời khỏi bộ sưu tập. Trong hệ thống chăm sóc
sức khỏe, việc thu thập dữ liệu riêng tư này phục vụ mục đích của nó bằng cách
cung cấp bảo mật và mã hóa rất cần thiết cho các EHR.
Sau đó, có các thành phần bổ sung hỗ trợ hoạt động trơn tru của hệ thống
chăm sóc sức khỏe, chẳng hạn như Cơ quan cấp chứng chỉ, sử dụng mà bệnh
nhân, bác sĩ và chính bệnh viện có thể được ủy quyền kỹ thuật số. Tương tự, có
nhiều thành phần mô-đun khác nhau giải quyết các thách thức trong hệ thống
chăm sóc sức khỏe. Hệ thống chăm sóc sức khỏe sử dụng Hyperledger Fabric có
thể được chia thành nhiều thành phần. Đầu tiên, bản thân mạng với một số bệnh
viện là tổ chức với các nút ngang hàng của họ để lưu trữ các hợp đồng thông
minh xác định cách hệ thống chăm sóc sức khỏe có thể vận hành và sổ cái phân
tán lưu trữ EHR. Sau đó, kênh trong mạng nơi diễn ra giao tiếp giữa các bệnh
viện. Tiếp theo là các chức năng của hệ thống chăm sóc sức khỏe, cách thức hoạt
động của nó được xác định trong hợp đồng thông minh. Giao tiếp giữa người
dùng là bệnh nhân/bác sĩ diễn ra thông qua các API được cung cấp trong Bộ công
cụ phát triển phần mềm (SDK), sau đó gọi các chức năng trong hợp đồng thông
minh
để
thực
hiện
các
giao
dịch.
Mạnh Đức, Văn Vĩnh
Trang
Cơng nghệ Blockchain
CHƯƠNG 2. PHÂN TÍCH THIẾT KẾ HỆ THỐNG
1.1. Mô tả hệ thống:
Kiến trúc của hệ thống quản lý dữ liệu bệnh nhân bao gồm các thành phần
sau: Một kênh liên lạc, một tập đoàn bao gồm hai tổ chức (bệnh viện), Nhà cung
cấp dịch vụ thành viên (MSP) và Cơ quan cấp chứng chỉ cho mỗi bệnh viện, một
cá nhân ngang hàng. đối với mỗi bệnh viện, một sổ cái với một bản sao trạng thái
thế giới trên mỗi bệnh viện ngang hàng, chuỗi mã được triển khai trên mỗi bệnh
viện ngang hàng, một dịch vụ đặt hàng với một nút đặt hàng, một chính sách xác
nhận, các tác nhân và một ứng dụng web. Có thể tham khảo Hình 2.1 để hiểu rõ
hơn về kiến trúc được đề xuất.
Để giữ cho kiến trúc đơn giản và có thể mở rộng, chỉ có một kênh (kênh C)
trong hệ thống. Tất cả các tổ chức bệnh viện truy cập vào kênh này để thực hiện
bất kỳ giao dịch nào. Ban đầu, hai bệnh viện (tổ chức) là một phần của kiến trúc
này nhưng có sự linh hoạt và nhiều bệnh viện có thể được thêm vào khi cần thiết.
Mỗi bệnh viện có Nhà cung cấp dịch vụ thành viên (MSP) và Cơ quan cấp chứng
chỉ (CA) riêng chịu trách nhiệm tạo các cặp khóa cơng khai-riêng tư cho các tổ
chức và ký các chứng chỉ. Các tổ chức không thể tương tác trực tiếp với kênh
trong mạng Hyperledger Fabric, vì vậy họ cần các đồng nghiệp để truy cập kênh.
Ở đây chúng tơi có một đồng đẳng cho mỗi bệnh viện. Mỗi ngang hàng có một
bản sao của cơ sở dữ liệu trạng thái bao gồm trạng thái thế giới hiện tại của
mạng. Khi bất kỳ giao dịch tạo, đọc, cập nhật hoặc xóa nào được thực hiện, trạng
thái thế giới được cập nhật cho tất cả các sổ cái ngang hàng. Hợp đồng thông
minh được viết cho mọi loại tương tác cần thiết với mạng Hyperledger Fabric.
Các hợp đồng thơng minh này được đóng gói thành một mã chuỗi và mã chuỗi
này được triển khai trên mọi nút ngang hàng cho các bệnh viện.
Bất kỳ giao dịch nào được xác thực bởi một người ngang hàng sẽ chuyển
đến dịch vụ đặt hàng nơi các hành động tiếp theo được quyết định theo chính
sách xác nhận đang hoạt động. Trong kiến trúc của chúng tơi, có một nút trình
đặt hàng, nhưng trong triển khai thực tế, có thể sử dụng nhiều hơn một trình đặt
hàng, điều này sẽ làm cho hệ thống trở nên đáng tin cậy hơn và có khả năng chịu
lỗi cao hơn. Liên quan đến chính sách chứng thực, trong đó chỉ định các tổ chức
cần thực thi mã chuỗi để xác thực giao dịch, chúng tơi đã kiên trì với chính sách
chứng thực mặc định trong đó cả hai tổ chức bệnh viện cần phê duyệt giao dịch.
Có ba tác nhân trong hệ thống của chúng tôi là quản trị viên, bác sĩ và bệnh nhân.
Mỗi tổ chức có một quản trị viên chịu trách nhiệm đăng ký bác sĩ và bệnh nhân.
Các bác sĩ là những người hành nghề y và bệnh nhân là những người dùng mà hồ
sơ y tế sẽ được tạo trong sổ cái phân tán. Một ứng dụng web bao gồm giao diện
người dùng và phụ trợ đóng vai trị là giao diện giữa các tác nhân và mạng
Hyper-ledger Fabric. Chỉ những người dùng được cấp quyền mới có thể đăng
nhập vào hệ thống và thực hiện các nhiệm vụ được giao.
Mạnh Đức, Văn Vĩnh
Trang
Cơng nghệ Blockchain
Hình 1: Mơ hình kiến trúc
Kiến trúc được mô tả cho đến bây giờ là kiến trúc được triển khai cho
nguyên mẫu. Nó có nhiều ưu điểm như đơn giản nhưng an toàn và dễ dàng mở
rộng, nhưng nó là một phiên bản tinh chỉnh. Trong giai đoạn đầu của dự án này,
nhiều ý tưởng đã được đưa ra và một kiến trúc đặc biệt đáng được đề cập. Ý
tưởng cho kiến trúc đó là mọi tổ chức bệnh viện tham gia mạng sẽ có kênh riêng.
Sẽ có hai đồng nghiệp (một đồng nghiệp bác sĩ và một đồng nghiệp bệnh nhân)
cho mọi tổ chức. Mỗi đồng đẳng sẽ có một bản sao của trạng thái thế giới và mã
chuỗi dành riêng cho tổ chức đó. Bệnh nhân và bác sĩ sẽ tương tác với mạng
blockchain thông qua các giao diện web khác nhau. Lợi ích của thiết kế này là
bảo mật và quyền riêng tư. Vì dữ liệu của bệnh nhân chỉ xuất hiện trong kênh cụ
thể mà bệnh viện mà bệnh nhân đó đến thăm, nên các bác sĩ và bệnh nhân khác
sẽ không thể truy cập dữ liệu này. Hạn chế đáng kể là sự phức tạp và khả năng
mở rộng kém. Số lượng kênh trong thiết kế như vậy sẽ tăng tuyến tính đối với số
lượng bệnh viện được thêm vào mạng chuỗi khối.
Sau đó, người ta nhận ra rằng có thể đạt được các tính năng bảo mật và
quyền riêng tư mà khơng làm tăng độ phức tạp bằng cách giới thiệu một kênh
mới cho mỗi tổ chức, sử dụng một tính năng của Hyperledger Fabric có tên là
Thu thập dữ liệu riêng tư. Do đó kiến trúc này đã khơng được theo đuổi thêm
nữa. Việc thu thập dữ liệu cá nhân và việc sử dụng nó cho trường hợp sử dụng
quản lý dữ liệu bệnh nhân sẽ được thảo luận chi tiết hơn trong các phần tiếp theo.
1.2. Quy trình hoạt động:
Mỗi bệnh viện có một quản trị viên chịu trách nhiệm đăng ký các bác sĩ
trong bệnh viện đó và bất kỳ bệnh nhân mới nào đến bệnh viện đó. Hệ thống
Mạnh Đức, Văn Vĩnh
Trang
Công nghệ Blockchain
Quản lý Dữ liệu Bệnh nhân đăng ký một bệnh nhân và trao toàn bộ quyền đối với
hồ sơ sức khỏe của họ cho bệnh nhân; Mỗi bệnh viện sẽ có hồ sơ sức khỏe của
bệnh nhân trong sổ cái của họ. Bệnh nhân có quyền cho phép bất kỳ bác sĩ nào
cập nhật hồ sơ sức khỏe của mình hoặc hạn chế bất kỳ bác sĩ nào. Điều này cho
phép bệnh nhân di chuyển dễ dàng từ bác sĩ này sang bác sĩ khác hoặc bệnh viện
này sang bệnh viện khác trong mạng Hyperledger Fabric.
Tại thời điểm đăng ký bệnh nhân, một bác sĩ cũng được chỉ định cho bệnh
nhân. Hồ sơ sức khỏe của bệnh nhân có hai phần; dữ liệu cá nhân và dữ liệu y tế.
Dữ liệu cá nhân chứa các trường như tên, id, địa chỉ. Bệnh nhân có quyền đọc và
cập nhật dữ liệu cá nhân trong khi họ chỉ có thể đọc dữ liệu y tế và không thể
thực hiện bất kỳ thay đổi nào trong đó. Ngồi ra, bệnh nhân cũng có quyền cấp
quyền truy cập hồ sơ sức khỏe của mình cho bất kỳ bác sĩ nào khác và thu hồi
quyền truy cập từ bất kỳ bác sĩ nào bất cứ khi nào họ muốn.
Khi một bác sĩ được chỉ định cho bất kỳ bệnh nhân nào, anh ấy/cô ấy sẽ có
quyền truy cập vào hồ sơ sức khỏe của bệnh nhân. Các bác sĩ có thể đọc hồ sơ
sức khỏe của bệnh nhân và chỉ cập nhật dữ liệu y tế của hồ sơ sức khỏe của bệnh
nhân khi cần thiết. Sau khi bệnh nhân thu hồi quyền truy cập của bác sĩ, bác sĩ
không thể truy cập vào hồ sơ sức khỏe của bệnh nhân nữa.
Nhiều kịch bản có thể xảy ra đối với hệ thống này khi xem xét sự tương tác
giữa các tác nhân liên quan. Trong các phần phụ sau đây, chúng tôi thảo luận về
một số tình huống phổ biến.
1.3. Bảo mật:
Bảo mật của EHR là vô cùng quan trọng trong các hệ thống chăm sóc sức
khỏe. Để cung cấp bảo mật cho EHR, Thu thập dữ liệu cá nhân được sử dụng.
Thu thập dữ liệu riêng tư cung cấp một cách để giữ dữ liệu được xử lý bởi một tổ
chức trong mạng ở chế độ riêng tư trong khi vẫn duy trì sổ cái phân tán cho dữ
liệu đó. Bằng cách này, các tổ chức tham gia mạng có thể thấy các giao dịch
đang được thực hiện nhưng không phải dữ liệu thực tế thay vào đó sẽ có giá trị
băm của dữ liệu đó. Điều này là do định nghĩa của các bộ sưu tập mà dữ liệu
được liên kết. Dữ liệu này nằm trong cơ sở dữ liệu riêng với tổ chức được phép
truy cập. Nếu trong trường hợp bất kỳ người dùng/tổ chức nào khác khơng có
quyền truy cập vào bộ sưu tập đó cố truy cập vào nó, hợp đồng thơng minh sẽ
xác minh mspID và các chi tiết khác và sẽ từ chối quyền truy cập. Điều này có
thể được hình dung từ Hình 2.2. Quyền truy cập vào bộ sưu tập này có thể được
xác định trong cấu hình bộ sưu tập. Chỉ giá trị băm của dữ liệu được xác nhận bởi
các đồng nghiệp, sau đó được sắp xếp và ghi vào sổ cái của các đồng nghiệp
khác trong mạng. Ngay cả khi gửi phản hồi đề xuất trở lại máy khách, chỉ các giá
trị băm được gửi lại cùng với bộ đọc/ghi và dữ liệu cơng khai. Trong hệ thống
chăm sóc sức khỏe, điều này có thể được kết hợp bằng cách xác định một tập hợp
các bộ sưu tập cho mỗi bệnh viện tham gia vào mạng. Điều này phải được xác
Mạnh Đức, Văn Vĩnh
Trang
Công nghệ Blockchain
định trước khi triển khai chuỗi mã vào mạng vì cấu hình sẽ là một phần của mã
chuỗi. Có thể có nhiều trường hợp xem xét tình huống thực tế có thể xảy ra liên
quan đến bệnh nhân và bệnh viện.
Trường hợp 1: Đầu tiên, phải xác định bộ sưu tập cho từng bệnh viện trong
mạng vì người dùng/bệnh nhân sẽ đến khám tại ít nhất một bệnh viện. Qua đó
đảm bảo EHR của mỗi bệnh viện là riêng tư so với phần còn lại.
Trường hợp 2: Để thuận lợi cho trường hợp bệnh nhân đến khám tại bệnh
viện khác, đó là bệnh nhân đăng ký cùng lúc 2 bệnh viện hoặc bệnh nhân tự đăng
ký ở bệnh viện thứ hai. Ở đây, EHR của bệnh nhân đó phải được chia sẻ giữa cả
hai bệnh viện mà bệnh nhân đã đăng ký. Do đó, một bộ sưu tập chung phải được
xác định với quyền truy cập được cung cấp cho hai bệnh viện có liên quan và
EHR từ bộ sưu tập đầu tiên có quyền truy cập với bệnh viện đầu tiên phải được
chuyển sang bộ sưu tập chung mới này. Điều này có thể được lặp lại nếu bệnh
nhân quyết định đăng ký với bệnh viện thứ ba, v.v.
Trường hợp 3: Nếu một bệnh nhân quyết định hủy đăng ký khỏi một bệnh
viện và chuyển đến một bệnh viện khác, thì EHR của bệnh nhân đó phải được
thêm vào bộ sưu tập được liên kết với bệnh viện mới và bệnh viện cũ sẽ chỉ có
giá trị băm của dữ liệu đó.
Hình 2: Thu thập dữ liệu cá nhân
Bằng cách xem xét tất cả các kịch bản, phải có 'n! + 1’ kết hợp các bộ sưu
tập trong đó mỗi bệnh viện có một bộ sưu tập mà quyền truy cập được chia sẻ với
từng bệnh viện khác và sự kết hợp của các bệnh viện khác. Ví dụ: xem xét Bệnh
viện A, Bệnh viện B và Bệnh viện C. Các bộ sưu tập cho các bệnh viện này sẽ có
Bệnh viện A, Bệnh viện B, Bệnh viện C, Bệnh viện AB, Bệnh viện AC, Bệnh
viện BC và Bệnh viện ABC. Bằng cách này, bất kể bệnh viện/tổ hợp bệnh viện
nào mà bệnh nhân đến khám, EHR của họ sẽ được bảo mật và dữ liệu sẽ khơng
có sẵn bên ngồi bộ sưu tập đó.
Mạnh Đức, Văn Vĩnh
Trang
Cơng nghệ Blockchain
Ngồi ra, ngồi tính bảo mật này, Bộ sưu tập dữ liệu cá nhân cho phép xác
định chính sách chứng thực trong cấu hình của nó. Việc xác định chính sách
chứng thực với Thu thập dữ liệu cá nhân đáp ứng yêu cầu của hệ thống, rằng giao
dịch EHR liên quan đến bất kỳ bệnh viện nào phải được thực hiện bởi một mình
bệnh viện đó. Trong trường hợp nếu dữ liệu riêng tư được chia sẻ giữa nhiều
bệnh viện thì bệnh viện đang thực hiện giao dịch trong bộ sưu tập đó phải ký
giao dịch.
1.4. Cơng nghệ:
Việc triển khai tồn bộ hệ thống có thể được chia thành nhiều thành phần
khác nhau, cụ thể là mạng Hyperledger Fabric và sổ cái phân tán, hợp đồng thông
minh, SDK ứng dụng và giao diện người dùng ứng dụng. Mạng là phần
blockchain thực tế của ứng dụng. Các hợp đồng thông minh được triển khai bằng
JavaScript. SDK được phát triển bằng Node.js và giao diện người dùng của ứng
dụng được xây dựng bằng Angular. Trong phần này, chúng ta sẽ xem xét các
thành phần này một cách chi tiết hơn.
1.5. Mạng Hyperledger Fabric:
Mạng Hyperledger Fabric là cơ sở của hệ thống. Điều này bao gồm các
bệnh viện với các đồng nghiệp của họ tham gia vào kênh với sổ cái phân tán.
Như đã giải thích trong kiến trúc, tất cả các bệnh viện được kết nối với một kênh
duy nhất. Để dễ sử dụng, mạng thử nghiệm có sẵn từ Hyperledger Fabric[11] đã
được sử dụng để thiết lập Hệ thống quản lý dữ liệu bệnh nhân. Sử dụng mạng
hiện có, các tổ chức được thay đổi để đại diện cho bệnh viện bằng cách sửa đổi
tệp docker, tệp cấu hình và chứng chỉ tương ứng cho nó. Các thay đổi chủ yếu
bao gồm sửa đổi tên tổ chức để bao gồm bệnh viện trong tệp configtx.yaml và Tổ
chức phát hành chứng chỉ liên quan trong tệp docker-compose. Sau đó, các tệp
tham chiếu các tệp này được cập nhật. Sau khi mạng đã sửa đổi được đưa lên với
hai bệnh viện và một kênh như được hiển thị trong kiến trúc. Tất cả các chứng
chỉ cần thiết cho tổ chức và các đồng nghiệp có liên quan sẽ được tạo.
1.6. Cơ sở dữ liệu:
Theo các tài liệu chính thức, cấu trúc hyperledger hỗ trợ 2 cơ sở dữ liệu
ngang hàng; LevelDB và CouchDB. LevelDB là cơ sở dữ liệu mặc định cho kết
cấu siêu sổ cái lưu trữ dữ liệu dưới dạng các cặp khóa-giá trị, trong khi couchDB
là một giải pháp thay thế ghi dữ liệu dưới dạng tài liệu JSON. CouchDB cho
phép truy vấn phong phú trên tài liệu JSON so với LevelDB chỉ cho phép truy
vấn khóa tổng hợp.
Nhóm đã sử dụng CouchDB làm cơ sở dữ liệu ngang hàng trong dự án này
và lập mơ hình từng hồ sơ sức khỏe của bệnh nhân dưới dạng tài liệu JSON như
trong Liệt kê 3.1. Mỗi hồ sơ sức khỏe điện tử chứa nhiều trường và trường bệnh
nhân được sử dụng để xác định chủ sở hữu của hồ sơ sức khỏe. Các trường khác
Mạnh Đức, Văn Vĩnh
Trang
Công nghệ Blockchain
dành cho thông tin cá nhân cũng như dữ liệu y tế của bệnh nhân. Một trường
khác là một mảng danh sách các bác sĩ được phép truy cập vào bản ghi, chỉ
những bác sĩ được đề cập trong danh sách mới có thể truy cập vào bản ghi này
nếu không Hyperledger Fabric sẽ từ chối quyền truy cập.
{
"Record":{
"PatientId":"patient1",
"Address":"Address XX, 123 Street, City",
"Telephone":17615945896,
"Diagnosis":"Common cold",
"Medication":"paracetamol",
"DoctorAuthorizationList":["doctor1"]
} }
Lý do sử dụng couchDB là để có thể thực thi các truy vấn được nhóm
bằng cách sử dụng tính năng lập chỉ mục couchDB, cho phép nhóm tài liệu JSON
(trong trường hợp của chúng tôi là hồ sơ sức khỏe) theo bất kỳ trường nào có
trong tài liệu JSON. Hiện tại, khơng phải bất kỳ tài liệu thiết kế hoặc lập chỉ mục
nào (ddoc ) tính năng của couchDB đã được sử dụng nhưng có thể được xem xét
cho hàm ý trong tương lai.
Ngoài ra Docker image của couchDB chạy trên cùng một máy chủ với peer và số
lượng image phụ thuộc vào số lượng peer. Mỗi máy ngang hàng có một sổ cái,
do đó, một hình ảnh couchdb cho mỗi máy ngang hàng sẽ được yêu cầu cho
mạng kết cấu siêu sổ cái.
1.7. Smart contracts and Chaincode:
Tất cả logic kinh doanh thực thi cho ứng dụng được triển khai bằng hợp
đồng thông minh. Điều này có nghĩa là mọi hoạt động Tạo, Đọc, Cập nhật hoặc
Xóa đối với sổ cái phân tán đều được thực hiện thông qua hợp đồng thông minh.
Hợp đồng thơng minh có thể là các chức năng khác nhau hoặc thậm chí là các tệp
(hoặc lớp) khác nhau tùy thuộc vào kiến trúc và ngơn ngữ lập trình được sử dụng.
Chúng tôi đã sử dụng Javascript để thực hiện các hợp đồng thơng minh của mình.
Để giữ cho kiến trúc đơn giản và theo mô-đun, chúng tôi đã viết một chức năng
cho mọi chức năng mà hệ thống của chúng tôi cần để tương tác với mạng HLF.
Hợp đồng thông minh thường được phát triển xung quanh thực thể mà các
giao dịch được cho là diễn ra trong mạng [8]. Trong trường hợp của chúng tôi,
đây là EHR và chúng tôi đã phát triển các hợp đồng thông minh xung quanh đó.
CreateRecord() giúp tạo một EHR mới trong sổ cái phân tán khi quản trị viên
đăng ký một bệnh nhân mới. UpdatePatientInfo() và UpdateRecord() là các hợp
đồng được sử dụng để cập nhật thông tin cá nhân và thông tin y tế cho bệnh nhân
tương ứng. Hợp đồng DoctorReadRecord() và PatientReadRecord() được kích
Mạnh Đức, Văn Vĩnh
Trang
Công nghệ Blockchain
hoạt khi bác sĩ hoặc bệnh nhân cố gắng đọc EHR. Hợp đồng GetRecordHistory()
được sử dụng để tìm nạp lịch sử của một EHR cụ thể. GetHistory là một tính
năng của mạng chuỗi khối HLF giúp tìm nạp lịch sử các giao dịch đã xảy ra trên
một thực thể cụ thể. Điều này có thể hữu ích
Hợp đồng thông minh thường được phát triển xung quanh thực thể mà các
giao dịch được cho là diễn ra trong mạng [8]. Trong trường hợp của chúng tôi,
đây là EHR và chúng tôi đã phát triển các hợp đồng thông minh xung quanh đó.
CreateRecord() giúp tạo một EHR mới trong sổ cái phân tán khi quản trị viên
đăng ký một bệnh nhân mới. UpdatePatientInfo() và UpdateRecord() là các hợp
đồng được sử dụng để cập nhật thông tin cá nhân và thông tin y tế cho bệnh nhân
tương ứng. Hợp đồng DoctorReadRecord() và PatientReadRecord() được kích
hoạt khi bác sĩ hoặc bệnh nhân cố gắng đọc EHR. Hợp đồng GetRecordHistory()
được sử dụng để tìm nạp lịch sử của một EHR cụ thể. GetHistory là một tính
năng của mạng chuỗi khối HLF giúp tìm nạp lịch sử các giao dịch đã xảy ra trên
một thực thể cụ thể. Điều này có thể hữu ích vì trạng thái thế giới chỉ lưu trữ
trạng thái cập nhật hoặc mới nhất của bản ghi và với lịch sử, mọi giao dịch trước
đó đều có thể được theo dõi.
Cấp và thu hồi quyền truy cập là một trong những tính năng chính của Hệ
thống quản lý dữ liệu bệnh nhân và được triển khai bằng cách sử dụng các hàm
GrantAccess() và RevokeAccess(). Điều này cho phép bệnh nhân cấp hoặc thu
hồi quyền truy cập của bác sĩ vào EHR của mình. Nó được triển khai trong hợp
đồng thơng minh vì quyền truy cập vào dữ liệu có thể được kiểm soát tại thời
điểm truy xuất dữ liệu để dữ liệu nằm trong mạng kết cấu trước khi quá trình
kiểm tra hồn tất. Điều này đạt được bằng cách có một danh sách kiểm sốt truy
cập trong EHR được gọi là DoctorAuthorizationList, danh sách này chứa danh
sách ID của các bác sĩ được phép truy cập EHR đó. Bệnh nhân có thể chỉ định
bác sĩ được cấp quyền truy cập từ UI và ID của bác sĩ đó sẽ được thêm vào EHR
của bệnh nhân. Tương tự để thu hồi quyền truy cập của bác sĩ, bệnh nhân có thể
chọn bác sĩ và ID của bác sĩ đó sẽ bị xóa khỏi DoctorAuthorizationList. Chỉ bệnh
nhân mới có quyền truy cập vào danh sách này và phương pháp cấp hoặc thu hồi
quyền truy cập và bác sĩ cũng khơng có quyền truy cập. Và danh sách này cũng
sẽ không hiển thị cho bác sĩ.
Khi bác sĩ cố gắng truy cập hoặc sửa đổi EHR của bệnh nhân, hệ thống sẽ
kiểm tra ID người dùng của bác sĩ đối với DoctorAuthorizationList trong EHR
đó và nếu ID đó khơng có trong danh sách, thì bác sĩ đó khơng được phép xem
hoặc sửa đổi EHR và hệ thống sẽ trả về 'Quyền truy cập bị Từ chối' cho bác sĩ
đó. Tương tự, nếu iD khả dụng thì Bác sĩ có quyền xem hoặc sửa đổi EHR. Có
thể tham khảo Hình 3.1 để hiểu sự tương tác của tất cả các hợp đồng thông minh
với phần cịn lại của ứng dụng.
Hợp đồng thơng minh thường được đóng gói thành Chaincode và được triển
khai trên mạng chuỗi khối. Vì vậy, một chuỗi mã có thể có nhiều hợp đồng thơng
Mạnh Đức, Văn Vĩnh
Trang
Công nghệ Blockchain
minh và một khi chuỗi mã này được triển khai trên mạng, tất cả các hợp đồng sẽ
có sẵn cho ứng dụng. Việc triển khai chaincode vào mạng HLF có thể được chia
thành 4 bước: 1) Đóng gói chaincode, 2) Cài đặt chaincode trên các thiết bị
ngang hàng, 3) Phê duyệt định nghĩa chaincode cho một tổ chức, 4) Gửi định
nghĩa chaincode vào kênh. Tất cả các bước này có thể được thực hiện cùng một
lúc khi thực hiện lệnh triển khai CC sau khi mạng HLF hoạt động. Chúng ta cần
chuyển các cờ chính xác làm đường dẫn của mã chuỗi và ngơn ngữ mà nó được
viết.
1.8. Software Development Kit (SDK):
Việc kết nối với mạng Hyperledger Fabric, để gọi các hợp đồng thông minh
và thực hiện các giao dịch được thực hiện với sự trợ giúp của các API được cung
cấp bởi Bộ công cụ phát triển phần mềm (SDK) máy khách Hyperledger Fabric.
“Hyper-ledger Fabric SDK cung cấp nhiều thành phần có thể định cấu hình khác
nhau như thuật tốn mã hóa cho chữ ký, ghi nhật ký thơng qua giao diện tiêu
chuẩn có thể mở rộng.[9]. Có sẵn nhiều SDK khác nhau nhưng để phát triển
nguyên mẫu này, Node.js được xem xét. Trong Hệ thống quản lý dữ liệu bệnh
nhân này, SDK đảm nhận việc đăng ký người dùng vào mạng kết cấu, cập nhật
hồ sơ của bệnh nhân, cấp/thu hồi quyền truy cập cho bác sĩ, mọi hành động mà
người dùng kích hoạt từ giao diện người dùng sẽ được thực hiện trong Hệ thống
quản lý dữ liệu bệnh nhân. SDK và nếu hành động là gọi hợp đồng thơng minh
thì SDK sẽ thiết lập kết nối với mạng Fabric và gọi hợp đồng thông minh. Kết
nối giữa SDK và mạng Fabric được tạo với sự trợ giúp của lớp Cổng do
Hyperledger Fabric cung cấp. Bằng cách lấy thông tin chi tiết của người dùng từ
ví và tên kênh cần được kết nối để truy cập đúng thiết bị ngang hàng và sổ cái
của nó, một kết nối mạng được thiết lập và một phiên bản của mạng này được sử
dụng để lấy mã chuỗi thích hợp và gọi thơng minh. hợp đồng. Kết nối mạng này
hợp lệ đối với người dùng đó, có danh tính được sử dụng để tạo kết nối và có thể
có nhiều kết nối mạng được thiết lập. Bất cứ khi nào một API được kích hoạt
trong SDK, nó sẽ thiết lập kết nối mạng với kênh và sau đó tìm nạp chuỗi mã.
Kết nối sẽ bị chấm dứt sau khi giao dịch được thực hiện bằng cách gọi phương
thức kết thúc có sẵn trong lớp Cổng.
Mạnh Đức, Văn Vĩnh
Trang
Cơng nghệ Blockchain
Hình 3: Kết nối API giữa SDK và Smart Contract
Mạnh Đức, Văn Vĩnh
Trang
Công nghệ Blockchain
CHƯƠNG 3. TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ
2.
2.1. Giao diện hệ thống:
2.2. ….
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Mạnh Đức, Văn Vĩnh
Trang
Công nghệ Blockchain
TÀI LIỆU THAM KHẢO
[1] Tên tác giả, Tên tài liệu, Tên nhà xuất bản, năm xuất bản
[2] Tên chủ sở hữu, Tên bài viết, url, ngày truy cập
Mạnh Đức, Văn Vĩnh
Trang
Công nghệ Blockchain
PHỤ LỤC
Mạnh Đức, Văn Vĩnh
Trang