ผู้เขียน หัวข้อ: Tool สำหรับนำเข้าข้อมูลในตาราง Clinicmember  (อ่าน 12683 ครั้ง)

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

ออฟไลน์ naj

  • Hero Member
  • *****
  • กระทู้: 2,449
  • Respect: +10
    • ดูรายละเอียด
    • http://www.luangphopern-hospital.com
Tool สำหรับนำเข้าข้อมูลในตาราง Clinicmember
« เมื่อ: มิถุนายน 12, 2009, 12:12:58 PM »
0
ใช้สำหรับ โอนข้อมูลผู้ป่วยขึ้นทะเบียนคลินิกโรคเรื้อรังตามที่ รพ กำหนด เช่น เบาหวาน ความดัน โรคหัวใจ  COPD โดยยึด Principal dx ที่จากการลงในระบบ OPD นำตัวอยางมาให้ดูก่อนครับ กำลังจะแก้ใขบางส่วนเพื่อให้ใช้งานได้ง่ายขึ้นครับ
ขอขอบคุณ อ.อ๊อด ที่ให้คำแนะนำในการเขียนครับ
แต่เมื่อนำเข้าแล้วต้องไปเลือกยืนยันว่ารายใดบ้างที่ต้องขึ้นทะเบียนจริงๆ เนื่องจากบางคลินิกอาจจะดูแค่ Diax อย่างเดียวไม่ได้ จำเป็นต้องได้รับการยืนยันจากผลวิเคราะห์ด้านอื่นประกอบด้วยครับ
โค๊ด: Delphi
  1. unit Import2Clinicmember;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.   Dialogs, ComCtrls, StdCtrls;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     Button1: TButton;
  12.     ProgressBar1: TProgressBar;
  13.     Memo: TMemo;
  14.     Button2: TButton;
  15.     procedure Button2Click(Sender: TObject);
  16.     procedure Button1Click(Sender: TObject);
  17.   private
  18.     { Private declarations }
  19.   public
  20.     { Public declarations }
  21.   end;
  22.  
  23. var
  24.   Form1: TForm1;
  25.  
  26. implementation
  27.  
  28. {$R *.dfm}
  29.  
  30. procedure TForm1.Button1Click(Sender: TObject);
  31. var a:integer;
  32. begin
  33. a:=0;
  34. dbf1.close;
  35. dbf1.tablename:='C:\DOCUME~1\Yindee\IMPOST~1\Temp\export.dbf';
  36. dbf1.open;
  37. ProgressBar1.max:=dbf1.recordcount;
  38. showmessage('¨Ó¹Ç¹¢éÍÁÙÅ·Õè¹Óà¢éÒ '+inttostr(ProgressBar1.max)+' Records');
  39. Memo.lines.add('Found '+inttostr(ProgressBar1.max)+' Records');
  40. Memo.lines.add('Start Import DaTa............');
  41. ProgressBar1.position:=0;
  42. dbf1.first;
  43. fcds.close;
  44. //fcds.datarequest('EXEC delete from clinicmember');
  45. fcds.datarequest('select * from clinicmember');
  46. fcds.open;
  47. while not dbf1.eof do
  48. begin
  49. ProgressBar1.position:=ProgressBar1.position+1;
  50. a:=a+1;
  51.  fcds.insert;
  52.  // fcds['age_y']:=dbf1['age_y'];
  53.  //fcds['begin_year']:=dbf1['begin_year'];
  54.  fcds['clinic']:='018';
  55.  fcds['hn']:=dbf1['hn'];
  56.  fcds['number']:=a;
  57.  fcds['regdate']:='11/6/2552';
  58.  {fcds['last_vn']:=dbf1['last_vn'];
  59.  fcds['lastupdate']:=dbf1['lastupdate'];
  60.  fcds['lastvisit']:=dbf1['lastvisit'];
  61.  fcds['note']:=dbf1['note'];
  62.  fcds['pt_number']:=dbf1['pt_number'];
  63.  fcds['pttype']:=dbf1['pttype'];
  64.  fcds['sex']:=dbf1['sex'];
  65.  fcds['subtype']:=dbf1['subtype']; }
  66.  
  67.  fcds.post;
  68.  memo.lines.add('Import No.'+inttostr(ProgressBar1.position)+'    Clinic '+fcds['clinic']+' , HN '+fcds['hn']);
  69.  dbf1.next;
  70. end;
  71. applyupdate_fcds(-1);
  72. dbf1.close;
  73. fcds.close;
  74. memo.lines.add('-------------------------------------------------');
  75. memo.lines.add('Yindee Process Done ('+inttostr(ProgressBar1.position)+' Records)');
  76. showmessage('Done');
  77. end;
  78.  
  79. procedure TForm1.Button2Click(Sender: TObject);
  80. begin
  81. self.Close;
  82. end;
  83.  
  84. end.
  85.  
« แก้ไขครั้งสุดท้าย: มิถุนายน 12, 2009, 13:20:08 PM โดย naj »
Yindee And Tan

ออฟไลน์ SrWooD

  • Hero Member
  • *****
  • กระทู้: 1,024
  • Respect: +1
    • ดูรายละเอียด
Re: Tool สำหรับนำเข้าข้อมูลในตาราง Clinicmember
« ตอบกลับ #1 เมื่อ: มิถุนายน 12, 2009, 14:58:17 PM »
0
โค๊ด: Delphi
  1.  
  2. dbf1.tablename:='C:\DOCUME~1\Yindee\IMPOST~1\Temp\export.dbf';
  3.  
  4.  

อ.naj บอก SQL และวิธีทำด้วยครับ

ขอบคุณครับ

 ;D ;D ;D
โรงพยาบาลโพธิ์ทอง จังหวัดอ่างทอง

doramon

  • บุคคลทั่วไป
Re: Tool สำหรับนำเข้าข้อมูลในตาราง Clinicmember
« ตอบกลับ #2 เมื่อ: มิถุนายน 12, 2009, 16:16:13 PM »
0
มันก็ไม่ใช้ของผมครับ  เป็น script ที่ อ.ชัยพร ทำไว้แล้วผมเอามา

ต่อยอด  เท่าันั้้นครับ  ;D


doramon

  • บุคคลทั่วไป
Re: Tool สำหรับนำเข้าข้อมูลในตาราง Clinicmember
« ตอบกลับ #3 เมื่อ: มิถุนายน 12, 2009, 16:28:50 PM »
0
โค๊ด: Delphi
  1.  
  2. dbf1.tablename:='C:\DOCUME~1\Yindee\IMPOST~1\Temp\export.dbf';
  3.  
  4.  

อ.naj บอก SQL และวิธีทำด้วยครับ

ขอบคุณครับ

 ;D ;D ;D


ส่งใส่จะแบบนี้ครับ


ออฟไลน์ thannawe

  • Hero Member
  • *****
  • กระทู้: 2,904
  • Respect: +8
    • ดูรายละเอียด
Re: Tool สำหรับนำเข้าข้อมูลในตาราง Clinicmember
« ตอบกลับ #4 เมื่อ: มิถุนายน 12, 2009, 16:29:42 PM »
0
ท่านเทพ ทั้งหลาย  ;D :D ;D ;)
กิจจา ชาญธัญกรรม
นักวิชาการคอมพิวเตอร์ชำนาญการ รพ.โพธาราม จ.ราชบุรี
็HOSxP XE

doramon

  • บุคคลทั่วไป
Re: Tool สำหรับนำเข้าข้อมูลในตาราง Clinicmember
« ตอบกลับ #5 เมื่อ: มิถุนายน 12, 2009, 16:37:31 PM »
0
อ. นาจเปลียนจาก

#
dbf1.close;

#
dbf1.tablename:='C:\DOCUME~1\Yindee\IMPOST~1\Temp\export.dbf';

#
dbf1.open;

dbf1--- > fcds2  ( mysql แทนครับ  จะได้ไม่ต้อง  save เป็น dbf  ก่อน นำเข้าจาก ฐานเดียวกันได้เลย)

doramon

  • บุคคลทั่วไป
Re: Tool สำหรับนำเข้าข้อมูลในตาราง Clinicmember
« ตอบกลับ #6 เมื่อ: มิถุนายน 12, 2009, 19:51:18 PM »
0
ผมปรับให้นิดหนึ่งนะครับ อ.นาจ

เอาไปใส่ใน ตารางชื่อ doraemon

doramon

  • บุคคลทั่วไป
Re: Tool สำหรับนำเข้าข้อมูลในตาราง Clinicmember
« ตอบกลับ #7 เมื่อ: มิถุนายน 12, 2009, 21:04:32 PM »
0
 fcds['number']:=getsqldata('select get_serialnumber(''' + 'clinic-member-number-001' + ''') as cc');



แนะนำให้เปลียนไปใช้แบบนี้ครับ

อยู่ใน ตาราง   serial

clinic-member-number-001   คลินิก หมายเลข 001

doramon

  • บุคคลทั่วไป
Re: Tool สำหรับนำเข้าข้อมูลในตาราง Clinicmember
« ตอบกลับ #8 เมื่อ: มิถุนายน 12, 2009, 21:23:42 PM »
0
อันนี้ดีกว่า ตัด เลข hn ซ้ำใน คลินิกให้แล้ว


doramon

  • บุคคลทั่วไป
Re: Tool สำหรับนำเข้าข้อมูลในตาราง Clinicmember
« ตอบกลับ #9 เมื่อ: มิถุนายน 12, 2009, 21:32:08 PM »
0
unit Import2Clinicmember;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    ProgressBar1: TProgressBar;
    Memo: TMemo;
    Button2: TButton;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var a:integer;
begin
a:=0;
fcds2.close;
fcds2.datarequest('Select Distinct hn from ovstdiag  where icd10 like "E11%" and hn > 0');
fcds2.open;
ProgressBar1.max:=fcds2.recordcount;
showmessage('OVSTDIAG’ '+inttostr(ProgressBar1.max)+' Records');
Memo.lines.add('Found '+inttostr(ProgressBar1.max)+' Records');
Memo.lines.add('Start Import DaTa............');
ProgressBar1.position:=0;
fcds2.first;
fcds.close;
//fcds.datarequest('EXEC delete from clinicmember');
fcds.datarequest('select * from clinicmember');
fcds.open;
while not fcds2.eof do
begin
ProgressBar1.position:=ProgressBar1.position+1;
a:=a+1;
 if  getsqldata('select count(*) as  cc from clinicmember  where hn="'+fcds2['hn']+'"') = 0    then
 begin
 fcds.insert;
fcds['clinic']:='001';
 fcds['hn']:=fcds2['hn'];
 fcds['number']:=getsqldata('select get_serialnumber(''' + 'clinic-member-number-001' + ''') as cc');
 fcds['regdate']:='11/6/2552';
 fcds.post;
 memo.lines.add('Import No.'+inttostr(ProgressBar1.position)+'    Clinic '+fcds['clinic']+' , HN '+fcds['hn']);
 end;
 fcds2.next;
end;
applyupdate_fcds(-1);
fcds2.close;
fcds.close;
memo.lines.add('-------------------------------------------------');
memo.lines.add('Yindee Process Done ('+inttostr(ProgressBar1.position)+' Records)');
showmessage('Done');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
self.Close;
end;

end.

สี่แดงคือที่ต้องมีการเปลียนแปลงในแต่ละ คลินิก