แสดงกระทู้

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 - manoi

หน้า: 1 ... 7 8 [9] 10 11 ... 171
401
Development / Re: การพัฒนาระบบ HOSxP Addon Package ใน HOSxP XE 4.0
« เมื่อ: พฤษภาคม 31, 2013, 11:58:14 AM »
ตัวโปรแกรมที่สร้างขึ้น จะต้อง compile แบบ Package ครับ จะได้แฟ้มเป็น .bpl แทนที่จะเป็น .exe

นำไฟล์นี้มาไว้ใน Folder เดียวกับ HOSxP XE ครับ แล้วไปเขียนบอกให้ Load แฟ้มนี้ใน file  developer_package_list.txt ที่อยู่ใน Folder ของ HOSxP XE เช่นเดียวกันครับ

402
Development / Re: การพัฒนาระบบ HOSxP Addon Package ใน HOSxP XE 4.0
« เมื่อ: พฤษภาคม 31, 2013, 11:26:32 AM »
ตัวอย่าง SourceCode ใน rar ครับเอาไป แก้ไข และ Compile เพื่อทดสอบได้

ใช้ Delphi XE นะครับ

ตัว HOSxP XE Download ได้จากกระทู้นี้ครับ

http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=29961.0

หมายเหตุ เวลาเอา Package ไปแก้ ให้เปลี่ยนชื่อ package และ unit ใน Package ใหม่นะครับ เพราะ Package ชื่อ HOSxPDeveloperPackageTest จะมีอยู่แล้ว ไม่งั้นจะถูกระบบ auto upgrade download มาทับครับ

403
Development / Re: การพัฒนาระบบ HOSxP Addon Package ใน HOSxP XE 4.0
« เมื่อ: พฤษภาคม 31, 2013, 11:24:32 AM »
แต่สิ่งที่สำคัญจริงๆ จะอยู่ใน Unit ที่เป็น MainForm ของระบบงานของเรานะครับ ตัวอย่าง

unit HOSxPDeveloperTestUnit;

interface

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

type
  THOSxPDeveloperTestForm = class(TForm)
    Panel1: TPanel;
  private
    { Private declarations }
  public
    { Public declarations }
    class procedure MenuButtonClick(Sender:TObject);
  end;

var
  HOSxPDeveloperTestForm: THOSxPDeveloperTestForm;

implementation
uses RTTI;

var   MenuButtonClickEvent : TNotifyEvent;

{$R *.dfm}



function ExecuteRTTIFunction(UnitClassname, FunctionName: String;
  Args: Array of Tvalue): Tvalue;
var
  c: TRttiContext;
  m: TRttiMethod;
  t: TRttiInstanceType;
begin



  c := TRttiContext.Create;

  t := (c.FindType(UnitClassname) as TRttiInstanceType);
  c.Free;

  if assigned(t) then
  begin

    m := t.GetMethod(FunctionName);
    if assigned(m) then
    begin

      Result := m.Invoke(t.MetaclassType, Args);
    end;

  end
  else
  begin
   showmessage('Type not found : ' + UnitClassname);

  end;

end;

function ExecuteRTTIObjectMethod(Obj: TObject; MName: String;
  Args: Array of Tvalue): Tvalue;
var
  c: TRttiContext;
  r: TRttiType;
  t: TRttiInstanceType;
  Method: TRttiMethod;
begin

  c := TRttiContext.Create;

  try
    r := c.FindType(Obj.UnitName + '.' + Obj.ClassName);

    for Method in r.GetDeclaredMethods do
    begin
      if SameText(Method.Name, MName) then
      begin
        Result := Method.Invoke(Obj, Args);
        break;
      end;
    end;
  finally
    c.Free;
  end;

end;

{ THOSxPDeveloperTestForm }

class procedure THOSxPDeveloperTestForm.MenuButtonClick(Sender: TObject);
begin
   showmessage('Click');
end;

var Mainform:TForm;


initialization

  MainForm:=   TForm(ExecuteRTTIFunction('MainFormUnit.TMainForm','GetMainForm',[]).AsObject);



 { ExecuteRTTIObjectMethod(Mainform, 'AddLargeMenuButton',
  ['TabName', 'GroupName', 'ButtonCaption','HOSxPDeveloperTestUnit.THOSxPDeveloperTestForm',
  true, // showmodal or show
  false  // reuse old form case mdichild
  ,-1]);   }

   ExecuteRTTIObjectMethod(Mainform, 'AddLargeMenuButton',
  ['TabName', 'GroupName', 'ButtonCaption','HOSxPDeveloperTestUnit.THOSxPDeveloperTestForm',
  false, // showmodal or show
  true  // reuse old form case mdichild
  ,-1]);




end.

404
Development / Re: การพัฒนาระบบ HOSxP Addon Package ใน HOSxP XE 4.0
« เมื่อ: พฤษภาคม 31, 2013, 11:21:33 AM »
ใน Package ตัวอย่างนี้ไม่มีอะไรแค่ 1 Unit ครับ

ตัวอย่าง Source Code ของ Package นี้

package HOSxPDeveloperPackageTest;

{$R *.res}
{$ALIGN 8}
{$ASSERTIONS ON}
{$BOOLEVAL OFF}
{$DEBUGINFO ON}
{$EXTENDEDSYNTAX ON}
{$IMPORTEDDATA ON}
{$IOCHECKS ON}
{$LOCALSYMBOLS ON}
{$LONGSTRINGS ON}
{$OPENSTRINGS ON}
{$OPTIMIZATION ON}
{$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF}
{$REFERENCEINFO ON}
{$SAFEDIVIDE OFF}
{$STACKFRAMES OFF}
{$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON}
{$WRITEABLECONST OFF}
{$MINENUMSIZE 1}
{$IMAGEBASE $400000}
{$IMPLICITBUILD ON}

requires
  rtl,
  vcl;

contains
  HOSxPDeveloperTestUnit in 'HOSxPDeveloperPackageTest\HOSxPDeveloperTestUnit.pas' {HOSxPDeveloperTestForm};

end.

405
Development / Re: การพัฒนาระบบ HOSxP Addon Package ใน HOSxP XE 4.0
« เมื่อ: พฤษภาคม 31, 2013, 11:19:40 AM »
การที่จะบอกให้ HOSxP XE ทำการ Load Development Package ที่เราพัฒนาขึ้นมาเองนั้น ตอนนี้ทำได้ ด้วยการสร้าง file ชื่อ developer_package_list.txt  ไว้ที่ Folder เดียวกับ Application นะครับ โดยใส่ชื่อ package ที่เราต้องการให้ Load ไว้ในไฟล์นี้  ตามตัวอย่างนี้ครับ


ในตัวอย่างเราบอกให้ load package ชื่อ HOSxPDeveloperPackageTest.bpl นะครับ

406
Development / การพัฒนาระบบ HOSxP Addon Package ใน HOSxP XE 4.0
« เมื่อ: พฤษภาคม 31, 2013, 11:13:37 AM »
ช่วงนี้ผมกำลัง port ระบบจาก HOSxP 3.0 ไปเป็น HOSxP XE 4.0  ตอนนี้ทำถึงส่วน Core Development Package ก็เลยมี แนวทางการพัฒนาระบบเสริมใน HOSxP XE มานำเสนอครับ

หลายๆ ท่านที่ได้อบรม Delphi หรือ มีพื้นฐาน Delphi มาแล้ว คงจะต้องชอบแน่ๆ ครับ เพราะโปรแกรมที่ท่านพัฒนาจะสามารถมาอยู่ใน Application เดียวกันกับ HOSxP ได้เลย เพียงแต่เวลา compile ต้องเลือก Compile แบบ Package

มาดูวิธีการกำหนดค่ากันนะครับ

ตอนนี้ตัวเลือกจะอยู่ที่หน้าจอกำหนดค่าการเชื่อมต่อระบบ นะครับ ให้เลือกเปิดใช้งาน Development Package เอาไว้

407
HOSxP PCU / Re: ปัญหา export F43 v.3.56.5.7
« เมื่อ: พฤษภาคม 29, 2013, 19:45:01 PM »
ผมแก้ไขให้แล้วครับใน 3.56.5.29

408
ผมแก้ให้แล้วครับใน 5.3

410
ผมตรวจสอบให้แล้ว โปรแกรมจะแสดงหน้าต่างเตือนทุกครั้งที่เปลี่ยน HN ใหม่นะครับ ถ้า HN คนนั้นมีข้อมูลการแพ้ยาที่ถูกบันทึกเอาไว้อยู่

411
ฝากตรวจสอบหน้าจอบันทึกข้อมูลว่าได้เลือกไม่ต้องเตือนการแพ้เอาไว้หรือเปล่าครับ

412
ฝากทดสอบใน version 5.2 นะครับ

413
Development / Re: เตรียมพบกับระบบ EMS ตัวใหม่ใน HOSxP ครับ
« เมื่อ: พฤษภาคม 29, 2013, 17:40:46 PM »
Download ทดสอบได้นะครับ พัฒนาโดยใช้ core ของ HOSxP XE 4.0

แนะนำให้ตั้งค่าไปที่ฐานข้อมูลทดสอบนะครับ แล้วกดปุ่ม Upgrade structure ที่เมนูของโปรแกรมได้เลย จะใช้ Structure รุ่นล่าสุดที่อยู่บน cloud ครับ


414
ใช้หน้าจอไหนจ่ายยาครับ capture หน้าจอส่งเข้ามาด้วยครับ

415
Development / เตรียมพบกับระบบ EMS ตัวใหม่ใน HOSxP ครับ
« เมื่อ: พฤษภาคม 29, 2013, 17:12:58 PM »
ระบบนี้ถูกพัฒนาด้วยความร่วมมือกับสถาบันการแพทย์ฉุกเฉินแห่งชาติ เพื่อช่วยให้การรับส่งข้อมูลเป็นไปได้อย่างสะดวกและมีประสิทธิภาพกว่าเดิมครับ

416
HOSxP for iPhone / iPad / iHOSxP-HD 1.3 ออกแล้วนะครับ
« เมื่อ: พฤษภาคม 29, 2013, 17:06:21 PM »
 มีอะไรใหม่ในเวอร์ชัน 1.3

แม่วัยรุ่น

- หน้าประวัติของแม่ตั้งครรภ์ สามารถแก้ไข สถานะปัจจุบัน และวันที่พบแพทย์ครั้งแรก
- เพิ่ม ประวัติการแท้งบุตร
- เพิ่ม ประวัติการได้รับยาบำรุง
- แก้ไขการเยี่ยมทั้งก่อนและหลังคลอด เพิ่มทีมผู้เยี่ยม , แยกปัญหาในการเยี่ยม สามารถเพิ่มได้,เพิ่มการบันทึก ผลตรวจร่างกาย

ผู้ป่วยจิตเวช

- เพิ่มประวัติการคัดกรองอาการ ดังนี้ คัดกรองซึมเศร้า คัดกรองความวิตกกังวล คัดกรองความเครียด คัดกรองอาการทางจิต และคัดกรองความสุขคนไทย
- เพิ่มและแก้ไข รายการยาประจำตัว การวินิจฉัย และกลุ่มโรคย่อยจิตเวข
- เพิ่มประวัติญาติผู้ดูแล
- บันทึกการเยี่ยมบ้าน พิ่มการบันทึก ผลตรวจร่างกาย

ระบบมะเร็ง

- ปรับปรุงหน้าจอทะเบียนมะเร็งให้สามารถบันทึก และแก้ไขข้อมูลได้
- ปรับปรุงหน้าจอการเยี่ยมบ้าน
- เพิ่มหน้าจอ การบันทึกผล vital sign ขณะออกเยี่ยมบ้านได้
- เพิ่มหน้าจอบันทึกทีมเยี่ยมบ้าน ให้สามารถเพิ่ม และแก้ไขได้
- เพิ่มหน้าจอบันทึกแบบประเมิน pain score ให้สามารถเพิ่ม และแก้ไขได้
- เพิ่มหน้าจอบันทึกการให้คำแนะนำ ให้สามารถเพิ่ม และแก้ไขได้

ระบบผู้ป่วยระยะสุดท้าย

- ปรับปรุงหน้าจอทะเบียนผู้ป่วยระยะสุดท้ายให้สามารถบันทึก และแก้ไขข้อมูลได้
- ปรับปรุงหน้าจอเยี่ยมบ้าน
- เพิ่มหน้าจอ การบันทึกผล vital sign ขณะออกเยี่ยมบ้านได้
- เพิ่มหน้าจอบันทึกทีมเยี่ยมบ้าน ให้สามารถเพิ่ม และแก้ไขได้
- เพิ่มหน้าจอบันทึกอุปกรณ์ติดตัวขณะเยี่ยมบ้าน ให้สามารถเพิ่ม และแก้ไขได้
- เพิ่มหน้าจอบันทึกยาระงับอาการขณะเยี่ยมบ้าน ให้สามารถเพิ่ม และแก้ไขได้
- เพิ่มหน้าจอบันทึกยาที่พบที่บ้าน ขณะเยี่ยมบ้านได้
- เพิ่มหน้าจอบันทึกแบบประเมิน pain score ให้สามารถเพิ่ม และแก้ไขได้
- เพิ่มหน้าจอบันทึกแบบประเมินความพึงพอใจ ให้สามารถเพิ่ม และแก้ไขได้
- เพิ่มหน้าจอบันทึกการให้คำแนะนำ ให้สามารถเพิ่ม และแก้ไขได้

ระบบผู้ป่วยวัณโรค

- ปรับปรุงระบบหน้าทะเบียนให้สามารถแก้ไขได้
- ปรับปรุงระบบหน้ารายการยาประจำตัวได้ให้สามารถเพิ่มและแก้ไขได้
- ปรับปรุงระบบหน้ารายการวินิจฉัยโรคเรื้อรังให้สามารถเพิ่มและแก้ไขได้
- ปรับปรุงระบบหน้ารายการทีมเยี่ยมบ้านให้สามารถเพิ่มและแก้ไขได้
- ปรับปรุงระบบหน้าผลการตรวจร่างกายให้สามารถบันทึกและแก้ไขได้

ผู้สูงอายุ

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

ผู้พิการ

-ปรับปรุงหน้าจอรายการยาประจำตัวผู้พิการให้สามารถเพิ่มบันทึกแก้ไขได้
-ปรับปรุงหน้าจอวินิจฉัยโรคผู้พิการให้สามารถเพิ่มบันทึกแก้ไขได้
-ปรับปรุงหน้าจอผู้ดูแลผู้พิการให้สามารถบันทึกแก้ไขได้
-ปรับปรุงหน้าจอกายอุปกรณ์ผู้พิการให้สามารถบันทึกแก้ไขได้
-ปรับปรุงหน้าจอเยี่ยมบ้านด้วยการเพิ่ม หน้าจอตรวจร่างกายให้สามารถเพิ่มบันทึกแก้ไขได้
-ปรับปรุงหน้าจอผู้เยี่ยมผู้พิการให้สามารถเพิ่มบันทึกแก้ไขได้

417
ทำไมต้องทำ 2 ครั้งด้วยครับ

418
เป็นโปรแกรมอะไรเหรอครับ เพิ่งจะเคยได้ยิน

419
ที่มา ระบบบันทึกข้อมูลภาวะโภชนาการ บัญชี 2/3

ข้อมูล A จำนวนเด็กส่วนสูงระดับดีและรูปร่างสมส่วน

select count(distinct person_id) from person where person_id in

(

select distinct p1.person_id
from person p1,person_wbc p2,person_wbc_nutrition p3
where p1.person_id = p2.person_id
and p2.person_wbc_id = p3.person_wbc_id
and p3.bmi_level = 3
and p3.height_level >= 3
and p1.in_region = 'Y'
and p1.birthdate between 'yyyy-mm-dd1' and 'yyyy-mm-dd2'

union

select distinct p1.person_id
from person p1,person_epi p2,person_epi_nutrition p3
where p1.person_id = p2.person_id
and p2.person_epi_id = p3.person_epi_id
and p3.bmi_level = 3
and p3.height_level >= 3
and p1.in_region = 'Y'
and p1.birthdate between 'yyyy-mm-dd1' and 'yyyy-mm-dd2'

)


ข้อมูล B จำนวนเด็กที่ชั่งน้ำหนักและวัดส่วนสูงทั้งหมด

select count(distinct person_id) from person where person_id in

(

select distinct p1.person_id
from person p1,person_wbc p2,person_wbc_nutrition p3
where p1.person_id = p2.person_id
and p2.person_wbc_id = p3.person_wbc_id
and p1.in_region = 'Y'
and p1.birthdate between 'yyyy-mm-dd1' and 'yyyy-mm-dd2'

union

select distinct p1.person_id
from person p1,person_epi p2,person_epi_nutrition p3
where p1.person_id = p2.person_id
and p2.person_epi_id = p3.person_epi_id
and p1.in_region = 'Y'
and p1.birthdate between 'yyyy-mm-dd1' and 'yyyy-mm-dd2'

)

420
ถ้ามันขึ้นแบบนี้ผมคิดว่าเตรียมเปลี่ยน HDD ได้เลยครับ เพราะถ้ามันขึ้นบ่อยๆ ก็แสดงว่า HDD ใกล้พังแล้วครับ Innodb Engine มัน sensitive มากกับ HDD ที่ไม่ดีนะครับ

ถ้า Boot เข้า single user ได้ ก็ copy /var/lib/mysql และ /etc/my.cnf เอาไปลอง run ในเครื่องอื่นดูนะครับ

421
การเขียน SQL Script / Re: จำนวนโอพีดีการ์ด
« เมื่อ: เมษายน 03, 2013, 13:08:12 PM »
ดูตรงไหนครับว่ามีการซักประวัติซื้อบุหรี่

422
เกิดจากห้อง Lab ไปบันทึกซ้ำน่ะครับ ถ้าขึ้น LIS-ERROR แล้วห้ามบันทึกซ้ำครับ ให้ปิดหน้าจอไปเลย

423
Rap จะมีเฉพาะใน Enterprise edition นะครับ

424
ผมกำลังแก้ให้ใหม่แล้ว จะฝากปลาส่งไปให้นะครับ

425
คือ ยากลับบ้านมันเป็นใบสั่งยาผู้ป่วยในครับ แต่หน้าจอที่แสดง มันแสดงรายการ opd visit ก็เลยยังดึงมาไม่ได้ไงครับ ต้องรอปรับหน้าจอนี้ให้เอารายการยา ipd กลับบ้านมาแสดงในอีก tab ด้วย

426
กิ๊ก เดี๋ยวมีอีกหลายคนอาสาไปจะยุ่งนะ  :D
ตอนนี้ผมกำลัง Monitor server inventory ที่ตากอยู่ กำลัง งง ว่ามัน Lock ได้ยังไง

427
ขอ call stack ด้วยครับ ทดสอบใน 3.56.4.1 แล้วยังเป็นอยู่หรือเปล่าครับ

428
เห็นกิ๊กยุ่งๆ ก็เลยช่วยน่ะ  8)

431
ข้อมูล A1 จำนวนเด็กอายุครบ 1 ปี ที่อยู่อาศัยในพื้นที่ในงวดรายงานนั้น ที่ได้รับวัคซีน BCG

select count(distinct p1.person_id )
from person p1,person_wbc p2,person_wbc_service p3,person_wbc_vaccine_detail p4,wbc_vaccine p5
where p1.person_id = p2.person_id
and p2.person_wbc_id = p3.person_wbc_id
and p3.person_wbc_service_id = p4.person_wbc_service_id
and p4.wbc_vaccine_id = p5.wbc_vaccine_id
and p5.wbc_vaccine_code = 'BCG'
and p2.discharge = 'Y'
and p1.in_region = 'Y'
and p1.birthdate between 'yyyy-mm-dd1' and 'yyyy-mm-dd2'


ข้อมูล A2 จำนวนเด็กอายุครบ 1 ปี ที่อยู่อาศัยในพื้นที่ในงวดรายงานนั้น ที่ได้รับวัคซีน DTP-HB3

select count(distinct p1.person_id )
from person p1,person_wbc p2,person_wbc_service p3,person_wbc_vaccine_detail p4,wbc_vaccine p5
where p1.person_id = p2.person_id
and p2.person_wbc_id = p3.person_wbc_id
and p3.person_wbc_service_id = p4.person_wbc_service_id
and p4.wbc_vaccine_id = p5.wbc_vaccine_id
and p5.wbc_vaccine_code in ('DTPHB3','DTP3','HBV3')
and p2.discharge = 'Y'
and p1.in_region = 'Y'
and p1.birthdate between 'yyyy-mm-dd1' and 'yyyy-mm-dd2'


ข้อมูล A3 จำนวนเด็กอายุครบ 1 ปี ที่อยู่อาศัยในพื้นที่ในงวดรายงานนั้น ที่ได้รับวัคซีน OPV3

select count(distinct p1.person_id )
from person p1,person_wbc p2,person_wbc_service p3,person_wbc_vaccine_detail p4,wbc_vaccine p5
where p1.person_id = p2.person_id
and p2.person_wbc_id = p3.person_wbc_id
and p3.person_wbc_service_id = p4.person_wbc_service_id
and p4.wbc_vaccine_id = p5.wbc_vaccine_id
and p5.wbc_vaccine_code = 'OPV3'
and p2.discharge = 'Y'
and p1.in_region = 'Y'
and p1.birthdate between 'yyyy-mm-dd1' and 'yyyy-mm-dd2'


ข้อมูล A4 จำนวนเด็กอายุครบ 2 ปี ที่อยู่อาศัยในพื้นที่ในงวดรายงานนั้น ที่ได้รับวัคซีน DTP4
select  count(distinct p1.person_id )
from person p1,person_epi p2,person_epi_vaccine p3,person_epi_vaccine_list p4,epi_vaccine p5
where p1.person_id = p2.person_id
and p2.person_epi_id = p3.person_epi_id
and p3.person_epi_vaccine_id = p4.person_epi_vaccine_id
and p4.epi_vaccine_id = p5.epi_vaccine_id
and p5.vaccine_code = 'DTP4'
and p2.discharge = 'Y'
and p1.in_region = 'Y'
and p1.birthdate between 'yyyy-mm-dd1' and 'yyyy-mm-dd2'


ข้อมูล A5 จำนวนเด็กอายุครบ 2 ปี ที่อยู่อาศัยในพื้นที่ในงวดรายงานนั้น ที่ได้รับวัคซีน OPV4
select  count(distinct p1.person_id )
from person p1,person_epi p2,person_epi_vaccine p3,person_epi_vaccine_list p4,epi_vaccine p5
where p1.person_id = p2.person_id
and p2.person_epi_id = p3.person_epi_id
and p3.person_epi_vaccine_id = p4.person_epi_vaccine_id
and p4.epi_vaccine_id = p5.epi_vaccine_id
and p5.vaccine_code = 'OPV4'
and p2.discharge = 'Y'
and p1.in_region = 'Y'
and p1.birthdate between 'yyyy-mm-dd1' and 'yyyy-mm-dd2'


ข้อมูล A6 จำนวนเด็กอายุครบ 2 ปี ที่อยู่อาศัยในพื้นที่ในงวดรายงานนั้น ที่ได้รับวัคซีน JE2
select  count(distinct p1.person_id )
from person p1,person_epi p2,person_epi_vaccine p3,person_epi_vaccine_list p4,epi_vaccine p5
where p1.person_id = p2.person_id
and p2.person_epi_id = p3.person_epi_id
and p3.person_epi_vaccine_id = p4.person_epi_vaccine_id
and p4.epi_vaccine_id = p5.epi_vaccine_id
and p5.vaccine_code = 'JE2'
and p2.discharge = 'Y'
and p1.in_region = 'Y'
and p1.birthdate between 'yyyy-mm-dd1' and 'yyyy-mm-dd2'



ข้อมูล B  จำนวนเด็กอายุครบ 1 ปี ที่อยู่อาศัยในพื้นที่ในงวดรายงานนั้น

select count(distinct p1.person_id )
from person p1,person_wbc p2
where p1.person_id = p2.person_id
and p2.discharge = 'Y'
and p1.in_region = 'Y'
and p1.birthdate between 'yyyy-mm-dd1' and 'yyyy-mm-dd2'

432
ที่มา บัญชี 3 (แก้ไข d1 - d2 ให้ย้อนหลัง 1 ปี)

ข้อมูล A จำนวนเด็กอายุครบ 1 ปี ที่อยู่อาศัยในพื้นที่ในงวดรายงานนั้น ที่ได้รับวัคซีนป้องกันโรคหัด

select count(distinct p1.person_id )
from person p1,person_wbc p2,person_wbc_service p3,person_wbc_vaccine_detail p4,wbc_vaccine p5
where p1.person_id = p2.person_id
and p2.person_wbc_id = p3.person_wbc_id
and p3.person_wbc_service_id = p4.person_wbc_service_id
and p4.wbc_vaccine_id = p5.wbc_vaccine_id
and p5.wbc_vaccine_code like '%MEAS%'
and p2.discharge = 'Y'
and p1.in_region = 'Y'
and p1.birthdate between 'yyyy-mm-dd1' and 'yyyy-mm-dd2'


ข้อมูล B  จำนวนเด็กอายุครบ 1 ปี ที่อยู่อาศัยในพื้นที่ในงวดรายงานนั้น

select count(distinct p1.person_id )
from person p1,person_wbc p2
where p1.person_id = p2.person_id
and p2.discharge = 'Y'
and p1.in_region = 'Y'
and p1.birthdate between 'yyyy-mm-dd1' and 'yyyy-mm-dd2'

433
ที่มา : บัญชี 3

ข้อมูล A จำนวนทารกแรกเกิดจนถึงอายุต่ำกว่า 6 เดือนในเขตรับผิดชอบ ที่กินนมแม่อย่างเดียว

select count(p1.person_id) as person_count
from person p1,person_wbc p2 , person_wbc_service p3,vn_stat v1
where p1.person_id = p2.person_id
and p2.person_wbc_id = p3.person_wbc_id
and p3.wbc_breast_feed_type_id in (6,7)
and p1.in_region = 'Y'
and p3.vn = v1.vn
and p3.vn <> ''
and v1.age_y =  0
and v1.age_m < 6
and p3.service_date between 'yyyy-mm-dd1' and 'yyyy-mm-dd2'


ข้อมูล B จำนวนทารกแรกเกิดจนถึงอายุต่ำกว่า 6 เดือนในเขตรับผิดชอบทั้งหมดในช่วงเวลาเดียวกัน (ที่มีการมารับบริการ)

select count(p1.person_id) as person_count
from person p1,person_wbc p2 , person_wbc_service p3,vn_stat v1
where p1.person_id = p2.person_id
and p2.person_wbc_id = p3.person_wbc_id
and p1.in_region = 'Y'
and p3.vn = v1.vn
and p3.vn <> ''
and v1.age_y = 0
and v1.age_m < 6
and p3.service_date between 'yyyy-mm-dd1' and 'yyyy-mm-dd2'


 

434
ที่มา บัญชี 2

ข้อมูล A จำนวนมารดาหลังคลอดได้รับการดูแลครบ 3 ครั้งตามเกณฑ์ ในเวลาที่กำหนด


select count(distinct p1.person_anc_id) from person_anc p1,person p2
where p1.person_id = p2.person_id

and p1.person_anc_id in (select person_anc_id from person_anc_preg_care where
person_anc_preg_care.person_anc_id = p1.person_anc_id and
person_anc_preg_care.preg_care_number = 1 and datediff(person_anc_preg_care.care_date,p1.labor_date) <= 7)

and p1.person_anc_id in (select person_anc_id from person_anc_preg_care where
person_anc_preg_care.person_anc_id = p1.person_anc_id and
person_anc_preg_care.preg_care_number = 2 and datediff(person_anc_preg_care.care_date,p1.labor_date) between 8 and 15 )

and p1.person_anc_id in (select person_anc_id from person_anc_preg_care where
person_anc_preg_care.person_anc_id = p1.person_anc_id and
person_anc_preg_care.preg_care_number = 3 and datediff(person_anc_preg_care.care_date,p1.labor_date) between 16 and 42 )

and p1.labor_date between 'yyyy-mm-dd1' and 'yyyy-mm-dd2'
and p1.labor_hospcode = 'xxxxx'


ข้อมูล B จำนวนมารดาที่คลอดในช่วงเวลาเดียวกัน


select count(distinct p1.person_anc_id) from person_anc p1,person p2
where p1.person_id = p2.person_id

and p1.labor_date between 'yyyy-mm-dd1' and 'yyyy-mm-dd2'
and p1.labor_hospcode = 'xxxxx'



435
ที่มา บัญชี 2  ก่อนทำรายงานนี้ต้องหาก่อนนะครับว่ายาเม็ดเสริมไอโอดีนในบัญชียาของโรงพยาบาลมีรหัสอะไรบ้าง แล้วนำมาใส่ใน icode_list ครับ เช่น   o1.icode in ('1000001','1000002','1000003')

ข้อมูล A จำนวนหญิงตั้งครรภ์ที่ได้รับยาเม็ดเสริมไอโอดีน

select count(distinct p2.person_id) from person_anc p1,person p2,person_anc_service p3,opitemrece o1
where p1.person_id = p2.person_id and p1.person_anc_id = p3.person_anc_id
and p3.anc_service_date between 'yyyy-mm-dd1' and 'yyyy-mm-dd2'
and p3.vn<>'' and p3.vn = o1.vn and o1.icode in (icode_list)


ข้อมูล B จำนวนหญิงตั้งครรภ์ที่มารับบริการ

select count(distinct p2.person_id) from person_anc p1,person p2,person_anc_service p3
where p1.person_id = p2.person_id and p1.person_anc_id = p3.person_anc_id
and p3.anc_service_date between 'yyyy-mm-dd1' and 'yyyy-mm-dd2'
and p3.vn<>''

436
ที่มา : บัญชี 2

ข้อมูล A จำนวนหญิงคลอดที่มีประวัติได้รับการดูแลก่อนคลอดครบทั้ง 5 ครั้งตามเกณฑ์

select count(distinct p1.person_anc_id) from person_anc p1,person p2
where p1.person_id = p2.person_id

and p1.person_anc_id in (select person_anc_id from person_anc_service where
person_anc_service.person_anc_id = p1.person_anc_id and
person_anc_service.anc_service_number = 1 and person_anc_service.pa_week <= 12)

and p1.person_anc_id in (select person_anc_id from person_anc_service where
person_anc_service.person_anc_id = p1.person_anc_id and
person_anc_service.anc_service_number = 2 and person_anc_service.pa_week between 16 and 20)

and p1.person_anc_id in (select person_anc_id from person_anc_service where
person_anc_service.person_anc_id = p1.person_anc_id and
person_anc_service.anc_service_number = 3 and person_anc_service.pa_week between 24 and 28)

and p1.person_anc_id in (select person_anc_id from person_anc_service where
person_anc_service.person_anc_id = p1.person_anc_id and
person_anc_service.anc_service_number = 4 and person_anc_service.pa_week between 30 and 34)


and p1.person_anc_id in (select person_anc_id from person_anc_service where
person_anc_service.person_anc_id = p1.person_anc_id and
person_anc_service.anc_service_number = 5 and person_anc_service.pa_week between 36 and 40)

and p1.labor_date between 'yyyy-mm-dd1' and 'yyyy-mm-dd2'
and p1.labor_hospcode = 'xxxxx'


ข้อมูล B จำนวนหญิงคลอดในรอบ 6 เดือน หรือ 12 เดือน (กำหนดโดยใช้วันที่คลอด labor_date นะครับ และกำหนด labor_hospcode = รหัส 5 หลักของหน่วยบริการตัวเองครับ)

select count(distinct p1.person_anc_id) from person_anc p1,person p2
where p1.person_id = p2.person_id

and p1.labor_date between 'yyyy-mm-dd1' and 'yyyy-mm-dd2'
and p1.labor_hospcode = 'xxxxx'

437
ข้อนี้เงื่อนไขบางตัวต้องเข้าไปประเมินจึงจะหาได้ครับ

438
เช่นเดียวกับข้อ 4 ครับ เป็นการนับจำนวน โรงพยาบาล

439
ที่มา : บัญชี 2 เนื่องจากตัวชี้วัดข้อนี้ ใช้นับจำนวนโรงพยาบาล ซึ่งรายละเอียดตามเงื่อนไขข้อ 1,5,6 ยังไม่สามารถนับจากฐานข้อมูลได้ต้องใช้วิธีประเมิน จึงขอข้ามไปนะครับ

440
ที่มา เนื่องจากในโปรแกรมสามารถบันทึกข้อมูลได้ 2 จุด คือที่หน้าจอบันทึกข้อมูลการคลอดของห้องคลอด และหน้าจอบันทึกข้อมูลฝากครรภ์  แต่ดูจากข้อมูลผมเข้าใจว่าเป็นการประเมินการทำงานของงานส่งเสริมสุขภาพ ไม่ใช่งานห้องคลอด จึงคิดว่าน่าจะนำมาจากข้อมูลบัญชี 2 แต่ปัญหาก็คือ ในตัวชี้วัดไม่ได้บอกว่าเอาเฉพาะผู้ป่วยในเขตรับผิดชอบหรือทุกคนที่มารับบริการฝากครรภ์ ซึ่งหากต้องการเฉพาะในเขตก็ให้กำหนดเงื่อนไขเพิ่มนะครับ

ข้อมูล  A จำนวนหญิงตั้งครรภ์ฝากครรภ์ครั้งแรกในสถานบริการสาธารณสุข อายุครรภ์ก่อนหรือเท่ากับ 12 สัปดาห์

select count(distinct p3.person_anc_service_id) from person_anc p1,person p2, person_anc_service p3
where p1.person_id = p2.person_id
and p1.person_anc_id = p3.person_anc_id
and p3.anc_service_number = 1 and p3.pa_week <= 12
and p1.anc_register_date between 'yyyy-mm-dd1' and 'yyyy-mm-dd2'


ข้อมูล B จำนวนของหญิงตั้งครรภ์ฝากครรภ์ครั้งแรกในสถานบริการสาธารณสุข

select count(distinct p3.person_anc_service_id) from person_anc p1,person p2, person_anc_service p3
where p1.person_id = p2.person_id
and p1.person_anc_id = p3.person_anc_id
and p3.anc_service_number = 1
and p1.anc_register_date between 'yyyy-mm-dd1' and 'yyyy-mm-dd2'

441
ข้อมูล A จำนวนทารกแรกเกิดที่ Apgar Score 1 นาที น้อยกว่า หรือเท่ากับ 7 จะหาได้จากคำสั่ง

select count(i5.ipt_labour_infant_id) as cc
from ipt_labour_complication i1,ipt_labour i2,ipt i3, ipt_pregnancy i4,ipt_labour_infant i5
where i1.labour_complication_id = 9 and
i1.ipt_labour_id = i2.ipt_labour_id
and i5.ipt_labour_id = i2.ipt_labour_id
and i5.infant_dchstts in ('04','05') and i5.apgar_score_min1 <= 7
and i2.an = i3.an and i3.an = i4.an and i4.deliver_type in (1,2)
and i3.dchdate between 'yyyy-mm-dd1' and 'yyyy-mm-dd2'



ข้อมูล B จำนวนทารกเกิดมีชีพทั้งหมด จะหาได้จากคำสั่ง

select count(i5.ipt_labour_infant_id) as cc
from ipt_labour_complication i1,ipt_labour i2,ipt i3, ipt_pregnancy i4,ipt_labour_infant i5
where i1.labour_complication_id = 9 and
i1.ipt_labour_id = i2.ipt_labour_id
and i5.ipt_labour_id = i2.ipt_labour_id
and i5.infant_dchstts in ('04','05')
and i2.an = i3.an and i3.an = i4.an and i4.deliver_type in (1,2)
and i3.dchdate between 'yyyy-mm-dd1' and 'yyyy-mm-dd2'

442
ที่มา : หน้าจอบันทึกข้อมูลการคลอด

443
บันทึกข้อมูลจากระบบบันทึกข้อมูลผู้ป่วยคลอดบุตร (IPD) ให้สมบูรณ์ โดยเฉพาะข้อมูลภาวะแทรกซ้อนหลังคลอด

รายการข้อมูล A (จำนวนหญิงตั้งครรภ์ที่มีภาวะตกเลือดหลังคลอด) จะหาได้จากคำสั่ง

select count(i1.ipt_labour_id) as cc
from ipt_labour_complication i1,ipt_labour i2,ipt i3, ipt_pregnancy i4
where i1.labour_complication_id = 9 and
i1.ipt_labour_id = i2.ipt_labour_id
and i2.an = i3.an and i3.an = i4.an and i4.deliver_type in (1,2)
and i3.dchdate between 'yyyy-mm-dd1' and 'yyyy-mm-dd2'


รายการข้อมูล B (จำนวนการคลอดทั้งหมด) จะหาได้จากคำสั่ง


select count(i2.an) as cc
from ipt_pregnancy i1,ipt_labour i2,ipt i3
where i1.an = i3.an and i1.an = i2.an and i2.an = i3.an
and i1.deliver_type in (1,2)
and i3.dchdate between 'yyyy-mm-dd1' and 'yyyy-mm-dd2'



yyyy-mm-dd 1 คือวันที่เริ่มต้นของข้อมูล
yyyy-mm-dd 2 คือวันที่สิ้นสุดของข้อมูล  (ช่วงเวลา 6 เดือน)

444
ที่มาของข้อมูลที่แนะนำ : ระบบบันทึกข้อมูลผู้ป่วยคลอด ถึงแม้ทางกระทรวงจะแนะนำให้ใช้ ICD10 เป็นตัวติดตามรายงาน แต่ในระบบ HOSxP มีการบันทึกข้อมูลในหน้าจอผู้ป่วยคลอดบุตรแล้ว ทาง BMS แนะนำให้บันทึกข้อมูลตามหน้าจอดังนี้ครับ

445
เนื่องจากทางกระทรวงสาธารณสุขได้มีการกำหนดตัวชี้วัดการดำเนินงานพัฒนาสุขภาพขึ้นมา 66 ตัว ผมจึงขอใช้กลุ่มย่อยนี้เพื่ออธิบายถึงแนวทางการนำข้อมูลจากระบบ HOSxP มาใช้งานตามตัวชี้วัดแต่ละตัวเพื่อให้ทุก รพ. เข้าใจถึงการบันทึกข้อมูลและการนำข้อมูลมาใช้ตามตัวชี้วัดนะครับ

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

446
มันจะชอบมาตอนดึกๆ น่ะครับ เนื่องจาก smf ที่เราใช้ตอนนี้เป็น version 1 มีช่องโหว่ให้บุกรุกเข้ามา post ได้โดยไม่ต้องสมัครสมาชิก จริงๆ ผมเปลี่ยนเป็น version 2 แล้วแต่ติดปัญหาตรงการ integrate กับ joomla 2.5 ก็เลยรอไว้ก่อน ช่วงที่รอการ Upgrade เป็น smf2 ผมตั้งเวลาให้ลบ spam ทุก 1 ชั่วโมง คิดว่าต่อไปนี้คงจะมี spam post น้อยลงแล้วนะครับ

ช่วยกันแผ่เมตตาให้เค้าเยอะๆ นะครับ จะได้ไม่มารบกวนอีก

447
หาเครื่องมาทำเป็น Firewall กั้นระหว่าง Server กับ Client ครับ

ตัวอย่าง

Client   192.168.1.x / 24  --> Gateway  192.168.1.254 (firewall)

Firewall มี 2 IP Address (192.168.1.254/24 และ 192.168.10.254/24)

Server 192.168.10.1 / 24 ใช้ Network ตรงกับ Firewall

448
การ restore จาก xtrabackup จะไปทับฐานข้อมูลเดิมทั้งหมดนะครับ

450
เพิ่มให้แล้วครับใน 3.56.3.19

หน้า: 1 ... 7 8 [9] 10 11 ... 171