2019年11月2日 星期六

Fhirbase公測伺服-安裝篇




開源FHIR標準提供了最重要的醫療保健領域涵蓋強大數據模型,PostgreSQL是經過實踐檢驗的開源關係資料庫,它支持JSON存儲格式,同時保留ACID和SQL語言的豐富性。FhirBase是結合這兩種技術所構建的系統。PL / PgSQL語言的編寫與存儲過程可在數據庫內部實現FHIR規範的重要部分-CRUD,Hx,Search ,問題在於PL / PgSQL的表現力,是一種很慢的古老語言。因此,國外團隊用JavaScript重新編寫,並且在多個生產系統中都表現非常成功。未來開發者希望在應用程序層而不是數據庫存儲過程中實現FHIR邏輯。此時將Fhirbase分解為三個部分:
  • 數據庫模式和實用程序,用於在PostgreSQL中存儲和查詢FHIR信息
  • FHIR元數據存儲和操作
  • FHIR行動實施


以下教學影片,完整敘述在MAC OS系統中如何安裝FhirBase過程,當然你必須先完成資料庫PostgreSQL安裝,才能進入影片中安裝步驟與程序。在本blogger教學中以下先介紹重要資料庫安裝程序與官方網站介紹。


PostgreSQL在所有主要操作系統運行自2001年以來一直兼容ACID,並具有強大的附加組件,例如流行的PostGIS地理空間數據庫擴展程序。PostgreSQL帶有許多功能,旨在幫助開發人員構建應用程序,幫助管理員保護數據完整性和構建容錯環境,並幫助您管理數據(無論數據集大小)。除了免費和開源之外,PostgreSQL也是高度可擴展的。例如,您可以定義自己的數據類型,構建自定義函數,甚至可以使用不同的編程語言編寫代碼,而無需重新編譯數據庫!
PostgreSQL嘗試符合SQL標準,在這種標準,該標準不會與傳統功能相抵觸,也可能導致糟糕的架構決策。支持SQL標準所需的許多功能,儘管有時語法或功能略有不同。隨著時間的流逝,有望進一步實現一致性。從2019年10月的版本12開始,PostgreSQL符合179種SQL:2016 Core一致性強制功能中的至少160種。在附錄一及附錄二中,針對於Ubuntu18.0環境中安裝PostgreSQL指令有詳細的步驟和語法,有需安裝的網友只需要利用以安裝好的Ubuntu18.0中開啟Terminal視窗,將指令逐一貼上逐步完成安裝指令執行即可,另外需透過Pgadmin4管理工具來針對PostgreSQL透過Browser瀏覽器做控制與資料庫的管理。有關Linux、Ubuntu的操作、安裝與指令,本章結中不再多做描述,有相關技術上的疑問歡迎網友透過網站留言方式共同討論。







附錄一
------------安裝 PostgreSQL------------
https://blog.gtwang.org/linux/how-to-install-and-use-postgresql-ubuntu-18-04/
https://mozillazg.com/2014/06/hello-postgresql.html

在 Ubuntu 官方的套件庫中已經有收錄 PostgreSQL 的相關套件,安裝前先更新套件庫資訊:
sudo apt update
sudo apt install postgresql postgresql-contrib
systemctl status postgresql.service
若 Active 欄位顯示為 active,就表示 PostgreSQL 資料庫服務已經正常啟動了

------------安裝pgAdmin 4 套件------------

# 安裝必要套件
sudo apt install wget ca-certificates
# 新增 PostgreSQL 套件庫
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
# 匯入 PostgreSQL 套件的金鑰
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
# 更新套件庫資訊
sudo apt update
# 安裝 PostgreSQL 套件
sudo apt install postgresql-10 pgadmin4

------------psql 管理介面------------
若要進行 PostgreSQL 資料庫的設定與管理工作,必須切換成具有 PostgreSQL 管理權限的使用者(預設是 postgre),然後再執行 psql 進入 PostgreSQL 的指令操作介面:

# 切換成 postgres 使用者
sudo -i -u postgres
# 進入 PostgreSQL 指令介面
psql

另一種方式是使用 sudo 切換成 postgres 只用者之後,直接執行 psql,這樣的話指令會更簡潔:
# 切換成 postgres 使用者,並進入 PostgreSQL 指令介面
sudo -u postgres psql

若要離開 PostgreSQL 指令介面,可以按下 Ctrl + d 這個快速鍵,或是執行 \q 指令:
-- 離開 PostgreSQL 指令介面
\q

------------新增 PostgreSQL 使用者帳號與資料庫------------
#you haven't set up a database role with the necessary privileges that corresponds to your operating system user of the same name
sudo -u postgres -i

若要在 PostgreSQL 資料庫中新增使用者,可以用有新增帳號權限的使用者來執行 createuser 這個 Linux 指令:
# 新增 PostgreSQL 使用者
sudo -u postgres createuser gtwang

在 Linux 系統上透過本機的 Unix-domain socket 連到 PostgreSQL 資料庫,預設會使用 peer 的認證方式(直接根據 Linux 統帳號來認證,請參考 PostgreSQL 官方文件),所以不需要設定密碼,如果需要改用 TCP/IP socket 連線的話,在建立使用者時就要加上 -P 參數來設定密碼。
PostgreSQL 的使用者帳號在登入後,預設會使用跟帳號名稱相同的資料庫,我們可以利用 createdb 這個 Linux 指令建立一個跟帳號名稱相同的資料庫:
# 新增 PostgreSQL 資料庫
sudo -u postgres createdb gtwang
建立好帳號與資料庫之後,就可以使用該 Linux 帳號執行 psql 進入 PostgreSQL 資料庫使用了。
接下來所有的 PostgreSQL 資料庫操作,都會在 psql 之中進行。

------------建立資料表------------
-- 建立資料表
CREATE TABLE demo (
  id serial PRIMARY KEY,
  name varchar (30) NOT NULL,
  gender char(1) check (gender in ('M', 'F')),
  birthday date
);
使用 psql 的 \d 這個 meta 指令,列出目前已經建立的資料表:
-- 列出資料表
\d
demo_id_seq 是用來紀錄 demo 資料表中 id 欄位的序號用的,PostgreSQL 要靠著這個來判斷下一個序號是多少,如果不想列出 sequence,可以改用 \dt 指令。
-- 檢查資料表結構
\d demo
若要更改資料表的結構,可用 ALTER 指令:

-- 更改資料表,新增欄位
ALTER TABLE demo ADD weight real;

-- 更改資料表,刪除欄位
ALTER TABLE demo DROP weight;

------------刪除帳號、資料庫、資料表------------
-- 刪除資料表
DROP TABLE demo;
# 刪除 PostgreSQL 資料庫
sudo -u postgres dropdb gtwang

# 刪除 PostgreSQL 使用者
sudo -u postgres dropuser gtwang

------------官方網站安裝說明------------
https://www.postgresql.org/download/linux/ubuntu/
###Create the file /etc/apt/sources.list.d/pgdg.list and add a line for the repository
deb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main
###Import the repository signing key, and update the package lists
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
###Included in distribution
apt-get install postgresql-10
apt-get install postgresql-client-10
apt-get install postgresql-10
apt-get install postgresql-contrib-9.x
apt-get install libpq-dev
apt-get install postgresql-server-dev-10
apt-get install pgadmin4
###


附錄二

--------------psql命令--------------

\password:設置密碼

\q:退出

\h:查看SQL命令的解釋,比如\h select。

\?:查看psql命令列表。

\l:列出所有數據庫。

\c [database_name]:連接其他數據庫。

\d:列出當前數據庫的所有表格。

\d [table_name]:列出某一張表格的結構。

\du:列出所有用戶。

\e:打開文本編輯器。

\conninfo:列出當前數據庫和連接的信息。

--------------postgresql使用--------------

(1) 切換到Linux下postgres用戶:sudo su postgres

(2)登錄postgres數據庫:psql postgres

(3)在命令模式下創建數據庫用戶:create user dbuser with password ‘123456‘;

(4)在命令模式下創建數據庫:create databse exampledb with owner dbuser;

(5)在命令模式下把數據庫example的所有權限賦給dbuser: grant all privileges on databse exampledb to dbuser;

(6)退出psql 命令行模式:\q

(7)登錄數據庫:psql -U dbuser -d exampledb -h 127.0.0.1 -p 5432進入到了exampledb=>

上面命令的參數含義如下:-U指定用戶,-d指定數據庫,-h指定服務器,-p指定端口。

(8)基本操作指令

# 創建新表CREATE TABLE user_tbl(name VARCHAR(20), signup_date DATE);

# 插入數據 INSERT INTO user_tbl(name, signup_date) VALUES(‘張三‘, ‘2013-12-22‘);

# 選擇記錄 SELECT * FROM user_tbl;

# 更新數據 UPDATE user_tbl set name = ‘李四‘ WHERE name = ‘張三‘;

# 刪除記錄 DELETE FROM user_tbl WHERE name = ‘李四‘ ;

# 添加欄位 ALTER TABLE user_tbl ADD email VARCHAR。ALTER TABLE user_tbl ALTER COLUMN signup_date SET NOT NULL;

# 更名欄位 ALTER TABLE user_tbl RENAME COLUMN signup_date TO signup;

# 刪除欄位 ALTER TABLE user_tbl DROP COLUMN email;

# 表格更名 ALTER TABLE user_tbl RENAME TO backup_tbl;

# 刪除表格 DROP TABLE IF EXISTS backup_tbl;

沒有留言:

ACCESS資料成功轉換SQlite方法

最近忙於系統開發研究,今日來談一下有朋友很有才華自行利用ACCESS開發了CRM(客戶關係管理)系統,但僅限於個人使用考量目前大量使用者成長與需求,洽詢我是否能技術支援同時給了我ACCESS檔案參考,但因電腦OFFICE沒有ACCESS可開啟.accdb檔案,相信有許多微軟OFF...