BMS-HOSxP Community
HOSxP => Report Exchange => ข้อความที่เริ่มโดย: yokyai ที่ กุมภาพันธ์ 11, 2013, 18:58:18 PM
-
if DBPipeline['diagnosis_name']='HIV' then
begin
Value:='-';
end else
begin
Value:=DBPipeline['diagnosis_name'];
end;
ยังคงแสดงชื่ออยู่แก้ไขอย่างไรดีครับ
-
ลองแบบนี้ดูครับ
if GetSQLIntegerdata('select count(o.vn) from ovstdiag o join icd101 i on i.code=o.icd10 where o.vn="'+DBPipeline['vn']+'" and i.name like "%HIV%" ')>0 then
begin
Value:='-';
end else
begin
Value:=DBPipeline['diagnosis_name'];
end;
ปล. เอาเป็นแนวทางนะครับ เพราะผมไม่รู้ว่ามี DBPipeline อะไรที่กำลังใช้งานอยู่บ้าง
-
ทำไมเราเอา Pipeline มาใส่เงื่อนไขตรงๆไม่ได้ครับ งงมากครับ ความจริงคำสั่งนี้ก็เคยใช้ครับ
-
ทำไมเราเอา Pipeline มาใส่เงื่อนไขตรงๆไม่ได้ครับ งงมากครับ ความจริงคำสั่งนี้ก็เคยใช้ครับ
ผมว่าท่านน่าจะดูที่ pipeline ของ diagnosis_name ว่ามีแค่คำว่า HIV หรือว่ามีคำว่า HIV อยู่ในนี้อีกที
ส่วนใหญ่ชื่อโรคมักจะยาวว่า HIV เฉย ๆ ครับ
เช่น HIV resulting in .....
ทำให้เวลาเปรียบเทียบ = 'HIV' จึงได้ค่าเป็น False และแสดงผลออกมาครับ
-
ลองเขียนแบบนี้ก็ได้ครับ :)
if pos('HIV' ,DBPipeline['diagnosis_name'])>0 then
begin
Value:='-';
end else
begin
Value:=DBPipeline['diagnosis_name'];
end;
-
ผมว่าจับจากรหัส diag น่าจะง่ายกว่านะครับ B20-B24 ง่ายกว่าไปเล่นกับคำคำเดียวเพราะบางแห่งอาจมีนโยบายไม่ให้ใช้คำว่า HIV ก็ได้ แต่รหัสโรคนี่ถ้าเลี่ยงให้รหัสอื่นก็จะมีผลเสียต่อระบบข้อมูลโรงพยาบาลทันที
-
ลองเขียนแบบนี้ก็ได้ครับ :)
if pos('HIV' ,DBPipeline['diagnosis_name'])>0 then
begin
Value:='-';
end else
begin
Value:=DBPipeline['diagnosis_name'];
end;
ยังแสดงชื่อโรคอยู่ครับ
-
ลองเขียนแบบนี้ก็ได้ครับ :)
if pos('HIV' ,DBPipeline['diagnosis_name'])>0 then
begin
Value:='-';
end else
begin
Value:=DBPipeline['diagnosis_name'];
end;
ยังแสดงชื่อโรคอยู่ครับ
ย้ายไปจับที่รหัส ICD10 ครับตรง ๆ Like "B24%'
-
ลองเขียนแบบนี้ก็ได้ครับ :)
if pos('HIV' ,DBPipeline['diagnosis_name'])>0 then
begin
Value:='-';
end else
begin
Value:=DBPipeline['diagnosis_name'];
end;
ยังแสดงชื่อโรคอยู่ครับ
ย้ายไปจับที่รหัส ICD10 ครับตรง ๆ Like "B24%'
มีหลายกลุ่มรหัสครับพี่เกื้อ
-
ลองแบบนี้ดูครับ
if GetSQLIntegerdata('select count(o.vn) from ovstdiag o join icd101 i on i.code=o.icd10 where o.vn="'+DBPipeline['vn']+'" and i.name like "%HIV%" ')>0 then
begin
Value:='-';
end else
begin
Value:=DBPipeline['diagnosis_name'];
end;
ปล. เอาเป็นแนวทางนะครับ เพราะผมไม่รู้ว่ามี DBPipeline อะไรที่กำลังใช้งานอยู่บ้าง
แบบนี้ใช้ได้ดีเลยทีเดียวครับ ขอบคุณครับ แต่จะรบกวนถามต่อนะครับว่าทำไมต้องใช้วิธีการ count(o.vn) ครับ ทำไมเราแทนค่าด้วยชื่อเลยไม่ได้ครับ
-
ลองแบบนี้ดูครับ
if GetSQLIntegerdata('select count(o.vn) from ovstdiag o join icd101 i on i.code=o.icd10 where o.vn="'+DBPipeline['vn']+'" and i.name like "%HIV%" ')>0 then
begin
Value:='-';
end else
begin
Value:=DBPipeline['diagnosis_name'];
end;
ปล. เอาเป็นแนวทางนะครับ เพราะผมไม่รู้ว่ามี DBPipeline อะไรที่กำลังใช้งานอยู่บ้าง
แบบนี้ใช้ได้ดีเลยทีเดียวครับ ขอบคุณครับ แต่จะรบกวนถามต่อนะครับว่าทำไมต้องใช้วิธีการ count(o.vn) ครับ ทำไมเราแทนค่าด้วยชื่อเลยไม่ได้ครับ
สรุปว่าแบบนี้อยู่ๆก็ใช้งานไม่ได้ครับ กลับมาแสดงชื่อเหมือนเดิม
-
น่าจะทำตัวนี้ให้เสร็จๆไปนะคับ.......เพราะ..แต่ล่ะ..ที่ก้มีความต้องการเหมือนๆกัน
-
มีปัญหาเหมือนกันครับ มีวิธีอีกไหมครับ
-
จับเงื่อนไขใหม่ โดย ไปปรับ tname ของตาราง icd101 ให้มีคำว่า HIV ในโรคที่ต้องการปกปิดครับ..
แค่นี้ ตัวแปรดังกล่าวก็จะใช้ได้ ไม่แสดงผลในทุก visit ที่เป็นกลุ่ม AIDS/HIV
-
ขอดูตัวอย่างหน่อยครับ
-
... ไปจับจากรหัส ICD10 อย่างที่ อ.กอล์ฟ กับ อ.พี่เกื้อ บอกน่ะตรงที่สุดแล้วครับ ... :D ...