ผู้เขียน หัวข้อ: รบกวนดู script ให้หน่อยครับ  (อ่าน 4292 ครั้ง)

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ navyNP

  • Hero Member
  • *****
  • กระทู้: 933
  • Respect: +3
    • ดูรายละเอียด
รบกวนดู script ให้หน่อยครับ
« เมื่อ: กุมภาพันธ์ 11, 2011, 15:55:22 PM »
0
คือผมต้องการสร้างรายงานตรวจสอบการใช้ยาที่มีมูลค่าสูง ที่จ่ายเกินกว่า 365 เม็ด/ปี(เนื่องจากยากินวันละ 1 เม็ด)
ก็เลยสร้างรายงานหน้าตาออกมาตามรูปที่แนบ แต่สังเกตดูว่าข้อมูลที่ออกมาไม่ค่อยตรงความเป็นจริงซักเท่าไหร่ ทั้งจำนวนครั้งที่มา และจำนวนยารวม คือไม่ว่าจะเปลี่ยนชื่อยาไปเป็นยาตัวไหนจำนวนก็ไม่เปลี่ยนข้อมูลตามชื่อยา
script ที่ใช้ ดังนี้ครับ

begin
  GetDateRangeDialog(date1, date2);

  bdate := Formatdatetime('yyyy-mm-dd',date1);
  edate := Formatdatetime('yyyy-mm-dd',date2);

  drug := GetPickupList('select concat(name," ",strength) as drugname from drugitems where icode in("1480778","1480603","1480674","1480717","1480679","1510012","1490031","1480641","1480625") order by name,strength');
  drugcode := GetSQLStringData('select icode from drugitems where concat(name," ",strength)="'+drug+'"');

  ChangeReportSQL('select o.vn,o.icode,count(qty)as time,o.qty,sum(qty)as sum_qty,o.hn,concat(p.pname,p.fname," ", p.lname) as ptname, ' +
    '"'+drug+'" as drugname from opitemrece o ' +
    'left outer join patient p on p.hn=o.hn ' +
    'left outer join drugitems d on d.icode=o.icode ' +
    'where o.icode in("1480778","1480603","1480674","1480717","1480679","1510012","1490031","1480641","1480625") ' +
    'and o.rxdate between "'+ bdate +'" and "'+ edate+'"' +
    'group by o.hn ' +
    'having sum_qty>365 ' +
    'order by sum_qty');
end;
« แก้ไขครั้งสุดท้าย: กุมภาพันธ์ 11, 2011, 15:58:34 PM โดย navyNP »
เคยเป็น Admin รพ.อาภากรเกียรติวงศ์ สัตหีบ ชลบุรี(250 เตียง)
Implement by อ.MN & อ.suchai  ขึ้นระบบ 29 ก.ค.48
Server : RH Enterprise Linux AS release 3(taroon)
Client : winXP , Slave : winXP , MySQL 4.1
LIS : CST
version ปัจจุบัน 3.54.1.22

ออฟไลน์ Svl2Nuk3

  • Hero Member
  • *****
  • กระทู้: 793
  • Respect: 0
    • ดูรายละเอียด
Re: รบกวนดู script ให้หน่อยครับ
« ตอบกลับ #1 เมื่อ: กุมภาพันธ์ 11, 2011, 15:59:50 PM »
0
คือผมต้องการสร้างรายงานตรวจสอบการใช้ยาที่มีมูลค่าสูง ที่จ่ายเกินกว่า 365 เม็ด/ปี(เนื่องจากยากินวันละ 1 เม็ด)
ก็เลยสร้างรายงานหน้าตาออกมาตามรูปที่แนบ แต่สังเกตดูว่าข้อมูลที่ออกมาไม่ค่อยตรงความเป็นจริงซักเท่าไหร่ ทั้งจำนวนครั้งที่มา และจำนวนยารวม คือไม่ว่าจะเปลี่ยนชื่อยาไปเป็นยาตัวไหนจำนวนก็ไม่เปลี่ยนข้อมูลตามชื่อยา
script ที่ใช้ ดังนี้ครับ

begin
  GetDateRangeDialog(date1, date2);

  bdate := Formatdatetime('yyyy-mm-dd',date1);
  edate := Formatdatetime('yyyy-mm-dd',date2);

  drug := GetPickupList('select concat(name," ",strength) as drugname from drugitems where icode in("1480778","1480603","1480674","1480717","1480679","1510012","1490031","1480641","1480625") order by name,strength');
  drugcode := GetSQLStringData('select icode from drugitems where concat(name," ",strength)="'+drug+'"');

  ChangeReportSQL('select o.vn,o.icode,count(qty)as time,o.qty,sum(qty)as sum_qty,o.hn,concat(p.pname,p.fname," ", p.lname) as ptname, ' +
    '"'+drug+'" as drugname from opitemrece o ' +
    'left outer join patient p on p.hn=o.hn ' +
    'left outer join drugitems d on d.icode=o.icode ' +
    'where o.icode in("1480778","1480603","1480674","1480717","1480679","1510012","1490031","1480641","1480625") ' +
    'and o.rxdate between "'+ bdate +'" and "'+ edate+'"' +
    'group by o.hn ' +
    'having sum_qty>365 ' +
    'order by sum_qty');
end;

ได้  Icode  แล้วไม่ได้เอามาใส่ในเงื่อนไขอันสุดท้ายอ่ะครับ
I'm nuke (นุ๊ก)
My Blog  : http://www.codenuke.net
อดีต นวก.คอมฯ รพช.พรหมพิราม => 1 พ.ค. 52 - 30 ก.ย. 54
ปัจจุบัน : Software Engineer บริษัทแห่งหนึ่ง

ออฟไลน์ navyNP

  • Hero Member
  • *****
  • กระทู้: 933
  • Respect: +3
    • ดูรายละเอียด
Re: รบกวนดู script ให้หน่อยครับ
« ตอบกลับ #2 เมื่อ: กุมภาพันธ์ 11, 2011, 16:10:09 PM »
0
ที่ถูกต้อง ต้องเขียนอย่างไรอ่ะครับ รบกวนด้วยครับ ;D
เคยเป็น Admin รพ.อาภากรเกียรติวงศ์ สัตหีบ ชลบุรี(250 เตียง)
Implement by อ.MN & อ.suchai  ขึ้นระบบ 29 ก.ค.48
Server : RH Enterprise Linux AS release 3(taroon)
Client : winXP , Slave : winXP , MySQL 4.1
LIS : CST
version ปัจจุบัน 3.54.1.22

ออฟไลน์ pop_hosxp

  • Hero Member
  • *****
  • กระทู้: 3,138
  • Respect: +40
    • ดูรายละเอียด
    • Phanomphrai Hospital
Re: รบกวนดู script ให้หน่อยครับ
« ตอบกลับ #3 เมื่อ: กุมภาพันธ์ 11, 2011, 16:19:21 PM »
0
น่าจะเป็น

begin
  GetDateRangeDialog(date1, date2);

  bdate := Formatdatetime('yyyy-mm-dd',date1);
  edate := Formatdatetime('yyyy-mm-dd',date2);

  drug := GetPickupList('select concat(name," ",strength) as drugname from drugitems where icode in("1480778","1480603","1480674","1480717","1480679","1510012","1490031","1480641","1480625") order by name,strength');
  drugcode := GetSQLStringData('select icode from drugitems where concat(name," ",strength)="'+drug+'"');

  ChangeReportSQL('select o.vn,o.icode,count(qty)as time,o.qty,sum(qty)as sum_qty,o.hn,concat(p.pname,p.fname," ", p.lname) as ptname, ' +
    '"'+drug+'" as drugname from opitemrece o ' +
    'left outer join patient p on p.hn=o.hn ' +
    'left outer join drugitems d on d.icode=o.icode ' +
    'where o.icode="'+drugcode+'" ' +
    'and o.rxdate between "'+ bdate +'" and "'+ edate+'"' +
    'group by o.hn ' +
    'having sum_qty>365 ' +
    'order by sum_qty');
end;

pop434241@gmail.com
รพ.พนมไพร จ.ร้อยเอ็ด https://pnphos.moph.go.th/hosweb/

ออฟไลน์ golf_win

  • Hero Member
  • *****
  • กระทู้: 3,481
  • Respect: +112
    • ดูรายละเอียด
Re: รบกวนดู script ให้หน่อยครับ
« ตอบกลับ #4 เมื่อ: กุมภาพันธ์ 11, 2011, 16:20:02 PM »
0
น่าจะเป็น

begin
  GetDateRangeDialog(date1, date2);

  bdate := Formatdatetime('yyyy-mm-dd',date1);
  edate := Formatdatetime('yyyy-mm-dd',date2);

  drug := GetPickupList('select concat(name," ",strength) as drugname from drugitems where icode in("1480778","1480603","1480674","1480717","1480679","1510012","1490031","1480641","1480625") order by name,strength');
  drugcode := GetSQLStringData('select icode from drugitems where concat(name," ",strength)="'+drug+'"');

  ChangeReportSQL('select o.vn,o.icode,count(qty)as time,o.qty,sum(qty)as sum_qty,o.hn,concat(p.pname,p.fname," ", p.lname) as ptname, ' +
    '"'+drug+'" as drugname from opitemrece o ' +
    'left outer join patient p on p.hn=o.hn ' +
    'left outer join drugitems d on d.icode=o.icode ' +
    'where o.icode="'+drugcode+'" ' +
    'and o.rxdate between "'+ bdate +'" and "'+ edate+'"' +
    'group by o.hn ' +
    'having sum_qty>365 ' +
    'order by sum_qty');
end;


ตามนี้ครับ ;D ;D
โรงพยาบาลเจ็ดเสมียน จังหวัดราชบุรี
Start 19-1-51    35 station
HOSxP  3.59.5.18 Activate License
Tel. 032-305096-7 ต่อ 118
Web. http://csmhos.thaiddns.com:8080
         http://csmhos.thaieasydns.com:8080

ออฟไลน์ navyNP

  • Hero Member
  • *****
  • กระทู้: 933
  • Respect: +3
    • ดูรายละเอียด
Re: รบกวนดู script ให้หน่อยครับ
« ตอบกลับ #5 เมื่อ: กุมภาพันธ์ 13, 2011, 09:23:52 AM »
0
ขอบคุณ อ.ทุกท่านที่ชี้แนะครับ ไปลองดูแล้วตามนี้
begin
  GetDateRangeDialog(date1, date2);

  bdate := Formatdatetime('yyyy-mm-dd',date1);
  edate := Formatdatetime('yyyy-mm-dd',date2);

  drug := GetPickupList('select concat(name," ",strength) as drugname from drugitems where icode in("1480778","1480603","1480674","1480717","1480679","1510012","1490031","1480641","1480625") order by name,strength');
  drugcode := GetSQLStringData('select icode from drugitems where concat(name," ",strength)="'+drug+'"');

  ChangeReportSQL('select o.vn,o.icode,count(qty)as time,o.qty,sum(qty)as sum_qty,o.hn,concat(p.pname,p.fname," ", p.lname) as ptname, ' +
    '"'+drug+'" as drugname from opitemrece o ' +
    'left outer join patient p on p.hn=o.hn ' +
    'left outer join drugitems d on d.icode=o.icode ' +
    'where o.icode="'+drugcode+'" ' +
    'and o.rxdate between "'+ bdate +'" and "'+ edate+'"' +
    'group by o.hn ' +
    'having sum_qty>365 ' +   
'order by sum_qty');
end;

ไม่มีข้อมูลออกเลย น่าจะผิดตรงนี้ครับ 'having sum_qty>365 ' +

เพราะผมลองเอาออกแล้วมีข้อมูลออก แต่มาหมดเลย แต่ผมต้องการแค่ HN ที่มีการจ่ายรวมเกิน 365 เม็ด/ปี ต้องใส่เงื่อนไขเพิ่มเติมอย่างไร ครับ
เคยเป็น Admin รพ.อาภากรเกียรติวงศ์ สัตหีบ ชลบุรี(250 เตียง)
Implement by อ.MN & อ.suchai  ขึ้นระบบ 29 ก.ค.48
Server : RH Enterprise Linux AS release 3(taroon)
Client : winXP , Slave : winXP , MySQL 4.1
LIS : CST
version ปัจจุบัน 3.54.1.22

ออฟไลน์ pop_hosxp

  • Hero Member
  • *****
  • กระทู้: 3,138
  • Respect: +40
    • ดูรายละเอียด
    • Phanomphrai Hospital
Re: รบกวนดู script ให้หน่อยครับ
« ตอบกลับ #6 เมื่อ: กุมภาพันธ์ 13, 2011, 12:44:52 PM »
0
แก้เป็น having sum(o.qty)>365 ได้ไหมครับ
pop434241@gmail.com
รพ.พนมไพร จ.ร้อยเอ็ด https://pnphos.moph.go.th/hosweb/