รพจศ

วันพฤหัสบดีที่ 24 ธันวาคม พ.ศ. 2558

ปัญหาการดึงคนไข้มาคีย์แล้วดึงไม่ได้

พี่: น้องไอทีพี่ดึงคนไข้มาแก้ไขมาเพิ่มไม่ได้ ดูให้หน่อย แต่ก่อนเคยคีย์ได้
ไอที: สักครู่ครับ
จากปัญหานี้เมื่อไปที่หน้าจอบันทึกของHOSXP จะมีปัญหา ผู้ใช้งานเปิดหน้าค้างไว้เช่น ER

แล้วผู้ป่วยมาตรวจรักษาโรคทั่วไปที่แผนกอื่น แล้วเจ้าหน้าที่จำทำการแก้ไขรายการในผู้ป่วยแผนกอื่น แต่จะทำการเลือกผ่านการคีย์HN จากหน้างานERเลย จะทำได้บ้างไม่ได้ เพราะผู้ป่วยบางคนไม่ได้มีการส่งต่อการรักษาไปที่แผนกนั้นๆจำเป็นต้องเลือก แสดงผู้ป่วยที่ส่งไปห้อง เป็น All  หรือทั้งหมดจึงจะแสดงข้อมูลผู้ป่วยได้

จากนั้นให้พิมพ์HNลงไป จะทำการหาคนไข้ได้
    เหตุผลที่ทำให้ไม่สามารถดึงคนไข้ได้ก็เพื่อจะทำให้ผุ้ตรวจรู้ว่าคนไข้อยู่สถานะอะไรอยู่ที่ห้องได๋ การตามหาคนไข้จะได้สะดวกยิ่งขึ้น เพราะต้องให้ผู้ตรวจส่งคนไข้เข้ามาก่อนนั้นเอง

วันจันทร์ที่ 21 ธันวาคม พ.ศ. 2558

ดึงข้อมูลผู้ป่วยคลีนิค ASHMA และCOPD

select t.addressid,if(c.clinic="015","โรคหอบหืด(Ashma)","โรคปอดอุดกั้นเรื้อรัง(COPD)") as clinicopd ,c.hn,CONCAT(pa.pname,pa.fname," ",pa.lname) as paName ,pa.hn,pa.addrpart,pa.moopart,t.full_name from clinicmember c
left OUTER JOIN patient pa ON c.hn=pa.hn
LEFT OUTER JOIN thaiaddress t ON CONCAT(pa.chwpart,pa.amppart,pa.tmbpart) =t.addressid
where c.clinic in("015","016") AND pa.tmbpart in("01","02","03","04","05")

วันพุธที่ 4 พฤศจิกายน พ.ศ. 2558

sql เบาหวาน

==========DM ล้วน======
select dm_all.hn,pname,fname,lname,birthday,addrpart,moopart,tmbpart,amppart,chwpart from

(select pt.hn,pt.pname,pt.fname,pt.lname,pt.birthday,pt.addrpart,pt.moopart,pt.tmbpart,pt.amppart,pt.chwpart
from clinicmember c
left outer join patient pt on pt.hn=c.hn
where c.clinic="001" and pt.death<>"Y") as dm_all
left outer join (select hn from clinicmember where clinic="002")as ht on ht.hn=dm_all.hn
where ht.hn is null


 =======DM+HT==
select dm_all.hn,pname,fname,lname,birthday,addrpart,moopart,tmbpart,amppart,chwpart from(
select pt.hn,pt.pname,pt.fname,pt.lname,pt.birthday,pt.addrpart,pt.moopart,pt.tmbpart,pt.amppart,pt.chwpart
from clinicmember c
left outer join patient pt on pt.hn=c.hn
where c.clinic="001" and pt.death<>"Y") as dm_all
inner join (select hn from clinicmember where clinic="002")as ht on ht.hn=dm_all.hn


=======กลุ่มโรคแทรกอื่นๆ==========
select distinct pt.hn from clinicmember c
left outer join patient pt on pt.hn=c.hn
left outer join ovstdiag d on c.hn=d.hn
where c.clinic="001" and pt.death<>"Y"
and (icd10="N189" or icd10="I259" or icd10="I48" or icd10="E113" or icd10="H360")


เอา กลุ่ม 1,2,3 มา  join กับตัวนี้
==============HBA1C_2

SELECT
lh.hn,lo.lab_items_code,GROUP_CONCAT(lo.lab_order_result ORDER BY lh.order_date)AS zz,
SUBSTRING_INDEX(GROUP_CONCAT(lo.lab_order_result ORDER BY lh.order_date),',',1)AS A1C_1,
IF((1 + LENGTH(GROUP_CONCAT(lo.lab_order_result ORDER BY lh.order_date))-
LENGTH(REPLACE(GROUP_CONCAT(lo.lab_order_result ORDER BY lh.order_date), ',', '')))>1,
SUBSTRING_INDEX(SUBSTRING_INDEX(GROUP_CONCAT(lo.lab_order_result ORDER BY lh.order_date),',',2),',',-1),'')AS A1C_2,
IF((1 + LENGTH(GROUP_CONCAT(lo.lab_order_result ORDER BY lh.order_date))-
LENGTH(REPLACE(GROUP_CONCAT(lo.lab_order_result ORDER BY lh.order_date), ',', '')))>2,
SUBSTRING_INDEX(SUBSTRING_INDEX(GROUP_CONCAT(lo.lab_order_result ORDER BY lh.order_date),',',3),',',-1),'')AS A1C_3,
IF((1 + LENGTH(GROUP_CONCAT(lo.lab_order_result ORDER BY lh.order_date))-
LENGTH(REPLACE(GROUP_CONCAT(lo.lab_order_result ORDER BY lh.order_date), ',', '')))>3,
SUBSTRING_INDEX(SUBSTRING_INDEX(GROUP_CONCAT(lo.lab_order_result ORDER BY lh.order_date),',',4),',',-1),'')AS A1C_4
  FROM lab_head lh
LEFT OUTER JOIN  lab_order lo ON lh.lab_order_number=lo.lab_order_number
WHERE lo.lab_items_code="193"
AND lh.hn IN(
    SELECT pt.hn FROM clinicmember c
    LEFT OUTER JOIN patient pt ON pt.hn=c.hn
    WHERE c.clinic="001" AND pt.death<>"Y")
AND lh.order_date BETWEEN"2014-11-01"AND"2015-10-30"
AND lab_order_result <>""
GROUP BY lh.hn
===================
 
 

วันอังคารที่ 3 พฤศจิกายน พ.ศ. 2558

นับประชากรตามtype

SELECT
      village.village_moo,
      village.village_name,
      sum(IF(person.house_regist_type_id=1,1,0)) as typearea1,
      sum(IF(person.house_regist_type_id=2,1,0)) as typearea2,
      sum(IF(person.house_regist_type_id=3,1,0)) as typearea3,
      sum(IF(person.house_regist_type_id=4,1,0)) as typearea4
FROM
      person
INNER JOIN village ON person.village_id = village.village_id
GROUP BY village.village_name

วันพฤหัสบดีที่ 29 ตุลาคม พ.ศ. 2558

10 อันดับโรคที่มีค่ารักาษาเยอะสุด hosxp

OPD
select a.pdx,count(a.pdx) as pdx_count ,i.name as icdname ,sum(income)  as sum
from vn_stat a
left outer join icd101 i on i.code=a.main_pdx
where a.vstdate between '2014-10-01' and '2015-09-30'
and a.pdx<>'' and a.pdx is not null
group by a.pdx,i.name
order by sum(income) desc
limit 10

IPD
select pdx,name ,count(an),sum(income)/count(an),sum(income) as sumtotal
from an_stat a,icd101 i
where a.dchdate between '2014-10-01' and '2015-09-30'
and  a.pdx = i.code
group by pdx
order by  sumtotal desc
limit 10

วันจันทร์ที่ 13 กรกฎาคม พ.ศ. 2558

ตารางน่ารู้

ตารางที่ใช้เก็บความเป็นบุคคลากรใน รพ
คือตารางชื่อ patient_hospital_officer