BMS-HOSxP Community
HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: navyNP ที่ มิถุนายน 11, 2010, 10:25:09 AM
-
เนื่องจากที่ไปอบรม report designer ขั้นพื้นฐาน(รุ่นพิเศษ) มา ก็เลยมาลองทำ UE ใบรายงานผลการตรวจสุขภาพประจำปีมาให้ อ.พล หรือ อ.ท่านอื่นๆ พิจารณาและกรุณาให้คำแนะนำด้วยนะครับ ;D(หน้าตาใบรายงานตามรูปที่แนบ)
-
โค้ทตั้งต้นของฟอร์ม ตามนี้ครับ
select d.* , u.*, i.universal_item_name,o.bw,o.height,o.bmi,o.rr,o.pulse,o.waist,o.vstdate,
o.bps,o.bpd,(20*(o.height/100)*(o.height/100)) as bw1,(24.9*(o.height/100)*(o.height/100)) as bw2
from universal_head d, universal_detail u ,universal_item i,opdscreen o
where d.universal_head_id=u.universal_head_id and o.vn=d.vn
and u.universal_item_id =i.universal_item_id and u.universal_head_id="25"
นอกนั้นใช้ variable ดึงมาทั้งหมด
-
ก่อนอื่นขอแจ้งข้อเสนอแนะในการใช้งานในส่วน UE ก่อนนะครับ คือในส่วนของช่องแสดงผลการบันทึก(ที่ดึงข้อมูลมาจาก universal_detail.universal_item_value_text) ถ้าหากข้อที่บันทึกจาก groubcheck ผลที่แสดงมันเป็นค่าตัวแปรครับ ในการใช้งานจริง ผู้ที่ดูจากหน้าจอ UE อาจจะไม่รู้ว่าผลนั้นคืออะไร เช่นเราเลือกไว้ว่าเป็น "ปกติ" แต่แสดงผลเป็น ";0" อย่างนี้เป็นต้น ข้อเสนอแนะ น่าจะแสดงผลเป็น "ปกติ" เลย และสามารถดึงเอาไปใส่ใน report ได้เลยไม่ต้องเขียนคำสั่งไปเชื่อมตารางอื่นอีก
-
ข้อเสนอแนะที่ 2 ในการสั่งพิมพ์ฟอร์มหลังการบันทึกข้อมูลใน UE จะมี checkbox ให้เลือกว่าให้พิมพ์หลังการบันทึก เมื่อเราเลือกไว้จะไม่จำค่าครับ พอเราเปิดข้อมูลผู้ป่วยคนอื่นก็ต้องมาเลือกทุกครั้งครับ ทำให้ไม่สะดวกในการใช้งานครับ
-
เยี่ยมมาก รอโหลดมาทดลองใช้ครับ :D
-
ขอคำชี้แนะ ในส่วนของการจัดกลุ่มความเสี่ยงตามแนวทาง Metabolic syndrome โดยกำหนดตัวแปรจาก bps,bpd,FBS,Chol,TG,waist(รอบเอว) และ BMI โดยแยกเป็น
กลุ่มที่ 1 = bps<140 หรือ bpd<90 หรือ FBS<100 หรือ Chol<200 หรือ TG<150 หรือ waist ชาย<90หญิง<80 หรือ BMI <25
กลุ่มที่ 2 = bps 140-159 หรือ bpd 90-99 หรือ FBS 100-125 หรือ Chol 200-239 หรือ TG 150-399 หรือ waist ชาย >=90หญิง>=80 หรือ BMI 25-29.9
กลุ่มที่ 3 = bps >=160 หรือ bpd >=100 หรือ FBS >=126 หรือ Chol >=240 หรือ TG >=400 หรือ BMI >=26
คือต้องการให้เมื่อกรอกข้อมูล bps,bpd,FBS,Chol,TG,waist(รอบเอว) และ BMI ครบแล้วก็จะแปลผลเลือกกลุ่มให้อัตโนมัติ แล้วก็แปลผลสรุปให้เลยว่า "ปกติ" หรือ "ผิดปกติ" ไม่ทราบว่ามีแนวทางทำได้หรือไม่แล้วทำอย่างไรครับ
-
ขอคำชี้แนะ กรณีที่ต้องการนำข้อมูลจากตารางอื่นขึ้นมาแสดงบน UE เลย(ไม่ต้องพิมพ์ลงในฟอร์มจะดึงข้อมูลออกมาแสดงบนฟอร์ม UE เลยอัตโนมัติ)และเก็บข้อมูลนั้นจะถุกบันทึกเก็บไว้ในตารางของ universal อีกทีเพื่อสะดวกในการทำรายงาน เช่นเราสร้างช่องสำหรับแสดงผล lab โดยดึงข้อมูลผล lab(จาก lab_order_result) มาแสดงผลบน UE form แล้วพอเราบันทึกข้อมูลส่วนอื่นๆ ครบแล้วบันทึก ก็จะนำข้อมูลส่วนนี้บันทึกลงในตาราง universal_item_value_text ด้วย ไม่ทราบสามารถทำได้หรือไม่อย่างไรครับ ;D
-
ขอคำชี้แนะ กรณีที่ต้องการนำข้อมูลจากตารางอื่นขึ้นมาแสดงบน UE เลย(ไม่ต้องพิมพ์ลงในฟอร์มจะดึงข้อมูลออกมาแสดงบนฟอร์ม UE เลยอัตโนมัติ)และเก็บข้อมูลนั้นจะถุกบันทึกเก็บไว้ในตารางของ universal อีกทีเพื่อสะดวกในการทำรายงาน เช่นเราสร้างช่องสำหรับแสดงผล lab โดยดึงข้อมูลผล lab(จาก lab_order_result) มาแสดงผลบน UE form แล้วพอเราบันทึกข้อมูลส่วนอื่นๆ ครบแล้วบันทึก ก็จะนำข้อมูลส่วนนี้บันทึกลงในตาราง universal_item_value_text ด้วย ไม่ทราบสามารถทำได้หรือไม่อย่างไรครับ ;D
ข้อนี้เห็นด้วยครับ อยากได้มาก เพราะสามารถลดการบันทึกข้อมูลลงได้เยอะเลยครับ ::) ::)
-
ครับ! หากจะถามว่าแล้วทำไมจะต้องเก็บข้อมูลไว้ทั้งสองตาราง จะซ้ำซ้อนไปหรือเปล่า ผมมีเหตุผลนะครับ ตัวอย่างเช่น ในฟอร์ม report ในส่วนของการรายงานผลการอ่าน film x-ray ผมดึงมาจากตารางราง x-ray เลย และไม่ได้แสดงไว้บนฟอร์ม UE ก็เลยไม่รู้ว่าผู้ป่วยรายนี้มีผลการอ่านหรือยัง แต่ถ้าจะทำไว้ให้กรอกผลการอ่านบนฟอร์ม UE ก็เสียดายผลที่อ่านไว้ในระบบ X-ray เพราะในการทำรายงานเราต้องอ้างอิงว่าจะเอาผลมาจากไหน จากตาราง X-ray หรือ จากตาราง universal ก็เลยมีแนวคิดว่าถ้าสามารถดึงข้อมูลที่มีอยู่แล้วมาแสดงบนฟอร์ม UE ได้ แล้วบันทึกเก็บไว้ใน universal ด้วยก็จะสะดวกต่อการใช้งานครับ คือถ้าสามารถทำได้ ในกรณีดังกล่าวข้างต้นเมื่อเปิดฟอร์ม UE ก็จะเห็นผลที่รายงานไว้ แต่ถ้าไม่มีหรือมีแต่ไม่ครบเราก็สามารถพิมพ์ผลเพิ่มเติมลงไปได้และจะเก็บผลที่พิมพ์เพิ่มนี้ลงในตาราง universal และจะไม่มีผลใดๆ กับผลการอ่าน x-ray ในตารางหลักในตาราง X-ray ครับ เวลาเราทำรายงานก็จะดึงข้อมูลจากตาราง universal ทางเดียวครับ ;D
-
ทำได้ครับ ผ่าน TClientDataset
พึ่งลองเมื่อกี้เลยครับ
ใน Script Event OnLoad เราสามารถใส่โค้ดเข้าไปตรงนี้ได้ครับ
แล้วก็เขียนคำสั่ง Set ค่าให้กับ Object เช่น Scr1.text := 'test';
แต่ในที่นี้เราจะ set ค่าที่ได้จากการดึงในฐานข้อมูล ซึ่งเราดึงผ่าน TClicentDataset
ลองเอาโค๊ดนี้ไปรันดูครับ
var tc : TClientDataset; // ประกาศตัวแปรเป็น TClientDataset
begin
tc := TClientDataset.create(nil); // Initial
tc.data:=hosxp_getdataset('select count(*) as cc from patient'); // Query Data
Scr1.text := tc.fieldbyname('cc').asstring; // Set ค่าให้กับ Object
showmessage('Count Patient= '+tc.fieldbyname('cc').asstring); // Showmessage
tc.free;
end;
-
ขอโทษนะครับ พี่นุ๊ก ;D พอดีผมมีพื้นทางด้านนี้ไม่ค่อยสูงนะอ่ะครับ ขอแบบละเอียดๆ หน่อยได้ไหมครับ
ตามที่ผมเข้าใจคือเข้าไปที่ script (ตามรูป) เอา code ของพี่(ที่ลบตั้งแต่เครื่องหมาย // ของแต่ละบรรทัดออก)ไปวางทับ code เดิม แล้วคลิ๊กที่ปุ่ม run แค่นี้ใช่ไหมครับ(ยังไม่กล้าลองจริงๆ) กลัวฐานข้อมูลเสียหายครับ
แล้วจะนำไปใช้ในส่วน UE form อย่างไรครับ
-
ตอนออกแบบ UE จะมี Tab ที่เป็น Script ครับ
ลองรันดูเลย แต่อย่าลืมสร้าง Object มาลองด้วยนะครับ ;D
-
OK ครับ พอเห็นช่องทางแล้วล่ะครับ จะเอาไปดัดแปลงใช้งานดูครับ ไว้ทำเสร็จแล้วจะเอามาอวดครับ ขอบคุณครับ ;D ;D ;D
-
ทำเสร็จแล้วขอด้วยนะครับ ;D
ตรงกลุ่มเสี่ยงก็น่าจะทำได้นะครับ On Load ก็ Query ค่ามาคำนวณดู
แล้วก็ if .. else เปลี่ยนค่า Property ของ checkbox
-
ขอโทษนะครับ พี่นุ๊ก ;D พอดีผมมีพื้นทางด้านนี้ไม่ค่อยสูงนะอ่ะครับ ขอแบบละเอียดๆ หน่อยได้ไหมครับ
ตามที่ผมเข้าใจคือเข้าไปที่ script (ตามรูป) เอา code ของพี่(ที่ลบตั้งแต่เครื่องหมาย // ของแต่ละบรรทัดออก)ไปวางทับ code เดิม แล้วคลิ๊กที่ปุ่ม run แค่นี้ใช่ไหมครับ(ยังไม่กล้าลองจริงๆ) กลัวฐานข้อมูลเสียหายครับ
แล้วจะนำไปใช้ในส่วน UE form อย่างไรครับ
โหหห พึ่งเห็น มาเรียกผมพี่ อิอิ ผมพึ่งทำงานได้ปีกว่าเองนะครับ เรียกน้องดีกว่า อยากเป็นเด็ก 555+
-
ใกล้จะสำเร็จแล้วล่ะครับ หลังจากได้รับคำแนะนำจาก อ.นุ๊ก และปรับปรุงโดย อ.นันทพล ยังติดที่ผลที่ได้จาก group check ที่เป็น "ปกติ" หรือ "ผิดปกติ" ใน UE form ค่าที่ได้จะไปเก็บไว้ในฟิลด์ universal_item_value_text เป็น ";0" และ ";1" ในการสร้างรายงานจะเขียน script ใน variable อย่างไรให้แสดงค่าในรายงานเป็น "ปกติ" และ "ผิดปกติ" ตอนนี้ลองสร้าง variable แสดงผลออกมาได้แค่ "0" กับ "1" ครับ ตัวอย่าง script ของ variable ตามนี้ครับ
value := GetSQLStringData('select substr(ud.universal_item_value_text,2,1) '+
' from universal_detail ud,universal_head uh '+
' where ud.universal_head_id=uh.universal_head_id and uh.vn="'+DBPipeline['vn']+'" '+
' and ud.universal_item_id="19" ');
รบกวน อ.ทั้งหลายช่วยชี้แนะด้วยครับ ;D
-
ประกาศตัวแปรเพิ่มขึ้นมาเพื่อเก็บค่า..แล้วใช้ IF..ELSE ช่วยในการแปลงค่าจาก 0 และ 1 เพื่อ Return ค่าเป็น ปกติ หรือผิดปกติ
-
check group เขียนยากครับ (ทั่วไป ถ้าเลือก แค่ปกติ หรือผิดปกติ น่าจะใช้ radio group มากกว่า เพราะดึงข้อมูลมาง่ายกว่า สำหรับ check group น่าจะใช้กรณีที่เลือกได้หลายข้อ)
การดึงข้อมูลที่เราใช้ check group ต้องไปดูอีก 2 ตาราง คือ
...universal_detail_subvalue
...universal_item_value_list
ค่าที่เราต้องการ เก็บในฟิลด์ universal_subitem_value ดึงมาใช้ได้เลยครับ where universal_item_value_list_id="xxx" and universal_detail_id="xxx"
ลองดูครับ
;)
-
ขอบคุณครับ คุณหมอ ;D ไว้จะลองดูครับ
แล้วในส่วนของการจัดกลุ่มเสี่ยงพอจะมีแนวทางทำได้หรือไม่ครับ ขอคำชี้แนะด้วยครับ
-
ขอคำชี้แนะ ในส่วนของการจัดกลุ่มความเสี่ยงตามแนวทาง Metabolic syndrome โดยกำหนดตัวแปรจาก bps,bpd,FBS,Chol,TG,waist(รอบเอว) และ BMI โดยแยกเป็น
กลุ่มที่ 1 = bps<140 หรือ bpd<90 หรือ FBS<100 หรือ Chol<200 หรือ TG<150 หรือ waist ชาย<90หญิง<80 หรือ BMI <25
กลุ่มที่ 2 = bps 140-159 หรือ bpd 90-99 หรือ FBS 100-125 หรือ Chol 200-239 หรือ TG 150-399 หรือ waist ชาย >=90หญิง>=80 หรือ BMI 25-29.9
กลุ่มที่ 3 = bps >=160 หรือ bpd >=100 หรือ FBS >=126 หรือ Chol >=240 หรือ TG >=400 หรือ BMI >=26
คงต้องใช้วิธีที่ คุณ I'm nuke แนะนำ
ลองเพิ่ม Button ขึ้นมาเพื่อให้ประเมินกลุ่มเสี่ยง
เข้าไปที่ Tab Calc ==> OnClick
ใส่ script IF .......ELSE IF.......
คิดว่า ให้ if กลุ่ม 3 ก่อน โดยใช้เงื่อนไข or ด้านบน แล้วค่อย else กลุ่ม 2 โดยใช้ or เช่นกัน ที่เหลือ ให้เป็นกลุ่ม 1
-
สอบถามคุณหมอ ครับ..ผมอยากเปลี่ยนสี่การเลือก radio group จากสีน้ำเงินเป็นสีอื่นต้องเปลี่ยนที่ properties ตัวไหนครับ...และเวลาที่เลือกไปแล้วหากต้องการยกเลิกตัวที่เลือกไว้ทั้งหมด ต้องทำอย่างไรครับ
-
มาเป็นกำลังใจครับ ;) ;)
-
ยกเลิกการเลือก ผมก็ ใช้ปุ่ม Manage เพื่อเรียกฟอร์มมาแก้ไข หรือยกเลิกตัวเลือกเดิมแล้ว ก็ ตอบ ตกลง ซิครับ
การเปลี่ยนสีัของตัวเลือก radio ผมใช้เปลี่ยน Theme เป็นแบบใหม่ ก็สวยงามดีัครับ ( ตัวเลือก ใน Ribbon Stye)
มีทั้งรูปสัญลักษณ์แปลก ใน radio group ด้วย
-
เอาใจช่วยครับ เป็นกำลังใจให้อีกแรง ;D ;D ;D
-
ไ่ม่ทราบว่า UE ของท่าน navyNP เสร็จสมบูรณ์ยังครับ ;D ;D ;D
-
เสร็จครึ่งเดียวยังไม่มีเวลาทำต่อเลยครับ ;D
-
ขอบคุณครับ :D :D :D
-
ผ่านไป 1 ปี
100% หรือยังครับ ;D ;D
-
5 5 หลังจากผ่านไป 1 ปี ไม่ใช่ว่าหวงนะคับ แต่พอดีทางหน่วยแม่มีการเปลี่ยนรูปแบบในการส่งข้อมูลการตรวจสุขภาพ(ฟอร์ม สป.4 ส่งให้กรมแพทย์ทหารเรือ ส่วนฟอร์ม UE-1 จะพิมพ์ออกมาเป็นกระดาษราย
งานผลการตรวจสุขภาพ แนบไว้กับสมุดตรวจสุขภาพประจำปี)โดยมีการเพิ่มเติมส่วนอื่นๆ อีกเยอะ ก็เลยต้องปรับปรุงครั้งใหญ่ ก็เลยทำใหม่ทั้งหมด เพิ่งจะทำเสร็จเมื่อ ต.ค.ที่ผ่านมานี่เอง พอดีมีคน mail ไปขอหลายคน ก็เลยนึกขึ้นได้ว่าเคยเปิดกระทู้เรื่องนี้เอาไว้ ก็เลยขออนุญาตขุดกระทู้เก่า มาฝากผลงานเอาไว้ เผื่อจะมีประโยชน์แก่สมาชิกท่านอื่นๆ จะได้นำไปดัดแปลงใช้งาน เพราะตอนนี้ผมก็ย้ายไปอยู่ รพ.อื่นแล้ว(ไม่ได้ใช้ HOSxP) ก็เลยกลับมาปล่อยของ ;D ;D ;D
-
2 ภาพล่างคือรายงาน สป.4 สรุปผลการตรวจสุขภาพของผู้ป่วยทั้งหมดในแต่ละวันส่งให้หน่วยแม่ โดยผลต่างๆ เขาต้องการเป็นตัวเลข เช่น 0=ปกติ หรือ 1=ผิดปกติ เป็นต้น