Add pemeriksaan mapping for MCU patient
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
ALTER TABLE cpone_dashboard.mcu_patient
|
||||
ADD COLUMN Mcu_PatientPemeriksaan LONGTEXT NULL
|
||||
AFTER Mcu_PatientOrders;
|
||||
@@ -13,6 +13,7 @@ BEGIN
|
||||
Mcu_PatientDivision,
|
||||
Mcu_PatientPosisi,
|
||||
Mcu_PatientOrders,
|
||||
Mcu_PatientPemeriksaan,
|
||||
Mcu_PatientIsRegistered,
|
||||
Mcu_PatientOrderID,
|
||||
Mcu_PatientIsActive,
|
||||
@@ -29,6 +30,47 @@ BEGIN
|
||||
pp.Mcu_PreregisterPatientsDivisi,
|
||||
pp.Mcu_PreregisterPatientsPosisi,
|
||||
pp.Mcu_PreregisterPatientsOrders,
|
||||
(
|
||||
SELECT GROUP_CONCAT(x.pemeriksaan_name ORDER BY x.seq SEPARATOR ', ')
|
||||
FROM (
|
||||
SELECT
|
||||
seqs.seq,
|
||||
CASE
|
||||
WHEN LEFT(seqs.order_code, 2) IN ('PN', 'PR')
|
||||
THEN tp.T_PacketName
|
||||
ELSE tt.T_TestName
|
||||
END AS pemeriksaan_name
|
||||
FROM (
|
||||
SELECT
|
||||
nums.seq,
|
||||
TRIM(
|
||||
SUBSTRING_INDEX(
|
||||
SUBSTRING_INDEX(REPLACE(IFNULL(pp.Mcu_PreregisterPatientsOrders, ''), ' ', ''), ',', nums.seq),
|
||||
',',
|
||||
-1
|
||||
)
|
||||
) AS order_code
|
||||
FROM (
|
||||
SELECT ones.n + tens.n * 10 + 1 AS seq
|
||||
FROM
|
||||
(SELECT 0 AS n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) ones
|
||||
CROSS JOIN
|
||||
(SELECT 0 AS n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) tens
|
||||
) nums
|
||||
WHERE nums.seq <= 1 + LENGTH(REPLACE(IFNULL(pp.Mcu_PreregisterPatientsOrders, ''), ' ', '')) - LENGTH(REPLACE(REPLACE(IFNULL(pp.Mcu_PreregisterPatientsOrders, ''), ' ', ''), ',', ''))
|
||||
) seqs
|
||||
LEFT JOIN cpone.t_packet tp
|
||||
ON LEFT(seqs.order_code, 2) IN ('PN', 'PR')
|
||||
AND tp.T_PacketSasCode = seqs.order_code
|
||||
AND tp.T_PacketIsActive = 'Y'
|
||||
LEFT JOIN cpone.t_test tt
|
||||
ON LEFT(seqs.order_code, 2) NOT IN ('PN', 'PR')
|
||||
AND tt.T_TestSasCode = seqs.order_code
|
||||
AND tt.T_TestIsActive = 'Y'
|
||||
WHERE seqs.order_code <> ''
|
||||
) x
|
||||
WHERE x.pemeriksaan_name IS NOT NULL
|
||||
) AS Mcu_PatientPemeriksaan,
|
||||
pp.Mcu_PreregisterPatientsIsRegistered,
|
||||
CASE
|
||||
WHEN pp.Mcu_PreregisterPatientsIsRegistered = 'Y'
|
||||
@@ -50,6 +92,7 @@ BEGIN
|
||||
Mcu_PatientDivision = VALUES(Mcu_PatientDivision),
|
||||
Mcu_PatientPosisi = VALUES(Mcu_PatientPosisi),
|
||||
Mcu_PatientOrders = VALUES(Mcu_PatientOrders),
|
||||
Mcu_PatientPemeriksaan = VALUES(Mcu_PatientPemeriksaan),
|
||||
Mcu_PatientIsRegistered = VALUES(Mcu_PatientIsRegistered),
|
||||
Mcu_PatientOrderID = VALUES(Mcu_PatientOrderID),
|
||||
Mcu_PatientIsActive = VALUES(Mcu_PatientIsActive),
|
||||
|
||||
Reference in New Issue
Block a user