BMS-HOSxP Community
HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: navyNP ที่ กันยายน 06, 2006, 22:15:15 PM
-
ผมสังเกตุเห็นว่า เลข XN ในตาราง xrayxn(น่าจะถูกต้อง) กับ XN ในตาราง xray_report ไม่ตรงกันครับ(เลขเดียวกันแต่ผู้ป่วยคนละคนกัน hn คนละเลขกัน) ผลกระทบคือในการออกแบบ xray report form(ตามตัวอย่างที่แนบ) ทำให้การรายงานผลการอ่านฟิล์มกับใบรายงานไม่ตรงกัน คือในโปรแกรมชื่อหนึ่งพอพิมพ์ใบรายงานผลออกมากลับเป็นชื่ออีกคนหนึ่ง รบกวนตรวจสอบให้หน่อยครับ
-
ลืมแนบไฟล์ครับ
-
ตกลงใครจะตอบให้ผมได้ไหมว่าผิดที่ form หรือที่ ตาราง ครับ ขอความกรุณาด้วยครับต้องรีบใช้ครับ
-
ช่วยตอบครับ :เลขที่ xn ใน Xrayxn คือ เลขที XN จริงที่จะนำไปออกเลขตามซองฟิล์มครับ ส่วนใน xn ของ xray_report เป็นเพียงลำดับที่การสั่งครับไม่ได้มีส่วนเกี่ยวข้องกัน ดังนั้นถ้าจะใช้เลขที่จริง ๆ ของ XN ใช้จาก Xrayxn ครับ
-
ขอคุณครับท่านโนบีตะ ตกลงผิดที่ form ใช่ไหมครับมันถึงพิมพ์ออกมาผิดคน(ไปดึงเอา xn ในตาราง xray_report แทนที่จะไปดึงในตาราง xrayxn มา) ใครแก้เป็น รบกวนแก้ไขให้ด้วยครับ จำเป็นต้องใช้จริงๆ ครับ ทำเองก็ไม่ได้ซักที
-
select x.*,concat(p.pname,p.fname,' ',p.lname) as ptname ,r.xn as real_xn,i.xray_items_name,
v.age_y,xh.doctor_list,xh.department,d.name as doctor, w.name as ward ,pr.main_regiment ,pr.sub_regiment
from xray_report x
left outer join xray_items i on i.xray_items_code=x.xray_items_code
left outer join vn_stat v on v.vn=x.vn
left outer join an_stat a on v.vn=a.vn
left outer join ward w on a.ward=w.ward
left outer join xray_head xh on v.vn=xh.vn
left outer join doctor d on x.doctor=d.code
left outer join patient p on p.hn=x.hn
left outer join patient_regiment pr on p.hn=pr.hn
left outer join xrayxn r on r.hn=x.hn and r.regdate between '2006-03-01' and '2006-05-31'
where x.xn='4541'
-
ใครมีฟอร์ม xray_report_1 ที่ใช้งานได้ปกติ ขอด้วยครับ ผมลอง D/L จาก report browser มาใช้งานแล้ว ปรากฏว่ายังพิมพ์ออกมาผิดคนอยู่ ไม่ทราบเกิดจากอะไร รบกวนด้วยครับ :'(
-
ช่วยส่งฟอร์มที่ผิดเป็น cds มาด้วยครับ
-
อยู่ใน #1 ครับ อ.อ๊อด
-
ส่งให้ทดสอบครับว่าใช้แบบนี้หรือเปล่า
-
ขอขอบคุณ อ.อ๊อดมากครับ ผมได้ทดสอบแล้วได้ผลดังนี้
1.สั่งพิมพ์ใน report designer ออกครับแต่ไม่มีข้อมูล วันที่(report_date) และแพทย์ผู้ตรวจ(รายชื่อแพทย์ผู้สั่ง)
2.ในระบบงานห้อง X-ray พอลงรายงานผล บันทึกแล้ว ไม่พิมพ์รายงานออกมา(มีการสั่งงานไปที่เครื่องพิมพ์ แล้วหายไป แต่ไม่พิมพ์) ก็เลยไม่ทราบว่ารายงานจะออกมาตรงคนหรือเปล่า
3.ข้อสงสัย คำสั่ง join บรรทัดสุดท้าย ทำไมต้องมีช่วงวันที่ด้วยครับ
left outer join xrayxn r on r.hn=x.hn and r.regdate between '2006-03-01' and '2006-05-31'
รบกวนหน่อยครับ จนปัญญาจริงๆ ที่จะแก้ไขปัญหาด้วยตนเองครับ :'(
-
น่าจะแบบนี้นะครับ ลองใช้ดูครับ
select x.*,concat(p.pname,p.fname,' ',p.lname) as ptname ,r.xn as real_xn,i.xray_items_name,
v.age_y,xh.doctor_list,xh.department,d.name as doctor, w.name as ward ,pr.main_regiment ,pr.sub_regiment
from xray_report x
left outer join xray_items i on i.xray_items_code=x.xray_items_code
left outer join vn_stat v on v.vn=x.vn
left outer join an_stat a on v.vn=a.vn
left outer join ward w on a.ward=w.ward
left outer join xray_head xh on v.vn=xh.vn
left outer join doctor d on x.doctor=d.code
left outer join patient p on p.hn=x.hn
left outer join patient_regiment pr on p.hn=pr.hn
left outer join xrayxn r on r.hn=x.hn
where x.xn='560' and r.regdate between '2006-01-01' and '2006-09-31'
-
ขอบคุณ คุณอาทิตย์มากเลยครับ มารายงานผลการทดสอบให้ทราบ
1.พิมพ์ออกแล้วครับ แต่เป็นคนละคนกัน คือ ตั้งค่า where x.xn = 4915(เป็น xn ตามตารางxray_report ส่วน xn จริงคือ 315) ผลที่ได้คือ เมื่อ preview ใน report designer ถูกต้องตรงคน พอเข้าระบบงาน xray ลองบันทึกรายงานผลของคนไข้คนนี้ พอสั่งพิมพ์ออกมากลายเป็น xn จริง = 2878 เป็นคนละคนกันเลย งงครับ
2.ส่วนที่มี and r.regdate between '2006-01-01' and '2006-09-31' ที่ต่อท้าย มีความหมายว่าอะไรครับ เราต้องไปกำหนดค่าพารามิเตอร์ตรงนี้ด้วยหรือเปล่า เพราะลองกำหนดแล้วมันจะไม่พิมพ์ครับ เลยตั้งค่าพารามิเตอร์ตำแหน่งเดียวที่ xn ครับ
-
อ.MN คร๊าบ ขอ script ที่มันถูกต้องและพิมพ์ออกมาตรงคนหน่อยครับ จนด้วยเกล้า หมดกระดาษไปครึ่งกล่องแล้ว ;D
-
อีกหน่อยครับ แล้วค่า regdate ต้องคอยเปลี่ยนเรื่อยๆ ให้ตรงเดือนหรือเปล่าครับ(ไม่รู้จริงๆ ขอคำชี้แนะด้วย)
-
พอจะเข้าใจแล้วครับ
1.อาจจะเป็นคนละฟอร์มกันนะครับคือฟอร์มที่เราแก้ไขใน report desiner กับฟอร์มที่ อ.กำหนดให้โปรแกรมดึงมาใช้อาจเป็นอีกชื่อหนึ่งลองตรวจสอบดูอีกทีครับ
2. and r.regdate between '2006-01-01' and '2006-09-31' เป็นการกำหนดช่วงที่เราต้องการดูมีหรือไม่มีก็ได้ขึ้นกับเงื่อนไข(ความต้องการของผู้ใช้ผลของรายงานครับ) จะลบออกก็ได้ครับ
-
คือฟอร์มอันเดียวกันแน่นอนครับ เพราะหน้าตาออกมาตรงตามที่เราออกแบบไว้จริง เพียงแต่พิมพ์ออกมาเป็นอีกคนหนึ่งเท่านั้นเองครับ(พอสั่งพิมพ์ในโปรแกรมไม่ตรงกับรายชื่อผู้ป่วยคนที่เราต้องการพิมพ์) ส่วนค่า regdate เคยลองลบออกแล้วไม่ได้ครับ คำสั่งไม่ run ครับ
-
ลองแบบนี้ดูนะครับ ถ้าต้องการ xn ที่พิมพ์ติดซอง
select r.xn,x.*,concat(p.pname,p.fname,' ',p.lname) as ptname ,r.xn as real_xn,i.xray_items_name,
v.age_y,xh.doctor_list,xh.department,d.name as doctor, w.name as ward ,pr.main_regiment ,pr.sub_regiment
from xray_report x
left outer join xray_items i on i.xray_items_code=x.xray_items_code
left outer join vn_stat v on v.vn=x.vn
left outer join an_stat a on v.vn=a.vn
left outer join ward w on a.ward=w.ward
left outer join xray_head xh on v.vn=xh.vn
left outer join doctor d on x.doctor=d.code
left outer join patient p on p.hn=x.hn
left outer join patient_regiment pr on p.hn=pr.hn
left outer join xrayxn r on r.hn=x.hn
where r.xn='225'
-
ต้องขอขอบคุณ คุณ nahos อีกครั้งหนึ่งครับ label ติดซองใช้ได้แล้วครับ ที่ยังขาดอยู่คือส่วนของใบรายงานผล(xray_report_1) ยังใช้งานไม่ได้ เนื่องจากพิมพ์ออกมาผิดคนครับ
-
รบกวน อ.ตรวจสอบให้หน่อยได้ไหมครับว่าทำไมถึงพิมพ์ออกมาผิดคนครับ
-
ลองคำสั่งนี้ดูมั๊ยครับ ตรงกับความต้องการหรือไม่?
select a.xn,concat(b.pname,b.fname,' ',b.lname) as name,d.xray_items_code,e.xray_items_name
from xrayxn a left join patient b on a.hn=b.hn
left join xray_head c on a.xn=c.pt_xn
left join xray_report d on c.vn=d.vn
left join xray_items e on d.xray_items_code=e.xray_items_code
where a.xn=4901973