-- 1. สร้างตารางตัวอย่างสำหรับผลการทดสอบ
-- หากมีตารางอยู่แล้ว สามารถข้ามส่วนนี้ได้
CREATE TABLE LabTestResults (
ResultID INT PRIMARY KEY IDENTITY(1,1),
PatientID INT NOT NULL,
TestName VARCHAR(100) NOT NULL,
RawResultValue DECIMAL(10, 2) NOT NULL, -- สมมติว่าเป็นค่าตัวเลขที่ได้จากการทดสอบ
TestDateTime DATETIME DEFAULT GETDATE()
);
-- 2. เพิ่มข้อมูลตัวอย่างลงในตาราง
INSERT INTO LabTestResults (PatientID, TestName, RawResultValue) VALUES
(101, 'COVID-19 Antigen', 0.15), -- Negative
(102, 'COVID-19 Antigen', 2.50), -- Positive
(103, 'Dengue NS1', 0.85), -- Indeterminate
(104, 'HIV Antibody', 0.05), -- Negative
(105, 'HIV Antibody', 1.90), -- Positive
(106, 'Malaria Pf/Pv', -0.01), -- Invalid (สมมติว่าค่าติดลบคือ Invalid)
(107, 'COVID-19 Antigen', 0.70); -- Indeterminate
-- 3. Query เพื่อแสดงผลและตีความผลลัพธ์โดยใช้ CASE Expression
SELECT
ResultID,
PatientID,
TestName,
RawResultValue,
CASE
WHEN TestName = 'COVID-19 Antigen' THEN
CASE
WHEN RawResultValue >= 1.00 THEN 'Positive'
WHEN RawResultValue BETWEEN 0.50 AND 0.99 THEN 'Indeterminate'
WHEN RawResultValue >= 0.00 AND RawResultValue < 0.50 THEN 'Negative'
ELSE 'Invalid' -- ค่าที่ไม่เข้าเงื่อนไขใดๆ
END
WHEN TestName = 'Dengue NS1' THEN
CASE
WHEN RawResultValue >= 1.50 THEN 'Positive'
WHEN RawResultValue BETWEEN 0.75 AND 1.49 THEN 'Indeterminate'
WHEN RawResultValue >= 0.00 AND RawResultValue < 0.75 THEN 'Negative'
ELSE 'Invalid'
END
WHEN TestName = 'HIV Antibody' THEN
CASE
WHEN RawResultValue >= 1.20 THEN 'Positive'
WHEN RawResultValue >= 0.00 AND RawResultValue < 1.20 THEN 'Negative'
ELSE 'Invalid'
END
-- คุณสามารถเพิ่มเงื่อนไขสำหรับ TestName อื่นๆ ได้ที่นี่
ELSE 'Unknown Test' -- สำหรับ TestName ที่ไม่ได้ระบุเงื่อนไข
END AS InterpretedResult,
TestDateTime
FROM
LabTestResults;
-- 4. (ตัวเลือก) หากคุณต้องการบันทึกผลการตีความนี้ลงในคอลัมน์ใหม่ในตาราง
-- คุณสามารถเพิ่มคอลัมน์ใหม่ในตาราง LabTestResults
-- ALTER TABLE LabTestResults ADD InterpretedResult VARCHAR(50);
-- จากนั้นใช้ UPDATE statement เพื่ออัปเดตข้อมูล
/*
UPDATE LabTestResults
SET InterpretedResult = CASE
WHEN TestName = 'COVID-19 Antigen' THEN
CASE
WHEN RawResultValue >= 1.00 THEN 'Positive'
WHEN RawResultValue BETWEEN 0.50 AND 0.99 THEN 'Indeterminate'
WHEN RawResultValue >= 0.00 AND RawResultValue < 0.50 THEN 'Negative'
ELSE 'Invalid'
END
WHEN TestName = 'Dengue NS1' THEN
CASE
WHEN RawResultValue >= 1.50 THEN 'Positive'
WHEN RawResultValue BETWEEN 0.75 AND 1.49 THEN 'Indeterminate'
WHEN RawResultValue >= 0.00 AND RawResultValue < 0.75 THEN 'Negative'
ELSE 'Invalid'
END
WHEN TestName = 'HIV Antibody' THEN
CASE
WHEN RawResultValue >= 1.20 THEN 'Positive'
WHEN RawResultValue >= 0.00 AND RawResultValue < 1.20 THEN 'Negative'
ELSE 'Invalid'
END
ELSE 'Unknown Test'
END;
*/
To embed this project on your website, copy the following code and paste it into your website's HTML: