audit50
วัตถุประสงค์การใช้ คือแจ้งข่าวและตรวจสอบ ระบบข้อมูลมาตรฐานที่ถูกส่งออกจาก จาก ระบบงาน Hosxp Hosxp _pcu
วัตถุประสงค์การใช้ คือแจ้งข่าวและตรวจสอบ ระบบข้อมูลมาตรฐานที่ถูกส่งออกจาก จาก ระบบงาน Hosxp Hosxp _pcu
|
EPI
EPI ให้บริการวัคซีน
หมายถึง ข้อมูลการให้บริการวัคซีนกับผู้ที่มารับบริการ และประชาชนกลุ่มเป้าหมายของการฉีด วัคซีนในเขตรับผิดชอบ ประกอบด้วย
1) เด็กอายุ ต่ำกว่า 7 ปี และหญิงตั้งครรภ์ ที่มาใช้บริการวัคซีน ในโรงพยาบาลและสถานบริการระดับปฐมภูมิ
2) เด็กอายุ ต่ำกว่า 7 ปี และหญิงตั้งครรภ์ ในเขตรับผิดชอบ ที่ได้รับบริการวัคซีนจากสถานพยาบาลอื่น
3) เด็กนักเรียนชั้นประถมศึกษาที่ 1 ทุกคนในโรงเรียนที่รับผิดชอบที่ได้รับวัคซีน
4) เด็กนักเรียนชั้นประถมศึกษาที่ 2 ทุกคนในโรงเรียนที่รับผิดชอบที่ได้รับวัคซีน
5) เด็กนักเรียนชั้นประถมศึกษาที่ 6 ทุกคนในโรงเรียนที่รับผิดชอบที่ได้รับวัคซีน
6) ประชาชนกลุ่มเป้าหมายอื่นๆที่มารับบริการวัคซีน
หมายเหตุ
- ผู้มารับบริการวัคซีน หมายถึง ทั้งที่อาศัยในเขตรับผิดชอบ และนอกเขตรับผิดชอบ
- การให้บริการวัคซีน รวมทั้งที่ให้ในสถานพยาบาล และนอกสถานพยาบาล (เช่น กรณีนักเรียนในโรงเรียน)
- ข้อมูลการให้บริการที่สถานพยาบาล อื่นให้กับประชาชนกลุ่มเป้าหมายที่อาศัยในเขตรับผิดชอบ เป็นการเก็บข้อมูลเพื่อประเมินความครอบคลุมของบริการ
- การให้บริการวัคซีน 1 ชนิด ในแต่ละครั้ง จะมี 1 record หากในการให้บริการครั้งหนึ่งมีการให้วัคซีนมากกว่า 1 ชนิด ก็จะมีมากกว่า 1 record
แฟ้มบริการกึ่งสำรวจ
1. การให้บริการ จัดเก็บ/บันทึกข้อมูลทุกครั้งที่มารับบริการ และส่งข้อมูลให้ส่วนกลางภายในรอบของเดือนนั้น ๆ
2. การสำรวจ จัดเก็บ/บันทึกข้อมูลทุกครั้งที่ท าการส ารวจข้อมูลประชากรที่อาศัยในเขตรับผิดชอบ ที่ไปใช้รับบริการที่สถานบริการอื่น และส่งข้อมูลให้ส่วนกลาง
ภายในรอบของเดือนนั้น ๆ
การเพิ่มวัคซนีในโปรแกรม HOSxP และ HOSxP PCU
/*VACCINETYPE รหัสวัคซีน*/ SET @date1= '2015-04-01',@date2='2016-04-30'; /*DATE_SERV วันที่ให้บริการ */ drop table if EXISTS table2; CREATE TEMPORARY TABLE IF NOT EXISTS table2 AS select * from (SELECT DISTINCT p.cid, p.pname, concat(p.fname,space(1),p.lname) as person_name, a.vaccine_date, GROUP_CONCAT(b.vaccine_code)vaccine, 'list' AS 'table' FROM person_vaccine_list a INNER JOIN person AS p ON p.person_id = a.person_id INNER JOIN person_vaccine AS b ON b.person_vaccine_id = a.person_vaccine_id WHERE a.vaccine_date BETWEEN @date1 AND @date2 GROUP BY p.person_id , a.vaccine_date UNION SELECT DISTINCT pp.cid, pp.pname, concat(pp.fname,space(1), pp.lname) as person_name, e.vaccine_date, GROUP_CONCAT(bb.vaccine_code)vaccine, 'elsewhere' AS 'table' FROM person_vaccine_elsewhere e INNER JOIN person AS pp ON pp.person_id = e.person_id INNER JOIN person_vaccine AS bb ON bb.person_vaccine_id = e.person_vaccine_id WHERE e.vaccine_date BETWEEN @date1 AND @date2 GROUP BY pp.person_id , e.vaccine_date ) bn; select * from table2 order by cid; drop table if EXISTS table2; #==================== |
ตัวอย่าง ตรง table ข้อมูลที่ได้ list หมายถึงได้จากตาราง person_vaccine_list ได้จากการที่เราบันทึกบริการเอง
elsewhere ได้จาก person_vaccine_elsewhere หรือวัคซีน จากที่อื่น ได้จากการ บันทึกและ synchronise
cid | pname | person_name | vaccine_date | vaccine | table |
8888888888888 | ด.ช. | ศิรภัทร xxx | 17/9/2015 | OPV1,DTPHB1 | list |
8888888888888 | ด.ช. | ศิรภัทร xxx | 19/11/2015 | OPV2,DTPHB2 | list |
8888888888888 | ด.ช. | ศิรภัทร xxx | 21/1/2016 | OPV3,DTPHB3 | list |
8888888888888 | ด.ช. | ศิรภัทร xxx | 21/4/2016 | MEASLES/MMR | list |
8888888888888 | ด.ช. | ศิรภัทร xxx | 12/7/2015 | HBV1 | elsewhere |
8888888888888 | ด.ช. | ศิรภัทร xxx | 13/7/2015 | BCG | elsewhere |
8888888888888 | ด.ช. | ธนภัทร yyy | 19/11/2015 | OPV1,DTPHB1 | list |
8888888888888 | ด.ช. | ธนภัทร yyy | 21/1/2016 | OPV2,DTPHB2,IPV-P | list |
8888888888888 | ด.ช. | ธนภัทร yyy | 24/3/2016 | OPV3,DTPHB3 | list |
8888888888888 | ด.ช. | ธนภัทร yyy | 16/8/2015 | BCG,HBV1 | elsewhere |
/*วัคซีนรับจากที่อื่น VACCINEPLACE สถานที่รับวัคซีน ผิดปกติ*/ set @date1 = '2015-10-01',@date2='2016-09-30';/*เปลี่ยนวันที่ตามต้องการ*/ SELECT 'elsewhere' AS `table`, person_vaccine_elsewhere.vaccine_date, person_vaccine_elsewhere.vaccine_hospcode, person.pname, concat(person.fname,space(1),person.lname)person_name ,TIMESTAMPDIFF(MONTH, person.birthdate, person_vaccine_elsewhere.vaccine_date) AS 'age_month', person_wbc.discharge, GROUP_CONCAT(person_vaccine.vaccine_code) AS vaccine, person_vaccine_elsewhere.vaccine_note FROM person_vaccine_elsewhere INNER JOIN person ON person.person_id = person_vaccine_elsewhere.person_id INNER JOIN person_vaccine ON person_vaccine.person_vaccine_id = person_vaccine_elsewhere.person_vaccine_id INNER JOIN person_wbc ON person_wbc.person_id = person.person_id WHERE person_vaccine_elsewhere.vaccine_date between @date1 and @date2 and vaccine_hospcode IS NULL GROUP BY person.cid , person_vaccine_elsewhere.vaccine_date order by person.cid,person_vaccine_elsewhere.vaccine_date; #============== |
ต้วอย่าง
table | vaccine_date | vaccine_hospcode | pname | person_name | age_month | discharge | vaccine | vaccine_note |
10/11/2015 | ด.ญ. | อาทิตยา xxx | 6 | N | DTPHB3,OPV3 | Sync from bms-datacenter | ||
14/12/2015 | ด.ญ. | ธัญญรัตน์ yyy | 7 | N | DTPHB3,OPV3 | Sync from bms-datacenter | ||
10/11/2015 | ด.ช. | ภรัญญู ccc | 6 | N | OPV3,DTPHB3 | Sync from bms-datacenter | ||
11/12/2015 | ด.ช. | ปุณณวัฒน์ sss | 7 | N | DTPHB3,OPV3 | Sync from bms-datacenter | ||
16/11/2015 | ด.ญ. | ณัฏฐนิชา ddd | 6 | N | DTPHB3,OPV3 | Sync from bms-datacenter | ||
10/11/2015 | ด.ช. | กมลภพ aaa | 6 | N | IPV-P,DTPHB3,OPV3 | Sync from bms-datacenter | ||
10/5/2016 | ด.ช. | กมลภพ aaa | 12 | N | JE1 | Sync from bms-datacenter |
/*แก้ไข เมื่อถูกส่งเข้า Datacenter ข้อมูลจะยังคงมีสถานบริการที่ให้บริการ*/ /*update vaccine_hospcode */ set @date1 = '2015-10-01',@date2='2016-09-30';/*เปลี่ยนวันที่ตามต้องการ*/ #-- UPDATE person_vaccine_elsewhere set vaccine_hospcode = hospcode WHERE left(hospcode ,1) BETWEEN '0' and '9' ; #-- SELECT 'elsewhere' AS `table`, person_vaccine_elsewhere.vaccine_date, person_vaccine_elsewhere.vaccine_hospcode, person.pname, concat(person.fname,space(1),person.lname)person_name ,TIMESTAMPDIFF(MONTH, person.birthdate, person_vaccine_elsewhere.vaccine_date) AS 'age_month', person_wbc.discharge, GROUP_CONCAT(person_vaccine.vaccine_code) AS vaccine, person_vaccine_elsewhere.vaccine_note FROM person_vaccine_elsewhere INNER JOIN person ON person.person_id = person_vaccine_elsewhere.person_id INNER JOIN person_vaccine ON person_vaccine.person_vaccine_id = person_vaccine_elsewhere.person_vaccine_id INNER JOIN person_wbc ON person_wbc.person_id = person.person_id WHERE person_vaccine_elsewhere.vaccine_date between @date1 and @date2 -- and vaccine_hospcode IS NULL GROUP BY person.cid , person_vaccine_elsewhere.vaccine_date order by person.cid,person_vaccine_elsewhere.vaccine_date; #================== |
ตัอย่าง
vaccine_date | vaccine_hospcode | pname | person_name | age_month | discharge | vaccine | vaccine_note |
16/1/2016 | 10662 | ด.ญ. | ศศิพร xxx | 0 | N | HBV1,BCG | |
11/4/2016 | 10662 | ด.ญ. | ศศิพร xxx | 2 | N | OPV1,DTPHB1 | |
10/6/2016 | 10662 | ด.ญ. | ศศิพร xxx | 4 | N | OPV2,DTPHB2 | |
29/12/2015 | 13756 | ด.ญ. | ณัฏฐ์ชญา xxx | 0 | N | BCG,HBV1 | คลอด รพ.จุฬาลงกรณ์ |
7/3/2016 | 11537 | ด.ช. | ณัฏฐ์ชญา xxx | 0 | N | BCG,HBV1 |
/*ค้นรายชื่อ ให้บริการวัคซีน ในฝังบริการ เลือกที่ให้บริการจริงเป็นที่อื่น แต่ไม่บันทึกในฝั่ง บริการที่อื่น*/ set @date1 ='2013-10-01' ,@date2 = '2017-09-30';/*เปลี่ยน วันที่*/ SELECT person.cid, person.pname, CONCAT(person.fname, SPACE(1), person.lname) AS person_name, person_wbc_service.service_date, #person_wbc_service.wbc_location_type_id, wbc_location_type.wbc_location_type_name, GROUP_CONCAT(person_vaccine.vaccine_code) AS vaccine_name, person_vaccine_elsewhere.person_vaccine_id
FROM person_wbc INNER JOIN person_wbc_service ON person_wbc.person_wbc_id = person_wbc_service.person_wbc_id INNER JOIN person ON person.person_id = person_wbc.person_id INNER JOIN person_vaccine_list ON person_wbc.person_id = person_vaccine_list.person_id INNER JOIN person_vaccine ON person_vaccine.person_vaccine_id = person_vaccine_list.person_vaccine_id LEFT JOIN person_vaccine_elsewhere ON person.person_id = person_vaccine_elsewhere.person_id INNER JOIN wbc_location_type ON wbc_location_type.wbc_location_type_id = person_wbc_service.wbc_location_type_id WHERE person_wbc_service.service_date BETWEEN @date1 AND @date2 AND person_wbc_service.wbc_location_type_id = 2 AND person_vaccine_elsewhere.person_vaccine_id IS NULL GROUP BY person.cid , person_wbc_service.service_date #=============== |
ตัวอย่าง
cid | pname | person_name | service_date | wbc_location | vaccine_name | person_vaccine_id |
8888888888888 | ด.ญ. | ณัฐณิชา xxx | 23/9/2015 | ที่อื่น | HBV1,BCG | null |
8888888888888 | ด.ญ. | วริษา xxx | 31/1/2014 | ที่อื่น | BCG,MMR2,MMR2,MMR2,DTPHB3,DTPHB2,DTPHB1,JE1,HBV1,OPV1,OPV2,OPV3,MEASLES/MMR,DTP4,OPV4 | null |
8888888888888 | ด.ช. | จิรันธร xxx | 20/2/2015 | ที่อื่น | LAJE1,DTPHB3,DTPHB2,DTPHB1,OPV4,DTP4,MEASLES/MMR,OPV3,OPV2,OPV1,BCG,HBV1 | null |
8888888888888 | ด.ช. | จิรันธร xxx | 24/4/2015 | ที่อื่น | DTPHB1,DTPHB2,DTPHB3,LAJE1,OPV4,DTP4,MEASLES/MMR,OPV3,OPV1,HBV1,BCG,OPV2 | null |
/*IPV-P นำเข้าบัญชี 3 เด็ก 0-1 ปี ตาราง person_vaccine*/ DELETE from person_vaccine WHERE export_vaccine_code = '401'; SET @person_vaccine_id = (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 (@person_vaccine_id, '401 : IPV-P ฉีดโปลิโอ 4 เดือน (Z240)', 'IPV-P', 'IPV-P', '401', NULL, 'N', NULL); /*ตาราง WBC_vaccine*/ DELETE from WBC_vaccine WHERE export_vaccine_code = '401'; SET @wbc_vaccine_id = (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`, `combine_vaccine`) VALUES (@wbc_vaccine_id, 'ไอพีวี-พี', 'IPV-P', '0', '6', '401', 'IPV-P', 'N');
/*ตาราง vaccine_combination*/ DELETE FROM vaccine_combination WHERE vaccine_code = 'IPV-P'; SET @vaccine_combination_id = (select max(vaccine_combination_id)+1 from vaccine_combination) ; INSERT INTO `vaccine_combination` (`vaccine_combination_id`, `vaccine_code`, `vaccine_combine_code`, `hos_guid`) VALUES ('86', 'IPV-P', 'IPV-P', null);
/*ตาราง baby_items นำเข้า one STOP service*/ DELETE FROM baby_items WHERE vaccine_code = 'IPV-P'; SET @baby_code = (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 (@baby_code , '4', NULL, 'ไอพีวี-พี', 'IPV-P', NULL, '401', NULL) ;
/*provis_aptype ข้อมูลการนัดหมาย*/ DELETE FROM provis_aptype WHERE NAME ='IPV-P'; INSERT IGNORE INTO `provis_aptype` (`code`, `name`, `hos_guid`, `hos_guid_ext`) VALUES ('401', 'IPV-P', NULL, NULL);
/*Provis_vcctype ตารางมาตรฐานส่ง EPI */ DELETE FROM provis_vcctype WHERE CODE ='401'; INSERT IGNORE INTO provis_vcctype (CODE,NAME,hos_guid) VALUES ('401','IPV-P',NULL); #-------------------------------------- |
/*หา เด็ก รหัสสถานพยาบาล ว่าง ในวัคซีนที่รับบริการที่อื่น*/ set @date1 ='2014-10-01',@date2 ='2017-09-30'; SELECT person_vaccine_elsewhere.vaccine_date, person.pname, CONCAT(person.fname,SPACE(1),person.lname ) AS person_name, person_vaccine_elsewhere.hospcode, person_vaccine_elsewhere.vaccine_hospcode, GROUP_CONCAT(person_vaccine.vaccine_code) vaccine FROM person_vaccine_elsewhere INNER JOIN person ON person.person_id = person_vaccine_elsewhere.person_id INNER JOIN person_vaccine ON person_vaccine.person_vaccine_id = person_vaccine_elsewhere.person_vaccine_id WHERE person_vaccine_elsewhere.vaccine_date between @date1 and @date2 and hospcode IS NULL AND person.`house_regist_type_id` IN ('1', '3') GROUP BY person.cid,person_vaccine_elsewhere.vaccine_date
#============== |
ตัวอย่าง
vaccine_date | pname | person_name | hospcode | vaccine_hospcode | vaccine |
10/06/2559 | ด.ญ. | อลิสา xxx | DTPHB1,OPV1 | ||
10/08/2559 | ด.ญ. | อลิสา xxx | OPV2,DTPHB2 | ||
4/05/2559 | ด.ช. | พรพิพัฒน์ xxx | HBV1,BCG | ||
31/05/2559 | ด.ญ. | ศุภิสรา xxx | HBV1 | ||
2/06/2559 | ด.ญ. | ศุภิสรา xxx | BCG |
กรณีบันทึกความครอบคลุมวัคซีน BCG ซึ่งปกติรับจากโรงพยาบาล ที่เด็กคลอด โดย ได้รับบริการก่อนกลับบ้าน
บางแห่งไม่ได้บันทึกสถานบริการวัคซีน BCG ดังกล่าว
/*หา เด็ก รหัสสถานพยาบาล ว่าง ในวัคซีนที่รับบริการที่อื่น*/ SELECT person.cid, person.pname, CONCAT(person.fname, SPACE(1), person.lname) AS person_name, group_concat(vaccine_code)as vaccine, person_vaccine_elsewhere.hospcode, person_vaccine_elsewhere.vaccine_date, person_vaccine_elsewhere.vaccine_hospcode FROM person_vaccine_elsewhere INNER JOIN person ON person.`person_id` = person_vaccine_elsewhere.`person_id` inner join person_vaccine on person_vaccine.person_vaccine_id = person_vaccine_elsewhere.person_vaccine_id WHERE hospcode IS NULL AND person.`house_regist_type_id` IN ('1','3') and (person_vaccine.vaccine_code = 'BCG' or person_vaccine.vaccine_code = 'HBV1' ) group by person.cid,person_vaccine_elsewhere.vaccine_date #======================== |
ตัวอย่าง
cid | pname | person_name | vaccine | hospcode | vaccine_date | vaccine_hospcode |
88888888888888 | ด.ช. | ชินนาอาชว์ xxx | BCG | 12/3/2012 | ||
88888888888888 | ด.ช. | ชัชวรรษ์ xxx | HBV1,BCG | 18/7/2010 | ||
88888888888888 | ด.ญ. | เมธากานต์ xxx | HBV1,BCG | 13/4/2011 | ||
88888888888888 | ด.ช. | วราวุธ xxx | HBV1,BCG | 7/1/2012 | ||
88888888888888 | ด.ช. | ณัฐนนท์ xxx | BCG,HBV1 | 21/10/2012 |
/*labour no relate BCG */ set @date1 ='2016-10-01',@date2 ='2017-09-30'; SELECT p.pname, CONCAT(p.fname, SPACE(1), p.lname) AS 'child_name',p.birthdate, v.vaccine_date ,group_concat(vaccine_code) as 'vaccine' FROM person_labour AS pl INNER JOIN person AS p ON p.person_id = pl.person_id left join person_vaccine_list as v on v.person_id = pl.person_id inner join person_vaccine as pv on pv.person_vaccine_id = v.person_vaccine_id where pv.vaccine_code <> 'bcg' and p.birthdate between @date1 and @date2 group by p.cid #=============== |
ตัวอย่าง
pname | child_name | birthdate | vaccine_date | vaccine |
ด.ช. | อานุชา xxx | 2016-10-11 | 2016-10-11 | HBV1 |
ด.ญ. | ปัณฑารีย์ xxx | 2016-10-12 | 2016-10-12 | HBV1,OPV2,DTPHB2 |
ด.ช. | ปิยะพล xxx | 2016-10-13 | 2016-10-13 | HBV1 |
ด.ญ. | สุนิศา xxx | 2016-10-12 | 2016-10-12 | HBV1,DTPHB2,OPV2 |
การเพิ่ม รหัสวัคซีน โรคมะเร็งปากมดลูกจากเชื้อไวรัส ฮิวแมนแปบพิลโลมา HPVs
กรณีที่มีการนำข้อมูลมาบันทึกความครอบคลุม หรือแก้ไขข้อมูลเก่า
เมื่อมีการส่งออก 43 แฟ้มใหม่อีครั้ง ต้องเลือกส่งแฟ้มอะไรบ้าง
จากการดูการประมวลผล รายงาน EPI ความครอบคลุมของเด็กอายุครบ 1 ปีที่ได้รับวัคซีน BCG ,HBV1,DTP-HBV3,โปลิโอ3, MMR1,IPV รายไตรมาส
พบว่าใช้แฟ้มข้อมูลดังต่อไปนี้
EPI
PERSON
HOME
ADDRESS
NEWBORN
NEWBORNCARE
NUTRITION
ปัญหาที่พบได้บ่อยๆ คือส่งข้อมูลแล้วข้อมูลที่มีการแก้ไขบางส่วน ทำให้มีข้อมูลเดียวกัน 2 reccord คืออาจถูก 1 ผิด 1 หรือ ถูก ทั้งคู่ หรือ ผิดทั้งคู่
ซึ่งเรามักแจ้ง admin ลบให้ แต่เนื่องจาก admin ไม่ได้ดูคำสั่งในแต่ละรายงาน อาจมีข้อมูลจากแฟ้มที่เกียวข้องผิดพลาดซ้ำซ้อนด้วย
ดังนั้นจึงเป็นหน้าที่ผู้แจ้งลบข้อมูลต้องแจ้งให้ตรวจสอบแฟ้มที่ถูกส่งมาในชุดเดียวกันด้วย
เพิ่มวัคซีนผู้ใหญ่ 074 : MRR หัด หัดเยอรมัน รณรงค์
ในบัญชี 4 มีวัคซีนที่เกิดใหม่คือ JE1 Lived และ JE2 Lived หาก ตั้งค่าผิดพลาด ผลการฉีดวัคซีนจะไม่แสดงที่หน้่าจอ
แก้ไขโดยในทุกตารางที่ set up ตรง Vaccine_code ให้ใช็ตัวพิมพ์ใหญ่ JE1 Lived ใช้ LAJE1
JE2 Lived ใช้ LAJE2
หรือแก้ไขโดยนำคำสั่ง Update_J11_J12
run โดยใช้โปรแกรม เช่น SQL_Yog,navicat,HeidiSQL
เมื่อ run เสร็จแล้ว ให้ กดปุ่ม recalc ในบัญชี 4
คำสั่งนำเข้ารหัสวัคซีน ดีทีพีตับอักเสบบีฮิบ
แพทย์แผนไทย
การตั้งค่ามาตรฐานระบบงานแพทย์แผนไทย
เข้าสู่เมนู การตั้งค่า (Tools system setting)
บริการที่เปิด
เลือกบริการที่เปิดให้บริการในสถานบริการควรเลือกให้ครอบคลุมบริการที่ให้
ประเภทของบริการที่เปิด | |
1 | การรักษาด้วยยาสมุนไพร |
2 | การนวดเพื่อรักษา/ฟื้นฟูสภาพ |
3 | การอบไอน้ำสมุนไพรเพื่อรักษา/ฟื้นฟูสภาพ |
4 | การประคบสมุนไพรเพื่อรักษา/ฟื้นฟูสภาพ |
5 | การให้คำแนะนำการสอน สาธิต ด้านการแพทย์แผนไทย |
6 | การฝึกสมาธิบำบัด |
7 | การนวดเพื่อส่งเสริมสุขภาพ |
8 | การอบไอน้ำสมุนไพรเพื่อส่งเสริมสุขภาพ |
9 | การประคบสมุนไพรเพื่อส่งเสริมสุขภาพ |
10 | การฝึกกายบริหารด้วยท่าฤๅษีดัดตน |
11 | อื่นๆ |
Set PROVIDER หรือผู้ให้บริการ
จะปรากฏในเมนูผู้ให้บริการในหน้าจอ บันทึกหัตถการแผนไทย
ส่วนผู้วินิจฉัยก็เช่นกัน
Set PROVIDER หรือผู้ให้บริการส่งออก ๕๐ แฟ้ม ต้อง set ในหน้าจอ Tools systemsetting
แพทย์ / พยาบาล
โครงสร้างมาตรฐานรหัสยา 24 หลัก
Set ยาสมุนไพร
สมุนไพรที่ Mapping เรียบร้อยพร้อมใช้ ตรงรหัสค่าบริการ ต้องไม่ว่าง และต้องนำเข้าในรายการยาแผนปัจจุบัน
การนำรายชื่อสมุนไพรเข้ารายการยาแผนปัจจุบัน
ที่สำคัญมากคือ ในตาราง Drugitem ต้องใส่รหัส income ให้ค่า
๐๓ ค่ายาในบัญชียาหลักแห่งชาติ
๑๗ ค่ายานอกบัญชียาหลักแห่งชาติ
/*ตรวจสอบ ยา ไม่มีค่าใช้จ่าย*/ select * from drugitems where istatus <>'N' and (income not in ('03','17') or income is null) |
ตัวอย่าง
name | income | istatus | did |
ชาชงสมุนไพรดอกคำฝอย[10 ซอง/pack] | Y | ||
Ampicillin INJ | Y | 100145000002620000000000 | |
มะแว้ง ชนิดอม | Y | 420000005349103000000000 | |
ขมิ้นชันแคปซูล | Y | 410000000109135000000000 | |
ฟ้าทะลายโจรเม็ด | Y | 410000000479135000000000 | |
NSS น้ำเกลือล้างแผล | Y | 100942000000780000000000 |
/*สมุนไพรที่ยังไม่ Mapping 24 หลัก */ SELECT thd.icode, thd.health_med_medication_name, d.`name`, d.strength, d.istatus, d.did from health_med_medication as thd right JOIN drugitems as d on d.icode =thd.icode where thd.icode is null and left(d.did,1)='4' and d.istatus <>'N' #--------------------------- |
ตัวอย่าง
icode | health_med_medication_name | name | strength | istatus | did |
null | null | หญ้าดอกขาวชาชง | 2 g. | Y | '410000000610000034111256' |
null | null | ยาแก้ไอมะขามป้อม | 60 ml. | Y | '420000001549506094782748' |
null | null | ฟ้าทะลายโจร | 350 mg. | Y | '410000000479135020182755' |
null | null | ธรณีสัณฑฆาต แคปซูล | 400 mg. | Y | '420000002869140020111295' |
null | null | ประสะไพล แคปซูล | 400 mg. | Y | '420000003959135020111295' |
null | null | มะระขี้นก แคปซูล | 350 mg. | Y | '410000000519135020111295' |
วิธีการตามภาพ
Set หัตถการ
หัตถการใดพร้อมใช้สังเกต เมื่อเรียงคอลัมน์ จะเห็นว่าช่องค่าบริการ จะไม่ว่างเปล่า
ค่าบริการก็ต้องผ่านการ Mapping รหัส มาตรฐาน
Set ค่าบริการของหัตถการ โดยเลือก รหัส ๑๕ ค่าบริการฝังเข็ม และค่าบริการการให้การบำบัดของผู้ประกอบโรคศิลปะอื่น
income | name |
1 | ค่าห้องและค่าอาหาร |
2 | ค่าอวัยวะเทียมและอุปกรณ์ในการบำบัดรักษาโรค |
3 | ค่ายาในบัญชียาหลักแห่งชาติ |
4 | ค่ายากลับบ้าน |
5 | ค่าเวชภัณฑ์ที่มิใช่ยา |
6 | ค่าบริการโลหิตและส่วนประกอบของโลหิต |
7 | ค่าตรวจวินิจฉัยทางเทคนิคการแพทย์และพยาธิวิทยา |
8 | ค่าตรวจวินิจฉัยและรักษาทางรังสีวิทยา |
9 | ค่าตรวจวินิจฉัยโดยวิธีพิเศษอื่นๆ |
10 | ค่าอุปกรณ์ของใช้และเครื่องมือทางการแพทย์ |
11 | ค่าทำหัตถการ และวิสัญญี |
12 | ค่าบริการทางแพทย์ |
13 | ค่าบริการทางทันตกรรม |
14 | ค่าบริการทางกายภาพบำบัดและทางเวชกรรมฟื้นฟู |
15 | ค่าบริการฝังเข็ม และค่าบริการการให้การบำบัดของผู้ประกอบโรคศิลปะอื่น |
16 | ค่าบริการอื่น ๆ ที่ไม่เกี่ยวกับการรักษาพยาบาลโดยตรง |
17 | ค่ายานอกบัญชียาหลักแห่งชาติ |
บัญชีเลขรหัสสามหลักแรกของรหัสหัตถการ แสดงตำแหน่งอวัยวะซึ่งแพทย์ได้ทำหัตถการนั้นปะอื่น | |||
100 | ศีรษะ | 721 | ไหล่ บ่า |
154 | ใบหน้า | 722 | ต้นแขน |
185 | จมูก | 724 | แขน |
233 | ปาก | 725 | ข้อมือ |
235 | ลิ้น | 726 | มือ |
236 | เหงือก | 871 | สะโพก เอว |
302 | เต้านม | 872 | ต้นขา |
306 | รักแร้ | 873 | หัวเข่า |
400 | หน้าท้อง | 874 | ขา |
402 | สะดือ | 875 | ข้อเท้า |
411 | ขาหนีบ | 876 | เท้า |
455 | ทวารหนัก | 880 | ขาทั้งหมด(รวมเทและนิ้วเท้า) |
527 | อวัยวะสืบพันธุ์หญิง | 900 | ทั่วร่างกาย |
590 | หลัง | 999 | ไม่ระบุตำแหน่ง |
ตรวจสอบ กรณี บันทึกหัตถการแผนไทย ไม่่สามารถส่งออกได้
ตรวจสอบ ว่าระบบมีรายการหัตถการแผนไทย ยังไม่ครบ
( health_med_operation_itemในหน้าจอ systemsetting หัตถการแผนไทย)
health_med_operation_item_code ให้ใช้ เลข 2 หลักท้าย จาก
health_med_operation_code.icd10tm จึงจะถูกต้อง
เช่น icd10tm = 1007701
health_med_operation_item_code ต้อง = 01
/*ตรวจสอบ กรณี บันทึกหัตถการแผนไทย ไม่่สามารถส่งออกได้*/ SELECT i,v,icd10tm,o.health_med_operation_item_code (SELECT SUBSTR(icd10tm FROM 6 FOR 2) AS i ,health_med_operation_code.name AS 'v' FROM health_med_operation_code WHERE NAME LIKE '%ทั่วร่างกาย%' GROUP BY SUBSTR(icd10tm FROM 6 FOR 2))AS c LEFT JOIN health_med_operation_item AS o ON o.health_med_operation_item_code =c.i; #----------------- |
i | v | icd10tm | health_med_operation_item_code | health_med_operation_item_name |
09 | การบริบาลหญิงตั้งครรภ์ ไม่ระบุวิธีที่ทั่วร่างกาย | 1007709 | 09 | การบริบาลหญิงตั้งครรภ์ ไม่ระบุวิธี - 09 |
10 | การบริบาลหญิงหลังคลอดด้วยการใช้ยาสมุนไพรที่ทั่วร่างกาย | 1007710 | 10 | การบริบาลหญิงหลังคลอดด้วยการใช้ยาสมุนไพร - 10 |
11 | การนวดด้วยวิธีการแพทย์แผนไทยแบบราชสำนักที่ทั่วร่างกาย | 4007711 | 11 | การบริบาลหญิงหลังคลอดด้วยการรัดหน้าท้อง - 11 |
12 | การบริบาลหญิงหลังคลอดด้วยการทับหม้อเกลือที่ทั่วร่างกาย | 9007712 | 12 | การบริบาลหญิงหลังคลอดด้วยการทับหม้อเกลือ - 12 |
13 | การบริบาลหญิงหลังคลอดด้วยการนวดที่ทั่วร่างกาย | ไม่มีรหัสให้update | 13 | การบริบาลหญิงหลังคลอดด้วยการนวด - 13 |
14 | การบริบาลหญิงหลังคลอดด้วยการประคบสมุนไพรที่ทั่วร่างกาย | ไม่มีรหัสให้update | 14 | การบริบาลหญิงหลังคลอดด้วยการประคบสมุนไพร - 14 |
/*การส่งเสริมสุขภาพและการป้องกันโรคด้วยการนวด*/ SELECT * FROM health_med_operation_code WHERE `name` LIKE '%นวด%' AND SUBSTR(CODE, 5, 2) = 79 #-------------------------------- |
/*หัตถการ เรียงตามประเภทกิจกรรม*/ SELECT c.code,c.name , SUBSTR(c.icd10tm, 1, 3)as 'อวัยวะ' ,SUBSTR(c.icd10tm, 4, 2)as'ประเภท' , SUBSTR(c.icd10tm, 6, 2)as 'กิจกรรม' FROM health_med_operation_code c ORDER BY SUBSTR(c.icd10tm, 4, 2) , SUBSTR(c.icd10tm, 6, 2) ,SUBSTR(c.icd10tm, 1, 3) #--------------- |
ตัวอย่าง
code | name | อวัยวะ | ประเภท | กิจกรรม |
900-77-01 | การบริบาลหญิงตั้งครรภ์ด้วยการประคบที่ทั่วร่างกาย | 900 | 77 | 01 |
999-77-01 | การบริบาลหญิงตั้งครรภ์ด้วยการประคบที่ไม่ระบุตำแหน่ง | 999 | 77 | 01 |
100-77-08 | การบริบาลหญิงตั้งครรภ์ด้วยวิธีอื่นที่ศีรษะ | 100 | 77 | 08 |
154-77-08 | การบริบาลหญิงตั้งครรภ์ด้วยวิธีอื่นที่ใบหน้า | 154 | 77 | 08 |
185-77-08 | การบริบาลหญิงตั้งครรภ์ด้วยวิธีอื่น ที่จมูก | 185 | 77 | 08 |
/*การบริการการแพทย์แผนไทยแม่หลังคลอด*/ set @date1 = '2016-10-01',@date2 = '2017-09-30' ;/*เปลี่ยน '2015-10-01' ตามที่ต้องการ*/ select f.service_date, TIMESTAMPDIFF(day,pa.labor_date,f.service_date) (select timestampdiff(day,min(x.service_date),f.service_date) from health_med_service x where x.hn =f.hn)as 'ห่างจากครั้งแรกไม่เกิน 90 วัน', p.pname, concat(p.fname,space(1),p.lname)as 'mother_name', e.icd10tm , e.`name`, concat_ws("-",d.health_med_organ_code,b.health_med_operation_type_code,c.health_med_operation_item_code) as gencode from health_med_service_operation a left outer join health_med_operation_type b on a.health_med_operation_type_id=b.health_med_operation_type_id left outer join health_med_operation_item c on a.health_med_operation_item_id=c.health_med_operation_item_id left outer join health_med_organ d on a.health_med_organ_id=d.health_med_organ_id left outer join health_med_operation_code e on e.code = concat_ws("-",d.health_med_organ_code,b.health_med_operation_type_code,c.health_med_operation_item_code) left outer join health_med_service f on f.health_med_service_id = a.health_med_service_id left JOIN person as p on p.patient_hn = f.hn LEFT JOIN person_anc as pa on pa.person_id = p.person_id where f.service_date BETWEEN @date1 and @date2 and e.icd10tm in('9007712','9007713','9007714','9007715','9007716','9007730') and TIMESTAMPDIFF(day,pa.labor_date,f.service_date)<=45 /*หลังคลอดไม่เกิน 45 วัน*/ #group by p.cid /*ถ้านับคนให้เอาเครื่องหมาย # ข้างหน้าออกใส่ตรง group by f.service_date แทน */ group by f.service_date ORDER BY f.service_date #------------------------------- |
ตัวอย่าง
service_date | หลังคลอดไม่เกิน 45 วัน | ห่างจากครั้งแรกไม่เกิน 90 วัน | pname | mother_name | icd10tm | name |
1/3/2017 | 38 | 0 | น.ส. | ตรีรัก xxx | 9007712 | การบริบาลหญิงหลังคลอดด้วยการทับหม้อเกลือที่ทั่วร่างกาย |
2/3/2017 | 39 | 1 | น.ส. | ตรีรัก xxx | 9007713 | การบริบาลหญิงหลังคลอดด้วยการนวดที่ทั่วร่างกาย |
3/3/2017 | 40 | 2 | น.ส. | ตรีรัก xxx | 9007713 | การบริบาลหญิงหลังคลอดด้วยการนวดที่ทั่วร่างกาย |
/*การจ่ายยาสมุนไพร นับ service */ set @row= 0; set @date1='2016-10-01',@date2='2016-10-31'; select @row:=@row+1 as "NO.",o.vstdate ,p.pname ,concat(p.fname,space(1),p.lname)as 'person_name' ,d.`name`,d.strength from opitemrece as o inner join drugitems as d on d.icode = o.icode LEFT JOIN person as p on p.patient_hn = o.hn where substring(d.did,1,2)in('41','42') and o.vstdate between @date1 and @date2 ORDER BY o.vstdate,o.vn #--------------------- |
ตัวอย่าง
NO. | vstdate | pname | person_name | name | strength |
106 | 6/10/2016 | นาง | มาลี xxx |
มะขามแขกแคปซูล | 450 mg. |
107 | 6/10/2016 | นาง | ประคอง xxx | มะขามแขกแคปซูล | 450 mg. |
108 | 6/10/2016 | นาง | เย็น xxx | ยาน้ำแก้ไอมะขามป้อม | 200 ml. |
109 | 6/10/2016 | นาย | นิตย์ xxx | ขมิ้นชันแคปซูล | 500 mg. |
110 | 6/10/2016 | นาย | สุมล xxx | ยาน้ำแก้ไอมะขามป้อม | 200 ml. |
/*เพิ่ม รหัส คลินิก แผนไทย ในหน้า one stop service*/
INSERT IGNORE INTO spclty (spclty, NAME, depcode, ovstostlink, spname, shortname, ill_visit, spclty_guid, no_service_charge, no_service_charge_doctor, oldcode, nhso_code, operation, provis_code, hos_guid) VALUES ('14', 'แพทย์แผนไทย', NULL, '14', 'OPD', NULL, 'N', '{B4C67052-F61D-11DE-BFF4-00215E472B30}', NULL, NULL, NULL, '12', NULL, '01400', NULL);
UPDATE spclty SET provis_code ='01400'
WHERE spclty. NAME LIKE '%ไทย%'; select * from spclty; #-------------------- |
/*thaimed serviceตอนเช้าคีย์ข้อมูลตอนเย็น "service_date" "service_time""vstdate""vsttime"
"2017-01-04" "18:25:43" "2017-01-04" "12:38:53" พอส่งออก seq ไม่เท่ากัน
*/ SET @date1 := '2017-03-01' ,@date2 := '2017-03-01';
/*เปลี่ยนวันเอาเอง*/ SELECT o.vstdate AS 'service_date', o.vsttime AS 'service_time', s.service_date AS 'Thaimed_sdate', s.service_time AS 'Thaimed_stime', p.pname, CONCAT(p.fname, SPACE(1), p.lname) AS 'pt_name', t. NAME as 'สิทธิ' FROM health_med_service AS s INNER JOIN ovst AS o ON o.hn = s.hn AND o.vn = s.vn INNER JOIN patient AS p ON p.hn = s.hn INNER JOIN pttype AS t ON t.pttype = o.pttype WHERE s.service_date BETWEEN @date1 AND @date2 AND (s.service_date <> o.vstdate OR s.service_time <> o.vsttime ) ORDER BY s.vn #----------------- |
ตัวอย่าง
service_date | service_time | Thaimed_sdate | Thaimed_stime | pname | pt_name | สิทธิ |
1/3/2017 | 6:01:03 | 1/3/2017 | 14:35:19 | นาง | ดาวัลย์ xxx | สิทธิข้าราชการ(จ่ายตรง) |
1/3/2017 | 6:01:04 | 1/3/2017 | 14:31:13 | ร.ต.ต. | สำเริง xxx | สิทธิข้าราชการ(จ่ายตรง) |
1/3/2017 | 6:01:05 | 1/3/2017 | 14:14:27 | นาย | บุญชู xxx | สิทธิข้าราชการ(จ่ายตรง) |
1/3/2017 | 6:01:06 | 1/3/2017 | 13:37:59 | แม่ชี | บรรจง xxx | ผู้มีอายุเกิน 60 ปีบริบูรณ์ |
1/3/2017 | 6:01:07 | 1/3/2017 | 14:50:19 | นาย | นพ xxx | สิทธิข้าราชการ(จ่ายตรง) |
กรณีต้องการคีย์ข้อมูลกิจกรรมการส่งเสริมสุขภาพและการป้องกันโรคแผนไทย หน่วยงานใดยังไม่มีรหัส Diagnosis หรือ การวินิจฉัยขึ้นต้นด้วย U77
code | description |
U77 | การส่งเสริมสุขภาพและการป้องกันโรค |
U770 | การบริบาลหญิงตั้งครรภ์ปกติ |
U771 | การบริบาลฟื้นฟูสภาพในหญิงหลังคลอดปกติ |
U772 | การบริบาลทารกปกติ |
U773 | การดูแลบุคคลกลุ่มอื่นๆปกติ |
U778 | การส่งเสริมสุขภาพและการป้องกันโรค ที่ระบุรายละเอียด |
U779 | การส่งเสริมสุขภาพและการป้องกันโรค ไม่ระบุรายละเอียด |
จำเป้นต้องเพิ่ม ใน 3 ตาราง icd101,icd10_nhso,icd10_health_med อนึ่ง หากมีรหัสอยู่แล้วก็สามารถ RUN คำสั่งได้เพราะจะเพิ่มเฉพาะที่ยังไม่มี หากมีแล้วจะผ่านไป
โดยคงของเก่าไว้
คำสั่งใข้ในการเพิ่ม รหัสโรค ดังกล่าวใน ระบบ
แต่สำหรับรายงานใน HDC จำเป็นต้องใช้ เฉพาะ U77 การส่งเสริมสุขภาพและการป้องกันโรค เท่านั้น จะเห็นว่าหากจะให้ผลงานขึ้นด้วยก็ต้องมี U77 หากเลือกตัวอื่น เช่น U773 + U77
ตรวจสอบได้ด้วยคำสั่ง 3 คำสั่งนี้
/*ตรวจสอบ รหัส U77 ในตาราง icd101 */ SELECT * FROM icd101 WHERE CODE LIKE 'u77%'; #---------------
|
/*ตรวจสอบ รหัส U77 ในตาราง icd10_nhso */ SELECT * FROM icd10_nhso WHERE CODE LIKE 'u77%'; #---------------
|
/*ตรวจสอบ รหัส U77 ในตาราง icd10_health_med */ SELECT * FROM icd10_health_med WHERE icd10 LIKE 'u77%'; #---------------
|
นอกจาก Diagnosis หรือ การวินิจฉัยขึ้นต้นด้วย U77 แล้ว ยังต้อง ประกอบด้วยการคีย์หัตถการ นับบริการแผนไทย และ นับบริการทางเลือก ใน visit เดียวกันนี้ด้วย
/*บริการแผนไทย*/ SELECT p.code,p.name,p.icd10tm FROM health_med_operation_code p where p.icd10tm in ('9007900','9007901','9007902' ,'9007904') #---------------- |
code | name | icd10tm |
900-79-00 | การส่งเสริมสุขภาพและการป้องกันโรคด้วยการนวดตัวเพื่อสุขภาพ ที่ทั่วร่างกาย | 9007900 |
900-79-01 | การส่งเสริมสุขภาพและการป้องกันโรคด้วยการอบไอน้ำสมุนไพรเพื่อสุขภาพ ที่ทั่วร่างกาย | 9007901 |
900-79-02 | การส่งเสริมสุขภาพและการป้องกันโรคด้วยการบริหารร่างกายด้วยท่าฤๅษีดัดตน ที่ทั่วร่างกาย | 9007902 |
900-79-04 | การส่งเสริมสุขภาพและการป้องกันโรคด้วยการรับประทานอาหารสุขภาพที่ทั่วร่างกาย | 9007904 |
/*บริการทางเลือก*/ SELECT p.code,p.name,p.icd10tm FROM health_med_operation_code p where p.icd10tm in ('9007998','9007999','9007903') #----------------- |
code | name | icd10tm |
900-79-03 | การส่งเสริมสุขภาพและการป้องกันโรคด้วยการนั่งสมาธิ ที่ทั่วร่างกาย | 9007903 |
900-79-98 | การส่งเสริมสุขภาพและการป้องกันโรคด้วยวิธีอื่นที่ทั่วร่างกาย | 9007998 |
900-79-99 | การส่งเสริมสุขภาพและการป้องกันโรค ไม่ระบุวิธีที่ทั่วร่างกาย | 9007999 |
นับข้อมูล เชื่อมโยงแฟ้มประชากร(person) หมายถึง แฟ้ม person complete รวมถีง แฟ้ม Home กรณี Type area 1,2 และ แฟ้ม Address กรณี Type area 3,4 โดยต้องบันทึกที่อยู่นอกเขต
ภาพจากคู่มือ ของศูนย์เทคโนโลยีสารสนเทศและการสื่อสาร กระทรวงสาธารณสุข
/*กิจกรรมการส่งเสริมสุขภาพและการป้องกันโรคแผนไทย*/ SET @date1 = '2016-10-01',@date2 = '2017-09-30' ; SELECT f.service_date,p.pname,concat(p.fname,space(1),p.lname)as 'person_name',e.icd10tm,e.name,r.icd10 FROM health_med_service_operation a LEFT OUTER JOIN health_med_operation_type b ON a.health_med_operation_type_id=b.health_med_operation_type_id LEFT OUTER JOIN health_med_operation_item c ON a.health_med_operation_item_id=c.health_med_operation_item_id LEFT OUTER JOIN health_med_organ d ON a.health_med_organ_id=d.health_med_organ_id LEFT OUTER JOIN health_med_operation_code e ON e.code = CONCAT_WS("-",d.health_med_organ_code,b.health_med_operation_type_code,c.health_med_operation_item_code) LEFT OUTER JOIN health_med_service f ON f.health_med_service_id = a.health_med_service_id INNER JOIN health_med_service_diagnosis r ON r.health_med_service_id = f.health_med_service_id LEFT JOIN person AS p ON p.patient_hn = f.hn WHERE f.service_date BETWEEN @date1 AND @date2 AND r.icd10 = 'u77' AND e.icd10tm IN ('9007998','9007999','9007903','9007900','9007901','9007902' ,'9007904') #------------------------------------------ |
ตัวอย่าง
service_date | pname | person_name | icd10tm | name | icd10 |
3/10/2016 | นาง | ประทีป xxx | 9007903 | การส่งเสริมสุขภาพและการป้องกันโรคด้วยการนั่งสมาธิ ที่ทั่วร่างกาย | U77 |
3/10/2016 | นาง | มัจฉา xxx | 9007902 | การส่งเสริมสุขภาพและการป้องกันโรคด้วยการบริหารร่างกายด้วยท่าฤๅษีดัดตน ที่ทั่วร่างกาย | U77 |
3/10/2016 | นาง | สมศรี xxx | 9007902 | การส่งเสริมสุขภาพและการป้องกันโรคด้วยการบริหารร่างกายด้วยท่าฤๅษีดัดตน ที่ทั่วร่างกาย | U77 |
3/10/2016 | น.ส. | จินตนา xxx | 9007902 | การส่งเสริมสุขภาพและการป้องกันโรคด้วยการบริหารร่างกายด้วยท่าฤๅษีดัดตน ที่ทั่วร่างกาย | U77 |