แสดงกระทู้

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - admin

หน้า: 1 ... 5 6 [7]
301
ใช้ version ไหนครับ

302
แจ้งปัญหา / ขอความช่วยเหลือ / Re: เข้า HosXp ไม่ได้
« เมื่อ: กุมภาพันธ์ 02, 2007, 06:26:26 AM »
หากสามารถกดปุ่ม error detail ได้ช่วย copy ข้อความตรง call stack ส่งเข้ามาด้วยครับ

303
ส่ง rg503 มาด้วย

305
การเขียน SQL Script / Re: ER Report Program
« เมื่อ: ธันวาคม 11, 2006, 20:39:13 PM »
ตัวอย่างหน้าจอ

306
การเขียน SQL Script / ER Report Program
« เมื่อ: ธันวาคม 11, 2006, 20:37:24 PM »
Script Program แสดงผลงานห้อง ER ครับ

307
แจ้งข้อผิดพลาดการทำงานของ HOSxP V3 / Re: replicate
« เมื่อ: ธันวาคม 05, 2006, 00:21:52 AM »
upgrade structure หรือยังครับ

309
ตอนนี้ harddisk ของเครื่อง server ที่ run webservices มีปัญหาครับ อาทิตย์หน้า ผมจะแจ้งให้ staff ตรวจสอบให้ครับ

310
จากการ remote เข้าไปตรวจสอบ config ระบบ ที่มีปัญหา ของ รพร. ธาตุพนม ได้แก่

<<mysql>>
1. ต้องมีบรรทัด innodb_file_per_table
2. ควรกำหนด key_buffer = 35% ของหน่วยความจำ
3. ควรกำหนด innodb_buffer_pool_size = 40% ของหน่วยความจำ
4. read_buffer_size ไม่ควรเกิน 2 Mb
5. ควรกำหนด default-character-set=tis620
6. ควรกำหนด query_cache_size = 15% ของหน่วยความจำ

<<apache>>
7. Process ของ apache (httpd) ไม่ต้องกำหนดให้ทำงานเยอะมากก็ได้ครับ ที่แฟ้ม /etc/httpd/conf/httpd.conf

<IfModule prefork.c>
StartServers       1
MinSpareServers    2
MaxSpareServers    2
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000
</IfModule>


<IfModule worker.c>
StartServers         2
MaxClients         150
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>

<<hosxp>>
8. ตารางที่ควรมี engine เป็น innodb ได้แก่ patient , ovst , opdscreen, ovstdiag , opitemrece , vn_stat , ipt , an_stat, rcpt_print , rcpt_print_detail

<<อื่นๆ>>
9. ควร upgrade mysql เป็น รุ่น 4.1.22


หลังจากที่ทำการแก้ไขแล้ว ระบบโดยรวมทำงานดีขึ้นมากครับ

311
ไม่จำเป็นต้อง drop index ครับ เนื่องจาก tool check lost index จะช่วยตรวจสอบให้แล้ว แต่อาจจะเกิดจาก performance ของ database ครับ ผมจะปรับปรุง query ที่ดึงข้อมูลมาแสดงผลสรุปใบสั่งยาใหม่ครับ น่าจะช่วยแก้ปัญหานี้ได้ครับ
(version หน้าครับ)

ลองพิจารณาเพิ่ม Ram Server เป็น 2GB  ด้วยนะครับ

และเปลี่ยน opitemrece มาเป็น innodb ด้วยนะครับ ด้วยคำสั่ง

โค๊ด: SQL
  1. ALTER TABLE opitemrece TYPE = innodb
  2.  

312
เข้าเมนู Tools -> Miscellaneous -> Check DB -> กดตรง Link Update Structure ด้านซ้ายมือ-> จากนั้นกดปุ่ม Check Table Index ด้านขวามือครับ (ใต้ปุ่ม Check Primary Key)

313
กำลังแก้ไขให้ครับ

เกี่ยวกับการแก้ไขใบสั่งยา ปกติหากไม่มีการปิดรายการค่าใช้จ่าย (จากห้องชำระเงิน/ห้องจ่ายยา) ทุกจุดสามารถเพิ่มรายการได้อยู่แล้วครับ (หากได้รับสิทธิสั่งจ่ายยา) และจะแก้ไขได้เฉพาะรายการที่ตนเองเป็นผู้สั่งจ่าย นอกจากนั้นทุกครั้งที่บันทึกใบสั่งยาระบบจะเก็บข้อมูลของรายการเดิมเอาไว้ทุกครั้งใน log ที่สามารถตรวจสอบย้อนหลังได้ครับ

314
เรียกรายงานจากเมนูไหนครับ ปุ่มชื่ออะไร

315
ตอนนี้ระบบผู้ป่วยใน การลงค้างชำระหมายถึงการโอนค่าใช้จ่ายค้างชำระไป visit ครั้งต่อไปครับ ในแต่ระวันให้ลงรับเฉพาะจำนวนเงินที่ผู้ป่วยชำระจริงๆ หากชำระไม่เต็มจำนวน ไม่ต้องลงค้าง แต่ให้นำมาลงยอดค้างครั้งเดียวตอนผู้ป่วยจำหน่ายครับ

317
หากจะซื้อมาใช้ภายใน 3 เดือนนี้แนะนำให้จัด Spec ดังนี้ครับ

CPU : Intel Dual core 64 bit ( 1 หรือ 2 CPU ตามความเหมาะสม)
Memory : 2 - 4 Gb  (ตาม Work load ของเครื่อง server)
Harddisk : Serial ATA / SCSI  120 GB.
Ethernet Adapter : 1 Gbps

318
เนื่องจากระบบการสื่อสารที่ชุมสายมีปัญหาทำให้ เวปเข้าไม่ได้วันที่ 14 ตอนบ่าย - 15 ตอนเย็นๆ

ต้องขออภัยในความไม่สะดวกด้วยครับ

319
- ระดับการเข้าถึงข้อมูลออกแบบเอาไว้แต่ยังไม่ได้ใช้ครับ
- ระดับการสั่งจ่ายยา สามารถกำหนดได้ 0 - 99 โดยหากยาตัวใดมีระดับการสั่งจ่ายยามากกว่าระดับของผู้ใช้ ก็จะค้นหามาสั่งใช้ไม่ได้ครับ (แนะนำให้กำหนดสิทธิการสั่งยาเป็นกลุ่มผู้ใช้ หรือระบุตัวเลย จะสะดวกกว่าครับ 2.49.8.29)
- ผู้ป่วยค้างชำระตรวจสอบยอดได้ที่ทะเบียนผู้ป่วยค้างชำระครับ จะมีตัวเลือกการแสดงผลว่าจะดูเฉพาะที่ค้าง หรือจะดูทั้งหมด
- ระบบส่งข้อมูลโรคเรื้อรังที่เป็น text ไฟล์ ตอนนี้ไม่ต้องกำหนดเลขที่โรคเรื้อรังแล้วครับ สามารถกำหนดเป็นสิทธิการรักษาขึ้นมาได้เลย ซึ่งในระบบส่งข้อมูลจะมีตัวเลือกให้นำข้อมูลผู้ป่วยที่ใช้สิทธิโรคเรื้อรังมาส่งข้อมูลครับ
- IPD Drug Profile จะรองรับการสั่งจ่ายยาจาก ward ไปยังห้องจ่ายยาผู้ป่วยในครับ สามารถออกใบสั่งยาได้วันละหลายใบ และอาจจะไม่ต้องมีคีย์ยาซ้ำทุกวัน ซึ่งจะต่างจากระบบห้องจ่ายยา mode 2 ที่หากนำมาคีย์รายการยาผู้ป่วยใน จะเป็นคีย์ได้แค่วันละ 1 ใบสั่ง และต้องมาคีย์ใหม่ทุกวัน
- ห้องชำระเงินสามารถปรับยอดให้ถูกต้องได้ แต่หากไม่ต้องการให้แก้ไขจำนวนเงิน ก็กำหนดใน system setting ครับ
- รหัส UA ใช้แทน บัตรทอง 30 บาทครับ ส่วน UC กับ UB จะมีความหมายเหมือนกัน คือ บัตรทอง (ท.)
การส่งข้อมูล 12 แฟ้มเข้า NHSO ต้องมี technique นิดหน่อยครับ ช่วยอธิบาย error หรือขั้นตอนที่ทำแล้วไม่ได้ด้วยครับ

320
Error รูปแรก น่าจะเกิดจาก เครื่อง 100.0.0.98 ไม่ได้ start mysql หรือได้เปิด firewall เอาไว้ครับ
รูปที่สองก็น่าจะเกิดจากสาเหตุเดียวกันครับ

321
Report Exchange / การ Post Report
« เมื่อ: สิงหาคม 19, 2006, 21:11:02 PM »
ในการส่ง Report เข้ามาใน Report Exchange forum ควรจะมีข้อมูลต่างๆ ดังนี้ครับ
1. ชื่อแบบฟอร์ม และคำอธิบายการนำไปใ้้ช้
2. แฟ้มของแบบฟอร์ม ที่ถูกส่งออกจาก Report designer (Attach เข้ามาด้วย)
3. ตัวอย่างรูปของ Report ที่พิมพ์ออกมา (่jpg,png,swf,pdf)

322
อาจจะเป็นกับ sub_type ของรายการครับให้ลองใช้คำสั่งนี้ update sub_type ของรายการ จากนั้นลองทดสอบการ remed ดูใหม่ครับ

โค๊ด: SQL
  1. UPDATE opitemrece SET sub_type =  SUBSTRING(icode,1,1)
  2.  

323
ผมจะตรวจสอบให้ครับ ส่วนหน้าจอ Error ของ replication ให้ทำการ Initial Import ใหม่ครับ

324
ลองเปลี่ยนเป็น bmp แล้วลองพิมพ์ดูใหม่ครับ

325
ส่วนห้องจ่ายยา Mode 2 จะกำหนดใน System Setting ครับ

326
การเขียน SQL Script / Re: Pascal Script for Fun Part I
« เมื่อ: สิงหาคม 16, 2006, 08:09:08 AM »
ลองเพิ่ม DBGrid เข้าไป

โค๊ด: Pascal
  1. Unit Script;
  2.  
  3. var MyForm : TForm;
  4.     OKButton : TButton;
  5.     SaveButton : TButton;
  6.     DBEdit1:TDBEdit;
  7.     DataSource : TDataSource;
  8.     ClientDataset : TClientDataset;
  9.     PttypeEdit : TEdit;
  10.  
  11.     PttypeLabel : TLabel;
  12.     PttypeNameLabel : TLabel;
  13.  
  14.     DBGrid : TDBGrid;
  15.  
  16.  
  17. Implementation
  18.  
  19.  
  20. Procedure OKButtonClick;
  21. begin
  22.   MyForm.close;
  23.  
  24. end;
  25.  
  26. Procedure SaveButtonClick;
  27. begin
  28.   if ClientDataset.state = dsedit then ClientDataset.post;
  29.  
  30.   if ClientDataset.changecount>0 then HOSxP_UpdateDelta(clientdataset.delta,'select * from pttype where pttype="'+PttypeEdit.text+'"');
  31.   MyForm.close;
  32. end;
  33.  
  34. Procedure PttypeEditChange;
  35. begin
  36.   ClientDataset.Data:=HOSxP_GetDataset('select * from pttype where pttype="'+PttypeEdit.text+'"');
  37.   SaveButton.enabled:=ClientDataset.recordcount>0;
  38.  
  39. end;
  40.  
  41. Procedure InitilizeForm;
  42. begin
  43.  
  44.   MyFORM:=TForm.create(nil);
  45.   MyForm.top:=200;
  46.   MyForm.left:=200;
  47.   MyForm.Width := 400;
  48.   MyForm.Height := 550;
  49.  
  50.   MyForm.caption:='Pttype name changer version 1.0';
  51.  
  52.   OKButton:=TButton.Create(MyForm);
  53.   OKButton.parent:=MyForm;
  54.   OKButton.Caption:='Close';
  55.   OKButton.left:=150;
  56.   OKButton.top:=450;
  57.  
  58.   OKButton.OnClick:=OkButtonClick;
  59.  
  60.   SaveButton:=TButton.Create(MyForm);
  61.   SaveButton.parent:=MyForm;
  62.   SaveButton.Caption:='Save';
  63.   SaveButton.left:=50;
  64.   SaveButton.top:=450;
  65.   SaveButton.enabled:=false;
  66.  
  67.   SaveButton.OnClick:=SaveButtonClick;
  68.  
  69.   DataSource:=TDataSource.create(MyForm);
  70.   ClientDataset:=TClientDataset.create(MyForm);
  71.   ClientDataset.data:=HOSxP_GetDataset('select * from pttype limit 0');
  72.   DataSource.Dataset := ClientDataset;
  73.  
  74.   PttypeEdit:=TEdit.create(MyForm);
  75.   PttypeEdit.parent:=MyForm;
  76.   PttypeEdit.left:=100;
  77.   PttypeEdit.top:=20;
  78.   PttypeEdit.width:=40;
  79.  
  80.   PttypeEdit.onchange:=PttypeEditChange;
  81.  
  82.   PttypeLabel:=TLabel.create(MyForm);
  83.   PttypeLabel.parent:=MyForm;
  84.   PttypeLabel.caption:='&#195;&#203;&#209;&#202;&#202;&#212;&#183;&#184;&#212;';
  85.   PttypeLabel.left:=20;
  86.   PttypeLabel.top:=23;
  87.  
  88.  
  89.   PttypeNameLabel:=TLabel.create(MyForm);
  90.   PttypeNameLabel.parent:=MyForm;
  91.   PttypeNameLabel.caption:='&#170;&#215;&#232;&#205;&#202;&#212;&#183;&#184;&#212;';
  92.   PttypeNameLabel.left:=20;
  93.   PttypeNameLabel.top:=53;
  94.  
  95.   DBEdit1:=TDBEdit.create(MyForm);
  96.   DBEdit1.parent:=MyForm;
  97.   DBEdit1.left:=100;
  98.   DBEdit1.top:=50;
  99.   DBEdit1.DataSource:=Datasource;
  100.   DBEdit1.DataField:='name';
  101.  
  102.   DBGrid := TDBGrid.create(MyForm);
  103.   DBGrid.parent := MyForm;
  104.   DBGrid.top:=100;
  105.   DBGrid.left:=20;
  106.   DBGrid.datasource := Datasource;
  107.  
  108.   MyForm.activecontrol := PttypeEdit;
  109.  
  110.  
  111.  
  112.  
  113. end;
  114.  
  115.  
  116. Procedure Main;
  117. var
  118.   i:integer;
  119. begin
  120.  
  121.  
  122.   InitilizeForm;
  123.   MyForm.showmodal;
  124.   MyForm.free;
  125.  
  126. end;
  127.  
  128.  
  129.  
  130.  
  131.  
  132. end.
  133.  
  134.  
  135.  

327
ทำการแก้ไขให้แล้วครับ เป็นเฉพาะ กับ Microsoft SQL

2.49.8.15

328
ใช้ SQL Query

พิมพ์คำสั่ง
โค๊ด: SQL
  1. SELECT * FROM ipt WHERE dchdate IS NULL
  2.  

จากนั้นให้แก้ไขข้อมูลใน Field Ward ครับ แก้ไขเสร็จแล้วกดปุ่ม Update

329
ที่เครื่อง Stand alone ทำขั้นตอนดังนี้
1. เข้า SQL Query
2. พิมพ์คำสั่ง select * from patient
3. กดปุ่ม RUN
4. กดปุ่ม Save ตั้งชื่อแฟ้มเป็น patient.cds  และ copy ลง handy drive หรือ diskette

ที่เครื่องใช้งานจริง ทำขั้นตอนดังนี้
1. เข้า SQL Query
2. พิมพ์คำสั่ง select * from patient
3. กดปุ่ม RUN
4. กดปุ่ม Load และทำการ browse ไปหาแฟ้ม patient.cds และกดปุ่ม open (ที่หน้าจอ browse)
5. กดปุ่ม Append


330
ทำการตรวจสอบและแก้ไขให้แล้วครับ

2.49.8.15

สามารถกำหนดให้ยกเลิกการตรวจสอบ balance ได้ด้วยคำสั่ง

โค๊ด: SQL
  1. UPDATE sys_var SET sys_value = 'Y' WHERE sys_name='skip_rcpt_balance'
  2.  

331
ยินดีต้อนรับ / ย้ายเวบไซต์
« เมื่อ: สิงหาคม 15, 2006, 00:53:08 AM »
ย้ายเวบไซต์

หน้า: 1 ... 5 6 [7]