ChronicFU ส่งออกแบบนี้ครับ
1. หา vn ในช่วงเวลาที่ส่งออกข้อมูล
GlobalVN := getsqlsubquerydata('select vn from ovst where vstdate between "' +
gds1 + '" and "' + gds2 + '" ' + ' ');
2. กรองเฉพาะ vn ที่มี diagtype 1
select vn from ovstdiag where vn in ('+
GlobalVN+') and diagtype="1"');
3. กรอง vn ที่มีในตาราง ovst_seq
GlobalVN:=getsqlsubquerydata('select vn from ovst_seq where vn in ('+
GlobalVN+') ');
4. กรองครั้งสุดท้าย กับตาราง clinic_visit / clinicmember
GlobalVN:=getsqlsubquerydata('select distinct(o.vn) as vn from ovst o,clinicmember c1,clinic c2 ,clinic_visit c3 '+
' where o.vn in ('+GlobalVN+') and o.vn = c3.vn and c2.clinic = c3.clinic and o.hn = c1.hn and c1.clinic = c2.clinic and c2.chronic="Y" and (c2.no_export="N" or c2.no_export="" or c2.no_export is null)');
5. คำสั่งหลักสุดท้าย
zq1.sql.text :=
'select vns.count_in_month,o1.vn,ov.doctor,pt.cid,o2.seq_id,o2.nhso_seq_id,o2.pcu_person_id,o2.update_datetime,c1.* ,o3.bw ,o3.height,o3.waist,o3.vstdate,o3.bps,o3.bpd '
+ ' from ovst o1 '+
' left outer join clinicmember_cormobidity_screen c1 on c1.vn = o1.vn '+
' left outer join ovst_seq o2 on o2.vn = o1.vn '+
' left outer join ovst ov on ov.vn = o2.vn '+
' left outer join opdscreen o3 on o3.vn = o1.vn '+
' left outer join patient pt on pt.hn = o1.hn ' +
' left outer join vn_stat vns on vns.vn = o1.vn '+
' where o1.vn in (' + GlobalVN + ') ';