BMS-HOSxP Community
HOSxP => Report Exchange => ข้อความที่เริ่มโดย: Toptech สวนทองพันธุ์ไม้สุโขทัย ที่ เมษายน 17, 2009, 10:41:36 AM
-
สวัสดีหลังสงกรานต์คับ
ผมลองใช้คำสั่ง timestampdiff() คำนวณอายุของผู้ป่วยเพื่อใช้แสดงในใบ MAR ตามภาพด้านล่าง แล้วปรากฎว่าอายุของผู้ป่วยทีเกิดในเดือนกุมภาพันธ์ในใบ MAR จะแตกต่างกับอายุของผู้ป่วยในใบสั่งยาผู้ป่วยใน คือว่าอยากให้อายุมันตรงกับความเป็นจริงน่ะคับ คือสั่งพิมพ์ใบ MAR วันนี้อายุก็ต้องคำนวณออกมาวันนี้ ตอนแรกผมใช้คำสั่ง timestampdiff() คิดว่าชัวร์แล้ว แต่พอดี User มาแจ้งว่าทำไมผู้ป่วยที่เกิดเดือนกุมภาพันธ์ แล้วคำนวณออกมาคลาดเคลื่อน ดังนั้นควรใช้คำสั่งอะไรดีครับ
ผมใช้ SQL นี้ในใบ MAR ครับ
select r.an,r.icode,r.mar_time,r.mar_date,concat(dr.name,' ',dr.strength ) as drname,dr.units,a.hn,
concat(pt.pname,' ',pt.fname,' ',pt.lname) as ptname,a.ward,w.name as wname,b.bedno
,r.drugusage,pty.name as pttype,r.med_rx_number,du.name1,concat(du.name2,' ',du.name3) as duname
,r.qty,r.med_interval_type_id,met.interval_name as inname,r.orderstatus,sp.name1 as spname,concat(sp.name2,' ',sp.name3) as spname1
,pt.drugallergy,dr.units , i.entry_staff , doc.name as stname, a.age_y, a.age_m, a.age_d, k.prediag
,os.bw ,os.height,if(sp.name1 is not null,sp.name1,du.name1) as drugusename1 ,if(concat(sp.name2,sp.name3) is not null ,concat(sp.name2,' ',sp.name3)
,concat(du.name2,' ',du.name3)) as drugusename2,(k.bw/1000) as bw_1 ,
pt.birthday,now()as today,
timestampdiff(year,pt.birthday,curdate()) as count_year,
timestampdiff(month,pt.birthday,curdate())-(timestampdiff(year,pt.birthday,curdate())*12) as count_month,
timestampdiff(day,date_add(pt.birthday,interval (timestampdiff(month,pt.birthday,curdate())) month),curdate()) as count_day
from ipd_mar r
left outer join drugitems dr on dr.icode=r.icode
left outer join drugusage du on du.drugusage=r.drugusage
left outer join an_stat a on a.an=r.an
left outer join patient pt on pt.hn=a.hn
left outer join ward w on w.ward=a.ward
left outer join iptadm b on b.an=r.an
left outer join pttype pty on pty.pttype=a.pttype
left outer join med_interval_type met on met.med_interval_type_id=r.med_interval_type_id
left outer join sp_use sp on sp.sp_use=r.sp_use
left outer join ipt_order_no i on i.order_no = r.med_rx_number
left outer join doctor doc on doc.code = i.entry_staff
left outer join ipt k on k.an=r.an
left outer join opdscreen os on os.vn=k.vn
where r.med_rx_number=544791 and r.icode <'2000000'
order by r.orderstatus
-
แนะนำตัวเอง
-
User : Toptech
ดูแลระบบ รพ.ศรีสังวรสุโขทัย ครับ
อายุ 30
บุตร 1
ภรรยา -
ภูมิลำเนา สุโขทัย คับผ้มๆๆๆๆ อาจารย์อ๊อด.....
-
User : Toptech
ดูแลระบบ รพ.ศรีสังวรสุโขทัย ครับ
อายุ 30
บุตร 1
ภรรยา -
ภูมิลำเนา สุโขทัย คับผ้มๆๆๆๆ อาจารย์อ๊อด.....
ภรรยา - แสดงว่าไม่มีหรือไม่จำกัดครับ
-
ม่ายมีค้าบ...เลยรับไม่จำกัดค้าบ
แถมเรือพ่วงกะลังชู 2 นิ้วค้าบ
-
User : Doraemon
ดูแล admin
อายุ จำไม่ไ้ด้ แต่ไม่น้อยแล้ว
บุตร กำลังคิดว่าจะมี 5 คน
ภรรยา เท่าจำนวนบุตร
ภูมิลำเนา เมืองคนรวย ของ OK ก็ไม่เก็บ
ยินดีรู้จัก ครับ ;D
-
ผมลองใช้คำสั่ง timestampdiff
รูปหนึ่ง เกิดจากการใช้ timestampdif() เดียวผม ตรวจสอบก่อนครับ ไม่ทราบว่า ท mysql ตัวไหน
ไม่แน่ใจ แต่ว่า pt.birthday ไม่มีเวลาเกิดครับ ต้องใช้ pt.birthtime ด้วย
รูปสอง เกิดจากการใช้ an_stat --> age_y age_m age_d เลยตรง
-
The function TIMESTAMPDIFF returns a new timestamp value based on adding an interval to an existing timestamp value.
http://www.smallsql.de/doc/sql-functions/date-time/timestampdiff.html
http://dev.mysql.com/doc/refman/5.0/en/date-calculations.html
age from date of birth
This program takes your complete date of birth (year, month and day of month) and gives you the exact age which determines the years, months and days of the calculated age of the person. Following program is fully validated. Because of this you can not enter any invalid year or month or day for your date of birth.
http://www.roseindia.net/java/example/java/util/AgeCalculation.shtml
-
ยินดีที่ได้รู้จักเช่นกันครับ
ขอบคุณอาจารย์อ๊อดกับคุณ howtodo ครับ
- ตอนนี้ผมใช้ HOSxP v.3.52.3.2
MySQL v.5.1.23
-
ไม่แน่ใจ แต่ว่า pt.birthday ไม่มีเวลาเกิดครับ ต้องใช้ pt.birthtime ด้วย
-
User : Doraemon
ดูแล admin
อายุ จำไม่ไ้ด้ แต่ไม่น้อยแล้ว
บุตร กำลังคิดว่าจะมี 5 คน
ภรรยา เท่าจำนวนบุตร
ภูมิลำเนา เมืองคนรวย ของ OK ก็ไม่เก็บ
ยินดีรู้จัก ครับ ;D
เท่าที่มีก็เกินแล้วไม่ใช่หรือครับ หรือนับผิดหว่าเรา
-
เรียนคุณพี่ SrwooD
ผมท้าวความนิดนึงนะครับ เนื่องจากในใบ MAR แต่เดิมนั้นนำอายุจาก an_stat มาใช้ ซึ่งเป็นอายุในวัน Admit แต่ว่าทางห้องยาผู้ป่วยใน แจ้งว่าต้องการให้อายุเป็นปัจจุบันในวันที่พิมพ์ใบ MAR ออกมา ผมจึงใช้ฟังก์ชั่น timestampdiff() ในการคำนวณ ได้ผลออกมาดีครับผม
แต่ว่าติดอยู่นิดนึงคือ ถ้าผู้ป่วยรายใดเกิดในเดือนกุมพาพันธ์ อายุที่คำนวณด้วยฟังก์ชั่น timestampdiff() จะคลาดเคลื่อนจากความเป็นจริงไปประมาณ 2-3 วันครับ ก็เลยสงสัยครับว่าควรจะทำไงดีสำหรับกรณีนี้
ขอบคุณครับพี่ที่ให้คำแนะนำครับผม
-
คุณ atit คับ
ชอบจิงจิงเลยนิยาม "เมียรัก" ของคุณ atit เนี่ย (ผมโชคดีรึป่าวเนี่ยที่ไม่มีเมียกะเค้า)
เมียเรา
คือ ผู้หญิงเอนกประสงค์ที่มีการปรับสภาพเข้ากับสภาพแวดล้อมได้ดี
สามารถพลิกแพลงใช้งานได้หลายรูปแบบ
ค่าใช้จ่ายในการ maintenance ต่ำ
สามารถดูแลตัวเองได้ ไม่ค่อยเป็นภาระของ
user มักใช้ประโยชน์ร่วมกันในหมู่เพื่อนฝูง
เมียบังเกิดเกล้า
สามีที่มีภรรยาประเภทนี้จะใช้คำพูดอยู่สองคำ
คือ "ครับ" กับ "ใช่ครับ" และใช้สรรพนามเรียกภรรยาว่า "แม่"
มักอธิบายให้เพื่อนว่าเรียกตามลูก
แต่เพื่อนๆ ไม่แน่ใจว่าเรียกตามลูก หรือเรียกด้วย
ความเคารพยำเกรง เพื่อสวัสดิภาพของตัวเอง และที่สำคัญ ได้ลบคำว่า
"นอกใจ" ออกจากสมองและพจนานุกรมในบ้านเรียบร้อยแล้ว
.....ซังแหนว แซวหนังนะครับอย่าถือสา...เลยค้าบ
-
เอ้า รอ อ.วุธมาตอบครับผม :D ;D :D ;D
-
ลองตรวจสอบแล้วครับ พบปัญหาดังกล่าวจริงๆ ครับ
คงต้องรอ อ.MN หรือ อ.อ๊อด มาตอบอีกครั้งครับ
;D ;D ;D
-
คุณ atit คับ
ชอบจิงจิงเลยนิยาม "เมียรัก" ของคุณ atit เนี่ย (ผมโชคดีรึป่าวเนี่ยที่ไม่มีเมียกะเค้า)
เมียเรา
คือ ผู้หญิงเอนกประสงค์ที่มีการปรับสภาพเข้ากับสภาพแวดล้อมได้ดี
สามารถพลิกแพลงใช้งานได้หลายรูปแบบ
ค่าใช้จ่ายในการ maintenance ต่ำ
สามารถดูแลตัวเองได้ ไม่ค่อยเป็นภาระของ
user มักใช้ประโยชน์ร่วมกันในหมู่เพื่อนฝูง
เมียบังเกิดเกล้า
สามีที่มีภรรยาประเภทนี้จะใช้คำพูดอยู่สองคำ
คือ "ครับ" กับ "ใช่ครับ" และใช้สรรพนามเรียกภรรยาว่า "แม่"
มักอธิบายให้เพื่อนว่าเรียกตามลูก
แต่เพื่อนๆ ไม่แน่ใจว่าเรียกตามลูก หรือเรียกด้วย
ความเคารพยำเกรง เพื่อสวัสดิภาพของตัวเอง และที่สำคัญ ได้ลบคำว่า
"นอกใจ" ออกจากสมองและพจนานุกรมในบ้านเรียบร้อยแล้ว
.....ซังแหนว แซวหนังนะครับอย่าถือสา...เลยค้าบ
มีเมียดีก็อยากโชว์บ้างแค่นั้นเองครับ เผื่อคนอื่นอยากมีบ้าง55555
-
อาจารย์ทุกท่านครับ ผมรอคำตอบอยู่..... ขอความช่วยเหลือด้วยครับ
ขอบคุณล่วงหน้าครับ
-
ใช้ Function GetThaiAge ใน report designer ช่วยได้นะครับ
ใน code ของ Variable เขียนคล้ายๆ แบบนี้
Value := GetThaiAge(ppDBPipeLine['birthday'],CurrentDate) ;