audit50

audit50site

วัตถุประสงค์การใช้ คือแจ้งข่าวและตรวจสอบ ระบบข้อมูลมาตรฐานที่ถูกส่งออกจาก จาก ระบบงาน Hosxp Hosxp _pcu

DENTAL

denta

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

update dental_SCHOOLTYPE 2561

/*คำสั่งเรียก 06.เจ้าพนักงานทันตสาธารณสุข ที่บันทึก provider ถูกต้อง */

set @provider = '06';

SELECT

doctor.`code`,doctor.pname,doctor.fname,doctor.lname,doctor.cid,

doctor.provider_type_code,pvt.provider_type_name,doctor.sex,

doctor.birth_date,doctor.start_date,doctor.finish_date,doctor.active

FROM

doctor

LEFT JOIN provider_type as pvt on pvt.provider_type_code = doctor.provider_type_code

WHERE doctor.provider_type_code =@provider

and doctor.pname is not null and doctor.fname is not null and doctor.lname is not null and length(cid)=13 and doctor.sex in ('1','2')

and doctor.birth_date < curdate() and doctor.start_date is not null

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

ตัวอย่าง

code pname fname lname cid provider_type_code sex birth_date start_date finish_date
9 น.ส. ศรินยา xxx 8888888888888 06 2 9/12/1977 1/4/1998 null
47 น.ส. สุพรรษา xxx 8888888888888 07 2 6/12/1980 2/4/2001 null
56 น.ส. สมปอง xxx 8888888888888 08 2 7/5/1963 16/10/1984 null
57 นาย ประสิทธิ์ xxx 8888888888888 09 1 8/1/1957 1/10/2009 1/10/2009


mapping หัตถการ

dttm

/*ดูหัตถการทันตกรรม ตามวันที่เลือก*/

SET @startdate ='2016-03-01' ,@enddate = '2016-03-31' ;

SELECT

dm.vstdate ,P.pname,CONCAT(P.fname,SPACE(1),P.lname)AS'PATIENT' ,

dm.icd,d.name,dm.icd9

,dttm.name ,dttm.icd10tm_operation_code,i.description_english,CONCAT(T.fname,SPACE(1),T.lname)AS 'CODER'

FROM

dtmain AS dm

INNER JOIN dttm ON dttm.code = dm.tmcode

INNER JOIN PATIENT P ON P.hn = DM.hn

INNER JOIN DOCTOR T ON T.code = DM.doctor

INNER JOIN icd10tm_operation i ON i.icd10tm_operation_code = dttm.icd10tm_operation_code

INNER JOIN icd101 d ON d.code = dm.icd

WHERE

dm.vstdate BETWEEN @startdate AND @enddate

ORDER BY dm.vstdate ,dm.vn

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

ตัวอย่าง

vstdate pname PATIENT icd name icd9 name icd10tm_operation_code description_english CODER
1/3/2016 นาย ประเสริฐ xxx K041 Necrosis of pulp 2309 ถอนฟัน (ฟันแท้) 2382770 Extraction of permanent tooth ศรินยา yyy
1/3/2016 นาย ประเสริฐ xxx K041 Necrosis of pulp 8931 ตรวจและการประเมินสภาพช่องปากเฉพาะตำแหน่งหรือที่มีอาการฉุกเฉินรวมถึงการตรวจเพื่อติดตามผล (Limited Oral Evaluation Problem Focused) 2330010 Limited oral evaluation - problem focused ศรินยา yyy
1/3/2016 นาย สม xxx K041 Necrosis of pulp 8931 ตรวจและการประเมินสภาพช่องปากเฉพาะตำแหน่งหรือที่มีอาการฉุกเฉินรวมถึงการตรวจเพื่อติดตามผล (Limited Oral Evaluation Problem Focused) 2330010 Limited oral evaluation - problem focused ศรินยา yyy
1/3/2016 นาย สม xxx K041 Necrosis of pulp 2309 ถอนฟัน (ฟันแท้) 2382770 Extraction of permanent tooth ศรินยา yyy
1/3/2016 ด.ช. กิตติพร xxx K021 Caries of dentine 232 อุด GI 1 ด้าน (ฟันหลังน้ำนม) 23771C1 Resin-based composite - one surfaces, posterior-primary ศรินยา yyy


/*การคีย์ออกแฟ้ม Dentalตามเวลา*/

SET @startdate := '2015-01-01',@enddate := '2016-01-31';

SELECT pt.pname,concat(pt.fname,space(1),pt.lname)as 'patient'

,date(c.entry_datetime)as'date_serv',t.dental_care_type_name,pl.dental_care_service_place_type_name,

c.pteeth,c.pcaries,c.pfilling,c.pextract,c.need_fluoride,c.need_scaling,c.need_sealant

,c.need_pfilling,c.need_pextract,c.need_dextract,n.dental_care_nprosthesis_name

,c.permanent_perma,c.permanent_prost,c.prosthesis_prost,g.dental_care_gum_type_name

,ch.dental_care_school_type_name,s.dental_care_school_class_type_name,g.dental_care_gum_type_name

FROM

dental_care c

inner join ovst o on o.vn = c.vn

inner join patient pt on pt.hn = o.hn

LEFT JOIN dental_care_gum_type g ON g.dental_care_gum_type_id = c.dental_care_gum_type_id

LEFT JOIN dental_care_nprosthesis n ON n.dental_care_nprosthesis_id = c.dental_care_nprosthesis_id

LEFT JOIN dental_care_school_type ch ON ch.dental_care_school_type_id =

c.dental_care_school_type_id

LEFT JOIN dental_care_school_class_type s ON s.dental_care_school_class_type_id =

c.dental_care_school_class_type_id

LEFT JOIN dental_care_service_place_type pl ON pl.dental_care_service_place_type_id =

c.dental_care_service_place_type_id

LEFT JOIN dental_care_type t ON t.dental_care_type_id = c.dental_care_type_id

WHERE DATE(c.entry_datetime) BETWEEN @startdate AND @enddate

ORDER BY c.vn

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

ตัวอย่าง

pname patient date_serv dental_care_type_name dental_care_service_place_type_name pteeth pcaries pfilling pextract need_fluoride need_scaling need_sealant need_pfilling need_pextract need_dextract dental_care_nprosthesis_name permanent_perma permanent_prost prosthesis_prost dental_care_gum_type_name dental_care_school_type_name dental_care_school_class_type_name dental_care_gum_type_name
นาย วงษ์ xxx 20/3/2015 ผู้สูงอายุ ในสถานบริการ null null null null null null null null null null null null null null null null null null
นางสาว มนทิราพร xxx 20/3/2015 เด็กวัยเรียน ในสถานบริการ null null null null null null null null null null null null null null null null null null
น.ส. ชลธิชา xxx 20/3/2015 กลุ่มอื่นๆ ในสถานบริการ null null null null null null null null null null null null null null null null null null
นาย ณัฐวุฒิ xxx 20/3/2015 กลุ่มอื่นๆ ในสถานบริการ null null null null null null null null null null null null null null null null null null

insert dental_care_type กรณีตัวแปรหาย

dental care type

/*insert dental_care_type*/

/*!40101 SET NAMES utf8 */;

DROP TABLE dental_care_type;

CREATE TABLE `dental_care_type` (

`dental_care_type_id` INT (11),

`dental_care_type_name` VARCHAR (600),

`hos_guid` CHAR (114)

);

INSERT INTO `dental_care_type` (`dental_care_type_id`, `dental_care_type_name`, `hos_guid`) VALUES('1','หญิงตั้งครรภ์',NULL);

INSERT INTO `dental_care_type` (`dental_care_type_id`, `dental_care_type_name`, `hos_guid`) VALUES('2','เด็กก่อนวัยเรียน',NULL);

INSERT INTO `dental_care_type` (`dental_care_type_id`, `dental_care_type_name`, `hos_guid`) VALUES('3','เด็กวัยเรียน',NULL);

INSERT INTO `dental_care_type` (`dental_care_type_id`, `dental_care_type_name`, `hos_guid`) VALUES('4','ผู้สูงอายุ',NULL);

INSERT INTO `dental_care_type` (`dental_care_type_id`, `dental_care_type_name`, `hos_guid`) VALUES('5','กลุ่มอื่นๆ',NULL);

SELECT * FROM dental_care_type;

person

person

แฟ้ม person

/*patient not in person */

SELECT e.`hn`,e.`cid`,e.`pname`

,concat( e. `fname`, space( 1), e.lname)as 'patient_name'

, e. birthday

FROM patient AS e

left join person as p on p. cid = e . cid

where

p. person_id is null

and e . chwpart = '72'

and e . cid is not null

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

ตัวอย่าง

hn cid pname patient_name birthday
98134 8888888888888 นาง อรอนงค์ xxx 7/3/1970
55809 8888888888888 นาง พิมพ์ใจ xxx 19/10/1961
101671 8888888888888 นาง ดวงหทัย xxx 1/1/1942
98389 8888888888888 นาย วัศพล xxx 27/5/1993
96137 8888888888888 ด.ช. รัตนวิช xxx 26/3/2000

/*Check Pname ตรวจสอบคำนำหน้่าไม่อยู่ในมาตรฐาน*/

SELECT cid,patient_hn AS hn

,pname

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

,sex

,birthdate

FROM person p

LEFT JOIN provis_pname pr ON pr.provis_pname_short_name = p.pname

WHERE pr.provis_pname_short_name IS NULL UNION

SELECT cid,hn,pname

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

,sex

,birthday AS birthdate

FROM patient pp

LEFT JOIN provis_pname pr ON pr.provis_pname_short_name = pp.pname

WHERE pr.provis_pname_short_name IS NULL;

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

NUTRITION

nutritionf

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

update bmi_chart แสดงข้อมูลถึง 15 ปี

bmichart

/*WEIGHT น้ำหนัก(กก.) */

set @date1 ='2016-10-01',@date2='2017-09-30',@x = 0;

SELECT @x :=@x+1 as no,person.pname,concat(person.fname,space(2),person.lname)as 'person_name',

person_wbc_nutrition.person_wbc_id,person_wbc_nutrition.nutrition_date,person_wbc_nutrition.body_weight as WEIGHT

from person_wbc_nutrition

INNER JOIN person_wbc on person_wbc.person_wbc_id = person_wbc_nutrition.person_wbc_id

INNER JOIN person on person.person_id = person_wbc.person_id

where person_wbc_nutrition.nutrition_date BETWEEN @date1 and @date2

and person_wbc_nutrition.body_weight is null

ORDER BY  person_wbc_nutrition.person_wbc_id,person_wbc_nutrition.nutrition_date

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

ตัวอย่าง

no pname person_name nutrition_date WEIGHT
1 ด.ญ. ฉันทพิชญา  xxx 9/2/2017 null
2 ด.ญ. ชญาภา  xxx 5/1/2017 null
3 ด.ช. นาราชา  xxx 6/10/2016 null
4 ด.ญ. เกตุขนิฐ  xxx 27/1/2017 null
5 ด.ช. ชญานนท์  xxx 5/1/2017 null

/*HEIGHT ส่วนสูง (ซม.)*/

set @date1 ='2016-10-01',@date2='2017-09-30',@x = 0;

SELECT @x :=@x+1 as no,person.pname,concat(person.fname,space(2),person.lname)as 'person_name',

person_wbc_nutrition.nutrition_date,person_wbc_nutrition.height as height

from person_wbc_nutrition

INNER JOIN person_wbc on person_wbc.person_wbc_id = person_wbc_nutrition.person_wbc_id

INNER JOIN person on person.person_id = person_wbc.person_id

where person_wbc_nutrition.nutrition_date BETWEEN @date1 and @date2

and person_wbc_nutrition.height is null

ORDER BY  person_wbc_nutrition.person_wbc_id,person_wbc_nutrition.nutrition_date

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

ตัวอย่าง

no pname person_name nutrition_date height
1 ด.ญ. ชญาภา  XXX 5/1/2017 null
2 ด.ช. นาราชา  XXX 6/10/2016 null
3 ด.ญ. เกตุขนิฐ  XXX 27/1/2017 null
4 ด.ช. ชญานนท์  XXX 5/1/2017 null
5 ด.ญ. สิทธิดา  XXX 7/10/2016 null

/*HEADCIRCUM เส้นรอบศีรษะ (ซม.) */

set @date1 ='2016-10-01',@date2='2017-09-30',@x = 0,@age = 1;

SELECT @x :=@x+1 as no,person.pname,concat(person.fname,space(2),person.lname)as 'person_name',

timestampdiff(year,person.birthdate,person_wbc_nutrition.nutrition_date)as 'child_age',

person_wbc_nutrition.nutrition_date,person_wbc_nutrition.head_circum_cm

from person_wbc_nutrition

INNER JOIN person_wbc on person_wbc.person_wbc_id = person_wbc_nutrition.person_wbc_id

INNER JOIN person on person.person_id = person_wbc.person_id

where person_wbc_nutrition.nutrition_date BETWEEN @date1 and @date2

and person_wbc_nutrition.head_circum_cm is null

and timestampdiff(year,person.birthdate,person_wbc_nutrition.nutrition_date)=@age

ORDER BY  person_wbc_nutrition.person_wbc_id,person_wbc_nutrition.nutrition_date

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

ตัวอย่าง

no pname person_name child_age nutrition_date head_circum_cm
1 ด.ญ. กวินทิพย์  XXX 1 20/10/2016 null
2 ด.ช. ปุญญพัฒน์  XXX 1 20/10/2016 null
3 ด.ช. โรจน์ศักดิ์  XXX 1 20/10/2016 null
4 ด.ช. ณัฐพงศ์  XXX 1 20/10/2016 null
5 ด.ญ. กมลนิตย์  XXX 1 20/10/2016 null


update อาหารที่รับประทานปัจจุบัน person_nutrition_food_type  2061

/*เด็ก 1 ปีFOOD อาหารที่รับประทานปัจจุบัน ที่ผิดปกติ*/

set @month = 12;

set @x=0;

SELECT

@x:=@x+1 as 'No.',p.pname,concat(p.fname,space(1),p.lname)as'person_name',a.age_m,a.birth_weight,a.breast_feed_status_id

FROM

person_wbc a

LEFT OUTER JOIN person p ON p.person_id = a.person_id

LEFT OUTER JOIN breast_feed_status bf ON bf.breast_feed_status_id = a.breast_feed_status_id

WHERE a.age_m < @month

and a.breast_feed_status_id is null

and a.discharge <> 'Y'

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

ตัวอย่าง

No. pname person_name age_m birth_weight breast_feed_status_id
1 ด.ญ. ปุณยนุช XXX 11 null null
2 ด.ช. ณัฐดนัย XXX 10 null null
3 ด.ช. ธนธรณ์ XXX 10 null null
4 ด.ญ. ณัฐริณีย์ XXX 10 null null
5 ด.ช. ธนชัย XXX 10 null null

breastfeeding

/*เด็ก 1 ปี BOTTLE การใช้ขวดนม*/

set @month = 12;

set @x=0;

SELECT

@x:=@x+1 as 'No.',p.pname,concat(p.fname,space(1),p.lname)as'person_name',a.age_m,a.nutrition_date,

a.person_nutrition_bottle_type_id

FROM

person_wbc_nutrition AS a

LEFT OUTER JOIN person_wbc AS b ON b.person_wbc_id = a.person_wbc_id

LEFT OUTER JOIN person_nutrition_bottle_type AS bottle ON bottle.person_nutrition_bottle_type_id = a.person_nutrition_bottle_type_id

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

WHERE

a.age_m < @month

and a.person_nutrition_bottle_type_id IS null

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

ตัวอย่าง

No. pname person_name age_m nutrition_date person_nutrition_bottle_type_id
1 ด.ญ. สุภาพร XXX 0 5/11/2008 null
2 ด.ญ. สุภาพร XXX 2 8/1/2009 null
3 ด.ญ. สุภาพร XXX 4 12/3/2009 null
4 ด.ญ. สุภาพร XXX 6 14/5/2009 null
5 ด.ช. ณัฐภูมิ XXX 0 21/10/2009 null


/*ของทารกแรกเกิดน้ำหนักน้อยกว่า 2,500 กรัม*/

SET @x=0;

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

SELECT

@x:=@x+1 AS 'No.',p.pname, CONCAT(p.fname, SPACE(1),p.lname) AS'person_name',p.sex,pw.birth_weight,pw.age_m

FROM person_wbc AS pw

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

WHERE pw.birth_weight <='2500'

AND pw.out_region <>'Y'

AND pw.discharge <>'y'

and pw.person_wbc_regdate between @date1 and @date2

group by p.cid

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

ตัวอย่าง

No. pname person_name sex birth_weight age_m
1 ด.ช. กฤษดา XXX 1 2500.00 21
2 ด.ช. ภาคิน XXX 1 2410.00 19
3 ด.ญ. เกตุขนิฐ XXX 2 1845.00 11
4 ด.ญ. กนกวรรณ XXX 2 1920.00 11
5 ด.ช. อานุชา XXX 1 2165.00 6

/*ภาวะโภชนาการเด็ก 0-6 เดือน ปีงบประมาณ ทุกคนรวมนอกเขต*/

#+++++++++++++++++++++++++++++

set @age_m =6;/*   6เดือน*/

set @date='2015-10-01';/*ปีงบประมาณ*/

#+++++++++++++++++++++++++++++

SELECT

p.pname,concat(p.fname,space(1),p.lname) AS Child_name,

p.sex,TIMESTAMPDIFF(month,p.birthdate,@date) AS age_month,

p.house_regist_type_id AS Typearea,

(SELECT bl. name from person_wbc_nutrition as pn INNER JOIN bmi_level as bl on bl.bmi_level =pn.bmi_level WHERE person_wbc_id =pw.person_wbc_id ORDER BY nutrition_date desc LIMIT 1) as 'BMI'

from person_wbc as pw

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

WHERE TIMESTAMPDIFF(month,p.birthdate,@date)<= @age_m

#and p.house_regist_type_id in('1','3') /*หากเลือก type 1,3 เอาเครื่องหมาย # หน้า and p.house_regist_type_id in('1','3' ออก*/

GROUP BY pw.person_id;

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

ตัวอย่าง

pname Child_name sex age_month Typearea BMI
ด.ญ. พรณิชา XXX 2 6 3 สมส่วน
ด.ญ. กัญญพัชร XXX 2 6 4 ผอม
ด.ญ. มาริษา XXX 2 6 4 สมส่วน
ด.ช. อกัณห์ XXX 1 6 4 สมส่วน
ด.ช. พงศ์วิชญ์ XXX 1 6 4 ผอม

คำนวน  BMI ตามมาตรฐาน ASIAN

/*ASIAN_bmi(College of Sports Science and Technology (CSST)

, MAHIDOL UNIVERSITY)*/

select n.vn,n.nutrition_date,p.person_id,

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

timestampdiff(month,p.birthdate,n.nutrition_date)as'age_m',n.body_weight,n.height,

round(n.body_weight/((n.HEIGHT/100)*(n.HEIGHT/100))) as 'l_bmi'

,if(round(n.body_weight/((n.HEIGHT/100)*(n.HEIGHT/100)))<18.5,'thin',

if(round(n.body_weight/((n.HEIGHT/100)*(n.HEIGHT/100)))between 18.5 and 22.9,'normal',

if(round(n.body_weight/((n.HEIGHT/100)*(n.HEIGHT/100)))between 23 and 24.9 ,'fat_1level',

if(round(n.body_weight/((n.HEIGHT/100)*(n.HEIGHT/100)))between 25 and 29.9 ,'fat_2level','fat_3level')))) as 'ASIAN_bmi'

from person_wbc_nutrition as n

inner join person_wbc as pw on pw.person_wbc_id = n.person_wbc_id

inner join person as p on p.person_id = pw.person_id

where n.nutrition_date >='2015-06-01'

and (n.body_weight is not null

or n.height is not null)

order by n.vn

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

ตัวอย่าง

vn nutrition_date person_id person_name age_m body_weight height l_bmi ASIAN_bmi
21/7/2016 64292 อภิวัฒน์ xxx 24 12 84 17 thin
20/10/2016 64292 อภิวัฒน์ xxx 27 13.6 86 18 thin
20/10/2016 65948 อนุกูล xxx 11 9.8 76 17 thin
30/6/2015 64356 ธนัชชา xxx 9 8 68 17 thin
161004161558 4/10/2016 67491 วิภาพร xxx 0 2.84 53 10 thin
161012092109 11/10/2016 67517 อานุชา xxx 0 2.16 47 10 thin

ยาน้ำเสริมธาตุเหล็กตามสำนักโภชนาการแจ้ง

/*! set names utf8*/;

/*ยาน้ำเสริมธาตุเหล็กตามสำนักโภชนาการแจ้ง

--จากร้อยละของเด็กอายุ 6 เดือน – 5 ปี ได้รับยาน้ำเสริมธาตุเหล็ก

*/

select

icode,name,strength,dosageform,istatus,did,substr(did,1,19)as'19digit'

from

drugitems

where

substr(did, 1, 19) in ('1004974140020403305' ,

'1004974140008008305',

'2020301200871801305',

'1004890000008103305',

'1004890000009501305',

'1004890000009507305',

'1004880000086342304',

'2020301200871801305');

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

ตัวอย่าง

icode name strength dosageform istatus did 19digit
1570025 Eurofer-Iron Syrup 1 g. SYRUPS Y 100497414002040330581606 1004974140020403305