สารบัญ

/*บัญชี 2 ไม่ได้รับยาเสริมไอโอดีน */

set @date1='2015-10-01' ,@date2 = '2016-09-30';

SELECT

p.cid,p.pname ,

concat(p.fname ,space(1),p.lname )as 'person_name',

pn.preg_no,

pn.lmp,pn.labor_date,

if(pn.labor_date is null ,TIMESTAMPDIFF(week,pn.lmp,CURDATE())

,TIMESTAMPDIFF(week,pn.lmp,pn.labor_date))as 'preg_age',

'      ยังไม่ได้รับ iodine',

timestampadd(month,6,pn.labor_date)as 'รับได้ถึง'

FROM person_anc as pn

INNER JOIN person as p on p.person_id = pn.person_id

where timestampadd(month,6,pn.labor_date) >=@date1

and p.patient_hn not in (

SELECT DISTINCT

o.hn

FROM

opitemrece as o

inner join patient as p on p.hn = o.hn

inner join drugitems as d on d.icode = o.icode

WHERE d.did in

(

'201120320037726221781506',

'201110100019999920381199',

'101110000003082121781506',

'201110100019999920381341',

'201110100019999921881341'

)

and o.vstdate BETWEEN @date1 and @date2

GROUP BY p.hn

)

#=================

ตัวอย่าง

cid pname person_name preg_no lmp labor_date preg_age ยังไม่ได้รับ iodine รับได้ถึง
8888888888888 น.ส. กิตติยา xxx 2 24/8/2014 25/5/2015 39       ยังไม่ได้รับ iodine 25/11/2015
8888888888888 น.ส. กานดา xxx 1 23/9/2014 21/6/2015 38       ยังไม่ได้รับ iodine 21/12/2015
8888888888888 น.ส. โสรญา xxx 3 12/9/2014 17/6/2015 39       ยังไม่ได้รับ iodine 17/12/2015
8888888888888 นาง อำพร xxx 3 25/9/2014 1/7/2015 39       ยังไม่ได้รับ iodine 1/1/2016

/*male pregnancy*/

SELECT

person_anc_service.anc_service_date,

patient.pname,

concat(

patient.fname,

space(1),

patient.lname

) AS mother_name,

patient.sex,sex.name as'เพศ',

anc_service_type.anc_service_type_name

FROM

person_anc_service

left JOIN ovst ON ovst.vn = person_anc_service.vn

left JOIN patient ON ovst.hn = patient.hn

left JOIN sex on sex.code = patient.sex

INNER JOIN anc_service_type

ON person_anc_service.anc_service_type_id = anc_service_type.anc_service_type_id

WHERE

      sex.name ='ชาย'

#==================

ตัวอย่าง

anc_service_date pname mother_name sex เพศ anc_service_type_name
17/11/2009 นาง วิลาวัลย์ xxx 1 ชาย ตรวจก่อนคลอด
16/12/2009 นาง วิลาวัลย์ xxx 1 ชาย ตรวจก่อนคลอด
26/1/2010 นาง วิลาวัลย์ xxx 1 ชาย ตรวจก่อนคลอด
9/3/2010 นาง วิลาวัลย์ xxx 1 ชาย ตรวจก่อนคลอด

/*คลอดก่อนฝากครรภ์*/

set @date1 ='2014-10-01',@date2 ='2016-09-30';/*ห่างกันไม่เกิน 2 ปี*/

SELECT

pa.preg_no as'ครรภ์ที่',max(pa.anc_register_date)as register,

max(ps.anc_service_date)as anc_date,

pa.labor_date as 'วันคลอด',

CONCAT(p.fname, SPACE(1), 'xxx') AS 'mother_name'

FROM

person_anc_service AS ps

INNER JOIN

ovst AS o ON o.vn = ps.vn

INNER JOIN

person_anc AS pa ON pa.person_anc_id = ps.person_anc_id

LEFT JOIN

person AS p ON p.patient_hn = o.hn

WHERE pa.labor_date between @date1 and @date2

and pa.labor_date < ps.anc_service_date

group by p.cid,pa.preg_no

order by p.cid

#=================

ตัวอย่าง

ครรภ์ที่ register anc_date วันคลอด mother_name
2 2016-04-19 2016-04-19 2016-04-01 ฝนดาว xxx
1 2015-03-31 2016-08-23 2015-06-19 วิยะดา xxx
1 2015-01-06 2015-01-13 2014-10-28 ส้มโอ xxx
2 2015-09-01 2016-04-12 2016-02-06 จันทร์จิรา xxx
1 2014-08-05 2016-11-15 2015-11-17 THU ZAR(สา) xxx