วันเสาร์ที่ 5 พฤษภาคม พ.ศ. 2561

Query ที่ใช้ ส่งออก 43 แฟ้ม JHCIS เวอร์ชั่น 2.5.1-x.11


01->Village: SELECT v.pcucode hospcode,v.villcode vid,ifnull(ntraditional,'') ntraditional,ifnull(nmonk,'') nmonk,ifnull(nreligionleader,'') nreligionleader,ifnull(nbroadcast,'') nbroadcast,ifnull(nradio,'') nradio,ifnull(npchc,'') npchc,ifnull(nclinic,'') nclinic,ifnull(ndrugstore,'') ndrugstore,ifnull(nchildcenter,'') nchildcenter,ifnull(npschool,'') npschool,ifnull(nsschool,'') nsschool,ifnull(ntemple,'') ntemple,ifnull(nreligiousplace,'') nreligiousplace,ifnull(nmarket,'') nmarket,ifnull(nshop,'') nshop,ifnull(nfoodshop,'') nfoodshop,ifnull(nstall,'') nstall,ifnull(nraintank,'') nraintank,ifnull(nchickenfarm,'') nchickenfarm,ifnull(npigfarm,'') npigfarm,ifnull(wastewater,'') wastewater,ifnull(garbage,'') garbage,ifnull(nfactory,'') nfactory,ifnull(FORMAT(latitude,6),'') latitude,ifnull(FORMAT(longitude,6),'') longitude,ifnull(outdate,'') outdate,ifnull(numactually,'') numactually,'' risktype ,ifnull(numstateless,'') numstateless,ifnull(nexerciseclub,'') nexerciseclub,ifnull(nolderlyclub,'') nolderlyclub,ifnull(ndisableclub,'') ndisableclub,ifnull(nnumberoneclub,'') nnumberoneclub,REPLACE(REPLACE(REPLACE(IFNULL(v.dateupdate,CONCAT(CURDATE(),CURTIME())),'-',''),' ',''),':','') d_update  FROM village v  LEFT JOIN (   SELECT pcucode,villcode         ,SUM(Case WHEN businesstype IN('07','08') THEN 1 ELSE 0 END) as nclinic      ,SUM(Case WHEN businesstype ='05' THEN 1 ELSE 0 END) as ndrugstore      ,SUM(Case WHEN businesstype IN('04','40') THEN 1 ELSE 0 END) as nmarket         ,SUM(Case WHEN businesstype ='D6' THEN 1 ELSE 0 END) as nchickenfarm         ,SUM(Case WHEN businesstype ='D7' THEN 1 ELSE 0 END) as npigfarm        ,SUM(Case WHEN businesstype IN('10','11','12') THEN 1 ELSE 0 END) as nfactory        from villagebusiness GROUP BY villcode  ) AS v1 ON v.pcucode=v1.pcucode AND v.villcode=v1.villcode  LEFT JOIN (  SELECT pcucode ,villcode       ,SUM(Case WHEN circletype ='01' THEN 1 ELSE 0 END) as nexerciseclub          ,SUM(Case WHEN circletype ='05' THEN 1 ELSE 0 END) as nolderlyclub      ,SUM(Case WHEN circletype ='98' THEN 1 ELSE 0 END) as ndisableclub   ,SUM(Case WHEN circletype IN('10','11','12') THEN 1 ELSE 0 END) as nnumberoneclub   from villagecircle GROUP BY villcode  ) AS v2 ON v.pcucode=v2.pcucode AND v.villcode=v2.villcode  LEFT JOIN (    SELECT pcucode ,villcode        ,SUM(Case WHEN religion ='01' THEN 1 ELSE 0 END) as ntemple     ,SUM(Case WHEN religion <>'01' THEN 1 ELSE 0 END) as nreligiousplace         from villagetemple GROUP BY villcode  ) AS v3 ON v.pcucode=v3.pcucode AND v.villcode=v3.villcode  LEFT JOIN (   SELECT pcucode ,villcode        ,SUM(Case WHEN maxclass ='0' THEN 1 ELSE 0 END) as nchildcenter      ,SUM(Case WHEN maxclass IN('1','3') THEN 1 ELSE 0 END) as npschool      ,SUM(Case WHEN maxclass ='2' THEN 1 ELSE 0 END) as nsschool     from villageschool GROUP BY villcode  ) AS v4 ON v.pcucode=v4.pcucode AND v.villcode=v4.villcode  WHERE RIGHT(v.villcode,2)<>'00'  AND v.dateupdate between '2018-04-01' AND '2018-04-30'

02->home: SELECT pcucode hospcode,house.hcode hid,ifnull(hid,'') house_id ,case when housechar='1' then '1' when housechar='2' then '2' when housechar='3' then '4'      when housechar='4' then '3' when housechar='5' then '5' when housechar='x' then '9'      when housechar IS NULL then '8' else '8' end AS housetype ,'' roomno,'' condo ,ifnull(hno,'') house,'' soisub,'' soimain,ifnull(road,'') road,'' villaname ,SUBSTR(villcode,7,2) village,SUBSTR(villcode,5,2) tambon,SUBSTR(villcode,3,2) ampur,SUBSTR(villcode,1,2) changwat ,IFNULL(telephonehouse,'') telephone ,REPLACE(IFNULL(FORMAT(xgis,6),''),',','') latitude,REPLACE(IFNULL(FORMAT(ygis,6),''),',','') longitude,ifnull(nfam,'') nfamily ,if(area IS NULL,'1',if(area NOT IN('1','2'),'1',area)) locatype ,if(pidvola is null or trim(pidvola)='','',pidvola) vhvid ,if(house.pid is null or trim(house.pid),'',house.pid) headid ,if(toilet IS NULL OR toilet='2','9',if(toilet NOT IN('0','1','2'),'9',toilet)) toilet ,if(waterdrinkeno IS NULL OR waterdrinkeno='2','9',if(waterdrinkeno NOT IN('0','1','2'),'9',    waterdrinkeno)) water ,CASE WHEN waterdrink='11' THEN '1' WHEN waterdrink IN('21','22','23') THEN '2'       WHEN waterdrink IN('52','52') THEN '3' WHEN waterdrink IN('61','62') THEN '4'       WHEN waterdrink IN('31','32') THEN '6' WHEN waterdrink = '91' THEN '5'       ELSE '9' END watertype ,if(garbageerase IS NULL OR garbageerase NOT IN('1','2','3','4','9'),'9',garbageerase) garbage ,case WHEN housesanitation = '0' then '0' WHEN housesanitation = '1' then '1'       WHEN housesanitation = '2' then '9' else '1' END as housing ,if(houseendur IS NULL OR houseendur NOT IN('1','2','3'),'9',houseendur) durability ,if(houseclean IS NULL OR houseclean='2','9',if(houseclean NOT IN('0','1','2'),'9',houseclean)) cleanliness ,if(houseairflow IS NULL OR houseairflow='2','9',if(houseairflow NOT IN('0','1','2'),'9',houseairflow)) ventilation ,if(houselight IS NULL OR houselight='2','9',if(houselight NOT IN('0','1','2'),'9',houselight)) light ,if(waterassuage IS NULL OR waterassuage='2','9',if(waterassuage NOT IN('0','1','2'),'9',waterassuage)) watertm ,if(foodcook IS NULL OR foodcook='2','9',if(foodcook NOT IN('0','1','2'),'9',foodcook)) mfood ,if(controlinsetdisease IS NULL OR controlinsetdisease='2','9',if(controlinsetdisease NOT IN('0','1','2'),'9',controlinsetdisease)) bcontrol ,if(controlrat IS NULL OR controlrat='2','9',if(controlrat NOT IN('0','1','2'),'9',controlrat)) acontrol ,'' chemical ,'' outdate ,house.villcode villcode ,REPLACE(REPLACE(REPLACE(IFNULL(house.dateupdate,CONCAT(CURDATE(),CURTIME())),'-',''),' ',''),':','') d_update  FROM house  LEFT JOIN    (
  SELECT pcucodeperson,hcode ,COUNT(DISTINCT(ifnull(familyno,'1'))) nfam from person GROUP BY pcucodeperson,hcode       ) AS fam ON house.pcucode=fam.pcucodeperson AND house.hcode=fam.hcode  where house.dateupdate between '2018-04-01' AND '2018-04-30' AND (DATE(house.dateupdate) BETWEEN '2018-04-01' AND '2018-04-30')ORDER BY house.pcucode ASC, house.hid ASC

03->card: SELECT DISTINCT  person.pcucodeperson AS pcucode, person.pid, person.idcard AS cid, person.rightno AS insid,  IF(TRIM(person.datestart)='' OR person.datestart LIKE '0000-00-00%','',DATE_FORMAT(person.datestart,'%Y%m%d')) AS start,  IF(TRIM(person.dateexpire)='' OR person.dateexpire LIKE '0000-00-00%','',DATE_FORMAT(person.dateexpire,'%Y%m%d')) AS expire,  person.hosmain AS main, person.hossub AS sub,  IF(cright.mapright IS NOT NULL AND TRIM(cright.mapright)<>'',cright.mapright,IF(trim(person.rightcode)='01','4200','9100')) AS instype,  IF( TRIM(person.dateupdate)='' OR person.dateupdate LIKE '0000-00-00%','',DATE_FORMAT(person.dateupdate,'%Y%m%d%H%i%s') ) AS d_update ,'' instype2_old ,if(person.idcard is null or length(trim(person.idcard))<13,'',person.idcard) id FROM person  LEFT JOIN cright ON (person.rightcode=cright.rightcode) WHERE (person.rightcode IS NOT NULL AND TRIM(person.rightcode)<>'') AND person.pcucodeperson='04232' AND person.pid NOT IN (SELECT persondeath.pid FROM persondeath WHERE persondeath.pcucodeperson='04232')  AND (person.dateupdate >= '2010-01-01') AND (person.dateupdate >= '2010-01-01') AND ( (person.dateupdate BETWEEN '2018-04-01' AND '2018-04-30') ) ORDER BY person.pcucodeperson ASC, person.pid ASC

04->Women: SELECT   women.pcucodeperson AS pcucode, women.pid,IF(fptype NOT IN('1','2','3','4','5','6','7','8') OR fptype IS NULL,'9',fptype) fptype ,IF(IF(fptype NOT IN('1','2','3','4','5','6','7','8') OR fptype IS NULL,'9',fptype)='9',IF(reasonnofp IS NULL OR reasonnofp NOT IN('1','2','3'),'3',reasonnofp),'') reasonnofp,women.childalive,  IF(women.dateupdate IS NULL OR TRIM(women.dateupdate) = '' OR women.dateupdate LIKE '0000-00-00%'   ,IF(women.datesurvey IS NULL OR YEAR(women.datesurvey)='0000',DATE_FORMAT(NOW(),'%Y%m%d%H%i%s'),DATE_FORMAT(women.datesurvey,'%Y%m%d%H%i%s')),DATE_FORMAT(women.dateupdate,'%Y%m%d%H%i%s')) AS d_update  ,person.idcard as cid  ,if(totalson is null or trim(totalson)='',IF(women.childalive IS NULL OR TRIM(women.childalive)='','0',women.childalive),totalson) totalson  ,if(abortion is null or trim(abortion)='','0',abortion) abortion  ,if(stillbirth is null or trim(stillbirth)='','0',stillbirth) stillbirth  ,if(person.idcard is null or trim(person.idcard)='' or length(trim(person.idcard))<13,'',person.idcard) cid  FROM women  JOIN person ON (women.pcucodeperson = person.pcucodeperson AND women.pid = person.pid) WHERE person.marystatus IN ('2','f') AND person.sex = '2'  AND TRIM(women.pcucodeperson)<>'' AND women.pcucodeperson='04232'  AND (women.dateupdate >= '2010-01-01' OR women.datesurvey >= '2010-01-01') AND ( (date(women.dateupdate) BETWEEN '2018-04-01' AND '2018-04-30') OR (women.datesurvey BETWEEN '2018-04-01' AND '2018-04-30') ) ORDER BY women.pcucodeperson ASC, women.pid ASC

05->chronic:- SELECT DISTINCT  person.pcucodeperson AS pcucode, person.pid,IF(personchronic.datefirstdiag IS NULL OR TRIM(personchronic.datefirstdiag)='' OR personchronic.datefirstdiag LIKE '0000-00-00%','',DATE_FORMAT(personchronic.datefirstdiag,'%Y%m%d')) AS datedx ,UCase(REPLACE(cdisease.diseasecode,'.','')) AS chronic ,IF(personchronic.datedischart IS NULL OR TRIM(personchronic.datedischart)='' OR personchronic.datedischart LIKE '0000-00-00%','',DATE_FORMAT(personchronic.datedischart,'%Y%m%d')) AS datedis ,personchronic.typedischart AS typedis ,IF( personchronic.dateupdate IS NULL OR TRIM(personchronic.dateupdate)='' OR personchronic.dateupdate LIKE '0000-00-00%','',DATE_FORMAT(personchronic.dateupdate,'%Y%m%d%H%i%s') ) AS d_update  ,if(hospfirstdiag is null or trim(hospfirstdiag)='','',hospfirstdiag) hospfirstdiag  ,if(cup is null or trim(cup)='','',cup) cup ,if(person.idcard is null or length(trim(person.idcard))<13,'',person.idcard) cid  FROM personchronic  LEFT JOIN cdisease ON (personchronic.chroniccode=cdisease.diseasecode)  JOIN person ON (personchronic.pcucodeperson=person.pcucodeperson AND personchronic.pid=person.pid) WHERE typelive IN('0','1','3') AND personchronic.pcucodeperson='04232'  AND ((ucase(left(chroniccode,3)) between 'I60' AND 'I69') OR (ucase(left(chroniccode,3)) between 'I10' AND 'I15') OR (ucase(left(chroniccode,3)) = 'I64') OR (ucase(left(chroniccode,5)) = 'J44.9') OR (ucase(left(chroniccode,3)) between 'I20' AND 'I25') OR (ucase(left(chroniccode,3)) between 'E10' AND 'E14') OR (ucase(left(chroniccode,3)) between 'J45' AND 'J46') OR (ucase(left(chroniccode,3)) = 'J43') OR (ucase(left(chroniccode,3)) = 'E66') OR (ucase(left(chroniccode,3)) between 'C00' AND 'C97') OR (ucase(left(chroniccode,3)) between 'A15' AND 'A19') OR (ucase(left(chroniccode,3)) between 'B20' AND 'B24') OR (ucase(left(chroniccode,3)) = 'K70.3') OR (ucase(left(chroniccode,5)) = 'K71.7') OR (ucase(left(chroniccode,3)) = 'K74') OR (ucase(left(chroniccode,3)) = 'K73') OR (ucase(left(chroniccode,3)) = 'N18') OR (ucase(left(chroniccode,3)) between 'M15' AND 'M19') OR (ucase(left(chroniccode,3)) = 'M47') OR (ucase(left(chroniccode,3)) between 'M05' AND 'M06') ) AND (DATE(personchronic.dateupdate) >= '2010-01-01') AND ((personchronic.datefirstdiag BETWEEN '2018-04-01' AND '2018-04-30') OR (DATE(personchronic.dateupdate) BETWEEN '2018-04-01' AND '2018-04-30') ) ORDER BY person.pcucodeperson ASC, person.pid ASC

06->death: SELECT DISTINCT  person.pcucodeperson AS pcucode, person.pid, person.idcard AS cid  ,UCase(REPLACE(cdisease1.diseasecode,'.','')) AS cdeatha  ,UCase(REPLACE(cdisease2.diseasecode,'.','')) AS cdeathb  ,UCase(REPLACE(cdisease3.diseasecode,'.','')) AS cdeathc  ,UCase(REPLACE(cdisease4.diseasecode,'.','')) AS cdeathd  ,UCase(REPLACE(cdisease5.diseasecode,'.','')) AS odisease  ,UCase(REPLACE(cdisease6.diseasecode,'.','')) AS cdeath  ,IF(persondeath.deaddate IS NULL OR TRIM(persondeath.deaddate)='' OR persondeath.deaddate LIKE '0000-00-00%','',DATE_FORMAT(persondeath.deaddate,'%Y%m%d')) AS ddeath  ,IF(persondeath.deadplace IS NULL OR persondeath.deadplace <> '1','2','1') AS pdeath  ,IF(sex='1','4',IF((deliveryconcern = '1' OR deliveryconcern = '2'),deliveryconcern,'9')) as pregnancy , IF( persondeath.dateupdate IS NULL OR TRIM(persondeath.dateupdate)='' OR persondeath.dateupdate LIKE '0000-00-00%','',DATE_FORMAT(persondeath.dateupdate,'%Y%m%d%H%i%s') ) AS d_update ,IF(v.visitno IS NOT NULL,v.pcucode, IF(trim(deadplace) IS NULL OR trim(deadplace)<>'1','',IF(hospdeath IS NULL OR trim(deadplace)='','99999',hospdeath))) hospdeath ,v.visitno seq ,IFNULL(u.idcard,'') provider ,if(person.idcard is null or length(trim(person.idcard))<13,'',person.idcard) id  FROM persondeath  JOIN person ON (persondeath.pcucodeperson=person.pcucodeperson AND persondeath.pid=person.pid)  LEFT JOIN cdisease cdisease1 ON (persondeath.cdeatha=cdisease1.diseasecode)  LEFT JOIN cdisease cdisease2 ON (persondeath.cdeathb=cdisease2.diseasecode)  LEFT JOIN cdisease cdisease3 ON (persondeath.cdeathc=cdisease3.diseasecode)  LEFT JOIN cdisease cdisease4 ON (persondeath.cdeathd=cdisease4.diseasecode)  LEFT JOIN cdisease cdisease5 ON (persondeath.odisease=cdisease5.diseasecode)  LEFT JOIN cdisease cdisease6 ON (persondeath.deadcause=cdisease6.diseasecode)  left join visit v on persondeath.pcucodeperson=v.pcucodeperson and persondeath.pid=v.pid and persondeath.deaddate=v.visitdate  LEFT JOIN `user` u ON v.username = u.username  WHERE persondeath.pcucodeperson='04232'  AND (persondeath.dateupdate >= '2010-01-01') AND ( (persondeath.deaddate BETWEEN '2018-04-01' AND '2018-04-30') OR (DATE(persondeath.dateupdate) BETWEEN '2018-04-01' AND '2018-04-30') ) ORDER BY person.pcucodeperson ASC, person.pid ASC

07->service: SELECT DISTINCT  '00000' AS clinic,  trim(visit.pcucode) as pcucode, visit.pid,visit.pid as hn, visit.visitno AS seq,  IF(visit.visitdate IS NULL OR TRIM(visit.visitdate)='' OR visit.visitdate LIKE '0000-00-00%','',DATE_FORMAT(visit.visitdate,'%Y%m%d')) AS date_serv ,ifnull(visit.timestart,'') as time_serv, visit.incup AS locate,  visit.timeservice AS intime,  IF(LCase(visit.rightcode) LIKE 'wsdl%','',IF(cright.mapright IS NOT NULL AND TRIM(cright.mapright)<>'',cright.mapright,'9100')) AS instype,  visit.rightno AS insid,IF(lcase(visit.hosmain) LIKE 'wsdl%' OR visit.hosmain IS NULL,'',visit.hosmain) AS main,IF(lcase(visit.hossub) LIKE 'wsdl%' OR visit.hossub IS NULL,'',visit.hossub) hossub,if(receivepatient IS NOT NULL AND receivepatient <>'00','3','1') typein,  if(visit.receivepatient='00' or trim(visit.receivepatient)='','',visit.receivefromhos) AS refinhos, case when receivepatient in('01','05','99') then '1' when receivepatient ='04' then '2'       when receivepatient ='02' then '4' when receivepatient ='03' then '5'       else '' end AS referin ,if(symptoms is null or trim(symptoms)='','',REPLACE(REPLACE(symptoms,'\n',' '),'\r',' ')) symptoms,if(servicetype is null or servicetype not in('1','2'),'1',servicetype) service_type ,ifnull(temperature,'') temperature,IF(pressure2 IS NULL OR TRIM(pressure2)='',if(pressure is null,'',trim(left(pressure,locate('/',pressure)-1))),trim(left(pressure2,locate('/',pressure2)-1))) sbp,IF(pressure2 IS NULL OR TRIM(pressure2)='',if(pressure is null,'',trim(mid(pressure,locate('/',pressure)+1,length(pressure)-locate('/',pressure)))),trim(mid(pressure2,locate('/',pressure2)+1,length(pressure2)-locate('/',pressure2)))) dbp,ifnull(pulse,'') pr,ifnull(respri,'') rr, case when alivestatus='2' then '5' when alivestatus='3' then '4' when alivestatus='6' then '6'       when alivestatus='7' then '7' when alivestatus='8' then '8' ELSE '1' END AS typeout, if(visit.refer='00' or trim(visit.refer)='','',visit.refertohos) AS refouhos,  case when refer in('01','05','99') then '1' when refer ='04' then '2'       when refer in('02','06') then '4' when refer ='03' then '5'       else '' end AS referout,  IF(visit.money3 IS NOT NULL AND TRIM(visit.money3)<>'', REPLACE(FORMAT(visit.money3,2),',',''), FORMAT(0,2)) AS cost,  IF(visit.money1 IS NOT NULL AND TRIM(visit.money1)<>'', REPLACE(FORMAT(visit.money1,2),',',''), FORMAT(0,2)) AS price,  IF(visit.money2 IS NOT NULL AND TRIM(visit.money2)<>'', REPLACE(FORMAT(visit.money2,2),',',''), FORMAT(0,2)) AS pay ,IF(visit.moneynoclaim IS NOT NULL AND TRIM(visit.moneynoclaim)<>'', REPLACE(FORMAT(visit.moneynoclaim,2),',',''), FORMAT(0,2)) AS actualpay, IF( visit.dateupdate IS NULL OR TRIM(visit.dateupdate)='' OR visit.dateupdate LIKE '0000-00-00%',DATE_FORMAT(visit.visitdate,'%Y%m%d%H%i%s'),DATE_FORMAT(visit.dateupdate,'%Y%m%d%H%i%s') ) AS d_update ,p.idcard cid  FROM (select v.pcucodeperson,v.pcucode,v.pid,v.pid hn,v.visitno,v.visitdate,timestart,incup,timeservice             ,v.rightcode,v.rightno,IF(lcase(hosmain) LIKE 'wsdl%' OR hosmain IS NULL,'',hosmain) hosmain,IF(lcase(hossub) LIKE 'wsdl%' OR hossub IS NULL,'',hossub) hossub,receivepatient,receivefromhos,symptoms,servicetype,temperature             ,pressure,pressure2,pulse,respri,alivestatus,refertohos,refer,money3,money1,money2,moneynoclaim             ,v.dateupdate,flagservice        from visit v        LEFT JOIN (select pcucode,visitno from visitdrug d                        WHERE DATE(d.dateupdate) BETWEEN '2018-04-01' AND '2018-04-30' OR d.dateupdate IS NULL                        GROUP BY pcucode,visitno ) AS d        ON v.pcucode=d.pcucode and v.visitno=d.visitno        WHERE (v.visitdate BETWEEN '2018-04-01' AND '2018-04-30')              OR (DATE(v.dateupdate) BETWEEN '2018-04-01' AND '2018-04-30')  UNION        select v.pcucodeperson,v.pcucode,v.pid,v.pid hn,v.visitno,v.visitdate,timestart,incup,timeservice             ,v.rightcode,v.rightno,IF(lcase(hosmain) LIKE 'wsdl%' OR hosmain IS NULL,'',hosmain) hosmain,IF(lcase(hossub) LIKE 'wsdl%' OR hossub IS NULL,'',hossub) hossub,receivepatient,receivefromhos,symptoms,servicetype,temperature             ,pressure,pressure2,pulse,respri,alivestatus,refertohos,refer,money3,money1,money2,moneynoclaim             ,v.dateupdate,flagservice        from visit v        LEFT JOIN (select pcucode,visitno from visitdiag d                        WHERE DATE(d.dateupdate) BETWEEN '2018-04-01' AND '2018-04-30' OR d.dateupdate IS NULL                        GROUP BY pcucode,visitno ) AS d        ON v.pcucode=d.pcucode and v.visitno=d.visitno        WHERE (v.visitdate BETWEEN '2018-04-01' AND '2018-04-30')           OR (DATE(v.dateupdate) BETWEEN '2018-04-01' AND '2018-04-30')        ) AS visit  join person p on visit.pcucodeperson = p.pcucodeperson and visit.pid = p.pid  LEFT JOIN cright ON (visit.rightcode=cright.rightcode)  LEFT JOIN _tmpExportStd18ServicePttype ON (visit.pcucodeperson=_tmpExportStd18ServicePttype.pcucodeperson AND visit.pid=_tmpExportStd18ServicePttype.pid)  LEFT JOIN (SELECT pcucodeperson ,pid ,IF(deaddate IS NULL OR YEAR(deaddate)='0000','1915-01-01',deaddate) dd FROM persondeath pd ) pde ON visit.pcucodeperson=pde.pcucodeperson AND visit.pid=pde.pid  WHERE (visit.flagservice <>'99')  AND visit.pcucode='04232'  AND (pde.dd>=visitdate or pde.pid IS NULL)

08->newborncare:= SELECT vb.pcucodeperson hospcode,vb.pid,ifnull(vb.visitno,'') seq ,IF(vdeli.datedeliver IS NULL OR vdeli.datedeliver='0000-00-00','',REPLACE(vdeli.datedeliver,'-','')) bdate ,IF(vb.datecare IS NULL OR vb.datecare='0000-00-00','',REPLACE(vb.datecare,'-','')) bcare ,vb.pcucodeperson bcplace ,CASE WHEN babyhealth ='0' THEN '2' WHEN babyhealth ='1' THEN '1' ELSE '9' END bcareresult ,CASE WHEN food ='1' THEN '1' WHEN food ='2' THEN '2' WHEN food ='3' THEN '3'       WHEN food ='4' THEN '4' ELSE '1' END food ,IF(u.idcard IS NULL,'',u.idcard) provider ,REPLACE(REPLACE(REPLACE(IF(vb.dateupdate is null OR left(vb.dateupdate,2)='00',CONCAT(CURDATE(),CURTIME()),vb.dateupdate),'-',''),' ',''),':','') d_update  ,if(p.idcard is null or trim(p.idcard)='' or length(trim(p.idcard))<13,'',p.idcard) cid  from visitbabycare vb  LEFT JOIN visit v ON vb.pcucode=v.pcucode AND vb.visitNo=v.visitno  LEFT JOIN visitancdeliverchild vdc ON vb.pcucodeperson=vdc.pcucodechild AND vb.pid=vdc.pidchild  LEFT JOIN visitancdeliver vdeli ON vdc.pcucodeperson=vdeli.pcucodeperson AND vdc.pid=vdeli.pid AND vdc.pregno=vdeli.pregno  LEFT JOIN `user` u ON v.pcucode = u.pcucode AND v.username = u.username join person p on v.pcucodeperson=p.pcucodeperson and v.pid=p.pid  WHERE ((vb.datecare BETWEEN '2018-04-01' AND '2018-04-30')  OR (DATE(vb.dateupdate) BETWEEN '2018-04-01' AND '2018-04-30'))

09->prenatal:= SELECT vpc.pcucodeperson hospcode,vpc.pid pid,vpc.pregno gravida,IF(vpc.lmp IS NULL OR TRIM(vpc.lmp)='' OR vpc.lmp LIKE '0000-00-00%','',DATE_FORMAT(vpc.lmp,'%Y%m%d')) AS lmp,IF(vpc.edc IS NULL OR TRIM(vpc.edc)='' OR vpc.edc LIKE '0000-00-00%','',DATE_FORMAT(vpc.edc,'%Y%m%d')) AS edc,CASE WHEN vb.vdrl = '0' THEN '1' WHEN vb.vdrl IN('1','2','3') THEN '2' WHEN vb.vdrl = '9' THEN '3'       WHEN LCASE(vb.vdrl) = 'x' THEN '4' ELSE '9' END AS vdrl_result,CASE WHEN vb.hbag = '0' THEN '1' WHEN vb.hbag ='1' THEN '2' WHEN vb.hbag = '9' THEN '3'       WHEN LCASE(vb.hbag) = 'x' THEN '4' ELSE '9' END AS hb_result ,CASE WHEN vb.hiv = '0' THEN '1' WHEN vb.hiv ='1' THEN '2' WHEN vb.hiv = '9' THEN '3'       WHEN LCASE(vb.hiv) = 'x' THEN '4' ELSE '9' END AS hiv_result ,IF(lbf.datecheck IS NULL OR lbf.datecheck='0000-00-00','',REPLACE(lbf.datecheck,'-','')) date_hct ,IF(vb.hct IS NULL OR TRIM(vb.hct)='','',vb.hct) hct_result ,CASE WHEN vb.talas1 = '0' THEN '1' WHEN vb.talas1 ='1' THEN '2' WHEN vb.talas1 = '9' THEN '3'       WHEN LCASE(vb.talas1) = 'x' THEN '4' ELSE '9' END AS thalassemia ,REPLACE(REPLACE(REPLACE(IF(vpc.dateupdate is null OR left(vpc.dateupdate,2)='00',CONCAT(CURDATE(),CURTIME()),vpc.dateupdate),'-',''),' ',''),':','') d_update ,'' provider ,if(p.idcard is null or trim(p.idcard)='' or length(trim(p.idcard))<13,'',p.idcard) cid  FROM visitancpregnancy vpc   LEFT JOIN      (SELECT g.pcucodeperson ,g.pid ,pregno,MAX(vb.datecheck) datecheck        FROM visitancpregnancy g LEFT JOIN visitlabblood vb ON g.pcucodeperson=vb.pcucodeperson AND g.pid=vb.pid       WHERE (vb.datecheck  BETWEEN '2018-04-01' AND '2018-04-30' OR DATE(vb.dateupdate) BETWEEN '2018-04-01' AND '2018-04-30')         AND (DATEDIFF(vb.datecheck,lmp) < 280) AND vb.hct IS NOT  NULL AND TRIM(vb.hct)<>''       GROUP BY g.pcucodeperson ,g.pid ,pregno ORDER BY vb.datecheck DESC      ) as lbf  ON vpc.pcucodeperson=lbf.pcucodeperson AND vpc.pid=lbf.pid AND vpc.pregno=lbf.pregno  LEFT JOIN visitlabblood vb ON lbf.pcucodeperson=vb.pcucodeperson AND lbf.pid=vb.pid AND lbf.datecheck=vb.datecheck  join person p on vpc.pcucodeperson=p.pcucodeperson and vpc.pid=p.pid  WHERE (vpc.lmp BETWEEN '2018-04-01' AND '2018-04-30')     OR (DATE(vpc.dateupdate) BETWEEN '2018-04-01' AND '2018-04-30')     OR (lbf.datecheck BETWEEN '2018-04-01' AND '2018-04-30')

10->Labor:= SELECT vd.pcucodeperson hospcode,vd.pid,vd.pregno gravida ,IF(vp.lmp IS NULL OR TRIM(vp.lmp)='' OR vp.lmp LIKE '0000-00-00%','',DATE_FORMAT(vp.lmp,'%Y%m%d')) AS lmp,IF(vp.edc IS NULL OR TRIM(vp.edc)='' OR vp.edc LIKE '0000-00-00%','',DATE_FORMAT(vp.edc,'%Y%m%d')) AS edc,IF(vd.datedeliver IS NULL OR TRIM(vd.datedeliver)='' OR vd.datedeliver LIKE '0000-00-00%','',DATE_FORMAT(vd.datedeliver,'%Y%m%d')) AS bdate,IF(deliverend IS NULL OR TRIM(deliverend) ='','O800',REPLACE(deliverend,'.','')) bresult ,IF(vd.deliverplace IS NULL OR vd.deliverplace NOT IN('1','2','3','4'),'5',vd.deliverplace) bplace ,IF(hosservice IS NULL OR TRIM(hosservice)='','00000',hosservice) bhosp ,IF(vd.delivertype IS NULL OR delivertype NOT IN('1','2','3','4','5','6'),if(deliverresult='ท','6','1'),vd.delivertype) btype ,IF(vd.operater IS NULL OR operater NOT IN('1','2','3','4','5'),'1',vd.operater) bdoctor ,IFNULL(aliv.al,'0') lborn ,IF(vd.numdeadinpreg IS NULL OR TRIM(vd.numdeadinpreg)='','0',vd.numdeadinpreg) sborn ,REPLACE(REPLACE(REPLACE(IF(vd.dateupdate IS NULL OR LEFT(vd.dateupdate,2)='00',CONCAT(CURDATE(),CURTIME()),vd.dateupdate),'-',''),' ',''),':','') d_update  ,if(p.idcard is null or trim(p.idcard)='' or length(trim(p.idcard))<13,'',p.idcard) cid  FROM visitancdeliver vd  JOIN visitancpregnancy vp ON vd.pcucodeperson=vp.pcucodeperson AND vd.pid=vp.pid AND vd.pregno=vp.pregno  LEFT JOIN  (SELECT DISTINCT pcucodeperson,pid,pregno,COUNT(*) al   FROM visitancdeliverchild  GROUP BY pcucodeperson,pid,pregno) AS aliv   ON vd.pcucodeperson=aliv.pcucodeperson AND vd.pid=aliv.pid AND vd.pregno=aliv.pregno join person p on vd.pcucodeperson=p.pcucodeperson and vd.pid=p.pid  WHERE ((vd.datedeliver BETWEEN '2018-04-01' AND '2018-04-30') OR (DATE(vd.dateupdate) BETWEEN '2018-04-01' AND '2018-04-30'))

11->postnatal:= SELECT vc.pcucodeperson hospcode,vc.pid ,vc.visitno seq,vc.pregno gravida ,vd.datedeliver bdate ,vc.datecare ppcare ,IF(vc.hosservice IS NULL OR TRIM(vc.hosservice)='',vc.pcucodeperson,vc.hosservice) ppplace ,CASE WHEN resultcheck ='0' THEN '2' WHEN resultcheck ='1' THEN '1' ELSE '9' END ppresult ,IFNULL(u.idcard,'') provider ,REPLACE(REPLACE(REPLACE(IF(vc.dateupdate IS NULL OR LEFT(vc.dateupdate,2)='00',IF(v.dateupdate IS NULL OR TRIM(v.dateupdate)='' OR v.dateupdate LIKE '0000-00-00%',DATE_FORMAT(v.visitdate,'%Y%m%d%H%i%s'),DATE_FORMAT(v.dateupdate,'%Y%m%d%H%i%s')) ,vc.dateupdate),'-',''),' ',''),':','') d_update  ,if(p.idcard is null or trim(p.idcard)='' or length(trim(p.idcard))<13,'',p.idcard) cid  from visitancmothercare vc  LEFT JOIN visitancdeliver vd ON vc.pcucodeperson=vd.pcucodeperson AND vc.pid=vd.pid AND vc.pregno=vd.pregno  LEFT JOIN visit v ON vc.pcucode=v.pcucode AND vc.visitno=v.visitno  LEFT JOIN `user` u ON v.username=u.username join person p on vc.pcucodeperson=p.pcucodeperson and vc.pid=p.pid  WHERE DATEDIFF(datecare,datedeliver) > 0 AND DATEDIFF(datecare,datedeliver) < 43 AND ((vc.datecare BETWEEN '2018-04-01' AND '2018-04-30')  OR (DATE(vc.dateupdate) BETWEEN '2018-04-01' AND '2018-04-30'))

12->SpecialPP:= SELECT spp.pcucodeperson hospcode,spp.pid ,IF(spp.visitno IS NULL OR TRIM(spp.visitno)='','',spp.visitno) seq ,REPLACE(dateserv,'-','') date_serv ,IF(servplace IS NULL OR servplace NOT IN('1','2'),'2',servplace) servplace ,ppspecial ,IF(ppsplace IS NULL OR TRIM(ppsplace)='',IF(spp.visitno IS NOT NULL,spp.pcucode,''),ppsplace) ppsplace ,IFNULL(u1.idcard,IFNULL(u2.idcard,'')) provider ,REPLACE(REPLACE(REPLACE(IF(spp.dateupdate IS NULL OR TRIM(spp.dateupdate)='' OR LEFT(spp.dateupdate,2)='00' ,CONCAT(CURDATE(),CURTIME()),spp.dateupdate),'-',''),' ',''),':','') d_update ,ifnull(ppresult,'') ppresult ,if(p.idcard is null or length(trim(p.idcard))<>13,'',p.idcard) cid  FROM f43specialpp spp  LEFT JOIN `visit` v ON spp.pcucode=v.pcucode AND spp.visitno=v.visitno  LEFT JOIN `user` u1 ON spp.provider=u1.username  LEFT JOIN `user` u2 ON v.username=u2.username  join person p on spp.pcucodeperson=p.pcucodeperson and spp.pid=p.pid  AND (UCase(LEFT(ppspecial,2)) ='1B')  AND ((spp.dateserv BETWEEN '2018-04-01' AND '2018-04-30')   OR  (DATE(spp.dateupdate) BETWEEN '2018-04-01' AND '2018-04-30'))

13->Accident = SELECT v.pcucode hospcode,v.pid,v.visitno seq ,concat(REPLACE(v.visitdate,'-',''), if(vda.dateupdate IS NULL,'',REPLACE(TIME(vda.dateupdate),':',''))) datetime_serv ,concat(REPLACE(vda.dateaccident,'-',''),IF(vda.timeaccident IS NULL OR vda.timeaccident='00:00:00','000000',REPLACE(vda.timeaccident,':',''))) datetime_ae ,CASE WHEN UCASE(LEFT(vd.diagcode,3)) BETWEEN 'V01' AND 'V99' THEN '01'       WHEN UCASE(LEFT(vd.diagcode,3)) BETWEEN 'W01' AND 'W19' THEN '02'       WHEN UCASE(LEFT(vd.diagcode,3)) BETWEEN 'W20' AND 'W49' THEN '03'       WHEN UCASE(LEFT(vd.diagcode,3)) BETWEEN 'W50' AND 'W64' THEN '04'       WHEN UCASE(LEFT(vd.diagcode,3)) BETWEEN 'W65' AND 'W74' THEN '05'       WHEN UCASE(LEFT(vd.diagcode,3)) BETWEEN 'W75' AND 'W84' THEN '06'       WHEN UCASE(LEFT(vd.diagcode,3)) BETWEEN 'W85' AND 'W99' THEN '07'       WHEN UCASE(LEFT(vd.diagcode,3)) BETWEEN 'X00' AND 'X09' THEN '08'       WHEN UCASE(LEFT(vd.diagcode,3)) BETWEEN 'X10' AND 'X19' THEN '09'       WHEN UCASE(LEFT(vd.diagcode,3)) BETWEEN 'X20' AND 'X29' THEN '10'       WHEN UCASE(LEFT(vd.diagcode,3)) BETWEEN 'X30' AND 'X39' THEN '11'       WHEN UCASE(LEFT(vd.diagcode,3)) BETWEEN 'X40' AND 'X49' THEN '12'       WHEN UCASE(LEFT(vd.diagcode,3)) BETWEEN 'X50' AND 'X57' THEN '13'       WHEN UCASE(LEFT(vd.diagcode,3)) BETWEEN 'X58' AND 'X59' THEN '14'       WHEN UCASE(LEFT(vd.diagcode,3)) BETWEEN 'X60' AND 'X84' THEN '15'       WHEN UCASE(LEFT(vd.diagcode,3)) BETWEEN 'X85' AND 'Y09' THEN '16'                    WHEN UCASE(LEFT(vd.diagcode,3)) BETWEEN 'Y10' AND 'Y33' THEN '17'       WHEN UCASE(LEFT(vd.diagcode,3)) BETWEEN 'X35' AND 'Y36' THEN '18'                    WHEN UCASE(LEFT(vd.diagcode,3)) = 'Y34' THEN '19'  ELSE '' END aetype ,IF(aeplace IS NULL OR aeplace NOT IN('01','02','03','04','05','06','07','08','09','10','11','98','99'),'98',aeplace) aeplace ,IF(typeinae IS NULL OR typeinae NOT IN('1','2','3','4','5','6','7','9'),'7',typeinae) typein_ae ,IF(typeinaccident IS NULL OR typeinaccident NOT IN('1','2','3','8','9'),'8',typeinaccident) traffic ,IF(vehicletype IS NULL OR vehicletype NOT IN('01','02','03','04','05','06','07','08','09','10','11','12','98','99'),'98',vehicletype) vehicle ,IF(alcohol IS NULL OR alcohol NOT IN('1','2','9'),'9',alcohol) alcohol ,IF(nacroticdrug IS NULL OR nacroticdrug NOT IN('1','2','9'),'9',nacroticdrug) nacrotic_drug ,IF(belt IS NULL OR belt NOT IN('1','2','9'),'9',belt) belt ,IF(helmet IS NULL OR helmet NOT IN('1','2','9'),'9',helmet) helmet ,IF(airway IS NULL OR airway NOT IN('1','2','3'),'3',airway) airway ,IF(stopbleed IS NULL OR stopbleed NOT IN('1','2','3'),'3',stopbleed) stopbleed ,IF(splint IS NULL OR splint NOT IN('1','2','3'),'3',splint) splint ,IF(fluid IS NULL OR fluid NOT IN('1','2','3'),'3',fluid) fluid ,IF(urgency IS NULL OR urgency NOT IN('1','2','3','4','5','6'),'6',urgency) urgency ,IF(comaeye IS NULL OR comaeye NOT IN('1','2','3','4'),'4',comaeye) coma_eye ,IF(comaspeak IS NULL OR comaspeak NOT IN('1','2','3','4','5'),'5',comaspeak) coma_speak ,IF(comamovement IS NULL OR comamovement NOT IN('1','2','3','4','5','6'),'6',comamovement) coma_movement ,REPLACE(REPLACE(REPLACE(IF(vda.dateupdate IS NULL OR TRIM(vda.dateupdate)='' OR LEFT(vda.dateupdate,2)='00'  ,CONCAT(CURDATE(),CURTIME()),vda.dateupdate),'-',''),' ',''),':','') d_update  ,if(p.idcard is null or trim(p.idcard)='' or length(trim(p.idcard))<13,'',p.idcard) cid  FROM visit v  JOIN visitdiag vd ON v.pcucode=vd.pcucode AND v.visitno=vd.visitno  JOIN visitdiagaccidentaddress vda ON vd.pcucode=vda.pcucode AND vd.visitno=vda.visitno AND vd.diagcode=vda.diagcode  join person p on v.pcucodeperson=p.pcucodeperson and v.pid=p.pid  WHERE (UCASE(LEFT(vd.diagcode,3)) BETWEEN 'V01' AND 'V99'   OR UCASE(LEFT(vd.diagcode,3)) BETWEEN 'W00' AND 'W99'   OR UCASE(LEFT(vd.diagcode,3)) BETWEEN 'X00' AND 'X99'   OR UCASE(LEFT(vd.diagcode,3)) BETWEEN 'Y00' AND 'Y99')  AND (v.visitdate >= '2010-01-01')  AND ((v.visitdate  BETWEEN '2018-04-01' AND '2018-04-30'))

14->Community_Service:= SELECT hh.pcucode hospcode,v.pid,hh.visitno seq ,REPLACE(v.visitdate,'-','') date_serv ,IFNULL(ch.homehealthmap,ch.homehealthcode) comservice ,IFNULL(u1.idcard,IFNULL(u2.idcard,'')) provider ,REPLACE(REPLACE(REPLACE(IF(hh.dateupdate IS NULL OR TRIM(hh.dateupdate)='' OR LEFT(hh.dateupdate,2)='00'    ,CONCAT(CURDATE(),CURTIME()),hh.dateupdate),'-',''),' ',''),':','') d_update  ,if(p.idcard is null or trim(p.idcard)='' or length(trim(p.idcard))<13,'',p.idcard) cid  FROM visithomehealthindividual hh  JOIN `visit` v ON hh.pcucode=v.pcucode AND hh.visitno=v.visitno  JOIN `chomehealthtype` ch ON hh.homehealthtype=ch.homehealthcode  LEFT JOIN `user` u1 ON hh.pcucode = u1.pcucode AND hh.`user`=u1.username  LEFT JOIN `user` u2 ON v.pcucode = u2.pcucode AND v.username=u2.username  join person p on v.pcucodeperson=p.pcucodeperson and v.pid=p.pid  WHERE      (v.visitdate BETWEEN '2018-04-01' AND '2018-04-30')

15->Community_Act:= SELECT cac.pcucode hospcode,cac.villcode vid,if(cac.datestart is null OR TRIM(cac.datestart)='' OR LEFT(cac.datestart,2)='00','',REPLACE(cac.datestart,'-','')) date_start ,if(cac.datefinish is null OR TRIM(cac.datefinish)='' OR LEFT(cac.datefinish,2)='00','',REPLACE(cac.datefinish,'-','')) date_finish,IFNULL(cca.actmap,cca.ccommucode) comactivity ,IFNULL(u1.idcard,'') provider ,REPLACE(REPLACE(REPLACE(IF(cac.dateupdate IS NULL OR TRIM(cac.dateupdate)='' OR LEFT(cac.dateupdate,2)='00'    ,CONCAT(CURDATE(),CURTIME()),cac.dateupdate),'-',''),' ',''),':','') d_update  FROM f43communityactivity cac  JOIN ccommunityactivity cca ON cac.comactivity = cca.ccommucode  LEFT JOIN `user` u1 ON cac.pcucode = u1.pcucode AND cac.provider=u1.username WHERE (cac.datestart >= '2010-01-01') AND (cac.datestart BETWEEN '2018-04-01' AND '2018-04-30')

16->Dental:==>> SELECT v.pcucode hospcode,v.pid,v.visitno seq,REPLACE(v.visitdate,'-','') date_serv ,IF(pn.pid IS NOT NULL,'1'     ,CASE WHEN getAgeYearNum(birth,visitdate)< 4 THEN '2'           WHEN getAgeYearNum(birth,visitdate)> 3 AND getAgeYearNum(birth,visitdate)< 19 THEN '3'           WHEN getAgeYearNum(birth,visitdate)> 59 THEN '4' ELSE '5' END) denttype ,IF(v.servicetype IS NULL OR v.servicetype NOT IN('1','2'),'1',v.servicetype) servplace ,IF(toothpermanent IS NULL OR TRIM(toothpermanent)='' OR toothpermanent<=0,0,toothpermanent) pteeth ,IF(toothpermanentcorrupt IS NULL OR TRIM(toothpermanentcorrupt)='' OR toothpermanentcorrupt<=0,0,toothpermanentcorrupt) pcaries ,IF(pfilling IS NULL OR TRIM(pfilling)='' OR pfilling<=0,0,pfilling) pfilling ,IF(pextract IS NULL OR TRIM(pextract)='' OR pextract<=0,0,pextract) pextract ,IF(toothmilk IS NULL OR TRIM(toothmilk)='' OR toothmilk<=0,0,toothmilk) dteeth ,IF(toothmilkcorrupt IS NULL OR TRIM(toothmilkcorrupt)='' OR toothmilkcorrupt<=0,0,toothmilkcorrupt) dcaries ,IF(dfilling IS NULL OR TRIM(dfilling)='' OR dfilling<=0,0,dfilling) dfilling ,IF(dextract IS NULL OR TRIM(dextract)='' OR dextract<=0,0,dextract) dextract ,IF(needfluoride IS NULL OR needfluoride NOT IN('1','2'),'2',needfluoride) need_fluoride ,IF(needscaling IS NULL OR needscaling NOT IN('1','2'),'2',needscaling) need_scaling ,IF(needsealant IS NULL OR TRIM(needsealant)='' OR needsealant<=0,0,needsealant) need_sealant ,IF(pfillingneed IS NULL OR TRIM(pfillingneed)='' OR pfillingneed<=0,0,pfillingneed) need_pfilling ,IF(dfillingneed IS NULL OR TRIM(dfillingneed)='' OR dfillingneed<=0,0,dfillingneed) need_dfilling ,IF(needpextract IS NULL OR TRIM(needpextract)='' OR needpextract<=0,0,needpextract) need_pextract ,IF(needdextract IS NULL OR TRIM(needdextract)='' OR needdextract<=0,0,needdextract) need_dextract ,IF(nprosthesis IS NULL OR nprosthesis NOT IN('1','2','3','4'),'4',nprosthesis) nprosthesis ,IF(permanentperma IS NULL OR TRIM(permanentperma)='' OR permanentperma<=0,0,permanentperma) permanent_permanent ,IF(permanentprost IS NULL OR TRIM(permanentprost)='' OR permanentprost<=0,0,permanentprost) permanent_prosthesis ,IF(prosthesisprost IS NULL OR TRIM(prosthesisprost)='' OR prosthesisprost<=0,0,prosthesisprost) prosthesis_prosthesis ,CONCAT(IF(gum IS NULL OR gum NOT IN('0','1','2','3','4','5','9'),'9',gum),        IF(gum2 IS NULL OR gum2 NOT IN('0','1','2','3','4','5','9'),'9',gum2),        IF(gum3 IS NULL OR gum3 NOT IN('0','1','2','3','4','5','9'),'9',gum3),        IF(gum4 IS NULL OR gum4 NOT IN('0','1','2','3','4','5','9'),'9',gum4),        IF(gum5 IS NULL OR gum5 NOT IN('0','1','2','3','4','5','9'),'9',gum5),        IF(gum6 IS NULL OR gum6 NOT IN('0','1','2','3','4','5','9'),'9',gum6)       ) gum,if(depend IS NULL OR depend NOT IN('1','2','3','4','5','6','7','8','9'),'',depend) schooltype,'' klass ,IFNULL(u2.idcard,IFNULL(u1.idcard,'')) provider ,REPLACE(REPLACE(REPLACE(IF(d.dateupdate IS NULL OR TRIM(d.dateupdate)='' OR LEFT(d.dateupdate,2)='00'    ,IF(v.dateupdate IS NULL OR TRIM(v.dateupdate)='' OR LEFT(v.dateupdate,2)='00'    ,CONCAT(CURDATE(),CURTIME()),v.dateupdate),d.dateupdate),'-',''),' ',''),':','') d_update ,dv.idcard cid  FROM visitdentalcheck d  JOIN visit v ON d.pcucode=v.pcucode AND d.visitno=v.visitno  JOIN  (SELECT p.pcucodeperson,p.pid,if(p.idcard is null or trim(p.idcard)='','',p.idcard) idcard ,ifnull(birth,'') birth   FROM person p   JOIN visitdentalcheck k ON p.pcucodeperson = k.pcucodeperson and p.pid = k.pid  WHERE k.datedental BETWEEN '2018-04-01' and '2018-04-30' GROUP BY p.pcucodeperson,p.pid ) AS dv    ON d.pcucodeperson = dv.pcucodeperson and d.pid = dv.pid  LEFT JOIN personstudent std on dv.pcucodeperson=std.pcucodeperson and dv.pid=std.pid  LEFT JOIN villageschool vsch on std.pcucode=vsch.pcucode and std.villcode=vsch.villcode and std.schoolno=vsch.schoolno  LEFT JOIN `user` u1 ON v.pcucode = u1.pcucode AND v.username=u1.username  LEFT JOIN `user` u2 ON d.pcucode = u2.pcucode AND d.provider=u2.username   LEFT JOIN (SELECT na.pcucodeperson,na.pid,na.lmp            FROM visitancpregnancy na             JOIN visitdentalcheck d ON na.pcucodeperson=d.pcucodeperson AND na.pid=d.pid             WHERE na.lmp IS NOT NULL AND LEFT(na.lmp,2)<>'00' AND TRIM(na.lmp)<>''               AND DATEDIFF(d.datedental,na.lmp) > 0 AND DATEDIFF(d.datedental,na.lmp) < 300             GROUP BY na.pcucodeperson,na.pid,na.lmp             ) AS pn  ON d.pcucodeperson = pn.pcucodeperson AND d.pid = pn.pid  WHERE v.flagservice <> '99' AND  ( (v.visitdate BETWEEN '2018-04-01' AND '2018-04-30')  OR  (Date(d.dateupdate) BETWEEN '2018-04-01' AND '2018-04-30')  )

17->Disability := SELECT un1.hospcode ,IF(un1.disabid IS NULL OR TRIM(un1.disabid)='','',un1.disabid) disabid ,un1.pid ,un1.disabtype ,IF(pt1.disabcause IS NULL OR TRIM(pt1.disabcause) ='','',pt1.disabcause) disabcause ,IF(pt1.diagcode IS NULL OR TRIM(pt1.diagcode) ='','',UCase(REPLACE(pt1.diagcode,'.',''))) diagcode ,IF(pt1.datefound IS NULL OR TRIM(pt1.datefound)='','',REPLACE(pt1.datefound,'-','')) date_detect ,IF(pt1.datestartunable IS NULL OR TRIM(pt1.datestartunable)='','',REPLACE(pt1.datestartunable,'-','')) date_disab ,IF(pt1.dateupdate IS NULL OR LEFT(pt1.dateupdate,2) ='00'     ,''     ,REPLACE(REPLACE(REPLACE(pt1.dateupdate,'-',''),' ',''),':','')) d_update ,p.idcard cid  FROM personunable1type pt1 JOIN (  SELECT pu.pcucodeperson hospcode,pu.registerno disabid,pu.pid        ,incompletetype disabtype,typecode      FROM personunable pu    JOIN personunable1type p1 ON pu.pcucodeperson=p1.pcucodeperson AND pu.pid=p1.pid
JOIN cpersonincomplete cu ON p1.typecode=cu.incompletecode      WHERE cu.incompletetype IS NOT NULL AND TRIM(cu.incompletetype) <>''    GROUP BY pu.pcucodeperson ,pu.registerno ,pu.pid ,incompletetype   ORDER BY pid ,incompletetype ) AS un1  ON pt1.pcucodeperson=un1.hospcode AND pt1.pid=un1.pid AND pt1.typecode=un1.typecode  join person p on pt1.pcucodeperson=p.pcucodeperson and pt1.pid=p.pid  Where (pt1.datefound BETWEEN '2018-04-01' AND '2018-04-30')  OR (DATE(pt1.dateupdate) BETWEEN '2018-04-01' AND '2018-04-30')

18->Drugallergy:= SELECT pa.pcucodeperson hospcode,pa.pid ,IF(pa.daterecord IS NULL OR LEFT(pa.daterecord,2) ='00',REPLACE(CURDATE(),'-',''),REPLACE(pa.daterecord,'-','')) daterecord ,c.drugcode24 drugallergy ,IF(c.drugname IS NULL OR TRIM(c.drugname)='','',c.drugname) dname ,IF(pa.typedx IS NULL OR pa.typedx NOT IN('1','2','3','4','5'),'',pa.typedx) typedx ,IF(pa.levelalergic IS NULL OR pa.levelalergic NOT IN('1','2','3','4','5','6','7','8'),'',pa.levelalergic) alevel ,if(symptom IS NULL OR TRIM(symptom)='','',symptom) symptom ,IF(informant IS NULL OR informant NOT IN('1','2','3','4'),'1',informant) informant ,IF(informhosp IS NULL OR TRIM(informhosp)='','',informhosp) informhosp ,IF(pa.dateupdate IS NULL OR LEFT(pa.dateupdate,2) ='00'    ,'' ,REPLACE(REPLACE(REPLACE(pa.dateupdate,'-',''),' ',''),':','')) d_update ,'' provider ,if(p.idcard is null or trim(p.idcard)='' or length(trim(p.idcard))<13,'',p.idcard) cid  FROM personalergic pa  JOIN person p on pa.pcucodeperson=p.pcucodeperson AND pa.pid=p.pid  JOIN cdrug c ON pa.drugcode=c.drugcode  WHERE c.drugcode24 IS NOT NULL AND LENGTH(TRIM(c.drugcode24))=24 AND (pa.daterecord >= '2010-01-01') AND (pa.dateupdate BETWEEN '2018-04-01' AND '2018-04-30')

19->Rehabilitation:= SELECT hp.pcucodeperson hospcode,hp.pid,hp.visitno seq ,'' an ,'' date_admit ,REPLACE(hp.dateserv,'-','') date_serv ,'' date_start ,'' date_finish ,rehabcode ,IF(atdevice IS NULL OR TRIM(atdevice) ='','',atdevice) at_device ,IF(atno IS NULL OR TRIM(atno)='' OR atno <=0,'',atno) at_no ,IFNULL(chospital.hoscode,'00000') rehabplace ,IFNULL(u1.idcard,IFNULL(u2.idcard,'')) provider ,REPLACE(REPLACE(REPLACE(IF(hp.dateupdate IS NULL OR TRIM(hp.dateupdate)='' OR LEFT(hp.dateupdate,2)='00'    ,CONCAT(CURDATE(),CURTIME()),hp.dateupdate),'-',''),' ',''),':','') d_update  ,if(person.idcard is null or trim(person.idcard)='' or length(trim(person.idcard))<13,'',person.idcard) cid  FROM visithealthperformance hp  LEFT JOIN `visit` v ON hp.pcucode=v.pcucode AND hp.visitno=v.visitno  LEFT JOIN `user` u1 ON hp.`provider`=u1.username  LEFT JOIN `user` u2 ON v.username=u2.username  LEFT JOIN chospital ON hp.rehabplace=chospital.hoscode  JOIN person on person.pcucodeperson=hp.pcucodeperson and person.pid=hp.pid  WHERE  (hp.dateserv BETWEEN '2018-04-01' AND '2018-04-30')

20->Care_Refer==>> SELECT  v7c.pcucode hospcode ,numberrefer referid ,if(referidprovince IS NULL OR TRIM(referidprovince)='','',referidprovince) referid_province ,IF(caretype NOT IN('1','2','3','4','5','6'),'6',caretype) caretype,IF( v7c.dateupdate IS NULL OR TRIM(v7c.dateupdate)='' OR v7c.dateupdate LIKE '0000-00-00%',DATE_FORMAT(visit.visitdate,'%Y%m%d%H%i%s'),DATE_FORMAT(v7c.dateupdate,'%Y%m%d%H%i%s') ) AS d_update ,x.idcard as cid  FROM visit7carerefer v7c  JOIN visit ON (v7c.pcucode=visit.pcucode AND v7c.visitno=visit.visitno)  JOIN person x ON visit.pcucodeperson=x.pcucodeperson AND visit.pid=x.pid  WHERE (visit.flagservice<>'99')  AND visit.refer IS NOT NULL AND visit.refer<>'00'  AND v7c.pcucode='04232'  AND IFNULL(v7c.dateupdate,visit.dateupdate) BETWEEN '2018-04-01' AND '2018-04-30'

21->Clinical_Refer:==>> SELECT  v7cn.pcucode hospcode ,numberrefer referid ,if(referidprovince IS NULL OR TRIM(referidprovince)='','',referidprovince) referid_province ,Concat(Replace(visitdate,'-',''),Replace(clinicaltime,':','')) datetime_assess,clinicalcode ,'' clinicalname ,clinicalvalue ,IF(comment IS NULL OR TRIM(comment)='','',comment) clinicalresult,IF( v7cn.dateupdate IS NULL OR TRIM(v7cn.dateupdate)='' OR v7cn.dateupdate LIKE '0000-00-00%',DATE_FORMAT(visit.visitdate,'%Y%m%d%H%i%s'),DATE_FORMAT(v7cn.dateupdate,'%Y%m%d%H%i%s') ) AS d_update  FROM visit7clinicalrefer v7cn  JOIN visit ON (v7cn.pcucode=visit.pcucode AND v7cn.visitno=visit.visitno)  WHERE (visit.flagservice<>'99')  AND visit.refer IS NOT NULL AND visit.refer<>'00'  AND v7cn.pcucode='04232'  AND IFNULL(v7cn.dateupdate,visit.dateupdate) BETWEEN '2018-04-01' AND '2018-04-30'

22->Drugrefer:==>> SELECT DISTINCT  '00000' AS clinic,  visit.pcucode, visit.pid, visit.visitno AS seq,  IF(visit.visitdate IS NULL OR TRIM(visit.visitdate)='' OR visit.visitdate LIKE '0000-00-00%','',DATE_FORMAT(visit.visitdate,'%Y%m%d')) AS date_serv,  visitdrug.unit AS amount,  IF(visitdrug.costprice IS NOT NULL AND TRIM(visitdrug.costprice)<>'', REPLACE(FORMAT(visitdrug.costprice,2),',',''), FORMAT(0,2)) AS drugcost,  IF(visitdrug.realprice IS NOT NULL AND TRIM(visitdrug.realprice)<>'', REPLACE(FORMAT(visitdrug.realprice,2),',',''), FORMAT(0,2)) AS drugpric,  IF(cdrug.drugcode IS NULL OR cdrug.drugcode='','',cdrug.drugcode) AS did,  IF(cdrug.drugname IS NULL OR cdrug.drugname='','',cdrug.drugname) AS dname,  IF(cdrug.drugcode24 IS NOT NULL AND cdrug.drugcode24<>'', cdrug.drugcode24, IF(LENGTH(cdrug.drugcode)=19,CONCAT(cdrug.drugcode,'00000'),cdrug.drugcode)) AS didstd,  ifnull(unitsellcode,unitsell) AS unit, unitpacking as unit_packing, IF( visitdrug.dateupdate IS NULL OR TRIM(visitdrug.dateupdate)='' OR visitdrug.dateupdate LIKE '0000-00-00%',DATE_FORMAT(visit.visitdate,'%Y%m%d%H%i%s'),DATE_FORMAT(visitdrug.dateupdate,'%Y%m%d%H%i%s') ) AS d_update ,numberrefer referid ,if(referidprovince IS NULL OR TRIM(referidprovince)='','',referidprovince) referid_province ,concat(replace(visit.visitdate,'-',''),replace(ifnull(timestart,curtime()),':','')) datetime_dstart ,'' datetime_dfinish ,if(visitdrug.dose IS NULL OR TRIM(visitdrug.dose)='','-',visitdrug.dose) ddescription  FROM visitdrug  JOIN (SELECT pcucodeperson,pid,visit.pcucode,visit.visitno,visitdate,flagservice,username             ,numberrefer,referidprovince,timestart,visit.refer        from visit WHERE visit.visitdate BETWEEN '2018-04-01' AND '2018-04-30'        UNION        select pcucodeperson,pid,visit.pcucode,visit.visitno,visitdate,flagservice,username             ,numberrefer,referidprovince,timestart,visit.refer        from visit        JOIN (select visitdrug.pcucode, visitdrug.visitno from visitdrug              WHERE DATE(visitdrug.dateupdate) BETWEEN '2018-04-01' AND '2018-04-30' GROUP BY visitdrug.visitno             ) AS diu        ON visit.pcucode=diu.pcucode AND visit.visitno=diu.visitno       ) AS visit ON (visitdrug.pcucode=visit.pcucode AND visitdrug.visitno=visit.visitno)  join person x ON visit.pcucodeperson=x.pcucodeperson and visit.pid=x.pid  LEFT JOIN cdrug ON (visitdrug.drugcode=cdrug.drugcode)  left join cdrugunitsell on cdrug.unitsell = cdrugunitsell.unitsellcode  LEFT JOIN `user` u ON visitdrug.pcucode = u.pcucode AND visitdrug.doctor1 = u.username  WHERE (visit.flagservice<>'99')  AND visit.refer IS NOT NULL AND visit.refer<>'00'  AND (cdrug.drugtype='01' OR cdrug.drugtype='10')  AND TRIM(visitdrug.pcucode)<>'' AND visitdrug.pcucode='04232'  AND IFNULL(DATE(visitdrug.dateupdate),visit.visitdate) BETWEEN '2018-04-01' AND '2018-04-30'  ORDER BY visit.pcucode ASC, visit.visitdate DESC, visit.visitno DESC

23->Investig_Refer:==>> SELECT  v7cn.pcucode hospcode ,numberrefer referid ,if(referidprovince IS NULL OR TRIM(referidprovince)='','',referidprovince) referid_province ,Concat(Replace(visitdate,'-',''),Replace(investtime,':','')) datetime_invest,investcode ,'' investname ,IF(IF(investdatereport IS NULL OR investdatereport='0000-00-00','',REPLACE(investdatereport,'-',''))<>''     AND     IF(investtimereport IS NULL,'',REPLACE(investtimereport,':',''))<>'' ,Concat(REPLACE(investdatereport,'-',''),REPLACE(investtimereport,':','')),'') datetime_report ,investvalue ,IF(comment IS NULL OR TRIM(comment)='','',comment) investresult,IF( v7cn.dateupdate IS NULL OR TRIM(v7cn.dateupdate)='' OR v7cn.dateupdate LIKE '0000-00-00%',DATE_FORMAT(visit.visitdate,'%Y%m%d%H%i%s'),DATE_FORMAT(v7cn.dateupdate,'%Y%m%d%H%i%s') ) AS d_update FROM visit7investigaterefer v7cn  INNER JOIN visit ON (v7cn.pcucode=visit.pcucode AND v7cn.visitno=visit.visitno)  WHERE (visit.flagservice<>'99')  AND visit.refer IS NOT NULL AND visit.refer<>'00'  AND v7cn.pcucode='04232'  AND (visit.visitdate >= '2010-01-01')  AND ((visit.visitdate BETWEEN '2018-04-01' AND '2018-04-30')       OR (left(v7cn.dateupdate,10) between '2018-04-01' AND '2018-04-30'))

24->Procedurerefer:==>> SELECT DISTINCT  '00000' AS clinic,  visit.pcucode, visit.pid, visit.visitno AS seq,  IF(visit.visitdate IS NULL OR TRIM(visit.visitdate)='' OR visit.visitdate LIKE '0000-00-00%','',DATE_FORMAT(visit.visitdate,'%Y%m%d')) AS date_serv,  visitdrug.unit AS amount,  IF(visitdrug.costprice IS NOT NULL AND TRIM(visitdrug.costprice)<>'', REPLACE(FORMAT(visitdrug.costprice,2),',',''), FORMAT(0,2)) AS drugcost,  IF(visitdrug.realprice IS NOT NULL AND TRIM(visitdrug.realprice)<>'', REPLACE(FORMAT(visitdrug.realprice,2),',',''), FORMAT(0,2)) AS drugpric,  IF(cdrug.drugcode IS NULL OR cdrug.drugcode='','',cdrug.drugcode) AS did,  IF(cdrug.drugname IS NULL OR cdrug.drugname='','',cdrug.drugname) AS procedurename,  cdrug.drugcode AS procedcode,  ifnull(unitsellcode,unitsell) AS unit, unitpacking as unit_packing, IF( visitdrug.dateupdate IS NULL OR TRIM(visitdrug.dateupdate)='' OR visitdrug.dateupdate LIKE '0000-00-00%',DATE_FORMAT(visit.visitdate,'%Y%m%d%H%i%s'),DATE_FORMAT(visitdrug.dateupdate,'%Y%m%d%H%i%s') ) AS d_update ,numberrefer referid ,if(referidprovince IS NULL OR TRIM(referidprovince)='','',referidprovince) referid_province ,concat(replace(visit.visitdate,'-',''),replace(ifnull(timestart,curtime()),':','')) timestart ,'' timefinish ,if(cdrug.drugname IS NULL OR TRIM(cdrug.drugname)='','',cdrug.drugname) dname ,cdrug.drugcode procedcode ,if(visitdrug.dose IS NULL OR TRIM(visitdrug.dose)='','-',visitdrug.dose) pdescription ,'' procedresult ,LEFT(ifnull(`user`.idcard,IFNULL(`user`.noofoccupation,ifnull(`user`.licenseno,''))),13) as doctor1 FROM visitdrug  JOIN (SELECT pcucodeperson,pid,visit.pcucode,visit.visitno,visitdate,flagservice,username              ,numberrefer,referidprovince,timestart,visit.refer        from visit WHERE visit.visitdate BETWEEN '2018-04-01' AND '2018-04-30'        UNION        select pcucodeperson,pid,visit.pcucode,visit.visitno,visitdate,flagservice,username              ,numberrefer,referidprovince,timestart,visit.refer        from visit        JOIN (select visitdrug.pcucode, visitdrug.visitno from visitdrug              WHERE DATE(visitdrug.dateupdate) BETWEEN '2018-04-01' AND '2018-04-30' GROUP BY visitdrug.visitno             ) AS diu        ON visit.pcucode=diu.pcucode AND visit.visitno=diu.visitno       ) AS visit ON (visitdrug.pcucode=visit.pcucode AND visitdrug.visitno=visit.visitno)  JOIN  ( SELECT p.pcucodeperson,p.pid,if(p.idcard is null or trim(p.idcard)='','',p.idcard) idcard  FROM person p  JOIN (select pcucodeperson,pid from visit v  WHERE (v.visitdate BETWEEN '2018-04-01' and '2018-04-30')  OR (DATE(v.dateupdate) BETWEEN '2018-04-01' and '2018-04-30') ) as v  ON p.pcucodeperson=v.pcucodeperson AND p.pid=v.pid  GROUP BY p.pcucodeperson,p.pid ) AS x  ON visit.pcucodeperson=x.pcucodeperson and visit.pid=x.pid  LEFT JOIN cdrug ON (visitdrug.drugcode=cdrug.drugcode)  LEFT JOIN _tmpdbregister cdrugstd ON (cdrug.tcode=cdrugstd.tcode)  left join cdrugunitsell on cdrug.unitsell = cdrugunitsell.unitsellcode  LEFT JOIN `user` ON visitdrug.doctor1 = `user`.username WHERE (visit.flagservice='01' OR visit.flagservice='02' OR visit.flagservice='03' OR visit.flagservice IS NULL OR TRIM(visit.flagservice)='')  AND visit.refer IS NOT NULL AND visit.refer<>'00'  AND (cdrug.drugtype='02')  AND TRIM(visitdrug.pcucode)<>'' AND visitdrug.pcucode='04232'  AND (visit.visitdate >= '2010-01-01')  AND ((visit.visitdate BETWEEN '2018-04-01' AND '2018-04-30') ) ORDER BY visit.pcucode ASC, visit.visitdate DESC, visit.visitno DESC

25->Refer_History:==>> SELECT v.pcucode hospcode ,numberrefer referid,if(referidprovince IS NULL OR TRIM(referidprovince)='','',referidprovince) referid_province ,v.pid ,v.visitno seq ,'' an ,'' referid_origin ,'' hospcode_origin ,concat(replace(v.visitdate,'-',''),replace(ifnull(v.timestart,curtime()),':','')) datetime_serv ,'' datetime_admit ,concat(replace(v.visitdate,'-',''),replace(ifnull(v.timeend,curtime()),':','')) datetime_refer ,'00000' clinic_refer ,v.refertohos hospdestination ,IF(symptoms IS NULL OR TRIM(symptoms)='','',TRIM(LEFT(symptoms,255))) chiefcomp ,IF(vitalcheck IS NULL OR TRIM(vitalcheck)='','',TRIM(LEFT(vitalcheck,255))) physicalexam ,'' diagfirst ,IF(d1.pcucode IS NULL,'',d1.diseasename) diaglast ,IF(pstatus IS NULL OR TRIM(pstatus)='',' .ไม่ระบุฯ',pstatus) pstatus ,IF(ptype IS NULL OR ptype NOT IN('1','2','3'),'1',ptype) ptype ,IF(emergency IS NULL OR emergency NOT IN('1','2','3','4','5'),'1',emergency) emergency ,IF(ptypedis IS NULL OR ptypedis NOT IN('01','02','03','04','05','06','07','99'),'99',ptypedis) ptypedis ,case when refer in('01','05','99') then '1' when refer ='04' then '2' when refer in('02','06') then '4'       when refer ='03' then '5' else '1' end AS causeout ,IF(request IS NULL OR TRIM(request)='','',request) request ,LEFT(ifnull(`user`.idcard,IFNULL(`user`.noofoccupation,ifnull(`user`.licenseno,''))),13) as provider ,IF(vhr.dateupdatehistory IS NULL OR TRIM(vhr.dateupdatehistory)='' OR vhr.dateupdatehistory LIKE '0000-00-00%',DATE_FORMAT(v.visitdate,'%Y%m%d%H%i%s'),DATE_FORMAT(vhr.dateupdatehistory,'%Y%m%d%H%i%s') ) AS d_update FROM visit7referhisreferres vhr INNER JOIN visit v ON vhr.pcucode=v.pcucode AND vhr.visitno=v.visitno LEFT JOIN `user` on v.pcucode = `user`.pcucode AND v.username = `user`.username LEFT JOIN(SELECT v.pcucode,v.visitno,cd.diseasename FROM visit v           LEFT JOIN visitdiag vd ON v.pcucode=vd.pcucode AND v.visitno=vd.visitno            JOIN cdisease cd ON vd.diagcode=cd.diseasecode           WHERE v.refer IS NOT NULL AND TRIM(v.refer)<>'' AND v.refer<>'00' GROUP BY pcucode,visitno          ) AS d1      ON v.pcucode=d1.pcucode AND v.visitno=d1.visitno  WHERE (v.flagservice<>'99')    AND  v.refer IS NOT NULL AND v.refer<>'00' AND v.refertohos IS NOT NULL AND TRIM(v.refertohos)<>''   AND v.pcucode='04232'  AND (v.visitdate >= '2010-01-01')  AND ((v.visitdate BETWEEN '2018-04-01' AND '2018-04-30') )

26->Refer_Result:==>> SELECT v.pcucode hospcode ,referidsource referid_source,if(referidprovince IS NULL OR TRIM(referidprovince)='','',referidprovince) referid_province ,if(v.receivefromhos IS NULL or trim(v.receivefromhos)='','00000',v.receivefromhos) hosp_source,IF(referresult IS NULL OR referresult NOT IN('1','2','3','4','5'),'5',referresult) refer_result ,IFNULL(CONCAT(replace(v.visitdate,'-',''),replace(IFNULL(vrr.referreceitime,curtime()),':','')),'') datetime_in,v.pid pid_in ,'' an_in ,if(referresult='1','',IF(reason IS NULL OR TRIM(reason)='','',reason)) reason ,IF(vrr.dateupdateresult IS NULL OR TRIM(vrr.dateupdateresult)='' OR vrr.dateupdateresult LIKE '0000-00-00%',DATE_FORMAT(v.visitdate,'%Y%m%d%H%i%s'),DATE_FORMAT(vrr.dateupdateresult,'%Y%m%d%H%i%s') ) AS d_update  FROM visit v JOIN visit7referhisreferres vrr ON v.pcucode=vrr.pcucode AND v.visitno=vrr.visitno  WHERE  v.receivepatient IN('01','02','03','04','05','99')    AND (v.flagservice <>'99')    AND  referidsource IS NOT NULL AND TRIM(referidsource)<>''    AND  v.pcucode='04232'  AND ((date(vrr.dateupdateresult) BETWEEN '2018-04-01' AND '2018-04-30') )

27->Diag:==>> SELECT  '00000' AS clinic, visit.pcucode, visit.pid, visit.visitno seq ,IF(visit.visitdate IS NULL OR TRIM(visit.visitdate)='' OR visit.visitdate LIKE '0000-00-00','',DATE_FORMAT(visit.visitdate,'%Y%m%d')) AS date_serv , visitdiag.dxtype, UCase(REPLACE(visitdiag.diagcode,'.','')) AS diagcode,  IF(visitdiag.dateupdate IS NULL OR TRIM(visitdiag.dateupdate)='' OR visitdiag.dateupdate LIKE '0000-00-00%',DATE_FORMAT(visit.visitdate,'%Y%m%d%H%i%s'),DATE_FORMAT(visitdiag.dateupdate,'%Y%m%d%H%i%s')) AS d_update ,x.idcard cid ,IFNULL(u.idcard,IFNULL(doctordiag,visit.username)) provider  FROM visitdiag  LEFT JOIN `user` u ON visitdiag.pcucode = u.pcucode AND visitdiag.doctordiag = u.username  join visit ON visitdiag.pcucode=visit.pcucode AND visitdiag.visitno=visit.visitno  LEFT JOIN (SELECT pcucodeperson ,pid ,IF(deaddate IS NULL OR YEAR(deaddate)='0000','1890-01-01',deaddate) dd FROM persondeath pd ) pde ON visit.pcucodeperson=pde.pcucodeperson AND visit.pid=pde.pid  JOIN  ( SELECT p.pcucodeperson,p.pid,if(p.idcard is null or trim(p.idcard)='','',p.idcard) idcard  FROM (select pcucodeperson,pid from visit v  JOIN visitdiag d ON v.pcucode=d.pcucode and v.visitno=d.visitno  WHERE IFNULL(DATE(d.dateupdate),v.visitdate)  BETWEEN '2018-04-01' and '2018-04-30' ) as v  join person p  ON v.pcucodeperson=p.pcucodeperson AND v.pid=p.pid  GROUP BY p.pid ) AS x  ON visit.pcucodeperson=x.pcucodeperson and visit.pid=x.pid  WHERE  (pde.dd>=visitdate or pde.pid IS NULL)  AND ((visit.visitdate BETWEEN '2018-04-01' and '2018-04-30') OR (DATE(visitdiag.dateupdate) BETWEEN '2018-04-01' and '2018-04-30'))

28->drug:==>> SELECT  '00000' AS clinic,  visit.pcucode, visit.pid, visit.visitno AS seq,  IF(visit.visitdate IS NULL OR TRIM(visit.visitdate)='' OR visit.visitdate LIKE '0000-00-00','',DATE_FORMAT(visit.visitdate,'%Y%m%d')) AS date_serv,  visitdrug.unit AS amount,  IF(visitdrug.costprice IS NOT NULL AND TRIM(visitdrug.costprice)<>'', REPLACE(FORMAT(visitdrug.costprice,2),',',''), FORMAT(0,2)) AS drugcost,  IF(visitdrug.realprice IS NOT NULL AND TRIM(visitdrug.realprice)<>'', REPLACE(FORMAT(visitdrug.realprice,2),',',''), FORMAT(0,2)) AS drugpric,  IF(cdrug.drugcode IS NULL OR cdrug.drugcode='','',cdrug.drugcode) AS did,  IF(cdrug.drugname IS NULL OR cdrug.drugname='','',cdrug.drugname) AS dname,  IF(cdrug.drugcode24 IS NOT NULL AND cdrug.drugcode24<>'', cdrug.drugcode24, IF(LENGTH(cdrug.drugcode)=19,CONCAT(cdrug.drugcode,'00000'),cdrug.drugcode)) AS didstd,  ifnull(unitsellcode,unitsell) AS unit, unitpacking as unit_packing, IF(visitdrug.dateupdate IS NULL OR TRIM(visitdrug.dateupdate)='' OR visitdrug.dateupdate LIKE '0000-00-00%',DATE_FORMAT(visit.visitdate,'%Y%m%d%H%i%s'),DATE_FORMAT(visitdrug.dateupdate,'%Y%m%d%H%i%s') ) AS d_update ,x.idcard as cid ,IFNULL(u.idcard,IFNULL(visitdrug.doctor1,visit.username)) provider ,if(dose is null or trim(dose)='','',dose) dose  FROM visitdrug  LEFT JOIN `user` u ON visitdrug.pcucode = u.pcucode AND visitdrug.doctor1 = u.username  join visit ON visitdrug.pcucode=visit.pcucode AND visitdrug.visitno=visit.visitno  LEFT JOIN (SELECT pcucodeperson ,pid ,IF(deaddate IS NULL OR YEAR(deaddate)='0000','1970-01-01',deaddate) dd FROM persondeath pd ) pde ON visit.pcucodeperson=pde.pcucodeperson AND visit.pid=pde.pid  JOIN  ( SELECT p.pcucodeperson,p.pid,if(p.idcard is null or trim(p.idcard)='','',p.idcard) idcard  FROM (select DISTINCT pcucodeperson,pid from visit v  JOIN visitdrug d ON v.pcucode=d.pcucode and v.visitno=d.visitno  WHERE IFNULL(DATE(d.dateupdate),v.visitdate)  BETWEEN '2018-04-01' and '2018-04-30' ) as v  JOIN person p  ON v.pcucodeperson=p.pcucodeperson AND v.pid=p.pid ) AS x  ON visit.pcucodeperson=x.pcucodeperson and visit.pid=x.pid  JOIN cdrug ON visitdrug.drugcode=cdrug.drugcode  left join cdrugunitsell on cdrug.unitsell = cdrugunitsell.unitsellcode WHERE  cdrug.drugtype IN('01','10')  AND (pde.dd>=visitdate or pde.pid IS NULL)  AND ((visit.visitdate BETWEEN '2018-04-01' and '2018-04-30') OR (DATE(visitdrug.dateupdate) BETWEEN '2018-04-01' and '2018-04-30'))

29->procedure_opd:==>> SELECT  '00000' AS clinic,  visit.pcucode, visit.pid, visit.visitno AS seq,  IF(visit.visitdate IS NULL OR TRIM(visit.visitdate)='' OR visit.visitdate LIKE '0000-00-00','',DATE_FORMAT(visit.visitdate,'%Y%m%d')) AS date_serv,  REPLACE(cdrug.drugcode,'-','') AS proced,  IF(visitdrug.realprice IS NOT NULL AND TRIM(visitdrug.realprice)<>'', REPLACE(FORMAT(visitdrug.realprice,2),',',''), FORMAT(0,2)) AS servpric,  IF(visitdrug.dateupdate IS NULL OR TRIM(visitdrug.dateupdate)='' OR visitdrug.dateupdate LIKE '0000-00-00%',DATE_FORMAT(visit.visitdate,'%Y%m%d%H%i%s'),DATE_FORMAT(visitdrug.dateupdate,'%Y%m%d%H%i%s') ) AS d_update ,LEFT(ifnull(`user`.idcard,IFNULL(`user`.noofoccupation,ifnull(`user`.licenseno,''))),13) as doctor1 ,x.idcard as cid  FROM visitdrug  left join `user` on visitdrug.pcucode = `user`.pcucode AND doctor1 = `user`.username  join visit ON visitdrug.pcucode=visit.pcucode AND visitdrug.visitno=visit.visitno  LEFT JOIN (SELECT pcucodeperson ,pid ,IF(deaddate IS NULL OR YEAR(deaddate)='0000','1890-01-01',deaddate) dd FROM persondeath pd ) pde ON visit.pcucodeperson=pde.pcucodeperson AND visit.pid=pde.pid JOIN  ( SELECT p.pcucodeperson,p.pid,if(p.idcard is null or trim(p.idcard)='','',p.idcard) idcard  FROM (select DISTINCT pcucodeperson,pid from visit v  JOIN visitdrug d ON v.pcucode=d.pcucode and v.visitno=d.visitno  WHERE IFNULL(DATE(d.dateupdate),v.visitdate)  BETWEEN '2018-04-01' and '2018-04-30' ) as v  JOIN person p ON p.pcucodeperson=v.pcucodeperson AND p.pid=v.pid ) AS x  ON visit.pcucodeperson=x.pcucodeperson and visit.pid=x.pid  JOIN cdrug ON (visitdrug.drugcode=cdrug.drugcode)  WHERE cdrug.drugtype='02'  AND ((visit.visitdate BETWEEN '2018-04-01' and '2018-04-30') OR (DATE(visitdrug.dateupdate) BETWEEN '2018-04-01' and '2018-04-30'))   AND (pde.dd>=visitdate or pde.pid IS NULL)

30->surveillance: SELECT visitdiag.pcucode, visitdiag.visitno AS seq,  UCase(REPLACE(cdisease.diseasecode,'.','')) AS diagcode,  IF(visit.visitdate IS NULL OR TRIM(visit.visitdate)='' OR visit.visitdate LIKE '0000-00-00%','',DATE_FORMAT(visit.visitdate,'%Y%m%d')) AS date_serv,  person.pid, if(person.idcard is null or trim(person.idcard)='' or length(trim(person.idcard))<13,'',person.idcard) cid,  cdisease.code506,  visitdiag506address.hno, visitdiag506address.mu, visitdiag506address.road, visitdiag506address.subdistcode,if(visitdiag506address.distcode='99','01',visitdiag506address.distcode) distcode , visitdiag506address.provcode,  visitdiag506address.area,  IF(visitdiag506address.sickdatestart IS NULL OR TRIM(visitdiag506address.sickdatestart)='' OR visitdiag506address.sickdatestart LIKE '0000-00-00%',DATE_FORMAT(visit.visitdate,'%Y%m%d'),DATE_FORMAT(visitdiag506address.sickdatestart,'%Y%m%d')) AS sickdatestart,  IF(visitdiag506address.sickdatefind IS NULL OR TRIM(visitdiag506address.sickdatefind)='' OR visitdiag506address.sickdatefind LIKE '0000-00-00%',DATE_FORMAT(visit.visitdate,'%Y%m%d'),DATE_FORMAT(visitdiag506address.sickdatefind,'%Y%m%d')) AS sickdatefind,  visitdiag506address.status AS ptstat,  IF(visitdiag506address.deaddate IS NULL OR TRIM(visitdiag506address.deaddate)='' OR visitdiag506address.deaddate LIKE '0000-00-00%','',DATE_FORMAT(visitdiag506address.deaddate,'%Y%m%d')) AS date_death,  visitdiag506address.flag18fileexpo,  IF(visitdiag.dateupdate IS NULL OR TRIM(visitdiag.dateupdate)='' OR visitdiag.dateupdate LIKE '0000-00-00%',DATE_FORMAT(visit.visitdate,'%Y%m%d%H%i%s'),DATE_FORMAT(visitdiag.dateupdate,'%Y%m%d%H%i%s') ) AS d_update ,'' an ,'' date_admit ,ifnull(syndrome,'') syndrome,ifnull(complicacation,'') complicacation,ifnull(organism,'') organism,ifnull(latitude,'') latitude ,ifnull(longitude,'') longitude ,IFNULL(u.idcard,IFNULL(visitdiag.doctordiag,visit.username)) provider  FROM visitdiag  LEFT JOIN visit ON (visitdiag.pcucode=visit.pcucode AND visitdiag.visitno=visit.visitno)  LEFT JOIN person ON (visit.pcucodeperson=person.pcucodeperson AND visit.pid=person.pid)  LEFT JOIN cdisease ON (visitdiag.diagcode=cdisease.diseasecode)  LEFT JOIN visitdiag506address ON (visitdiag.pcucode=visitdiag506address.pcucode AND visitdiag.visitno=visitdiag506address.visitno AND visitdiag.diagcode=visitdiag506address.diagcode)  LEFT JOIN `user` u ON visitdiag.doctordiag = u.username WHERE (visit.flagservice='01' OR visit.flagservice='02' OR visit.flagservice='03' OR visit.flagservice IS NULL OR TRIM(visit.flagservice)='')  AND TRIM(visitdiag.pcucode)<>'' AND visitdiag.pcucode='04232'  AND visitdiag.conti='0' AND cdisease.code506<>''  AND (visit.visitdate >= '2010-01-01') AND (visit.visitdate BETWEEN '2018-04-01' AND '2018-04-30') ORDER BY visit.pcucode ASC, visit.visitdate DESC, visit.visitno DESC

31->anc = SELECT  visitanc.pcucodeperson AS pcucode, visitanc.pid, visitanc.visitno AS seq ,IF(visitanc.datecheck IS NULL OR TRIM(visitanc.datecheck)='' OR visitanc.datecheck LIKE '0000-00-00%','',DATE_FORMAT(visitanc.datecheck,'%Y%m%d')) AS date_serv,visitanc.pregno, visitanc.sugar, visitanc.albumin, visitanc.breastcheck, visitanc.headache, visitanc.sickening,visitanc.tyroid, visitanc.dancebaby, visitanc.utmugo, visitanc.edima, visitanc.utblood, visitanc.cramp,visitanc.urinary, visitanc.heartattach, visitanc.fundus, visitanc.positionbaby, visitanc.pilot, visitanc.heartbaby,(CASE WHEN IF(datecheck IS NOT NULL AND lmp IS NOT NULL,DATEDIFF(datecheck,lmp)/7,0) <= 12        AND IF(datecheck IS NOT NULL AND lmp IS NOT NULL,DATEDIFF(datecheck,lmp)/7,0) <> 0 THEN '1'                  WHEN IF(datecheck IS NOT NULL AND lmp IS NOT NULL,DATEDIFF(datecheck,lmp)/7,0) >= 16        AND IF(datecheck IS NOT NULL AND lmp IS NOT NULL,DATEDIFF(datecheck,lmp)/7,0) <= 20 THEN '2'                     WHEN IF(datecheck IS NOT NULL AND lmp IS NOT NULL,DATEDIFF(datecheck,lmp)/7,0) >= 24        AND IF(datecheck IS NOT NULL AND lmp IS NOT NULL,DATEDIFF(datecheck,lmp)/7,0) <= 28 THEN '3'                     WHEN IF(datecheck IS NOT NULL AND lmp IS NOT NULL,DATEDIFF(datecheck,lmp)/7,0) >= 30        AND IF(datecheck IS NOT NULL AND lmp IS NOT NULL,DATEDIFF(datecheck,lmp)/7,0) <= 34 THEN '4'                     WHEN IF(datecheck IS NOT NULL AND lmp IS NOT NULL,DATEDIFF(datecheck,lmp)/7,0) >= 36        AND IF(datecheck IS NOT NULL AND lmp IS NOT NULL,DATEDIFF(datecheck,lmp)/7,0) <= 40 THEN '5'                     ELSE ''  END) as ancno,IF((visitanc.hosservice IS NULL OR visitanc.hosservice=''),ifnull(visitanc.pcucode,'00000'),visitanc.hosservice) AS aplace ,CASE WHEN (DATEDIFF(datecheck,lmp)/7)<=12 THEN FLOOR(DATEDIFF(datecheck,lmp)/7)       WHEN (DATEDIFF(datecheck,lmp)/7)>12 AND (DATEDIFF(datecheck,lmp)/7)<16       THEN (CASE WHEN (DATEDIFF(datecheck,lmp)/7)<13 THEN 13                  WHEN (DATEDIFF(datecheck,lmp)/7)>=15 THEN 15                  ELSE 14 END)      WHEN (DATEDIFF(datecheck,lmp)/7)>=16 AND (DATEDIFF(datecheck,lmp)/7)<=20       THEN FLOOR(DATEDIFF(datecheck,lmp)/7)      WHEN (DATEDIFF(datecheck,lmp)/7)>20 AND (DATEDIFF(datecheck,lmp)/7)<24       THEN (CASE WHEN (DATEDIFF(datecheck,lmp)/7)<21 THEN 21                  WHEN (DATEDIFF(datecheck,lmp)/7)>=23 THEN 23                  ELSE 22 END)       WHEN (DATEDIFF(datecheck,lmp)/7)>=24 AND (DATEDIFF(datecheck,lmp)/7)<=28       THEN FLOOR(DATEDIFF(datecheck,lmp)/7)       WHEN (DATEDIFF(datecheck,lmp)/7)>28 AND (DATEDIFF(datecheck,lmp)/7)<30 THEN 29       WHEN (DATEDIFF(datecheck,lmp)/7)>=30 AND (DATEDIFF(datecheck,lmp)/7)<=34       THEN FLOOR(DATEDIFF(datecheck,lmp)/7)       WHEN (DATEDIFF(datecheck,lmp)/7)>34 AND (DATEDIFF(datecheck,lmp)/7)<36 THEN 35       WHEN (DATEDIFF(datecheck,lmp)/7)>=36 THEN FLOOR(DATEDIFF(datecheck,lmp)/7)  END AS pregageweek ,IF( visitanc.dateupdate IS NULL OR TRIM(visitanc.dateupdate)='' OR visitanc.dateupdate LIKE '0000-00-00%',DATE_FORMAT(visitanc.datecheck,'%Y%m%d%H%i%s'),DATE_FORMAT(visitanc.dateupdate,'%Y%m%d%H%i%s') ) AS d_update ,if(person.idcard is null or trim(person.idcard)='' or length(trim(person.idcard))<13,'',person.idcard) cid ,if(u.idcard is null or trim(u.idcard) ='','',u.idcard) provider ,IF(ancres IS NULL OR ancres NOT IN('1'),'2','1') ancres  FROM visitanc  join person on visitanc.pcucodeperson = person.pcucodeperson and visitanc.pid = person.pid  join visitancpregnancy vp on visitanc.pcucodeperson = vp.pcucodeperson and visitanc.pid = vp.pid and visitanc.pregno = vp.pregno  left join visit v on visitanc.pcucode=v.pcucode and visitanc.visitno=v.visitno  left join `user` u on v.pcucode = u.pcucode AND v.username = u.username  WHERE visitanc.pcucodeperson IS NOT NULL AND TRIM(visitanc.pcucodeperson)<>'' AND ((CASE WHEN IF(datecheck IS NOT NULL AND lmp IS NOT NULL,DATEDIFF(datecheck,lmp)/7,0) <= 12        AND IF(datecheck IS NOT NULL AND lmp IS NOT NULL,DATEDIFF(datecheck,lmp)/7,0) <> 0 THEN '1'                       WHEN IF(datecheck IS NOT NULL AND lmp IS NOT NULL,DATEDIFF(datecheck,lmp)/7,0) >= 16        AND IF(datecheck IS NOT NULL AND lmp IS NOT NULL,DATEDIFF(datecheck,lmp)/7,0) <= 20 THEN '2'             WHEN IF(datecheck IS NOT NULL AND lmp IS NOT NULL,DATEDIFF(datecheck,lmp)/7,0) >= 24        AND IF(datecheck IS NOT NULL AND lmp IS NOT NULL,DATEDIFF(datecheck,lmp)/7,0) <= 28 THEN '3'                     WHEN IF(datecheck IS NOT NULL AND lmp IS NOT NULL,DATEDIFF(datecheck,lmp)/7,0) >= 30        AND IF(datecheck IS NOT NULL AND lmp IS NOT NULL,DATEDIFF(datecheck,lmp)/7,0) <= 34 THEN '4'                     WHEN IF(datecheck IS NOT NULL AND lmp IS NOT NULL,DATEDIFF(datecheck,lmp)/7,0) >= 36        AND IF(datecheck IS NOT NULL AND lmp IS NOT NULL,DATEDIFF(datecheck,lmp)/7,0) <= 40 THEN '5'                     ELSE '0'  END)  IN('1','2','3','4','5','0','') ) AND ((visitanc.datecheck BETWEEN '2018-04-01' AND '2018-04-30'))ORDER BY visitanc.pcucodeperson ASC, visitanc.datecheck DESC, visitanc.visitno DESC

32->epi:= SELECT DISTINCT  trim(visitepi.pcucodeperson) AS pcucode, visitepi.pid, visitepi.visitno AS seq ,IF(LCase(LEFT(vaccinecode,2))='tt',IF(dateepi>'2016-09-30','101',cdrug.files18epi)    ,IF(LCase(vaccinecode) IN('dt1','dt2','dt3','dt4','dt5')      ,IF(dateepi>'2016-09-30','106',cdrug.files18epi),cdrug.files18epi)) AS vcctype ,IF(visitepi.dateepi IS NULL OR TRIM(visitepi.dateepi)='' OR visitepi.dateepi LIKE '0000-00-00%','',DATE_FORMAT(visitepi.dateepi,'%Y%m%d')) AS date_serv  ,IF(visitepi.hosservice IS NULL OR visitepi.hosservice='',ifnull(visitepi.pcucode,'00000'),trim(visitepi.hosservice)) AS vccplace  ,IF(visitepi.dateupdate IS NULL OR TRIM(visitepi.dateupdate)='' OR      visitepi.dateupdate LIKE '0000-00-00%',DATE_FORMAT(visitepi.dateepi,'%Y%m%d%H%i%s') ,DATE_FORMAT(visitepi.dateupdate,'%Y%m%d%H%i%s') ) AS d_update  ,if(person.idcard is null or trim(person.idcard)='' or length(trim(person.idcard))<13,'',person.idcard) cid  ,if(u.idcard is null or trim(u.idcard) ='','',u.idcard) provider  FROM visitepi  join person on visitepi.pcucodeperson = person.pcucodeperson and visitepi.pid = person.pid  LEFT JOIN cdrug ON (visitepi.vaccinecode=cdrug.drugcode AND cdrug.drugtype='05')  left join visit v on visitepi.pcucode=v.pcucode and visitepi.visitno=v.visitno  left join `user` u on v.pcucode = u.pcucode AND v.username = u.username  WHERE visitepi.dateepi IS NOT NULL AND TRIM(visitepi.dateepi)<>''  AND TRIM(visitepi.pcucodeperson)<>'' AND visitepi.pcucodeperson='04232'  AND ((visitepi.dateepi BETWEEN '2018-04-01' AND '2018-04-30') OR (DATE(visitepi.dateupdate) BETWEEN '2018-04-01' AND '2018-04-30')) ORDER BY visitepi.pcucodeperson ASC, visitepi.dateepi DESC, visitepi.visitno DESC

33->FP SELECT DISTINCT  trim(visitfp.pcucodeperson) AS pcucode, visitfp.pid, visitfp.visitno,  visitfp.fpcode AS did,  IF(cdrug.drugcode24 IS NOT NULL AND cdrug.drugcode24<>'', cdrug.drugcode24, IF(LENGTH(cdrug.drugcode)=19,CONCAT(cdrug.drugcode,'00000'),cdrug.drugcode)) AS didstd,  visitfp.unit,  IF(visitfp.datefp IS NULL OR TRIM(visitfp.datefp)='' OR visitfp.datefp LIKE '0000-00-00%','',DATE_FORMAT(visitfp.datefp,'%Y%m%d')) AS date_serv,  IF(visitfp.hosservice IS NULL OR visitfp.hosservice='' OR visitfp.hosservice IS NULL,trim(visitfp.pcucode),trim(visitfp.hosservice)) AS fpplace,  cdrug.drugtypesub,  IF( visitfp.dateupdate IS NULL OR TRIM(visitfp.dateupdate)='' OR visitfp.dateupdate LIKE '0000-00-00%',DATE_FORMAT(visitfp.datefp,'%Y%m%d%H%i%s'),DATE_FORMAT(visitfp.dateupdate,'%Y%m%d%H%i%s') ) AS d_update  ,if(person.idcard is null or trim(person.idcard)='' or length(trim(person.idcard))<13,'',person.idcard) cid  ,if(u.idcard is null,ifnull(v.username,''),u.idcard) provider FROM visitfp  join person on visitfp.pcucodeperson = person.pcucodeperson and visitfp.pid = person.pid  LEFT JOIN cdrug ON (visitfp.fpcode=cdrug.drugcode)  left join visit v on visitfp.pcucode=v.pcucode and visitfp.visitno=v.visitno  left join `user` u on v.pcucode = u.pcucode AND v.username = u.username  WHERE visitfp.datefp IS NOT NULL AND TRIM(visitfp.datefp)<>''      AND fpcode <> 'fp0000'     AND TRIM(visitfp.pcucodeperson)<>'' AND visitfp.pcucodeperson='04232'      AND  getAgeYearNum(birth,datefp) > 8      AND (getAgeYearNum(birth,datefp) < 60  OR (getAgeYearNum(birth,datefp)=60 AND getAgeMonthNum(birth,datefp)=0 AND getAgeDayNum(birth,datefp)=0)) AND (visitfp.datefp BETWEEN '2018-04-01' AND '2018-04-30') ORDER BY visitfp.pcucodeperson ASC, visitfp.datefp DESC, visitfp.visitno DESC

34->Nutri: SELECT vnu.pcucode,nu.pid,nu.vn as seq ,IF(nu.nLastDate IS NULL OR TRIM(nu.nLastDate)='' OR nu.nLastDate LIKE '0000-00-00%','',DATE_FORMAT(nu.nLastDate,'%Y%m%d')) AS date_serv ,(getAgeYearNum(p.birth,nLastDate)*12)+getAgeMonthNum(p.birth,nLastDate) AS agemonth ,nu.weight AS weightkg,nu.tall AS heightcm,nlevel,IF(vnu.dateupdate IS NULL OR TRIM(vnu.dateupdate)='' OR vnu.dateupdate LIKE '0000-00-00%',DATE_FORMAT(vs.visitdate,'%Y%m%d%H%i%s'),DATE_FORMAT(vnu.dateupdate,'%Y%m%d%H%i%s') ) AS d_update ,p.idcard AS cid,p.sex,IF(nu.headcycle IS NULL OR nu.headcycle='','',FORMAT(nu.headcycle,0)) headcycle,IF(nu.growdevelop IS NULL OR nu.growdevelop='','',IF(nu.growdevelop IN('1','2'),nu.growdevelop,'3')) AS growdevelop ,IF(nu.food IS NULL OR nu.food='','0',nu.food) AS food ,IF(nu.bottle IS NULL OR nu.bottle NOT IN('1','2'),'2',nu.bottle) AS bottle ,if(u.idcard is null or trim(u.idcard) ='','',u.idcard) provider  FROM person p  JOIN  (SELECT nutri.pcucodeperson,nutri.pid,nutri.pcucode,nutri.visitno as vn ,max(mvd) AS nLastDate ,nutri.weight,tall ,ifnull(nutri.headcycle,'') headcycle,IF(growdevelop IS NULL OR TRIM(growdevelop)='','',IF(growdevelop IN('1','2'),growdevelop,'3')) growdevelop ,IF(food IS NULL OR food NOT IN('0','1','2','3','4'),'',food) food ,IF(bottle IS NULL OR bottle NOT IN('1','2'),'',bottle) bottle  FROM (SELECT pcucodeperson,pid,v.visitdate mvd,v.pcucode,v.visitno,vnu.weight ,tall ,vnu.headcycle,ifnull(growdevelop,'1') growdevelop ,ifnull(food,'0') food ,ifnull(bottle,'') bottle                 from visit v            join visitnutrition vnu on v.pcucode = vnu.pcucode and v.visitno = vnu.visitno                  WHERE vnu.weight is not NULL AND vnu.tall IS NOT NULL  AND ((visitdate BETWEEN '2018-04-01' AND '2018-04-30')      OR (DATE(vnu.dateupdate) BETWEEN '2018-04-01' AND '2018-04-30'))                  order by pid,v.visitdate DESC,v.visitno DESC              ) as nutri  GROUP BY pcucodeperson,pid ORDER BY pid     )as nu ON p.pcucodeperson=nu.pcucodeperson and p.pid=nu.pid  JOIN visitnutrition vnu ON nu.pcucode=vnu.pcucode AND nu.vn=vnu.visitno  JOIN visit vs ON vnu.pcucode=vs.pcucode AND vnu.visitno=vs.visitno  left join `user` u on vs.pcucode = u.pcucode AND vs.username = u.username  WHERE p.nation IN('94','95','99','094','095','099') AND       (vs.flagservice='01' OR vs.flagservice='02' OR vs.flagservice='03' OR vs.flagservice IS NULL OR TRIM(vs.flagservice)='')    AND TRIM(vnu.pcucode)<>'' AND vnu.pcucode='04232'    AND ((vnu.weight IS NOT NULL AND vnu.weight>0) AND (vnu.tall IS NOT NULL AND vnu.tall>0))

35->NCDScreen: SELECT trim(ns.pcucode) as pcucode,ns.pid,ns.visitno as visitno,IF(ns.screen_date IS NULL OR TRIM(ns.screen_date)='' OR ns.screen_date LIKE '0000-00-00%','',DATE_FORMAT(ns.screen_date,'%Y%m%d')) AS screen_date,ns.servplace,ns.smoke,ns.alcohol ,if(screen_q1<>'1','2','1') as screen_q1,ns.htfamily as htfamily ,FORMAT(ns.weight,1) weight ,FORMAT(ns.height,0) height,ROUND(ns.waist) as waist,ns.hbp_s1 as hbp_s1,ns.hbp_d1 as hbp_d1,ifnull(ns.hbp_s2,ns.hbp_s1) as hbp_s2,ifnull(ns.hbp_d2,ns.hbp_d1) as hbp_d2,IF(ns.bsl IS NULL OR ns.bsl<1,'',ns.bsl) bsl ,IF(ns.bstest IS NULL OR ns.bstest NOT IN('1','2','3','4') OR ns.bsl<1,'',ns.bstest) as bstest ,ns.pcucode pc ,IF(ns.dateupdate IS NULL OR TRIM(ns.dateupdate)='' OR ns.dateupdate LIKE '0000-00-00%',           DATE_FORMAT(ns.screen_date,'%Y%m%d%H%i%s'),           DATE_FORMAT(ns.dateupdate,'%Y%m%d%H%i%s') ) AS dateupdate ,person.idcard AS cid ,IFNULL(u.idcard,'') provider  FROM ncd_person_ncd_screen ns  LEFT JOIN (SELECT pcucodeperson ,pid ,IF(deaddate IS NULL OR YEAR(deaddate)='0000','1890-01-01',deaddate) dd  FROM persondeath pd ) pde ON ns.pcucode=pde.pcucodeperson AND ns.pid=pde.pid  LEFT JOIN `user` u ON ns.pcucode = u.pcucode AND ns.user_update=u.username join person on ns.pcucode = person.pcucodeperson AND ns.pid = person.pid  AND  (ns.screen_date IS not NULL AND TRIM(ns.screen_date)<>'' AND ns.screen_date not LIKE '0000-00-00%') AND getAgeYearNum(person.birth,ns.screen_date) >  14  AND (pde.dd>=screen_date or pde.pid IS NULL)  AND (ns.screen_date >= '2010-01-01')  AND ((ns.screen_date BETWEEN '2018-04-01' AND '2018-04-30') )ORDER BY ns.pcucode ASC, ns.screen_date DESC, ns.visitno DESC

36->ChronicFU: SELECT DISTINCT visit.pcucodeperson,visit.pid,visit.seq visitno           ,date_serv AS visitdate,visit.weight,visit.height,ROUND(visit.waist) as waist ,pup AS sbp, plo AS dbp ,IF(visit.examfoot is NULL or (TRIM(visit.examfoot)=''),'2',IF(visit.examfoot in('0','1'),'1','3')) AS examfoot , CASE WHEN visit.eyeopthalmoscope ='1' THEN 1 WHEN visit.eyeopthalmoscope ='2' THEN 2  WHEN visit.eyeopthalmoscope ='3' THEN 3 WHEN visit.eyeopthalmoscope ='4' THEN 4  WHEN visit.eyeopthalmoscope ='9' THEN 8 ELSE 9 END  AS eyeopthalmoscope ,IF(visit.dateupdate IS NULL OR TRIM(visit.dateupdate)='' OR visit.dateupdate LIKE '0000-00-00%',          concat(REPLACE(datefollow,'-',''),REPLACE(TIME(NOW()),':','')), DATE_FORMAT(visit.dateupdate,'%Y%m%d%H%i%s') ) AS dateupdate ,IFNULL(u.idcard,'') provider, hosserv, visit.cid  FROM       (select p.pcucodeperson, p.pid,diu.pcucode hosserv, seq, visit.username,datefollow                ,IFNULL(visit.weight,IFNULL(diu.weight,'')) weight               ,IFNULL(visit.height,IFNULL(diu.height,'')) height               ,IFNULL(visit.waist,IFNULL(diu.waistline,'')) waist ,if(pressure IS NULL OR TRIM(pressure)='' OR locate('/',pressure)<2,bps,left(pressure,locate('/',pressure)-1)) as pup ,if(pressure IS NULL OR TRIM(pressure)='' OR locate('/',pressure)<2,bpd,mid(pressure,locate('/',pressure)+1,length(pressure)-locate('/',pressure))) as plo                ,IF(datefollow IS NULL OR TRIM(datefollow)='' OR datefollow LIKE '0000-00-00%','',                    DATE_FORMAT(datefollow,'%Y%m%d')) AS date_serv                ,examfoot, eyeopthalmoscope                ,diu.dateupdate                ,if(p.idcard is null or trim(p.idcard)='' or length(trim(p.idcard))<13,'',p.idcard) cid        FROM (select pcucode, seq, examfoot, eyeopthalmoscope, dateupdate, pcucodeperson, pid, datefollow                          ,weight, height, waistline, bps, bpd                  FROM ncdservice  WHERE (DATE(ncdservice.dateupdate) BETWEEN '2018-04-01' AND '2018-04-30'           OR ncdservice.datefollow BETWEEN '2018-04-01' AND '2018-04-30')                 ) AS diu        LEFT JOIN visit        ON diu.pcucodeperson=visit.pcucode AND diu.seq=visit.visitno        JOIN person p ON diu.pcucodeperson=p.pcucodeperson AND diu.pid=p.pid        ) as visit  LEFT join            (SELECT DISTINCT pcucodeperson,pid FROM personchronic             WHERE ((lcase(left(chroniccode,3)) between 'e10' and 'e14')                OR (lcase(left(chroniccode,3)) between 'i10' and 'i15'))           ) AS pcn on visit.pcucodeperson = pcn.pcucodeperson and visit.pid = pcn.pid  LEFT JOIN `user` u ON visit.username=u.username LEFT JOIN (SELECT pcucodeperson ,pid ,IF(deaddate IS NULL OR YEAR(deaddate)='0000','1890-01-01',deaddate) dd FROM persondeath pd ) pde ON visit.pcucodeperson=pde.pcucodeperson AND visit.pid=pde.pid  where        visit.eyeopthalmoscope in('1','2','3','4','8','9')  AND (pde.dd>=datefollow or pde.pid IS NULL)

37->LABFU ==>> SELECT v.pcucode,v.pid,v.seq visitno,v.date_serv ,case WHEN (v.typetesting is null OR v.typetesting='1') AND v.foodsuspend='0' then '0531101'       WHEN (v.typetesting is null OR v.typetesting='1') AND v.foodsuspend='1' then '0531102'       WHEN (v.typetesting='2') AND v.foodsuspend='0' then '0531002'       WHEN (v.typetesting='2') AND v.foodsuspend='1' then '0531004'       else '0531101' END as labcode ,v.sugarnumdigit ,IF(v.dateupdate IS NULL OR TRIM(v.dateupdate)='' OR v.dateupdate LIKE '0000-00-00%'    ,concat(replace(v.date_serv,'-',''),left(REPLACE(TIME(NOW()),':',''),2),'0',left(v.pid,1),right(REPLACE(TIME(NOW()),':',''),2))   ,DATE_FORMAT(v.dateupdate,'%Y%m%d%H%i%s') ) AS dateupdate     ,v.pcucode hosservice    ,if(p.idcard is null or trim(p.idcard)='' or length(trim(p.idcard))<13,'',p.idcard) cid  FROM (       select pcucodeperson,visit.pcucode, visit.pid,visitdate, visit.visitno AS seq, visit.username,flagservice              ,IF(visit.visitdate IS NULL OR TRIM(visit.visitdate)='' OR visit.visitdate LIKE '0000-00-00%','',DATE_FORMAT(visit.visitdate,'%Y%m%d')) AS date_serv              ,sugarnumdigit,typetesting,foodsuspend,diu.dateupdate        from (select pcucode, visitno,sugarnumdigit,typetesting,foodsuspend,dateupdate from visitlabsugarblood              WHERE DATE(dateupdate) BETWEEN '2018-04-01' AND '2018-04-30' GROUP BY visitno             ) AS diu        JOiN visit        ON diu.pcucode=visit.pcucode AND diu.visitno=visit.visitno       ) as v  JOIN person p on v.pcucodeperson=p.pcucodeperson and v.pid=p.pid  LEFT JOIN (SELECT pcucodeperson ,pid ,IF(deaddate IS NULL OR YEAR(deaddate)='0000','1890-01-01',deaddate) dd FROM persondeath pd ) pde ON v.pcucodeperson=pde.pcucodeperson AND v.pid=pde.pid  WHERE        v.sugarnumdigit IS NOT NULL  AND (pde.dd>=visitdate or pde.pid IS NULL)  AND ((v.visitdate BETWEEN '2018-04-01' AND '2018-04-30')  OR (date(v.dateupdate) BETWEEN '2018-04-01' AND '2018-04-30'))  UNION SELECT v.pcucodeperson as pcucode,v.pid,if(v.visitno is null OR v.visitno = '','',v.visitno) as visitno,        IF(v.datecheck IS NULL OR TRIM(v.datecheck)='' OR v.datecheck LIKE '0000-00-00%','',DATE_FORMAT(v.datecheck,'%Y%m%d')) AS date_serv ,IFNULL(cL.labmappingexpo43,v.labcode) AS labcode ,v.labresultdigit as sugarnumdigit,IF(v.dateupdate IS NULL OR TRIM(v.dateupdate)='' OR v.dateupdate LIKE '0000-00-00%'    ,concat(replace(v.datecheck,'-',''),left(REPLACE(TIME(NOW()),':',''),2),'0',left(v.pid,1),right(REPLACE(TIME(NOW()),':',''),2))   ,DATE_FORMAT(v.dateupdate,'%Y%m%d%H%i%s')) AS dateupdate    ,hosservice    ,if(p.idcard is null or trim(p.idcard)='' or length(trim(p.idcard))<13,'',p.idcard) cid  FROM        (select pcucodeperson,pid, pcucode,visitno,labresultdigit,labcode,datecheck,dateupdate, hosservice        from visitlabchcyhembmsse        WHERE (DATE(dateupdate) BETWEEN '2018-04-01' AND '2018-04-30'                 OR datecheck BETWEEN '2018-04-01' AND '2018-04-30')       ) as v  LEFT join clabchcyhembmsse cL ON v.labcode=cL.labcode  join person p on v.pcucodeperson=p.pcucodeperson and v.pid=p.pid  LEFT JOIN (SELECT pcucodeperson ,pid ,IF(deaddate IS NULL OR YEAR(deaddate)='0000','1890-01-01',deaddate) dd FROM persondeath pd ) pde ON v.pcucodeperson=pde.pcucodeperson AND v.pid=pde.pid  WHERE v.labresultdigit is NOT null   AND (pde.dd>=datecheck or pde.pid IS NULL)  AND ((v.datecheck BETWEEN '2018-04-01' AND '2018-04-30')  OR (date(v.dateupdate) BETWEEN '2018-04-01' AND '2018-04-30'))  GROUP BY v.pcucodeperson,v.pid,v.visitno,v.datecheck,v.labcode

38->ChargeOPD:==>> SELECT v.pcucode hospcode,v.pid,v.visitno seq ,REPLACE(visitdate,'-','') date_serv ,'00000' clinic ,chargeitem,chargelist ,SUM(unit) quantity ,IF(mapright IS NULL OR LENGTH(mapright)<>4,'9100',mapright) instype ,replace(FORMAT(SUM(IF(vd.unit IS NULL OR TRIM(vd.unit)='',0,vd.unit)*IF(vd.costprice IS NULL OR TRIM(vd.costprice)='',0,vd.costprice)),2),',','') cost,replace(FORMAT(SUM(IF(vd.unit IS NULL OR TRIM(vd.unit)='',0,vd.unit)*IF(vd.realprice IS NULL OR TRIM(vd.realprice)='',0,vd.realprice)),2),',','') price,replace(FORMAT(SUM(IF(vd.unit IS NULL OR TRIM(vd.unit)='',0,vd.unit)*IF(vd.noclaimprice IS NULL OR TRIM(vd.noclaimprice)='',0,vd.noclaimprice)),2),',','') payprice,IF(v.dateupdate IS NULL OR v.dateupdate LIKE '0000-00-00%',DATE_FORMAT(v.visitdate,'%Y%m%d%H%i%s'),DATE_FORMAT(v.dateupdate,'%Y%m%d%H%i%s') ) AS d_update ,if(v.idcard is null or trim(v.idcard)='' or length(trim(v.idcard))<13,'',v.idcard) cid  FROM visitdrug vd  JOIN(      SELECT vs.pcucode ,vs.visitno ,vs.pcucodeperson,vs.pid ,vs.visitdate ,vs.dateupdate ,vs.rightcode, p.idcard       FROM visitdrug d       JOIN visit vs ON d.pcucode=vs.pcucode and d.visitno=vs.visitno       JOIN person p ON vs.pcucodeperson=p.pcucodeperson and vs.pid=p.pid  WHERE vs.visitdate BETWEEN '2018-04-01' AND '2018-04-30' Group By vs.pcucode,vs.visitno      ) AS v  ON vd.pcucode=v.pcucode AND vd.visitno=v.visitno  LEFT JOIN cright cr ON v.rightcode = cr.rightcode  JOIN cdrug cd ON  vd.drugcode=cd.drugcode  WHERE chargeitem IS NOT NULL AND chargelist IS NOT NULL  GROUP BY v.pcucode,v.visitno,chargeitem,chargelist

39->Provider:  SELECT pcucode hospcode,ifnull(idcard,'') provider ,ifnull(noofoccupation,'') registerno ,if(council IS NULL OR council NOT IN('01','02','03','04','05','06','07'),'',council) council ,ifnull(idcard,'') cid ,ifnull(prename,'') pn,ifnull(fname,'') name,ifnull(lname,'') lname ,ifnull(usersex,'2') sex ,IF(zero2null(userbirth) IS NULL,'',REPLACE(userbirth,'-','')) birth ,CASE WHEN officertype ='1' THEN '01' WHEN officertype ='2' THEN '02' WHEN officertype ='3' THEN '03'       WHEN officertype ='5' THEN '04' WHEN officertype ='4' THEN '05' WHEN officertype ='6' THEN '06'       WHEN officertype ='8' THEN '08' WHEN LCase(officertype) ='w' THEN '07'       WHEN LCase(officertype) ='a' THEN '10'       WHEN officertype IN('081','082','083','084','085') THEN officertype  ELSE '09' END providertype ,IF(zero2null(dateworkhere) IS NULL,'',REPLACE(dateworkhere,'-','')) startdate ,IF(zero2null(datemovehere) IS NULL,'',REPLACE(datemovehere,'-','')) outdate ,ifnull(pcucodemovefrom,'') moveform ,ifnull(pcucodemoveto,'') moveto ,REPLACE(REPLACE(REPLACE(IFNULL(`user`.dateupdate,CONCAT(CURDATE(),CURTIME())),'-',''),' ',''),':','') d_update  FROM `user`  LEFT JOIN (SELECT pcucode p, username u FROM visit               WHERE (visit.visitdate BETWEEN '2018-04-01' AND '2018-04-30')                OR (DATE(visit.dateupdate) BETWEEN '2018-04-30' AND '2018-04-30')             GROUP BY pcucode,username            ) AS xu ON `user`.pcucode=xu.p AND `user`.username=xu.u WHERE (lcase(username) NOT IN('adm','newuser','drug_store_admin','move_all_person_out','usr_create_func','usr_db','student_update') AND LCASE(LEFT(username,10)) NOT IN('code_manag','usr_repair')   AND TRIM(username)<>''   AND pcucode ='04232'  AND ((DATE(`user`.dateupdate) between '2018-04-01' AND '2018-04-30')  AND (lcase(username) NOT IN('adm','newuser','drug_store_admin','move_all_person_out','usr_create_func','usr_db','student_update') AND LCASE(LEFT(username,10)) NOT IN('code_manag','usr_repair')))) OR (xu.p IS NOT NULL)

40->Address = SELECT person.pcucodeperson hospcode,person.pid,'1' addresstype ,IF(LENGTH(trim(hidmoi11))<11 OR hidmoi11 IS NULL,'',trim(hidmoi11)) house_id ,IF(housetype IS NULL OR housetype NOT IN('1','2','3','4','5','8','9'),'9',housetype) housetype ,IFNULL(roomno,'') roomno ,IFNULL(condo,'') condo  ,IFNULL(hnomoi,'') houseno ,IFNULL(soisub,'') soisub ,IFNULL(soimain,'') soimain ,IFNULL(roadmoi,'') road ,'' villaname  ,IF(mumoi IS NULL OR trim(mumoi)='0' OR trim(mumoi)='','99',if(LENGTH(trim(mumoi))=1 ,concat('0',trim(mumoi)),mumoi)) village  ,IF(subdistcodemoi IS NULL OR trim(subdistcodemoi)='','99',subdistcodemoi) tambon  ,IF(distcodemoi IS NULL OR trim(distcodemoi)='','99',IF(distcodemoi='99','01',distcodemoi)) ampur  ,IF(provcodemoi IS NULL OR trim(provcodemoi)='','99',provcodemoi) changwat  ,REPLACE(REPLACE(REPLACE(IFNULL(person.dateupdateaddressout,CONCAT(CURDATE(),CURTIME())),'-',''),' ',''),':','') d_update  ,person.idcard cid  FROM person   JOIN house on person.pcucodeperson=house.pcucode AND person.hcode=house.hcode  WHERE (RIGHT(house.villcode,2)='00' OR person.typelive = '3')  AND (person.dateupdateaddressout BETWEEN '2018-04-01' AND '2018-04-30')  UNION SELECT person.pcucodeperson hospcode,person.pid,'2' addresstype ,IF(LENGTH(trim(hidmoi11))<11 OR hidmoi11 IS NULL,'',trim(hidmoi11)) house_id ,IF(typelive IN('0','1','3'),IF(housechar IS NULL OR housechar NOT IN('1','2','3','4','5','8','9'),'9'    ,CASE WHEN housechar='1' THEN '1' WHEN housechar='2' THEN '2' WHEN housechar='3' THEN '4'          WHEN housechar='4' THEN '3' WHEN housechar='5' THEN '5' WHEN housechar='9' THEN '8'     ELSE '9' END),'9') housetype ,IFNULL(roomno,'') roomno ,IFNULL(condo,'') condo  ,IFNULL(q.hno,'') houseno ,'' soisub ,'' soimain ,'' road ,'' villaname  ,IF(mu IS NULL OR trim(mu)='0' OR trim(mu)='','99',if(LENGTH(trim(mu))=1 ,concat('0',trim(mu)),mu)) village  ,IF(subdistcode IS NULL OR trim(subdistcode)='','99',subdistcode) tambon  ,IF(distcode IS NULL OR trim(distcode)='','99',IF(distcode='99','01',distcode)) ampur  ,IF(provcode IS NULL OR trim(provcode)='','99',provcode) changwat  ,REPLACE(REPLACE(REPLACE(IFNULL(person.dateupdateaddressout,CONCAT(CURDATE(),CURTIME())),'-',''),' ',''),':','') d_update ,person.idcard cid  FROM personaddresscontact q  JOIN person ON q.pcucodeperson=person.pcucodeperson AND q.pid=person.pid  JOIN house on person.pcucodeperson=house.pcucode AND person.hcode=house.hcode  WHERE (RIGHT(house.villcode,2)='00' OR person.typelive = '3')  AND (person.dateupdateaddressout BETWEEN '2018-04-01' AND '2018-04-30')

41->Newborn:  SELECT vc.pcucodechild hospcode,vc.pidchild pid,vc.pid mpid,vc.pregno gravida ,FLOOR(DATEDIFF(datedeliver,lmp)/7) ga,IF(datedeliver IS NULL OR YEAR(datedeliver)='0000','',REPLACE(datedeliver,'-','')) bdate ,IF(vd.delivertime IS NULL OR TRIM(vd.delivertime)='','',REPLACE(vd.delivertime,':','')) btime ,IF(vd.deliverplace IS NULL OR vd.deliverplace NOT IN('1','2','3','4'),'5',vd.deliverplace) bplace ,IF(vd.hosservice IS NULL OR TRIM(vd.hosservice) ='','00000',vd.hosservice) bhosp ,IF(birthno IS NULL OR TRIM(birthno)='','1',birthno) birthno ,IF(vc.delivertype IS NULL OR TRIM(vc.delivertype)='','1',vc.delivertype) btype ,IF(vd.operater IS NULL OR vd.operater NOT IN('1','2','3','4','5'),'1',vd.operater) bdoctor ,IF(vc.weight IS NULL OR TRIM(vc.weight)='','',vc.weight) bweight ,IF(a1 IS NULL AND p1 IS NULL AND g1 IS NULL AND x1 IS NULL AND r1 IS NULL   ,IF(apgar1minutesum IS NULL OR ABS(apgar1minutesum)>10,'99',ABS(apgar1minutesum))    ,IF(IFNULL(ABS(a1),0)+IFNULL(ABS(p1),0)+IFNULL(ABS(g1),0)+IFNULL(ABS(x1),0)+IFNULL(ABS(r1),0)>10,'99',    IFNULL(ABS(a1),0)+IFNULL(ABS(p1),0)+IFNULL(ABS(g1),0)+IFNULL(ABS(x1),0)+IFNULL(ABS(r1),0)))  asphyxia  ,CASE WHEN vc.vitamink='0' THEN '2' WHEN vc.vitamink IN('1','2') THEN '1' ELSE '9' END vitk ,IF(vc.tsh IS NULL OR vc.tsh NOT IN('1','2','9'),'9',vc.tsh) tsh ,IF(vc.tsh IS NULL OR vc.tsh<>'1','',IF(tshresult IS NULL OR TRIM(tshresult)='','',FORMAT(tshresult,1))) tshresult ,REPLACE(REPLACE(REPLACE(IFNULL(vc.dateupdate,CONCAT(CURDATE(),CURTIME())),'-',''),' ',''),':','') d_update  ,if(p.idcard is null or trim(p.idcard)='' or length(trim(p.idcard))<13,'',p.idcard) cid  FROM visitancdeliverchild vc  JOIN visitancdeliver vd on vc.pcucodeperson=vd.pcucodeperson and vc.pid=vd.pid and vc.pregno=vd.pregno  JOIN visitancpregnancy vp ON vc.pcucodeperson=vp.pcucodeperson AND vc.pid=vp.pid AND vc.pregno=vp.pregno  join person p on vc.pcucodechild=p.pcucodeperson and vc.pidchild=p.pid  WHERE  (vd.datedeliver between '2018-04-01' AND '2018-04-30') OR (DATE(vc.dateupdate) between '2018-04-01' AND '2018-04-30')

42->Person=>> SELECT DISTINCT  trim(person.pcucodeperson) AS pcucode, person.idcard, person.pid, person.hcode,  person.prename, person.fname, person.lname, person.sex,  IF(person.birth IS NULL OR TRIM(person.birth)='' OR person.birth LIKE '0000-00-00%','',DATE_FORMAT(person.birth,'%Y%m%d')) AS birth,  person.roadmoi, person.hnomoi,  if(length(trim(person.mumoi))=1,concat('0',trim(person.mumoi)),if(trim(person.mumoi)='' or mumoi is NULL,'00',mumoi)) as mumoi,  person.subdistcodemoi, person.distcodemoi, person.provcodemoi,  person.marystatus,  IF(person.origin IS NULL OR TRIM(person.origin)='','',person.origin) AS origin,  IF(person.nation IS NULL OR TRIM(person.nation)='','',person.nation) AS nation,person.religion,IF(person.educate IS NULL OR person.educate NOT IN('00','01','02','03','04','05','06','09'),'09',person.educate) educate , person.familyposition, person.fatherid, person.motherid, person.mateid,  IF(person.datein IS NULL OR TRIM(person.datein)='' OR person.datein LIKE '0000-00-00%','',DATE_FORMAT(person.datein,'%Y%m%d')) AS movein,  person.dischargetype AS dischar,  IF(person.dischargedate IS NULL OR TRIM(person.dischargedate)='' OR person.dischargedate LIKE '0000-00-00%','',DATE_FORMAT(person.dischargedate,'%Y%m%d')) AS ddisch,  concat(ifnull(bloodgroup,''),ifnull(bloodrh,'')) as bloodgroup , if(nation='94' or nation='95' or nation='99','',if(intercode IN('01','02','03','11','12','13','14','15','16','17','18','21','22','23'),intercode,'23') ) as intercode, if(typelive='0','1',if(typelive='5','0',typelive)) as typelive,  IF(house.villcode IS NOT NULL,house.villcode,'') AS villcode,  IF(length(occupa)<>3,'',occupa) AS mapoccupation,  IF(cnation.mapnation IS NOT NULL AND TRIM(cnation.mapnation)<>'',cnation.mapnation,'') AS mapnation,  IF(cnationrace.mapnation IS NOT NULL AND TRIM(cnationrace.mapnation)<>'',cnationrace.mapnation,'') AS maporigin,  IF( person.dateupdate IS NULL OR TRIM(person.dateupdate)='' OR person.dateupdate LIKE '0000-00-00%','',DATE_FORMAT(person.dateupdate,'%Y%m%d%H%i%s') ) AS d_update ,if(length(trim(occupa))=4,occupa,if(o2.mapoccupa IS NULL OR length(trim(o2.mapoccupa))=0,'',o2.mapoccupa)) occupa_new ,pst.tp vstatus ,if(Ucase(bloodrh)='P','1',if(Ucase(bloodrh)='N','2','')) bloodrh ,ifnull(passpotnumber,'') passport ,IF(person.telephoneperson IS NULL,'',IF(LENGTH(trim(person.telephoneperson))>15,SUBSTRING(person.telephoneperson,15,1),person.telephoneperson)) telephone,IF(person.mobile IS NULL,'',IF(LENGTH(trim(person.mobile))>15,SUBSTRING(person.mobile,15,1),person.mobile)) mobile FROM person  LEFT JOIN house ON (person.pcucodeperson=house.pcucode AND person.hcode=house.hcode)  LEFT JOIN coccupa ON (person.occupa=coccupa.occupacode)  LEFT JOIN coccupa o2 ON (person.occupa=o2.occupacode)  JOIN _rit_person_tmp rtmp ON person.pcucodeperson=rtmp.pcucode AND person.pid=rtmp.pid  LEFT JOIN cnation ON (person.nation=cnation.nationcode)  LEFT JOIN cnation cnationrace ON (person.origin=cnationrace.nationcode)  LEFT JOIN persondeath pd ON person.pcucodeperson=pd.pcucodeperson AND person.pid=pd.pid  LEFT JOIN (SELECT t.pcucodeperson ,t.pid,CASE WHEN t.typecode IN('01','02') THEN '1' WHEN t.typecode ='09' THEN '2'       WHEN t.typecode IN('11','12') THEN '4' WHEN t.typecode ='03' THEN '3'       WHEN t.typecode IS NULL THEN '' ELSE '5' END AS tp  FROM persontype t WHERE t.typecode<>'10' GROUP BY t.pid) AS pst  ON person.pcucodeperson = pst.pcucodeperson AND person.pid = pst.pid  UNION DISTINCT SELECT DISTINCT  trim(person.pcucodeperson) AS pcucode, person.idcard, person.pid, person.hcode,  person.prename, person.fname, person.lname, person.sex,  IF(person.birth IS NULL OR TRIM(person.birth)='' OR person.birth LIKE '0000-00-00%','',DATE_FORMAT(person.birth,'%Y%m%d')) AS birth,  person.roadmoi, person.hnomoi,  if(length(trim(person.mumoi))=1,concat('0',trim(person.mumoi)),if(trim(person.mumoi)='' or mumoi is NULL,'00',mumoi)) as mumoi,  person.subdistcodemoi, person.distcodemoi, person.provcodemoi,  person.marystatus,  IF(person.origin IS NULL OR TRIM(person.origin)='','',person.origin) AS origin,  IF(person.nation IS NULL OR TRIM(person.nation)='','',person.nation) AS nation,person.religion,IF(person.educate IS NULL OR person.educate NOT IN('00','01','02','03','04','05','06','09'),'09',person.educate) educate , person.familyposition, person.fatherid, person.motherid, person.mateid,  IF(person.datein IS NULL OR TRIM(person.datein)='' OR person.datein LIKE '0000-00-00%','',DATE_FORMAT(person.datein,'%Y%m%d')) AS movein,  person.dischargetype AS dischar,  IF(person.dischargedate IS NULL OR TRIM(person.dischargedate)='' OR person.dischargedate LIKE '0000-00-00%','',DATE_FORMAT(person.dischargedate,'%Y%m%d')) AS ddisch,  concat(ifnull(bloodgroup,''),ifnull(bloodrh,'')) as bloodgroup , if(nation='94' or nation='95' or nation='99','',if(intercode IN('01','02','03','11','12','13','14','15','16','17','18','21','22','23'),intercode,'23') ) as intercode, if(typelive='0','1',if(typelive='5','0',typelive)) as typelive,  IF(house.villcode IS NOT NULL,house.villcode,'') AS villcode,  IF(length(occupa)<>3,'',occupa) AS mapoccupation,  IF(cnation.mapnation IS NOT NULL AND TRIM(cnation.mapnation)<>'',cnation.mapnation,'') AS mapnation,  IF(cnationrace.mapnation IS NOT NULL AND TRIM(cnationrace.mapnation)<>'',cnationrace.mapnation,'') AS maporigin,  IF( person.dateupdate IS NULL OR TRIM(person.dateupdate)='' OR person.dateupdate LIKE '0000-00-00%','',DATE_FORMAT(person.dateupdate,'%Y%m%d%H%i%s') ) AS d_update ,if(length(trim(occupa))=4,occupa,if(o2.mapoccupa IS NULL OR length(trim(o2.mapoccupa))=0,'',o2.mapoccupa)) occupa_new ,pst.tp vstatus ,if(Ucase(bloodrh)='P','1',if(Ucase(bloodrh)='N','2','')) bloodrh ,ifnull(passpotnumber,'') passport ,IF(person.telephoneperson IS NULL,'',IF(LENGTH(trim(person.telephoneperson))>15,SUBSTRING(person.telephoneperson,15,1),person.telephoneperson)) telephone,IF(person.mobile IS NULL,'',IF(LENGTH(trim(person.mobile))>15,SUBSTRING(person.mobile,15,1),person.mobile)) mobile FROM person  LEFT JOIN house ON (person.pcucodeperson=house.pcucode AND person.hcode=house.hcode)  LEFT JOIN coccupa ON (person.occupa=coccupa.occupacode)  LEFT JOIN coccupa o2 ON (person.occupa=o2.occupacode)  LEFT JOIN cnation ON (person.nation=cnation.nationcode)  LEFT JOIN cnation cnationrace ON (person.origin=cnationrace.nationcode)  INNER JOIN visit ON (person.pcucodeperson=visit.pcucodeperson AND person.pid=visit.pid)  LEFT JOIN (SELECT t.pcucodeperson ,t.pid,CASE WHEN t.typecode IN('01','02') THEN '1' WHEN t.typecode ='09' THEN '2'       WHEN t.typecode IN('11','12') THEN '4' WHEN t.typecode ='03' THEN '3'       WHEN t.typecode IS NULL THEN '' ELSE '5' END AS tp  FROM persontype t WHERE t.typecode<>'10' GROUP BY t.pid) AS pst  ON person.pcucodeperson = pst.pcucodeperson AND person.pid = pst.pid WHERE TRIM(person.pcucodeperson)<>'' AND person.pcucodeperson='04232' AND flagservice not in('04','05','06','07')AND trim(person.fname) <> 'เบิกวัสดุ' and visit.flagservice <> '99'  AND (visit.visitdate >= '2010-01-01') AND (visit.visitdate BETWEEN '2018-04-01' AND '2018-04-30')  UNION DISTINCT SELECT DISTINCT  trim(person.pcucodeperson) AS pcucode, person.idcard, person.pid, person.hcode,  person.prename, person.fname, person.lname, person.sex,  IF(person.birth IS NULL OR TRIM(person.birth)='' OR person.birth LIKE '0000-00-00%','',DATE_FORMAT(person.birth,'%Y%m%d')) AS birth,  person.roadmoi, person.hnomoi,  if(length(trim(person.mumoi))=1,concat('0',trim(person.mumoi)),if(trim(person.mumoi)='' or mumoi is NULL,'00',mumoi)) as mumoi,  person.subdistcodemoi, person.distcodemoi, person.provcodemoi,  person.marystatus,  IF(person.origin IS NULL OR TRIM(person.origin)='','',person.origin) AS origin,  IF(person.nation IS NULL OR TRIM(person.nation)='','',person.nation) AS nation,person.religion,IF(person.educate IS NULL OR person.educate NOT IN('00','01','02','03','04','05','06','09'),'09',person.educate) educate , person.familyposition, person.fatherid, person.motherid, person.mateid,  IF(person.datein IS NULL OR TRIM(person.datein)='' OR person.datein LIKE '0000-00-00%','',DATE_FORMAT(person.datein,'%Y%m%d')) AS movein,  person.dischargetype AS dischar,  IF(person.dischargedate IS NULL OR TRIM(person.dischargedate)='' OR person.dischargedate LIKE '0000-00-00%','',DATE_FORMAT(person.dischargedate,'%Y%m%d')) AS ddisch,  concat(ifnull(bloodgroup,''),ifnull(bloodrh,'')) as bloodgroup , if(nation='94' or nation='95' or nation='99','',if(intercode IN('01','02','03','11','12','13','14','15','16','17','18','21','22','23'),intercode,'23') ) as intercode, if(typelive='0','1',if(typelive='5','0',typelive)) as typelive,  IF(house.villcode IS NOT NULL,house.villcode,'') AS villcode,  IF(length(occupa)<>3,'',occupa) AS mapoccupation,  IF(cnation.mapnation IS NOT NULL AND TRIM(cnation.mapnation)<>'',cnation.mapnation,'') AS mapnation,  IF(cnationrace.mapnation IS NOT NULL AND TRIM(cnationrace.mapnation)<>'',cnationrace.mapnation,'') AS maporigin,  IF( person.dateupdate IS NULL OR TRIM(person.dateupdate)='' OR person.dateupdate LIKE '0000-00-00%','',DATE_FORMAT(person.dateupdate,'%Y%m%d%H%i%s') ) AS d_update ,if(length(trim(occupa))=4,occupa,if(o2.mapoccupa IS NULL OR length(trim(o2.mapoccupa))=0,'',o2.mapoccupa)) occupa_new ,pst.tp vstatus ,if(Ucase(bloodrh)='P','1',if(Ucase(bloodrh)='N','2','')) bloodrh ,ifnull(passpotnumber,'') passport ,IF(person.telephoneperson IS NULL,'',IF(LENGTH(trim(person.telephoneperson))>15,SUBSTRING(person.telephoneperson,15,1),person.telephoneperson)) telephone,IF(person.mobile IS NULL,'',IF(LENGTH(trim(person.mobile))>15,SUBSTRING(person.mobile,15,1),person.mobile)) mobile FROM person  LEFT JOIN house ON (person.pcucodeperson=house.pcucode AND person.hcode=house.hcode)  LEFT JOIN coccupa ON (person.occupa=coccupa.occupacode)  LEFT JOIN coccupa o2 ON (person.occupa=o2.occupacode)  LEFT JOIN cnation ON (person.nation=cnation.nationcode)  LEFT JOIN cnation cnationrace ON (person.origin=cnationrace.nationcode)  INNER JOIN personchronic ON (person.pcucodeperson=personchronic.pcucodeperson AND person.pid=personchronic.pid)  LEFT JOIN (SELECT t.pcucodeperson ,t.pid,CASE WHEN t.typecode IN('01','02') THEN '1' WHEN t.typecode ='09' THEN '2'       WHEN t.typecode IN('11','12') THEN '4' WHEN t.typecode ='03' THEN '3'       WHEN t.typecode IS NULL THEN '' ELSE '5' END AS tp  FROM persontype t WHERE t.typecode<>'10' GROUP BY t.pid) AS pst  ON person.pcucodeperson = pst.pcucodeperson AND person.pid = pst.pid WHERE TRIM(person.pcucodeperson)<>'' AND person.pcucodeperson='04232' AND trim(person.fname) <> 'เบิกวัสดุ'  AND (personchronic.dateupdate >= '2010-01-01') AND ( (personchronic.datedxfirst BETWEEN '2018-04-01' AND '2018-04-30') OR (personchronic.dateupdate BETWEEN '2018-04-01' AND '2018-04-30') )  UNION DISTINCT SELECT DISTINCT  trim(person.pcucodeperson) AS pcucode, person.idcard, person.pid, person.hcode,  person.prename, person.fname, person.lname, person.sex,  IF(person.birth IS NULL OR TRIM(person.birth)='' OR person.birth LIKE '0000-00-00%','',DATE_FORMAT(person.birth,'%Y%m%d')) AS birth,  person.roadmoi, person.hnomoi,  if(length(trim(person.mumoi))=1,concat('0',trim(person.mumoi)),if(trim(person.mumoi)='' or mumoi is NULL,'00',mumoi)) as mumoi,  person.subdistcodemoi, person.distcodemoi, person.provcodemoi,  person.marystatus,  IF(person.origin IS NULL OR TRIM(person.origin)='','',person.origin) AS origin,  IF(person.nation IS NULL OR TRIM(person.nation)='','',person.nation) AS nation,person.religion, IF(person.educate IS NULL OR person.educate NOT IN('00','01','02','03','04','05','06','09'),'09',person.educate) educate , person.familyposition, person.fatherid, person.motherid, person.mateid,  IF(person.datein IS NULL OR TRIM(person.datein)='' OR person.datein LIKE '0000-00-00%','',DATE_FORMAT(person.datein,'%Y%m%d')) AS movein,  person.dischargetype AS dischar,  IF(person.dischargedate IS NULL OR TRIM(person.dischargedate)='' OR person.dischargedate LIKE '0000-00-00%','',DATE_FORMAT(person.dischargedate,'%Y%m%d')) AS ddisch,  concat(ifnull(bloodgroup,''),ifnull(bloodrh,'')) as bloodgroup , if(nation='94' or nation='95' or nation='99','',if(intercode IN('01','02','03','11','12','13','14','15','16','17','18','21','22','23'),intercode,'23') ) as intercode, if(typelive='0','1',if(typelive='5','0',typelive)) as typelive,  IF(house.villcode IS NOT NULL,house.villcode,'') AS villcode,  IF(length(occupa)<>3,'',occupa) AS mapoccupation,  IF(cnation.mapnation IS NOT NULL AND TRIM(cnation.mapnation)<>'',cnation.mapnation,'') AS mapnation,  IF(cnationrace.mapnation IS NOT NULL AND TRIM(cnationrace.mapnation)<>'',cnationrace.mapnation,'') AS maporigin,  IF( person.dateupdate IS NULL OR TRIM(person.dateupdate)='' OR person.dateupdate LIKE '0000-00-00%','',DATE_FORMAT(person.dateupdate,'%Y%m%d%H%i%s') ) AS d_update ,if(length(trim(occupa))=4,occupa,if(o2.mapoccupa IS NULL OR length(trim(o2.mapoccupa))=0,'',o2.mapoccupa)) occupa_new ,pst.tp vstatus ,if(Ucase(bloodrh)='P','1',if(Ucase(bloodrh)='N','2','')) bloodrh ,ifnull(passpotnumber,'') passport ,IF(person.telephoneperson IS NULL,'',IF(LENGTH(trim(person.telephoneperson))>15,SUBSTRING(person.telephoneperson,15,1),person.telephoneperson)) telephone,IF(person.mobile IS NULL,'',IF(LENGTH(trim(person.mobile))>15,SUBSTRING(person.mobile,15,1),person.mobile)) mobile FROM person  LEFT JOIN house ON (person.pcucodeperson=house.pcucode AND person.hcode=house.hcode)  LEFT JOIN coccupa ON (person.occupa=coccupa.occupacode)  LEFT JOIN coccupa o2 ON (person.occupa=o2.occupacode)  LEFT JOIN cnation ON (person.nation=cnation.nationcode)  LEFT JOIN cnation cnationrace ON (person.origin=cnationrace.nationcode)  INNER JOIN persondeath ON (person.pcucodeperson=persondeath.pcucodeperson AND person.pid=persondeath.pid)  LEFT JOIN (SELECT t.pcucodeperson ,t.pid,CASE WHEN t.typecode IN('01','02') THEN '1' WHEN t.typecode ='09' THEN '2'       WHEN t.typecode IN('11','12') THEN '4' WHEN t.typecode ='03' THEN '3'       WHEN t.typecode IS NULL THEN '' ELSE '5' END AS tp  FROM persontype t WHERE t.typecode<>'10' GROUP BY t.pid) AS pst  ON person.pcucodeperson = pst.pcucodeperson AND person.pid = pst.pid  WHERE TRIM(person.pcucodeperson)<>'' AND person.pcucodeperson='04232' AND trim(person.fname)<>'เบิกวัสดุ'  AND (persondeath.dateupdate >= '2010-01-01') AND ( (persondeath.deaddate BETWEEN '2018-04-01' AND '2018-04-30') OR (persondeath.dateupdate BETWEEN '2018-04-01' AND '2018-04-30') )  UNION DISTINCT SELECT DISTINCT  trim(person.pcucodeperson) AS pcucode, person.idcard, person.pid, person.hcode,  person.prename, person.fname, person.lname, person.sex,  IF(person.birth IS NULL OR TRIM(person.birth)='' OR person.birth LIKE '0000-00-00%','',DATE_FORMAT(person.birth,'%Y%m%d')) AS birth,  person.roadmoi, person.hnomoi,  if(length(trim(person.mumoi))=1,concat('0',trim(person.mumoi)),if(trim(person.mumoi)='' or mumoi is NULL,'00',mumoi)) as mumoi,  person.subdistcodemoi, person.distcodemoi, person.provcodemoi,  person.marystatus,  IF(person.origin IS NULL OR TRIM(person.origin)='','',person.origin) AS origin,  IF(person.nation IS NULL OR TRIM(person.nation)='','',person.nation) AS nation,person.religion, IF(person.educate IS NULL OR person.educate NOT IN('00','01','02','03','04','05','06','09'),'09',person.educate) educate , person.familyposition, person.fatherid, person.motherid, person.mateid,  IF(person.datein IS NULL OR TRIM(person.datein)='' OR person.datein LIKE '0000-00-00%','',DATE_FORMAT(person.datein,'%Y%m%d')) AS movein,  person.dischargetype AS dischar,  IF(person.dischargedate IS NULL OR TRIM(person.dischargedate)='' OR person.dischargedate LIKE '0000-00-00%','',DATE_FORMAT(person.dischargedate,'%Y%m%d')) AS ddisch,  concat(ifnull(bloodgroup,''),ifnull(bloodrh,'')) as bloodgroup , if(nation='94' or nation='95' or nation='99','',if(intercode IN('01','02','03','11','12','13','14','15','16','17','18','21','22','23'),intercode,'23') ) as intercode, if(typelive='0','1',if(typelive='5','0',typelive)) as typelive,  IF(house.villcode IS NOT NULL,house.villcode,'') AS villcode,  IF(length(occupa)<>3,'',occupa) AS mapoccupation,  IF(cnation.mapnation IS NOT NULL AND TRIM(cnation.mapnation)<>'',cnation.mapnation,'') AS mapnation,  IF(cnationrace.mapnation IS NOT NULL AND TRIM(cnationrace.mapnation)<>'',cnationrace.mapnation,'') AS maporigin,  IF( person.dateupdate IS NULL OR TRIM(person.dateupdate)='' OR person.dateupdate LIKE '0000-00-00%','',DATE_FORMAT(person.dateupdate,'%Y%m%d%H%i%s') ) AS d_update ,if(length(trim(occupa))=4,occupa,if(o2.mapoccupa IS NULL OR length(trim(o2.mapoccupa))=0,'',o2.mapoccupa)) occupa_new ,pst.tp vstatus ,if(Ucase(bloodrh)='P','1',if(Ucase(bloodrh)='N','2','')) bloodrh ,ifnull(passpotnumber,'') passport ,IF(person.telephoneperson IS NULL,'',IF(LENGTH(trim(person.telephoneperson))>15,SUBSTRING(person.telephoneperson,15,1),person.telephoneperson)) telephone,IF(person.mobile IS NULL,'',IF(LENGTH(trim(person.mobile))>15,SUBSTRING(person.mobile,15,1),person.mobile)) mobile FROM person  LEFT JOIN house ON (person.pcucodeperson=house.pcucode AND person.hcode=house.hcode)  LEFT JOIN coccupa ON (person.occupa=coccupa.occupacode)  LEFT JOIN coccupa o2 ON (person.occupa=o2.occupacode)  LEFT JOIN cnation ON (person.nation=cnation.nationcode)  LEFT JOIN cnation cnationrace ON (person.origin=cnationrace.nationcode)  INNER JOIN women ON (person.pcucodeperson=women.pcucodeperson AND person.pid=women.pid)  LEFT JOIN (SELECT t.pcucodeperson ,t.pid,CASE WHEN t.typecode IN('01','02') THEN '1' WHEN t.typecode ='09' THEN '2'       WHEN t.typecode IN('11','12') THEN '4' WHEN t.typecode ='03' THEN '3'       WHEN t.typecode IS NULL THEN '' ELSE '5' END AS tp  FROM persontype t WHERE t.typecode<>'10' GROUP BY t.pid) AS pst  ON person.pcucodeperson = pst.pcucodeperson AND person.pid = pst.pid  WHERE TRIM(person.pcucodeperson)<>'' AND person.pcucodeperson='04232' AND trim(person.fname)<>'เบิกวัสดุ'  AND (women.dateupdate >= '2010-01-01' OR women.datesurvey >= '2010-01-01') AND ( (women.dateupdate BETWEEN '2018-04-01' AND '2018-04-30') OR (women.datesurvey BETWEEN '2018-04-01' AND '2018-04-30') )  UNION DISTINCT SELECT DISTINCT  trim(person.pcucodeperson) AS pcucode, person.idcard, person.pid, person.hcode,  person.prename, person.fname, person.lname, person.sex,  IF(person.birth IS NULL OR TRIM(person.birth)='' OR person.birth LIKE '0000-00-00%','',DATE_FORMAT(person.birth,'%Y%m%d')) AS birth,  person.roadmoi, person.hnomoi,  if(length(trim(person.mumoi))=1,concat('0',trim(person.mumoi)),if(trim(person.mumoi)='' or mumoi is NULL,'00',mumoi)) as mumoi,  person.subdistcodemoi, person.distcodemoi, person.provcodemoi,  person.marystatus,  IF(person.origin IS NULL OR TRIM(person.origin)='','',person.origin) AS origin,  IF(person.nation IS NULL OR TRIM(person.nation)='','',person.nation) AS nation,person.religion, IF(person.educate IS NULL OR person.educate NOT IN('00','01','02','03','04','05','06','09'),'09',person.educate) educate , person.familyposition, person.fatherid, person.motherid, person.mateid,  IF(person.datein IS NULL OR TRIM(person.datein)='' OR person.datein LIKE '0000-00-00%','',DATE_FORMAT(person.datein,'%Y%m%d')) AS movein,  person.dischargetype AS dischar,  IF(person.dischargedate IS NULL OR TRIM(person.dischargedate)='' OR person.dischargedate LIKE '0000-00-00%','',DATE_FORMAT(person.dischargedate,'%Y%m%d')) AS ddisch,  concat(ifnull(bloodgroup,''),ifnull(bloodrh,'')) as bloodgroup , if(nation='94' or nation='95' or nation='99','',if(intercode IN('01','02','03','11','12','13','14','15','16','17','18','21','22','23'),intercode,'23') ) as intercode, if(typelive='0','1',if(typelive='5','0',typelive)) as typelive,  IF(house.villcode IS NOT NULL,house.villcode,'') AS villcode,  IF(length(occupa)<>3,'',occupa) AS mapoccupation,  IF(cnation.mapnation IS NOT NULL AND TRIM(cnation.mapnation)<>'',cnation.mapnation,'') AS mapnation,  IF(cnationrace.mapnation IS NOT NULL AND TRIM(cnationrace.mapnation)<>'',cnationrace.mapnation,'') AS maporigin,  IF( person.dateupdate IS NULL OR TRIM(person.dateupdate)='' OR person.dateupdate LIKE '0000-00-00%','',DATE_FORMAT(person.dateupdate,'%Y%m%d%H%i%s') ) AS d_update ,if(length(trim(occupa))=4,occupa,if(o2.mapoccupa IS NULL OR length(trim(o2.mapoccupa))=0,'',o2.mapoccupa)) occupa_new ,pst.tp vstatus ,if(Ucase(bloodrh)='P','1',if(Ucase(bloodrh)='N','2','')) bloodrh ,ifnull(passpotnumber,'') passport ,IF(person.telephoneperson IS NULL,'',IF(LENGTH(trim(person.telephoneperson))>15,SUBSTRING(person.telephoneperson,15,1),person.telephoneperson)) telephone,IF(person.mobile IS NULL,'',IF(LENGTH(trim(person.mobile))>15,SUBSTRING(person.mobile,15,1),person.mobile)) mobile FROM person  LEFT JOIN house ON (person.pcucodeperson=house.pcucode AND person.hcode=house.hcode)  LEFT JOIN coccupa ON (person.occupa=coccupa.occupacode)  LEFT JOIN coccupa o2 ON (person.occupa=o2.occupacode)  LEFT JOIN cnation ON (person.nation=cnation.nationcode)  LEFT JOIN cnation cnationrace ON (person.origin=cnationrace.nationcode)  INNER JOIN visitepi ON (person.pcucodeperson=visitepi.pcucodeperson AND person.pid=visitepi.pid)  LEFT JOIN (SELECT t.pcucodeperson ,t.pid,CASE WHEN t.typecode IN('01','02') THEN '1' WHEN t.typecode ='09' THEN '2'       WHEN t.typecode IN('11','12') THEN '4' WHEN t.typecode ='03' THEN '3'       WHEN t.typecode IS NULL THEN '' ELSE '5' END AS tp  FROM persontype t WHERE t.typecode<>'10' GROUP BY t.pid) AS pst  ON person.pcucodeperson = pst.pcucodeperson AND person.pid = pst.pid  WHERE TRIM(person.pcucodeperson)<>'' AND person.pcucodeperson='04232' AND trim(person.fname)<>'เบิกวัสดุ'  AND (visitepi.dateepi >= '2010-01-01') AND (visitepi.dateepi BETWEEN '2018-04-01' AND '2018-04-30')  UNION DISTINCT SELECT DISTINCT  trim(person.pcucodeperson) AS pcucode, person.idcard, person.pid, person.hcode,  person.prename, person.fname, person.lname, person.sex,  IF(person.birth IS NULL OR TRIM(person.birth)='' OR person.birth LIKE '0000-00-00%','',DATE_FORMAT(person.birth,'%Y%m%d')) AS birth,  person.roadmoi, person.hnomoi,  if(length(trim(person.mumoi))=1,concat('0',trim(person.mumoi)),if(trim(person.mumoi)='' or mumoi is NULL,'00',mumoi)) as mumoi,  person.subdistcodemoi, person.distcodemoi, person.provcodemoi,  person.marystatus,  IF(person.origin IS NULL OR TRIM(person.origin)='','',person.origin) AS origin,  IF(person.nation IS NULL OR TRIM(person.nation)='','',person.nation) AS nation,person.religion, IF(person.educate IS NULL OR person.educate NOT IN('00','01','02','03','04','05','06','09'),'09',person.educate) educate , person.familyposition, person.fatherid, person.motherid, person.mateid,  IF(person.datein IS NULL OR TRIM(person.datein)='' OR person.datein LIKE '0000-00-00%','',DATE_FORMAT(person.datein,'%Y%m%d')) AS movein,  person.dischargetype AS dischar,  IF(person.dischargedate IS NULL OR TRIM(person.dischargedate)='' OR person.dischargedate LIKE '0000-00-00%','',DATE_FORMAT(person.dischargedate,'%Y%m%d')) AS ddisch,  concat(ifnull(bloodgroup,''),ifnull(bloodrh,'')) as bloodgroup , if(nation='94' or nation='95' or nation='99','',if(intercode IN('01','02','03','11','12','13','14','15','16','17','18','21','22','23'),intercode,'23') ) as intercode, if(typelive='0','1',if(typelive='5','0',typelive)) as typelive,  IF(house.villcode IS NOT NULL,house.villcode,'') AS villcode,  IF(length(occupa)<>3,'',occupa) AS mapoccupation,  IF(cnation.mapnation IS NOT NULL AND TRIM(cnation.mapnation)<>'',cnation.mapnation,'') AS mapnation,  IF(cnationrace.mapnation IS NOT NULL AND TRIM(cnationrace.mapnation)<>'',cnationrace.mapnation,'') AS maporigin,  IF( person.dateupdate IS NULL OR TRIM(person.dateupdate)='' OR person.dateupdate LIKE '0000-00-00%','',DATE_FORMAT(person.dateupdate,'%Y%m%d%H%i%s') ) AS d_update ,if(length(trim(occupa))=4,occupa,if(o2.mapoccupa IS NULL OR length(trim(o2.mapoccupa))=0,'',o2.mapoccupa)) occupa_new ,pst.tp vstatus ,if(Ucase(bloodrh)='P','1',if(Ucase(bloodrh)='N','2','')) bloodrh ,ifnull(passpotnumber,'') passport ,IF(person.telephoneperson IS NULL,'',IF(LENGTH(trim(person.telephoneperson))>15,SUBSTRING(person.telephoneperson,15,1),person.telephoneperson)) telephone,IF(person.mobile IS NULL,'',IF(LENGTH(trim(person.mobile))>15,SUBSTRING(person.mobile,15,1),person.mobile)) mobile FROM person  LEFT JOIN house ON (person.pcucodeperson=house.pcucode AND person.hcode=house.hcode)  LEFT JOIN coccupa ON (person.occupa=coccupa.occupacode)  LEFT JOIN coccupa o2 ON (person.occupa=o2.occupacode)  LEFT JOIN cnation ON (person.nation=cnation.nationcode)  LEFT JOIN cnation cnationrace ON (person.origin=cnationrace.nationcode)  INNER JOIN visitfp ON (person.pcucodeperson=visitfp.pcucodeperson AND person.pid=visitfp.pid)  LEFT JOIN (SELECT t.pcucodeperson ,t.pid,CASE WHEN t.typecode IN('01','02') THEN '1' WHEN t.typecode ='09' THEN '2'       WHEN t.typecode IN('11','12') THEN '4' WHEN t.typecode ='03' THEN '3'       WHEN t.typecode IS NULL THEN '' ELSE '5' END AS tp  FROM persontype t WHERE t.typecode<>'10' GROUP BY t.pid) AS pst  ON person.pcucodeperson = pst.pcucodeperson AND person.pid = pst.pid  WHERE TRIM(person.pcucodeperson)<>'' AND person.pcucodeperson='04232' AND trim(person.fname)<>'เบิกวัสดุ'  AND (visitfp.datefp >= '2010-01-01') AND (visitfp.datefp BETWEEN '2018-04-01' AND '2018-04-30')  UNION DISTINCT SELECT DISTINCT  trim(person.pcucodeperson) AS pcucode, person.idcard, person.pid, person.hcode,  person.prename, person.fname, person.lname, person.sex,  IF(person.birth IS NULL OR TRIM(person.birth)='' OR person.birth LIKE '0000-00-00%','',DATE_FORMAT(person.birth,'%Y%m%d')) AS birth,  person.roadmoi, person.hnomoi,  if(length(trim(person.mumoi))=1,concat('0',trim(person.mumoi)),if(trim(person.mumoi)='' or mumoi is NULL,'00',mumoi)) as mumoi,  person.subdistcodemoi, person.distcodemoi, person.provcodemoi,  person.marystatus,  IF(person.origin IS NULL OR TRIM(person.origin)='','',person.origin) AS origin,  IF(person.nation IS NULL OR TRIM(person.nation)='','',person.nation) AS nation,person.religion ,IF(person.educate IS NULL OR person.educate NOT IN('00','01','02','03','04','05','06','09'),'09',person.educate) educate , person.familyposition, person.fatherid, person.motherid, person.mateid,  IF(person.datein IS NULL OR TRIM(person.datein)='' OR person.datein LIKE '0000-00-00%','',DATE_FORMAT(person.datein,'%Y%m%d')) AS movein,  person.dischargetype AS dischar,  IF(person.dischargedate IS NULL OR TRIM(person.dischargedate)='' OR person.dischargedate LIKE '0000-00-00%','',DATE_FORMAT(person.dischargedate,'%Y%m%d')) AS ddisch,  concat(ifnull(bloodgroup,''),ifnull(bloodrh,'')) as bloodgroup , if(nation='94' or nation='95' or nation='99','',if(intercode IN('01','02','03','11','12','13','14','15','16','17','18','21','22','23'),intercode,'23') ) as intercode, if(typelive='0','1',if(typelive='5','0',typelive)) as typelive,  IF(house.villcode IS NOT NULL,house.villcode,'') AS villcode,  IF(length(occupa)<>3,'',occupa) AS mapoccupation,  IF(cnation.mapnation IS NOT NULL AND TRIM(cnation.mapnation)<>'',cnation.mapnation,'') AS mapnation,  IF(cnationrace.mapnation IS NOT NULL AND TRIM(cnationrace.mapnation)<>'',cnationrace.mapnation,'') AS maporigin,  IF( person.dateupdate IS NULL OR TRIM(person.dateupdate)='' OR person.dateupdate LIKE '0000-00-00%','',DATE_FORMAT(person.dateupdate,'%Y%m%d%H%i%s') ) AS d_update ,if(length(trim(occupa))=4,occupa,if(o2.mapoccupa IS NULL OR length(trim(o2.mapoccupa))=0,'',o2.mapoccupa)) occupa_new ,pst.tp vstatus ,if(Ucase(bloodrh)='P','1',if(Ucase(bloodrh)='N','2','')) bloodrh ,ifnull(passpotnumber,'') passport ,IF(person.telephoneperson IS NULL,'',IF(LENGTH(trim(person.telephoneperson))>15,SUBSTRING(person.telephoneperson,15,1),person.telephoneperson)) telephone,IF(person.mobile IS NULL,'',IF(LENGTH(trim(person.mobile))>15,SUBSTRING(person.mobile,15,1),person.mobile)) mobile FROM person  LEFT JOIN house ON (person.pcucodeperson=house.pcucode AND person.hcode=house.hcode)  LEFT JOIN coccupa ON (person.occupa=coccupa.occupacode)  LEFT JOIN coccupa o2 ON (person.occupa=o2.occupacode)  LEFT JOIN cnation ON (person.nation=cnation.nationcode)  LEFT JOIN cnation cnationrace ON (person.origin=cnationrace.nationcode)  INNER JOIN visitanc ON (person.pcucodeperson=visitanc.pcucodeperson AND person.pid=visitanc.pid)  LEFT JOIN (SELECT t.pcucodeperson ,t.pid,CASE WHEN t.typecode IN('01','02') THEN '1' WHEN t.typecode ='09' THEN '2'       WHEN t.typecode IN('11','12') THEN '4' WHEN t.typecode ='03' THEN '3'       WHEN t.typecode IS NULL THEN '' ELSE '5' END AS tp  FROM persontype t WHERE t.typecode<>'10' GROUP BY t.pid) AS pst  ON person.pcucodeperson = pst.pcucodeperson AND person.pid = pst.pid  WHERE  TRIM(person.pcucodeperson)<>'' AND person.pcucodeperson='04232' AND trim(person.fname)<>'เบิกวัสดุ'  AND (visitanc.datecheck >= '2010-01-01') AND (visitanc.datecheck BETWEEN '2018-04-01' AND '2018-04-30')  UNION DISTINCT SELECT DISTINCT  trim(person.pcucodeperson) AS pcucode, person.idcard, person.pid, person.hcode,  person.prename, person.fname, person.lname, person.sex,  IF(person.birth IS NULL OR TRIM(person.birth)='' OR person.birth LIKE '0000-00-00%','',DATE_FORMAT(person.birth,'%Y%m%d')) AS birth,  person.roadmoi, person.hnomoi,  if(length(trim(person.mumoi))=1,concat('0',trim(person.mumoi)),if(trim(person.mumoi)='' or mumoi is NULL,'00',mumoi)) as mumoi,  person.subdistcodemoi, person.distcodemoi, person.provcodemoi,  person.marystatus,  IF(person.origin IS NULL OR TRIM(person.origin)='','',person.origin) AS origin,  IF(person.nation IS NULL OR TRIM(person.nation)='','',person.nation) AS nation,person.religion,IF(person.educate IS NULL OR person.educate NOT IN('00','01','02','03','04','05','06','09'),'09',person.educate) educate , person.familyposition, person.fatherid, person.motherid, person.mateid,  IF(person.datein IS NULL OR TRIM(person.datein)='' OR person.datein LIKE '0000-00-00%','',DATE_FORMAT(person.datein,'%Y%m%d')) AS movein,  person.dischargetype AS dischar,  IF(person.dischargedate IS NULL OR TRIM(person.dischargedate)='' OR person.dischargedate LIKE '0000-00-00%','',DATE_FORMAT(person.dischargedate,'%Y%m%d')) AS ddisch,  concat(ifnull(bloodgroup,''),ifnull(bloodrh,'')) as bloodgroup , if(nation='94' or nation='95' or nation='99','',if(intercode IN('01','02','03','11','12','13','14','15','16','17','18','21','22','23'),intercode,'23') ) as intercode, if(typelive='0','1',if(typelive='5','0',typelive)) as typelive,  IF(house.villcode IS NOT NULL,house.villcode,'') AS villcode,  IF(length(occupa)<>3,'',occupa) AS mapoccupation,  IF(cnation.mapnation IS NOT NULL AND TRIM(cnation.mapnation)<>'',cnation.mapnation,'') AS mapnation,  IF(cnationrace.mapnation IS NOT NULL AND TRIM(cnationrace.mapnation)<>'',cnationrace.mapnation,'') AS maporigin,  IF( person.dateupdate IS NULL OR TRIM(person.dateupdate)='' OR person.dateupdate LIKE '0000-00-00%','',DATE_FORMAT(person.dateupdate,'%Y%m%d%H%i%s') ) AS d_update ,if(length(trim(occupa))=4,occupa,if(o2.mapoccupa IS NULL OR length(trim(o2.mapoccupa))=0,'',o2.mapoccupa)) occupa_new ,pst.tp vstatus ,if(Ucase(bloodrh)='P','1',if(Ucase(bloodrh)='N','2','')) bloodrh ,ifnull(passpotnumber,'') passport ,IF(person.telephoneperson IS NULL,'',IF(LENGTH(trim(person.telephoneperson))>15,SUBSTRING(person.telephoneperson,15,1),person.telephoneperson)) telephone,IF(person.mobile IS NULL,'',IF(LENGTH(trim(person.mobile))>15,SUBSTRING(person.mobile,15,1),person.mobile)) mobile FROM person  LEFT JOIN house ON (person.pcucodeperson=house.pcucode AND person.hcode=house.hcode)  LEFT JOIN coccupa ON (person.occupa=coccupa.occupacode)  LEFT JOIN coccupa o2 ON (person.occupa=o2.occupacode)  LEFT JOIN cnation ON (person.nation=cnation.nationcode)  LEFT JOIN cnation cnationrace ON (person.origin=cnationrace.nationcode)  LEFT JOIN persondeath pd ON person.pcucodeperson=pd.pcucodeperson AND person.pid=pd.pid  LEFT JOIN (SELECT t.pcucodeperson ,t.pid,CASE WHEN t.typecode IN('01','02') THEN '1' WHEN t.typecode ='09' THEN '2'       WHEN t.typecode IN('11','12') THEN '4' WHEN t.typecode ='03' THEN '3'       WHEN t.typecode IS NULL THEN '' ELSE '5' END AS tp  FROM persontype t WHERE t.typecode<>'10' GROUP BY t.pid) AS pst  ON person.pcucodeperson = pst.pcucodeperson AND person.pid = pst.pid  WHERE TRIM(person.pcucodeperson)<>'' AND person.pcucodeperson='04232'  AND trim(person.fname)<>'เบิกวัสดุ'  AND DATE(person.dateupdate) BETWEEN '2018-04-01' AND '2018-04-30'  AND pd.pid IS NULL