BMS-HOSxP Community
HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: k_toedkiets ที่ เมษายน 18, 2011, 15:58:35 PM
-
ข้อมูล LAB HbA1C
select a.hn, c.pname, concat(c.fname,' ',c.lname) as cc,
e.age_y,c.cid, e.hospmain, a.vstdate,b.name, a.qty,l.lab_order_result,a.pttype, e.pttypeno, d.name , a.an
from opitemrece a
left outer join nondrugitems b on a.icode=b.icode
left outer join patient c on a.hn=c.hn
left outer join pttype d on a.pttype=d.pttype
left outer join vn_stat e on a.vn=e.vn
left outer join lab_head h on e.hn=h.hn
left outer join lab_order l on l.lab_order_number=h.lab_order_number
left outer join lab_items i on i.lab_items_code=l.lab_items_code
left outer join lab_items_group g on g.lab_items_group_code = i.lab_items_group
where
(a.icode="3000809" and i.lab_items_name='HbA1C')
and a.vstdate between '2006-10-01' and '2007-06-27'
order by a.hn,a.vst
Report
ลำดับที่ : วันที่ : PID : เลขบัตร : HN : ชื่อ-สกุล : อายุ(ปี) : สิทธิ : จำนวน : ผล lab
-
น่าจะใช้ lab_items_code มากกว่า lab_items_name ครับ..ไม่ต้องสนใจเรื่อง icode ของ nondrugitems ก็ได้ครับ..ดูรายการจาก lab_head+lab_order และ ovst ครับ..เชื่อมกันที่ vn
คงไม่ต้องใช้ icode จาก opitemrece ครับ..
-
... คำสั่งดูแล้วยัง งงๆ ครับ
แล้วก็ตรง report ที่บอกไว้ จำนวน คือจำนวนของอะไรครับ
กำลังมองว่า อาจไม่จำเป็นต้องใช้ข้อมูลจาก opitemrece ก็ได้ครับ
แล้วก็น่าจะได้คำสั่งที่กระชับกว่านี้ ... :D ....
-
ขอแก้ไข Report ครับ ดังนี้ครับ
ลำดับที่ : วันที่ : PID : เลขบัตร : HN : ชื่อ-สกุล : อายุ(ปี) : สิทธิ : ผล lab
-
select cm.hn as HN,concat(pt.pname,pt.fname,' ',pt.lname) as Name,
concat(pt.addrpart," ?.",pt.moopart," ?.",t3.name," ?.",t2.name," ?.",t1.name) as Address,
cm.lastvisit ,lh.order_date,lh.lab_order_number,o.fbs,c2.name,l3.lab_items_name,l2.lab_order_result
from clinicmember cm
left outer join lab_head lh on lh.hn=cm.hn
left outer join opdscreen o on o.vn=lh.vn
left outer join patient pt on pt.hn=cm.hn
left outer join lab_order l2 on l2.lab_order_number=lh.lab_order_number
left outer join lab_items l3 on l3.lab_items_code=l2.lab_items_code
left outer join thaiaddress t1 on t1.chwpart=pt.chwpart and t1.amppart="00" and t1.tmbpart="00"
left outer join thaiaddress t2 on t2.chwpart=pt.chwpart and t2.amppart=pt.amppart and t2.tmbpart="00"
left outer join thaiaddress t3 on t3.chwpart=pt.chwpart and t3.amppart=pt.amppart and t3.tmbpart=pt.tmbpart
left outer join clinic c2 on c2.clinic=cm.clinic
where cm.clinic = '001' and l2.lab_items_code = "316" and l2.confirm = "Y" and lh.order_date between '2009-10-01' and '2010-09-30'
order by lh.order_date,cm.hn
ลองดูเป็นตัวอย่างครับ สีแดง lab hba1c
-
บางครั้งคนที่ตรวจ Hba1c อาจยังไม่ได้ขึ้นทะเบียน clinicmember ครับ..นับจาก DX ดีกว่า เช่นจาก ovstdiag หรือ vn_stat ครับ...
-
... ลองแบบนี้ก็ได้ครับ โดยเปลี่ยนตรง lab_items_code(สีแดง) เป็นรหัสของ HB A1C และถ้าต้องการเฉพาะที่มีผลการตรวจและยืนยันแล้ว ก็ไปเพิ่มเงื่อนไข l2.confirm = 'Y' เข้าไปในคำสั่งครับ
แต่ว่าผมยังสับสนตรง PID กะ เลขบัตร ครับ ... :D ...
select v.vstdate as "วันที่",p.cid as PID,"หมายถึง?" as "เลขบัตร",p.hn as HN,
concat(p.pname,p.fname,' ',p.lname) as "ชื่อ-สกุล",v.age_y as "อายุ(ปี)",
p2.name as "สิทธิ",l2.lab_order_result
from lab_head l1
left outer join vn_stat v on v.vn = l1.vn
left outer join patient p on p.hn = l1.hn
left outer join lab_order l2 on l2.lab_order_number = l1.lab_order_number
left outer join pttype p2 on p2.pttype = v.pttype
where vstdate between '2010-12-01' and '2010-12-31'
and l2.lab_items_code = '37'
-
ลองดูแล้วแต่ข้อมูลออกมาไม่ครบ
ตามนี้ครับ
ลำดับที่ วันที่ PID เลขบัตร HN ชื่อ-สกุล อายุ(ปี) สิทธิ จำนวน ผล lab
1 ว่าง ว่าง ว่าง 000001243 ว่าง ว่าง 01-โรคเบาหวาน E10-E11 ว่าง 8.4
2 ว่าง ว่าง ว่าง 000000240 ว่าง ว่าง 01-โรคเบาหวาน E10-E11 ว่าง 7.4
3 ว่าง ว่าง ว่าง 000004230 ว่าง ว่าง 01-โรคเบาหวาน E10-E11 ว่าง 5.4
4 ว่าง ว่าง ว่าง 000001043 ว่าง ว่าง 01-โรคเบาหวาน E10-E11 ว่าง 6.2
5 ว่าง ว่าง ว่าง 000001125 ว่าง ว่าง 01-โรคเบาหวาน E10-E11 ว่าง 6.3
6 ว่าง ว่าง ว่าง 000000243 ว่าง ว่าง 01-โรคเบาหวาน E10-E11 ว่าง 7.0
-
ลองดูแล้วแต่ข้อมูลออกมาไม่ครบ
... ลองแบบไหนครับ
ในหน้าต่าง SQL Query ใน HOSxP หรือ เอาคำสั่งไปใส่ในคำสั่งรายงานครับ ... :D ...
-
ลองปรับเป็น..
select l1.order_date as "วันที่",p.cid as PID,"หมายถึง?" as "เลขบัตร",l1.hn as HN,
concat(p.pname,p.fname,' ',p.lname) as "ชื่อ-สกุล",v.age_y as "อายุ(ปี)",
p2.name as "สิทธิ",l2.lab_order_result
from lab_head l1
left outer join vn_stat v on v.vn = l1.vn
left outer join patient p on p.hn = v.hn
left outer join lab_order l2 on l2.lab_order_number = l1.lab_order_number
left outer join pttype p2 on p2.pttype = v.pttype
where vstdate between '2010-12-01' and '2010-12-31'
and l2.lab_items_code = 'code ของ รพ.ท่าน'
-
ลองปรับเป็น..
select li.order_date as "วันที่",p.cid as PID,"หมายถึง?" as "เลขบัตร",l1.hn as HN,
ตรง li.order_date as "วันที่" เปลี่ยนเป็น l1.order_date ... นะครับ ;D ;D
ส่วนอันนี้ ... "หมายถึง?" as "เลขบัตร" .... ผมก็สงสัยเหมือนกัน อ. ขวดครับ มันคืออะไร
หรือว่าเป็นเลขที่บัตรสิทธิหรือป่าว ...
ผมลองทั้งสองแบบแล้ว ของอ.ขวด และพี่เกื้อ ก็ออกนะครับ และได้เหมือนกันด้วย ...
-
... น่าจะเป็นการนำคำสั่งไปใส่ในตัวรายงาน คือเปลี่ยนแทนคำสั่งเดิม ที่มีอยูมากกว่าครับท่านเข้ม ไม่น่าจะเป็นการ run คำสั่งที่หน้า SQL Query ผลจึงได้ออกมาแบบนั้นครับ
ถ้าแบบนั้นก็ต้องเอา as ที่เป็นภาษาไทยออก หรือเปลี่ยนเป็นภาษาอังกฤษเอาครับ ... :D ....
-
ลองดูแล้วแต่ข้อมูลออกมาไม่ครบ
ตามนี้ครับ
ลำดับที่ วันที่ PID เลขบัตร HN ชื่อ-สกุล อายุ(ปี) สิทธิ จำนวน ผล lab
1 ว่าง ว่าง ว่าง 000001243 ว่าง ว่าง 01-โรคเบาหวาน E10-E11 ว่าง 8.4
2 ว่าง ว่าง ว่าง 000000240 ว่าง ว่าง 01-โรคเบาหวาน E10-E11 ว่าง 7.4
3 ว่าง ว่าง ว่าง 000004230 ว่าง ว่าง 01-โรคเบาหวาน E10-E11 ว่าง 5.4
4 ว่าง ว่าง ว่าง 000001043 ว่าง ว่าง 01-โรคเบาหวาน E10-E11 ว่าง 6.2
5 ว่าง ว่าง ว่าง 000001125 ว่าง ว่าง 01-โรคเบาหวาน E10-E11 ว่าง 6.3
6 ว่าง ว่าง ว่าง 000000243 ว่าง ว่าง 01-โรคเบาหวาน E10-E11 ว่าง 7.0
ฐานจริง..หรือ localhost demo
-
สงสัย คำเต็ม เลขบัตรประจำตัวประชาชน...อิ..อิ
-
ใช้ฐานข้อมูลจริงครับ...ทำตามนี้
copy คำสั่งแล้วไปใส่ใน SQL ที่ Report Desingner กด Next แล้วเลือก Save Report
ไม่ทราบว่าถูกไหมครับ...มือใหม่ครับ...
-
ใช้ฐานข้อมูลจริงครับ...ทำตามนี้
copy คำสั่งแล้วไปใส่ใน SQL ที่ Report Desingner กด Next แล้วเลือก Save Report
ไม่ทราบว่าถูกไหมครับ...มือใหม่ครับ...
.... ถ้าจะใช้เป็นคำสั่งในตัวรายงาน ก็ใช้เป็น
select v.vstdate,p.cid,p.hn,concat(p.pname,p.fname,' ',p.lname) as pt_name,
v.age_y,p2.name as pttype_name,l2.lab_order_result
from lab_head l1
left outer join vn_stat v on v.vn = l1.vn
left outer join patient p on p.hn = l1.hn
left outer join lab_order l2 on l2.lab_order_number = l1.lab_order_number
left outer join pttype p2 on p2.pttype = v.pttype
where v.vstdate between '2010-12-01' and '2010-12-31'
and l2.lab_items_code = '37'
อย่าลืมเปลี่ยนตรง lab_items_code(สีแดง) เป็นรหัสของ HB A1C ด้วยนะครับ
อ้อ แล้วก็อย่าลืมไปเลือกข้อมูลที่เอามาวางเพิ่อแสดงผลในหน้ารายงานใหม่ด้วยนะครับ ... :D ....