BMS-HOSxP Community

HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: navyNP ที่ กุมภาพันธ์ 11, 2011, 15:55:22 PM

หัวข้อ: รบกวนดู script ให้หน่อยครับ
เริ่มหัวข้อโดย: navyNP ที่ กุมภาพันธ์ 11, 2011, 15:55:22 PM
คือผมต้องการสร้างรายงานตรวจสอบการใช้ยาที่มีมูลค่าสูง ที่จ่ายเกินกว่า 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;
หัวข้อ: Re: รบกวนดู script ให้หน่อยครับ
เริ่มหัวข้อโดย: Svl2Nuk3 ที่ กุมภาพันธ์ 11, 2011, 15:59:50 PM
คือผมต้องการสร้างรายงานตรวจสอบการใช้ยาที่มีมูลค่าสูง ที่จ่ายเกินกว่า 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  แล้วไม่ได้เอามาใส่ในเงื่อนไขอันสุดท้ายอ่ะครับ
หัวข้อ: Re: รบกวนดู script ให้หน่อยครับ
เริ่มหัวข้อโดย: navyNP ที่ กุมภาพันธ์ 11, 2011, 16:10:09 PM
ที่ถูกต้อง ต้องเขียนอย่างไรอ่ะครับ รบกวนด้วยครับ ;D
หัวข้อ: Re: รบกวนดู script ให้หน่อยครับ
เริ่มหัวข้อโดย: pop_hosxp ที่ กุมภาพันธ์ 11, 2011, 16:19:21 PM
น่าจะเป็น

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;

หัวข้อ: Re: รบกวนดู script ให้หน่อยครับ
เริ่มหัวข้อโดย: golf_win ที่ กุมภาพันธ์ 11, 2011, 16:20:02 PM
น่าจะเป็น

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
หัวข้อ: Re: รบกวนดู script ให้หน่อยครับ
เริ่มหัวข้อโดย: navyNP ที่ กุมภาพันธ์ 13, 2011, 09:23:52 AM
ขอบคุณ อ.ทุกท่านที่ชี้แนะครับ ไปลองดูแล้วตามนี้
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 เม็ด/ปี ต้องใส่เงื่อนไขเพิ่มเติมอย่างไร ครับ
หัวข้อ: Re: รบกวนดู script ให้หน่อยครับ
เริ่มหัวข้อโดย: pop_hosxp ที่ กุมภาพันธ์ 13, 2011, 12:44:52 PM
แก้เป็น having sum(o.qty)>365 ได้ไหมครับ