รับข้อมูล สิทธิ์เบิกจ่ายตรง HN 7 หลัก
HOSxP Community
HOSxP Community Forum
HOSxP Community
ข่าว: SMF - Just Installed
 
*
ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน เมษายน 18, 2014, 03:16:48 PM


เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น


หน้า: [1]   ลงล่าง
  พิมพ์  
ผู้เขียน หัวข้อ: รับข้อมูล สิทธิ์เบิกจ่ายตรง HN 7 หลัก  (อ่าน 6303 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้ Send to Stock topic | Answer point : 0
doramon
บุคคลทั่วไป
« เมื่อ: พฤษภาคม 14, 2009, 01:13:27 PM »

Unit Script;


function addzero(s:string;i:integer):string;
begin
  //result:=s;
  while length(s)<i do
  begin
    s:='0'+s;
  end;
  result:=s;
end;

function CheckPID(pid: string): boolean;
var
  i: integer;
  nMod, nValue, cv: integer;
  snmod: string;
begin
  pid := replacestr(pid, '-', '');
  result := false;
  if length(replacestr(pid, ' ', '')) <> 13 then
    exit;

  try

    cv := strtoint(copy(pid, 1, 1));
    nValue := cv * 13;

    for i := 2 to 12 do
    begin
      cv := strtoint(copy(pid, i, 1));
      nValue := nValue + (cv * (14 - i));

    end;

    nMod := 11 - (nValue mod 11);
    snmod := inttostr(nmod);
    snmod := copy(snmod, length(snmod), 1);
    result := copy(pid, 13, 1) = snmod;

  except
    result := false;

  end;

end;

function MakeFullCID(cid: string): string;
begin
  result := cid;
  if length(cid) = 17 then
    exit;
  result := '';
  if length(cid) <> 13 then
    exit;
  result := copy(cid, 1, 1) + '-' +
    copy(cid, 2, 4) + '-' +
    copy(cid, 6, 5) + '-' +
    copy(cid, 11, 2) + '-' +
    copy(cid, 13, 1);
end;



Procedure Main;
var
  i:integer;
  dbf:TDBF;
  tc:tclientdataset;
  tcid:tclientdataset;
begin

  dbf:=tdbf.create(nil);
  dbf.tablename:='c:\CSCDMEM.DBF';
  dbf.open;
  dbf.first;
  tc:=tclientdataset.create(nil);
  tcid:=tclientdataset.create(nil);
  while not dbf.eof do
  begin
    tc.data:=HoSxP_GetDataset('select * from patient where hn = "'+copy(dbf.fieldbyname('hn').asstring,3,7)+'"');
    if tc.recordcount>0 then
    begin
      showdebugtext('Update patient : '+tc.fieldbyname('hn').asstring);
      tc.edit;
      tc.fieldbyname('gov_chronic_id').asstring:=dbf.fieldbyname('memberno').asstring;
      tc.fieldbyname('pttype').asstring:= '40';
      if checkpid(dbf.fieldbyname('pid').asstring) then
      begin
        tc.fieldbyname('cid').asstring:=dbf.fieldbyname('pid').asstring;
        tcid.data:=HOSxP_GetDataset('select * from ptcardno where hn="'+copy(dbf.fieldbyname('hn').asstring,3,7)+'" and cardtype="01"');
        if tcid.recordcount>0 then
        begin
          tcid.edit;

        end else
        begin
          tcid.insert;
        end;

        tcid.fieldbyname('hn').asstring:=copy(dbf.fieldbyname('hn').asstring,3,7);
        tcid.fieldbyname('cardno').asstring:=makefullcid(dbf.fieldbyname('pid').asstring);
        tcid.fieldbyname('cardtype').asstring:='01';
        tcid.post;
        if tcid.changecount>0 then
         HOSxP_UpdateDelta(tcid.delta, 'select * from ptcardno where hn="'+copy(dbf.fieldbyname('hn').asstring,3,7)+'" and cardtype="01"');
      end;
      tc.post;

      if tc.changecount>0 then
      HOSxP_UpdateDelta(tc.delta,'select * from patient where hn = "'+copy(dbf.fieldbyname('hn').asstring,3,7)+'"');

    end;
    dbf.next;
  end;


  dbf.free;
  tc.free;
  showmessage('done.');
end;





end.
Thanks : () 125.27.197.224 (?)
udomchok
Hero Member
*****

Karma: -18
ออฟไลน์ ออฟไลน์

กระทู้: 7609


44362038 udcsw@yahoo.com udcsw@yahoo.com
ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: พฤษภาคม 14, 2009, 10:01:26 PM »

ไม่รู้เหมือนกันหรือเปล่า เห็นมีใครเคยทำไว้ (จำไม่ได้) เอาเข้าไปเป็น user script ตั้งนานแล้ว แต่ไม่ได้ใช้ซะที
 Smiley Smiley Smiley

Unit Script;


function addzero(s:string;i:integer):string;
begin
  //result:=s;
  while length(s)<i do
  begin
    s:='0'+s;
  end;
  result:=s;
end;

function CheckPID(pid: string): boolean;
var
  i: integer;
  nMod, nValue, cv: integer;
  snmod: string;
begin
  pid := replacestr(pid, '-', '');
  result := false;
  if length(replacestr(pid, ' ', '')) <> 13 then
    exit;

  try

    cv := strtoint(copy(pid, 1, 1));
    nValue := cv * 13;

    for i := 2 to 12 do
    begin
      cv := strtoint(copy(pid, i, 1));
      nValue := nValue + (cv * (14 - i));

    end;

    nMod := 11 - (nValue mod 11);
    snmod := inttostr(nmod);
    snmod := copy(snmod, length(snmod), 1);
    result := copy(pid, 13, 1) = snmod;

  except
    result := false;

  end;

end;

function MakeFullCID(cid: string): string;
begin
  result := cid;
  if length(cid) = 17 then
    exit;
  result := '';
  if length(cid) <> 13 then
    exit;
  result := copy(cid, 1, 1) + '-' +
    copy(cid, 2, 4) + '-' +
    copy(cid, 6, 5) + '-' +
    copy(cid, 11, 2) + '-' +
    copy(cid, 13, 1);
end;



Procedure Main;
var
  i:integer;
  dbf:TDBF;
  tc:tclientdataset;
  tcid:tclientdataset;
begin

  dbf:=tdbf.create(nil);
  dbf.tablename:='C:\CSCD\DATA\CSCDMember.DBF';
  dbf.open;
  dbf.first;
  tc:=tclientdataset.create(nil);
  tcid:=tclientdataset.create(nil);
  while not dbf.eof do
  begin
    tc.data:=HoSxP_GetDataset('select * from patient where hn = "'+dbf.fieldbyname('hn').asstring+'"');
    if tc.recordcount>0 then
    begin
      showdebugtext('Update patient : '+tc.fieldbyname('hn').asstring);
      tc.edit;
      tc.fieldbyname('gov_chronic_id').asstring:=dbf.fieldbyname('memberno').asstring;
      tc.fieldbyname('pttype').asstring:= '24';
      if checkpid(dbf.fieldbyname('cspid').asstring) then
      begin
        tc.fieldbyname('cid').asstring:=dbf.fieldbyname('cspid').asstring;
        tcid.data:=HOSxP_GetDataset('select * from ptcardno where hn="'+dbf.fieldbyname('hn').asstring+'" and cardtype="01"');
        if tcid.recordcount>0 then
        begin
          tcid.edit;

        end else
        begin
          tcid.insert;
        end;

        tcid.fieldbyname('hn').asstring:=dbf.fieldbyname('hn').asstring;
        tcid.fieldbyname('cardno').asstring:=makefullcid(dbf.fieldbyname('cspid').asstring);
        tcid.fieldbyname('cardtype').asstring:='01';
        tcid.post;
        if tcid.changecount>0 then
         HOSxP_UpdateDelta(tcid.delta, 'select * from ptcardno where hn="'+dbf.fieldbyname('hn').asstring+'" and cardtype="01"');
      end;
      tc.post;

      if tc.changecount>0 then
      HOSxP_UpdateDelta(tc.delta,'select * from patient where hn = "'+dbf.fieldbyname('hn').asstring+'"');

    end;
    dbf.next;
  end;


  dbf.free;
  tc.free;
  showmessage('done.');
end;





end.
Thanks : () 125.26.52.151 (?)

ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง) ห้องยา การเงิน จิตเวช กำลังจะไป LAB (9/3/52 เชื่อมกับ i-Lab Connection) ER และห้องผ่าตัด เร็ว ๆ นี้ และตามด้วยงานเชิงรุก (PCU)
IPD เริ่มตุลาคม 2009 ... ได้ Team BMS มาช่วย 2 สัปดาห์
e-Mail : udcsw@yahoo.com
Social Network
http://udcsw1.hi5.com/
http://twitter.com/udomchok
http://www.facebook.com/udomchok
Skype Name : udomchok.somwang

กลุ่มสนทนา
HOSxP on FB : http://www.facebook.com/home.php?sk=group_185602894792724&ap=1
HOSxP on Skype

Master Server : Acer Altos R520 Xeon 5060 Dual-core 3.2 GHz Cache 2x2 MB RAM 16 GB CentOS 6.0 MySQL 5.5.11-55-percona
Slave Server : Acer Altos R520 Xeon 5060 Dual-core 3.2 GHz Cache 2x2 MB RAM 4 GB CentOS 6.0 MySQL 5.5.11-55-percona
ใคร Download แล้ว กรุณากด Thank ด้วยครับ
golf_win
Hero Member
*****

Karma: 16
ออฟไลน์ ออฟไลน์

กระทู้: 3155


golf_win@hotmail.com
ดูรายละเอียด
« ตอบ #2 เมื่อ: พฤษภาคม 15, 2009, 06:59:06 AM »

พี่โก้ครับรบกวนช่วยแปะตัว user script ตัวนี้ทีครับ อยากลองใช้ครับ
                                             รบกวนพี่โก้อีกแล้ว Grin Grin
                                                      ขอบคุณครับ
Thanks : () 125.27.170.163 (?)

โรงพยาบาลเจ็ดเสมียน จังหวัดราชบุรี
Start 19-1-51    35 station
HOSxP  3.57.3.25f Activate License
Tel. 032-305096-7 ต่อ 118
Web. http://csmhos.thaiddns.com
         http://csmhos.thaieasydns.com
udomchok
Hero Member
*****

Karma: -18
ออฟไลน์ ออฟไลน์

กระทู้: 7609


44362038 udcsw@yahoo.com udcsw@yahoo.com
ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: พฤษภาคม 15, 2009, 03:40:42 PM »

พี่โก้ครับรบกวนช่วยแปะตัว user script ตัวนี้ทีครับ อยากลองใช้ครับ
                                             รบกวนพี่โก้อีกแล้ว Grin Grin
                                                      ขอบคุณครับ
ลองศึกษาวิธีทำจากกระทู้นี้ครับ http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=8817.msg50173#msg50173

เจอแล้วได้ file จากโปรแกรม อ. mn ทำมาให้แล้ว อยู่ที่ C:\Program Files\HOSxP\script
Thanks : (golf_win) 203.157.132.2 (?)

ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง) ห้องยา การเงิน จิตเวช กำลังจะไป LAB (9/3/52 เชื่อมกับ i-Lab Connection) ER และห้องผ่าตัด เร็ว ๆ นี้ และตามด้วยงานเชิงรุก (PCU)
IPD เริ่มตุลาคม 2009 ... ได้ Team BMS มาช่วย 2 สัปดาห์
e-Mail : udcsw@yahoo.com
Social Network
http://udcsw1.hi5.com/
http://twitter.com/udomchok
http://www.facebook.com/udomchok
Skype Name : udomchok.somwang

กลุ่มสนทนา
HOSxP on FB : http://www.facebook.com/home.php?sk=group_185602894792724&ap=1
HOSxP on Skype

Master Server : Acer Altos R520 Xeon 5060 Dual-core 3.2 GHz Cache 2x2 MB RAM 16 GB CentOS 6.0 MySQL 5.5.11-55-percona
Slave Server : Acer Altos R520 Xeon 5060 Dual-core 3.2 GHz Cache 2x2 MB RAM 4 GB CentOS 6.0 MySQL 5.5.11-55-percona
ใคร Download แล้ว กรุณากด Thank ด้วยครับ
doramon
บุคคลทั่วไป
« ตอบ #4 เมื่อ: พฤษภาคม 15, 2009, 04:08:46 PM »

คำสั่งเหมือนกันครับพี่

แต่ว่า  ที่ระบบส่งกลับมาจะเป็น hn 9  หลัก 


ถ้า รพ เราใช้ hn 7 หลัก แล้ว  จะรับไม่ได้ครัับ

 Grin
Thanks : () 118.173.240.36 (?)
udomchok
Hero Member
*****

Karma: -18
ออฟไลน์ ออฟไลน์

กระทู้: 7609


44362038 udcsw@yahoo.com udcsw@yahoo.com
ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: พฤษภาคม 15, 2009, 05:13:37 PM »

คำสั่งเหมือนกันครับพี่

แต่ว่า  ที่ระบบส่งกลับมาจะเป็น hn 9  หลัก 


ถ้า รพ เราใช้ hn 7 หลัก แล้ว  จะรับไม่ได้ครัับ

 Grin
อ้อ...พอดีเห็นว่ามีอยูี่ในโปรแกรมน่ะ แต่ไม่ได้ใช้ซะที
Thanks : () 203.157.132.2 (?)

ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง) ห้องยา การเงิน จิตเวช กำลังจะไป LAB (9/3/52 เชื่อมกับ i-Lab Connection) ER และห้องผ่าตัด เร็ว ๆ นี้ และตามด้วยงานเชิงรุก (PCU)
IPD เริ่มตุลาคม 2009 ... ได้ Team BMS มาช่วย 2 สัปดาห์
e-Mail : udcsw@yahoo.com
Social Network
http://udcsw1.hi5.com/
http://twitter.com/udomchok
http://www.facebook.com/udomchok
Skype Name : udomchok.somwang

กลุ่มสนทนา
HOSxP on FB : http://www.facebook.com/home.php?sk=group_185602894792724&ap=1
HOSxP on Skype

Master Server : Acer Altos R520 Xeon 5060 Dual-core 3.2 GHz Cache 2x2 MB RAM 16 GB CentOS 6.0 MySQL 5.5.11-55-percona
Slave Server : Acer Altos R520 Xeon 5060 Dual-core 3.2 GHz Cache 2x2 MB RAM 4 GB CentOS 6.0 MySQL 5.5.11-55-percona
ใคร Download แล้ว กรุณากด Thank ด้วยครับ
วีระวัฒน์ (เอก)
Hero Member
*****

Karma: -83
ออฟไลน์ ออฟไลน์

กระทู้: 1333


ให้ก้าวไปข้างหน้าก่อนผู้อืนอย่างน้อย 1 ก้าวเสมอ


ดูรายละเอียด อีเมล์
« ตอบ #6 เมื่อ: พฤษภาคม 17, 2009, 07:30:55 AM »

อ.อ๊อด เขียน script เพิ่มเติม นำเข้าในในตาราง pttypeno ด้วยนะครับ เนื่องจากเอาใว้ตรวจสอบว่า สิทธิเบิกตรง dateexp หมดอายุแล้ว หรือถูกยกเลิกแล้ว เช่น นำเข้าจาก ตาราง cscdmember โดยนำเข้าดังนี้
ตาราง cscdmember---------->pttypeno
          cspid                           pttypeno
          hcode                         hospmain
          hcode                         hospsub
          hn                              hn
          dateexp                     expiredate
          lastupd                       begindate
     
Thanks : () 118.172.32.52 (?)

วีระวัฒน์ ใจอินผล Admin รพ.สันกำแพง  รพ.สารภี  เชียงใหม่ weerawatjaiinpol@gmail.com โทรมือถือ 081-9609614 AIS ,Skype weerawatjai , facebook weerawatjai
Server: Xeon 4 core 2.27 GHz, CentOS 6.4 , RAM : 20 GB , HD SAS :146 GBx4 R5, MySQL 5.5.30 Percona
Slave  CentOS 6.4 64 bit MySQL 5.5.30 Percona ExtraDB RAM 8 GM  
 HOSxP V ล่าสุดเสมอ HOSxP-PCU ล่าสุดเสมอ
ขอบคุณ อ.ชัยพร ที่ได้ให้โอกาสใช้โปรแกรมที่ดีที่สุด
doramon
บุคคลทั่วไป
« ตอบ #7 เมื่อ: พฤษภาคม 17, 2009, 10:32:07 AM »

อ.อ๊อด เขียน script เพิ่มเติม นำเข้าในในตาราง pttypeno ด้วยนะครับ เนื่องจากเอาใว้ตรวจสอบว่า สิทธิเบิกตรง dateexp หมดอายุแล้ว หรือถูกยกเลิกแล้ว เช่น นำเข้าจาก ตาราง cscdmember โดยนำเข้าดังนี้
ตาราง cscdmember---------->pttypeno
          cspid                           pttypeno
          hcode                         hospmain
          hcode                         hospsub
          hn                              hn
          dateexp                     expiredate
          lastupd                       begindate
     

่จะทดสอบดูครับ

แต่ว่า script ที่ให้ไปนี้ก็เปลียนสิทธิ์ตรง จุดส่งตรวจ อยู่แล้วครับว่า สิทธิ์็หลัก เปลียนแปลงอะไร

Thanks : () 118.173.240.5 (?)
udomchok
Hero Member
*****

Karma: -18
ออฟไลน์ ออฟไลน์

กระทู้: 7609


44362038 udcsw@yahoo.com udcsw@yahoo.com
ดูรายละเอียด เว็บไซต์
« ตอบ #8 เมื่อ: พฤษภาคม 17, 2009, 12:30:26 PM »

อ.อ๊อด เขียน script เพิ่มเติม นำเข้าในในตาราง pttypeno ด้วยนะครับ เนื่องจากเอาใว้ตรวจสอบว่า สิทธิเบิกตรง dateexp หมดอายุแล้ว หรือถูกยกเลิกแล้ว เช่น นำเข้าจาก ตาราง cscdmember โดยนำเข้าดังนี้
ตาราง cscdmember---------->pttypeno
          cspid                           pttypeno
          hcode                         hospmain
          hcode                         hospsub
          hn                              hn
          dateexp                     expiredate
          lastupd                       begindate
     
begindate น่าจะใช้ dateeff นะครับ
เพราะ lastupd เป็นวันที่ปรับปรุงข้อมูล ผมลองดูในแฟ้มตอบรับล่าสุด (งวดต้นเดือน พ.ค. 52) พบว่า
lastupd = 03/05/52
dateeff = 05/05/52
ดังนั้น ถ้าเราให้ begindate = lastupd แปลว่าผู้ป่วยจะเริ่มใช้สิทธิได้ตั้งแต่ 03/05/52 ทั้ง ๆ ที่ สกส. ให้ใช้สิทธิได้ 05/05/52
Thanks : () 125.27.146.3 (?)

ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง) ห้องยา การเงิน จิตเวช กำลังจะไป LAB (9/3/52 เชื่อมกับ i-Lab Connection) ER และห้องผ่าตัด เร็ว ๆ นี้ และตามด้วยงานเชิงรุก (PCU)
IPD เริ่มตุลาคม 2009 ... ได้ Team BMS มาช่วย 2 สัปดาห์
e-Mail : udcsw@yahoo.com
Social Network
http://udcsw1.hi5.com/
http://twitter.com/udomchok
http://www.facebook.com/udomchok
Skype Name : udomchok.somwang

กลุ่มสนทนา
HOSxP on FB : http://www.facebook.com/home.php?sk=group_185602894792724&ap=1
HOSxP on Skype

Master Server : Acer Altos R520 Xeon 5060 Dual-core 3.2 GHz Cache 2x2 MB RAM 16 GB CentOS 6.0 MySQL 5.5.11-55-percona
Slave Server : Acer Altos R520 Xeon 5060 Dual-core 3.2 GHz Cache 2x2 MB RAM 4 GB CentOS 6.0 MySQL 5.5.11-55-percona
ใคร Download แล้ว กรุณากด Thank ด้วยครับ
หน้า: [1]   ขึ้นบน
  พิมพ์  
 
กระโดดไป:  

Powered by MySQL Powered by PHP Powered by SMF 1.1 RC2 | SMF © 2001-2006, Lewis Media
Joomla Bridge by JoomlaHacks.com


Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM
หน้านี้ถูกสร้างขึ้นภายในเวลา 0.035 วินาที กับ 32 คำสั่ง
Copyright © 2006 Bangkok Medical Software Co.,Ltd.
SourceForge.net Logo web site monitoring tool