ได้ลองใช้งาน script สำหรับนำเข้าข้อมูลทะเบียนผู้ป่วยจ่ายตรงจาก C:\Program Files\HOSxP\script\CSCD Member Import.txt
โดยนำเข้าไปเป็น user script และเปลี่ยนที่ตั้งของแฟ้มเรียบร้อยแล้ว
====================================================
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:= '22';
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.
====================================================
พบว่าเมื่อลอง execute ในหน้าของ script สามารถทำได้ ขึ้น message box "Done"
แต่พอเข้าไปใช้งานจากเมนู tools => user script ปรากฏว่าพบปัญหาแบบนี้ครับ
====================================================
EurekaLog 6.0.13
Application:
--------------------------------------------------------
1.1 Start Date : Wed, 21 May 2008 14:41:45 +0700
1.2 Name/Description: HOSMy.exe
1.3 Version Number : 3.51.5.17
1.4 Parameters :
1.5 Compilation Date: Sat, 17 May 2008 18:34:53 +0700
1.6 Up Time : 18 hours, 59 minutes, 18 seconds
Exception:
-----------------------------------------------------
2.1 Date : Thu, 22 May 2008 09:41:03 +0700
2.2 Address : 0043392B
2.3 Module Name : HOSMy.exe
2.4 Module Version: 3.51.5.17
2.5 Type : EParserError
2.6 Message : OBJECT expected on line 2.
2.7 ID : 47D7
2.8 Count : 1
2.9 Status : New
2.10 Note :
User:
-------------------------------------------------------
3.1 ID : udc
3.2 Name : Udomchok Somwang
3.3 Email :
3.4 Company : Somdejprasangkharach XVII Hospital
3.5 Privileges: SeChangeNotifyPrivilege - ON
SeSecurityPrivilege - OFF
SeBackupPrivilege - OFF
SeRestorePrivilege - OFF
SeSystemtimePrivilege - OFF
SeShutdownPrivilege - OFF
SeRemoteShutdownPrivilege - OFF
SeTakeOwnershipPrivilege - OFF
SeDebugPrivilege - OFF
SeSystemEnvironmentPrivilege - OFF
SeSystemProfilePrivilege - OFF
SeProfileSingleProcessPrivilege - OFF
SeIncreaseBasePriorityPrivilege - OFF
SeLoadDriverPrivilege - ON
SeCreatePagefilePrivilege - OFF
SeIncreaseQuotaPrivilege - OFF
SeUndockPrivilege - ON
SeManageVolumePrivilege - OFF
SeImpersonatePrivilege - ON
SeCreateGlobalPrivilege - ON
Active Controls:
--------------------------------
4.1 Form Class : TMainForm
4.2 Form Text : :: HOSxP ::
4.3 Control Class: TcxButton
4.4 Control Text : Run
Computer:
-----------------------------------------------------------------------
5.1 Name : ICT1
5.2 Total Memory : 255 Mb
5.3 Free Memory : 29 Mb
5.4 Total Disk : 19.17 Gb
5.5 Free Disk : 1.15 Gb
5.6 System Up Time: 1 day, 20 hours, 50 minutes, 5 seconds
5.7 Processor : Intel(R) Celeron(TM) CPU 1100MHz
5.8 Display Mode : 800 x 600, 32 bit
5.9 Display DPI : 96
5.10 Video Card : SiS 315 (driver 5.1.2001.0 - RAM 32 MB)
5.11 Printer : AdobePS Acrobat Distiller (driver 5.00.2195.3305)
Operating System:
------------------------------------
6.1 Type : Microsoft Windows XP
6.2 Build # : 2600
6.3 Update : Service Pack 2
6.4 Language: Thai
6.5 Charset : 222
Network:
---------------------------------------------------
7.1 IP Address: 192.168.001.021 - 005.079.210.098
7.2 Submask : 255.255.255.000 - 255.000.000.000
7.3 Gateway : 192.168.001.001 - 000.000.000.000
7.4 DNS 1 : 192.168.001.001 - 000.000.000.000
7.5 DNS 2 : 000.000.000.000 - 000.000.000.000
7.6 DHCP : OFF - ON
Custom Information:
------------------------------------------------------------------------------------------------------
8.1 Hospital Code : 10733 [âç¾ÂÒºÒÅ ÊÁà´ç¨¾ÃÐÊѧ¦ÃҪͧ¤ì·Õè17]
8.2 Database Type : MySQL
8.3 Database Protocol : mysql-4.1 [5.0.22
Database hos @ 192.168.1.13]
8.4 :
8.5 No 1 : select * from sys_app_script where script_name = 'CSCD Member Import'
8.6 No 2 : select app_script_id,script_name,update_date_time from sys_app_script
8.7 No 3 : select accessright from opduser where loginname='udc'
8.8 DBMS Variables :
8.9 :
8.10 auto_increment_increment: 1
auto_increment_offset = 1
automatic_sp_privileges = ON
back_log = 50
basedir = /usr/
bdb_cache_size = 8388600
bdb_home = /var/lib/mysql/
bdb_log_buffer_size = 512000
bdb_logdir =
bdb_max_lock = 10000
bdb_shared_data = OFF
bdb_tmpdir = /tmp/
binlog_cache_size = 32768
bulk_insert_buffer_size = 8388608
character_set_client = tis620
character_set_connection = tis620
character_set_database = tis620
character_set_filesystem = binary
character_set_results = tis620
character_set_server = tis620
character_set_system = utf8
character_sets_dir = /usr/share/mysql/charsets/
collation_connection = tis620_thai_ci
collation_database = tis620_thai_ci
collation_server = tis620_thai_ci
completion_type = 0
concurrent_insert = 1
connect_timeout = 5
datadir = /var/lib/mysql/
date_format = %Y-%m-%d
datetime_format = %Y-%m-%d %H:%i:%s
default_week_format = 0
delay_key_write = ON
delayed_insert_limit = 100
delayed_insert_timeout = 300
delayed_queue_size = 1000
div_precision_increment = 4
engine_condition_pushdown = OFF
expire_logs_days = 0
flush = OFF
flush_time = 0
ft_boolean_syntax = + -><()~*:""&|
ft_max_word_len = 84
ft_min_word_len = 4
ft_query_expansion_limit = 20
ft_stopword_file = (built-in)
group_concat_max_len = 1024
have_archive = NO
have_bdb = YES
have_blackhole_engine = NO
have_compress = YES
have_crypt = YES
have_csv = NO
have_example_engine = NO
have_federated_engine = NO
have_geometry = YES
have_innodb = DISABLED
have_isam = NO
have_ndbcluster = NO
have_openssl = DISABLED
have_query_cache = YES
have_raid = NO
have_rtree_keys = YES
have_symlink = YES
init_connect = SET NAMES tis620
init_file =
init_slave =
innodb_additional_mem_pool_size = 20971520
innodb_autoextend_increment = 8
innodb_buffer_pool_awe_mem_mb = 0
innodb_buffer_pool_size = 268435456
innodb_checksums = ON
innodb_commit_concurrency = 0
innodb_concurrency_tickets = 500
innodb_data_file_path = ibdata1:10M:autoextend
innodb_data_home_dir = /var/lib/mysql/
innodb_doublewrite = ON
innodb_fast_shutdown = 1
innodb_file_io_threads = 4
innodb_file_per_table = ON
innodb_flush_log_at_trx_commit = 1
innodb_flush_method =
innodb_force_recovery = 0
innodb_lock_wait_timeout = 50
innodb_locks_unsafe_for_binlog = OFF
innodb_log_arch_dir = /var/lib/mysql/
innodb_log_archive = OFF
innodb_log_buffer_size = 8388608
innodb_log_file_size = 67108864
innodb_log_files_in_group = 2
innodb_log_group_home_dir = /var/lib/mysql/
innodb_max_dirty_pages_pct = 90
innodb_max_purge_lag = 0
innodb_mirrored_log_groups = 1
innodb_open_files = 300
innodb_support_xa = ON
innodb_sync_spin_loops = 20
innodb_table_locks = ON
innodb_thread_concurrency = 8
innodb_thread_sleep_delay = 10000
interactive_timeout = 28800
join_buffer_size = 131072
key_buffer_size = 268435456
key_cache_age_threshold = 300
key_cache_block_size = 1024
key_cache_division_limit = 100
language = /usr/share/mysql/english/
large_files_support = ON
large_page_size = 0
large_pages = OFF
license = GPL
local_infile = ON
locked_in_memory = OFF
log = OFF
log_bin = OFF
log_bin_trust_function_creators = OFF
log_error =
log_slave_updates = OFF
log_slow_queries = OFF
log_warnings = 1
long_query_time = 10
low_priority_updates = OFF
lower_case_file_system = OFF
lower_case_table_names = 0
max_allowed_packet = 16776192
max_binlog_cache_size = 18446744073709551615
max_binlog_size = 1073741824
max_connect_errors = 10
max_connections = 100
max_delayed_threads = 20
max_error_count = 64
max_heap_table_size = 16777216
max_insert_delayed_threads = 20
max_join_size = 18446744073709551615
max_length_for_sort_data = 1024
max_prepared_stmt_count = 16382
max_relay_log_size = 0
max_seeks_for_key = 18446744073709551615
max_sort_length = 1024
max_sp_recursion_depth = 0
max_tmp_tables = 32
max_user_connections = 0
max_write_lock_count = 18446744073709551615
multi_range_count = 256
myisam_data_pointer_size = 6
myisam_max_sort_file_size = 9223372036854775807
myisam_recover_options = OFF
myisam_repair_threads = 1
myisam_sort_buffer_size = 134217728
myisam_stats_method = nulls_unequal
net_buffer_length = 16384
net_read_timeout = 30
net_retry_count = 10
net_write_timeout = 60
new = OFF
old_passwords = OFF
open_files_limit = 2110
optimizer_prune_level = 1
optimizer_search_depth = 62
pid_file = /var/run/mysqld/mysqld.pid
prepared_stmt_count = 0
port = 3306
preload_buffer_size = 32768
protocol_version = 10
query_alloc_block_size = 8192
query_cache_limit = 1048576
query_cache_min_res_unit = 4096
query_cache_size = 33554432
query_cache_type = ON
query_cache_wlock_invalidate = OFF
query_prealloc_size = 8192
range_alloc_block_size = 2048
read_buffer_size = 1044480
read_only = OFF
read_rnd_buffer_size = 4190208
relay_log_purge = ON
relay_log_space_limit = 0
rpl_recovery_rank = 0
secure_auth = OFF
server_id = 0
skip_external_locking = ON
skip_networking = OFF
skip_show_database = OFF
slave_compressed_protocol = OFF
slave_load_tmpdir = /tmp/
slave_net_timeout = 3600
slave_skip_errors = OFF
slave_transaction_retries = 10
slow_launch_time = 2
socket = /var/lib/mysql/mysql.sock
sort_buffer_size = 1048568
sql_mode =
sql_notes = ON
sql_warnings = ON
storage_engine = MyISAM
sync_binlog = 0
sync_frm = ON
system_time_zone = ICT
table_cache = 1000
table_lock_wait_timeout = 50
table_type = MyISAM
thread_cache_size = 8
thread_stack = 262144
time_format = %H:%i:%s
time_zone = SYSTEM
timed_mutexes = OFF
tmp_table_size = 33554432
tmpdir =
transaction_alloc_block_size = 8192
transaction_prealloc_size = 4096
tx_isolation = REPEATABLE-READ
updatable_views_with_limit = YES
version = 5.0.22
version_bdb = Sleepycat Software:_Berkeley DB 4.1.24:_(May 25, 2006)
version_comment = Source distribution
version_compile_machine = x86_64
version_compile_os = redhat-linux-gnu
wait_timeout = 28800
Call Stack Information:
-----------------------------------------------------------------------------------------------------
|Address |Module |Unit |Class |Procedure/Method |Line |
-----------------------------------------------------------------------------------------------------
|Running Thread: ID=1772; Priority=0; Class=; [Main] |
|---------------------------------------------------------------------------------------------------|
|004059E9|HOSMy.exe|System | |_HandleAnyException |81[0] |
|004059CC|HOSMy.exe|System | |_HandleAnyException |81[0] |
|004055C0|HOSMy.exe|System | |GetDynaMethod |81[0] |
|01154CFA|HOSMy.exe|JvInterpreterFm.pas| |JvInterpreterReadComponentRes |269[4] |
|01154CD0|HOSMy.exe|JvInterpreterFm.pas| |JvInterpreterReadComponentRes |265[0] |
|0115500B|HOSMy.exe|JvInterpreterFm.pas|TJvInterpreterFm |LoadForm |362[5] |
|01154FBC|HOSMy.exe|JvInterpreterFm.pas|TJvInterpreterFm |LoadForm |357[0] |
|01154E3B|HOSMy.exe|JvInterpreterFm.pas|TJvInterpreterFm |MakeForm |301[9] |
|01154D74|HOSMy.exe|JvInterpreterFm.pas|TJvInterpreterFm |MakeForm |292[0] |
|01155766|HOSMy.exe|JvInterpreterFm.pas|TJvInterpreterFm |RunFormModal |526[1] |
|01155760|HOSMy.exe|JvInterpreterFm.pas|TJvInterpreterFm |RunFormModal |525[0] |
|01FB5264|HOSMy.exe|MainU.pas |TMainForm |RunScriptProgramEx |20058[9] |
|01FB51B8|HOSMy.exe|MainU.pas |TMainForm |RunScriptProgramEx |20049[0] |
|01FB5456|HOSMy.exe|MainU.pas |TMainForm |RunHOSxP_ScriptProgram |20089[20]|
|01FB52C8|HOSMy.exe|MainU.pas |TMainForm |RunHOSxP_ScriptProgram |20069[0] |
|01ADEC3D|HOSMy.exe|UserScriptListU.pas|TUserScriptListForm|cxButton1Click |52[4] |
|0097F71E|HOSMy.exe|cxButtons.pas |TcxCustomButton |Click |1264[2] |
|004057E4|HOSMy.exe|System | |_AfterConstruction |81[0] |
|007F9AC7|HOSMy.exe|cxContainer.pas | |ApplicationCallWndProcHookProc|5881[13] |
|008DD467|HOSMy.exe|dxSkinsForm.pas | |dxSkinsWndProcHook |3051[2] |
|00823B69|HOSMy.exe|dxBar.pas | |dxBarWndProcHook |13443[30]|
|007FA3E2|HOSMy.exe|cxContainer.pas | |ApplicationMouseMsgHookProc |6184[12] |
|0098042F|HOSMy.exe|cxButtons.pas |TcxCustomButton |WMLButtonUp |1708[2] |
|00403494|HOSMy.exe|System | |_Delete |81[0] |
|01FDF119|HOSMy.exe|HOSMy.dpr | |Initialization |1258[119]|
-----------------------------------------------------------------------------------------------------
Modules Information:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|Handle |Name |Description |Version |Size |Modified |Path |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|00340000|Normaliz.dll |Unicode Normalization DLL |6.0.5441.0 |23552 |2006-06-29 08:05:44|C:\WINDOWS\system32 |
|00350000|hhctrl.ocx |Microsoft? HTML Help Control |5.2.3790.2847 |546304 |2007-01-24 02:24:28|C:\WINDOWS\system32 |
|00400000|HOSMy.exe | |3.51.5.17 |58048000|2008-05-17 18:34:56|C:\Program Files\HOSxP |
|05590000|libintl-2.dll | | |51016 |2003-02-01 15:51:36|C:\WINDOWS\system32 |
|055A0000|libiconv-2.dll | | |916849 |2003-01-31 18:41:30|C:\WINDOWS\system32 |
|05680000|krb5_32.dll |Kerberos v5 - MIT GSS / Kerberos v5 distribution |1.3.5.0 |524288 |2005-10-12 09:32:32|C:\WINDOWS\system32 |
|05710000|ssleay32.dll |OpenSSL Shared Library |0.9.8.1 |200704 |2005-11-03 11:50:30|C:\WINDOWS\system32 |
|096B0000|LMIRfsClientNP.dll |LogMeIn Rfs Client Network Provider |2.1.3.0 |83288 |2007-11-15 18:46:40|C:\WINDOWS\system32 |
|0D910000|libmysql41.dll | | |1056768 |2004-07-12 14:36:18|C:\WINDOWS\system32 |
|0E0B0000|PortableDeviceApi.dll|Windows Portable Device API Components |5.2.5721.5145 |284160 |2006-10-18 22:47:18|C:\WINDOWS\system32 |
|0E180000|odbcint.dll |Microsoft Data Access - ODBC Resources |3.525.1117.0 |94208 |2004-08-05 02:00:00|C:\WINDOWS\system32 |
|10000000|libeay32.dll |OpenSSL Shared Library |0.9.8.1 |1064960 |2005-11-03 11:50:16|C:\WINDOWS\system32 |
|1C000000|comerr32.dll |COM_ERR - Common Error Handler for MIT Kerberos v5 / GSS distribution|1.3.5.0 |24576 |2005-10-12 08:32:34|C:\WINDOWS\system32 |
|20000000|xpsp2res.dll |Service Pack 2 Messages |5.1.2600.2180 |2897920 |2004-08-05 02:00:00|C:\WINDOWS\system32 |
|20B00000|imon.dll |NOD32 IMON - Internet scanning support |2.51.8.0 |270336 |2008-01-08 23:52:56|C:\WINDOWS\system32 |
|42990000|iertutil.dll |Run time utility for Internet Explorer |7.0.6000.16640 |267776 |2008-03-01 20:06:26|C:\WINDOWS\system32 |
|42C10000|wininet.dll |Internet Extensions for Win32 |7.0.6000.16640 |826368 |2008-03-01 20:06:32|C:\WINDOWS\system32 |
|42CF0000|urlmon.dll |OLE32 Extensions for Win32 |7.0.6000.16640 |1159680 |2008-03-01 20:06:30|C:\WINDOWS\system32 |
|4DE10000|msado15.dll |Microsoft Data Access - ActiveX Data Objects |2.81.1128.0 |536576 |2006-12-26 20:07:24|C:\Program Files\Common Files\System\ado |
|4EC50000|gdiplus.dll |Microsoft GDI+ |5.1.3102.2180 |1712128 |2004-08-05 02:00:00|C:\WINDOWS\WinSxS\x86_Microsoft.Windows.GdiPlus_6595b64144ccf1df_1.0.2600.2180_x-ww_522f9f82 |
|58D40000|Wship6.dll |IPv6 Helper DLL |5.1.2600.2180 |14336 |2004-08-05 02:00:00|C:\WINDOWS\system32 |
|5A730000|wbemdisp.dll |WMI Scripting |5.1.2600.2180 |178176 |2004-08-05 02:00:00|C:\WINDOWS\system32\wbem |
|5AD70000|uxtheme.dll |Microsoft UxTheme Library |6.0.2900.2845 |218624 |2007-01-17 08:18:52|C:\WINDOWS\system32 |
|5B860000|netapi32.dll |Net Win32 API DLL |5.1.2600.2976 |337408 |2007-01-17 08:17:38|C:\WINDOWS\system32 |
|5EDD0000|olepro32.dll |