1. Trang chủ
  2. » Luận Văn - Báo Cáo

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 tảng blockchain hyperledger

55 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Đ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 KHOAKHOA CÔNG NGHỆ THÔNG TIN

Tel (+84.0236) 3736949, Fax (+84.0236) 3842771Website: http://dut.udn.vn/khoacntt , E-mail: cntt@dut.udn.vn

BÁO CÁO

THỰC TẬP TỐT NGHIỆPNGÀNH CÔNG NGHỆ THÔNG TIN

XÂY DỰNG WEBSITE QUẢN LÝ BỆNH ÁN TRÊN NỀNTẢNG BLOCKCHAIN HYPERLEDGER

CÔNG TY THỰC TẬP:PANDOSIMA

SINH VIÊN : Nguyễn Phan Việt AnhMÃ SINH VIÊN : 102200202

Đà Nẵng, 3/2024

Trang 2

Tên Cơ quan/Công TyCỘ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ônNội dung đánh giáXuất sắcTốtKháT.BìnhYếuNăng lực chuyên môn đáp ứng công việcHoàn thành các công việc được giaoKhả năng sử dụng ngoại ngữỨng dụng kết quả thực tập cho cơ quan2 Đánh giá về ý thức làm việcNội dung đánh giáXuất sắcTốtKháT.BìnhYếuTinh thần, thái độ làm việcTuâ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ên3 Đánh giá kết quả công việc Nội dung đánh giáXuất sắcTốtKháT.BìnhYếuKhả năng phân tích thiết kế hệ thốngKỹ năng lập trình Khả năng học hỏi, nắm bắt công nghệ mới4 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 2022Người hướng dẫn(Ký và ghi rõ họ tên)

Trang 4

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

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 ứngdụ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ữuhồ 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ốngsử 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 8

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ì đâylà 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 khaimà 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úngta 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 9dọ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ộthệ 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átdữ 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đó, 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

Hyper-mỗi ngang hàng cam kết và được thêm vào sau Hyper-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ố đồng

nghiệ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ựcvà đã đượ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áchsử 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áctổ 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épcó 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

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ộtbộ 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ôngcụ 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ácsẽ 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ăngmở 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 18

Đồ án thực tập

Trang 17- RAM: 16GB

- Hệ điều hành: Ubuntu 18.04 LTS2 Các công cụ:

- Docker Desktop- Visual Studio Code- Xampp

- Postman3 Ngôn ngữ lập trình:

- Nodejs : Back-End- Reactjs : Front-End

2.3. 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ĩ trongbệnh viện đó và bất kỳ bệnh nhân mới nào đến bệnh viện đó Hệ thống 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ứckhỏe của họ cho bệnh nhân Hệ thống sẽ có quyền xem tất cả lịch sử cập nhật thayđổi của bác sĩ và bệnh nhân.

Hì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 đọcvà 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 21

Đồ án thực tậ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ảnhồ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/ghivà 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ếthợ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 giavào mạng Điều này phải được xác định trước khi triển khai chuỗi mã và 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ìnhhuố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 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ự đăngký ở 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 21Bằ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ôngcó 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.

 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 24

Nhóm đã sử dụng CouchDB làm cơ sở dữ liệu ngang hàng trong dự án nàyvà 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ã định

danh 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 26

Đồ án thực tập

Trang 25lớ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ăngcho 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ácgiao dịch được cho là diễn ra trong mạng 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 mình xung quanh đó HàmInitLedger() được sử dụng để khởi tạo sổ cái với dữ liệu mẫu cho bệnh nhân, bácsĩ, 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

Ngày đăng: 27/06/2024, 18:51

Xem thêm:

w