งานนำเสนอ PowerPoint

Download Report

Transcript งานนำเสนอ PowerPoint

HoMC Report &
Form Design
INFO-D Software Co.,Ltd.
Topics
SQL, HoMC Database, Database Component
SQL (Structured Query Language)
สร้างคาสั่ งในการสื บคนข
้ ลตาม
้ อมู
โครงสราง
้
HoMCDatabase โดยใช้คาสั่ งทีไ
่ ดจาก
SQL
้
HoMC Database
HRF
อมู
ล
โครงสรางฐานข
้
้
เครือข่ ายในโรงพยาบาล
ฐานข้ อมูล
Server
จอภาพ PC ณ จุดต่ างๆ
อม
โครงสรางฐานข
้
้
ฐานขอมู
้ ล
HN
NAME
AREA
DATE
1
กัญจนา
สุพรรณบุร ี
28/10/2546
2
พูนผล
สุรนิ ทร์
28/10/2546
HoMC Database
ระบบ HoMC ประกอบดวยตารางข
อมู
้
้ ล 2 ประเภท
Master Table Data เป็ นตารางทีเ่ ก็บขอมู
้ ลประเภททีไ่ มมี
่
การเปลีย
่ นแปลงบอยๆ
หรือเป็ นขอมู
่ ามาร
่
้ ลทีส
เช่นขอมู
์ านาหน้านาม,ประ
้ ลจังหวัด,อาเภอ,แพทย,ค
ประวัตผ
ิ ป
ู้ ่ วย
เป็ นตน
้
Transaction Table Data เป็ นตารางทีเ่ ก็บขอมู
้ ลทีเ่ ป็ นความ
่ รากฎ เช่น
เคลือ
่ นไหว เกิดขอมู
้ ลตามกิจกรรมทีป
ติดตอรั
บเงิน , การทาชันสูต
่ กษา,การจายยา,การรั
่
HoMC Database
HN
NAME
1
กัญจ
นานผล
พู
2
AREA
1.Master Patient
1
2
AREACODE
1
2
AREANAME
สุพรร
สุ
รน
ิ รทร
ณบุ
ี ์
HN
DATE
1
28/10/2546
2
28/10/2546
2.Master Area
3.Transaction Patient
Topic # 1
SQL
(Structured Query Language)
คาสั่ งทีใ่ ช้ในการเรียกดูและปรับปรุงขอมู
้ ล
(Data manipulation Language)
• SELECT คาสั่ งในการเรียกดูขอมู
้ ล
• INSERT คาสั่ งสาหรับเพิม
่ ขอมู
้ ลลง
ในตาราง
• UPDATE คาสั่ งสาหรับแกไขข
อมู
้
้ ล
ขอบเขตการทางาน
1.ใช้คาสั่ ง SQL สื บคนข
้ อมู
้ ลจาก 1
2.นาคาสั่ งทีไ่ ด้ นาเสนอในรูปแบบ HR
3.ใช้คาสั่ ง SQL สื บคนข
้ อมู
้ ลจากมากก
SQL (Structured Query Language)
SELECT Statement
( สาหรับเรียกดูขอมู
้ ลจากหนึ่งตารางหรือหลาย
ตาราง )
SELECT select_list
FROM table_source
[ WHERE search_condition ]
[ GROUP BY group_by_expression ]
[ HAVING search_condition ]
[ ORDER BY order_expression [ ASC | DESC ] ]
ภายใต้ Where สามารถกาหนดเงือ
่ นไขได้ 3
รูปแบบ คือ
1. Comparison test: เปรียบเทียบ ใช้
=,<>,<,>,<=,>=
SQL (Structured Query Language)
SELECT Statement
Exam.
1. Select * From AREA
2. Select * From PATIENT
Where hn = ‘ 100’
3. Select PATIENT.firstName,PATIENT.lastName
From PATIENT
Where hn between ‘ 100’ and ‘ 200’
4. Select PATIENT.firstName,PATIENT.lastName
From PATIENT
Where hn >=‘ 100000’
SQL (Structured Query Language)
SELECT Statement
Exam.
5. Select * From AREA
WHERE areaName LIKE ‘ก’
6. Select * From AREA
WHERE areaName IN [กรุงเทพ,ระยอง]
7. Select P.firstName,P.lastName ,P.sex,P.birthday
From PATIENT P
Where P.hn between ‘ 100’ and ‘ 200’
Topic # 2
HRF
( HomcReport & Form Design )
HRF ( HomcReport & Form Design )
เกีย
่ วกับ Fast Report
แนะนา HOMC FastReport
วิธก
ี ารใช้งาน HOMC
FastReport
รูจั
้ ก Query Database
วิธก
ี ารใชังาน FastReport
การสราง
Query ภายใน
้
การนาเขา/ส
้ ่ งออกขอมู
้ ล
HRF ( HomcReport & Form Design )
About Fast Report
ในปี 1998, Alexander Tzyganenko หัวหน้าเทคโนโลยี
สารสนเทศไดพั
FastReport
รวมทัง้
้ ฒนาโปรแกรม
โปรแกรม applications, libraries และโปรแกรม add-ons
ตาง
่ ๆ สาหรับทารายงาน โดยไดใช
้ ้หลักการและเทคนิคใน
เขียนโปรแกรม ReportWriter สาหรับ Delphi โดยเฉพาะ
และเป็ นเอกลักษณเฉพาะตั
วของ FastReport ซึง่ ถือวาเป็
่ น
์
ความสาเร็จอันยิง่ ใหญส
ั กาลังเริม
่ กอตั
ในปี
่ าหรับบริษท
่ ง้
2001, FastReport ไดรั
้ บรางวัล "Best Reporting Tool"
ของนิตยสาร Delphi Informant Magazine
FastReport
ไดพยายามที
จ
่ ะปรับปรุงโปรแกรม
้
FastReport
อยางสม
า่ เสมอและมีความภูมใิ จทีจ
่ ะพัฒนา
่
Software นี้ให้เป็ นโปรแกรม ReportWriter ทีส
่ มบูรณแบบ
์
FastReport สามารถทางานกับ Borland Delphi 2-7,
Borland C++Builder 1-6 และ Borland Kylix 1,2
ปัจจุบน
ั
FastReport ทางานไดบน Borland RAD
HRF ( HomcReport & Form Design )
1
2
ประกอบดวย
้
1. หน้าตางทางด
านซ
่ ของ Form และ
่
้
้ายจะแสดงรายชือ
Report ซึง่ เราสามารถ
ทีจ
่ ะเลือกประเภททีต
่ ้องการดูรหัสไดเช
้ ่ น แบบฟอรม
์
หรือรายงานเป็ นตน
้ และยังสามารถจะค้นหาตามรหัส
ของรายงานไดอี
้ กดวย
้ นอกจากนี้ยงั สามารถใช้ปุ่ม
HRF ( HomcReport & Form Design )
การสราง
้ Form&Report
1
2
4
3
5
6
1. รหัสของ Form หรือ Report
2. ชือ
่ Form หรือ
Report
3. ชือ
่ ระบบงาน เช่น PAYM
4. ประเภทสิ่ งทีจ
่ ะ
สราง
้ (แบบฟอรม
์ หรือ รายงาน
5. Query เลือก Query ทีต
่ องการซึ
ง่ เป็ น Query หลัก
้
ของ Form หรือ Report นี้
HRF ( HomcReport & Form Design )
FastReport (Designer)
HRF ( HomcReport & Form Design )
Query Database
Query Database เป็ น Tool ทีท
่ างบริษท
ั ฯ ไดจั
้
้ ดทาขึน
เพือ
่ ให้สามารถทางาน
เกีย
่ วกับ Query และการประมวลผลเกีย
่ วกับ Database
1
ได้
3
2
HRF ( HomcReport & Form Design )
Query Database
Query DB : HOMC FastReport สามารถสราง
้
และเก็บ Query
ทีต
่ องการไว
ใน
้
้ Database โปรแกรมจะ
แสดง Query โดยแยกเป็ น
Query ของแบบฟอรม
์
Query ของDatabase
วิธก
ี ารสราง
Embeded Query
้
Query ของระบบ
• ปุ่ม New เมือ
่ ตองการสร
าง
้
้ Embeded Query ใหม่
• เลือกประเภทของ Query แบบฟอรมหรื
อรายงาน
์
• พิมพระบบ,
ชือ
่ , คาอธิบาย
์
• พิมพ ์ Query แลวกดปุ
้
่ ม Write
HRF ( HomcReport & Form Design )
SQL Editor
ผู้ใช้งานสามารถทีจ
่ ะทดสอบ Query พรอมทั
ง้ โปรแกรมจะแสด
้
HRF ( HomcReport & Form Design )
SQL Editor
การทดสอบการทางานของQuery โดย SQL Editor
กดปุ่ม Open และ Prepare จากนนั้นโปรแกรมจะทาการแสดงข
นอกจากนี้แลว
่ ู Field และ
้ SQL Editor ยังสามารถทีด
Uniquekey ของแตละ
่
HRF ( HomcReport & Form Design )
วิธก
ี ารใช้งาน FastReport
เมือ
่ ทาการสราง
้ Form หรือ Report ใหม่ กดปุ่ม
Design แลวโปรแกรมจะเปิ
ดหน้า Design ของ
้
1
FastReport
2
3
HRF ( HomcReport & Form Design )
วิธก
ี ารใช้งาน FastReport
ในบางกรณี Form หรือ Report จาเป็ นทีจ
่ ะตองการใช
้
้งาน
Query มากกวา่ 1 Query
(นอกเหนือจาก Query หลัก (Embeded Query))ผู้ใช้สามารถ
สราง Query ภายใน Form
HRF ( HomcReport & Form Design )
การสราง
้ Query ภายใน Form
1
2
HRF ( HomcReport & Form Design )
ความแตกตางระหว
าง
่
่ Embeded Query
และ Query ภายใน
เนื่องจาก Query ทัง้ สองประเภท ลักษณะของ
การทางานและการเรียกใช้งานเหมือนกันแต่
แตกตางกั
นตรงที่ Embeded Query เป็ น Query
่
หลักทีท
่ ุก From หรือ ทุก Report สามารถดูและ
เรียกใช้ได้ แต่ Query ภายใน Form จะสามารถใช้
งานไดเฉพาะภายใน
Form นั้น ๆ เทานั
้
่ ้น
HRF ( HomcReport & Form Design )
การนาเขา/
้
ส่งออก
Export
เลือกชือ
่ Fom & Report
คลิ
ทีต
่ ก
องการ
้ เมาส์ ขวา จะมีเมนู Export จากนั้นเลือกที่
เก็บแฟ้มขอมู
้ ล โปรแกรมจะสราง
้
HRF ( HomcReport & Form Design )
การนาเขา/
้
ส่งออก
Import
คลิกทีป
่ ่ม
ุ Ex/Import หา File HCQUERY.cds และ HCRPTF.cds ทีเ่ ก
คลิกทีป
่ ่ม
ุ Import >Save
Query ทีถ
่ ก
ู ใช้ใน Form หรือ Report จะถูก
Ex/Import มาดวยเสมอ
้
SQL (Structured Query Language)
JOIN & LEFT JOIN
(สาหรับเรียกดูขอมู
้ ลจากหลายตาราง )
Table A
100
200
300
วริศรา
ปิ ยะดา
สกุลณี
Table B
บุญเพ็ง
น้าใจดี
รักรุง่
200
300
ปิ ยะดา
สกุลณี
น้าใจดี
รักรุง่
SQL (Structured Query Language)
JOIN & LEFT JOIN
(สาหรับเรียกดูขอมู
้ ลจากหลายตาราง )
Table A
100
200
300
วริศรา
ปิ ยะดา
สกุลณี
Table B
บุญเพ็ง
น้าใจดี
รักรุง่
JOIN
200
300
ปิ ยะดา
สกุลณี
200
300
ปิ ยะดา
สกุลณี
น้าใจดี
รักรุง่
น้าใจดี
รักรุง่
SQL (Structured Query Language)
JOIN & LEFT JOIN
(สาหรับเรียกดูขอมู
้ ลจากหลายตาราง )
Table A
100
200
300
วริศรา
ปิ ยะดา
สกุลณี
Table B
บุญเพ็ง
น้าใจดี
รักรุง่
LEFT JOIN
100
200
300
วริศรา
ปิ ยะดา
สกุลณี
200
300
ปิ ยะดา
สกุลณี
บุญเพ็ง
น้าใจดี
รักรุง่
น้าใจดี
รักรุง่
SQL (Structured Query Language)
SELECT Statement
Exam.
1.
Select P.firstName,P.lastName ,P.sex,P.birthday
,T.titleName
From PATIENT P
LEFT JOIN PTITLE T on T.titleCode=P.titleCode
Where P.hn between ‘ 100’ and ‘ 200’
2.
Select P.firstName,P.lastName ,P.sex,P.birthday
,T.titleName
From PATIENT P
JOIN PTITLE T on T.titleCode=P.titleCode
Where P.hn between ‘ 100’ and ‘ 200’
Topic # 3
HoMC Database
HoMC Database
ระบบ HoMC ประกอบดวยตารางข
อมู
้
้ ล 2 ประเภท
Master Table Data เป็ นตารางทีเ่ ก็บขอมู
้ ลประเภททีไ่ มมี
่
การเปลีย
่ นแปลงบอยๆ
หรือเป็ นขอมู
่ ามาร
่
้ ลทีส
เช่นขอมู
์ านาหน้านาม,ประ
้ ลจังหวัด,อาเภอ,แพทย,ค
ประวัตผ
ิ ป
ู้ ่ วย
เป็ นตน
้
Transaction Table Data เป็ นตารางทีเ่ ก็บขอมู
้ ลทีเ่ ป็ นความ
่ รากฎ เช่น
เคลือ
่ นไหว เกิดขอมู
้ ลตามกิจกรรมทีป
ติดตอรั
บเงิน , การทาชันสูต
่ กษา,การจายยา,การรั
่
HoMC Database
HoMC จัดกลุมตารางข
อมู
่ ารทางานห
่
้ ลโดยอาศัยหน้าทีก
เพือ
่ ความงายต
อการท
าความเขาใจและเรี
ยกใช้ ดังนี้
่
่
้
1. กลุมลงทะเบี
ยนตรวจรักษาผูป
่
้ ่ วยนอก
2. กลุมชั
่ นสูตร
3. กลุมรั
่ งสี
4. กลุมห
่ ้องจายยา
่
น
5. กลุมการเงิ
่
เป็ นตน
้
HoMC Database
กลุมลงทะเบี
ยนตรวจรักษาผูป
่
้ ่ วยนอก
1.
2.
3.
4.
5.
6.
Register
CardOut - CardIn
Diag
Appoint
Borrow
Admission / Transfer / Discharge
Resister
PATIENT
OPD_H
PTITLE
BILL_H
PATSS
AREA,REGION,
TAMBON
DEPTQ_D
HoMC Database
Borrow
PATIENT
OPD_H
CARDBRW
Admission / Transfer / Discharge
PATIENT
OPD_H
IPD_H
RESIDENT
HoMC Database
CardOut / CardIn
PATIENT
OPD_H
Diag
PATIENT
OPD_H
PATHIS_H
PATDIAG
Appoint
PATIENT
APPOINT
APPOINT_D
HoMC Database
กลุมชั
่ นสูตร
1.
2.
3.
4.
Request
Confirm
Input Result
Authorize
Request Lab
DEPTQ_D
LABCON
PATRXDET
LABREQ_H
IPD_H
LABREQ_D
BILL_H
BILL_D
HoMC Database
Confirm Lab
Update lconfirm=Y
Input Result
LABCON
LABREQ_H
LABRES_D
LRES_D2
LABRES_M
LABREQ_D
Authorize
Update authFlag,authUser,authDatetime
HoMC Database
กลุมรั
่ งสี
1. Request
2. Input Result
Request
DEPTQ_D
XCON
PATRXDET
XREQ_H
IPD_H
XREQ_D
BILL_H
XHIS_D
BILL_D
HoMC Database
Input Result
XCON
XFILMHIS
XREQ_H
XREQ_D
XRESHIS
HoMC Database
กลุมห
่ ้องจายยา
่
1. จายยาผู
ป
่
้ ่ วย
2. Request
3. Confirm
จายยาผู
่
้ป่วย
DEPTQ_D
IPD_H
INVCON
MEDLOG_H
MEDLOG
PATMED
PATRXDET
BILL_H
BILL_D
HoMC Database
Request
DEPTQ_D
INVRCON
PATRXDET
INVREQ_H
IPD_H
INVREQ_D
Confirm
INFREQ_H
INFREQ_D
PATMED
INVCON
MEDLOG_H
MEDLOG
BILL_H
BILL_D
HoMC Database
กลุมการเงิ
น
่
1.
Payment
RCASHIER
RFCON
UPDATE
CSESSION
RECEIPTH
RECEIPTD
RPAYMENT
BILL_H
BILL_D
HoMC Database
สื บคนรายชื
อ
่ ผูป
้
้ ่ วยลงทะเบียนในวันนี้
select *
from Deptq_d D
where D.qDateIn between '25461101' and '25461124'
select D.qDateIn,D.hn,D.regNo,D.deptCode
,D.qTimeIn,D.docCode
from Deptq_d D
where D.qDateIn between '25461101' and '25461124'
and qStatus<>'3‘
order by deptCode
HoMC Database
1. สื บคนรายชื
อ
่ ผูป
้
้ ่ วยลงทะเบียนในวันนี้
select D.qDateIn,D.hn,D.regNo,D.deptCode
,D.qTimeIn,D.docCode
,P.firstName,P.lastName
from Deptq_d D
left join PATIENT P on P.hn=D.hn
where D.qDateIn between '25461101' and '25461124'
and qStatus<>'3‘
order by deptCode
HoMC Database
1. สื บคนรายชื
อ
่ ผูป
้
้ ่ วยลงทะเบียนในวันนี้
select D.qDateIn,D.hn,D.regNo,D.deptCode
,D.qTimeIn,D.docCode
,P.firstName,P.lastName,T.titleName
from Deptq_d D
left join PATIENT P on P.hn=D.hn
left join PTITLE T on T.titleCode = P.titleCode
where D.qDateIn between '25461101' and '25461124'
and qStatus<>'3‘
order by deptCode
HoMC Database
1. สื บคนรายชื
อ
่ ผูป
้
้ ่ วยลงทะเบียนในวันนี้
select D.qDateIn,D.hn,D.regNo,D.deptCode
,D.qTimeIn,D.docCode
,P.firstName,P.lastName,T.titleName
,C.docName,C.docLName
from Deptq_d D
left join PATIENT P on P.hn=D.hn
left join PTITLE T on T.titleCode = P.titleCode
left join DOCC C on C.docCode=D.docCode
where D.qDateIn between '25461101' and '25461124'
and qStatus<>'3‘
order by deptCode
HoMC Database
2. นับจานวนผูป
้ ่ วยลงทะเบียนแยกแผนกรายวัน
select D.deptCode,P.deptDesc,count(D.hn)
from Deptq_d D
left join DEPT P on P.deptCode = D.deptCode
where D.qDateIn between '25461101' and '25461110‘
and qStatus<>'3'
group by D.deptCode,P.deptDesc
order by D.deptCode
HoMC Database
3. ผูป
้ ่ วยลงทะเบียนรายวันจาแนกตามสิ ทธิ
select B.useDrg,P.pay_typedes,O.hn,O.regNo
,PT.firstName,PT.lastName
,T.titleName
from OPD_H O
left join Bill_h B on B.hn=O.hn and B.regNo=O.regNo
left join Paytype P on P.pay_typecode=B.useDrg
left join PATIENT PT on PT.hn=O.hn
left join PTITLE T on T.titleCode=PT.titleCode
where O.registDate between '25460101' and '25460110'
order by useDrg
HoMC Database
3. นับจานวน ผูป
้ ่ วยลงทะเบียนรายวันจาแนกตามสิ ทธ
select count(B.useDrg),B.useDrg,P.pay_typedes
from OPD_H O
left join Bill_h B on B.hn=O.hn and B.regNo=O.regNo
left join Paytype P on P.pay_typecode=B.useDrg
where O.registDate between '25460101' and '25460110'
group by B.useDrg,P.pay_typedes
order by B.useDrg
HoMC Database
4. สื บคนรายการชั
นสูตรทีข
่ อทาในวันนี้
้
แสดง เลขทีค
่ าขอ,HN,ชือ
่ ,รายการชันสูตรทีข
่ อ
ทselect
า,ราคา
req_no,d.hn,lab_type ,lab_prc
,d.lab_code,d.lab_name,t.titleName,p.firstName
,p.lastName
from Labreq_d d
left join PATIENT p on p.hn=d.hn
left join PTITLE t on t.titleCode=p.titleCode
where date between '25460101' and '25460130'
and (reverse_flag='' or reverse_flag is null)
HoMC Database
5. สื บคนรายการยาที
จ
่ ายให
้
่
้ผูป
้ ่ วยใน
วันนี้แยกเป็ นผูป
้ ่ วยนอก/ใน
select inv_type
asล
float))as
แสดง,inv_code,m.name,sum(cast(quant
ชือ
่ ยา,จานวนทีจ
่ าย,มู
คาที
่ Squant
่
่
,sum(cast(amount as float)) as Samount
าย
จfrom
่ Med_log l
left join Med_inv m on m.code=l.inv_code and m.site='1'
where l.date between '25460101' and '25460130'
and action_code='I'
and inv_type='M'
and l.site='I1'
and l.sysID='INV'
and (revFlag ='' or revFlag is null)
group by inv_type,inv_code,name
order by inv_code
HoMC Database
6. สื บคนยอดเงิ
นทีร่ บ
ั ชาระจากผูป
้
้ ่ วยในวันนี้ แยกเป็ น
แสดง ประเภทเงินทีร่ บ
ั ,มูลคาเงิ
ั
่ นทีร่ บ
select p.PayTypeCode,t.pay_typedes
,sum(convert(float,p.Amount)) as SAmount
from ReceiptH h
left join Rpayment p on p.RecpHID=h.RecpHID
left join Paytype t on t.pay_typecode=p.PayTypeCode
where RecpDate between '25460101' and '25460130'
and (CancelFlag<>'Y' or CancelFlag is null)
and RecpStatusFlag='I'
group by p.PayTypeCode,t.pay_typedes
order by PayTypeCode
HoMC Database
7. สื บคนค
การจากผูป
้ าบริ
่
้ ่ วยแยกตามแผนก และรหัสค
ในช่วงวันทีท
่ ก
ี่ าหนด
(รวมทีย
่ งั ไมได
่ ช
้ าระ)
select serviceUnit,ward_name,charge_code,charge_des
,sum(convert(float,amount))
from Bill_d
left join Ward on Ward.ward_id=Bill_d.serviceUnit
where date between '25460101' and '25460130'
and (reverseFlag='' or reverseFlag is null) and ioflag='I'
group by serviceUnit,ward_name,charge_code,charge_des
order by serviceUnit,charge_code
HoMC Database
7. สื บคนค
การจากผูป
้ าบริ
่
้ ่ วยแยกตามแผนก และรหัสค
ในช่วงวันทีท
่ ก
ี่ าหนด
(รวมทีย
่ งั ไมได
่ ช
้ าระ)
select serviceUnit,deptDesc,charge_code,charge_des
,sum(convert(float,amount))
from Bill_d
left join DEPT on DEPT.deptCode=Bill_d.serviceUnit
where date between '25460101' and '25460130'
and (reverseFlag='' or reverseFlag is null)and ioflag='I'
group by serviceUnit,deptDesc,charge_code,charge_des
order by serviceUnit,charge_code
HoMC Database
9. สื บคนรายชื
อ
่ ผูป
้
้ ่ วยในตามวอรด
์
จาแนก
จาหน่ายแลว
้ / ยังไมจ
่ าหน่าย
Select I.hn,I.regist_flag,I.ward_id,w.ward_name
,t.titleName, p.firstName,p.lastName
From Ipd_h I
Left join Ward w on w.ward_id=I.ward_id
Left join PATIENT p on p.hn=I.hn
Left join PTITLE t on t.titleCode=p.titleCode
Where I.discharge_status=‘0’
Where I.ward_id=‘ICU’
HoMC Database
10. นับจานวนวันนอนทัง้ หมดในแตละสิ
ทธิการรักษา
่
select sum(cast(vsubstring(discharge_date,5,6)
||'/'||vsubstring(discharge_date,7,8)||'/'||
vsubstring(discharge_date,1,4) as date)Cast(vsubstring(admit_date,5,6) ||'/'||vsubstring(admit_date,7,8)||'/'||
vsubstring(admit_date,1,4) as date)) ,B.useDrg
from Ipd_h I
left join Bill_h B on B.hn=I.hn and B.regNo=I.regist_flag
where discharge_date ='25450510'
group by B.useDrg
order by B.useDrg