แสดงกระทู้

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

หน้า: [1]
1
Development / Re: ส่วนของ ความลับคนไข้
« เมื่อ: พฤศจิกายน 17, 2006, 17:17:48 PM »
อาจารย์ครับ ที่แล็บรพ.นครพนม ทำตามที่อาจารย์แนะ ปรากฏว่า ไม่สามารถดูผลได้เลย เช่น ต้องการให้แพทย์ พยาบาล เท่านั้นที่ดูผล Anti HIVได้ ผมทำเครื่องหมายถูกหน้า Doctor,Nurse แล้ว พอพยาบาลต้องการทราบผล ช่องผลการตรวจกลับแสดงคำว่า ปกปิด ครับ ตอนนี้จึงยังไม่สามารถกำหนดสิทธิผู้ดูผลแล็บได้ อาจารย์แนะนำด้วยครับ

2
ผมเจอใน web เลย copy มาให้ดู

ผมเข้าไปดูที่ http://www.siamdev.com/Board/question.asp?QID=344 เลยเกิดความคิดที่จะสร้างสูตรอาร์เรย์เพื่อตรวจสอบหมายเลขประชาชนครับ มาดู Algorithm ของการเช็ค Digit เลขบัตรประชาชนคนไทย ก่อน

3450200415698
เลข 8 คือ bit check ครับ
การคำนวนก็
3*13
4*12
5*11
0*10
2*9
0*8
0*7
4*6
1*5
5*4
6*3
9*2
นำผลลัพธ์มารวมกัน ครับ
ในที่นี้จะได้ 245
นำ 245 มา MOD ด้วย 11 จะได้ 3
นำ 11 ลบด้วย 3 จะได้ 8 พอดีครับ
ถ้าที่ได้ตรงกับ bit check ก็แสดงความหมายเลขบัตรนี้ถูกต้องครับ

ถ้าเราสร้างเป็นสูตร อาร์เรย์ จะต้องใช้ฟังก์ชัน VALUE MID ROW INDIRECT ครับ

ขั้นตอน
1 เราแยกตัวเลขออกโดยใช้ฟังก์ชัน MID
2 เมื่อแยกแล้วต้องแปลงตัวเลขที่แยกออกมาซึ่งเป็น Text ให้เป็นค่าจริงๆ ด้วยฟังก์ชัน VALUE
3 ทำการคูณตัวเลขที่แยกแต่ละตัวได้ด้วยเลขตำแหน่งซึ่งลดลงครั้งละ 1 ไปถึงหลักที่ 12 เช่น เริ่มตันหลักแรก คูณด้วย 13 หลักต่อไปคูณด้วย 12 หลักต่อไปคูณด้วย 11 เป็นต้น
4 รวมเลขผลคูณที่คำนวณได้
5 หาเศษของค่าที่คำนวณได้ในขั้นที่ 4 ด้วย 11
6 นำ 11 ลบผลลัพธ์ของ 5

ดังนั้นสูตรอารเรย์สุดท้ายคือ
Code:
{=11-MOD(SUM((VALUE(MID(CitizenID,ROW(INDIRECT("1:12")),1)))*(14-ROW(INDIRECT("1:12")))),11)}

หน้า: [1]