ผู้เขียน หัวข้อ: VN ซ้ำ พบปัญหา 49.9.13  (อ่าน 6392 ครั้ง)

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ anukul

  • Hero Member
  • *****
  • กระทู้: 1,363
  • Respect: +1
    • ดูรายละเอียด
VN ซ้ำ พบปัญหา 49.9.13
« เมื่อ: กันยายน 21, 2006, 22:51:11 PM »
0
วันนี้พบปัญหา ผป. 2 ราย ห้องบัตรคงส่งตรวจในเวลาใกล้เคียงกัน ห้องแพทย์แจ้งว่าบันทึกการรักษาแล้วพิมพ์ OPD card กลายเป็นชื่อผป.อีกราย  ห้องยาก็พิมพ์ sticker ยาของอีกราย  มาตรวจสอบดู พบว่า
 - ovst :  ทั้ง 2 HN ได้ VN เดียวกัน (ตามภาพ)  สังเกตว่ามีเลข QN คนละเลข (ต่อกัน) แต่เลขคิวรับยาเดียวกัน
 - vn_stat :  มีแค่ 1 HN
 - opitemrece : มีแค่ 1 HN ซึ่งไม่ตรงกับที่แพทย์เรียกมาสั่งยา

ลองกลับมาดูที่ System setting ผมตั้งค่า VN Lock Timeout = 1   ไม่ทราบว่าเกี่ยวข้องกันหรือเปล่าครับ  ขอคำแนะนำเพื่อป้องกันปัญหาไม่ให้เกิดอีก

หมายเหตุ. ทั้ง 2 ราย คิดว่าเป็นผป.ที่นัดมาตรวจ แล้วห้องบัตรส่งตรวจล่วงหน้าเมื่อวานนี้
รพ.มะการักษ์ 260 เตียง
เริ่มระบบ 1 ธค 48 (ทีม MN)
Database structure :HOSxP 3.55.9.21b
Client : 3.55.6.8-3.55.9.21b
Server : Double QuadCore XEON 3.2 G. ECC 18 G. SAS 146 G x4(Raid 5) -- CentOS 5.3 (64 bit) , MySQL 5.1.30 percana
Client : Win2000 ~ 200 clients
Module :
OPD -Register,Screening,Doctor,Dispense,Billing,Dentist,PMMR
IPD - Admit center,Ward,Nutrition,Dispense,LR,OR
LAB , X-ray
การเชื่อมต่อ : LIS             --> RAX
                    X-ray PACS --> Infinitt (ThaiGL)

ออฟไลน์ manoi

  • Hero Member
  • *****
  • กระทู้: 8,669
  • Respect: +170
    • ดูรายละเอียด
    • HOSxP Community Center
Re: VN ซ้ำ พบปัญหา 49.9.13
« ตอบกลับ #1 เมื่อ: กันยายน 21, 2006, 23:53:11 PM »
0
แสดงว่าตาราง ovst ไม่มี unique index (vn) ครับ ให้ใช้ึำคำสั่ง

โค๊ด: SQL
  1. SELECT vn,COUNT(vn) FROM ovst  GROUP BY vn HAVING COUNT(vn) > 1
  2.  

เพื่อแสดง รายการที่มี vn ซ้ำกัน จากนั้นให้ลบ VN ที่ซ้ำกันออกให้เหลือแค่ 1 record แล้วทำการสร้าง unique index ด้วยคำสั่ง

โค๊ด: SQL
  1. CREATE UNIQUE INDEX ix_vn_unique ON ovst (vn)
  2.  
« แก้ไขครั้งสุดท้าย: กันยายน 21, 2006, 23:55:42 PM โดย manoi »
HOSxP Project Manager / Cheif Developer / BMS MD

ออฟไลน์ anukul

  • Hero Member
  • *****
  • กระทู้: 1,363
  • Respect: +1
    • ดูรายละเอียด
Re: VN ซ้ำ พบปัญหา 49.9.13
« ตอบกลับ #2 เมื่อ: กันยายน 23, 2006, 02:33:24 AM »
0
ตรวจสอบแล้ว เป็นดังที่ว่าจริงๆ ครับ

จากคำสั่งแรก พบว่ามี รายการที่มี VN ซ้ำกัน ประมาณ 3 แสนกว่า record  ดูแล้วมีแค่ 3 VN ที่เกิดขึ้นหลังจากเริ่มใช้งานระบบ HOSxP (1/11/2548)  ที่เหลืออีก 3 แสนกว่า VN นั้นเป็นรายการเก่า ที่โอนมาจากโปรแกรมเดิม (ตั้งแต่ปี 2546) คิดว่าเกิดจาก ตอน convert ข้อมูลเก่านั้น ไม่ได้เฝ้าดูว่ามันนำเข้าครบหรือยัง  พอครบแล้วก็นำเข้าซ้ำอีกรอบไปเรื่อยๆ 

ตอนนี้ผมคงจะลบรายการ VN ซ้ำของใหม่ 3 VN นั้นก่อนครับ  แต่อยากปรึกษาว่า สำหรับ VN ซ้ำที่เหลืออีก 3 แสนกว่า สมควรทำอย่างไรดีครับ  เพราะอยาก update table ให้ถูกต้องตามหลักการ จะได้ไม่เกิดปัญหาดังกล่าวอีกครับ

ขอบคุณมากครับ
รพ.มะการักษ์ 260 เตียง
เริ่มระบบ 1 ธค 48 (ทีม MN)
Database structure :HOSxP 3.55.9.21b
Client : 3.55.6.8-3.55.9.21b
Server : Double QuadCore XEON 3.2 G. ECC 18 G. SAS 146 G x4(Raid 5) -- CentOS 5.3 (64 bit) , MySQL 5.1.30 percana
Client : Win2000 ~ 200 clients
Module :
OPD -Register,Screening,Doctor,Dispense,Billing,Dentist,PMMR
IPD - Admit center,Ward,Nutrition,Dispense,LR,OR
LAB , X-ray
การเชื่อมต่อ : LIS             --> RAX
                    X-ray PACS --> Infinitt (ThaiGL)

ออฟไลน์ manoi

  • Hero Member
  • *****
  • กระทู้: 8,669
  • Respect: +170
    • ดูรายละเอียด
    • HOSxP Community Center
Re: VN ซ้ำ พบปัญหา 49.9.13
« ตอบกลับ #3 เมื่อ: กันยายน 24, 2006, 05:18:38 AM »
0
ใช้คำสั่งนี้เพื่อทำการตัด VN ที่ซ้ำกันออกครับ
โค๊ด: SQL
  1. CREATE TABLE ovst_temp SELECT * FROM ovst LIMIT 0;
  2. ALTER TABLE ovst_temp MODIFY COLUMN hos_guid VARCHAR(38) NOT NULL UNIQUE PRIMARY KEY;
  3. CREATE UNIQUE INDEX ix_unique ON ovst_temp (vn);
  4. INSERT IGNORE INTO ovst_temp SELECT * FROM ovst;
  5. DROP TABLE ovst;
  6. ALTER TABLE ovst_temp RENAME TO ovst;
  7. CREATE INDEX ix_hn ON ovst (hn);
  8. CREATE INDEX ix_an ON ovst (an);
  9. CREATE INDEX ix_vstdate ON ovst (vstdate);
  10. CREATE INDEX ix_pttype ON ovst (pttype);
  11. CREATE INDEX ix_hn_vstdate ON ovst (hn,vstdate);
  12.  


« แก้ไขครั้งสุดท้าย: กันยายน 24, 2006, 05:25:23 AM โดย manoi »
HOSxP Project Manager / Cheif Developer / BMS MD

doramon

  • บุคคลทั่วไป
Re: VN ซ้ำ พบปัญหา 49.9.13
« ตอบกลับ #4 เมื่อ: กันยายน 25, 2006, 07:50:22 AM »
0
อันเก่าครับแต่ ต้องนำไปใช้ได้ครับ


โค๊ด: Delphi
  1.  
  2. Unit Script;
  3.  
  4. Procedure Main;
  5. var
  6.   i:integer;
  7.   ts:tstringlist;
  8.   ds1,ds2:string;
  9. begin
  10.  
  11.   getdaterange;
  12.   ds1:=formatdatetime('yyyy-mm-dd',date_result1);
  13.   ds2:=formatdatetime('yyyy-mm-dd',date_result2);
  14.  
  15.   ts:=tstringlist.create;
  16.  
  17.   fcds.close;
  18.   fcds.datarequest('select * from ovst where vstdate between "'+ds1+'" and "'+ds2+'" ');
  19.   fcds.open;
  20.   fcds.first;
  21.   i:=0;
  22.   while not fcds.eof do
  23.   begin
  24.     i:=i+1;
  25.     setprogressbar(i,fcds.recordcount);
  26.     fcds2.close;
  27.     fcds2.datarequest('select * from ovstdiag where vn="'+fcds.fieldbyname('vn').asstring+'"');
  28.     fcds2.open;
  29.     ts.clear;
  30.     fcds2.first;
  31.     while not fcds2.eof do
  32.     begin
  33.       if ts.indexof(fcds2.fieldbyname('icd10').asstring)=-1 then
  34.       begin
  35.        ts.add(fcds2.fieldbyname('icd10').asstring);
  36.       end else
  37.       begin
  38.         ShowDebugText('Found duplicate icd entry VN '+fcds.fieldbyname('vn').asstring+' '+
  39.           fcds2.fieldbyname('icd10').asstring);
  40.           try
  41.           getsqldata('EXEC delete from ovstdiag where ovst_diag_id = '+fcds2.fieldbyname('ovst_diag_id').asstring);
  42.           except end;
  43.       end;
  44.       fcds2.next;
  45.     end;
  46.     fcds2.close;
  47.  
  48.     fcds.next;
  49.   end;
  50.  
  51.  
  52.   ts.free;
  53.   showmessage('Done.');
  54.  
  55. end;
  56.  
  57.  
  58.  
  59.  
  60.  
  61. end.
  62.  
  63.  
  64.  
  65.