# 機構與家戶組織、人員、裝置管理(權限及資安: R2) ## 病人資料應用情境 https://mos2718.github.io/MITW/2020/patient.html ## 分層管理概念 - 多層組織,由子組織自行管理其人員異動。避免根組織管理全部人員異動造成的不便 - 個人可自行更新其基本資料及所屬裝置 ## 定義腳色及其可用功能(依據應用情境),如: - 機構組織管理人、醫師、護士、個管人員、老師、學生等 -- 可分單位腳色(如**醫院開刀房醫師)及通用腳色(如醫師、老師、同學) -- Patient portal 僅註冊服務人員,其他使用者可匿名(用帳號、密碼、email、憑證等資訊做身分驗證) - 機構組織管理人可增修刪查機構所屬人員及其子組織,並設定其腳色 - 機構設備管理人可增修刪查機構所屬裝置(含其 IP 及 MAC address) - 個人可增修刪查其所屬裝置、設定登入密碼、及申請憑證 - 個人可增、修、刪其聯絡資訊 - 個人可設定其職位代理人 ## 建立分層管理組織 1. 建立根組織及其管理人員(跳過 gateway,由系統管理員直接在本機設定) 2. 父組織管理人員建立子組織及其管理人員 4. 子組織管理人員新增所屬人員、腳色、及孫組織 5. 組織及人員更新其密碼、基本資料、及使用的裝置 ## 建立雲端醫護所需組織、人員、裝置 - 註冊服務機構、系統、及服務窗口人員(非服務人員,不須建資料) - 註冊民眾(含家戶)組織、人員、及所屬裝置(考慮隱私,名眾可假名建資料) ## 新增組織所屬人員 - 新增人員 ID 及帳號: Person - 新增專業腳色: Practitioner - 新增組織所屬人員 ## Portal 存取控制情境 - 機構組織管理人可增修刪查機構所屬人員及其子組織,並設定其腳色 1. 管理人新增子組織 ## Portal 人員、組織、裝置、地點管理(含組織中人員權限管控) - 機構組織管理人可增修刪查機構所屬人員及其子組織,並設定其腳色 1. 管理人新增子組織 ```json // 新增子組織 {"verb":"POST" , "User": {"reference":"PractitionerRole/PRid" }, "clientSystems":[{"reference": "Device/Did" }], "constraint": [{"resourceName": "Organization", "partOf" = "Organization/parentOrgID" }] } ``` - PractitionerRole, Devices 需先在 portal 註冊 - 並授權,以產生上述資訊. 記錄在 FHIR conscent 當中? - 使用者使用其所屬 client 系統登入 portal,需驗證使用者及其裝置 - 傳入使用者 及 client 系統 ID,驗證用對應公鑰驗章、或 share key 驗 HMAC - 公鑰或 share key 可存放在 FHIR person and Device 當中 - PractitionerRole.practitioner - 檢查參考之 PractitionerRole.practitioner 是否在 login person.link.target 當中 - 檢查目前使用的系統是否在參考之 Device 當中 - 檢查 post organization.partOF 之父組織是否與上述授權檔相同 ```json // 更新子組織 {"verb":"UPDATE" , "User": {"reference": "PractitionerRole/PRid" }, "clientSystems":[{"reference": "Device/Did" }], "constraint": [{"resourceName": "Organization", "partOf" = "Organization/parentOrgID" }] } ``` ```json // 刪除子組織 {"verb":"DELETE" , "User": {"reference": "PractitionerRole/PRid" }, "clientSystems":[{"reference": "Device/Did" }], "constraint": [{"resourceName" : "Organization", "partOf" = "Organization/parentOrgID" }] } ``` - 查詢子組織 -- Get RootURL/Organization?partOf=parentOrgID ```json // 新增子組織 {verb:"POST" , PractitionerRole: {"code":"orgManager", organization: "Organization/parentOrgID", period : "period": { "start": "2012-01-01", "end": "2012-03-31" }, {star= 2022-01-01} } "Devices":[,], constraint: [{resourceName: "Organization", partOf = "Organization/parentOrgID" }] } ``` ```json // 新增子組織 {"verb":"POST" , "User": {"reference": "PractitionerRole/PRid" }, "clientSystems":[{"reference": "Device/Did" }], "constraint": [{"resourceName": "Organization", "partOf" = "Organization/parentOrgID" }] } ``` - PractitionerRole, Devices 需先在 portal 註冊 - 並授權,以產生上述資訊. 記錄在 FHIR conscent 當中? - 使用者使用其所屬 client 系統登入 portal,需驗證使用者及其裝置 - 傳入使用者 及 client 系統 ID,驗證用對應公鑰驗章、或 share key 驗 HMAC - 公鑰或 share key 可存放在 FHIR person and Device 當中 - PractitionerRole.practitioner - 檢查參考之 PractitionerRole.practitioner 是否在 login person.link.target 當中 - 檢查目前使用的系統是否在參考之 Device 當中 - 檢查 post organization.partOF 之父組織是否與上述授權檔相同 ```json // 更新子組織 {"verb":"UPDATE" , "User": {"reference": "PractitionerRole/PRid" }, "clientSystems":[{"reference": "Device/Did" }], "constraint": [{"resourceName": "Organization", "partOf" = "Organization/parentOrgID" }] } ``` ```json // 刪除子組織 {"verb":"DELETE" , "User": {"reference": "PractitionerRole/PRid" }, "clientSystems":[{"reference": "Device/Did" }], "constraint": [{"resourceName" : "Organization", "partOf" = "Organization/parentOrgID" }] } ``` - 查詢子組織 -- Get RootURL/Organization?partOf=parentOrgID