ในการ implement SNOMED CT ถ้าเราต้องเอา release file (RF) ไปเข้าสู่ฐานข้อมูลและจัดการเรื่องฟีเจอร์ต่าง ๆ เองทั้งหมด จะต้องใช้ความพยายามค่อนข้างสูง
Terminology server คือโปรแกรมที่จัดการความยุ่งยากเหล่านั้นให้เราหมดแล้ว เราแค่ต้อง import RF เข้าไป จากนั้นก็ใช้งานผ่าน API (terminology service) จะทำให้เราใช้งาน SNOMED CT ได้ง่ายกว่ามากครับ
ช่วงที่ผ่านมาผมได้มีโอกาสลอง deploy Snowstorm ผ่านทาง Docker จึงได้นำวิธีที่ทำมาแชร์ให้ทุกท่านครับ
Snowstorm เป็น Terminology server ของทาง SNOMED เอง มี API 2 แบบให้ใช้คือ Native Snowstorm API กับ FHIR terminology service API ไว้มีโอกาสผมมาบอกวิธีใช้ API ต่อไปครับ รอบนี้เป็นการ deploy server ก่อน
ต้องบอกก่อนว่าผมก็ไม่ใช่ expert สาย infra อะไรนะครับ ทำเล็ก ๆ พอใช้ทดสอบพอได้ แต่ถ้าใช้ใน production จริงไม่รู้มันต้องทำยังไงเหมือนกันครับ ท่านใดเชี่ยวชาญเรื่องนี้แชร์กันได้ครับ 😄
ขั้นตอนโดยสรุป
ขั้นที่ 1: เปิด Virtual Machine (VM) ใหม่
ในวิดีโอคือผมเป็นที่ DigitalOcean โดยผมเปิดเป็น Ubuntu
ขั้นที่ 2: Install Docker
ทำตามขั้นตอนในลิงค์นี้ https://docs.docker.com/engine/install/ubuntu/
ขั้นที่ 3: Install Docker Compose
ทำตามขั้นตอนในลิงค์นี้ https://docs.docker.com/compose/install/
ขั้นที่ 4: Clone Snowstorm
จาก GitHub นี้ https://github.com/IHTSDO/snowstorm
ขั้นที่ 5: แก้ vm.max_map_count
โดยใช้คำสั่ง
sysctl -w vm.max_map_count=262144
ขั้นที่ 6: run docker-compose
docker-compose up -d
ขั้นที่ 7: Import SNOMED-CT RF
รายละเอียดตามหน้านี้ https://github.com/IHTSDO/snowstorm/blob/master/docs/loading-snomed.md
ขั้นตอนคือ
- สร้าง import job จากใน Swagger จะได้ ID มา
- ส่ง SNOMED-CT release file ขึ้นไป
- ตรวจเช็คสถานะเป็นระยะจนสำเร็จ
มีคำแนะนำเพิ่มเติมอย่างไรแจ้งได้นะครับ
หมายเหตุ: ภาพ featured image โดย Sergey Pesterev จาก Unsplash