พฤษภาคม 2024
จ. อ. พ. พฤ. ศ. ส. อา.
« มี.ค.    
 12345
6789101112
13141516171819
20212223242526
2728293031  
พฤษภาคม 2024
จ. อ. พ. พฤ. ศ. ส. อา.
« มี.ค.    
 12345
6789101112
13141516171819
20212223242526
2728293031  

TIP! HOSXP

สร้างตาราง เพื่อส่งออก 43 แฟ้มในกรณีที่ Error

CREATE table f43_repo_list (table_name VARCHAR(200) not null PRIMARY key);

ตารางใน hosxp เกี่ยวกับ Risk Management

หน่วยงาน = select * from hospital_department

ความรุนแรง = select * from risk_level

เชื่อมโยงโปรแกรม = select * from risk_relation_program

รายงาน = select * from risk_report

GFR แยก 5 state

select p.sex,p.age_y,o.hba1c,o.bw,o.bmi,round(o.creatinine_kidney_percent,2),o.creatinine,
round(
(case when p.sex=1 then (((140-p.age_y)*o.bw)/(72*o.creatinine))
else (((140-p.age_y)*o.bw*0.85)/(72*o.creatinine)) end),2)as GFR_CKD_EPI
,
round(if(p.sex=1,(((140-p.age_y)*o.bw)/(72*o.creatinine)),(((140-p.age_y)*o.bw*0.85)/(72*o.creatinine))),2)as K,

(case when if(p.sex=1,(((140-p.age_y)*o.bw)/(72*o.creatinine)),
((140-p.age_y)*o.bw*0.85)/(72*o.creatinine))>89 then ‘ STATE 1’
when if(p.sex=1,(((140-p.age_y)*o.bw)/(72*o.creatinine)),
((140-p.age_y)*o.bw*0.85)/(72*o.creatinine)) between ‘60.00’ and ‘89.999’ then ‘ STATE 2’
when if(p.sex=1,(((140-p.age_y)*o.bw)/(72*o.creatinine)),
((140-p.age_y)*o.bw*0.85)/(72*o.creatinine)) between ‘30.00’ and ‘59.999’ then ‘ STATE 3’
when if(p.sex=1,(((140-p.age_y)*o.bw)/(72*o.creatinine)) ,
((140-p.age_y)*o.bw*0.85)/(72*o.creatinine)) between ‘15.00’ and ‘29.99’ then ‘ STATE 4’
when if(p.sex=1,(((140-p.age_y)*o.bw)/(72*o.creatinine)),
((140-p.age_y)*o.bw*0.85)/(72*o.creatinine)) between ‘0.01’ and ‘14.999’ then ‘ STATE 5’
else ‘error massage’ end)as KK,

c.clinic,concat(v.pdx,’ ‘,v.dx0,’ ‘,v.dx1,’ ‘,v.dx2,’ ‘,v.dx3,’ ‘,v.dx4,’ ‘,v.dx5)as diag,ROUND(o.bmi,2)as BMI,
(case when o.creatinine_kidney_percent>=90 then ‘1’
when o.creatinine_kidney_percent between ‘60.00’ and ‘89.999’ then ‘2’
when o.creatinine_kidney_percent between ‘30.00’ and ‘59.999’ then ‘3’
when o.creatinine_kidney_percent between ‘15.00’ and ‘29.999’ then ‘4’
when o.creatinine_kidney_percent<=15 then ‘5’
else ‘error massage’ end)as GFR,

o.creatinine_kidney_percent,o.vn,o.hn,o.vstdate,o.vsttime,o.cc,o.symptom,
p.cid,concat(p.pname,p.fname,’ ‘,p.lname)as name,(case when p.sex=’1’ then ‘ชาย’ else ‘หญิง’ end) as sex,
p.age_y
from opdscreen o
left join person p on p.patient_hn=o.hn
left join vn_stat v on v.vn=o.vn
left join clinicmember c on c.hn=o.hn
where (((o.vstdate between ‘2015-10-01’ and ‘2015-12-31’)
and (o.creatinine_kidney_percent is not null and o.creatinine_kidney_percent<>”0.00″) and o.creatinine<>0.00)
and ((v.pdx between”e100″ and “e149″
or v.dx0 between”e100” and “e149″
or v.dx1 between”e100” and “e149″
or v.dx2 between”e100” and “e149″
or v.dx3 between”e100” and “e149″
or v.dx4 between”e100” and “e149″
or v.dx5 between”e100” and “e149″) or
(v.pdx between”i10” and “i152″
or v.dx0 between”i10” and “i152″
or v.dx1 between”i10” and “i152″
or v.dx2 between”i10” and “i152″
or v.dx3 between”i10” and “i152″
or v.dx4 between”i10” and “i152″
or v.dx5 between”i10” and “i152”)))
and o.hba1c is not null

group by o.hn desc
order by KK,o.hba1c asc

ดึงรายงาน REFER

**************REFER*******************
————–OUT———–ส่งออกจาก รพ.—————-
++++HOSXP++++++++++++
select month(refer_date),YEAR(refer_date),count(*) from referout
where refer_date between ‘2015-12-01’ and ‘2017-09-31’
group by month(refer_date),YEAR(refer_date)
ORDER BY year(refer_date),month(refer_date)
++++THAI REFER+++++++++
select month(refer_date),YEAR(refer_date),count(*) from referout
where refer_date between ‘2015-12-01’ and ‘2017-09-31’
group by month(refer_date),YEAR(refer_date)
ORDER BY year(refer_date),month(refer_date)

————–IN————–รับเข้าจาก รพ.สต.——————
++++HOSXP++++++++++++
select month(refer_date),YEAR(refer_date),count(*) from referin
where (refer_date between ‘2015-12-01’ and ‘2017-09-31’)
and (refer_hospcode in (‘00277′,’03139′,’03140′,’03141′,’03142′,’03144′,’03145′,’03146′,’03147′,’03148′,’13852’) )
group by month(refer_date),YEAR(refer_date)
ORDER BY year(refer_date),month(refer_date)
+++++++++THAI REFER+++++++++
select month(refer_date),YEAR(refer_date),count(*) from referback
where refer_hospcode in (‘00277′,’03139′,’03140′,’03141′,’03142′,’03144′,’03145′,’03146′,’03147′,’03148′,’13852’)
and (refer_date between ‘2015-12-01’ and ‘2017-09-31’)
group by month(refer_date),YEAR(refer_date)
ORDER BY year(refer_date),month(refer_date)

————-BACK———–รับเข้าจาก รพ.อื่นๆ ที่ไม่ใช่ รพ.สต.——–
++++HOSXP++++++++++++
select month(refer_date),YEAR(refer_date),count(*) from referin
where (refer_date between ‘2015-12-01’ and ‘2017-09-31’)
and (refer_hospcode not in (‘00277′,’03139′,’03140′,’03141′,’03142′,’03144′,’03145′,’03146′,’03147′,’03148′,’13852’) )
group by month(refer_date),YEAR(refer_date)
ORDER BY year(refer_date),month(refer_date)
++++THAI REFER+++++++++
select month(refer_date),YEAR(refer_date),count(*) from referback
where refer_hospcode not in (‘00277′,’03139′,’03140′,’03141′,’03142′,’03144′,’03145′,’03146′,’03147′,’03148′,’13852’)
and (refer_date between ‘2015-12-01’ and ‘2017-09-31’)
group by month(refer_date),YEAR(refer_date)
ORDER BY year(refer_date),month(refer_date)

CKD พี่ดา

select group_concat(i.icode)as drugitems,o.hn,o.bps,o.bpd,o.hba1c,v.vstdate,
(case when o.bps<=130 and o.bpd<=80 then ‘bp น้อยกว่า130/80’ else null end)as bpStat,
(case when o.hba1c<7 then ‘hba1c น้อยกว่า 7’ else null end)as hba1cStat,
(case when (v.pdx between ‘n083’ and ‘n189’)
and (((v.dx0 not between ‘e109’ and ‘e119’) and (v.dx0 not between ‘i10’ and ‘i152’))
and ((v.dx1 not between ‘e109’ and ‘e119’) and (v.dx1 not between ‘i10’ and ‘i152’))
and ((v.dx2 not between ‘e109’ and ‘e119’) and (v.dx2 not between ‘i10’ and ‘i152’))
and ((v.dx3 not between ‘e109’ and ‘e119’) and (v.dx3 not between ‘i10’ and ‘i152’))
and ((v.dx4 not between ‘e109’ and ‘e119’) and (v.dx4 not between ‘i10’ and ‘i152’))
and ((v.dx5 not between ‘e109’ and ‘e119’) and (v.dx5 not between ‘i10’ and ‘i152’)))
then ‘diag_N’ end)as diag,
(case when (v.pdx between ‘n083’ and ‘n189’) and
((v.dx0 between ‘e109’ and ‘e119’)
and ((v.dx1 not between ‘i10’ and ‘i152’)
and (v.dx2 not between ‘i10’ and ‘i152’)
and (v.dx3 not between ‘i10’ and ‘i152’)
and (v.dx4 not between ‘i10’ and ‘i152’)
and (v.dx5 not between ‘i10’ and ‘i152’))
) or (v.pdx between ‘n083’ and ‘n189’) and
((v.dx1 between ‘e109’ and ‘e119’)
and ((v.dx0 not between ‘i10’ and ‘i152’)
and (v.dx2 not between ‘i10’ and ‘i152’)
and (v.dx3 not between ‘i10’ and ‘i152’)
and (v.dx4 not between ‘i10’ and ‘i152’)
and (v.dx5 not between ‘i10’ and ‘i152’))
) or (v.pdx between ‘n083’ and ‘n189’) and
((v.dx2 between ‘e109’ and ‘e119’)
and ((v.dx0 not between ‘i10’ and ‘i152’)
and (v.dx1 not between ‘i10’ and ‘i152’)
and (v.dx3 not between ‘i10’ and ‘i152’)
and (v.dx4 not between ‘i10’ and ‘i152’)
and (v.dx5 not between ‘i10’ and ‘i152’))
) or (v.pdx between ‘n083’ and ‘n189’) and
((v.dx3 between ‘e109’ and ‘e119’)
and ((v.dx0 not between ‘i10’ and ‘i152’)
and (v.dx2 not between ‘i10’ and ‘i152’)
and (v.dx1 not between ‘i10’ and ‘i152’)
and (v.dx4 not between ‘i10’ and ‘i152’)
and (v.dx5 not between ‘i10’ and ‘i152’))
) or (v.pdx between ‘n083’ and ‘n189’) and
((v.dx4 between ‘e109’ and ‘e119’)
and ((v.dx0 not between ‘i10’ and ‘i152’)
and (v.dx2 not between ‘i10’ and ‘i152’)
and (v.dx3 not between ‘i10’ and ‘i152’)
and (v.dx1 not between ‘i10’ and ‘i152’)
and (v.dx5 not between ‘i10’ and ‘i152’))
) or (v.pdx between ‘n083’ and ‘n189’) and
((v.dx5 between ‘e109’ and ‘e119’)
and ((v.dx0 not between ‘i10’ and ‘i152’)
and (v.dx2 not between ‘i10’ and ‘i152’)
and (v.dx3 not between ‘i10’ and ‘i152’)
and (v.dx4 not between ‘i10’ and ‘i152’)
and (v.dx1 not between ‘i10’ and ‘i152’))
)
then ‘N+E’ end)as pdxNE,

(case when (v.pdx between ‘n083’ and ‘n189’) and
((v.dx0 between ‘i10’ and ‘i152’)
and ((v.dx1 not between ‘e109’ and ‘e119’)
and (v.dx2 not between ‘e109’ and ‘e119’)
and (v.dx3 not between ‘e109’ and ‘e119’)
and (v.dx4 not between ‘e109’ and ‘e119’)
and (v.dx5 not between ‘e109’ and ‘e119’))
) or (v.pdx between ‘n083’ and ‘n189’) and
((v.dx1 between ‘i10’ and ‘i152’)
and ((v.dx0 not between ‘e109’ and ‘e119’)
and (v.dx2 not between ‘e109’ and ‘e119’)
and (v.dx3 not between ‘e109’ and ‘e119’)
and (v.dx4 not between ‘e109’ and ‘e119’)
and (v.dx5 not between ‘e109’ and ‘e119’))
) or (v.pdx between ‘n083’ and ‘n189’) and
((v.dx2 between ‘i10’ and ‘i152’)
and ((v.dx0 not between ‘e109’ and ‘e119’)
and (v.dx1 not between ‘e109’ and ‘e119’)
and (v.dx3 not between ‘e109’ and ‘e119’)
and (v.dx4 not between ‘e109’ and ‘e119’)
and (v.dx5 not between ‘e109’ and ‘e119’))
) or (v.pdx between ‘n083’ and ‘n189’) and
((v.dx3 between ‘i10’ and ‘i152’)
and ((v.dx0 not between ‘e109’ and ‘e119’)
and (v.dx2 not between ‘e109’ and ‘e119’)
and (v.dx1 not between ‘e109’ and ‘e119’)
and (v.dx4 not between ‘e109’ and ‘e119’)
and (v.dx5 not between ‘e109’ and ‘e119’))
) or (v.pdx between ‘n083’ and ‘n189’) and
((v.dx4 between ‘i10’ and ‘i152’)
and ((v.dx0 not between ‘e109’ and ‘e119’)
and (v.dx2 not between ‘e109’ and ‘e119’)
and (v.dx3 not between ‘e109’ and ‘e119’)
and (v.dx1 not between ‘e109’ and ‘e119’)
and (v.dx5 not between ‘e109’ and ‘e119’))
) or (v.pdx between ‘n083’ and ‘n189’) and
((v.dx5 between ‘i10’ and ‘i152’)
and ((v.dx0 not between ‘e109’ and ‘e119’)
and (v.dx2 not between ‘e109’ and ‘e119’)
and (v.dx3 not between ‘e109’ and ‘e119’)
and (v.dx4 not between ‘e109’ and ‘e119’)
and (v.dx1 not between ‘e109’ and ‘e119’))
)
then ‘N+i’ end)as pdxNi,

v.pdx,v.dx0,v.dx1,v.dx2,v.dx3,v.dx4,v.dx5
from vn_stat v
left join opdscreen o on o.vn=v.vn
left join opitemrece i on i.vn=o.vn and i.icode in (‘1550040′,’1550128’)
where (v.vstdate between ‘2012-10-01’ and ‘2016-12-31’)
and ((v.pdx between ‘n083’ and ‘n189’)
or (v.dx0 between ‘n083’ and ‘n189’) or (v.dx1 between ‘n083’ and ‘n189’)
or (v.dx2 between ‘n083’ and ‘n189’) or (v.dx3 between ‘n083’ and ‘n189’)
or (v.dx4 between ‘n083’ and ‘n189’) or (v.dx5 between ‘n083’ and ‘n189’))
group by v.vn

สรุปรายแผนกไม่มีผลการวินิจฉัย diag ว่าง

select /* p.cid,o.pt_subtype,v.pdx,o.vn,o.hn,concat(p.pname,p.fname,’ ‘,p.lname)as Uname,
o.an,o.vstdate,o.doctor,d.name as dr,
r.send_from_depcode,
r.send_to_depcode,k1.department,
r.send_to_spclty,
o.spclty,s.name,o.last_dep,k.department,os.hpi,os.symptom,os.cc,o.rcpt_disease
*/ count(*),k1.department,s.name
from ovst o
left join spclty s on s.spclty=o.spclty
left join vn_stat v on v.vn=o.vn
left join opdscreen os on os.vn=o.vn
left join kskdepartment k on k.depcode=o.last_dep
left join patient p on p.hn=o.hn
left join doctor d on d.code=o.doctor
left join opd_regist_sendlist r on r.vn=o.vn
left join kskdepartment k1 on k1.depcode=r.send_to_depcode
where (o.vstdate between ‘2016-01-01’ and ‘2016-01-16′) and (o.spclty not in (’03’))
and (v.pdx is null or v.pdx=”)
group by s.name,k1.department
order by r.send_to_depcode

 

 

—————————————————————-
select k1.department,s.name,group_concat(distinct o.hn),o.vstdate,count(distinct o.hn)as ‘ÃÒÂ’,os.cc,group_concat(k2.department)as a
from ovst o
left join spclty s on s.spclty=o.spclty
left join vn_stat v on v.vn=o.vn
left join opdscreen os on os.vn=o.vn
left join kskdepartment k on k.depcode=o.last_dep
left join patient p on p.hn=o.hn
left join doctor d on d.code=o.doctor
left join opd_regist_sendlist r on r.vn=o.vn
left join kskdepartment k1 on k1.depcode=r.send_to_depcode
left join ptdepart de on de.vn=o.vn
left join kskdepartment k2 on k2.depcode=de.depcode
where (o.vstdate between ‘2016-02-01’ and ‘2016-02-29′) and (o.spclty not in (’03’))
and (v.pdx is null or v.pdx=”)
group by o.vn,s.name,k.department
order by r.send_to_depcode

ปรับคนไข้ เป็น สิทธิ ค้างชำระเพื่อเบิกค่าใช้จ่าย

select * from opitemrece
where hn=000101213
and vstdate=’2016-01-10′

 

ปรับ  paidst =02

my.ini conifg

[mysqld]
skip-locking
skip-innodb
query_cache_limit=1M
query_cache_size=32M
query_cache_type=1
max_connections=500
interactive_timeout=100
wait_timeout=100
connect_timeout=10
thread_cache_size=128
key_buffer=16M
join_buffer=1M
max_allowed_packet=16M
table_cache=1024
record_buffer=1M
sort_buffer_size=2M
read_buffer_size=2M
max_connect_errors=10
# Try number of CPU’s*2 for thread_concurrency
thread_concurrency=2
myisam_sort_buffer_size=64M
log-bin
server-id=1

[safe_mysqld]
err-log=/var/log/mysqld.log
open_files_limit=8192

[mysqldump]
quick
max_allowed_packet=16M

[mysql]
no-auto-rehash
#safe-updates

[isamchk]
key_buffer=64M
sort_buffer=64M
read_buffer=16M
write_buffer=16M

[myisamchk]
key_buffer=64M
sort_buffer=64M
read_buffer=16M
write_buffer=16M

[mysqlhotcopy]
interactive-timeout

 

ที่มา : http://www.idatabase.in.th/2008/11/23/optimize-mysql

บริการทันตกรรม แยกผู้รับบริการ

select m.doctor,d.name,t.code,t.name,m.vn,m.hn,count(m.vn) as vn_count ,sum(m.tcount) as t_count , sum(m.scount) as s_count
from dttm t
left outer join dtmain m on m.tmcode=t.code and m.vstdate between ‘2015-10-01’ and ‘2015-10-01’
left join doctor d on d.code=m.doctor
group by m.doctor,m.vn,m.hn,t.code,t.name

แก้ปัญหา diagnosis_opd กรณี diag ไม่มีใน person

kkk

ตรวจสอบ vn_stat  ตาม hn เช็ค วันรับบริการ เชื่อมกับ ovstdiag ดูวันที่รับบริการว่าตรงกันหรือไม่