Điều này có thể chứng minh là một giải pháptuyệ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ệutruyền thống trong lĩnh vực chăm sóc sức khỏe cùng với các vấn
Trang 1ĐẠI HỌC ĐÀ NẴNGTRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN
Tel (+84.0236) 3736949, Fax (+84.0236) 3842771
Website: http://dut.udn.vn/khoacntt , E-mail: cntt@dut.udn.vn
BÁO CÁO THỰC TẬP TỐT NGHIỆP NGÀNH CÔNG NGHỆ THÔNG TIN
XÂY DỰNG WEBSITE QUẢN LÝ BỆNH ÁN TRÊN NỀN
Trang 2Tên Cơ quan/Công Ty CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh Phúc
PHIẾU ĐÁNH GIÁ KẾT QUẢ THỰC TẬP TỐT NGHIỆP
Họ và Tên sinh viên: ……… Lớp: ……… Nhóm: ………
Cơ quan/Đơn vị thực tập: ………
Địa chỉ:………
Thời gian thực tập từ ……… đến ………
Người hướng dẫn: ………Email:……… Điện thoại: ………
1 Đánh giá về năng lực chuyên môn Nội dung đánh giá Xuất sắc Tốt Khá T.Bình Yếu Năng lực chuyên môn đáp ứng công việc Hoàn thành các công việc được giao Khả năng sử dụng ngoại ngữ Ứng dụng kết quả thực tập cho cơ quan 2 Đánh giá về ý thức làm việc Nội dung đánh giá Xuất sắc Tốt Khá T.Bình Yếu Tinh thần, thái độ làm việc Tuân thủ kỷ luật (thời gian làm việc, báo nghỉ…) Giao tiếp, quan hệ với cán bộ, công nhân viên 3 Đánh giá kết quả công việc Nội dung đánh giá Xuất sắc Tốt Khá T.Bình Yếu Khả năng phân tích thiết kế hệ thống Kỹ năng lập trình Khả năng học hỏi, nắm bắt công nghệ mới 4 Các nhận xét khác (nếu có)
5. Điểm đánh giá Ghi bằng số: /10 Ghi bằng chữ:
Xác nhận của cơ quan/đơn vị thực tập
(Ký, ghi rõ họ tên và đóng dấu)
Ngày tháng 02 năm 2022 Người hướng dẫn (Ký và ghi rõ họ tên)
Trang 3Đồ án thực tập
NHẬN XÉT CỦA NGƯỜI HƯỚNG DẪN
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Trang 4Đồ án thực tập
Trang 3
MỤC LỤC
MỤC LỤC 2
DANH SÁCH HÌNH VẼ 3
DANH SÁCH CÁC TỪ VIẾT TẮT 4
MỞ ĐẦU 5
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 6
1.1 Đặt vấn đề 6
1.2 Mục đích 7
1.3 Giới thiệu Hyperledger Fabric 9
1.4 Hyperledger Fabric và Hệ thống bệnh án 11
CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 13
2.1 Mô tả hệ thống 13
2.2 Quy trình hoạt động 14
2.3 Bảo mật 15
2.4 Công nghệ 17
2.5 Mạng Hyperledger Fabric 17
2.6 Cơ sở dữ liệu 17
2.7 Smart contracts and Chaincode 18
2.8 Software Development Kit (SDK) 20
2.9 Phân tích chức năng Back-End API và Front-End API 21
CHƯƠNG 3 TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ 22
3.1 Giao diện hệ thống 22
3.2 Đánh giá kết quả 24
CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 25
4.1 Kết luận 25
4.2 Hướng phát triển 25
TÀI LIỆU THAM KHẢO 26
PHỤ LỤC 27
Trang 5Đồ án thực tập
DANH SÁCH HÌNH VẼ
Hình 1: Mô hình kiến trúc 14
Hình 2: Sơ đồ Usercase mô tả chức năng của Hospital 15
Hình 3: Sơ đồ usercase mô tả chức năng của patient 16
Hình 4: Sơ đồ usercase mô tả chức năng của Doctor 17
Hình 5: Thu thập dữ liệu cá nhân 18
Hình 6: Xây dựng database cho chương trình 22
Hình 7: Hàm khởi tạo sổ cái Initledger 26
Hình 8: Hàm khởi tạo hồ sơ bệnh án mới CreateMedicalRecord 27
Hình 9: Hàm cập nhật thông tin hồ sơ y tế hiện có UpdateMedicalRecord 27
Hình 10: Hàm kiểm tra hồ sơ bệnh án tồn tại 27
Hình 11: Hàm khởi tạo tài khoản người dùng mới 28
Hình 12: Hàm cập nhật tài khoản người dùng 28
Hình 13: Kết nối API giữa SDK và Smart Contract 30
Hình 14: Sử dụng thư viện ExpressJS của node.js để xây dựng các API cho ứng dụng server 31
Hình 15: Thiết lập các cấu hình tương tác với mạng blockchain Hyperledger Fabric 32
Hình 16: Api xác thực đăng nhập 33
Hình 17: Api đọc tất cả hồ sơ bệnh án 34
Hình 18: Api đọc hồ sơ bệnh án dựa trên ID của bệnh án 35
Hình 19 : Api tạo hồ sơ bệnh án 36
Hình 20 : Api cập nhật hồ sơ bệnh án 37
Hình 21: Api đọc hồ sơ bệnh án dựa trên ID của bệnh nhân 38
Hình 22: Front-end Api xác thực đăng nhập 39
Hình 23: Front-end Api đọc hồ sơ bệnh án dựa trên ID của bệnh nhân 40
Hình 24: Front-end Api tạo hồ sơ bệnh án 40
Hình 25: Front-end Api cập nhật hồ sơ bệnh án 41
Trang 6Đồ án thực tập
Trang 5
DANH SÁCH CÁC TỪ VIẾT TẮT
API Application Programming Interface
Trang 7Đồ án thực tập
MỞ ĐẦU
Ngành y tế hiện nay đang phải đối mặt với nhiều thách thức về vấn đề bảomật dữ liệu liên quan đến hồ sơ y tế điện tử, hồ sơ sức khỏe điện tử, bệnh án,phương pháp điều trị, Những dữ liệu này có vai trò rất lớn trong việc ra quyếtđịnh của các cơ sở thăm - khám - chữa bệnh, đồng thời là tài nguyên quý giá đốivới cả hệ thống y tế nói chung Blockchain có khả năng cung cấp quyền sở hữu
hồ sơ điện tử cho bệnh nhân - hay còn gọi là tài khoản y tế cá nhân Bởi vì sứckhỏe cá nhân là vấn đề tương đối nhạy cảm, nên dữ liệu này cần được bảo mật ởmức cao Trong mạng blockchain, mỗi người sẽ được cấp một mã khóa bí mật và
mã khóa công khai giống như định danh cá nhân để có thể theo dõi được thôngtin hay hồ sơ bệnh án của mình Chính vì thế, dù là nhân viên y tế hay bất kỳbệnh viện nào, nếu muốn truy cập hồ sơ sức khỏe của người bệnh thì cần có sựcho phép của người đó Hyperledger Fabric đáp ứng tất cả các yêu cầu này trongviệc cung cấp một môi trường an toàn và phân tán cho các hệ thống chăm sóc sứckhỏ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ụngHyperledger Fabric, nhưng trọng tâm ở đây là quản lý hồ sơ bệnh án của bệnhnhâ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 ranhiều vấn đề cho bệnh nhân 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ệnvớ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ềnthố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ấuHyperledger Điều này sẽ cung cấp một bức tranh rõ ràng về việc liệuHyperledger 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 hoàntoàn Hyperledger Fabric trong trường hợp nói trên hay không
Trang 8và 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ủaBitcoin là cung cấp quyền truy cập vào các phong trào tài chính ẩn danh, đáng tincậy, có thể bảo mật và có thể kiểm tra được Hơn nữa, blockchain tạo ra kho lưutrữ 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, đảmbả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ộtmạng không đáng tin cậy sử dụng bằng chứng về nhiệm vụ để hoàn thành thỏathuận giữa các bên Mặc dù Blockchain đang được tất cả mọi người yê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 toàn thích hợp để đảmbả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ệnhnhâ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ấpthê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ủabệnh nhân để đưa ra quyết định phù hợp trong việc cung cấp phương pháp điềutrị tốt nhất, nhưng nó cũng có những vấn đề riêng Khi nói đến EHR, cần phảichú ý thêm để cung cấp tính bảo mật, khả năng truy cập dễ dàng và có thể kiểmtra đượ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á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
Trang 9Đồ án thực tập
đế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ốngtậ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àichính do Bitcoin thực hiện đã đạt 400 triệu giao dịch trong mười năm Trong bốicả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ámchỉ 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ăngtươ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ácphươ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êncù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ấpchính xác cùng một loại chuỗi khối Hyper-ledger Fabric cung cấp một mạngchuỗi khối cấp doanh nghiệp sử dụng khái niệm hợp đồng thông minh để thựchiện các giao dịch trong mạng Điều này có thể chứng minh là một giải pháptuyệ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ệutruyề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 đếnchính lĩnh vực chăm sóc sức khỏe đó
Trong bài báo cáo này, nội dung thảo luận chính là về quản lý dữ liệu bệnhnhâ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ệnhnhâ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ấthiệ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 đôikhi 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ệctrong 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, đượcthự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ựchoặc ngành trong khi đổi mới theo chiều ngang là những đổi mới xuyên suốt các
Trang 10Đồ án thực tập
Trang 9
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 ngangvẫ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ự đổimới
Trang 11 Quyền riêng tư và bảo mật là những khía cạnh quan trọng khác cần đượctí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ủathô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 toàn, trong đó bất kỳ thay đổi nào về trạngthá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 soá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 Ngoà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ểmtra 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
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 soá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ơ
Trang 12Đồ án thực tập
Trang 11
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ụngdoanh 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ộtmạ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ấpmộ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 yê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 toá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ácvai trò và thành phần này:
Membership service provider (MSP): tất cả các thực thể mạng trong ledger 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
Hyper-đó, 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ớimỗi ngang hàng cam kết và được thêm vào sau mỗi giao dịch thành công.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ý giaodị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ý giaodị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ố đồngnghiệp nhất định Chính sách xác nhận xác định ít nhất có bao nhiêu đồngnghiệp phải phê duyệt giao dịch trước khi sổ cái được thêm vào
Trang 13Đồ án thực tập
Smart contracts: Đây là các mã chương trình cung cấp cho người tham giaHyperledger 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ảibằ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ữngngười tham gia kênh phải phê duyệt chaincode để tham gia vào bất kỳ giaodịch nào thông qua kênh này Chaincode chứa tất cả các tác vụ có thể đượcthự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 HyperledgerFabric đượ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ácnhậ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ínhsá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ể đượcgiả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 đồngnghiệp và những đồng nghiệp này có thể đóng vai trò vừa là đồng nghiệp cam kếtvừ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 dịch saukhi xác thực và gửi chúng cho Người đặt hàng Người đặt hàng đặt hàng chuỗigiao dịch và sau đó gửi chuỗi đó cho các đồng nghiệp cam kết Các đồng nghiệpcam 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 đồngnghiệ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
Trang 14Đồ án thực tập
Trang 13
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, HyperledgerFabric 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 thamgia đáng tin cậy 'có khả năng' Như đã giải thích trong phần trước, sổ cái phân táncủ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ầnthiết bằng cách loại bỏ người trung gian Do đó, dữ liệu có thể được minh bạchhơn cho bệnh nhân Sổ cái bất biến mang lại lợi thế là duy trì tính toàn vẹn củaEHR 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ủanhân viên được ủy quyền và mức độ mã hóa cao Hyperledger Fabric cung cấpnhiề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ứcnă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ôngminh 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ệnhnhâ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úpcủa hợp đồng thông minh Do các hợp đồng thông minh này trong đó các chứcnă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áchthà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ứcnăng mới sẽ được cung cấp cho các bác sĩ, được xác định trong hợp đồng thôngminh 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 toà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ệmthu 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 trungcủ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ổ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 ngoài bộ sưu tập muốn kiểm tra tính toà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ềntrong mạng và nó không bao giờ rời khỏi bộ sưu tập Trong hệ thống chăm sócsứ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áchcung cấp bảo mật và mã hóa rất cần thiết cho các HER
Trang 15Đồ án thực tập
Sau đó, có các thành phần bổ sung hỗ trợ hoạt động trơn tru của hệ thốngchăm sóc sức khỏe, chẳng hạn như Cơ quan cấp chứng chỉ, sử dụng mà bệnhnhâ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ốngchă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ệnhviệ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ôngminh 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ântán lưu trữ EHR Sau đó, kênh trong mạng nơi diễn ra giao tiếp giữa các bệnhviệ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ườidù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ôngminh để thực hiện các giao dịch
Trang 16Để 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ệnbấ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úcnà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ứngchỉ (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ênhtrong 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ộtbả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ủamạ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ạngthá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ôngminh đượ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ỗinà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ínhsá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 đặthà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ịulỗi cao hơn Liên quan đến chính sách chứng thực, trong đó chỉ định các tổ chứccầ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áchchứ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ệnngười dùng và phụ trợ đóng vai trò là giao diện giữa các tác nhân và mạngHyper-ledger Fabric Chỉ những người dùng được cấp quyền mới có thể đăngnhập vào hệ thống và thực hiện các nhiệm vụ được giao
Trang 17Đồ án thực tập
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 chonguyê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ạngblockchain 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ênhmớ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êmnữ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ụngquả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
2.2. Công cụ xây dựng hệ thống:
1 Môi trường thực hiện:
- Máy tính: DESKTOP-4BO7E9S
Trang 18Hình 2: Sơ đồ Usercase mô tả chức năng của Hospital
Trang 19Đồ án thực tập
Tại thời điểm đăng ký bệnh nhân, một bác sĩ cũng được chỉ định cho bệnhnhâ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 đó
Hình 3: Sơ đồ usercase mô tả chức năng của patient
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ó sẽ được quyềnđọc và cập nhật dữ liệu cá nhân.Các bác sĩ có thể đọc hồ sơ sức khỏe của bệnhnhâ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
Trang 20Đồ án thực tập
Trang 19
Hình 4: Sơ đồ usercase mô tả chức năng của Doctor
Bệnh viện là tài khoản của người quản trị hay còn gọi là admin Bệnh nhậnkhi muốn khám bệnh sẽ tới quầy đăng ký khám chữa bệnh và sẽ được cấp chomỗi bệnh nhân đó 1 tài khoản để theo dõi hồ sơ bệnh án của mình khi đi khámbệnh Người quản lý có quyền theo dõi lịch sử thay đổi của bệnh nhân hoặc bácsĩ
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ácgiữ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
2.4. 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 trongmạng ở chế độ riêng tư trong khi vẫn duy trì sổ cái phân tán cho dữ liệu đó Bằngcá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ệnnhư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àynằm trong cơ sở dữ liệu riêng với tổ chức được phép truy cập Nếu trong trườnghợ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ếtkhá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
Trang 21Trường hợp 1: Đầu tiên, phải xác định bộ sưu tập cho từng bệnh viện trongmạ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ệnhviệ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 đượcxá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 đượcchuyể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ệnhnhâ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ệnhviện và chuyển đến một bệnh viện khác, thì EHR của bệnh nhân đó phải đượcthê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 5: Thu thập dữ liệu cá nhân
Trang 22Đồ án thực tập
Trang 21
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ưutậ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ớitừ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ệnhviệ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ệnhviệ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ệnnà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 ngoài bộ sưu tập đó
Ngoài ra, ngoà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áchchứ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 giaodị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ìnhbệnh viện đó Trong trường hợp nếu dữ liệu riêng tư được chia sẻ giữa nhiềubệ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ý giaodịch
2.4. Công nghệ:
Việc triển khai toàn bộ hệ thống có thể được chia thành nhiều thành phầnkhác nhau, cụ thể là mạng Hyperledger Fabric và sổ cái phân tán, hợp đồng thôngminh, SDK ứng dụng và giao diện người dùng ứng dụng Mạng là phầnblockchain thực tế của ứng dụng Các hợp đồng thông minh được triển khai bằngJavaScript SDK được phát triển bằng Node.js và giao diện người dùng của ứngdụng được xây dựng bằng ReactJS Trong phần này, chúng ta sẽ xem xét cácthành phần này một cách chi tiết hơn
2.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ácbệ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ênhduy 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ạnghiện có, các tổ chức được thay đổi để đại diện cho bệnh viện bằng cách sửa đổitệp docker, tệp cấu hình và chứng chỉ tương ứng cho nó Các thay đổi chủ yếubao 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ệptham 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ớihai 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ứngchỉ cần thiết cho tổ chức và các đồng nghiệp có liên quan sẽ được tạo
Cách thức triển khai mạng Hyperledger Fabric:
- Lập kế hoạch cho mạng:
Xác định số lượng thành viên trong mạng và vai trò của nó
Trang 23- Xây dựng cấu hình CA và Channel:
Thiết lập các CA để quản lý chứng chỉ xác thực cho các thành viên trongmạng
Mỗi tổ chức có thể có 1 CA riêng hoặc có thể chia sẻ CA
Định nghĩa các kênh trong mạng để tách biệt giao dịch giữa các tổ chứckhác nhau
- Xác thực và đăng ký người dùng:
Xác định quy trình đăng ký và đăng nhập cho người dùng và tổ chức khácnhau
Sử dụng CA để đăng ký và cấp chứng chỉ cho người dùng
- Triển khai Smart Contracts (Chaincode):
Viết hàm smart contract sử dụng ngôn ngữ lập trình được hỗ trợ (thường là
Go hoặc Node.js)
Triển khai smart contract lên các Peer trong mạng
- Triển khai các nút (Nodes) Peer và Orderer:
Triển khai các Peer và Orderer trên các máy chủ được xác định trước
Cấu hình các nút để kết nối với các kênh và sử dụng smart contracts đã triểnkhai
Thử nghiệm smart contracts và giao thức mạng
Kiểm tra tích hợp giữa ứng dụng của bạn và mạng blockchain
Trang 24là một giải pháp thay thế ghi dữ liệu dưới dạng tài liệu JSON CouchDB chophép truy vấn phong phú trên tài liệu JSON so với LevelDB chỉ cho phép truyvấ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ê 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ácdà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ườngkhá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àynếu không Hyperledger Fabric sẽ từ chối quyền truy cập
Lý do sử dụng couchDB là để có thể thực thi các truy vấn được nhómbằ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ụcnà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 chomạng kết cấu siêu sổ cái
Hình 6: Xây dựng database cho chương trình
- Mô tả: Xây dựng cơ sở dữ liệu bao gồm các đối tượng: bệnh nhân, bác sĩ vàbệnh viện gồm các trường cụ thể trong biểu đồ Mỗi đối tượng sẽ có 1 tài
Trang 25Đồ án thực tập
khoản Hồ sơ bệnh án có khóa ngoại liên kết đến các đối tượng
2.7. Smart contracts và Chaincode:
2.7.1 Transaction Context
- Stub:
Stub APIs được chia thành các loại:
- World State Data APIs: Các thao tác cơ bản bao gồm getState(), putState() vàdeleteState() API truy vấn, như getStateByRange(), hỗ trợ truy xuất các tậphợp trạng thái, được xác định bởi một phạm vi khóa hoặc truy vấn dựa trên cácgiá trị trong cơ sở dữ liệu trạng thái World State
- Private Data APIs: Tương tự như World State, chúng bao gồmgetPrivateData(), putPrivateData() và deletePrivateData() API truy vấn (ví dụ:getPrivateDataByRange()) truy xuất trạng thái từ các bộ sưu tập dữ liệu riêngtư
- Transaction APIs: Được sử dụng để truy xuất thông tin chi tiết về đề xuất giaodịch hiện tại, bao gồm số nhận dạng giao dịch (getTxID()), dấu thời gian(getTxTimestamp()), danh tính của người tạo (getCreator() ) , đề xuất đã ký(getSignedProposal() ) và thông tin ràng buộc (getBinding()) getTransient() truycập dữ liệu tạm thời
- Key APIs: Thao tác với các khóa trạng thái, bao gồm việc tạo và phân tách cáckhóa tổng hợp API ValidationParameter() quản lý các chính sách chứng thực
- History API: getHistoryForKey() truy xuất các giá trị được lưu trữ và mã địnhdanh giao dịch cho một trạng thái
- Event API: setEvent() quản lý các sự kiện trong phản hồi giao dịch
- Utility APIs: Bao gồm getChannelID() để xác định kênh và invokeChaincode()
để gọi các hợp đồng thông minh khác trên cùng một thiết bị ngang hàng
- Lưu ý: Một số Utility APIs dành riêng cho chaincode cấp thấp và liên quanđến thao tác chi tiết đầu vào; lớp Hợp đồng thông minh tự động hóa việc sắpxếp tham số
+ getFunctionAndParameters()
+ getStringArgs()
+ getArgs()
2.7.2 Xây dựng smart contract
Tất cả logic thực thi cho ứng dụng được triển khai bằng hợp đồng thôngminh Đ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
Trang 26sĩ, bệnh viện, hồ sơ y tế, tài khoản người dùng và các thay đổi nhật ký
Trang 27Đồ án thực tập