PRENATAL

prenatalf

โครงสร้างแฟ้ม PRENATAL

/*PRENATAL Hct ไม่่่่มีข้อมูล*/

SET @date1 ='2015-10-01';

Set @x = 0;

SELECT @x :=@x+1 as no,

CONCAT(p.`fname`,SPACE(1),p.`lname`)AS mother ,p.nationality, ga , pre_labor_service1_date , pre_labor_service2_date ,

pre_labor_service3_date , pre_labor_service4_date , first_doctor_date , blood_hct_result

FROM

person_anc

INNER JOIN person p ON p.`person_id` =person_anc.`person_id`

WHERE p.nationality ='99'

and pre_labor_service1_date >=@date1

AND blood_hct_result =''

AND discharge<>'y'

#-------------------------

ตัอย่าง

no mother nationality ga pre_labor_service1_date pre_labor_service2_date pre_labor_service3_date pre_labor_service4_date first_doctor_date blood_hct_result
1 TIN TIN(ตินติน) xxx 99 null 6/10/2015 20/10/2015 null null null
2 ทิพวรรณ xxx 99 null 12/1/2016 19/1/2016 19/4/2016 31/5/2016 null
3 จุฑาทิพย์ xxx 99 null 8/3/2016 3/5/2016 12/7/2016 23/8/2016 31/5/2016
4 สะกาวเดือน xxx 99 null 8/3/2016 19/4/2016 14/6/2016 26/7/2016 14/6/2016
5 นุชนภา xxx 99 null 26/4/2016 28/6/2016 19/9/2016 8/11/2016 8/11/2016

prenatalhct


 

/*GA อายุครรภ์ ผิดปกติ*/

set @x = 0;

SELECT

@x:=@x+1 as'no',

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

a.anc_register_date,timestampdiff(week,a.lmp,a.labor_date)as'Ga อายุครรภ์ ',a.labor_date,a.preg_no as 'gravida ครรภ์ที่'

FROM

person_anc AS a

INNER JOIN person AS p ON p.person_id = a.person_id

where

timestampdiff(week,a.lmp,a.labor_date) not between 1 and 45

#-------------------

ตัวอย่าง

no pname mother_name anc_register_date Ga อายุครรภ์ labor_date gravida ครรภ์ที่
1 น.ส. สุพรรษา xxx 17/7/2012 -64 24/7/2010 2
2 น.ส. ภัททสิริ xxx 31/5/2011 -68 4/11/2009 1
3 น.ส. กรรณิการ์ xxx 17/8/2010 -86 5/1/2011 2
4 น.ส. สุภาภรณ์ xxx 21/2/2012 -95 9/10/2009 2
5 นาง วิภาวรรณ xxx 28/9/2010 48 28/1/2011 2

/*LMP วันแรกของการมีประจําเดือนครั้งสุดท้าย ผิดปกติ*/

set @x = 0;

SELECT

@x:=@x+1 as'no.',

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

a.anc_register_date,

a.lmp,

a.discharge

FROM

person_anc AS a

INNER JOIN person AS p ON p.person_id = a.person_id

WHERE

lmp IS NULL OR lmp >= a.anc_register_date

#---------------

ตัวอย่าง

no. pname mother_name anc_register_date lmp discharge
1 น.ส. นงนุช xxx 8/12/2009 26/6/2010 Y
2 น.ส. มินตรา xxx 26/1/2010 18/3/2010 Y
3 น.ส. กรรณิการ์ xxx 17/8/2010 4/9/2012 Y
4 น.ส. นันทิดา xxx 15/11/2011 5/12/2012 Y
5 น.ส. กฤตยา xxx 15/5/2012 15/9/2012 Y

CHRONIC

chronicf

โครงสร้าง แฟ้ม CHRONIC

ลงทะเบียนผูป่วยโรคเรื้อรัง

chronicexp

/*DATE_DIAG วันที่ตรวจพบครั้งแรก*/

SET @date1 := '2011-10-01' ,@date2 := '2017-09-30';

set @clinic = '002';/*โรคเบาหวาน 001 โรคความดัน 002 */

/*เปลี่ยน '2009-10-01'และ'2017-09-30' ตามที่ต้องการ*/

SELECT

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

c.clinic,c.regdate,c.discharge,c.icd10,c.begin_year

FROM

person_chronic AS c

LEFT JOIN person AS p ON p.person_id = c.person_id

WHERE

c.icd10 <> ""

AND c.icd10 IS NOT NULL

AND c.discharge <> 'Y'

AND regdate BETWEEN @date1 AND @date2

and c.clinic =@clinic

#----------------------------------

ตัวอย่าง

pname person_name clinic regdate discharge icd10 begin_year
นาง ประทุม XXX 002 18/06/2555 N I13 null
นาง แพ้ง XXX 002 29/06/2555 N I13 null
นาง ปณิดา XXX 002 29/06/2555 N I13 null

/*CHRONIC รหัสโรค ICD - 10 (โรคเรื้อรัง) ผิดปกติ */

SELECT

p.pname,

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

c.clinic,l.NAME,c.discharge,c.icd10

FROM

person_chronic AS c

LEFT JOIN person AS p ON p.person_id = c.person_id

INNER JOIN clinic l ON l.clinic = c.clinic

WHERE

c.icd10 IS NULL

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

ตัวอย่าง

pname person_name clinic NAME discharge icd10
นาง ทองดำ xxx 2 โรคความดัน (HT) I10-I15 null null
น.ส. อัจฉรา xxx 2 โรคความดัน (HT) I10-I15 null null
นาง ปุย xxx 1 โรคเบาหวาน (DM) E10-E14 null null
น.ส. รวิพร xxx 1 โรคเบาหวาน (DM) E10-E14 null null
นาย วิสิฐ xxx 1 โรคเบาหวาน (DM) E10-E14 null null

คนของเรา ที่ รพ.ลงทะเบียนแล้ว ยังไม่ได้ลงทะเบียน (นำเข้าตาราง person_chronic )

ตำแหน่งที่ง่ายคือ บัญชี 1 ด้านล่าง

person chronic

/*chronic member no register */

select

l.hn,l.clinic,s.name,concat(p.fname,space(1),p.lname)as 'person', p.person_id,p.house_regist_type_id as 'type_area'

from

clinicmember as l

inner join person as p on p.patient_hn = l.hn

inner join clinic s on s.clinic = l.clinic

where p.person_id not in (

select c.person_id from person_chronic as c

where c.person_id = p.person_id

and c.clinic =l.clinic

)

and p.death <>'y'

and p.house_regist_type_id in('1','3')

# -----------------------------------

ตัวอย่าง

hn clinic name person person_id type_area
60 1 โรคเบาหวาน (DM) E10-E14 สมศักดิ์ xxx 292 1
3656 1 โรคเบาหวาน (DM) E10-E14 โสภณ xxx 9511 1
4669 1 โรคเบาหวาน (DM) E10-E14 สุระชัย xxx 5038 1
5699 1 โรคเบาหวาน (DM) E10-E14 จำลอง xxx 4625 1
7371 1 โรคเบาหวาน (DM) E10-E14 อมร xxx 3462 1

provider es

rovider

โครงสร้าง แฟ้ม provider

providerf

update provider_type  2561

/*update provider_type 2561*/

drop table provider_type;

CREATE TABLE `provider_type` (

`provider_type_code` varchar(3) NOT NULL DEFAULT '',

`provider_type_name` varchar(200) NOT NULL,

`hos_guid` char(38) DEFAULT NULL,

`hos_guid_ext` varchar(64) DEFAULT NULL,

PRIMARY KEY (`provider_type_code`),

UNIQUE KEY `ix_provider_type_name` (`provider_type_name`),

KEY `ix_hos_guid` (`hos_guid`),

KEY `ix_hos_guid_ext` (`hos_guid_ext`)

) ENGINE=InnoDB DEFAULT CHARSET=tis620;

INSERT ignore INTO  provider_type ( provider_type_code ,  provider_type_name ,  hos_guid ,  hos_guid_ext ) VALUES ('10', 'ผู้ดูแลผู้ป่วยที่บ้าน', NULL, NULL);

INSERT ignore INTO  provider_type ( provider_type_code ,  provider_type_name ,  hos_guid ,  hos_guid_ext ) VALUES ('11', 'เภสัชกร', NULL, NULL);

INSERT ignore INTO  provider_type ( provider_type_code ,  provider_type_name ,  hos_guid ,  hos_guid_ext ) VALUES ('01', 'แพทย์', NULL, NULL);

INSERT ignore INTO  provider_type ( provider_type_code ,  provider_type_name ,  hos_guid ,  hos_guid_ext ) VALUES ('02', 'ทันตแพทย์', NULL, NULL);

INSERT ignore INTO  provider_type ( provider_type_code ,  provider_type_name ,  hos_guid ,  hos_guid_ext ) VALUES ('03', 'พยาบาลวิชาชีพ(ที่ทำหน้าที่ตรวจรักษา)', NULL, NULL);

INSERT ignore INTO  provider_type ( provider_type_code ,  provider_type_name ,  hos_guid ,  hos_guid_ext ) VALUES ('04', 'เจ้าพนักงานสาธารณสุขชุมชน', NULL, NULL);

INSERT ignore INTO  provider_type ( provider_type_code ,  provider_type_name ,  hos_guid ,  hos_guid_ext ) VALUES ('05', 'นักวิชาการสาธารณสุข', NULL, NULL);

INSERT ignore INTO  provider_type ( provider_type_code ,  provider_type_name ,  hos_guid ,  hos_guid_ext ) VALUES ('06', 'เจ้าพนักงานทันตสาธารณสุข', NULL, NULL);

INSERT ignore INTO  provider_type ( provider_type_code ,  provider_type_name ,  hos_guid ,  hos_guid_ext ) VALUES ('07', 'อสม.(ผู้ให้บริการชุมชน)', NULL, NULL);

INSERT ignore INTO  provider_type ( provider_type_code ,  provider_type_name ,  hos_guid ,  hos_guid_ext ) VALUES ('08', 'บุคลากรแพทย์แผนไทย แพทย์พื้นบ้าน แพทย์ทางเลือก (ที่มีวุฒิการศึกษาหรือผ่านการอบรมตามเกณฑ์)', NULL, NULL);

INSERT ignore INTO  provider_type ( provider_type_code ,  provider_type_name ,  hos_guid ,  hos_guid_ext ) VALUES ('081', 'แพทย์แผนไทย/แพทย์แผนไทยประยุกต์ : (ที่มีใบประกอบวิชาชีพฯ)', NULL, NULL);

INSERT ignore INTO  provider_type ( provider_type_code ,  provider_type_name ,  hos_guid ,  hos_guid_ext ) VALUES ('082', 'หมอพื้นบ้าน (ที่มีใบประกอบวิชาชีพฯ หรือได้รับการรับรองตามระเบียบการแพทย์แผนไทยฯ)', NULL, NULL);

INSERT ignore INTO  provider_type ( provider_type_code ,  provider_type_name ,  hos_guid ,  hos_guid_ext ) VALUES ('083', 'แพทย์แผนจีน (ที่มีใบประกอบวิชาชีพฯ)', NULL, NULL);

INSERT ignore INTO  provider_type ( provider_type_code ,  provider_type_name ,  hos_guid ,  hos_guid_ext ) VALUES ('084', 'ผู้ช่วยแพทย์แผนไทย (ที่ผ่านการอบรมตามเกณฑ์)', NULL, NULL);

INSERT ignore INTO  provider_type ( provider_type_code ,  provider_type_name ,  hos_guid ,  hos_guid_ext ) VALUES ('085', 'บุคลากรแพทย์แผนไทย แพทย์พื้นบ้าน แพทย์แผนจีน แพทย์ทางเลือก (ที่มีวุฒิการศึกษาหรือผ่านการอบรมตามเกณฑ์)', NULL, NULL);

INSERT ignore INTO  provider_type ( provider_type_code ,  provider_type_name ,  hos_guid ,  hos_guid_ext ) VALUES ('09', 'อื่นๆ', NULL, NULL);

SELECT * from provider_type;

#----------------

/*กรณี ประเภทความพิการ ไม่ครบตาม สนย.กำหนด*/

TRUNCATE person_deformed_type;

DROP table person_deformed_type;

CREATE TABLE `person_deformed_type` (

`person_deformed_type_id` INT(11) NOT NULL,

`person_deformed_type_name` VARCHAR(150) NOT NULL,

`hos_guid` VARCHAR(38) DEFAULT NULL,

PRIMARY KEY (`person_deformed_type_id`),

UNIQUE KEY `ix_person_deformed_type_name` (`person_deformed_type_name`),

KEY `ix_hos_guid` (`hos_guid`)

) ENGINE=INNODB DEFAULT CHARSET=tis620;

INSERT INTO `person_deformed_type` (`person_deformed_type_id`, `person_deformed_type_name`, `hos_guid`) VALUES (1, '1.ความพิการทางการเห็น', NULL);

INSERT INTO `person_deformed_type` (`person_deformed_type_id`, `person_deformed_type_name`, `hos_guid`) VALUES (2, '2.ความพิการทางการได้ยินหรือสื่อความหมาย', NULL);

INSERT INTO `person_deformed_type` (`person_deformed_type_id`, `person_deformed_type_name`, `hos_guid`) VALUES (3, '3.ความพิการทางการเคลื่อนไหวหรือทางร่างกาย', NULL);

INSERT INTO `person_deformed_type` (`person_deformed_type_id`, `person_deformed_type_name`, `hos_guid`) VALUES (4, '4.ความพิการทางจิตใจหรือพฤติกรรม', NULL);

INSERT INTO `person_deformed_type` (`person_deformed_type_id`, `person_deformed_type_name`, `hos_guid`) VALUES (5, '5.ความพิการทางสติปัญญา', NULL);

INSERT INTO `person_deformed_type` (`person_deformed_type_id`, `person_deformed_type_name`, `hos_guid`) VALUES (6, '6.ความพิการการเรียนรู้', NULL);

INSERT INTO `person_deformed_type` (`person_deformed_type_id`, `person_deformed_type_name`, `hos_guid`) VALUES (7, '7.ความพิการทางออทิสติก', NULL);

SELECT * FROM person_deformed_type ;

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

labor1

โครงสร้างแฟ้มLABOR

หมายถึง ข้อมูลประวัติการคลอด ของหญิงคลอดในเขตรับผิดชอบ และหญิงคลอดผู้มารับบริการ ประกอบด้วย
             1) หญิงตั้งครรภ์ที่คลอดทุกคนที่อาศัยอยู่ในเขตรับผิดชอบ
             2) หญิงตั้งครรภ์ที่คลอดที่อาศัยอยู่นอกเขตรับผิดชอบ ที่มาใช้บริการคลอด
หมายเหตุ
              - เขตรับผิดชอบ ในส่วนของโรงพยาบาล หมายถึง ต าบลที่ตั้งของโรงพยาบาล หรือพื้นที่รับผิดชอบในส่วนของบริการระดับปฐมภูมิ
              - ข้อมูลประวัติการคลอด และตรวจหลังคลอด ที่สถานพยาบาลอื่นให้บริการกับหญิงคลอดที่อาศัยในเขตรับผิดชอบ เป็นการเก็บข้อมูล
เพื่อประเมินความครอบคลุมของบริการ
              - การคลอด 1 ครั้ง จะมี 1 record หากมีการเพิ่มเติมหรือเปลี่ยนแปลงข้อมูลของการคลอดครั้งเดียวกัน จะต้องเปลี่ยนแปลงใน record เดิม
ของการคลอดครั้งนั้น

การจัดส่งข้อมูลให้ส่วนกลาง ให้ส่งครั้งเดียวเมื่อมีการจัดเก็บข้อมูลครบทุกกิจกรรมในแฟ้ม

/*LMP วันแรกของการมีประจ าเดือน ครั้งสุดท้าย ผิดพลาด*/

SET @date1 = '2012-10-01',@date2 = '2017-09-30';

SELECT

p.pname,

CONCAT(p.fname, SPACE(1), p.lname) AS 'patient_name',

pa.anc_register_date, pa.lmp AS LMP,

pa.pre_labor_service1_date 'วันที่ anc1',

pa.labor_date

FROM

person_anc AS pa

LEFT JOIN person AS p   ON p.person_id = pa.person_id

WHERE pa.lmp > pa.pre_labor_service1_date

AND pa.labor_date BETWEEN @date1   AND @date2

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

ตัวอย่าง

pname patient_name anc_register_date LMP วันที่ anc1 labor_date
น.ส. นุจรี ศรีเมือง 4/5/2016 12/8/2015 10/1/2014 4/5/2016

/*EDC  วันที่กำหนดคลอด ผิดปกติ */

set @date1 = '2009-11-01',@date2 = '2017-09-30';

SELECT

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

pa.anc_register_date,

pa.edc,pa.post_labor_service1_date,pa.post_labor_service2_date,

pa.post_labor_service3_date

FROM

person_anc AS pa

INNER JOIN person AS p ON p.person_id = pa.person_id

INNER JOIN house AS h ON h.house_id = p.house_id

INNER JOIN village AS v ON v.village_id = h.village_id

WHERE

pa.anc_register_date BETWEEN @date1 and @date2

and (pa.edc >pa.post_labor_service1_date OR

pa.edc >pa.post_labor_service2_date OR

pa.edc >pa.post_labor_service3_date)

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

ตัวอย่าง

pname mother anc_register_date edc post_labor_service1_date post_labor_service2_date post_labor_service3_date
น.ส. มลุลี xxx 25/11/2009 6/4/2010 5/4/2010 12/4/2010
น.ส. เดือน xxx 1/12/2009 10/12/2009 2/12/2009 11/12/2009 4/1/2010
นาง ลาวัลย์ xxx 1/12/2009 17/3/2010 11/2/2010 25/3/2010 25/3/2010
น.ส. ปราณี xxx 1/12/2009 16/12/2009 8/12/2009 16/12/2009 18/1/2010

/*BDATE วันคลอด / วันสิ้นสุดการตั้งครรภ์ ผิดปกติ*/

SELECT

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

pa.anc_register_date,

pa.labor_date,pa.edc,pa.labor_status_id,

s.labor_status_name

FROM

person_anc AS pa

INNER JOIN person AS p ON p.person_id = pa.person_id

INNER JOIN house AS h ON h.house_id = p.house_id

INNER JOIN village AS v ON v.village_id = h.village_id

INNER JOIN labor_status s on s.labor_status_id =pa.labor_status_id

WHERE pa.labor_date is null and pa.labor_status_id in('2','3')

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

ตัวอย่าง

pname mother anc_register_date labor_date edc labor_status_id labor_status_name
MRS. MI CHO AYE(ชูเอ)) xxx 2011-10-25 2012-05-22 2 คลอดแล้ว
น.ส. ลูกน้ำ xxx 2012-10-02 2013-04-13 2 คลอดแล้ว
น.ส. แค็ทรียา xxx 2012-10-16 2013-05-09 3 แท้ง
น.ส. สมพิศ xxx 2012-11-06 2013-06-24 3 แท้ง


 

/*BRESULT ผลสิ้นสุดการตั้งครรภ์ ผิดปกติ รหัสโรค (ICD - 10 TM )*/

SELECT

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

pa.anc_register_date,s.labor_status_name,

pa.labor_icd10,i.name

FROM

person_anc AS pa

INNER JOIN person AS p ON p.person_id = pa.person_id

left JOIN labor_status s on s.labor_status_id =pa.labor_status_id

left join icd101 as i on i.code = pa.labor_icd10

WHERE pa.labor_status_id in('2','3')

and pa.labor_icd10 is null or pa.labor_icd10 not in ('O000', 'O001', 'O002', 'O008', 'O009', 'O010', 'O011', 'O019', 'O020', 'O021', 'O028', 'O029', 'O030', 'O031', 'O032', 'O033', 'O034', 'O035', 'O036', 'O037', 'O038', 'O039', 'O040', 'O041', 'O042', 'O043', 'O044', 'O045', 'O046', 'O047', 'O048', 'O049', 'O050', 'O051', 'O052', 'O053', 'O054', 'O055', 'O056', 'O057', 'O058', 'O059', 'O060', 'O061', 'O062', 'O063', 'O064', 'O065', 'O066', 'O067', 'O068', 'O069', 'O070', 'O071', 'O072', 'O073', 'O074', 'O075', 'O076', 'O077', 'O078', 'O079', 'O080', 'O081', 'O082', 'O083', 'O084', 'O085', 'O086', 'O087', 'O088', 'O089', 'O800', 'O801', 'O808', 'O809', 'O810', 'O811', 'O812', 'O813', 'O814', 'O815', 'O820', 'O821', 'O822', 'O828', 'O829', 'O830', 'O831', 'O832', 'O833', 'O834', 'O838', 'O839', 'O840', 'O841', 'O842', 'O848', 'O849')

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

ตัวอย่าง

pname mother anc_register_date labor_status_name labor_icd10 name
น.ส. อารีย์ xxx 2013-07-16 คลอดแล้ว O713 Obstertric laceration of cervix
นาง อรพรรณ xxx 2013-08-06 คลอดแล้ว O60 Preterm delivery
น.ส. นริศรา xxx 2013-09-03 แท้ง
น.ส. จันทรา xxx 2013-09-17 คลอดแล้ว O441 Placenta praevia with haemorrhage
น.ส. ช่อทิพย์ xxx 15/10/13 คลอดแล้ว O300 Twin pregnancy

labor bplace

/*BPLACE สถานที่คลอด */

/*สถานที่คลอด ไม่ระบุ จากการไม่พบในบัญชี 3*/

SELECT DISTINCT CONCAT(p.fname , SPACE(1) , p.lname)AS'person_name',

TIMESTAMPDIFF(YEAR,p.birthdate,pv.vaccine_date)AS'age_year',

GROUP_CONCAT(v.vaccine_code) AS 'vaccine',p.house_regist_type_id AS type_area,p.nationality ,pl.labour_hospcode,p.death

FROM person_vaccine_list AS pv

INNER JOIN person_vaccine AS v ON v.person_vaccine_id = pv.person_vaccine_id

INNER JOIN person AS p ON p.person_id = pv.person_id

LEFT JOIN person_labour AS pl ON pl.person_id = pv.person_id

WHERE pl.person_id IS NULL

AND TIMESTAMPDIFF(YEAR,p.birthdate,pv.vaccine_date)<12

AND p.house_regist_type_id IN(1,3)

AND p.nationality = 99

AND p.discharge_date IS NULL

GROUP BY p.person_id

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

ตัวอย่าง

person_name age_year vaccine type_area nationality labour_hospcode death
คุณากร xxx 0 OPV1,DTPHB1 1 99 N
พิยดา xxx 0 OPV1,DTPHB1 3 99 N
วรรณประภัสส์ xxx 0 OPV1,OPV2,DTPHB1,DTPHB2 1 99 N
ทรรศมาภรณ์ xxx 2 LAJE1 1 99 N


labor btype

/*BTYPE วิธีการคลอด / สิ้นสุดการตั้งครรภ์   1 = NORMAL, 2 = CESAREAN, 3 = VACUUM, 4 = FORCEPS, 5 = ท่าก้น, 6 = ABORTION */

/*BTYPE วิธีการคลอด / สิ้นสุดการตั้งครรภ์ ผิดปกติ*/

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

SELECT

pa.labor_date,

p.pname,

CONCAT(p.fname, SPACE(1),p.lname) AS 'mother',

pa.labor_status_id,

ls.labor_status_name,

pa.labour_type_id

FROM

person_anc AS pa

INNER JOIN person AS p ON p.person_id = pa.person_id

LEFT JOIN person_labour AS pl ON pl.person_id = pa.person_id

#LEFT JOIN person_labour_type AS plt ON plt.person_labour_type_id = pa.labour_type_id

INNER join labor_status AS ls ON ls.labor_status_id = pa.labor_status_id

WHERE

pa.labor_status_id IN ('2', '3')

AND pa.labour_type_id IS NULL

and pa.labor_date between @date1 and @date2

ตัวอย่าง

labor_date pname mother labor_status_id labor_status_name labour_type_id
น.ส. แมรีโอ xxx 3 แท้ง
น.ส. นุสรา xxx 2 คลอดแล้ว
20/9/2016 น.ส. นภาพร xxx 2 คลอดแล้ว
น.ส. พิมพา xxx 3 แท้ง


labor bdoctor

BDOCTOR   ประเภทของผู้ทำคลอด

1 = แพทย์, 2 = พยาบาล,
3 = จนท.สาธารณสุข(ที่ไม่ใช่แพทย์ พยาบาล),
4 = ผดุงครรภ์โบราณ,
5 = คลอดเอง,
6 = อื่นๆ

/*BDOCTOR   ประเภทของผู้ทำคลอด ว่างเปล่า */

set @date1 ='2009-10-01',@date2 = '2017-09-30';

SELECT

p.pname,

CONCAT(p.fname, SPACE(1),p.lname) AS 'mother',

person_anc.labor_doctor_type_id,

person_anc.preg_no,person_anc.labor_date

from person_anc

LEFT JOIN person_labour_doctor_type as pd on pd.person_labour_doctor_type_id = person_anc.labor_doctor_type_id

INNER JOIN person AS p ON p.person_id = person_anc.person_id

WHERE labor_date BETWEEN @date1 and @date2

and person_anc.labor_doctor_type_id is null

ตัวอย่าง

pname mother labor_doctor_type_id preg_no labor_date
น.ส. จันทร์เพ็ญ xxx 1 25/10/2012
นาง วิยะดา xxx 1 16/11/2012
น.ส. รุ้งทิพย์ xxx 3 31/1/2012
น.ส. เกษร xxx 3 14/3/2011


labor sborn

/*LBORN จำนวนเกิดมีชีพ ที่ผิดปกติ */

/*SBORN จำนวนเกิดมีชีพ ที่ผิดปกติ */

set @date1 = '2009-11-01',@date2 = '2017-09-30';

SELECT

v.labor_date ,

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

l.labor_status_name,

v.alive_child_count,

v.dead_child_count

FROM

person_anc as v

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

left join labor_status as l on l.labor_status_id = v.labor_status_id

WHERE v.labor_date BETWEEN @date1 and @date2

and (v.alive_child_count not between 0 and 4

or (v.dead_child_count not between 0 and 4))

ตัวอย่าง

labor_date pname mother labor_status_name alive_child_count dead_child_count
14/5/2015 MISS YIN SEIN(ดา) xxx คลอดแล้ว 8 8
12/7/2015 น.ส. นุชจรินทร์ xxx คลอดแล้ว -1 7
3/7/2015 น.ส. วณัฐญา xxx คลอดแล้ว 1 -1
14/5/2015 น.ส. สุนทรา xxx คลอดแล้ว -1 -3

คลอดแล้วหรือนำมาบันทึกแล้ว อย่าลืม บังคับส่งออก LABOR , PRENATAL

sndPRENATAL

/*

R21:โรต้า3-1 2 เดือนอายุไม่เกิน 15 สัปดาห์

*/

# person_vaccine

DELETE FROM person_vaccine WHERE export_vaccine_code ='R21';

SET @R21 = (select max(person_vaccine_id)+1 from person_vaccine) ;

INSERT IGNORE INTO person_vaccine ( person_vaccine_id , vaccine_name , vaccine_code , vaccine_group , export_vaccine_code , hos_guid , combine_vaccine , icode ) VALUES (@R21, 'R21: โรต้า 3-1 2 เดือน (อายุไม่เกิน 15 สัปดาห์)', 'RV3-1', 'RV', 'R21', NULL, 'N', NULL);

-- SELECT * FROM person_vaccine wHERE export_vaccine_code = 'R21';

# vaccine_combination

SET @c21 = ( SELECT MAX(vaccine_combination_id)+1 FROM vaccine_combination) ;

DELETE FROM vaccine_combination WHERE vaccine_code= 'RV3-1';

INSERT IGNORE INTO vaccine_combination (vaccine_combination_id, vaccine_code, vaccine_combine_code, hos_guid) VALUES (@c21, 'RV3-1', 'RV3-1', NULL);

UPDATE serial

SET serial_no = (SELECT MAX(vaccine_combination_id) FROM vaccine_combination)

WHERE serial.name = 'vaccine_combination_id';

-- select * FROM vaccine_combination WHERE vaccine_code= 'RV3-1';

# wbc_vaccine

DELETE FROM wbc_vaccine WHERE export_vaccine_code='R21';

SET @w21 = (

SELECT MAX(wbc_vaccine_id)+1

FROM wbc_vaccine) ;

INSERT IGNORE INTO wbc_vaccine (wbc_vaccine_id, wbc_vaccine_name, wbc_vaccine_code, age_min, age_max, export_vaccine_code, check_code, vaccine_in_use, hos_guid, icode, price, combine_vaccine) VALUES (@w21, 'R21: โรต้า 3-1 2 เดือน (อายุไม่เกิน 15 สัปดาห์)', 'RV3-1', 8, 15, 'R21', 'R21', NULL, NULL, NULL, NULL, 'N');

-- select * FROM wbc_vaccine WHERE export_vaccine_code='R21';

# provis_vcctype

DELETE FROM provis_vcctype WHERE code='R21';

INSERT IGNORE INTO provis_vcctype (code, name, hos_guid) VALUES ('R21', 'RV3-1', NULL);

-- SELECT * FROM provis_vcctype v WHERE v.code ='R21';

# provis_aptype

delete FROM provis_aptype where code = 'R21';

INSERT IGNORE INTO provis_aptype (code,name,hos_guid,hos_guid_ext) VALUES ('R21','RV3-1',NULL,NULL);

-- SELECT * FROM provis_aptype as v where v.code = 'R21';

# baby_items

delete FROM baby_items where export_code = 'R21';

set @b21 = (SELECT max(baby_code)+1 FROM baby_items);

INSERT IGNORE INTO baby_items (baby_code, baby_group, service_code, baby_name, vaccine_code, display_order, export_code, hos_guid) VALUES (@b21, 4, NULL, 'โรต้า 3-1 2 เดือน (อายุไม่เกิน 15 สัปดาห์)', 'RV3-1', NULL, 'R21', NULL);

-- SELECT * FROM baby_items where export_code = 'R21';

# person_vaccine_group_lot

delete FROM person_vaccine_group_lot where vaccine_group = 'RV3-1';

SET @G21 = (select max(person_vaccine_group_lot_id)+1 from person_vaccine_group_lot) ;

INSERT IGNORE INTO person_vaccine_group_lot (person_vaccine_group_lot_id, vaccine_group, vaccine_lot, receive_date, expire_date, receive_qty, left_qty, vaccine_lot_active, hos_guid) VALUES (@G21, 'RV3-1', NULL, NULL, NULL, NULL, NULL, 'Y', NULL);

UPDATE  serial

SET serial_no = (

select person_vaccine_group_lot_id

from person_vaccine_group_lot

where vaccine_group = 'RV3-1')

WHERE serial.name = 'person_vaccine_group_lot_id';

SELECT * FROM person_vaccine_group_lot o where o.vaccine_group = 'RV3-1';

/*

R23 :โรต้า3-6 6 เดือน (อายุไม่เกิน 32 สัปดาห์)

*/

# person_vaccine

DELETE FROM person_vaccine WHERE export_vaccine_code ='R23';

SET @R23 = (select max(person_vaccine_id)+1 from person_vaccine) ;

INSERT IGNORE INTO person_vaccine ( person_vaccine_id , vaccine_name , vaccine_code , vaccine_group , export_vaccine_code , hos_guid , combine_vaccine , icode ) VALUES (@R23, 'R23:โรต้า3-2 6 เดือนอายุไม่เกิน 32 สัปดาห์', 'RV3-3', 'RV', 'R23', NULL, 'N', NULL);

-- SELECT * FROM person_vaccine wHERE export_vaccine_code = 'R23';

# vaccine_combination

SET @c23 = ( SELECT MAX(vaccine_combination_id)+1 FROM vaccine_combination) ;

DELETE FROM vaccine_combination WHERE vaccine_code= 'RV3-3';

INSERT IGNORE INTO vaccine_combination (vaccine_combination_id, vaccine_code, vaccine_combine_code, hos_guid) VALUES (@c23, 'RV3-3', 'RV3-3', NULL);

UPDATE serial

SET serial_no = (SELECT MAX(vaccine_combination_id) FROM vaccine_combination)

WHERE serial.name = 'vaccine_combination_id';

-- select * FROM vaccine_combination WHERE vaccine_code= 'RV3-3';

# wbc_vaccine

DELETE FROM wbc_vaccine WHERE export_vaccine_code='R23';

SET @w23 = (

SELECT MAX(wbc_vaccine_id)+1

FROM wbc_vaccine) ;

INSERT IGNORE INTO wbc_vaccine (wbc_vaccine_id, wbc_vaccine_name, wbc_vaccine_code, age_min, age_max, export_vaccine_code, check_code, vaccine_in_use, hos_guid, icode, price, combine_vaccine) VALUES (@w23, 'R23:โรต้า3-2 6 เดือนอายุไม่เกิน 32 สัปดาห์', 'RV3-3', 24, 32, 'R23', 'R23', NULL, NULL, NULL, NULL, 'N');

-- select * FROM wbc_vaccine WHERE export_vaccine_code='R23';

# provis_vcctype

DELETE FROM provis_vcctype WHERE code='R23';

INSERT IGNORE INTO provis_vcctype (code, name, hos_guid) VALUES ('R23', 'RV3-3', NULL);

-- SELECT * FROM provis_vcctype v WHERE v.code ='R23';

# provis_aptype

delete FROM provis_aptype where code = 'R23';

INSERT IGNORE INTO provis_aptype (code,name,hos_guid,hos_guid_ext) VALUES ('R23','RV3-3',NULL,NULL);

-- SELECT * FROM provis_aptype as v where v.code = 'R23';

# baby_items

delete FROM baby_items where export_code = 'R23';

set @b23 = (SELECT max(baby_code)+1 FROM baby_items);

INSERT IGNORE INTO baby_items (baby_code, baby_group, service_code, baby_name, vaccine_code, display_order, export_code, hos_guid) VALUES (@b23, 4, NULL, 'R23:โรต้า3-2 6 เดือนอายุไม่เกิน 32 สัปดาห์', 'RV3-3', NULL, 'R23', NULL);

-- SELECT * FROM baby_items where export_code = 'R23';

# person_vaccine_group_lot

delete FROM person_vaccine_group_lot where vaccine_group = 'RV3-3';

SET @G23 = (select max(person_vaccine_group_lot_id)+1 from person_vaccine_group_lot) ;

INSERT IGNORE INTO person_vaccine_group_lot (person_vaccine_group_lot_id, vaccine_group, vaccine_lot, receive_date, expire_date, receive_qty, left_qty, vaccine_lot_active, hos_guid) VALUES (@G23, 'RV3-3', NULL, NULL, NULL, NULL, NULL, 'Y', NULL);

UPDATE serial

SET serial_no = (

select person_vaccine_group_lot_id

from person_vaccine_group_lot

where vaccine_group = 'RV3-3')

WHERE serial.name = 'person_vaccine_group_lot_id';

SELECT * FROM person_vaccine_group_lot o where o.vaccine_group = 'RV3-3';