โปรแกรมบัญชีเกณพ์คงค้าง รพ.สต. สสจ.สุรินทร์ รายงานผู้บริหารด้านการเงิน รพ.สต.

ทดสอบรายงานเบาหวานความดันส่งสสจครับ


DateTime : 2010-08-06 16:50:24
Post By : chinaga
IP Address :

ทดสอบรายงานเบาหวานความดันส่งสสจครับ

ในส่วนของ ผลLab ให้เปลี่ยน code ของ lab ที่ตาราง  lab_items_code="92"

ส่งออกเป็น excel จะขาดรายงานผล lab ครับ


Message !!

หากต้องการตอบกระทู้ Webboard กรุณาเข้าใช้ระบบก่อนนะค่ะ..


กระทู้ตอบกลับ

อีกที


Post โดย :  chinaga Date: 2010-08-06 16:52:13 ip:

รายงานออกไม่ครบครับ ตรงรายการแล็บบางตัวยังไม่ได้ดึงขึ้นมาแสดงเลยครับ


Post โดย :  x industry Date: 2010-08-07 18:12:36 ip:

รายงานเวอร์ชั่นล่าสุดอุ๋ยไม่ใช่เวอร์ชั่นอัพเดตเมื่อไหร่จะคลอดครับพี่

ยังรออย่างมีความหวังครับ  รบกวนด้วยครับพี่


Post โดย :  wauy Date: 2010-08-10 12:27:18 ip:

รอเหมือนกันครับ  พี่ชิน  ให้กำลังใจครับ


Post โดย :  kroong Date: 2010-08-10 15:31:16 ip:

 select concat(hospcode.hosptype,hospcode.name ) as Hname ,  sys_var.sys_value as Hcode,
cm.hn ,pt.cid,pt.sex,concat(mid(pt.birthday,9,2),"/",mid(pt.birthday,6,2),"/",year(pt.birthday)+543 ) as Birthday,
pt.addrpart ,pt.moopart, pt.tmbpart ,pt.amppart , pt.chwpart,
concat(mid(cm.regdate ,9,2),"/",mid(cm.regdate ,6,2),"/",year(cm.regdate )+543 ) as register,pdx.icd10, "-" as type,
lo1.lab_order_result as "HbA1c",concat(mid(lh.order_date ,9,2),"/",mid(lh.order_date ,6,2),"/",year(lh.order_date )+543 ) as order1 ,
lo2.lab_order_result as "LDL", concat(mid(lh.order_date ,9,2),"/",mid(lh.order_date ,6,2),"/",year(lh.order_date )+543 ) as order2,
lo3.lab_order_result as "MicroAlbumin", concat(mid(lh.order_date ,9,2),"/",mid(lh.order_date ,6,2),"/",year(lh.order_date )+543 ) as order3,
concat(round(ocr.bps),"/",round(ocr.bpd)) as "BP" ,concat(mid(ocr.vstdate ,9,2),"/",mid(ocr.vstdate ,6,2),"/",year(ocr.vstdate  )+543 ) as order4  ,
"-" as eye_screen,"-"as foot_screen,"-" as Refer_SO
from sys_var join hospcode on hospcode.hospcode=sys_var.sys_value ,
clinicmember cm
left outer join clinic_persist_icd pdx on pdx.hn=cm.hn and pdx.clinic="001"  and  dxtype="1"
left outer join patient pt on cm.hn=pt.hn
left outer join lab_head  lh on lh.hn=cm.hn  and  lh.lab_order_number in (select distinct lab_order_number from lab_order where lab_items_code in("185","160","000"))
left outer join opdscreen ocr on ocr.vn=lh.vn
left outer join lab_order lo1 on lo1.lab_order_number=lh.lab_order_number  and  lo1.lab_items_code="160"
left outer join lab_order lo2 on lo2.lab_order_number=lh.lab_order_number  and  lo2.lab_items_code="185"
left outer join lab_order lo3 on lo3.lab_order_number=lh.lab_order_number  and  lo3.lab_items_code="199"
 where   cm.clinic="001"   and sys_var.sys_name="PCU_MAIN_HOSPCODE"
order by  cm.hn 

ลองเอาไปเช็คดูก่อนครับ  . เดียววันนี้จะทำตัวรายงานครับ

 


Post โดย :  dogmike Date: 2010-08-11 08:30:24 ip:

ถ้าส่งออก Excel จะเป็นรายการสิทธิจะต้องปริ้นเป็นไฟล์เลือกเลือกไฟล์ เป็นExcel แทนครับ (ขออภัยในความไม่สะดวก)


Post โดย :  dogmike Date: 2010-08-12 00:27:35 ip:

 ตำสั่ง ความดันครับ ไม่รู้ว่าที่อื่นจะดึงได้หรือป่าว ลองเอาทดสอบ ออกไม่ออกบกด้วยนะครับจะเอาไปทำรายงานต่อ  

select concat(hospcode.hosptype,hospcode.name ) as Hname ,  sys_var.sys_value as Hcode,
cm.hn ,pt.cid,pt.sex,concat(mid(pt.birthday,9,2),"/",mid(pt.birthday,6,2),"/",year(pt.birthday)+543 ) as Birthday,
pt.addrpart ,pt.moopart, pt.tmbpart ,pt.amppart , pt.chwpart,
concat(mid(cm.regdate ,9,2),"/",mid(cm.regdate ,6,2),"/",year(cm.regdate )+543 ) as register,pdx.icd10, if(cm.new_case="Y","1","0") as newcase,
if(lo1.lab_items_code <> null,"1","0")as "Urinalysis",if(lo1.lab_items_code <> null,concat(mid(lh.order_date ,9,2),"/",mid(lh.order_date ,6,2),"/",year(lh.order_date )+543 ),"")as order1  ,
concat(round(ocr.bps),"/",round(ocr.bpd)) as "BP" ,concat(mid(ocr.vstdate ,9,2),"/",mid(ocr.vstdate ,6,2),"/",year(ocr.vstdate  )+543 ) as order2  ,
lo2.lab_order_result as "LDL", concat(mid(lh.order_date ,9,2),"/",mid(lh.order_date ,6,2),"/",year(lh.order_date )+543 ) as order3,
"0" as eye_screen,"0"as foot_screen,"0" as Refer_SO
from sys_var join hospcode on hospcode.hospcode=sys_var.sys_value ,
clinicmember cm
left outer join clinic_persist_icd pdx on pdx.hn=cm.hn and pdx.clinic="002"  and  dxtype="1"
left outer join patient pt on cm.hn=pt.hn
left outer join lab_head  lh on lh.hn=cm.hn  and  lh.order_date between "2009-10-01" and "2010-10-30" and
(lh.lab_order_number in (select distinct lab_order_number from lab_order where lab_items_code in("185")) or lh.form_name  like "%Urinalysis%" )
left outer join opdscreen ocr on ocr.vn=lh.vn
left outer join lab_order lo1 on lo1.lab_order_number=lh.lab_order_number  and  lo1.lab_items_code in ( select lab_items_code from lab_form  where form_name like "%Urinalysis%" )
left outer join lab_order lo2 on lo2.lab_order_number=lh.lab_order_number  and  lo2.lab_items_code="185"
 where   cm.clinic="002"   and sys_var.sys_name="PCU_MAIN_HOSPCODE"
order by  cm.hn


Post โดย :  dogmike Date: 2010-08-12 01:08:56 ip:

ของผมไม่ออกเลยครับท่านอื่นๆเป็นผลอย่างไรบ้างครับ


Post โดย :  chinaga Date: 2010-08-12 09:03:58 ip:

ถ้าใครรู้ sql รู้ datadic เห็นแบบนี้ยิ้มเลยเอาไปรันดู   แต่ขอโทษแร็คคอร์ดเพิ่มขึ้นทวีคูณ = ช้ามากมาย   

   เปลี่ยนมาเป็นsimpleง่ายง่ายจะดีกว่าไหม  select * from clinicmember  แล้วใช้ variable ดึงรายการแล็บ(จะเอาแล็บกี่ตัวก็ได้)  =  ง่าย+เร็ว

แล้วส่งExcel ล่ะ

ถ้าจะส่งออกเป็น Excel ให้ print to file เอา..มีให้เลือกเวลาสั่ง print

คลิ๊กปุ่ม print ใน print preview นะ

ขึ้น print Dialog มา เลือก print to file เลือก Type เป็น Excel File ลองดู


Post โดย :  x industry Date: 2010-08-12 09:57:10 ip:

พี่ x industry ช่วยโพสต์คำสั่งให้ดูหน่อยครับ....แห่ะ ๆ ๆ ๆ....ผมเห็นแนวคิดดีแต่ยังมองไม่ออกว่าพี่คิดออกหรือยังว่าจะดึงข้อมูลมายังไงครับ


Post โดย :  smakui Date: 2010-08-12 23:50:46 ip:

  งั้นเอาของเขามาเล่าใหม่ 5555   เอาsqlดอกไม้ มาปับนิดหน่อย
select concat(hospcode.hosptype,hospcode.name ) as Hname ,  sys_var.sys_value as Hcode,
cm.hn ,pt.cid,pt.sex,concat(mid(pt.birthday,9,2),"/",mid(pt.birthday,6,2),"/",year(pt.birthday)+543 ) as Birthday,
pt.addrpart ,pt.moopart, pt.tmbpart ,pt.amppart , pt.chwpart,
concat(mid(cm.regdate ,9,2),"/",mid(cm.regdate ,6,2),"/",year(cm.regdate )+543 ) as register,pdx.icd10, if(cm.new_case="Y","1","0") as newcase  ,
if(lh.form_name<>"","1","0") as Urien ,concat(mid(lh.order_date,9,2),"/",mid(lh.order_date,6,2),"/",year(lh.order_date)+543 )as order_date1,
concat(round(ocr.bps),"/",round(ocr.bpd))as BP ,concat(mid(ocr.vstdate,9,2),"/",mid(ocr.vstdate,6,2),"/",year(ocr.vstdate)+543 ) as order_date2,
 lo2.lab_order_result,concat(mid(lh2.order_date,9,2),"/",mid(lh2.order_date,6,2),"/",year(lh2.order_date)+543 ) as order_date3 ,
 "0" as eye_screen,"0"as Refer
from sys_var join hospcode on hospcode.hospcode=sys_var.sys_value ,
clinicmember cm
left outer join clinic_persist_icd pdx on pdx.hn=cm.hn and pdx.clinic="002"  and  dxtype="1"
left outer join patient pt on cm.hn=pt.hn
left outer join lab_head lh on lh.hn=cm.hn and lh.form_name like "%urin%alysis%"
left outer join opdscreen ocr on ocr.vn=lh.vn
left outer join lab_head lh2 on lh2.hn=cm.hn
     and lh2.lab_order_number in (select lab_head.lab_order_number from lab_head join lab_order on lab_head.lab_order_number =lab_order.lab_order_number and lab_order.lab_items_code ="160" )
     join  lab_order lo2 on lo2.lab_order_number=lh2.lab_order_number and  lo2.lab_items_code ="160"
where   cm.clinic="002"   and sys_var.sys_name="PCU_MAIN_HOSPCODE"
group by cm.hn
order by  cm.hn


Post โดย :  x industry Date: 2010-08-13 00:23:09 ip:

ไม่ออกเลยครับ  ช่วยแนะนำหน่อย


Post โดย :  kroong Date: 2010-08-13 10:42:24 ip:

 งั้นเอาของเขามาเล่าใหม่ 5555   เอาsqlดอกไม้ มาปับนิดหน่อย
select concat(hospcode.hosptype,hospcode.name ) as Hname ,  sys_var.sys_value as Hcode,
cm.hn ,pt.cid,pt.sex,concat(mid(pt.birthday,9,2),"/",mid(pt.birthday,6,2),"/",year(pt.birthday)+543 ) as Birthday,
pt.addrpart ,pt.moopart, pt.tmbpart ,pt.amppart , pt.chwpart,
concat(mid(cm.regdate ,9,2),"/",mid(cm.regdate ,6,2),"/",year(cm.regdate )+543 ) as register,pdx.icd10, if(cm.new_case="Y","1","0") as newcase  ,
if(lh.form_name<>"","1","0") as Urien ,concat(mid(lh.order_date,9,2),"/",mid(lh.order_date,6,2),"/",year(lh.order_date)+543 )as order_date1,
concat(round(ocr.bps),"/",round(ocr.bpd))as BP ,concat(mid(ocr.vstdate,9,2),"/",mid(ocr.vstdate,6,2),"/",year(ocr.vstdate)+543 ) as order_date2,
 lo2.lab_order_result,concat(mid(lh2.order_date,9,2),"/",mid(lh2.order_date,6,2),"/",year(lh2.order_date)+543 ) as order_date3 ,
 "0" as eye_screen,"0"as Refer
from sys_var join hospcode on hospcode.hospcode=sys_var.sys_value ,
clinicmember cm
left outer join clinic_persist_icd pdx on pdx.hn=cm.hn and pdx.clinic="002"  and  dxtype="1"
left outer join patient pt on cm.hn=pt.hn
left outer join lab_head lh on lh.hn=cm.hn and lh.form_name like "%urin%alysis%"
left outer join opdscreen ocr on ocr.vn=lh.vn
left outer join lab_head lh2 on lh2.hn=cm.hn
     and lh2.lab_order_number in (select lab_head.lab_order_number from lab_head join lab_order on lab_head.lab_order_number =lab_order.lab_order_number and lab_order.lab_items_code ="160" )
     join  lab_order lo2 on lo2.lab_order_number=lh2.lab_order_number and  lo2.lab_items_code ="160"
where   cm.clinic="002"   and sys_var.sys_name="PCU_MAIN_HOSPCODE"
group by cm.hn
order by  cm.hn

อย่าลืมเปลี่ยนแล็บตรงสีแดง


Post โดย :  x industry Date: 2010-08-13 20:11:20 ip:

แก้ใขคำสั่งเก่า ที่ยังไม่ครอบคลุมทำให้ออกไม่หมด ครับ คำสั่งดึงข้อมูลเบาหวาน
160 ให้เปลี่ยนเป็นแล็บ HBA1C   185 ให้เปลี่ยนเป็น แล็บ LDL    190 ให้เปลี่ยนเป็น แล็บ  MicroAlbumine    แล้วเอาไปวางตรงสายฟ้าส่งออกExcel
รัน  
select q1.Hname,q1.Hcode,q1.cid,q1.sex ,q1.Birthday ,q1.addrpart ,q1.moopart, q1.tmbpart ,q1.amppart , q1.chwpart,q1.register ,
q1.icd10,q1.type ,q2.lab_order_result,q2.order_date,q3.lab_order_result,q3.order_date,q4.lab_order_result,q4.order_date,q1.bp,q1.vstdate,q1.eye,q1.foot,q1.refer

from (select  concat(hospcode.hosptype,hospcode.name ) as Hname ,  sys_var.sys_value as Hcode,
cm.hn ,pt.cid,pt.sex,concat(mid(pt.birthday,9,2),"/",mid(pt.birthday,6,2),"/",year(pt.birthday)+543 ) as Birthday,
pt.addrpart ,pt.moopart, pt.tmbpart ,pt.amppart , pt.chwpart,
concat(mid(cm.regdate ,9,2),"/",mid(cm.regdate ,6,2),"/",year(cm.regdate )+543 ) as register,pdx.icd10,if(cm.new_case="Y","1","0")as type ,
concat(round(ocr.bps),"/",round(ocr.bpd)) as bp ,ocr.vstdate ,"0"as eye,"0"as foot,"0"as refer
from sys_var join hospcode on hospcode.hospcode=sys_var.sys_value ,clinicmember  cm
left outer join clinic_persist_icd pdx on pdx.hn=cm.hn and pdx.clinic="001"  and  dxtype="1"
left outer join patient pt on pt.hn=cm.hn
left outer join opdscreen ocr on ocr.hn=cm.hn  and vn=(select max(vn) from opdscreen where opdscreen.hn=cm.hn  and opdscreen.bpd <>"" and  opdscreen.bps <>"" )
where cm.clinic="001" group by cm.hn) as q1

left outer join  (select cm.hn  ,lo.lab_order_result,lh.order_date
from clinicmember  cm
left outer join lab_head lh on lh.hn=cm.hn  and lh.order_date=
(select max(lab_head.order_date) from lab_head join lab_order on lab_order.lab_order_number=lab_head.lab_order_number where lab_head.hn=cm.hn  and lab_order.lab_items_code="160" and lab_order.lab_order_result<>""   )
left outer join lab_order lo on  lo.lab_order_number=lh.lab_order_number and lo.lab_items_code="160"
where cm.clinic="001" and lo.lab_order_result<> "" group by  cm.hn) q2 on q2.hn=q1.hn

left outer join  (select cm.hn  ,lo.lab_order_result,lh.order_date
from clinicmember  cm
left outer join lab_head lh on lh.hn=cm.hn  and lh.order_date=
(select max(lab_head.order_date) from lab_head join lab_order on lab_order.lab_order_number=lab_head.lab_order_number where lab_head.hn=cm.hn  and lab_order.lab_items_code="185" and lab_order.lab_order_result<>""   )
left outer join lab_order lo on  lo.lab_order_number=lh.lab_order_number and lo.lab_items_code="185"
where cm.clinic="001" and lo.lab_order_result<> "" group by  cm.hn) q3 on q3.hn=q1.hn

left outer join  (select cm.hn  ,lo.lab_order_result,lh.order_date
from clinicmember  cm
left outer join lab_head lh on lh.hn=cm.hn  and lh.order_date=
(select max(lab_head.order_date) from lab_head join lab_order on lab_order.lab_order_number=lab_head.lab_order_number where lab_head.hn=cm.hn  and lab_order.lab_items_code="190" and lab_order.lab_order_result<>""   )
left outer join lab_order lo on  lo.lab_order_number=lh.lab_order_number and lo.lab_items_code="190"
where cm.clinic="001" and lo.lab_order_result<> "" group by  cm.hn) q4 on q4.hn=q1.hn

 


Post โดย :  dogmike Date: 2010-08-17 16:20:02 ip:

คำสั่งดึงคนไข้ความดัน  160 เปลี่ยนเป็น แล็บLDL ของโรงบาลท่านนะครับ
select q1.Hname,q1.Hcode,q1.hn,q1.cid,q1.sex ,q1.Birthday ,q1.addrpart ,q1.moopart, q1.tmbpart ,q1.amppart , q1.chwpart,q1.register ,
q1.icd10,q1.type ,q2.urine,q2.order_date,q1.bp,q1.vstdate,q4.lab_order_result,q4.order_date,q1.eye,q1.refer
from (select  concat(hospcode.hosptype,hospcode.name ) as Hname ,  sys_var.sys_value as Hcode,
cm.hn ,pt.cid,pt.sex,concat(mid(pt.birthday,9,2),"/",mid(pt.birthday,6,2),"/",year(pt.birthday)+543 ) as Birthday,
pt.addrpart ,pt.moopart, pt.tmbpart ,pt.amppart , pt.chwpart,
concat(mid(cm.regdate ,9,2),"/",mid(cm.regdate ,6,2),"/",year(cm.regdate )+543 ) as register,pdx.icd10,if(cm.new_case="Y","1","0")as type ,
concat(round(ocr.bps),"/",round(ocr.bpd)) as bp ,ocr.vstdate ,"0"as eye,"0"as foot,"0"as refer
from sys_var join hospcode on hospcode.hospcode=sys_var.sys_value ,clinicmember  cm
left outer join clinic_persist_icd pdx on pdx.hn=cm.hn and pdx.clinic="001"  and  dxtype="1"
left outer join patient pt on pt.hn=cm.hn
left outer join opdscreen ocr on ocr.hn=cm.hn  and vn=(select max(vn) from opdscreen where opdscreen.hn=cm.hn  and opdscreen.bpd <>"" and  opdscreen.bps <>"" )
where cm.clinic="001" group by cm.hn) as q1
left outer join  (select cm.hn  ,if(lo.lab_order_result<>"","1","0")as urine,lh.order_date from clinicmember  cm
  left outer join lab_head lh on lh.hn=cm.hn  and lh.order_date= (select max(lab_head.order_date) from lab_head
  join lab_order on lab_order.lab_order_number=lab_head.lab_order_number   where lab_head.hn=cm.hn
   and lab_order.lab_items_code="160" and lab_order.lab_order_result<>""   )
    left outer join lab_order lo on  lo.lab_order_number=lh.lab_order_number and lo.lab_items_code in(select i.lab_items_code
    from lab_items i join lab_items_group g on g.lab_items_group_code=i.lab_items_group
where g.lab_items_group_name like "%Urine%Analysis%")
where cm.clinic="001" and lo.lab_order_result<> ""
group by  cm.hn) q2 on q2.hn=q1.hn
left outer join  (select cm.hn  ,lo.lab_order_result,lh.order_date from clinicmember  cm
left outer join lab_head lh on lh.hn=cm.hn  and lh.order_date=
(select max(lab_head.order_date) from lab_head join lab_order on lab_order.lab_order_number=lab_head.lab_order_number
where lab_head.hn=cm.hn  and lab_order.lab_items_code="160" and lab_order.lab_order_result<>""   )
left outer join lab_order lo on  lo.lab_order_number=lh.lab_order_number and lo.lab_items_code="160"
where cm.clinic="001" and lo.lab_order_result<> "" group by  cm.hn) q4 on q4.hn=q1.hn
order by q1.hn

 


Post โดย :  dogmike Date: 2010-08-17 16:23:28 ip:

ทำไงรายงานนี้จะได้ส่งอะ  โปรแกรม Sur ก็ใช้ไม่เป็นอะ


Post โดย :  huwko Date: 2010-08-19 13:15:02 ip:

ไม่ออกนะคับลูกพี่ ทำไงดีหว้าจะได้ส่ง


Post โดย :  huwko Date: 2010-08-19 13:32:58 ip:

ลองเอาไปใช้ดูนะครับ ลูกพี่โก้ รายงานทะเบียน DM+HT ส่งสปสช.(เครดิต อ.เจมส์) ผมก็ไม่รู้ว่าเป็นแบบเดียวกับส่งสสจ.สุรินทร์หรือเปล่านะครับ   


Post โดย :  Tracker Date: 2010-08-19 13:49:12 ip:

เป็นคนละตัวกันครับ ของอ.เจมส์ น่าจะเป็นตัวที่ทาง สปสช.รวบรวมจากทางจังหวัด (ซึ่งใช้ร่วมกันกับ UEตรวจเท้ากับตรวจตาด้วย ถ้ารพ.ไม่ได้ใช้ก็ไม่ออก)

อ.โก้ ลองทวนดูคำสั่งใหม่ดีดี  อาจจะเป็นเพราะวางบักตัวเองก็ได้555555   


Post โดย :  dogmike Date: 2010-08-19 14:42:39 ip:

ไม่ออกหรอกเด้อพี่น้อง  เซ็งเลย


Post โดย :  huwko Date: 2010-08-19 15:18:24 ip:

ทามไม่ได้เลยครับอาจารย์


Post โดย :  ranja Date: 2010-08-19 18:45:46 ip:

มันใช้เวลาประมวลผลนานหน่อย แต่ออกแน่นอนถ้าเปลี่ยนถูกจุด ถ้าไม่อกยังงัย ช่วยprinscreen ออกมาดูหน่อยว่าเป็นยังงัย ฃ

หากError ก็ช่วยอธิบายว่าเป็นยังงัย ถ้าบอกว่าไม่ออกอย่างเดียวก็ไม่รู้จะช่วยแก้ยังงัย


Post โดย :  dogmike Date: 2010-08-19 21:02:13 ip:

มันไม่ออกก็คือไม่ออก  มันไม่มี ERROR ให้ดูหรอกอาจารย์เชต  แก้หมดแล้ว  หาวิธีให้ใหม่จิคับลูกพี่


Post โดย :  huwko Date: 2010-08-20 08:24:15 ip:

 


Post โดย :  huwko Date: 2010-08-20 08:28:36 ip:

ผู้ป่วยเบาหวานได้ทำการลงคลีนิคไหมครับ  ดูที่ตาราง clinicmember ถ้าไม่ได้ลงก็จบครับ


Post โดย :  dogmike Date: 2010-08-21 13:23:19 ip:

มีแล้วแต่ไม่ออก  งั้นช่วอยผมอีกรอบอยากทราบว่าจังหวัด เขาต้องการฟิวไหนบ้างเดียวผมเขียนเอง


Post โดย :  huwko Date: 2010-08-21 15:27:36 ip:

งั้น จัดไป


Post โดย :  dogmike Date: 2010-08-21 15:39:26 ip:

ยังไม่ได้ส่งเลยนี่


Post โดย :  huwko Date: 2010-08-25 13:12:20 ip:

ตอนนี้กำลังทดสอบแบบนี้กับน้องขวด ณ วังน้อย

select concat(day(cm.regdate),"/",month(cm.regdate),"/",year(cm.regdate)+543) as DateRec,
pt.cid as IDCard,cm.hn as HN, pt.pname as Title, pt.fname as NPatient, pt.lname as SPatient,
concat(day(pt.birthday),"/",month(pt.birthday),"/",year(pt.birthday)+543) as Birthday,
timestampdiff(year,pt.birthday,cm.regdate) as Age, pt.sex as Sex, os1.bw as Weight, os2.height as High,
concat(left(os3.bps,instr(os3.bps,".")-1),"/",left(os3.bpd,instr(os3.bpd,".")-1)) as Effect,
pt.addrpart as "No",pt.moopart as Moo,"-" as Lane,if((pt.road is null or pt.road = ""),"-",pt.road) as Road,
concat(pt.chwpart,pt.amppart,pt.tmbpart) as Address,

case
when pt.nationality in (99) then 1
when pt.nationality in (44) then 2
when pt.nationality in (48) then 3
when pt.nationality in (50) then 4
when pt.nationality in (57) then 5
when pt.nationality in (56) then 6
when pt.nationality in (46) then 7
else 8
end as Nation,

case
when pt.occupation in (001,501,503,504,505,506,509) then 1
when pt.occupation in (004,116,117,206,208,210) then 2
when pt.occupation in (002,137,209,216,402,403,404,405,406,702,703,704,705,706,707,708,709,711,712,713,714,715,716,
717,718,719,720,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824) then 3
when pt.occupation in (003,601,602,603,604,605) then 4
when pt.occupation in (014) then 5
when pt.occupation in (015) then 6
when pt.occupation in (007,202,203,204,205) then 7
when pt.occupation in (507) then 8
when pt.occupation in (009,110,111) then 9
when pt.occupation in (000,902) then 11
when pt.occupation in (012) then 12
when pt.occupation in (013,133) then 13
when pt.occupation in (090) then 14
when pt.occupation in (106,107,108,109,112,113,114,115) then 15
else 10
end as Occupation,

concat(day(d.death_date),"/",month(d.death_date),"/",year(d.death_date)+543) as Death,
if((d.death_date is not null or d.death_date <> ""),9,"") as Cause,
concat(day(cm.regdate),"/",month(cm.regdate),"/",year(cm.regdate)+543) as DateDiag,

case
when cm.clinic = 001 then 1
when cm.clinic = 002 then 2
when cm.clinic = 012 then 3
when cm.clinic = 011 then 4
when cm.clinic = 013 then 5
end as Chronic,

case
when cm.clinic = 001 then if((ccl.cormobidity is null or ccl.cormobidity = ""),1,mid(ccb.name,instr(ccb.name,"-")+1))
when cm.clinic = 002 then if((ccl.cormobidity is null or ccl.cormobidity = ""),9,mid(ccb.name,instr(ccb.name,"-")+1))
when cm.clinic = 012 then if((ccl.cormobidity is null or ccl.cormobidity = ""),18,mid(ccb.name,instr(ccb.name,"-")+1))
when cm.clinic = 011 then if((ccl.cormobidity is null or ccl.cormobidity = ""),19,mid(ccb.name,instr(ccb.name,"-")+1))
when cm.clinic = 013 then if((ccl.cormobidity is null or ccl.cormobidity = ""),27,mid(ccb.name,instr(ccb.name,"-")+1))
end as Code,

cl.icd10, i.name as Diagnosis, "จากระบบคลีนิคพิเศษ HOSxP ผ่าน Excel" as Remark


from clinicmember cm


left outer join patient pt on pt.hn = cm.hn
left outer join death d on d.hn = cm.hn
left outer join clinic_cormobidity_list ccl on ccl.hn = cm.hn and ccl.clinic = cm.clinic
left outer join clinic cl on cl.clinic = cm.clinic
left outer join opdscreen os1 on os1.hn = cm.hn
and os1.vn = (select max(vn) from opdscreen where hn = cm.hn and bw > 20)
left outer join opdscreen os2 on os2.hn = cm.hn
and os2.vn = (select max(vn) from opdscreen where hn = cm.hn and height > 20)
left outer join opdscreen os3 on os3.hn = cm.hn
and os3.vn = (select max(vn) from opdscreen where hn = cm.hn and vstdate <= cm.regdate and (bps > 20 or bpd > 20))
left outer join icd101 i on i.code = cl.icd10
left outer join clinic_cormobidity ccb on ccb.clinic = ccl.clinic and ccb.cormobidity = ccl.cormobidity


where cm.clinic in (001,002,011,012,013)

......................................................................................................................................................................................................................

ส่งออกเป็น Excel เอาไปนำเข้าใน Surveillance อีกทีครับ

ถ้ายังไม่เข้าใจยังไงก็เข้าไปดูคำอิบายได้ที่นี่

http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=16813.msg137236#new


Post โดย :  smakui Date: 2010-08-25 23:37:58 ip:

เก่งจังมีแต่คำสั่งแปลกที่ไม่เคยเห็นเลย   จะมีการสอนsqlแบบนี้บ้างไหมหน้อ


Post โดย :  admin_tranform Date: 2010-08-26 09:24:07 ip:

โอ้เยี่ยมมากเลยคับ ลูกพี่ สุดยอดจิงๆๆ 

 


Post โดย :  huwko Date: 2010-08-26 10:20:13 ip:

เรียนรู้และฝึกเขียนไปเรื่อย ๆ เดี๋ยวก็เก่งครับ ฝึกดูรูปแบบคำสั่ง รู้ตารางที่เก็บข้อมูลว่าจะดึงมาจากตรงไหนถึงจะถูกต้อง กว่าจะได้คำสั่งแบบนี้มานี่พอสมควรครับ อ้อ ยังมีอีกอย่างที่กำลังเขียนเพิ่มเติมเพื่อนำเข้า Surveill อีกรอบ ขอวิเคราะห์ข้อมูลที่ได้ออกมาก่อนถ้ายังไงจะโพสต์ให้นะครับ แต่อาจจะช้าหน่อยนึงเพราะช่วงนี้ต้องไปสอน PCU ที่ต่างจังหวัด


Post โดย :  smakui Date: 2010-08-26 15:39:43 ip:

น้องadmin_tranform  ถ้าอยากเก่งต้องสมัครเป็นสิทธิ์พี่smakui  นอกจากเขียนเก่งแล้ว ต้องเข้าใจฐานข้อมูลด้วย เยี่ยม!มากเลยพี่smakui


Post โดย :  x industry Date: 2010-08-26 20:58:20 ip:

อยากเขียนเป็นค่ะ จะได้ไม่ต้องผึ่งแอดมึนค่ะ  ถ้ามีอบรมขอสมัครคนแรกเลย


Post โดย :  pair Date: 2010-08-26 21:29:01 ip:

เห็นทีม surinadmin มีโครงการอบรมอยู่แล้วนี่ครับสมัครเข้าอบรมหรือยัง เอาให้ได้พื้นฐานก่อนแล้วปีหน้าไปอบรม Advance กับ BMS อีกรอบรับรองเขียนได้แน่ ฝึกบ่อย ๆ เดี๋ยวก็ได้เป็นอาจารย์ pair, อ. admin_tranform เทพแห่งรายงานเอง ฮิ ฮิ ฮิ ของแบบนี้มันอยู่ที่ใจและการขยันฝึกเขียนคำสั่งครับ เดี๋ยวค่ำ ๆ กลับมาถึงบ้านจะโพสต์ datadictionary ของ HOSxP บางส่วนที่มีให้จะได้เข้าใจเรื่องตารางและข้อมูลที่โปรแกรมเก็บไว้ที่ตารางต่าง ๆ พยายามจะเขียนฝังไว้ในโปรแกรมแต่ไม่เคยเสร็จสักที จะพยายามหาเวลาเขียนให้ครับ


Post โดย :  smakui Date: 2010-08-27 06:50:24 ip:

   เก่งจังเลยครับพี่smakui ต้องฝึกฝนวิทยายุทธ์นานไหมครับ กว่าจะเขียนรายงานได้ครับ เพราะเท่าที่ศึกษาจากหนังสือเองก็เข้าใจบ้างครับเล็กๆน้อยๆครับ ก็ได้แต่รอให้ทีม SURINADMIN จัดอบรมเร็วๆ ครับ จะได้รู้แนวทางการเขียนReport บ้างครับ   


Post โดย :  Tracker Date: 2010-08-27 15:40:11 ip: