51
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.
52
แจ้งปัญหา / ขอความช่วยเหลือ / Re: หมายเลข AN รันไม่ตรง
« เมื่อ: กุมภาพันธ์ 21, 2007, 03:24:30 AM »
ปกติ เลข AN จะมีแบบที่มีเลขตึกกะไม่มีเลขตึก อีกส่วนที่คุมเลข An คือ ตาราง seria ใน record AN
53
แจ้งปัญหา / ขอความช่วยเหลือ / Re: หมายเลข AN รันไม่ตรง
« เมื่อ: กุมภาพันธ์ 21, 2007, 03:06:42 AM »
แก้แล้ว login เข้าไปใหม่ด้วยครับ
54
แจ้งข้อผิดพลาดการทำงานของ HOSxP V3 / Re: ขอความช่วยเหลือ "Error"
« เมื่อ: กุมภาพันธ์ 21, 2007, 02:59:31 AM »
แก้ใน field serial_number ครับ
55
แจ้งปัญหา / ขอความช่วยเหลือ / Re: หมายเลข AN รันไม่ตรง
« เมื่อ: กุมภาพันธ์ 21, 2007, 02:55:27 AM »
ตรวจสอบการตั้งค่าใน system setting ติ๊กถูกในข้อ ไม่นำเลขที่ตึกมาใช้
56
Development / Re: ห้องสมุด
« เมื่อ: กุมภาพันธ์ 20, 2007, 14:40:40 PM »
มี freeware หลายตัวที่น่าสนใจลองเข้าไปค้นใน thaiware.com ดูครับ
ตัวอย่าง ใช้ delphi 5 database เป็น access
http://www.thaiware.com/main/info.php?id=5432
แบบ web application
http://www.thaiware.com/main/info.php?id=8564
ตัวอย่าง ใช้ delphi 5 database เป็น access
http://www.thaiware.com/main/info.php?id=5432
แบบ web application
http://www.thaiware.com/main/info.php?id=8564
57
Development / Re: เรียนปรึกษา อ.ชัยพร อ.อ๊อด เรื่อง web service version ใหม่
« เมื่อ: กุมภาพันธ์ 20, 2007, 14:28:54 PM »
ROR น่าจะเป็น Ruby on Rails ใน http://www.rorweb.com มันเป็น Resources of a Resource
สวัสดีตอนดึกๆครับ
สวัสดีตอนดึกๆครับ
58
ยินดีต้อนรับ / Re: มีใครยังไม่นอนบ้าง ...
« เมื่อ: กุมภาพันธ์ 20, 2007, 14:17:59 PM »
สงสัยมาช้าไปหน่อย
59
Development / Re: เรียนปรึกษา อ.ชัยพร อ.อ๊อด เรื่อง web service version ใหม่
« เมื่อ: กุมภาพันธ์ 20, 2007, 09:55:54 AM »
อ้อ multi database type จะใช้ได้ใน Joomla 1.5 ครับ
The show must go on.
The show must go on.
60
Development / Re: เรียนปรึกษา อ.ชัยพร อ.อ๊อด เรื่อง web service version ใหม่
« เมื่อ: กุมภาพันธ์ 20, 2007, 09:40:49 AM »เว็บคุณหมออาจจะต้องใช้ภาษาอาหรับ ด้วยนะครับ เพื่อให้แสดงผลได้ คุณหมอต้องไปใช้ UTF-8 )คงไม่ต้องใช้มังครับ แค่ไทยกะอังกฤษ ก็พอแล้ว
แต่ทว่าตอนนี้ก็น่าจะเป็น TIS-620 ไปก่อนดีกว่ามั้ง ?
4. ถามคุณหมอ Daran ว่าการที่คุณหมอเลือก Joomla เพราะว่า ?
4.1 สวย
4.2 โปรแกรมได้มาตรฐาน
4.3 สะดวกในการเอาไปใช้งานในรูปแบบ Intranet ของ รพ. ด้วย (Webboard, Gallery, ระบบข่าว, Email ภายใน ?) หรืออาจพัฒนาให้เป็น Extranet ไปเลย ง่ายสะดวก
ถูกทุกข้อครับ จริงๆตัว CMS อื่นก็ได้ครับที่ "มีความเป็นกลาง พัฒนาง่าย สามารถแยกส่วนพัฒนาได้ เปิดกว้างให้สมาชิกช่วยกันแก้ไขได้ง่าย" และอยากได้ตัวที่คนใช้มากพอควร น่าจะช่วยกันพัฒนาได้มาก นอกจากนี้ยังใช้ database ได้หลายตัว
ปล. ยินดีมากที่จะได้รับความช่วยเหลือ ต่อไปคงเป็น Hosxp webservice แล้วครับ อยากเขียนโมดูลอะไร เขียนเผื่อไว้เลยครับ
61
Development / Re: เรียนปรึกษา อ.ชัยพร อ.อ๊อด เรื่อง web service version ใหม่
« เมื่อ: กุมภาพันธ์ 20, 2007, 07:59:18 AM »
ทดลองใช้ joomla 1.5 beta ทดสอบภาษาไทย บน mysql 5.0,4.1 collection เป็น tis-620 ใช้ภาษาได้ไม่มีปัญหา ไม่ทราบว่าเหมือนกันว่าทำไมถึงต้องย้ายไปใช้ utf-8 เป็นงง
ทำงานต่อดีกว่าครับ
ข้างบน ปกติผมก็ทำแยกครับ แต่หมายถึงว่า ถ้า joomla ต้องใช้ utf-8 และ hosxp ต้องใช้ tis-620 แล้วต้องเชื่อมตารางกัน ไม่แน่ใจว่าปกติทำได้รึเปล่า
ทำงานต่อดีกว่าครับ
ข้างบน ปกติผมก็ทำแยกครับ แต่หมายถึงว่า ถ้า joomla ต้องใช้ utf-8 และ hosxp ต้องใช้ tis-620 แล้วต้องเชื่อมตารางกัน ไม่แน่ใจว่าปกติทำได้รึเปล่า
62
Development / Re: เรียนปรึกษา อ.ชัยพร อ.อ๊อด เรื่อง web service version ใหม่
« เมื่อ: กุมภาพันธ์ 20, 2007, 06:43:18 AM »
ครับผม แต่กลัวมีปัญหาเรื่อง connect เวลา ดึงข้อมูลมาจาก table ใน joomla พร้อมกันกับ table ใน hosxp
เดี๋ยวลองแกะ แก้ให้ connect แบบ tis-620 ไปเลยดีกว่าครับ ชัวร์กว่า
เดี๋ยวลองแกะ แก้ให้ connect แบบ tis-620 ไปเลยดีกว่าครับ ชัวร์กว่า
63
Development / Re: 3.50.2.19
« เมื่อ: กุมภาพันธ์ 20, 2007, 06:37:06 AM »
ขอบคุณมากครับ แบบนี้ดี upgrade ช่วงที่กำลังใช้งา่นอยู่ก็ไม่น่ากระทบอะไร ใช่ไหมครับ
64
MySQL / Re: High performance with partition table
« เมื่อ: กุมภาพันธ์ 20, 2007, 05:20:19 AM »
Mysql 5.0 ใช้ได้ไหมครับ ช่วยทำให้การใช้งานเร็วขึ้นมากไหม และมีข้อจำกัดอะไรบ้าง
65
Development / Re: เรียนปรึกษา อ.ชัยพร อ.อ๊อด เรื่อง web service version ใหม่
« เมื่อ: กุมภาพันธ์ 20, 2007, 05:17:44 AM »
ผมหมายถึงว่า ต้องใช้ database เป็น utf-8 ขณะที่ hosxp ใช้ tis-620 ทำให้ใช้ database เดียวกันได้ การเชื่อมข้อมูลจึงมีปัญหา
แต่จะลองแกะ joomla 1.5 beta ดูครับ ถ้าได้ จะได้เริ่ม project ต่อ ไม่อย่างนั้น ก็ต้องใช้ joomla version เก่า หรือเปลี่ยนไปใช้ cms
แต่จะลองแกะ joomla 1.5 beta ดูครับ ถ้าได้ จะได้เริ่ม project ต่อ ไม่อย่างนั้น ก็ต้องใช้ joomla version เก่า หรือเปลี่ยนไปใช้ cms
66
Development / เรียนปรึกษา อ.ชัยพร อ.อ๊อด เรื่อง web service version ใหม่
« เมื่อ: กุมภาพันธ์ 19, 2007, 14:53:00 PM »
วันก่อนหลังได้ปรึกษากะ อ.อ๊อด ก็ได้ข้อสรุปว่า 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 แล้ว
เลยจะเรียนปรึกษา อ.ชัยพร อ.อ๊อด ว่าเอาไงดีครับ
ตกลงกันกว่าจะพัฒนาบน 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 แล้ว
เลยจะเรียนปรึกษา อ.ชัยพร อ.อ๊อด ว่าเอาไงดีครับ
67
การเขียน SQL Script / Re: การเขียน pascal script แบบประยุกต์(อย่างง่าย)
« เมื่อ: กุมภาพันธ์ 19, 2007, 14:17:08 PM »
ขอบคุณมากครับ อ. ช่วงนี้เป็นน้องไอที ทำรายงานแบบนี้เยอะขี้น โดย copy code ไปเลย ตรงไหนไม่ใช่ก็ลบหรือ mark ไว้จนกลายเป็นต้องพิมพ์เอกสารเกือบทุกชนิด ไม่เว้นแม้แต่ ใบรับรองการเกิด ที่อุตส่าห์มีมาให้แล้วในสมุด ANC เห็นสนุก(เมามันกันอยู่) แล้วปล่อยตามสบาย
68
Development / Re: มีการเปลี่ยนแปลงระบบรายงาน 506
« เมื่อ: กุมภาพันธ์ 17, 2007, 22:56:27 PM »
น่าจะมีโปรแกรม สำหรับ PCU แบบ เบ็ดเสร็จ อยู่หมัดในโปรแกรมเดียวไหมครับ
69
Development / Re: มีการเปลี่ยนแปลงระบบรายงาน 506
« เมื่อ: กุมภาพันธ์ 17, 2007, 19:16:10 PM »
ได้ link แล้วครับน้องเนตรฝากมา
โปรแกรม http://www.hospital-os.com/~aek/R506.zip
คู่มือ http://www.korathealth.com/modules/mydownloads/viewcat.php?cid=7
ท่าทางสอ.แย่แน่ เพราะ hcis ใช้ office97 มา R506 ใช้ office2003
อ.อ๊อดทำไงดีครับ
โปรแกรม http://www.hospital-os.com/~aek/R506.zip
คู่มือ http://www.korathealth.com/modules/mydownloads/viewcat.php?cid=7
ท่าทางสอ.แย่แน่ เพราะ hcis ใช้ office97 มา R506 ใช้ office2003
อ.อ๊อดทำไงดีครับ
70
Development / Re: มีการเปลี่ยนแปลงระบบรายงาน 506
« เมื่อ: กุมภาพันธ์ 17, 2007, 09:52:11 AM »
DL ได้จากไหนครับ แล้วสามารถนำ ฐานข้อมูลเดิม เข้าไปได้รึเปล่าครับ
71
แจ้งปัญหา / ขอความช่วยเหลือ / Re: an ซ้ำครับ
« เมื่อ: กุมภาพันธ์ 17, 2007, 04:36:09 AM »
ปกติ ipt_queue จะ set ให้ an เป็น primary key อยู่แล้ว ซึ่งไม่น่าจะซ้ำ
ลองคำสั่งนี้
ALTER TABLE ipt_queue ADD PRIMARY KEY (an);
ลองคำสั่งนี้
ALTER TABLE ipt_queue ADD PRIMARY KEY (an);
72
แจ้งปัญหา / ขอความช่วยเหลือ / Re: สงสัยการเช็คสิทธิ์
« เมื่อ: กุมภาพันธ์ 17, 2007, 04:21:55 AM »
ไปที่ tools>system setting>nhso ติ๊กถูกที่ save offline content save แล้ว login ใหม่
ลองกด nhso ดู จะโหลดสิทธิขึ้นมาในรูป text และ ถ้าทุกอย่างถูกต้อง ปุ่ม OFL จะแสดงให้กดได้
จะแสดงเป็นเวบเพจ อย่างรวดเร็ว
ลองกด nhso ดู จะโหลดสิทธิขึ้นมาในรูป text และ ถ้าทุกอย่างถูกต้อง ปุ่ม OFL จะแสดงให้กดได้
จะแสดงเป็นเวบเพจ อย่างรวดเร็ว
73
แจ้งปัญหา / ขอความช่วยเหลือ / Re: สงสัยการเช็คสิทธิ์
« เมื่อ: กุมภาพันธ์ 17, 2007, 03:37:50 AM »
ข้อมูลเดียวกันครับ อ.คงต้องการให้แสดงผลเร็วขึ้น
ถ้าต้องการดูแบบหน้าเวบ หลังจากกด nhso แล้วกด OFL ครับ
ถ้าต้องการดูแบบหน้าเวบ หลังจากกด nhso แล้วกด OFL ครับ
74
แจ้งปัญหา / ขอความช่วยเหลือ / Re: an ซ้ำครับ
« เมื่อ: กุมภาพันธ์ 17, 2007, 03:28:25 AM »
ที่โชว์เป็นผู้ป่วยรอ admit AN ที่แสดงเป็นแค่ reqeust AN ไม่ทราบว่า ทำ admit ราย An ซ้ำได้ไหม แล้ว AN เปลี่ยนไหม
75
Development / Re: What's new in 3.50.2.15
« เมื่อ: กุมภาพันธ์ 16, 2007, 12:01:11 PM »
ขอบคุณมากกว่าครับ
76
Delphi / Pascal / Re: Database development with Turbo Delphi Part I
« เมื่อ: กุมภาพันธ์ 15, 2007, 23:25:53 PM »
น่าสนใจมากครับ ต้องเรียนบ้างแล้ว
77
การเขียน SQL Script / Re: การเขียน pascal script แบบประยุกต์(อย่างง่าย)
« เมื่อ: กุมภาพันธ์ 15, 2007, 23:14:14 PM »
ในส่วนการแสดงรายการวินิจฉัย และรายการยา ต้องใช้ blobtext ช่วย คือไปวนรอบใน script และอัดลง blobtext อันนี้ยุ่งยากเล็กน้อย
เนื่องจากปกติ ที่บ้านไม่ได้พูด ภาษา Pascal หรือ Delphi หากผิดพลาดประการใดก็ขออภัยไว้น่ะที่นี้ด้วย และรบกวน อ.ชัยพร และ อ.อ๊อดช่วยแก้ไขด้วย
เป็นไอเดีย ง่ายๆ ที่ทดลองใช้ และสอนน้องไอทีแล้ว พบว่าได้ผลดีพอควร
เนื่องจากปกติ ที่บ้านไม่ได้พูด ภาษา Pascal หรือ Delphi หากผิดพลาดประการใดก็ขออภัยไว้น่ะที่นี้ด้วย และรบกวน อ.ชัยพร และ อ.อ๊อดช่วยแก้ไขด้วย
เป็นไอเดีย ง่ายๆ ที่ทดลองใช้ และสอนน้องไอทีแล้ว พบว่าได้ผลดีพอควร
78
การเขียน SQL Script / Re: การเขียน pascal script แบบประยุกต์(อย่างง่าย)
« เมื่อ: กุมภาพันธ์ 15, 2007, 23:08:38 PM »
อีักอันเป็นตัวอย่างที่ยากขึ้นหน่อย เป็น OPD Card ที่ให้ผู้ัใช้ คีย์ hn แบบไม่มีศูนย์(code ตรวจสอบเองว่า เป็น hn แบบกี่หลัก) แล้ว ผู้ใช้เลือกวันที่ที่ผู้ป่วยมา (เนื่องจาก code ยาว ขอ post แบบไฟล์ .cds ล่ะกัน)
79
การเขียน SQL Script / Re: การเขียน pascal script แบบประยุกต์(อย่างง่าย)
« เมื่อ: กุมภาพันธ์ 15, 2007, 22:57:57 PM »
ตัวอย่าง sql script
select p.*
from patient p
left outer join tempreport t on t.name=p.hn
where t.id='CUSTOM-OPD-Sample'
ให้บันทึก ค่า hn ลงใน tempreport.name โดยใช้ pascal script และดึงมาเชื่อมกับ ตาราง patient ด้วยคำสั่่ง left outer join
ตัวอย่าง pascal script
unit MyOPDReport;
//function user for convert hn to 9 digit #1
function addzero(s:string):string;
begin
while length(s)<9 do
begin
s:='0'+s;
end;
result:=s;
end;
//set varieble # 2
procedure main;
var
s:string;
fhn:string;
begin
//recieve hn # 3
if preset_value(1)='' then
begin
if not inputquery('Please enter Hospital Number','HN',fhn) then exit;
end else
begin
fhn:=preset_value(1);
end;
begin
fhn:=addzero(fhn);
showmessage('hn = '+fhn);
//check hn in patient #4
if getsqldata('select count(*) as cc from patient where hn="'+fhn+'"')=0 then
raise exception.create('Invalid HN');
end;
//delete old data from tempreport # 5
zquery.sql.text:='delete from tempreport where id = "CUSTOM-OPD-Sample" ';
zquery.execsql;
fcds.close;
fcds.datarequest('select * from tempreport where id = "CUSTOM-OPD-Sample" ');
fcds.open;
//start insert data into tempreport # 6
fcds.insert;
fcds['id']:='CUSTOM-OPD-Sample';
fcds['reportname']:='CUSTOM-OPD-Sample';
fcds['name']:=fhn;
fcds.post;
//update tempreport # 7
fcds.datarequest('select * from tempreport where id = "CUSTOM-OPD-Sample" ');
applyupdate_fcds();
end;
end.
select p.*
from patient p
left outer join tempreport t on t.name=p.hn
where t.id='CUSTOM-OPD-Sample'
ให้บันทึก ค่า hn ลงใน tempreport.name โดยใช้ pascal script และดึงมาเชื่อมกับ ตาราง patient ด้วยคำสั่่ง left outer join
ตัวอย่าง pascal script
unit MyOPDReport;
//function user for convert hn to 9 digit #1
function addzero(s:string):string;
begin
while length(s)<9 do
begin
s:='0'+s;
end;
result:=s;
end;
//set varieble # 2
procedure main;
var
s:string;
fhn:string;
begin
//recieve hn # 3
if preset_value(1)='' then
begin
if not inputquery('Please enter Hospital Number','HN',fhn) then exit;
end else
begin
fhn:=preset_value(1);
end;
begin
fhn:=addzero(fhn);
showmessage('hn = '+fhn);
//check hn in patient #4
if getsqldata('select count(*) as cc from patient where hn="'+fhn+'"')=0 then
raise exception.create('Invalid HN');
end;
//delete old data from tempreport # 5
zquery.sql.text:='delete from tempreport where id = "CUSTOM-OPD-Sample" ';
zquery.execsql;
fcds.close;
fcds.datarequest('select * from tempreport where id = "CUSTOM-OPD-Sample" ');
fcds.open;
//start insert data into tempreport # 6
fcds.insert;
fcds['id']:='CUSTOM-OPD-Sample';
fcds['reportname']:='CUSTOM-OPD-Sample';
fcds['name']:=fhn;
fcds.post;
//update tempreport # 7
fcds.datarequest('select * from tempreport where id = "CUSTOM-OPD-Sample" ');
applyupdate_fcds();
end;
end.
80
การเขียน SQL Script / การเขียน pascal script แบบประยุกต์(อย่างง่าย)
« เมื่อ: กุมภาพันธ์ 15, 2007, 22:51:40 PM »
เนื่องจากติดภารกิจด้านอื่น จึงจำใจต้องยกหน้าที่การดูแลระบบให้น้องไอทีดูแลเต็มตัว พบว่า ปัญหาสำคัญที่ผู้ดูระบบ(มือใหม่) พบก็คือการเขียนรายงาน โดยเฉพาะแบบที่ผู้ใช้ต้องใส่ค่า เช่น 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 ที่ต้องการ
ขอสรุปหลักการการเขียน 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 ที่ต้องการ
81
แจ้งปัญหา / ขอความช่วยเหลือ / Re: เปิดโปรแกรม hosxp สองครั้งในเครื่องเดี่ยวกันครับ
« เมื่อ: มกราคม 14, 2007, 03:24:41 AM »ทำได้ครับแต่ไม่ทราบว่าเป็นวิธีทีถูกต้องหรื่อเปล่านะครับ คื่อผมเลือกลง v. full ในไดร์ อืน เช่น ไดร์ H แล้ว ลง clien ในไดร์ C ไดร์ H เป็นตัว Replicate ก้อสมารถเปิดได้ทั้ง 2 ตัว แต่มีข้อเสียคือ ใน ไดร์ อื่น ไม่สมารถ upgrade ได้ครับ ไครมีวิธี up v. ในไดร์อื่น ช่วยด้วยครับ คือ ผมซื้อ ฮาดดิสมาตัวหนึ่งต่อ กับสาย usb สามารถพกพาได้สะดวก เวลามีปัญหาทำได้ครับ โดยการการ copy folder \Program Files\Hosxp ไปยัง Drive ที่ต้องการ เช่น F:\Program Files\Hosxp
เวลาใช้ก็เรียก Hosmy.exe โดยตรง
update โดย Copy ไฟล์จากเครื่องที่ update แล้ว มาทับ
82
แจ้งปัญหา / ขอความช่วยเหลือ / Re: แจ้งข่าว เรื่อง อ.อ๊อดป่วย
« เมื่อ: ธันวาคม 29, 2006, 21:36:07 PM »
หายไวๆครับ
กลับมาเป็นกำลังสำคัญของชาว hosxp
กลับมาเป็นกำลังสำคัญของชาว hosxp
83
Development / อยากทราบเกี่ยวกับ โปรแกรม hcis real time จาก TMI
« เมื่อ: ธันวาคม 18, 2006, 15:37:09 PM »
ในงาน TMI section open source มี โปรแกรมที่ convert HCIS และส่งข้อมูล realtime เป็น xml ไม่ทราบว่า ใครมีอยู่ในมือบ้างครับ รบกวน post หน่อย หรือส่งทาง อีเมล์ draroka@hotmail.com ขอบคุณครับ
84
แจ้งปัญหา / ขอความช่วยเหลือ / Re: ลง Hosxp เป็น Master ใน windows2003 run mysql ไม่ผ่านครับ
« เมื่อ: ธันวาคม 13, 2006, 23:04:34 PM »
ีืลอง uninstall hosxp ลบ fold ใน c:\program files\hosxp\ ทั้งหมด ลบ c:\windows\my.ini
ลงใหม่ครับ
ถ้าเป็นไปได้ ลง mysql ต่างหากก็ดีครับ จะได้ตรวจสอบง่า่ย
ลงใหม่ครับ
ถ้าเป็นไปได้ ลง mysql ต่างหากก็ดีครับ จะได้ตรวจสอบง่า่ย
85
แจ้งปัญหา / ขอความช่วยเหลือ / Re: ลง Hosxp เป็น Master ใน windows2003 run mysql ไม่ผ่านครับ
« เมื่อ: ธันวาคม 13, 2006, 22:52:05 PM »
ีืลอง uninstall hosxp ลบ fold ใน c:\program files\hosxp\ ทั้งหมด ลบ c:\windows\my.ini
ลงใหม่ครับ
ถ้าเป็นไปได้ ลง mysql ต่างหากก็ดีครับ จะได้ตรวจสอบง่า่ย
ลงใหม่ครับ
ถ้าเป็นไปได้ ลง mysql ต่างหากก็ดีครับ จะได้ตรวจสอบง่า่ย
86
Development / Re: ส่วนของ ความลับคนไข้
« เมื่อ: พฤศจิกายน 17, 2006, 21:11:53 PM »
ต้องไปกำหนดกลุ่มให้กับผู้มีสิทธิ์ใช้งานระบบก่อน ครับ tools>ผู้มีสิทธิ์ใช้งานระบบ>กำหนดสิทธิ์ให้แต่ละกลุ่ม เช่น กลุ่มแพทย์ พยาบาล เภสัช (ถ้าเป็น lab ก็ ติ๊กที่ื lab staff ด้วย)
>เลือกให้บุคคลการแต่ละคนว่าอยู่กลุ่มไหน จึงค่อยไปตั้งค่าที่ lab แต่ละตัวที่ต้องการ
โทษทีครับที่ไม่มีรูปประกอบ ช่วงนี้ เน็ตที่ รพ.มีปัญหา upload ไฟล์ไม่ได้
>เลือกให้บุคคลการแต่ละคนว่าอยู่กลุ่มไหน จึงค่อยไปตั้งค่าที่ lab แต่ละตัวที่ต้องการ
โทษทีครับที่ไม่มีรูปประกอบ ช่วงนี้ เน็ตที่ รพ.มีปัญหา upload ไฟล์ไม่ได้
87
Development / Re: ส่วนของ ความลับคนไข้
« เมื่อ: พฤศจิกายน 17, 2006, 04:52:25 AM »
ได้ครับ
ระบบผู้ป่วยนอก>ห้อง lab > lab items editor>เลือกรายการ lab>double click หรือแก้ไข>กำหนดสิทธิ กลุ่มที่ดู lab ได้
ระบบผู้ป่วยนอก>ห้อง lab > lab items editor>เลือกรายการ lab>double click หรือแก้ไข>กำหนดสิทธิ กลุ่มที่ดู lab ได้
88
แจ้งปัญหา / ขอความช่วยเหลือ / Re: Risk Management
« เมื่อ: พฤศจิกายน 17, 2006, 03:26:33 AM »
ลองเปิด session ใน php.ini ให้เท่ากับ 1
89
แจ้งปัญหา / ขอความช่วยเหลือ / Re: Risk Management
« เมื่อ: พฤศจิกายน 17, 2006, 02:17:45 AM »
ลองดูใน risk management ใน web service ครับ
สามารถกำหนดให้เข้าถึง risk เฉพาะฝ่าย เช่น ให้หัวหน้าหรือผู้ที่ได้รับมอบหมาย หรือทั้งหมด
แต่ไม่ได้อนุญาตให้ผู้ใช้เข้าถึงการรายงานอุบัติการได้(คือไม่มีใครเห็นหรือสามารถแก้ไขรายงานอุบัติการณ์ ยกที่มอบสิทธิ์) ป้องกันการเข้าไปดูและนำมาวิพากษ์วิจารณ์กัน
สามารถกำหนดให้เข้าถึง risk เฉพาะฝ่าย เช่น ให้หัวหน้าหรือผู้ที่ได้รับมอบหมาย หรือทั้งหมด
แต่ไม่ได้อนุญาตให้ผู้ใช้เข้าถึงการรายงานอุบัติการได้(คือไม่มีใครเห็นหรือสามารถแก้ไขรายงานอุบัติการณ์ ยกที่มอบสิทธิ์) ป้องกันการเข้าไปดูและนำมาวิพากษ์วิจารณ์กัน
90
แจ้งข้อผิดพลาดการทำงานของ HOSxP V3 / Re: 1 ธค 49
« เมื่อ: พฤศจิกายน 16, 2006, 23:33:24 PM »
วันก่อนไๆด้คุยกับท่านผู้ตรวจฯ บอกว่าเรื่องนี้ยังไม่จบ กระทรวงยังดันกันอยู่กับกระทรวงการคลัง เพราะบางรายการลดไปตั้ง 40%
91
แจ้งปัญหา / ขอความช่วยเหลือ / Re: แก้ไขและเพิ่มเติมข้อมูล ลงในตัวเลือก หน้าจอนัดคนไข้ ได้อย่างไร
« เมื่อ: พฤศจิกายน 16, 2006, 19:05:50 PM »
สามารถเพิ่มได้ที่ตาราง oapp_contact
insert into oapp_contact(name) value('ห้องบัตร');
ถ้าใส่ข้อมูลในตารางนี้จะทำให้ค่า default 3 ห้อง หายไป ต้องใส่ใหม่ด้วยครับ
แต่ถ้าไม่ต้องการแก้ไขตารางก็สามารถเพิ่มในช่องว่างได้โดยตรง
insert into oapp_contact(name) value('ห้องบัตร');
ถ้าใส่ข้อมูลในตารางนี้จะทำให้ค่า default 3 ห้อง หายไป ต้องใส่ใหม่ด้วยครับ
แต่ถ้าไม่ต้องการแก้ไขตารางก็สามารถเพิ่มในช่องว่างได้โดยตรง
92
แจ้งปัญหา / ขอความช่วยเหลือ / Re: อยากเพิ่มรายชื่อแพทย์ผู้สั่งใน FORM-Doctor-Dent-OPDCARD
« เมื่อ: พฤศจิกายน 15, 2006, 23:17:34 PM »
โทษทีครับ ลืม อธิบาย
select d1.*,v1.*,o1.*,s.*,t.blobtext,t.blobtext2,pe.image1, concat("รับคำสั่ง ",d2.name) as cmddoctor
from doctor_order_print d1
left outer join vn_stat v1 on v1.vn=d1.vn
left outer join ovst o1 on o1.vn=d1.vn
left outer join opdscreen s on s.vn = d1.vn
left outer join pe_image pe on pe.vn=d1.vn
left outer join tempreport t on t.name=d1.vn and t.reportname="DOCTOR-FORM"
left outer join doctor d2 on d2.code = o1.command_doctor
where d1.vn="491111121355" and d1.print_server="NIPON"
concat("รับคำสั่ง ",d2.name) คำสั่ง concat แค่เชื่อม "รับคำสั่ง" กับชื่อแพทย์ครับ
select d1.*,v1.*,o1.*,s.*,t.blobtext,t.blobtext2,pe.image1, concat("รับคำสั่ง ",d2.name) as cmddoctor
from doctor_order_print d1
left outer join vn_stat v1 on v1.vn=d1.vn
left outer join ovst o1 on o1.vn=d1.vn
left outer join opdscreen s on s.vn = d1.vn
left outer join pe_image pe on pe.vn=d1.vn
left outer join tempreport t on t.name=d1.vn and t.reportname="DOCTOR-FORM"
left outer join doctor d2 on d2.code = o1.command_doctor
where d1.vn="491111121355" and d1.print_server="NIPON"
concat("รับคำสั่ง ",d2.name) คำสั่ง concat แค่เชื่อม "รับคำสั่ง" กับชื่อแพทย์ครับ
93
ยินดีต้อนรับ / Re: โอนข้อมูลจาก HCIS เข้า HOSXP อย่างไร
« เมื่อ: พฤศจิกายน 15, 2006, 07:48:04 AM »
ตกลง convert ข้อมูลอะไรบ้างครับ อ.อ๊อด
94
การเขียน SQL Script / Re: ขอคำสั่งSQLในการดึงข้อมูล เลขบัตรประชาชนหน่อยครับ
« เมื่อ: พฤศจิกายน 14, 2006, 18:44:11 PM »
มีโอกาสผิดพลาดในการดึงข้อมูลสูงครับ โดยเฉพาะกรณีชื่อ นามสกุล ซ้ำกัน
ชื่อนามสกุล เป็น index ที่ไม่ดีนัก
ลองตรวจสอบ ด้วย code นี้ ถ้าไม่มีชื่อซ้ำเลยจะช่วยดึงให้ครับ
SELECT fname,count(fname) as cf,lname,count(lname) as cl FROM patient
GROUP BY fname,lname
HAVING cl>'1' AND cf>'1'
ชื่อนามสกุล เป็น index ที่ไม่ดีนัก
ลองตรวจสอบ ด้วย code นี้ ถ้าไม่มีชื่อซ้ำเลยจะช่วยดึงให้ครับ
SELECT fname,count(fname) as cf,lname,count(lname) as cl FROM patient
GROUP BY fname,lname
HAVING cl>'1' AND cf>'1'
95
ยินดีต้อนรับ / Re: โอนข้อมูลจาก HCIS เข้า HOSXP อย่างไร
« เมื่อ: พฤศจิกายน 14, 2006, 18:27:19 PM »
import เข้าได้ 100% ่ไหมครับครับ อ.อ๊อด แล้ว export 18 แฟ้มได้ครบไหมครับ
อยากให้ pcu ใช้บ้างเหมือนกัน
เรื่อง datacenter ถ้าเริ่มในอำเภอก่อนน่าจะดีและง่ายกว่า เพราะคุยระหว่าง รพ.ไม่ค่อยจะฟัง มีเงื่อนไขมาก
ถ้าทำอำเภอสำเร็จ น่าจะเป็นต้นแบบสำหรับ จ.ได้
เป็นกำลังใจให้ อ.ครับ
อยากให้ pcu ใช้บ้างเหมือนกัน
เรื่อง datacenter ถ้าเริ่มในอำเภอก่อนน่าจะดีและง่ายกว่า เพราะคุยระหว่าง รพ.ไม่ค่อยจะฟัง มีเงื่อนไขมาก
ถ้าทำอำเภอสำเร็จ น่าจะเป็นต้นแบบสำหรับ จ.ได้
เป็นกำลังใจให้ อ.ครับ
96
แจ้งปัญหา / ขอความช่วยเหลือ / Re: ออกแบบ OPD card
« เมื่อ: พฤศจิกายน 14, 2006, 11:23:50 AM »
ใช้รูปแบบนี้ได้ครับ ในการแสดงเครื่องหมาย x
เช่น found_allergy ใน opdscreen
SELECT IF(found_allergy='Y','X','') AS drugallergy FROM opdscreen WHERE......
โดยจะแสดง X ถ้า found_allergy='Y' และจะแสดงว่าง ถ้าไม่เท่ากับ 'Y'
เช่น found_allergy ใน opdscreen
SELECT IF(found_allergy='Y','X','') AS drugallergy FROM opdscreen WHERE......
โดยจะแสดง X ถ้า found_allergy='Y' และจะแสดงว่าง ถ้าไม่เท่ากับ 'Y'
97
แจ้งปัญหา / ขอความช่วยเหลือ / Re: อยากเพิ่มรายชื่อแพทย์ผู้สั่งใน FORM-Doctor-Dent-OPDCARD
« เมื่อ: พฤศจิกายน 14, 2006, 09:26:16 AM »
select d1.*,v1.*,o1.*,s.*,t.blobtext,t.blobtext2,pe.image1, concat("รับคำสั่ง ",d2.name) as cmddoctor
from doctor_order_print d1
left outer join vn_stat v1 on v1.vn=d1.vn
left outer join ovst o1 on o1.vn=d1.vn
left outer join opdscreen s on s.vn = d1.vn
left outer join pe_image pe on pe.vn=d1.vn
left outer join tempreport t on t.name=d1.vn and t.reportname="DOCTOR-FORM"
left outer join doctor d2 on d2.code = o1.command_doctor
where d1.vn="491111121355" and d1.print_server="NIPON"
from doctor_order_print d1
left outer join vn_stat v1 on v1.vn=d1.vn
left outer join ovst o1 on o1.vn=d1.vn
left outer join opdscreen s on s.vn = d1.vn
left outer join pe_image pe on pe.vn=d1.vn
left outer join tempreport t on t.name=d1.vn and t.reportname="DOCTOR-FORM"
left outer join doctor d2 on d2.code = o1.command_doctor
where d1.vn="491111121355" and d1.print_server="NIPON"
98
แจ้งปัญหา / ขอความช่วยเหลือ / Re: REPORT-LABOR-STANDARD
« เมื่อ: พฤศจิกายน 14, 2006, 08:47:04 AM »
ไฟล์รายงาน export เป็น .cds ไฟล์ครับ ตูแว
ส่วน .rtm เป็นแบบ form รายงานที่ไม่มี qeury
ส่วน .rtm เป็นแบบ form รายงานที่ไม่มี qeury
99
แจ้งปัญหา / ขอความช่วยเหลือ / Re: ขั้นตอนการทำ Auto Upgrade
« เมื่อ: พฤศจิกายน 14, 2006, 08:31:44 AM »
ขอขยายความของ thungfon
1.ต้องมี http server(web server) จะเป็น linux หรือ windows(apache,IIS) ก็ได้ run อยู่
2.ต้องนำที่ต้องกาีร upgrade เช่น HOSxP_Upgrade_2.49.11.13.exe เป็น HOSMy.exe (ตัวอักษรเล็กใหญ่ตามนี้ เท่านั้นครับ)
3.นำไปไว้ webroot เช่น Windows : IIS --> C:\Inetpub\wwwroot , Apache-->\Apache Group\Apache2\htdocs ถ้าติดตั้ง Appserv -->\AppServ\www ถ้า linux var/www/html
4.ในตาราง patch : field filename=HOSMy.exe,
version=ชื่อ version ที่ต้องการ เช่น 2.49.11.13 ที่สำคัญ ต้องมากกว่า(ใหม่กว่า version ที่ client มี ถ้าจะ downgrade ก็ต้องตั้งหลอก)
url=url ของ file เช่น http://192.168.3.222:82/upgrade/HOSMy.exe (Run IIS port 82)
ีUpdate เพื่อ บันทึกค่า
การ auto download ปกติจะ download file 2 ครั้ง แต่ถ้าใช้ wireless อาจพบปัญหามีการ download ซ้ำๆ หลายครั้งกว่าจะติดตั้งได้ครับ
ปล.ของมายอ ทำให้แล้วนิครับ
1.ต้องมี http server(web server) จะเป็น linux หรือ windows(apache,IIS) ก็ได้ run อยู่
2.ต้องนำที่ต้องกาีร upgrade เช่น HOSxP_Upgrade_2.49.11.13.exe เป็น HOSMy.exe (ตัวอักษรเล็กใหญ่ตามนี้ เท่านั้นครับ)
3.นำไปไว้ webroot เช่น Windows : IIS --> C:\Inetpub\wwwroot , Apache-->\Apache Group\Apache2\htdocs ถ้าติดตั้ง Appserv -->\AppServ\www ถ้า linux var/www/html
4.ในตาราง patch : field filename=HOSMy.exe,
version=ชื่อ version ที่ต้องการ เช่น 2.49.11.13 ที่สำคัญ ต้องมากกว่า(ใหม่กว่า version ที่ client มี ถ้าจะ downgrade ก็ต้องตั้งหลอก)
url=url ของ file เช่น http://192.168.3.222:82/upgrade/HOSMy.exe (Run IIS port 82)
ีUpdate เพื่อ บันทึกค่า
การ auto download ปกติจะ download file 2 ครั้ง แต่ถ้าใช้ wireless อาจพบปัญหามีการ download ซ้ำๆ หลายครั้งกว่าจะติดตั้งได้ครับ
ปล.ของมายอ ทำให้แล้วนิครับ
100
แจ้งปัญหา / ขอความช่วยเหลือ / Re: การแก้ไขรายการหัตถการที่ER
« เมื่อ: พฤศจิกายน 07, 2006, 18:40:01 PM »
ไม่เห็นไฟล์แนบครับ