แสดงกระทู้

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - draran

หน้า: [1]
1
Development / shell script สำหรับ tranfer database(หรือ import databas)
« เมื่อ: ธันวาคม 27, 2014, 19:48:47 PM »
ว่างเว้นจากงานเขียนโปรแกรมไปนาน เนื่องจากภาระกิจงานบริหาร พอจะมาเขียน web service ตัวใหม่ต่อ งานแรกที่ต้องทำคือ เอาฐานข้อมูล hosxp จาก server เข้าเครื่อง macbook air(Yosemite OSX 10.10) ที่ใช้งานประจำ ลองลง MariaDB 10.1 ผ่าน Macport แทน MySQL เพราะ support InnoDB มากกว่า เข้า Parallel Desktop เพื่อเข้า hosxp ที่อยู่บน windows และจัดการ initial import โดยกำหนด slave มาที่ MBA ช่วงแรกก็เร็วดี เดินไปชงกาแฟ กลับมา error : out of memory อืมม์ อาจเพราะรันบน Virtual Machine Memory เลยไม่พอ จำต้องหา เครื่อง windows มาช่วย run initial import แทน แต่ก็เกิดอาการเดียวกัน ลองเพิ่ม thread ก็กลับมาวิ่งได้ซักพัก ก็ out of memory ต่อ ต้องคอยเฝ้า เพิ่ม thread กันไม่ต้องหลับต้องนอน จนสุดท้าย แจ้ง error ว่า พื้นที่การจัดเก็บไม่พอ ยอมแพ้ เรียกน้อง IT มาสอบถาม เพราะไม่ได้จับเสียนาน ได้ความว่า GUI ใหม่ใช้ Memory มากในการ initial import (ทั้งฝั่ง client และ server) ส่วน ปัญหาอื่นเช่น mysql ตัดไปเป็นบางช่วง ในตาราง image บางตารางเพราะไฟล์ขนาดใหญ่กว่า max_allow_package ส่วนที่พื้นที่จัดเก็บไม่พอน่าจะเกิดจาก log file(ซึ่งตอนเขียนโปรแกรมไม่ใคร่จะจำเป็นสำหรับผม) และโปรแกรมอื่นที่ใช้ฐานร่วมกับ hosxp(เช่น ulog)  น้อง IT แนะนำว่า ให้ downgrade version ลง เพื่อ inital import หรือ ไม่ก็ backup แบบไม่เก็บรูปกับ log แล้วค่อย restore และ upgrade structure ภายหลัง ซึ่งทุกวิธีต้องทำผ่าน windows
เลยเกิดความคิดว่า ไหนๆก็ไหนๆ เขียน script เพื่อนำเข้า ผ่าน shell script ดีกว่า ใช้ได้ทั้งบน OSX และ Linux ซึ่งน่าจะเป็นประโยชน์กับ admin ในการนำเข้า Database ผ่าน commandline ได้เลย สะดวกดี

คุณสมบัติ
- ลบ/สร้าง  database ขึ้นใหม่ได้เลย(ยืนยันการ drop database เดิมก่อน สร้างใหม่และนำเข้า)
- สามารถ เลือกตารางที่ไม่ต้องการนำเข้า(ตารางที่ไม่ใช่ของ hosxp) หรือ นำเข้าเฉพาะ structure (log table) โดยกำหนดรูปแบบ หรือจำเพาะเจาะจง
-ใช้การ dump และ restore ทีละตารางแทนการ dump ทั้ง database ที่จะทำให้ไฟล์ .sql มีขนาดใหญ่ นำเข้าได้ช้า และเปลือง Memory
- สามารถนำไปปรับใช้ในการนำเข้าหรือถ่ายข้อมูล MySQL ได้ทุกๆฐานข้อมูล

การใช้งานและการปรับแก้

-เปิดไฟล์ hosxpimport.sh โดย texteditor ตามถนัด( เช่น vi)
-ใส่ข้อมูลส่วนของ server ฐานข้อมูลต้นทาง และ server ปลายทาง อาจอยู่ในเครื่องที่ run script หรือต่างเครื่องก็ได้
โค๊ด: [Select]
## Master sever
master_ip="";
master_user="";
master_pass="";
master_db="";

## Import sever
import_ip="";
import_user="";
import_pass="";
import_db=""; #drop database if existe; create database if not.

กรณี import_db มีอยู่แล้ว จะมีการตรวจสอบและถามยืนยันว่าต้องให้ลบฐานข้อมูลดังกล่าว เพื่อสร้างใหม่หรือไม่? (ตอบ y ใช่ / n ยกเลิก)

โค๊ด: [Select]
Database  already exist. Do you wish to drop database and create new one?(y/n)

- ปรับแต่งตารางที่ต้องการนำเข้าหรือไม่ต้องการนำเข้า(ถ้าไม่ต้องการปรับแก้ข้ามไป)
โค๊ด: [Select]
## Get table name without log
echo "show tables;" | mysql -h $master_ip -u $master_user -p$master_pass $master_db |grep -v '^Tables_in_'|grep -v '_log$'|grep -v 'data_synchronize'|grep -v 'ksklog'|grep -v '^ulog_' > tables.txt

รูปแบบ |grep -v ‘xxxx’ หมายถึง ไม่นำตาราง xxxx เข้า   
|grep -v ‘^xxxx’ หมายถึง ไม่นำตารางที่ขึ้นด้วย xxxx เข้า
|grep -v ‘xxxx$’ หมายถึง ไม่นำตารางลงท้ายด้วย xxxx เข้า

หมายเหตุ การไม่นำตารางของ  hosxp เข้าต้องไม่ลืมนำเข้า structure(ในขั้นถัดไป) มิฉะนั้นจะทำให้เข้าใช้งานไม่ได้ หรือต้องทำ upgrade structure ผ่าน windows

- ปรับแต่งตารางที่ต้องการนำเข้าเฉพาะ structure (ถ้าไม่ต้องการปรับแก้ข้ามไป)

โค๊ด: [Select]
## Get log table or other table name
echo "show tables;" | mysql -h $master_ip -u $master_user -p$master_pass $master_db |grep -e '_log$' -e 'data_synchronize' -e 'ksklog' > logs.txt

รูปแบบ -e ‘table_name’

-บันทึกไฟล์ที่ปรับแก้
- กำหนดสิทธิ์ให้สามารถ run ได้ โดยพิมพ์คำสั่ง ใน terminal
โค๊ด: [Select]
chmod +x hosxpimport.sh
-run script โดยพิมพ์คำสั่ง ใน terminal
โค๊ด: [Select]
./hosxpimport.sh
- script จะสร้าง database อัตโนมัติกรณียังไม่มี กรณีมีอยู่แล้ว จะยืนยันเพื่อลบและสร้างใหม่ หลังจากนั้น script จะ แสดงกระบวนการนำเข้า ชื่อตารางที่ดำเนินการอยู่ ขั้นตอนต่างๆ error(กรณีที่มี แต่จะ run ต่อแม้มี error )
- ไปชงกาแฟ  ;D
- เมื่อสิ้นสุด จะแสดงระยะเวลาที่ใช้ไปทั้งหมด (ขึ้นอยู่กับฐานข้อมูล และความเร็วเครื่อง) นำเข้าข้อมูล รพ.ทุ่งยางแดง ขนาดประมาณ 30 GB เข้า ใน Macbook Air Yosimite OSX 10.10 กับ ฐานข้อมูล MariaDB 10.1 ใช้เวลา 80 นาที ทดสอบการเข้าใช้โดยไม่ได้ upgrade structure login ใช้ได้ปกติ ไม่ได้แสดงข้อความ error อะไร ถือว่า ไม่เร็ว แต่ก็ไม่เลวร้ายนัก ไม่ต้องหาเครื่อง windows อีกเครื่อง ไม่ต้อง backup-restore ไม่ต้อง downgrade
-ขอให้สนุกในการใช้งานครับ

**** แก้ไขไฟล์สำหรับตาราง Doraemon ครับ
**** แก้ไขไฟล์ error ECHO ครับ(เปลี่ยนเป็นตัวเล็ก echo ให้แล้วครับ)

2
หลังจากที่ อ.ชัยพร เสนอนโยบายเกี่ยวกับการสำรองข้อมูล น้องๆทีม IM ก็มีประเด็นมาปรึกษาเรื่องการนำข้อมูลที่สำรองไว้มาใช้งาน เมื่อ Server หลักมีปัญหา โดยเฉพาะข้อมูลที่ Replication ไว้ ซึ่งเกือบจะเป็น Real-time Backup  ในทางปฏิบัติทำได้ไม่ยาก เนื่องจากเพียงแก้ IP Address เครื่องที่เป็น Slave เดิม เป็น Master(Server) แทน อย่างไรก็ตาม เนื่องจากเป็นกระบวนแก้แบบ Manual โดยต้องมี จนท. IT  มาจัดการ หากเป็นช่วงนอกเวลาราชการ หรือไม่มี จนท.ปฏิบัติงาน(ซึ่งเป็นเหตุให้ จนท. IT และเกี่ยวข้องไปไหนไม่ค่อยได้)
ขอเสนอทางแก้ไขง่ายๆ ครับ แต่มี Requirement ดังนี้
1.   ระบบ Replication จะต้องได้รับการตรวจสอบว่าทำงานถูกต้อง(Synchronize status) อย่างน้อยวันละครั้ง
2.   นโยบายของทีมสารสนเทศเกี่ยวกับเรื่องนี้ เช่น ระยะเวลาในการแก้ไขที่ยอมรับได้โดยไม่กระทบระบบบริการ ระบบสำรองอื่น อย่างไรก็ตามไม่แนะนำให้รีบใช้ manual เพราะข้อมูลส่วนนี้มักสูญหาย และไม่ถูกจัดเก็บเข้าระบบ ทั้งจะทำงานอื่นๆ ล่าช้า เช่น การจ่ายยา การออกใบเสร็จ
3.   มี Slave ที่เป็น Windows(XP,NT,2003) แนะนำว่าควรจะมีอย่างน้อย 1 ตัว เพราะสามารถใช้ Run Replicator, Auto Backup ซึ่งมี Spec พอจะเป็น Server ชั่วคราวได้ โดยเฉพาะ RAM อย่างน้อย 1-2 G
4.   เครื่อง client ในระบบจะต้องเปิด service Messenger
หลักการทำงาน
อันที่จริงก็เป็นระบบง่ายๆ แต่คิดว่าใช้งานได้ดี พอควร (แม้ว่าภาวนาให้ไม่ต้องใช้)
1.   ตั้งเวลาการตรวจสอบระบบ ตามเวลาที่กำหนด เช่น ทุก 10 นาที



2.   ตรวจสอบโดย ping Server ว่า Reply กลับมาหรือไม่
3.   ตรวจสอบโดย ping เครื่อง client  ที่กำหนดว่า Reply กลับมาหรือไม่ ได้ ถ้า Reply ได้ แสดงว่า เฉพาะ Server ที่ขัดข้อง ส่ง message แจ้ง client ใน work group ทั้งหมด และส่ง message แจ้ง server status แก่ admin



4.   รอตรวจ server ซ้ำในระยะเวลาที่กำหนด เช่น ทุก 10 นาที ตามขั้นตอนที่ 2 และ 3
5.   ถ้ายังติดต่อกับ server ไม่ได้ จะทำการเปลี่ยน IP เครื่องที่ Run script ตรวจสอบ (Slave) ให้เป็นเครื่อง Master แทน (โดยไม่ต้อง restart)
6.   ตรวจสอบโดย ping Server ใหม่ ว่า Reply กลับมาหรือไม่ ถ้าได้ส่ง message แจ้ง client ใน work group ทั้งหมด



7.   จัดเก็บข้อมูลการเชื่อมต่อ การแก้ไข IP เวลา ลง log file สำหรับการตรวจสอบ

ขั้นตอนการติดตั้ง
1.   แตกไฟล์ zip นำ folder ไปวางไว้ใน drive c: ของเครื่อง Slave ที่เป็น Windows OS
2.   แก้ไขไฟล์ starttask.bat จาก default 10 นาที เป็นตามที่ต้องการ
3.   ถ้าต้องการเปลี่ยนชื่อ folder  และ path ให้ คลิ๊กขวา servercheck.lnk เลือก properties แก้ไข target และ start in ตาม folder  และ path ที่กำหนด (สามารถ run servercheck.bat ได้โดยตรง โดยแก้ไขใน starttask.bat แต่ไม่สามารถใน run ใน minimize mode ซึ่งจะไม่แสดงเป็น DOS Windows แต่จะปรากฏอยู่ที่ Tray Bar แทน)
4.   แก้ไข servercheck.bat
 hosxpserverip=192.168.45.162   ->IP ของเครื่อง Server
clientip=192.168.45.2   ->IP ของเครื่อง client ที่เปิดอยู่ตลอด เช่น เครื่องที่เป็น gateway
admincomname=draran-black  -> IP เครื่องของ admin ที่ต้องการให้ส่ง message แจ้ง
 clientworkgroup=UC -> ชื่อ workgroup
connectname= Local Area Connection  ->ชื่อของ connection หรือ LAN ของตัว Slave
connectsubnet=255.255.255.0
5.   Double click ไฟล์ starttask.bat

วิธีทดสอบ
ติดตั้งตามรายละเอียดข้างบน โดยลองเปลี่ยน  hosxpserverip เป็น ip ที่ยังไม่มีเครื่องระบบใช้งาน เพื่อจำลองว่า ติดต่อ server ไม่ได้ แล้วตรวจการทำงาน ว่า ip มีการเปลี่ยนแปลงหรือไม่

ถ้าผิดพลาดประการใด ก็โพสต์จะทำการตรวจสอบและแก้ไขโค๊ดให้ครับ ;D

3
Report Exchange / ฝากรายงานให้ รพ.ไม้แก่นครับ
« เมื่อ: ธันวาคม 28, 2007, 16:44:50 PM »
รายงานรับเงินบริจาคครับ

4
วันก่อนหลังได้ปรึกษากะ อ.อ๊อด ก็ได้ข้อสรุปว่า web service version น่าจะเป็น component ของ CMS ที่มีอยู่แล้ว เพราะมีความเป็นกลาง พัฒนาง่าย สามารถแยกส่วนพัฒนาได้ เปิดกว้างให้สมาชิกช่วยกันแก้ไขได้ง่าย
ตกลงกันกว่าจะพัฒนาบน Joomla เนื่องจากใช้ AdoDB ทำให้ support หลาย database เหมือน hosxp
ผมเลือกใช้ Joomla ภาษาไทยของ http://www.joomlasiam.com เนื่องจากยังใช้ฐานข้อมูลแบบ tis-620 จึงใช้ร่วมกันได้กะ hosxp
ตอนนี้กำลังจัดการเรื่องระบบความปลอดภัย และระบบจัดการสมาชิก เพื่อให้ผู้ใช้ hosxp ไม่ต้อง login เข้าระบบขณะใช้ hosxp อยู่
ปัญหาคือ เนื่องจาก Joomla ตัวใหม่ (1.5) ไม่รองรับ tis-620 ใช้ utf-8 แทน ซึ่งเป็นมาตราฐานไปแล้ว โดยเฉพาะบน MySQL 5.0 ล่าสุด http://www.joomlasiam.com ก็ตัดสินเตรียมทิ้ง tis-620 ไปใช้ utf-8 แล้ว
เลยจะเรียนปรึกษา อ.ชัยพร อ.อ๊อด ว่าเอาไงดีครับ  :o ::) ???

5
เนื่องจากติดภารกิจด้านอื่น จึงจำใจต้องยกหน้าที่การดูแลระบบให้น้องไอทีดูแลเต็มตัว พบว่า ปัญหาสำคัญที่ผู้ดูระบบ(มือใหม่) พบก็คือการเขียนรายงาน โดยเฉพาะแบบที่ผู้ใช้ต้องใส่ค่า เช่น hn,an,vn เอง(ยกเว้นวันที่ที่ อ.เขียนระบบตรวจสอบอัตโนมัติอยู่แล้ว) ซึ่งต้องใช้ Pascal script ในการทำงาน

ขอสรุปหลักการการเขียน custom report สั้นๆ เพื่อความเข้าใจตรงกัน หลักๆมีสองแบบ คือ

1.   ใช้ sql script ล้วนๆ ข้อดีคือ ตรงไปตรงมา สามารถนำผลการ query ไปใช้ได้เลย ข้อเสีย แม้เราจะสามารถเชื่อมระหว่างหลายๆตารางได้ แต่ก็จะทำ query ซับซ้อน ทำงานช้า กำหนดเงื่อนไขได้จำกัด เนื่องจากเป็นการ query ในครั้งเดียว ที่สำคัญ(ซึ่งเป็นที่มาของบทความนี้)ก็คือ เราไม่สามารถรับค่าตัวแปรอย่างอิสระจากผู้ใช้

2.   ใช้ Pascal ดึงข้อมูลใส่ตาราง tempreport แล้ว ใช้  sql script ดึงจาก tempreport มาแสดงผลอีกที ข้อดี(มากมาย) ยืดหยุ่นมาก สามารถ query ไม่จำกัดจำนวนครั้งใน script สามารถรับค่าตัวแปรได้ ข้อเสียคือ เขียนยาก เพราะเป็นภาษา Pascal มีความยุ่งยากมาก เนื่องจากจะต้องใส่ทุกค่าที่ต้องการแสดงผลลงใน ตาราง temreport หากจำนวนค่าที่ต้องการแสดงผลมาก จำเป็นต้องใช้ record ใน tempreport มากกว่า 1 แถว การเขียน script ก็จะยุ่งยากขึ้นมาก และแต่ละ filed ใน tempreport ไม่ได้สื่อความหมาย ทำให้ใช้งานยาก ต้องจดจำ หรือกำหนดชื่อให้กับทุกค่า

บทความนี้ขอเสนอไอเดียการใช้ Pascal script แบบประยุกต์ ในรายงานที่จำเป็นต้องใช้ค่าที่รับมาจากผู้ใช้โดยมีข้อดี คือ
1.ไม่ต้องบันทึกข้อมูลทุกตัวที่ต้องการลงใน tempreport โดยใช้ Pascal script แต่ยังใช้ Pascal script เพื่อรับตัวแปรจากผู้ใช้งาน และบันทึกลง tempreport เฉพาะตัวแปรนี้ เพื่อใช้ในการ query ภายหลัง
2. เนื่องจากไม่ต้องบันทึกข้อมูลจำนวนมากลงใน tempreport ลดความยาวและซับซ้อนของ Pascal script
3. ดึงข้อมูลโดย sql script เป็นหลัก โดยเชื่อมกับตัวแปรที่บันทึกใน tempreport ทำให้ออกแบบรายงานง่ายขึ้น เนื่องจากตัวแปร แต่ละตัวยังคงแสดงชื่อ ตามชื่อ field
อย่างไรตาม ยังสามารถบันทึกข้อมูลอื่นๆ ได้เป็นอิสระจาก query หลัก โดยบันทึกลงใน filed ต่างๆของ tempreport ได้ตามปกติ

ขอสรุปรูปแบบของ Pascal script สำหรับผู้เริ่มต้น โดยสังเขป ซึ่งจะประกอบไปด้วยกระบวนการหลักๆ คือ
1) การประกาศฟังชั่นที่ใช้ใน script 
2)การประกาศตัวแปร
3) รับค่าจากผู้ใช้
4) หลังจากนั้น จัดการกับตัวแปร เช่น ตรวจสอบความถูกต้องของค่าที่ได้รับ จนได้ค่าที่ต้องการ
5) แล้วลบข้อมูลที่มีอยู่ตาราง tempreport ที่มี id ตามที่เรากำหนดไว้(คือชื่อตาราง)
 6) กำหนดค่าให้กับ field ที่เราต้องการ
7) สุดท้ายก็ update ตาราง tempreport เป็นอันเสร็จพิธี
ตัวอย่างแรกเป็นตัวอย่างง่ายๆ คือ รับการ hn จากผู้ใช้ โดยไม่ต้องใช้ศูนย์นำหน้า แล้วไปเติมศูนย์ให้เป็น 9 หลักใน script(เพื่อความสะดวกแก่ผู้ใช้งาน) แล้วนำไปเชื่อมกับ ตาราง patient เพื่อดึงข้อมูลตาม hn ที่ต้องการ



6
ในงาน TMI section open source มี โปรแกรมที่ convert HCIS และส่งข้อมูล realtime เป็น xml ไม่ทราบว่า ใครมีอยู่ในมือบ้างครับ รบกวน post หน่อย หรือส่งทาง อีเมล์ draroka@hotmail.com ขอบคุณครับ

7
Development / Mayo Web Framework 1.1 ถึง อ.อ๊อด
« เมื่อ: ตุลาคม 30, 2006, 03:45:00 AM »
คุยกับอ.อ๊อดทีไรถูกตามเรื่อง web framework ทุกทีไป  ;D ยังเป็น version เดิม แต่เพิ่มบาง module และแก้ bug ใช้ที่ รพ.มายอ ก็ปกติดีอยูหลายเดือน น้องๆที่ มายอปรับหน้าตาใหม่ดูใสขึ้น เลยเรียกเป็น version 1.1 และเพิ่ง เอามาใช้ที่ รพ.ทุ่งยางแดง เดิมทีตั้งใจว่าจะปล่อย version 2.0 ซึ่งใช้ AdoDB และ OOP PHP แต่พอย้ายมาทำงานที่ รพ.ทุ่งยางแดง หาเวลาเขียนไม่ค่อยจะได้ เลยไม่มคืบหน้าซักเท่าไหร่
ให้อ.อ๊อดใช้ตัวนี้แก้ขัดก่อนล่ะกัน
*ตอนแรก modify ให้ apache2 Run ทั้ง .dws(ไว้ redirect เข้า hosxp) และ .php แต่ทำงานช้ามาก ครั้นใช้ IIS run ก็มี error กับ mysql จำใจต้อง ให้ IIS run dws ส่วน apache run php แต่แยก port กัน

8
จำได้ว่า อ.ชัยพรเคยแนะนำไว้ให้ fix IP สำหรับเครื่อง client เพราะนอกจากง่ายต่อการบริหารจัดการแล้ว ยังปลอดภัยกว่า DHCP ซึ่งจ่าย IP ให้กับทุกเครื่องที่อยู่ในวง
ได้คุยน้องที่ใช้ hosxp ท่านหนึ่ง พบปัญหาเล็กๆที่ทำเอา admin ปวดหัวได้เหมือนกัน คือ มี user มือดี ไปเปลี่ยน IP address ตรงกับ เครื่อง server ซึ่งทำให้ระบบล่มแบบไม่ทราบสาเหตุ และหาเครื่องสาเหตุยากมากโดยเฉพาะถ้ามีเครื่องมากๆ จึงแนะนำให้ป้องกันไว้ก่อนโดย
1 ให้สิทธิ์ user เพียง limited user ดีที่สุด แก้ปัญหาได้หลายๆเรื่อง แต่ admin อาจต้องถูกตามบ่อย ถ้ามีปัญหาที่สิทธิ์ user แก้ไม่ได้ แม้เป็นเรื่องเพียงเล็กน้อย

2 config ให้ไม่สามารถแก้ไข ip address โดย
เข้าไปที่ run พิมพ์ gpedit.msc จะเข้าไปใน Group policy
ไปที่ user configuration>administrative templates>network>network connections>

3 เปลี่ยน setting ของ "Prohibit access to properties of a LAN connection" เป็น Enable และ "Enable Network Connections settings for Administrators" เป็น Enable

แค่นี้ก็แก้ไข ip address ไม่ได้แล้วครับ :)

9
ยินดีต้อนรับ / กลับมาฝากเนื้อฝากตัว
« เมื่อ: กันยายน 16, 2006, 07:02:32 AM »
ขออภัยอย่างยิ่งที่หายไปร่วม 2 ด. ;D เนื่องจากเพิ่งย้ายไปรับงานที่ รพ.ใหม่(รพ.ทุ่งยางแดง) ซึ่งอยู่ห่างจาก รพเดิม.(รพ.มายอ) เพียง 16 กม. ซึ่งระบบเดิมใช้ mitnet(netware)(แถมใช้แบบ paperless 100%--คุณพระช่วย!!!) ทำให้ต้องวางมือจาก hosxp และ web service ไปบ้าง  :D ประกอบกับผู้บังคับระดับจังหวัด มีนโยบายให้ผ่านการประเมิน HA ใน พ.ย.นี้ ทำให้ยิ่งยุ่ง  :o  ??? ตั้งใจว่าจะเปลี่ยนมาใช้ hosxp อีก 2-3 ส. ด้วยรอ อ.อ๊อดเขียนตัว convert
เดชะบุญ อาทิตย์ที่ผ่านมา เครื่อง mitnet เกิด Harddisk พังขึ้นมา ทำให้ต้องเปลี่ยนแผนขึ้นระบบ hosxp แบบฉุกเฉิน เขียน script ดึงข้อมูลแทบไม่ทัน(เพราะไม่มี opdcard ให้ดู) ไหนจะเตรียมเครื่อง เตรียมคน โอ จอร์จ
ตอนนี้เรียบร้อยแล้วครับ(90%)
รพ.ทุ่งยางแดง(ปัตตานี) ในฐานะน้องใหม่ ก็ขอฝากเนื้อฝากตัวด้วยครับ
ปล.web service ก็ยังพัฒนาต่อครับ  :-*

หน้า: [1]