Accident!! อย่าคีย์เพลิน?

การบันทึกอุบัติเหตุ ใน JHCIS มีหัวข้อ "ระดับความเร่งด่วน" ที่ชอบคีย์เกิน

ปัญหา?
1.ระดับความเร่งด่วนของอุบัติเหตุ นั้นจริงแล้ว มี 5 ระดับ(ตามโครงสร้าง) แต่ใน JHCIS ทำไว้ 6 ระดับ คือ 
1.Resuscitation
2.emergent
3.urgent
4.Less urgent
5.non urgent
6.ไม่แน่ใจ 
วิธีแก้ไข
1.ใช้ scpt ตรวจสอบว่ามีการให้ระดับความเร่งด่วน ใน ข้อ 6 (ไม่แน่ใจ) หรือไม่ ตามนี้
..............................................
SELECT vc.pcucode,vt.pid,vc.visitno,vt.visitdate,vc.diagcode,vc.urgency
FROM visit vt INNER JOIN visitdiagaccidentaddress vc on vt.visitno = vc.visitno
WHERE vc.urgency = '6' AND vt.visitdate BETWEEN'2017-10-01'AND CURDATE();
..............................................
2.หากมีรายชื่อโผล่มาให้กลับไปแก้ไขตามvisitdateและ visitno ที่โผล่มา

3.หรือหากมั่นใจว่าคนที่บันทึกต้องการให้เป็นหัวข้อสุดท้าย คือ ข้อ 5 "non urgent" แต่คีย์เพลินเป็นข้อ 6  "ไม่แน่ใจ" ก็รัน Update เปลี่ยน จาก ข้อ 6 กลับมาเป็น ข้อ 5 แทน ตามนี้ จ้า
....................................................
UPDATE visitdiagaccidentaddress vc
SET vc.urgency = '5'
WHERE vc.urgency = '6'
AND vc.dateaccident BETWEEN '2017-10-01'AND CURDATE();
...................................................
 3.1.กรณีกลับไปคีย์ย้อนหลังใน JHCIS อย่าลืม update ก่อนส่ง 43  แฟ้ม ตามนี้นะจ๊ะ
....................................................
update visitdiagaccidentaddress vc
INNER JOIN visit vt ON vc.visitno=vt.visitno
set vc.dateupdate=concat(vt.visitdate,SUBSTR(vt.dateupdate,11,9))
WHERE vt.visitdate <> date(vc.dateupdate)
AND vt.visitdate BETWEEN '2017-10-01'AND CURDATE();
.....................................................
4.อย่าลืมนะจะ อุบัติเหตุมักมีบาดมีแผลหรืออย่างน้อยๆก็ต้องมีฟกช้ำบ้าง คือ ต้องมีการให้ รหัส SและT เป็น Principle  และเมื่อให้รหัส  2 ตัวนี้แล้วอย่าลืม ตามด้วย VWXY ด้วยหละ
"สำหรับท่านใดที่บันทึกอุบัติเหตุ ด้วย SและT แล้วชอบลืม VWXY รันดูได้ตามนี้จ้า 
.......................................................................
SELECT vt.pcucode,vt.visitno,vt.visitdate,vt.pid,vi.diagcode,vi.dxtype FROM visit vt
INNER JOIN visitdiag vi ON vt.visitno=vi.visitno WHERE LEFT(vi.diagcode,1) in ('s','t')
AND vi.dxtype = '01' AND vt.visitdate BETWEEN '2017-10-01'AND CURDATE()
AND vi.visitno not IN (SELECT vt.visitno FROM visit vt INNER JOIN visitdiag vi ON vt.visitno=vi.visitno WHERE LEFT(vi.diagcode,1) in ('v','w','x','y') AND vt.visitdate
 BETWEEN '2017-10-01'AND CURDATE()) GROUP BY vt.visitno;
.......................................................................
หมายเหตุ : หากมีรายชื่อโผล่มา ต้องกลับไปคีย์ รหัส VWXY เพิ่มให้ครบ นะจ๊ะ
.............................................................
5.การให้รหัส  VWXY ต้องตามด้วยตัวเลขครบ 4 หลัก เช่น "v26.11" จะใช้แค่ 3 หลักไม่ได้นะ (ผิดกฎการให้รหัสของ สนย. จ้า)
  5.1 ตรวจสอบ case ที่ให้ รหัส VWXY  แล้ว ตัวเลขไม่ครบ 4 หลัก ตามนี้
.........................................................
 SELECT * FROM  (SELECT vt.pcucode,vt.visitno,vt.visitdate,vt.pid,vi.diagcode,vi.dxtype
FROM visit vt INNER JOIN visitdiag vi ON vt.visitno=vi.visitno WHERE LEFT(vi.diagcode,1) in ('s','t') AND vi.dxtype = '01' AND vt.visitdate BETWEEN '2017-10-01'AND CURDATE()
GROUP BY vt.visitno) AS vt1 RIGHT JOIN (SELECT vt.pcucode,vt.visitno,vt.visitdate,vt.pid,
vi.diagcode,vi.dxtype FROM visit vt INNER JOIN visitdiag vi ON vt.visitno=vi.visitno
WHERE LEFT(vi.diagcode,1) in ('v','w','x','y') AND vt.visitdate BETWEEN '2017-10-01'AND CURDATE() AND LENGTH(vi.diagcode)<='5') AS vt2 ON vt1.visitno = vt2.visitno;
..........................................................
หมายเหตุ: หากมีรายชื่อโผล่มา ต้องกลับไปคีย์ รหัส VWXY เพิ่ม ตัวเลขให้ครบ  4 หลัก นะจ๊ะ
 5.2 วิธีจัดการ รหัส VWXYที่มีตัวเลขไม่ครบ 4 หลัก คือ สั่งปิดรหัสเหล่านั้นไว้เลย (ป้องกันมือดี..คีย์มั่วจ๊า)
ใช้ scpt ตามนี้..
............................................................
UPDATE cdisease ci
SET ci.validscore = 'n'
WHERE LEFT(ci.diseasecode,1) IN ('v','w','x','y')
AND LENGTH(ci.diseasecode)<='5';
...........................................................
 5.3 อาจจะมีรหัส VWXY บางตัวที่มีรหัสครบ 4 หลัก แต่อาจถูกปิดไว้ ก็ให้เปิดมาใช้งาน ตามนี้จ้า
..........................................................
UPDATE cdisease ci
SET ci.validscore = 'y'
WHERE LEFT(ci.diseasecode,1) IN ('v','w','x','y')

AND LENGTH(ci.diseasecode)>='6';
..........................................................
6.สำหรับ รพ.สต.ใดต้องการรายงานอุบัติเหตุทางถนนว่าในแต่ละเดือน มีจำนวนเท่าไร เผื่อนายถาม?.. ตามนี้จ่้า
...................................................
SET @start = '2018-01-01';
SET @end = CURDATE();
SELECT vt.pid,vdt.visitno,vdt.dateaccident AS 'วันที่เกิดAC', vdt.timeaccident AS 'เวลา',
CASE WHEN vdt.aeplace = 07 THEN 'ถนนสายหลัก' WHEN vdt.aeplace = 08 THEN 'ถนนสายรอง' ELSE 'อื่นๆ' END AS 'ถนน', CASE WHEN vdt.typeinaccident = 1 THEN 'ผู้ขับขี่'
WHEN vdt.typeinaccident = 2 THEN 'ผู้โดยสาร' WHEN vdt.typeinaccident = 3 THEN 'คนเดินเท้า' ELSE 'อื่นๆ'END AS 'ประเภทผู้บาดเจ็บ', CASE WHEN vehicletype = 01 THEN 'จักรยานและสามล้อถีบ' WHEN vehicletype = 02 THEN 'จักรยานยนต์' WHEN vehicletype = 03 THEN 'สามล้อเครื่อง'
WHEN vehicletype = 04 THEN 'รถยนต์นั่ง/แท็กซี่' WHEN vehicletype = 05 THEN 'ปิคอัพ'
WHEN vehicletype = 06 THEN 'รถตู้' WHEN vehicletype = 07 THEN 'รถโดยสารสองแถว'
WHEN vehicletype = 08 THEN 'รถโดยสารรถบัส/รถเมล์' WHEN vehicletype = 09 THEN 'รถบรรทุก/รถพ่วง' WHEN vehicletype = 10 THEN 'เรือโดยสาร' WHEN vehicletype = 11 THEN 'เรืออื่นๆ'
WHEN vehicletype = 12 THEN 'อากาศยาน' ELSE 'อื่นๆ' END AS 'ประเภทยานพาหนะ',
CASE WHEN vdt.alcohol = 1 THEN 'ดื่ม' WHEN vdt.alcohol=2 THEN 'ไม่ดื่ม'  ELSE 'ไม่ทราบ'END AS 'อัลกอฮอล์', CASE WHEN vdt.nacroticdrug = 1 THEN 'ใช้'  WHEN vdt.nacroticdrug = 2 THEN 'ไม่ใช้'ELSE 'ไม่ทราบ' END AS'ยาเสพติด', case WHEN vdt.belt = 1 THEN 'คาดเข็มขัด'
WHEN vdt.belt = 2 THEN 'ไม่คาด' ELSE 'ไม่ทราบ' END AS 'เข็มขัดนิรภัย',
case WHEN vdt.helmet = 1 THEN 'สวม' WHEN vdt.helmet = 2 THEN 'ไม่สวม' ELSE 'ไม่ทราบ' END AS 'สวมหมวกนิรภัย', vdt.urgency, vdi.diagcode,ci.diseasenamethai
FROM visit vt INNER JOIN visitdiagaccidentaddress vdt ON vt.visitno=vdt.visitno
INNER JOIN visitdiag vdi ON vt.visitno = vdi.visitno INNER JOIN cdisease ci ON vdi.diagcode = ci.diseasecode WHERE LEFT(vdi.diagcode,1) in ('v','w','x','y') AND vt.visitdate BETWEEN @start AND @end  GROUP BY vt.visitno;
...................................................
7.เสียชีวิตจากอุบัติเหตุทางถนน 5 ปีย้อนหลัง ตามนี้
.....................................................
SELECT p.pid,prename,if(p.prename =003,'นาย',if(p.prename =004,'นาง','นางสาว')) AS 'คน',
p.fname,p.lname,p.birth,p.sex,pd.deadcause,ci.diseasenamethai,pd.dateupdate
FROM person p INNER JOIN persondeath pd on p.pid=pd.pid INNER JOIN cdisease ci ON pd.deadcause = ci.diseasecode WHERE (LEFT(pd.deadcause,1) ='v')
AND pd.deaddate BETWEEN '2012-10-01'AND CURDATE();
.....................................................
link ที่เกี่ยวข้อง



ไม่มีความคิดเห็น:

https://www.blogs

 kllgnsgkj[jtlm'oahd bfldkb'pdojgaojp mfigjdo;sjgaij misjgo;sjagijwo;