Professional Documents
Culture Documents
FHIR Big Picture SM
FHIR Big Picture SM
FHIR Big Picture SM
• https://rath.asia
4 ขั้นตอน
4. แลกเปลี่ยนตาม Implementation
Guide ที่สร้างไว้
ขั้นตอนที่ 1:
สร้าง Implementation Guide
มาตรฐาน FHIR
เป็นมาตรฐานที่กําหนดว่าจะแลกเปลี่ยนข้อมูลสุขภาพกันอย่างไรดี
1. กําหนดวิธีการแลกเปล่ี่ยน
ตัวหลักคือ RESTful API
2. กําหนดโครงสร้างสิ่งที่จะแลกเปลี่ยนกัน
ด้วยการประกอบหน่วยย่อยของการแลกเปลี่ยน (เรียกว่า Resources) ต่าง ๆ เข้าด้วยกัน
จนได้ข้อมูลที่ต้องการ แล้วส่งในรูปแบบ JSON/XML*
Patient
Element Element Element Element
RESTful API
Element (s)
ตัวอย่าง JSON ของ
Patient Resource Instance (1)
{"resourceType":"Patient","id":"f001","text":
{"status":"generated","div":"<div xmlns=\"http://
www.w3.org/1999/xhtml\"></div>"},"identifier":
[{"use":"usual","system":"urn:oid:2.16.840.1.113883.2.4
.6.3","value":"738472983"},
{"use":"usual","system":"urn:oid:2.16.840.1.113883.2.4.
6.3"}],"active":true,"name":
[{"use":"usual","family":"van de Heuvel","given":
["Pieter"],"suffix":["MSc"]}],"telecom":
[{"system":"phone","value":"0648352638","use":"mobile"}
,
{"system":"email","value":"p.heuvel@gmail.com","use":"h
ome"}],"gender":"male","birthDate":"1944-11-17","deceas
edBoolean":false,"address":[{"use":"home","line":["Van
Egmondkade 23"],"city":"Amsterdam","postalCode":"1024
RJ","country":"NLD"}],"maritalStatus":{"coding":
[{"system":"http://terminology.hl7.org/CodeSystem/v3-
MaritalStatus","code":"M","display":"Married"}],"text":
"Getrouwd"},"multipleBirthBoolean":true,"contact":
[{"relationship":[{"coding":[{"system":"http://
terminology.hl7.org/CodeSystem/
v2-0131","code":"C"}]}],"name":
{"use":"usual","family":"Abels","given":
["Sarah"]},"telecom":
[{"system":"phone","value":"0690383372","use":"mobile"}
]}],"communication":[{"language":{"coding":
[{"system":"urn:ietf:bcp:47","code":"nl","display":"Dut
ch"}],"text":"Nederlands"},"preferred":true}],"managing
Organization":{"reference":"Organization/
f001","display":"Burgers University Medical Centre"}}
http://hl7.org/fhir/patient-example-f001-pieter.json.html
ตัวอย่าง JSON ของ
Patient Resource Instance (1)
{"resourceType":"Patient","id":"f001","text":
{"status":"generated","div":"<div xmlns=\"http://
www.w3.org/1999/xhtml\"></div>"},"identifier":
[{"use":"usual","system":"urn:oid:2.16.840.1.113883.2.4
.6.3","value":"738472983"},
{"use":"usual","system":"urn:oid:2.16.840.1.113883.2.4.
6.3"}],"active":true,"name":
[{"use":"usual","family":"van de Heuvel","given":
["Pieter"],"suffix":["MSc"]}],"telecom":
[{"system":"phone","value":"0648352638","use":"mobile"}
,
{"system":"email","value":"p.heuvel@gmail.com","use":"h
ome"}],"gender":"male","birthDate":"1944-11-17","deceas
edBoolean":false,"address":[{"use":"home","line":["Van
Egmondkade 23"],"city":"Amsterdam","postalCode":"1024
RJ","country":"NLD"}],"maritalStatus":{"coding":
[{"system":"http://terminology.hl7.org/CodeSystem/v3-
MaritalStatus","code":"M","display":"Married"}],"text":
"Getrouwd"},"multipleBirthBoolean":true,"contact":
[{"relationship":[{"coding":[{"system":"http://
terminology.hl7.org/CodeSystem/
v2-0131","code":"C"}]}],"name":
{"use":"usual","family":"Abels","given":
["Sarah"]},"telecom":
[{"system":"phone","value":"0690383372","use":"mobile"}
]}],"communication":[{"language":{"coding":
[{"system":"urn:ietf:bcp:47","code":"nl","display":"Dut
ch"}],"text":"Nederlands"},"preferred":true}],"managing
Organization":{"reference":"Organization/
f001","display":"Burgers University Medical Centre"}}
http://hl7.org/fhir/patient-example-f001-pieter.json.html
ตัวอย่าง JSON ของ
Patient Resource Instance (2)
"resourceType": "Patient",
"id": "example",
"text": {
"status": "generated",
"div": “เอาไว้แสดงผลในโปรแกรม เช่น HTML"
},
"identifier": [
{
"use": "usual",
"type": {
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/v2-0203",
"code": "MR"
}
]
},
"system": "urn:oid:1.2.36.146.595.217.0.1",
"value": "12345",
"period": {
"start": "2001-05-06"
},
(ข้อมูลใน JSON ยังไม่สิ้นสุด)
ตัวอย่าง JSON ของ
Patient Resource Instance (3)
"active": true,
"name": [
{
"use": "official",
"family": "Chalmers",
"given": [
"Peter",
"James"
]
},
{
"use": "usual",
"given": [
"Jim"
]
},
{
"use": "maiden", HumanName Data Type
"family": "Windsor",
"given": [
"Peter",
"James"
(ข้อมูลใน JSON ยังไม่สิ้นสุด)
Profiles
• เพิ่มข้อมูลที่ต้องการด้วย Extensions
และอื่น ๆ อีกมากมาย
Profiles (2)
Profile สามารถสร้างมาจาก FHIR Core Resources หรือสร้างมาจาก
Profile อื่น (เรียกว่า Derived Profile)
จําเพาะเจาะจงมากขึ้น
Constraint
US Core Patient
Constraint เพิ่ม
• ตัวอย่าง IG
• US Core (National IG ของ USA)
• ClinFHIR (URL)
• Trifolia-on-FHIR (URL)
ขั้นตอนที่ 2:
ติดตั้ง FHIR Server / Facade
FHIR Servers
วุ้นแปลภาษา
FHIR resources
Create/Read/ FHIR Facade
Update/Delete
FHIR resources
HIS Server & Database FHIR Client App
FHIR
GET
/PO
FHIR ST
Facade Res
ou rces
โรงพยาบาล 1 (HIS A)
O S T
ET /P
IR G
FH rc es
es ou
IR R
FH
Regional / Central
Data Repository
Facade
with FHIR Client
โรงพยาบาล 2 (HIS B)
2. เอา FHIR Facade ไว้ที่ส่วนกลาง
FHI
RG
ET/
FHI POS
RR T
eso Native GET/POST
urc
es
โรงพยาบาล 1 (HIS A)
Native response
with FHIR Client
ST
/ P O Facade
ET
G
H I R rc es
F s ou
R e
I R
FH
Regional / Central
Data Repository
โรงพยาบาล 2 (HIS B)
with FHIR Client
3. ใช้ Generic FHIR Server +
ทุกที่มี FHIR Client
FHI
RG
ET/
FHI POS
RR T
eso FHIR GET/POST
urc
es
โรงพยาบาล 1 (HIS A)
FHIR Resources
with FHIR Client
O S T
T / P Generic
G E
H I R c e s FHIR
F ou r
R e s
I R Server
FH
Regional / Central
Data Repository
with FHIR Client
โรงพยาบาล 2 (HIS B)
with FHIR Client
4. ทุกที่มี FHIR Facade แล้วหา Router
FHI
RG
ET/
FHI POS
Facade RR T
eso FHIR GET/POST
urc
es
โรงพยาบาล 1 (HIS A)
FHIR Resources
with FHIR Facade
O S T
T / P Router
G E
R
FHI u rc es Facade
e s o
R R
FHI
Regional / Central
Data Repository
Facade
with FHIR Facade
โรงพยาบาล 2 (HIS B)
with FHIR Facade
Terminology ใน FHIR
• Terminology มีขึ้นเพื่อให้สื่อสารถึงเรื่องเดียวกัน
RESTful API
FHIR Client FHIR Server
RESTful API
Searchset
Bundle
FHIR Server
FHIR Client
* Document และ Message Bundle สามารถส่งด้วย protocol อื่นที่ไม่ใช่ RESTful API ได้
การส่งข้อมูลเป็น Bundle
• การจับ Resources มาไว้ด้วยกัน เพื่อรับส่งระหว่าง client และ server ตาม
วัตถุประสงค์นั้น ๆ
• ประเภทหลัก ๆ (Type)
ตารางจาก https://www.hl7.org/fhir/http.html
FHIR Operations
• สิ่งที่สามารถทํากับ Resource ต่าง ๆ แต่เพิ่มเติมนอกเหนือจาก
HTTP interactions เราสามารถสร้างเพิ่ม operation เองได้
ตารางจาก https://www.hl7.org/fhir/operationslist.html
FHIR Client Application
• FHIR.JS (URL)
• ดูรายชื่อทั้งหมดได้ที่: https://wiki.hl7.org/
Open_Source_FHIR_implementations
ขั้นตอนที่ 4:
แลกเปลี่ยนตาม Implementation
Guide ที่สร้างไว้
สรุปขั้นตอนการแลกเปลี่ยนข้อมูล
1. ต้องการส่งข้อมูลใด ลองสร้าง Profile ของสิ่งนั้นดูก่อน ดูว่ามี
Resource ที่ตอบโจทย์อยู่แล้วหรือไม่ หากมีจะสร้าง Profile อย่างไร
(กําหนด Constraint, กําหนด Value Set, กําหนด Extensions)