BMS-HOSxP Community
HOSxP => Report Exchange => ข้อความที่เริ่มโดย: sulaiman_hosxp ที่ พฤศจิกายน 19, 2010, 10:40:45 AM
-
ไม่ทราบว่าจะดึง วันมารับบริการครั้งแรกได้จากตารางนั้ยครับ ใน FORM-RB1T02 ขอบคุณครับ
-
ฟิวส์ firstday ในตาราง patient คือวันแรกของผู้ป่วยประจำโรงพยาบาล...แ่ต่ถ้าวันมา ลองดึง select min(vstdate) ของ ้HN นั้น ๆ จากตาราง ovst ดูครับ..วางเป็น variable ก็น่าจะได้
-
มีวิธิเขียน variable มั้ยครับ
-
มีวิธิเขียน variable มั้ยครับ
ประมาณนี้ครับ....
Value := GetSQLStringData('select min(vstdate) from ovst where hn="'+DBPipeline['hn']+'"');
-
ผมขอเพิ่มในนี้ต่อ ครับ แล้ว ประวัติการแพ้ยา ครับ ดึงตัวนั้ยครับ ผมใช้ variable อันนี้ เครื่องพิมพ์จะไม่ทำงานครับ Value := '??????????????? : '+GetSQLStringData('select if(drugallergy is null or drugallergy = ""," - ",drugallergy) '+
' as cc from patient where hn = "'+DBPipeline['hn']+'" '); อันนี้ก็ได้จาก ชาว hos เหมือนกันครับ ช่วยดูหน่อยครับท่าน ขอบคุณครับ
-
อาจารย์ครับหัวหน้าเวชระเบียนบอกว่านอกจากวันที่มารับบริการครั้งแรกแล้วอยากได้ผู้ที่ทำการบันทึกข้อมูลด้วย..ผมจะต้องใช้ฟิว ตาราง หรือคำสั่งอย่างไรเหรอครับ ??? ??? ???
-
อาจารย์ครับหัวหน้าเวชระเบียนบอกว่านอกจากวันที่มารับบริการครั้งแรกแล้วอยากได้ผู้ที่ทำการบันทึกข้อมูลด้วย..ผมจะต้องใช้ฟิว ตาราง หรือคำสั่งอย่างไรเหรอครับ ??? ??? ???
มีหลายวิธีการครับ..
1.ของผม เอาแบบบ้าน ๆ บังคับให้กรอกชื่อตนเอง ในช่อง E-MAIL เพราะไม่เคยใช้ทำอย่างอื่นครับ..ไม่พิมพ์ช่องนี้ก็จะ print ปก OPD ไม่ออกครับ... และ ผู้ใช้แต่ละคนก็ถูก limit จำนวนเครื่องที่ใช้งานครับ..การนั่งพิมพ์ชื่อคนอื่น ไม่ใช่วิสัยปกติที่ทำ.จึงไม่ค่อยมีการแอบอ้างครับ..ต้องรับผิดชอบหน้างานกันเอง.....
2.ลองไปดึงจากตาราง ksklog ครับ ดึงชื่อ loginname ที่กระทำกับ ตารางชื่อ patient พฤติกรรม insert ครับ..และ detail คือ hn ของปก opdcard ครับ..จะได้เป็น user name ถ้าต้องการชื่อจริง ก็ join ตาราง opduser จะได้ชื่อเจ้าหน้าที่ครับ..
Value := GetSQLStringData('select name from opduser where loginname="'+DBPipeline['loginname']+'"'); สีแดง คือ สิ่งที่ได้จากตาราง ksklog ภายใต้การ Insert รายการในตาราง patient ครับ
-
อาจารย์ครับหัวหน้าเวชระเบียนบอกว่านอกจากวันที่มารับบริการครั้งแรกแล้วอยากได้ผู้ที่ทำการบันทึกข้อมูลด้วย..ผมจะต้องใช้ฟิว ตาราง หรือคำสั่งอย่างไรเหรอครับ ??? ??? ???
ลองแบบนี้ดูครับ ;D
วันที่แก้ไข
Value :=GetSQLStringData('select logtime from ksklog where tablename="patient" and (modifytype="Edit" or modifytype="Insert") '+
' and detail="'+DBPipeline['HN']+'" order by logtime desc limit 1');
ผู้แก้ไข
Value :=GetSQLStringData('select o.name from opduser o '+
' left outer join ksklog k on k.loginname=o.loginname '+
' where k.tablename="patient" and (k.modifytype="Edit" or k.modifytype="Insert") '+
' and k.detail="'+DBPipeline['HN']+'" order by k.logtime desc limit 1');
-
ประเด็นคือ .....วางบนปกหน้าของ OPDCARD ซึ่งต้องเกิดก่อนการเข้ารับบริการเป็นส่วนใหญ่ครับ..ดังนั้น คงไม่ได้พิพม์กันบ่อย ๆ ถ้ามิได้เปลี่ยนแปลงข้อมูลมากมายจนต้องพิมพ์ใหม่...FORM-RBT-102
-
ประเด็นคือ .....วางบนปกหน้าของ OPDCARD ซึ่งต้องเกิดก่อนการเข้ารับบริการเป็นส่วนใหญ่ครับ..ดังนั้น คงไม่ได้พิพม์กันบ่อย ๆ ถ้ามิได้เปลี่ยนแปลงข้อมูลมากมายจนต้องพิมพ์ใหม่...FORM-RBT-102
พอทำๆๆ ไป ขนาดมีชื่อผู้ login แปะไปทุกครั้งที่ Print OPD card คน login กับคนนั่งพิมพ์ คนละคนกันซะฉิบ ไม่รู้จะแก้เรื่องคนยังไงเลย /ต้องให้มีเรื่องราว ฟ้องร้อง ให้เข็ด จะได้สอบสวนผู้ที่มีชื่ออยู่ในการแก้ไข การพิมพ์ OPD card นี่แหละ ต้องมีสัก case จะได้รู้สึกความสำคัญ
-
ผมถึงได้...ใช้วิธีให้พิมพ์ชื่อ ตนเองลงไป งัยครับ..ไม่ได้ดึงจากระบบ เพราะเคยเจอปัญหาแบบที่พี่วินัยพูดถึง
จะมีสักกี่คนที่นั่งพิมพ์ประวัติคนไข้แล้วบอกว่า...ตนเองไม่ใช่คน key เลยให้กรอก สด ในช่อง E-MAIL ครับ