BMS-HOSxP Community

HOSxP => Report Exchange => ข้อความที่เริ่มโดย: Toptech สวนทองพันธุ์ไม้สุโขทัย ที่ เมษายน 17, 2009, 10:41:36 AM

หัวข้อ: คำสั่ง timestampdiff() มีผลต่อการคำนวณอายุของผู้ป่วยที่เกิดในเดือนกุมภาพันธ์
เริ่มหัวข้อโดย: 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
หัวข้อ: Re: คำสั่ง timestampdiff() มีผลต่อการคำนวณอายุของผู้ป่วยที่เกิดในเดือนกุมภาพันธ์
เริ่มหัวข้อโดย: doramon ที่ เมษายน 17, 2009, 10:42:46 AM
แนะนำตัวเอง
หัวข้อ: Re: คำสั่ง timestampdiff() มีผลต่อการคำนวณอายุของผู้ป่วยที่เกิดในเดือนกุมภาพันธ์
เริ่มหัวข้อโดย: Toptech สวนทองพันธุ์ไม้สุโขทัย ที่ เมษายน 17, 2009, 10:50:43 AM
User : Toptech
          ดูแลระบบ รพ.ศรีสังวรสุโขทัย ครับ
          อายุ 30
          บุตร 1
          ภรรยา -
          ภูมิลำเนา สุโขทัย คับผ้มๆๆๆๆ อาจารย์อ๊อด.....
หัวข้อ: Re: คำสั่ง timestampdiff() มีผลต่อการคำนวณอายุของผู้ป่วยที่เกิดในเดือนกุมภาพันธ์
เริ่มหัวข้อโดย: wiphusit ที่ เมษายน 17, 2009, 11:40:21 AM
User : Toptech
          ดูแลระบบ รพ.ศรีสังวรสุโขทัย ครับ
          อายุ 30
          บุตร 1
          ภรรยา -
          ภูมิลำเนา สุโขทัย คับผ้มๆๆๆๆ อาจารย์อ๊อด.....

ภรรยา -  แสดงว่าไม่มีหรือไม่จำกัดครับ
หัวข้อ: Re: คำสั่ง timestampdiff() มีผลต่อการคำนวณอายุของผู้ป่วยที่เกิดในเดือนกุมภาพันธ์
เริ่มหัวข้อโดย: Toptech สวนทองพันธุ์ไม้สุโขทัย ที่ เมษายน 17, 2009, 11:54:10 AM
ม่ายมีค้าบ...เลยรับไม่จำกัดค้าบ
แถมเรือพ่วงกะลังชู 2 นิ้วค้าบ
หัวข้อ: Re: คำสั่ง timestampdiff() มีผลต่อการคำนวณอายุของผู้ป่วยที่เกิดในเดือนกุมภาพันธ์
เริ่มหัวข้อโดย: doramon ที่ เมษายน 17, 2009, 12:06:13 PM
User : Doraemon
          ดูแล admin
          อายุ จำไม่ไ้ด้ แต่ไม่น้อยแล้ว
          บุตร  กำลังคิดว่าจะมี 5 คน
          ภรรยา  เท่าจำนวนบุตร
          ภูมิลำเนา เมืองคนรวย  ของ OK ก็ไม่เก็บ


ยินดีรู้จัก ครับ   ;D

หัวข้อ: Re: คำสั่ง timestampdiff() มีผลต่อการคำนวณอายุของผู้ป่วยที่เกิดในเดือนกุมภาพันธ์
เริ่มหัวข้อโดย: doramon ที่ เมษายน 17, 2009, 12:13:45 PM
ผมลองใช้คำสั่ง timestampdiff

รูปหนึ่ง  เกิดจากการใช้ timestampdif()  เดียวผม ตรวจสอบก่อนครับ ไม่ทราบว่า ท mysql ตัวไหน
            ไม่แน่ใจ แต่ว่า pt.birthday  ไม่มีเวลาเกิดครับ  ต้องใช้  pt.birthtime  ด้วย
รูปสอง เกิดจากการใช้  an_stat   -->  age_y age_m  age_d  เลยตรง
หัวข้อ: Re: คำสั่ง timestampdiff() มีผลต่อการคำนวณอายุของผู้ป่วยที่เกิดในเดือนกุมภาพันธ์
เริ่มหัวข้อโดย: howtodo ที่ เมษายน 17, 2009, 12:15:59 PM
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
หัวข้อ: Re: คำสั่ง timestampdiff() มีผลต่อการคำนวณอายุของผู้ป่วยที่เกิดในเดือนกุมภาพันธ์
เริ่มหัวข้อโดย: Toptech สวนทองพันธุ์ไม้สุโขทัย ที่ เมษายน 17, 2009, 13:35:28 PM
ยินดีที่ได้รู้จักเช่นกันครับ
ขอบคุณอาจารย์อ๊อดกับคุณ howtodo ครับ

- ตอนนี้ผมใช้ HOSxP v.3.52.3.2
                    MySQL v.5.1.23
หัวข้อ: Re: คำสั่ง timestampdiff() มีผลต่อการคำนวณอายุของผู้ป่วยที่เกิดในเดือนกุมภาพันธ์
เริ่มหัวข้อโดย: doramon ที่ เมษายน 17, 2009, 14:17:04 PM
    ไม่แน่ใจ แต่ว่า pt.birthday  ไม่มีเวลาเกิดครับ  ต้องใช้  pt.birthtime  ด้วย
หัวข้อ: Re: คำสั่ง timestampdiff() มีผลต่อการคำนวณอายุของผู้ป่วยที่เกิดในเดือนกุมภาพันธ์
เริ่มหัวข้อโดย: atit ที่ เมษายน 17, 2009, 15:03:21 PM
User : Doraemon
          ดูแล admin
          อายุ จำไม่ไ้ด้ แต่ไม่น้อยแล้ว
          บุตร  กำลังคิดว่าจะมี 5 คน
          ภรรยา  เท่าจำนวนบุตร
          ภูมิลำเนา เมืองคนรวย  ของ OK ก็ไม่เก็บ


ยินดีรู้จัก ครับ   ;D



เท่าที่มีก็เกินแล้วไม่ใช่หรือครับ หรือนับผิดหว่าเรา
หัวข้อ: Re: คำสั่ง timestampdiff() มีผลต่อการคำนวณอายุของผู้ป่วยที่เกิดในเดือนกุมภาพันธ์
เริ่มหัวข้อโดย: Toptech สวนทองพันธุ์ไม้สุโขทัย ที่ เมษายน 17, 2009, 15:14:31 PM
เรียนคุณพี่ SrwooD
       ผมท้าวความนิดนึงนะครับ  เนื่องจากในใบ MAR แต่เดิมนั้นนำอายุจาก an_stat มาใช้ ซึ่งเป็นอายุในวัน Admit  แต่ว่าทางห้องยาผู้ป่วยใน แจ้งว่าต้องการให้อายุเป็นปัจจุบันในวันที่พิมพ์ใบ MAR ออกมา ผมจึงใช้ฟังก์ชั่น timestampdiff() ในการคำนวณ ได้ผลออกมาดีครับผม
       แต่ว่าติดอยู่นิดนึงคือ ถ้าผู้ป่วยรายใดเกิดในเดือนกุมพาพันธ์ อายุที่คำนวณด้วยฟังก์ชั่น timestampdiff() จะคลาดเคลื่อนจากความเป็นจริงไปประมาณ 2-3 วันครับ ก็เลยสงสัยครับว่าควรจะทำไงดีสำหรับกรณีนี้
       ขอบคุณครับพี่ที่ให้คำแนะนำครับผม
หัวข้อ: Re: คำสั่ง timestampdiff() มีผลต่อการคำนวณอายุของผู้ป่วยที่เกิดในเดือนกุมภาพันธ์
เริ่มหัวข้อโดย: Toptech สวนทองพันธุ์ไม้สุโขทัย ที่ เมษายน 17, 2009, 15:24:18 PM
คุณ atit คับ
      ชอบจิงจิงเลยนิยาม "เมียรัก" ของคุณ atit เนี่ย (ผมโชคดีรึป่าวเนี่ยที่ไม่มีเมียกะเค้า)
เมียเรา
คือ ผู้หญิงเอนกประสงค์ที่มีการปรับสภาพเข้ากับสภาพแวดล้อมได้ดี
สามารถพลิกแพลงใช้งานได้หลายรูปแบบ
ค่าใช้จ่ายในการ maintenance ต่ำ
สามารถดูแลตัวเองได้ ไม่ค่อยเป็นภาระของ
user มักใช้ประโยชน์ร่วมกันในหมู่เพื่อนฝูง

เมียบังเกิดเกล้า
สามีที่มีภรรยาประเภทนี้จะใช้คำพูดอยู่สองคำ
คือ "ครับ" กับ "ใช่ครับ" และใช้สรรพนามเรียกภรรยาว่า "แม่"
มักอธิบายให้เพื่อนว่าเรียกตามลูก
แต่เพื่อนๆ ไม่แน่ใจว่าเรียกตามลูก หรือเรียกด้วย
ความเคารพยำเกรง เพื่อสวัสดิภาพของตัวเอง และที่สำคัญ ได้ลบคำว่า
"นอกใจ" ออกจากสมองและพจนานุกรมในบ้านเรียบร้อยแล้ว

.....ซังแหนว แซวหนังนะครับอย่าถือสา...เลยค้าบ
หัวข้อ: Re: คำสั่ง timestampdiff() มีผลต่อการคำนวณอายุของผู้ป่วยที่เกิดในเดือนกุมภาพันธ์
เริ่มหัวข้อโดย: thannawe ที่ เมษายน 17, 2009, 15:49:16 PM
เอ้า รอ อ.วุธมาตอบครับผม  :D ;D :D ;D
หัวข้อ: Re: คำสั่ง timestampdiff() มีผลต่อการคำนวณอายุของผู้ป่วยที่เกิดในเดือนกุมภาพันธ์
เริ่มหัวข้อโดย: SrWooD ที่ เมษายน 17, 2009, 16:11:24 PM
ลองตรวจสอบแล้วครับ พบปัญหาดังกล่าวจริงๆ ครับ

คงต้องรอ อ.MN หรือ อ.อ๊อด มาตอบอีกครั้งครับ

 ;D ;D ;D
หัวข้อ: Re: คำสั่ง timestampdiff() มีผลต่อการคำนวณอายุของผู้ป่วยที่เกิดในเดือนกุมภาพันธ์
เริ่มหัวข้อโดย: atit ที่ เมษายน 18, 2009, 18:43:27 PM
คุณ atit คับ
      ชอบจิงจิงเลยนิยาม "เมียรัก" ของคุณ atit เนี่ย (ผมโชคดีรึป่าวเนี่ยที่ไม่มีเมียกะเค้า)
เมียเรา
คือ ผู้หญิงเอนกประสงค์ที่มีการปรับสภาพเข้ากับสภาพแวดล้อมได้ดี
สามารถพลิกแพลงใช้งานได้หลายรูปแบบ
ค่าใช้จ่ายในการ maintenance ต่ำ
สามารถดูแลตัวเองได้ ไม่ค่อยเป็นภาระของ
user มักใช้ประโยชน์ร่วมกันในหมู่เพื่อนฝูง

เมียบังเกิดเกล้า
สามีที่มีภรรยาประเภทนี้จะใช้คำพูดอยู่สองคำ
คือ "ครับ" กับ "ใช่ครับ" และใช้สรรพนามเรียกภรรยาว่า "แม่"
มักอธิบายให้เพื่อนว่าเรียกตามลูก
แต่เพื่อนๆ ไม่แน่ใจว่าเรียกตามลูก หรือเรียกด้วย
ความเคารพยำเกรง เพื่อสวัสดิภาพของตัวเอง และที่สำคัญ ได้ลบคำว่า
"นอกใจ" ออกจากสมองและพจนานุกรมในบ้านเรียบร้อยแล้ว

.....ซังแหนว แซวหนังนะครับอย่าถือสา...เลยค้าบ

มีเมียดีก็อยากโชว์บ้างแค่นั้นเองครับ เผื่อคนอื่นอยากมีบ้าง55555
หัวข้อ: Re: คำสั่ง timestampdiff() มีผลต่อการคำนวณอายุของผู้ป่วยที่เกิดในเดือนกุมภาพันธ์
เริ่มหัวข้อโดย: Toptech สวนทองพันธุ์ไม้สุโขทัย ที่ เมษายน 23, 2009, 15:41:42 PM
อาจารย์ทุกท่านครับ ผมรอคำตอบอยู่..... ขอความช่วยเหลือด้วยครับ
ขอบคุณล่วงหน้าครับ
หัวข้อ: Re: คำสั่ง timestampdiff() มีผลต่อการคำนวณอายุของผู้ป่วยที่เกิดในเดือนกุมภาพันธ์
เริ่มหัวข้อโดย: manoi ที่ เมษายน 23, 2009, 15:55:41 PM
ใช้ Function GetThaiAge ใน report designer ช่วยได้นะครับ

ใน code ของ Variable เขียนคล้ายๆ แบบนี้

Value := GetThaiAge(ppDBPipeLine['birthday'],CurrentDate) ;