diff --git a/application/controllers/tools/Kartu_kontrol.php b/application/controllers/tools/Kartu_kontrol.php new file mode 100644 index 00000000..ec73a6ff --- /dev/null +++ b/application/controllers/tools/Kartu_kontrol.php @@ -0,0 +1,198 @@ +db_lab = $this->load->database('onedev', true); + } + + public function index() + { + $this->sys_ok(['message' => 'Use /tools/kartu_kontrol/pdf?PID=&username=']); + } + + public function pdf() + { + try { + $pid = intval($this->input->get('PID', true)); + $username = trim((string) $this->input->get('username', true)); + if ($pid <= 0) { + $this->sys_error('PID mandatory'); + return; + } + + $rows = $this->get_data($pid); + if (empty($rows)) { + $this->sys_error('Data not found for PID ' . $pid); + return; + } + + $first = $rows[0]; + $printDate = date('M j, Y g:i A'); + + require_once APPPATH . 'third_party/fpdf/fpdf.php'; + $pdf = new FPDF('P', 'mm', 'A4'); + $pdf->SetAutoPageBreak(false); + $pdf->SetMargins(10, 35, 10); + $pdf->AddPage(); + + $this->render_page($pdf, $first, $rows, $username, $printDate); + + header('Content-Type: application/pdf'); + header('Content-Disposition: inline; filename="kartu_kontrol_' . $pid . '.pdf"'); + echo $pdf->Output('S'); + } catch (Exception $e) { + $this->sys_error($e->getMessage()); + } + } + + private function get_data($pid) + { + $qry = $this->db_lab->query("CALL sp_rpt_fo_001(?, 'fpdf')", [$pid]); + if (!$qry) { + return []; + } + return $qry->result_array(); + } + + private function render_page($pdf, $first, $rows, $printBy, $printDate) + { + $formRev = $first['form_rev'] ?: 'YAN.01-FRM-CR-01.1/04'; + $pageW = 190; // usable width (210 - 20 margin) + $photoW = 25; + $photoH = 30; + $photoX = 10 + $pageW - $photoW; // right-aligned + + $topY = 35; // 3.5cm top margin — space for pre-printed logo header + + // --- Header --- + $pdf->SetFont('Arial', 'B', 12); + $pdf->SetXY(10, $topY); + $pdf->Cell($pageW - 70, 8, 'KARTU KONTROL PELAYANAN', 0, 0, 'L'); + $pdf->SetFont('Arial', '', 8); + $pdf->Cell(70, 8, $this->s($formRev), 0, 1, 'R'); + + // --- Photo (right side, below form rev) --- + $photoY = $topY + 10; + $photoPath = $this->resolve_photo($first['Photo']); + if ($photoPath !== null) { + $pdf->Image($photoPath, $photoX, $photoY, $photoW, $photoH); + } else { + $pdf->SetDrawColor(180, 180, 180); + $pdf->Rect($photoX, $photoY, $photoW, $photoH); + } + + // --- Patient Info --- + $infoY = $topY + 10; + $infoW = $pageW - $photoW - 5; + $lblW = 38; + $sepW = 5; + $valW = $infoW - $lblW - $sepW; + $rowH = 7; + + $fields = [ + ['Nama Pasien', $this->s($first['M_PatientName'])], + ['Umur / Jns Kelamin', $first['M_PatientDOB']], + ['PID/No. Reg', $first['PIiiD']], + ['Pengirim', $this->s($first['M_CompanyName'] ?? '')], + ['Kel. Pelanggan', $this->s($first['Nat_BahanName'] ?? '')], + ['Tanggal', $first['noreg']], + ['Perkiraan Hasil', $this->s($first['M_PatientAddressDescription'] ?? '')], + ]; + + $pdf->SetFont('Arial', '', 9); + foreach ($fields as $f) { + $pdf->SetXY(10, $infoY); + $pdf->Cell($lblW, $rowH, $this->s($f[0]), 0, 0, 'L'); + $pdf->Cell($sepW, $rowH, ':', 0, 0, 'C'); + $pdf->Cell($valW, $rowH, $this->s($f[1]), 0, 1, 'L'); + $infoY += $rowH; + } + + // --- Test Table --- + $tableY = max($infoY + 3, $photoY + $photoH + 3); + $col1W = 90; + $col2W = 50; + $col3W = $pageW - $col1W - $col2W; + $thH = 7; + + $pdf->SetXY(10, $tableY); + $pdf->SetFont('Arial', 'B', 9); + $pdf->SetFillColor(220, 220, 220); + $pdf->Cell($col1W, $thH, 'JENIS PEMERIKSAAN', 1, 0, 'C', true); + $pdf->Cell($col2W, $thH, 'PETUGAS', 1, 0, 'C', true); + $pdf->Cell($col3W, $thH, 'CATATAN', 1, 1, 'C', true); + + $pdf->SetFont('Arial', '', 9); + foreach ($rows as $row) { + $pdf->SetX(10); + $pdf->Cell($col1W, $thH, $this->s($row['Nat_BahanCode']), 1, 0, 'L'); + $pdf->Cell($col2W, $thH, '', 1, 0, 'L'); + $pdf->Cell($col3W, $thH, '', 1, 1, 'L'); + } + + // --- Consent Section --- + $consentY = $pdf->GetY() + 4; + $pdf->SetXY(10, $consentY); + $pdf->SetFont('Arial', '', 9); + $pdf->Cell(0, 6, 'Catatan :', 0, 1, 'L'); + + $consentText = 'Dengan ini saya menyatakan bahwa informasi yang saya berikan adalah benar ,' + . 'dan saya memahami serta menyetujui tindakan medis yang dilakukan oleh Lab. IBL ' + . 'untuk menunjang pemeriksaan saya'; + + $consentY = $pdf->GetY(); + $pdf->SetXY(10, $consentY); + $pdf->SetFont('Arial', '', 8); + $pdf->MultiCell(100, 5, $this->s($consentText), 0, 'L'); + + $pdf->SetFont('Arial', 'B', 9); + $pdf->SetXY(130, $consentY); + $pdf->Cell(70, 5, 'TTD', 0, 1, 'C'); + + $afterConsent = $pdf->GetY() + 18; + $pdf->SetXY(130, $afterConsent); + $pdf->SetFont('Arial', '', 9); + $pdf->Cell(70, 5, $this->s($first['PIiiD']), 0, 1, 'C'); + + // --- Page Footer --- + $footerY = 286; + $pdf->SetFont('Times', '', 7); + $pdf->SetXY(10, $footerY); + $pdf->Cell(60, 4, 'Print Oleh : ' . $this->s($printBy), 0, 0, 'L'); + + $pdf->SetXY(85, $footerY); + $pdf->Cell(20, 4, '1', 0, 0, 'C'); + $pdf->Cell(5, 4, '/', 0, 0, 'C'); + $pdf->Cell(20, 4, '1', 0, 0, 'C'); + + $pdf->SetXY(130, $footerY); + $pdf->Cell(70, 4, $printDate, 0, 1, 'R'); + } + + private function resolve_photo($photoUrl) + { + $url = trim((string) $photoUrl); + if ($url === '') { + return null; + } + // SP returns file:///home/one/project/one/... — strip file:// to get absolute path + if (strpos($url, 'file://') === 0) { + $abs = substr($url, 7); + return is_file($abs) ? $abs : null; + } + // fallback: prepend mediaBase for relative paths + $abs = $this->mediaBase . '/' . ltrim($url, '/'); + return is_file($abs) ? $abs : null; + } + + private function s($text) + { + return iconv('UTF-8', 'windows-1252//TRANSLIT', (string) $text); + } +} diff --git a/sql/manual_changes/2026-05-21-create-result-fisik-umum-eng.sql b/sql/manual_changes/2026-05-21-create-result-fisik-umum-eng.sql new file mode 100644 index 00000000..8d39dea0 --- /dev/null +++ b/sql/manual_changes/2026-05-21-create-result-fisik-umum-eng.sql @@ -0,0 +1,18 @@ +CREATE TABLE `result_fisik_umum_eng` ( + `ResultFisikUmumEngID` int(11) NOT NULL AUTO_INCREMENT, + `ResultFisikUmumEngType` varchar(25) NOT NULL DEFAULT '', + `ResultFisikUmumEngLabel` varchar(150) NOT NULL DEFAULT '', + `ResultFisikUmumEngT_OrderHeaderID` int(11) NOT NULL DEFAULT 0, + `ResultFisikUmumEngT_OrderHeaderDate` datetime DEFAULT '0000-00-00 00:00:00', + `ResultFisikUmumEngValue` text NOT NULL DEFAULT '', + `ResultFisikUmumEngIsActive` char(1) NOT NULL DEFAULT 'Y', + `ResultFisikUmumEngCreated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `ResultFisikUmumEngLastUpdated` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + PRIMARY KEY (`ResultFisikUmumEngID`), + KEY `ResultFisikUmumEngLabel` (`ResultFisikUmumEngLabel`), + KEY `ResultFisikUmumEngT_OrderHeaderID` (`ResultFisikUmumEngT_OrderHeaderID`), + KEY `ResultFisikUmumEngIsActive` (`ResultFisikUmumEngIsActive`), + KEY `ResultFisikUmumEngT_OrderHeaderDate` (`ResultFisikUmumEngT_OrderHeaderDate`), + KEY `ResultFisikUmumEngCreated` (`ResultFisikUmumEngCreated`), + KEY `ResultFisikUmumEngLastUpdated` (`ResultFisikUmumEngLastUpdated`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; diff --git a/sql/manual_changes/2026-05-22-update-procedures-to-regional.sql b/sql/manual_changes/2026-05-22-update-procedures-to-regional.sql new file mode 100644 index 00000000..7bc073d6 --- /dev/null +++ b/sql/manual_changes/2026-05-22-update-procedures-to-regional.sql @@ -0,0 +1,9059 @@ +-- Generated from devone one_lab on 2026-05-22 +-- Purpose: replace legacy address joins (m_kelurahan/m_district/m_city/m_province) with regional-based joins. +-- NOTE: review manual section before applying in production. +DELIMITER $$ + +DROP PROCEDURE IF EXISTS `sp_fo_clinic_load` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_fo_clinic_load`(IN `queue` varchar(10)) +BEGIN + +DECLARE o_id INTEGER DEFAULT 0; +DECLARE p_tmp VARCHAR(12000) DEFAULT ""; +DECLARE d_tmp VARCHAR(12000) DEFAULT ""; +DECLARE da_tmp VARCHAR(12000) DEFAULT ""; +DECLARE c_tmp VARCHAR(12000) DEFAULT ""; +DECLARE m_tmp VARCHAR(12000) DEFAULT ""; +DECLARE t_tmp VARCHAR(12000) DEFAULT ""; +DECLARE r_tmp VARCHAR(12000) DEFAULT ""; + +DECLARE p_id INTEGER DEFAULT 0; +DECLARE p_age VARCHAR(50) DEFAULT ""; +DECLARE m_id INTEGER DEFAULT 0; +DECLARE c_id INTEGER DEFAULT 0; + +DECLARE d_id INTEGER DEFAULT 0; + +SET o_id = (SELECT C_OrderHeaderID FROM one_clinic.c_orderheader WHERE C_OrderHeaderIsLab = "Y" AND + C_OrderHeaderIsActive = "Y" AND C_OrderHeaderLabQueue = queue AND C_OrderHeaderDate = date(now()) ); + +IF o_id IS NOT NULL THEN + SELECT C_OrderHeaderM_PatientID, C_OrderHeaderM_PatientAge, C_OrderHeaderM_DoctorID INTO p_id, p_age, d_id + FROM one_clinic.c_orderheader WHERE C_OrderHeaderID = o_id; + + SELECT Conf_ClinicM_CompanyID, Conf_ClinicM_MouID INTO c_id, m_id + FROM conf_clinic WHERE Conf_ClinicIsActive = "Y" LIMIT 1; + + SELECT JSON_OBJECT("M_PatientID", M_PatientID, "M_PatientName", M_PatientName, "M_PatientNoReg", M_PatientNoReg, + "M_PatientNote", M_PatientNote, + "M_PatientAddress", CONCAT(M_PatientAddressDescription, "\\n\\n", M_KelurahanName, ", ", M_DistrictName, "\\n", M_CityName, ", ", M_ProvinceName), "M_PatientDOB", M_PatientDOB, + "M_PatientHP", M_PatientHP, "patient_age", p_age) INTO p_tmp + FROM m_patient + LEFT JOIN m_patientaddress ON M_PatientID = M_PatientAddressM_PatientID AND M_PatientAddressIsActive = "Y" + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + WHERE M_PatientID = p_id + LIMIT 1; + + SET da_tmp = (SELECT CONCAT('[', GROUP_CONCAT(JSON_OBJECT("M_DoctorAddressID", M_DoctorAddressID, "M_DoctorAddressDescription", M_DoctorAddressDescription) SEPARATOR ','), ']') FROM m_doctoraddress WHERE M_DoctorAddressM_DoctorID = d_id AND M_DoctorAddressIsActive = "Y"); + + SET d_tmp = (SELECT JSON_OBJECT("M_DoctorID", M_DoctorID, "M_DoctorIsDefault", M_DoctorIsDefault, + "M_DoctorIsPJ", M_DoctorIsPJ, "M_DoctorName", IF(M_DoctorPrefix IS NULL OR M_DoctorPrefix = "", M_DoctorName, CONCAT(M_DoctorPrefix, " ", M_DoctorName) ), "search", IF(M_DoctorPrefix IS NULL OR M_DoctorPrefix = "", M_DoctorName, CONCAT(M_DoctorPrefix, " ", M_DoctorName) ) ) + FROM m_doctor + WHERE M_DoctorID = d_id); + + SET c_tmp = (SELECT JSON_OBJECT("M_CompanyID", M_CompanyID, "M_CompanyName", M_CompanyName, "search", M_CompanyName) + FROM m_company WHERE M_CompanyID = c_id); + + SET m_tmp = (SELECT JSON_OBJECT("M_MouEndDate", M_MouEndDate, "M_MouID", M_MouID, "M_MouName", M_MouName, "M_MouStartDate", M_MouStartDate) + FROM m_mou WHERE M_MouID = m_id); + + SET t_tmp = (SELECT CONCAT('[', GROUP_CONCAT(JSON_OBJECT("T_TestID", T_TestID, "T_TestName", T_TestName, "IsFromPanel", "N", "T_TestRequirement", T_TestRequirement, "T_PriceID", T_PriceID, "T_PriceT_TestID", T_PriceT_TestID, "T_PriceIsCito", T_PriceIsCito, "T_PriceM_CompanyID", T_PriceM_CompanyID, "T_PriceM_MouID", T_PriceM_MouID, "T_PricePriority", T_PricePriority, "T_PriceAmount", T_PriceAmount, "T_PriceDisc", T_PriceDisc, "T_PriceDiscRp", T_PriceDiscRp, "T_PriceIsActive", T_PriceIsActive, "T_PriceCreated", T_PriceCreated, "T_PriceLastUpdated", T_PriceLastUpdated, "T_TestIsCito", C_OrderLabIsCito) SEPARATOR ','), ']') + FROM t_test + JOIN one_clinic.c_orderlab ON C_OrderLabC_OrderHeaderID = o_id AND C_OrderLabIsActive = "Y" AND C_OrderLabT_TestID = T_TestID + JOIN t_price ON T_PriceIsActive = "Y" AND T_PriceT_TestID = T_TestID AND T_PriceM_CompanyID = c_id AND T_PriceM_MouID = m_id + AND T_PriceIsCito = C_OrderLabIsCito + WHERE T_TestIsActive = "Y" AND T_TestIsPrice = "Y"); + + SET r_tmp = (SELECT CONCAT('[', GROUP_CONCAT(JSON_OBJECT("label", T_TestRequirement, "error_message", "Hasil harus di isi", "is_error", true, "checked", false, "note", "") SEPARATOR ','), ']') + FROM t_test + JOIN one_clinic.c_orderlab ON C_OrderLabC_OrderHeaderID = o_id AND C_OrderLabIsActive = "Y" AND C_OrderLabT_TestID = T_TestID + JOIN t_price ON T_PriceIsActive = "Y" AND T_PriceT_TestID = T_TestID AND T_PriceM_CompanyID = c_id AND T_PriceM_MouID = m_id + AND T_PriceIsCito = C_OrderLabIsCito + WHERE T_TestIsActive = "Y" AND T_TestIsPrice = "Y"); + + SELECT "OK" as status, CONCAT('{"order_id":', o_id,', +"patient":', p_tmp, ', + "doctor":', d_tmp,', + "doctor_address":', ifnull(da_tmp,'""'),', + "company":', c_tmp,', + "mou":', m_tmp,'}') as data, "" as message; + +ELSE + SELECT "ERR" as status, "" as data, "" as message; +END IF; + + +END $$ + +DROP PROCEDURE IF EXISTS `sp_fo_clinic_load_fx` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_fo_clinic_load_fx`(IN `queue` varchar(10)) +BEGIN + +DECLARE o_id INTEGER DEFAULT 0; +DECLARE p_tmp VARCHAR(12000) DEFAULT ""; +DECLARE d_tmp VARCHAR(12000) DEFAULT ""; +DECLARE da_tmp VARCHAR(12000) DEFAULT ""; +DECLARE c_tmp VARCHAR(12000) DEFAULT ""; +DECLARE m_tmp VARCHAR(12000) DEFAULT ""; +DECLARE t_tmp VARCHAR(12000) DEFAULT ""; +DECLARE r_tmp VARCHAR(12000) DEFAULT ""; + +DECLARE p_id INTEGER DEFAULT 0; +DECLARE p_age VARCHAR(50) DEFAULT ""; +DECLARE m_id INTEGER DEFAULT 0; +DECLARE c_id INTEGER DEFAULT 0; + +DECLARE d_id INTEGER DEFAULT 0; + +SET o_id = (SELECT C_OrderHeaderID FROM one_clinic_dev.c_orderheader WHERE C_OrderHeaderIsLab = "Y" AND + C_OrderHeaderIsActive = "Y" AND C_OrderHeaderLabQueue = queue AND C_OrderHeaderDate = date(now()) ); + +IF o_id IS NOT NULL THEN + SELECT C_OrderHeaderM_PatientID, C_OrderHeaderM_PatientAge, C_OrderHeaderM_DoctorID INTO p_id, p_age, d_id + FROM one_clinic_dev.c_orderheader WHERE C_OrderHeaderID = o_id; + + SELECT Conf_ClinicM_CompanyID, Conf_ClinicM_MouID INTO c_id, m_id + FROM conf_clinic WHERE Conf_ClinicIsActive = "Y" LIMIT 1; + + SELECT JSON_OBJECT("M_PatientID", M_PatientID, "M_PatientName", M_PatientName, "M_PatientNoReg", M_PatientNoReg, + "M_PatientNote", M_PatientNote, + "M_PatientAddress", CONCAT(M_PatientAddressDescription, "\\n\\n", M_KelurahanName, ", ", M_DistrictName, "\\n", M_CityName, ", ", M_ProvinceName), "M_PatientDOB", M_PatientDOB, + "M_PatientHP", M_PatientHP, "patient_age", p_age) INTO p_tmp + FROM m_patient + LEFT JOIN m_patientaddress ON M_PatientID = M_PatientAddressM_PatientID AND M_PatientAddressIsActive = "Y" + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + WHERE M_PatientID = p_id + LIMIT 1; + + SET da_tmp = (SELECT CONCAT('[', GROUP_CONCAT(JSON_OBJECT("M_DoctorAddressID", M_DoctorAddressID, "M_DoctorAddressDescription", M_DoctorAddressDescription) SEPARATOR ','), ']') FROM m_doctoraddress WHERE M_DoctorAddressM_DoctorID = d_id AND M_DoctorAddressIsActive = "Y"); + + SET d_tmp = (SELECT JSON_OBJECT("M_DoctorID", M_DoctorID, "M_DoctorIsDefault", M_DoctorIsDefault, + "M_DoctorIsPJ", M_DoctorIsPJ, "M_DoctorName", IF(M_DoctorPrefix IS NULL OR M_DoctorPrefix = "", M_DoctorName, CONCAT(M_DoctorPrefix, " ", M_DoctorName) ), "search", IF(M_DoctorPrefix IS NULL OR M_DoctorPrefix = "", M_DoctorName, CONCAT(M_DoctorPrefix, " ", M_DoctorName) ) ) + FROM m_doctor + WHERE M_DoctorID = d_id); + + SET c_tmp = (SELECT JSON_OBJECT("M_CompanyID", M_CompanyID, "M_CompanyName", M_CompanyName, "search", M_CompanyName) + FROM m_company WHERE M_CompanyID = c_id); + + SET m_tmp = (SELECT JSON_OBJECT("M_MouEndDate", M_MouEndDate, "M_MouID", M_MouID, "M_MouName", M_MouName, "M_MouStartDate", M_MouStartDate) + FROM m_mou WHERE M_MouID = m_id); + + SET t_tmp = (SELECT CONCAT('[', GROUP_CONCAT(JSON_OBJECT("T_TestID", T_TestID, "T_TestName", T_TestName, "IsFromPanel", "N", "T_TestRequirement", T_TestRequirement, "T_PriceID", T_PriceID, "T_PriceT_TestID", T_PriceT_TestID, "T_PriceIsCito", T_PriceIsCito, "T_PriceM_CompanyID", T_PriceM_CompanyID, "T_PriceM_MouID", T_PriceM_MouID, "T_PricePriority", T_PricePriority, "T_PriceAmount", T_PriceAmount, "T_PriceDisc", T_PriceDisc, "T_PriceDiscRp", T_PriceDiscRp, "T_PriceIsActive", T_PriceIsActive, "T_PriceCreated", T_PriceCreated, "T_PriceLastUpdated", T_PriceLastUpdated, "T_TestIsCito", C_OrderLabIsCito) SEPARATOR ','), ']') + FROM t_test + JOIN one_clinic_dev.c_orderlab ON C_OrderLabC_OrderHeaderID = o_id AND C_OrderLabIsActive = "Y" AND C_OrderLabT_TestID = T_TestID + JOIN t_price ON T_PriceIsActive = "Y" AND T_PriceT_TestID = T_TestID AND T_PriceM_CompanyID = c_id AND T_PriceM_MouID = m_id + AND T_PriceIsCito = C_OrderLabIsCito + WHERE T_TestIsActive = "Y" AND T_TestIsPrice = "Y"); + + SET r_tmp = (SELECT CONCAT('[', GROUP_CONCAT(JSON_OBJECT("label", T_TestRequirement, "error_message", "Hasil harus di isi", "is_error", true, "checked", false, "note", "") SEPARATOR ','), ']') + FROM t_test + JOIN one_clinic_dev.c_orderlab ON C_OrderLabC_OrderHeaderID = o_id AND C_OrderLabIsActive = "Y" AND C_OrderLabT_TestID = T_TestID + JOIN t_price ON T_PriceIsActive = "Y" AND T_PriceT_TestID = T_TestID AND T_PriceM_CompanyID = c_id AND T_PriceM_MouID = m_id + AND T_PriceIsCito = C_OrderLabIsCito + WHERE T_TestIsActive = "Y" AND T_TestIsPrice = "Y"); + + SELECT "OK" as status, JSON_OBJECT( 'patient', p_tmp, + 'doctor', d_tmp, + 'doctor_address', ifnull(da_tmp,''), + 'company', c_tmp, + 'mou', m_tmp, + 'test', t_tmp, + 'req', r_tmp) as data, "" as message; + +ELSE + SELECT "ERR" as status, "" as data, "" as message; +END IF; + + +END $$ + +DROP PROCEDURE IF EXISTS `sp_fo_delivery_address` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_fo_delivery_address`(IN `orderid` int, IN `patientid` int, IN `doctorid` int, IN `mouid` int) +BEGIN + +DECLARE v_finished INTEGER DEFAULT 0; + DECLARE v_code varchar(100) DEFAULT ""; + DECLARE v_pos integer DEFAULT 0; + DECLARE v_source varchar(100) DEFAULT ""; + DECLARE v_name varchar(100) DEFAULT ""; +DECLARE v_dtid INTEGER; +DECLARE v_did INTEGER; +DECLARE v_aid INTEGER; + +DECLARE v_rst VARCHAR(5000) DEFAULT ""; +DECLARE v_tmp VARCHAR(5000) DEFAULT ""; +DECLARE v_id INTEGER DEFAULT 1; + + + DEClARE delivery_cursor CURSOR FOR + SELECT M_DeliveryTypeCode, M_DeliverySource, M_DeliveryName, M_DeliveryPosition, M_DeliveryID, M_DeliveryTypeID +from m_delivery +join m_deliverytype on m_deliverym_deliverytypeid = m_deliverytypeid and m_deliverytypeisactive = "Y" +where m_deliveryisactive = "Y" +order by m_deliveryposition asc; + + + DECLARE CONTINUE HANDLER + FOR NOT FOUND SET v_finished = 1; + + SET @x = v_id; + + OPEN delivery_cursor; + + get_delivery: LOOP + + FETCH delivery_cursor INTO v_code, v_source, v_name, v_pos, v_did, v_dtid; + + IF v_finished = 1 THEN + LEAVE get_delivery; + END IF; + + +IF v_code = "PICKUP" THEN + SET v_tmp = JSON_OBJECT("id", v_id, "idx", concat(v_did, "-", v_dtid, "-0"), "code", v_code, "source", v_source, "name", v_name, "pos", v_pos, "note", "", "selected", "false"); + SET @x = v_id + 1; +ELSEIF v_code = "ADDRESS" AND v_source = "PATIENT" AND patientid <> 0 THEN + SET @x = v_id + 1; + SET v_tmp = (SELECT GROUP_CONCAT( JSON_OBJECT("id", (@x := @x + 1), "idx", concat(v_did, "-", v_dtid, "-", M_PatientAddressID), "code", v_code, "source", v_source, "name", v_name, "pos", v_pos, "note", + CONCAT(M_PatientAddressDescription, " ", M_KelurahanName, " ", M_DistrictName, " ", M_CityName, " ", M_ProvinceName), "selected", "false") SEPARATOR ",") + FROM m_patientaddress + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + WHERE M_PatientAddressIsActive = "Y" AND M_PatientAddressM_PatientID = patientid); +ELSEIF v_code = "ADDRESS" AND v_source = "DOCTOR" AND doctorid <> 0 THEN + SET @x = v_id + 1; + SET v_tmp = (SELECT GROUP_CONCAT( JSON_OBJECT("id", (@x := @x + 1), "idx", concat(v_did, "-", v_dtid, "-", M_DoctorAddressID), "code", v_code, "source", v_source, "name", v_name, "pos", v_pos, "note", + CONCAT(M_DoctorAddressDescription, " ", M_KelurahanName, " ", M_DistrictName, " ", M_CityName, " ", M_ProvinceName), "selected", "false") SEPARATOR ",") + FROM m_doctoraddress + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_DoctorAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + WHERE M_DoctorAddressIsActive = "Y" AND M_DoctorAddressM_DoctorID = doctorid); +ELSEIF v_code = "WHATSAPP" AND v_source = "PATIENT" AND patientid <> 0 THEN + SET v_tmp = (SELECT GROUP_CONCAT( JSON_OBJECT("id", (@x := @x + 1), "idx", concat(v_did, "-", v_dtid, "-", 0), "code", v_code, "source", v_source, "name", v_name, "pos", v_pos, "note", + M_PatientHP, "selected", "false") SEPARATOR ",") + FROM m_patient + WHERE M_PatientID = patientid); +ELSEIF v_code = "EMAIL" AND v_source = "PATIENT" AND patientid <> 0 THEN + SET v_tmp = (SELECT GROUP_CONCAT( JSON_OBJECT("id", (@x := @x + 1), "idx", concat(v_did, "-", v_dtid, "-", 0), "code", v_code, "source", v_source, "name", v_name, "pos", v_pos, "note", + M_PatientEmail, "selected", "false") SEPARATOR ",") + FROM m_patient + WHERE M_PatientID = patientid); +ELSEIF v_code = "EMAIL" AND v_source = "DOCTOR" AND doctorid <> 0 THEN + SET v_tmp = (SELECT GROUP_CONCAT( JSON_OBJECT("id", (@x := @x + 1), "idx", concat(v_did, "-", v_dtid, "-", 0), "code", v_code, "source", v_source, "name", v_name, "pos", v_pos, "note", + M_DoctorEmail, "selected", "false") SEPARATOR ",") + FROM m_doctor + WHERE M_DoctorID = doctorid); +ELSEIF v_code = "EMAIL" AND v_source = "MOU" AND mouid <> 0 THEN + SET v_tmp = (SELECT GROUP_CONCAT( JSON_OBJECT("id", (@x := @x + 1), "idx", concat(v_did, "-", v_dtid, "-", 0), "code", v_code, "source", v_source, "name", v_name, "pos", v_pos, "note", + M_MouEmail, "selected", "false") SEPARATOR ",") + FROM m_mou + WHERE M_MouID = mouid AND M_MouEmail <> ""); + +ELSE + SET v_tmp = ""; +END IF; + +IF v_rst = "" AND v_tmp <> "" THEN +SET v_rst = v_tmp; +ELSEIF v_tmp <> "" THEN +SET v_rst = CONCAT(v_rst, ",", v_tmp); +END IF; + + +SET v_id = @x; + + END LOOP get_delivery; + + CLOSE delivery_cursor; + +SELECT CONCAT("[", v_rst, "]") as x; + +END $$ + +DROP PROCEDURE IF EXISTS `sp_fo_delivery_address_mcu` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_fo_delivery_address_mcu`(IN `orderid` int, IN `patientid` int, IN `doctorid` int, IN `companyid` int) +BEGIN + +DECLARE v_finished INTEGER DEFAULT 0; + DECLARE v_code varchar(100) DEFAULT ""; + DECLARE v_pos integer DEFAULT 0; + DECLARE v_source varchar(100) DEFAULT ""; + DECLARE v_name varchar(100) DEFAULT ""; +DECLARE v_dtid INTEGER; +DECLARE v_did INTEGER; +DECLARE v_aid INTEGER; + +DECLARE v_rst VARCHAR(2000) DEFAULT ""; +DECLARE v_tmp VARCHAR(2000) DEFAULT ""; +DECLARE v_id INTEGER DEFAULT 1; + + + DEClARE delivery_cursor CURSOR FOR + SELECT M_DeliveryTypeCode, M_DeliverySource, M_DeliveryName, M_DeliveryPosition, M_DeliveryID, M_DeliveryTypeID +from m_delivery +join m_deliverytype on m_deliverym_deliverytypeid = m_deliverytypeid and m_deliverytypeisactive = "Y" +where m_deliveryisactive = "Y" +order by m_deliveryposition asc; + + + DECLARE CONTINUE HANDLER + FOR NOT FOUND SET v_finished = 1; + + SET @x = v_id; + + OPEN delivery_cursor; + + get_delivery: LOOP + + FETCH delivery_cursor INTO v_code, v_source, v_name, v_pos, v_did, v_dtid; + + IF v_finished = 1 THEN + LEAVE get_delivery; + END IF; + + +IF v_code = "ADDRESS" AND v_source = "COMPANY" AND companyid <> 0 THEN + SET @x = v_id + 1; + SET v_tmp = (SELECT GROUP_CONCAT( JSON_OBJECT("id", (@x := @x + 1), "idx", concat(v_did, "-", v_dtid, "-", M_CompanyID), "code", v_code, "source", v_source, "name", v_name, "pos", v_pos, "note", + CONCAT(M_CompanyAddress, " ", M_KelurahanName, " ", M_DistrictName, " ", M_CityName, " ", M_ProvinceName), "selected", "false") SEPARATOR ",") + FROM m_company + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_CompanyAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + WHERE M_CompanyID = companyid); + +ELSE + SET v_tmp = ""; +END IF; + +IF v_rst = "" AND v_tmp <> "" THEN +SET v_rst = v_tmp; +ELSEIF v_tmp <> "" THEN +SET v_rst = CONCAT(v_rst, ",", v_tmp); +END IF; + + +SET v_id = @x; + + END LOOP get_delivery; + + CLOSE delivery_cursor; + +SELECT CONCAT("[", v_rst, "]") as x; + +END $$ + +DROP PROCEDURE IF EXISTS `sp_fo_delivery_address_v3_bandung` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_fo_delivery_address_v3_bandung`(IN `orderid` int, IN `patientid` int, IN `doctorid` int, IN `mouid` int, IN `companyid` int) +BEGIN + +DECLARE v_finished INTEGER DEFAULT 0; + DECLARE v_code varchar(100) DEFAULT ""; + DECLARE v_pos integer DEFAULT 0; + DECLARE v_source varchar(100) DEFAULT ""; + DECLARE v_name varchar(100) DEFAULT ""; +DECLARE v_dtid INTEGER; +DECLARE v_did INTEGER; +DECLARE v_aid INTEGER; + +DECLARE v_rst VARCHAR(5000) DEFAULT ""; +DECLARE v_tmp VARCHAR(5000) DEFAULT ""; +DECLARE v_id INTEGER DEFAULT 1; + + + DEClARE delivery_cursor CURSOR FOR + SELECT M_DeliveryTypeCode, M_DeliverySource, M_DeliveryName, M_DeliveryPosition, M_DeliveryID, M_DeliveryTypeID +from m_delivery +join m_deliverytype on m_deliverym_deliverytypeid = m_deliverytypeid and m_deliverytypeisactive = "Y" +where m_deliveryisactive = "Y" +order by m_deliveryposition asc; + + + DECLARE CONTINUE HANDLER + FOR NOT FOUND SET v_finished = 1; + + SET @x = v_id; + + OPEN delivery_cursor; + + get_delivery: LOOP + + FETCH delivery_cursor INTO v_code, v_source, v_name, v_pos, v_did, v_dtid; + + IF v_finished = 1 THEN + LEAVE get_delivery; + END IF; + + +IF v_code = "PICKUP" THEN + SET v_tmp = JSON_OBJECT("id", v_id, "idx", concat(v_did, "-", v_dtid, "-0"), "code", v_code, "source", v_source, "name", v_name, "pos", v_pos, "note", "", "selected", "false","typeform","md"); + SET @x = v_id + 1; +ELSEIF v_code = "ADDRESS" AND v_source = "PATIENT" AND patientid <> 0 THEN + SET @x = v_id + 1; + SET v_tmp = (SELECT GROUP_CONCAT( JSON_OBJECT("id", (@x := @x + 1), "idx", concat(v_did, "-", v_dtid, "-", M_PatientAddressID), "code", v_code, "source", v_source, "name", v_name, "pos", v_pos, "note", + CONCAT(M_PatientAddressDescription, " ", M_KelurahanName, " ", M_DistrictName, " ", M_CityName, " ", M_ProvinceName), "selected", "false","typeform","md") SEPARATOR ",") + FROM m_patientaddress + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + WHERE M_PatientAddressIsActive = "Y" AND M_PatientAddressM_PatientID = patientid); +ELSEIF v_code = "ADDRESS" AND v_source = "DOCTOR" AND doctorid <> 0 THEN + SET @x = v_id + 1; + SET v_tmp = (SELECT GROUP_CONCAT( JSON_OBJECT("id", (@x := @x + 1), "idx", concat(v_did, "-", v_dtid, "-", M_DoctorAddressID), "code", v_code, "source", v_source, "name", v_name, "pos", v_pos, "note", + CONCAT(M_DoctorAddressDescription, " ", M_KelurahanName, " ", M_DistrictName, " ", M_CityName, " ", M_ProvinceName), "selected", "false","typeform","md") SEPARATOR ",") + FROM m_doctoraddress + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_DoctorAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + WHERE M_DoctorAddressIsActive = "Y" AND M_DoctorAddressM_DoctorID = doctorid); +ELSEIF v_code = "ADDRESS" AND v_source = "COMPANY" AND companyid <> 0 THEN + SET @x = v_id + 1; + SET v_tmp = (SELECT GROUP_CONCAT( JSON_OBJECT("id", (@x := @x + 1), "idx", concat(v_did, "-", v_dtid, "-", M_CompanyID), "code", v_code, "source", v_source, "name", v_name, "pos", v_pos, "note", + CONCAT(M_CompanyAddress, " ", M_KelurahanName, " ", M_DistrictName, " ", M_CityName, " ", M_ProvinceName), "selected", "false","typeform","md") SEPARATOR ",") + FROM m_company + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_CompanyAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + WHERE M_CompanyID = companyid); +ELSEIF v_code = "WHATSAPP" AND v_source = "PATIENT" AND patientid <> 0 THEN + SET v_tmp = (SELECT GROUP_CONCAT( JSON_OBJECT("id", (@x := @x + 1), "idx", concat(v_did, "-", v_dtid, "-", 0), "code", v_code, "source", v_source, "name", v_name, "pos", v_pos, "note", + M_PatientHP, "selected", "false","typeform","md") SEPARATOR ",") + FROM m_patient + WHERE M_PatientID = patientid); +ELSEIF v_code = "EMAIL" AND v_source = "PATIENT" AND patientid <> 0 THEN + SET v_tmp = (SELECT GROUP_CONCAT( JSON_OBJECT("id", (@x := @x + 1), "idx", concat(v_did, "-", v_dtid, "-", 0), "code", v_code, "source", v_source, "name", v_name, "pos", v_pos, "note", + M_PatientEmail, "selected", "false","typeform","md") SEPARATOR ",") + FROM m_patient + WHERE M_PatientID = patientid); +ELSEIF v_code = "EMAIL" AND v_source = "DOCTOR" AND doctorid <> 0 THEN + SET v_tmp = (SELECT GROUP_CONCAT( JSON_OBJECT("id", (@x := @x + 1), "idx", concat(v_did, "-", v_dtid, "-", 0), "code", v_code, "source", v_source, "name", v_name, "pos", v_pos, "note", + M_DoctorEmail, "selected", "false","typeform","md") SEPARATOR ",") + FROM m_doctor + WHERE M_DoctorID = doctorid); +ELSEIF v_code = "EMAIL" AND v_source = "MOU" AND mouid <> 0 THEN + SET v_tmp = (SELECT GROUP_CONCAT( JSON_OBJECT("id", (@x := @x + 1), "idx", concat(v_did, "-", v_dtid, "-", 0), "code", v_code, "source", v_source, "name", v_name, "pos", v_pos, "note", + M_MouEmail, "selected", "false","typeform","md") SEPARATOR ",") + FROM m_mou + WHERE M_MouID = mouid AND M_MouEmail <> ""); + +ELSE + SET v_tmp = ""; +END IF; + +IF v_rst = "" AND v_tmp <> "" THEN +SET v_rst = v_tmp; +ELSEIF v_tmp <> "" THEN +SET v_rst = CONCAT(v_rst, ",", v_tmp); +END IF; + + +SET v_id = @x; + + END LOOP get_delivery; + + CLOSE delivery_cursor; + +SELECT CONCAT("[", v_rst, "]") as x; + +END $$ + +DROP PROCEDURE IF EXISTS `sp_fo_payment_get_delivery` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_fo_payment_get_delivery`(IN `orderid` int) +BEGIN + + DECLARE done INT DEFAULT FALSE; + DECLARE d_id INT DEFAULT 0; + DECLARE dt_id INT DEFAULT 0; + DECLARE d_src VARCHAR(25) DEFAULT ""; + DECLARE dt_code VARCHAR(25) DEFAULT ""; + DECLARE d_name VARCHAR(100) DEFAULT ""; + DECLARE ad_id INTEGER; + + DECLARE patient_id INTEGER DEFAULT 0; + DECLARE doctor_id INTEGER DEFAULT 0; + + DECLARE rst VARCHAR(2000) DEFAULT ""; + DECLARE tmp VARCHAR(2000) DEFAULT ""; + + DECLARE c1 CURSOR FOR + select m_deliveryid, m_deliverytypeid, m_deliverysource, M_DeliveryTypeCode, T_OrderDeliveryAddressID, M_DeliveryName, T_OrderHeaderM_PatientID, T_OrderHeaderSenderM_DoctorID + from t_orderdelivery + join t_orderheader on t_orderdeliveryt_orderheaderid = t_orderheaderid + join m_delivery on t_orderdeliverym_deliveryid = m_deliveryid + join m_deliverytype on t_orderdeliverym_deliverytypeid = m_deliverytypeid + where t_orderdeliveryisactive = "Y" + and t_orderdeliveryt_orderheaderid = orderid; + + DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; + + OPEN c1; + c1_loop: LOOP + + FETCH c1 INTO d_id, dt_id, d_src, dt_code, ad_id, d_name, patient_id, doctor_id; + IF done = true THEN LEAVE c1_loop; END IF; + + IF d_src = "PATIENT" AND dt_code = "PICKUP" THEN + SET tmp = (SELECT JSON_OBJECT("source", d_src, "type", dt_code, "label", "Ambil Sendiri", "desc", "")); + + IF rst = "" THEN SET rst = tmp; ELSE SET rst = CONCAT(rst, ",", tmp); END IF; + + ELSEIF d_src = "PATIENT" AND dt_code = "ADDRESS" THEN + SET tmp = (SELECT JSON_OBJECT("source", d_src, "type", dt_code, "label", d_name, "desc", + concat(M_PatientAddressDescription, '\n\n', m_kelurahanname, ', ', m_districtname, + '\n', m_cityname, ', ', m_provincename)) + FROM m_patientaddress + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_PatientAddressRegionalCd), "") = reg_kel.regional_cd + left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd + left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd + left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + WHERE M_PatientAddressID = ad_id); + + IF rst = "" THEN SET rst = tmp; ELSE SET rst = CONCAT(rst, ",", tmp); END IF; + + ELSEIF d_src = "DOCTOR" AND dt_code = "ADDRESS" THEN + SET tmp = (SELECT JSON_OBJECT("source", d_src, "type", dt_code, "label", d_name, "desc", + concat(M_DoctorAddressDescription, '\n\n', m_kelurahanname, ', ', m_districtname, + '\n', m_cityname, ', ', m_provincename)) + FROM m_doctoraddress + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_DoctorAddressRegionalCd), "") = reg_kel.regional_cd + left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd + left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd + left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + WHERE M_DoctorAddressID = ad_id); + + IF rst = "" THEN SET rst = tmp; ELSE SET rst = CONCAT(rst, ",", tmp); END IF; + + ELSEIF d_src = "PATIENT" AND (dt_code = "WHATSAPP" OR dt_code = "TELEGRAM") THEN + SET tmp = (SELECT JSON_OBJECT("source", d_src, "type", dt_code, "label", d_name, "desc", M_PatientHP) + FROM m_patient + WHERE M_PatientID = patient_id); + + IF rst = "" THEN SET rst = tmp; ELSE SET rst = CONCAT(rst, ",", tmp); END IF; + + ELSEIF d_src = "DOCTOR" AND (dt_code = "EMAIL") THEN + SET tmp = (SELECT JSON_OBJECT("source", d_src, "type", dt_code, "label", d_name, "desc", M_DoctorEmail) + FROM m_doctor + WHERE M_DoctorID = doctor_id); + + + IF rst = "" THEN SET rst = tmp; ELSE SET rst = CONCAT(rst, ",", tmp); END IF; + + ELSEIF d_src = "PATIENT" AND (dt_code = "EMAIL") THEN + SET tmp = (SELECT JSON_OBJECT("source", d_src, "type", dt_code, "label", d_name, "desc", M_PatientEmail) + FROM m_patient + WHERE M_PatientID = patient_id); + + IF rst = "" THEN SET rst = tmp; ELSE SET rst = CONCAT(rst, ",", tmp); END IF; + + END IF; + + END LOOP; + CLOSE c1; + + SELECT concat("[", rst, "]") delivery; + +END $$ + +DROP PROCEDURE IF EXISTS `sp_fo_register_load` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_fo_register_load`(IN `orderid` int) +BEGIN + + + +DECLARE o_id INTEGER DEFAULT 0; + +DECLARE p_tmp VARCHAR(12000) DEFAULT ""; + +DECLARE d_tmp VARCHAR(12000) DEFAULT ""; + +DECLARE da_tmp VARCHAR(12000) DEFAULT ""; + +DECLARE c_tmp VARCHAR(12000) DEFAULT ""; + +DECLARE m_tmp VARCHAR(12000) DEFAULT ""; + +DECLARE t_tmp VARCHAR(12000) DEFAULT ""; + +DECLARE r_tmp VARCHAR(12000) DEFAULT ""; + +DECLARE o_tmp VARCHAR(12000) DEFAULT ""; + + + +DECLARE p_id INTEGER DEFAULT 0; + +DECLARE p_age VARCHAR(50) DEFAULT ""; + +DECLARE m_id INTEGER DEFAULT 0; + +DECLARE c_id INTEGER DEFAULT 0; + + + +DECLARE d_id INTEGER DEFAULT 0; + + + +SET o_id = orderid; + + + +IF o_id IS NOT NULL THEN + + SELECT T_OrderHeaderM_PatientID, T_OrderHeaderM_PatientAge, T_OrderHeaderSenderM_DoctorID, T_OrderHeaderM_MouID, T_OrderHeaderM_CompanyID + + INTO p_id, p_age, d_id, m_id, c_id + + FROM t_orderheader WHERE T_OrderHeaderID = o_id; + + + + SELECT JSON_OBJECT("M_PatientID", M_PatientID, "M_PatientName", M_PatientName, "M_PatientNoReg", M_PatientNoReg, + + "M_PatientNote", M_PatientNote, + + "M_PatientAddress", CONCAT(M_PatientAddressDescription, "\\n\\n", M_KelurahanName, ", ", M_DistrictName, "\\n", M_CityName, ", ", M_ProvinceName), "M_PatientDOB", M_PatientDOB, + + "M_PatientHP", M_PatientHP, "patient_age", p_age) INTO p_tmp + + FROM m_patient + + LEFT JOIN m_patientaddress ON M_PatientID = M_PatientAddressM_PatientID AND M_PatientAddressIsActive = "Y" + + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientID = p_id + + LIMIT 1; + + + + SET da_tmp = (SELECT CONCAT('[', GROUP_CONCAT(JSON_OBJECT("M_DoctorAddressID", M_DoctorAddressID, "M_DoctorAddressDescription", M_DoctorAddressDescription) SEPARATOR ','), ']') FROM m_doctoraddress WHERE M_DoctorAddressM_DoctorID = d_id AND M_DoctorAddressIsActive = "Y"); + + + + SET d_tmp = (SELECT JSON_OBJECT("M_DoctorID", M_DoctorID, "M_DoctorIsDefault", M_DoctorIsDefault, + + "M_DoctorIsPJ", M_DoctorIsPJ, "M_DoctorName", IF(M_DoctorPrefix IS NULL OR M_DoctorPrefix = "", M_DoctorName, CONCAT(M_DoctorPrefix, " ", M_DoctorName) ), "search", IF(M_DoctorPrefix IS NULL OR M_DoctorPrefix = "", M_DoctorName, CONCAT(M_DoctorPrefix, " ", M_DoctorName) ) ) + + FROM m_doctor + + WHERE M_DoctorID = d_id); + + + + SET c_tmp = (SELECT JSON_OBJECT("M_CompanyID", M_CompanyID, "M_CompanyName", M_CompanyName, "search", M_CompanyName) + + FROM m_company WHERE M_CompanyID = c_id); + + + + SET m_tmp = (SELECT JSON_OBJECT("M_MouEndDate", M_MouEndDate, "M_MouID", M_MouID, "M_MouName", M_MouName, "M_MouStartDate", M_MouStartDate) + + FROM m_mou WHERE M_MouID = m_id); + + + + SET t_tmp = (SELECT CONCAT('[', GROUP_CONCAT(JSON_OBJECT("T_TestID", T_TestID, "T_TestName", T_TestName, "IsFromPanel", "N", "T_TestRequirement", T_TestRequirement, "T_PriceID", 0, "T_PriceT_TestID", T_OrderDetailT_TestID, "T_PriceIsCito", T_OrderDetailIsCito, "T_PriceM_CompanyID", c_id, "T_PriceM_MouID", m_id, "T_PricePriority", 0, "T_PriceAmount", T_OrderDetailPriceForDisc, "T_PriceDisc", T_OrderDetailDisc, "T_PriceDiscRp", T_OrderDetailDiscAmount, "T_PriceIsActive", "Y", "T_PriceCreated", now(), "T_PriceLastUpdated", now(), "T_TestIsCito", T_OrderDetailIsCito) SEPARATOR ','), ']') + + FROM t_orderdetail + + JOIN t_test ON T_OrderDetailT_TestID = T_TestID + + WHERE T_OrderDetailIsActive = "Y" AND T_OrderDetailT_TestIsPrice = "Y" + + AND T_OrderDetailT_OrderHeaderID = o_id); + + + + SET r_tmp = (SELECT CONCAT('[', GROUP_CONCAT(JSON_OBJECT("label", T_TestRequirement, "error_message", "Hasil harus di isi", "is_error", false, "checked", IF(T_OrderDetailReq = "N", false, true), "note", T_OrderDetailReqNote) SEPARATOR ','), ']') + + FROM t_orderdetail + + JOIN t_test on T_OrderDetailT_TestID = T_TestID + + WHERE T_OrderDetailIsActive = "Y" AND T_OrderDetailT_TestIsPrice = "Y" + + AND T_OrderDetailT_OrderHeaderID = o_id); + + + + SET o_tmp = (SELECT JSON_OBJECT("rec_sample", T_OrderHeaderReceivedSample) FROM t_orderheader + + WHERE T_OrderHeaderID = orderid); + + + + SELECT "OK" as status, CONCAT('{"patient":', p_tmp, ', + + "doctor":', d_tmp,', + + "doctor_address":', da_tmp,', + + "company":', c_tmp,', + + "mou":', m_tmp,', + + "test":', t_tmp,', + + "req":', r_tmp,', + + "order":', o_tmp,'}') as data, "" as message; + + + +ELSE + + SELECT "ERR" as status, "" as data, "" as message; + +END IF; + + + + + +END $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_hasil_framingham` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_hasil_framingham`(IN `PID` int, IN `username` varchar(100)) +select +fn_get_name( T_OrderHeaderM_PatientID ) AS M_PatientName, +Framingham_DataT_OrderHeaderID , +concat(Framingham_DataSistolic , " mmHg") as Framingham_DataSistolic , +Framingham_DataDiastolic, +concat(Framingham_DataChol, " mg/dl") as Framingham_DataChol, + concat(Framingham_DataHDL, " mg/dl") as Framingham_DataHDL, + Framingham_DataInAtrialFibrillation, +if(Framingham_DataOnAntiHypertensiveRx = 'Y' , "Ya" , "Tidak") as Framingham_DataOnAntiHypertensiveRx, +if(Framingham_DataHistoryofSmoking = 'Y' , "Ya" , "Tidak") as Framingham_DataHistoryofSmoking , +if(Framingham_DataHistoryofDiabetes = 'Y' , "Ya" , "Tidak") as Framingham_DataHistoryofDiabetes, +if(Framingham_DataHistoryofPeripheralVascular = 'Y' , "Ya" , "Tidak") as Framingham_DataHistoryofPeripheralVascular, + Framingham_DataECGLVH, + Framingham_DataCalculated10RiskofCHD, + Framingham_DataCalculated10RiskofStroke, +concat(Framingham_DataCalculated10RiskofCardiovascular , " %") as Framingham_DataCalculated10RiskofCardiovascular, +Framingham_RiskOfChdSystolic , +Framingham_RiskOfChdSmooking, +Framingham_RiskOfChdCholHdl, +Framingham_RiskOfChdEcg, +Framingham_RiskOfChdAge, +Framingham_RiskOfChdDiabet , +Framingham_RiskOfChdResult1, +Framingham_RiskOfChdResult2 , +Framingham_RiskOfChdResult3 , +Framingham_RiskOfChdResult4 , +Framingham_RiskOfChdResultFinal , +Framingham_RiskOfChdResultFinalPercent , +Framingham_RiskOfChdCardiovascularRisk , +Framingham_RiskOfChdCardiovascularRiskPercent, +Framingham_RiskOfStrokeAge , +Framingham_RiskOfStrokeSystolic , +Framingham_RiskOfStrokeHipertensi, +Framingham_RiskOfStrokeDiabet , +Framingham_RiskOfStrokeSmooking , +Framingham_RiskOfStrokeVascularDisease , +Framingham_RiskOfStrokeAtrialFIB , +Framingham_RiskOfStrokeEcg , +Framingham_RiskOfStrokeHipertensi2 , +Framingham_RiskOfStrokeResult1 , +Framingham_RiskOfStrokeFinal , +Framingham_RiskOfStrokeFinalPercent, + +T_OrderHeaderDate , +T_OrderHeaderLabNumber, + T_OrderHeaderLabNumberExt , +DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") AS M_PatientDOB, +M_PatientHP , +M_PatientPhone , +M_PatientEmail, +M_PatientIDNumber, +M_PatientNote, +M_PatientNIK, +M_PatientJabatan, +M_PatientKedudukan, +M_PatientPJ, +M_PatientLocation , +M_PatientJob, +(SELECT concat(M_PatientAddressDescription, ' ' , M_DistrictName, " " ,M_CityName) from m_patientaddress AS p +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , +M_CompanyName, +M_CompanyAddress , +T_OrderHeaderM_PatientAge ,M_SexName,M_SexCode, +CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix," ",pj.M_DoctorSufix2," ",pj.M_DoctorSufix3) AS DokterPJ , +case +when Framingham_DataCalculated10RiskofCardiovascular >= 20 then "Tinggi" +when Framingham_DataCalculated10RiskofCardiovascular >= '10.01' and Framingham_DataCalculated10RiskofCardiovascular < '19.99' then "Sedang" +when Framingham_DataCalculated10RiskofCardiovascular < 10 then "Rendah" + + else "" end as hasil + +from framingham_data +join t_orderheader ON Framingham_DataT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y' + join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' + join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' + join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' + join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y' + join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y' +join framingham_riskofchd ON Framingham_RiskOfChdFramingham_DataID = Framingham_DataID and Framingham_RiskOfChdIsActive = 'Y' +join framingham_riskofstroke ON Framingham_RiskOfStrokeFramingham_DataID = Framingham_DataID and Framingham_RiskOfStrokeIsActive = 'Y' + join m_doctor pj ON T_OrderHeaderPjM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' +where Framingham_DataIsActive = 'Y' +and +Framingham_DataT_OrderHeaderID = PID $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_hasil_header` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_hasil_header`(IN `PID` int, IN `username` varchar(100)) +select + + DATE_FORMAT(T_OrderHeaderDate, "%d-%m-%Y") as T_OrderHeaderDate , + +T_OrderHeaderLabNumber , + +concat(M_TitleName ,". " , M_PatientName) as M_PatientName, + +m_sexname as Gender, + +M_PatientNoReg, + +M_PatientDOB, + +T_OrderHeaderM_PatientAge, + +M_CompanyName as CorporateName, + +(SELECT concat(M_PatientAddressDescription, ' ' , M_DistrictName, " " ,M_CityName) from m_patientaddress AS p + +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + + + WHERE M_PatientAddressM_PatientID = M_PatientID + + ORDER BY M_PatientAddressM_PatientID + + LIMIT 1) AS M_PatientAddress, + +M_PatientHp , + +M_PatientEmail, + +'' as M_PatientAddressCity, + +'' as M_PatientAddressState, + + + +M_CompanyName as CorporateAddress, + +M_CompanyEmail as CorporateEmail , + +M_CompanyPhone as CorporatePhone, + +M_CompanyAddressCity as CorporateAddressCity, + +'' as CorporateAddressState, + +CONCAT(ifnull(pj .M_DoctorPrefix,"")," ",ifnull(pj .M_DoctorPrefix2,"")," ",pj.M_DoctorName," ",ifnull(pj .M_DoctorSufix,"")," ",ifnull(pj .M_DoctorSufix2,"") ) AS M_DoctorName , + + CONCAT(ifnull(pjj .M_DoctorPrefix,"")," ",ifnull(pjj .M_DoctorPrefix2,"")," ",pjj.M_DoctorName," ",ifnull(pjj .M_DoctorSufix,"")," ",ifnull(pjj .M_DoctorSufix2,"") ) AS M_DoctorName2 , + +CONCAT(DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") ," / ",T_OrderHeaderM_PatientAge) AS Umur, + +M_PatientNIP, + +M_PatientJob, + +M_PatientPosisi, + +M_PatientDivisi, + +M_PatientLocation, + +concat(M_PatientDepartement ," - " ,M_PatientNIP ) as M_PatientDepartement + + + + + +from t_orderheader + +left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' + +left join m_sex ON M_PatientM_SexID = M_SexID + +left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' + + join m_company on T_OrderHeaderM_CompanyID = M_CompanyID and M_CompanyIsActive = 'Y' + +left join m_doctor pjj ON T_OrderHeaderPj2M_DoctorID= pjj.M_DoctorID and pjj.M_DoctorIsActive = 'Y' + + left join m_doctor pj ON T_OrderHeaderPjM_DoctorID = pj .M_DoctorID AND pj .M_DoctorIsActive = 'Y' + +where + + T_OrderHeaderID = PID and T_OrderHeaderIsActive = 'Y' $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_hasil_header_nonLab` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_hasil_header_nonLab`(IN `PID` int, IN `username` varchar(100)) +select + +DATE_FORMAT(T_OrderHeaderDate, "%d-%m-%Y") as T_OrderHeaderDate , + +T_OrderHeaderLabNumber , + + concat(M_TitleName ,". " , M_PatientName) as M_PatientName, + +m_sexname as Gender, + +M_PatientNoReg, + +M_PatientDOB, + +T_OrderHeaderM_PatientAge, + +M_CompanyName as CorporateName, + +(SELECT concat(M_PatientAddressDescription, ' ' , M_DistrictName, " " ,M_CityName) from m_patientaddress AS p + +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + + + WHERE M_PatientAddressM_PatientID = M_PatientID + + ORDER BY M_PatientAddressM_PatientID + + LIMIT 1) AS M_PatientAddress, + +M_PatientHp , + +M_PatientEmail, + +'' as M_PatientAddressCity, + +(SELECT concat(M_PatientAddressDescription, ' ' , M_DistrictName, " " ,M_CityName) from m_patientaddress AS p + +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + + + WHERE M_PatientAddressM_PatientID = M_PatientID + + ORDER BY M_PatientAddressM_PatientID + + LIMIT 1) AS M_PatientAddressState, + +M_CompanyAddress as CorporateAddress, + +M_CompanyEmail , + +M_CompanyPhone, + +M_CompanyAddressCity, + + '' as CorporateAddressState, + +CONCAT(ifnull(pj .M_DoctorPrefix,"")," ",ifnull(pj .M_DoctorPrefix2,"")," ",pj.M_DoctorName," ",ifnull(pj .M_DoctorSufix,"")," ",ifnull(pj .M_DoctorSufix2,"") ) AS M_DoctorName , + +CONCAT(ifnull(pjj .M_DoctorPrefix,"")," ",ifnull(pjj .M_DoctorPrefix2,"")," ",pjj.M_DoctorName," ",ifnull(pjj .M_DoctorSufix,"")," ",ifnull(pjj .M_DoctorSufix2,"") ) AS M_DoctorName2 , + +CONCAT(DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") ," / ",T_OrderHeaderM_PatientAge) AS Umur, + +M_PatientNIP, + +M_PatientJob, + +M_PatientPosisi, + +M_PatientDivisi, + +M_PatientLocation, + +concat(M_PatientDepartement ," - " ,M_PatientNIP ) as M_PatientDepartement + + + + + +from t_orderheader + + join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' + + join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' + + join m_company on T_OrderHeaderM_CompanyID = M_CompanyID and M_CompanyIsActive = 'Y' + +left join m_sex ON M_PatientM_SexID = M_SexID + +left join m_doctor pjj ON T_OrderHeaderPj2M_DoctorID= pjj.M_DoctorID and pjj.M_DoctorIsActive = 'Y' + + left join m_doctor pj ON T_OrderHeaderPjM_DoctorID = pj .M_DoctorID AND pj .M_DoctorIsActive = 'Y' + + join so_resultentry on So_ResultEntryT_OrderHeaderID = T_OrderHeaderID and So_ResultEntryIsActive = 'Y' + +where + + So_ResultEntryID = PID and T_OrderHeaderIsActive = 'Y' + + + +group by T_OrderHeaderID $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_hasil_preparasi_sperma` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_hasil_preparasi_sperma`(IN `PID` int, IN `username` varchar(100)) +select T_OrderHeaderLabNumber as nolabasli,T_OrderHeaderID , +DATE_FORMAT(NOW(), "%d-%m-%Y") AS Now, +DATE_FORMAT(T_OrderHeaderDate, "%d-%m-%Y %T") AS T_OrderHeaderDate, +T_OrderHeaderM_PatientAge, +M_SexName, +DATE_FORMAT(T_OrderHeaderCreated, "%d-%m-%Y %T") AS T_OrderHeaderCreated, +CONCAT(fn_lookup_external(T_OrderHeaderLabNumber,'L')," / ",M_PatientNoReg) AS PiID, +`fn_get_status_lunas`(T_OrderHeaderID) as status, +if( `fn_get_status_lunas`(T_OrderHeaderID) = 'N' , concat("",T_OrderHeaderLabNumberExt,""),T_OrderHeaderLabNumberExt) as T_OrderHeaderLabNumber, +T_OrderHeaderLabNumberExt as noex, +fn_get_name( T_OrderHeaderM_PatientID ) AS M_PatientName, + +M_PatientNoReg, + DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") AS M_PatientDOB, +CONCAT(T_OrderHeaderM_PatientAge," / ",M_SexName) AS Umur, +M_TitleName, +M_PatientHP ,M_PatientPhone, M_PatientEmail, +concat("http://localhost/one-api/v1/su/code128/?no=",M_PatientNoReg) AS Barcode, +M_CompanyName, +S_SystemsCompanyName , +concat(S_SystemsCompanyAddress," ",S_SystemsCompanyCity," "," Telp. ", S_SystemsCompanyPhone) as alamatcabang, +S_SystemsEmailAddress,S_SystemsCompanyCity, +CONCAT(mm.M_DoctorPrefix," ",mm.M_DoctorName," ",mm.M_DoctorSufix," ",mm.M_DoctorSufix2," ",mm.M_DoctorSufix3) AS M_DoctorName, +CONCAT(m.M_DoctorPrefix," ",m.M_DoctorName," ",m.M_DoctorSufix," ",m.M_DoctorSufix2," ",m.M_DoctorSufix3) AS M_Doctorkirim, +T_TestName, + +M_BranchName, +Other_PreparasiSpermaID, +Other_PreparasiSpermaM_DoctorID , +Other_PreparasiSpermaT_OrderDetailID, +Other_PreparasiSpermaPreMotilitasA, +Other_PreparasiSpermaPreMotilitasB, +Other_PreparasiSpermaPreMotilitasC , +Other_PreparasiSpermaPreKonsentrasi, +Other_PreparasiSpermaPreKontaminan , +Other_PreparasiSpermaPostMotilitasA , +Other_PreparasiSpermaPostMotilitasB , +Other_PreparasiSpermaPostMotilitasC, +Other_PreparasiSpermaPostKonsentrasi, +Other_PreparasiSpermaPostKontaminan , +Other_PreparasiSpermaNote, +if(Other_PreparasiSpermaImgType = "PRE" , " Pre Preparasi : " ,"Post Preparasi : ") as Other_PreparasiSpermaImgType , + Other_PreparasiSpermaImgNewName as new, + concat("http://localhost/one-media/one-image-nonlab/",Other_PreparasiSpermaImgNewName,"?ts=yymmddhhnnss") AS gambar, +CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix," ",pj.M_DoctorSufix2," ",pj.M_DoctorSufix3) AS DokterPJ , +(SELECT concat(M_PatientAddressDescription, ' ' , M_DistrictName, " " ,M_CityName) from m_patientaddress AS p +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , +M_MethodeSpermaName, +Other_PreparasiSpermaPreVolume ,Other_PreparasiSpermaPostVolume,M_No_FormRev + + +from other_preparasisperma +left join t_orderdetail on Other_PreparasiSpermaT_OrderDetailID = T_OrderDetailID and T_OrderDetailIsActive = 'Y' +left join t_orderheader on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y' +left join other_preparasisperma_img on Other_PreparasiSpermaImgT_OrderHeaderID = T_OrderHeaderID and Other_PreparasiSpermaImgIsActive = 'Y' + left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID +left join m_sex ON M_PatientM_SexID = M_SexID +left join m_title ON M_PatientM_TitleID = M_TitleID +left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID and M_CompanyIsActive = 'Y' +left join t_test ON T_TestID = T_OrderDetailT_TestID and T_TestIsActive = 'Y' +left join t_samplingso on T_SamplingSoT_OrderHeaderID = T_OrderHeaderID and T_SamplingSoT_TestID = T_TestID +left join m_doctor mm ON Other_PreparasiSpermaM_DoctorID = mm.M_DoctorID and mm.M_DoctorIsActive = 'Y' +left join m_doctor m ON T_OrderHeaderSenderM_DoctorID = m.M_DoctorID and m.M_DoctorIsActive = 'Y' +left join m_branch on M_BranchIsDefault = 'Y' +left join conf_systems on S_SystemsID > 0 + left join m_doctor pj ON T_OrderHeaderPjM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' +left join m_methodesperma on Other_PreparasiSpermaM_MethodeSpermaID = M_MethodeSpermaID and M_MethodeSpermaIsActive = 'Y' +LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "SPERMA" + +where T_OrderHeaderID = PID and Other_PreparasiSpermaIsActive = 'Y' $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_hasil_sk` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_hasil_sk`(IN `PID` int, IN `username` varchar(100)) +select +tanggal, +LetterOtherPekerjaan, +LetterOtherNumber, +M_CompanyName, +T_OrderHeaderDate , +T_OrderHeaderLabNumber , +T_OrderHeaderLabNumberExt, +M_PatientName, +T_OrderDetailT_TestName, +T_OrderDetailResult, +M_PatientIDNumber , + ttl,M_SexName, + M_PatientAddressDescription , +M_No_FormRev, +M_BranchName, +M_CityName , + header , +LetterOtherID , +M_PatientID , +LetterOtherT_OrderHeaderID , +LetterOtherNat_TestID, +LetterOtherT_TestSasCode, + Nat_TestName, +concat( +'Benar telah melakukan pemeriksaan ', + '',T_OrderDetailT_TestName, '', +' pada hari ' , +tanggal, + ' dengan hasil ' , +if((LetterOtherT_TestSasCode in ( '1063510001','10635500','1081300001' ,'10813125')) , concat('',T_OrderDetailT_TestName , ' ' , T_OrderDetailResult, '') ,hasil ) ,' , dengan data hasil pemeriksaan terlampir.' +) as hasil, +concat(M_CityName,", ", tanggalnow) as tanggalnow , + DokterPJ ,Dokter,qrcode + + +from +( + +select +CONCAT( + CASE DAYOFWEEK(`fn_get_date_sampling`(T_OrderDetailID)) + WHEN 1 THEN 'Minggu' + WHEN 2 THEN 'Senin' + WHEN 3 THEN 'Selasa' + WHEN 4 THEN 'Rabu' + WHEN 5 THEN 'Kamis' + WHEN 6 THEN 'Jumat' + WHEN 7 THEN 'Sabtu' + END,', ', + DAY(`fn_get_date_sampling`(T_OrderDetailID)),' ', + CASE MONTH(`fn_get_date_sampling`(T_OrderDetailID)) + WHEN 1 THEN 'Januari' + WHEN 2 THEN 'Februari' + WHEN 3 THEN 'Maret' + WHEN 4 THEN 'April' + WHEN 5 THEN 'Mei' + WHEN 6 THEN 'Juni' + WHEN 7 THEN 'Juli' + WHEN 8 THEN 'Agustus' + WHEN 9 THEN 'September' + WHEN 10 THEN 'Oktober' + WHEN 11 THEN 'November' + WHEN 12 THEN 'Desember' + END,' ', + YEAR(T_OrderHeaderDate) +) AS tanggal, + +CONCAT( + DAY(`fn_get_date_sampling`(T_OrderDetailID)),' ', + CASE MONTH(`fn_get_date_sampling`(T_OrderDetailID)) + WHEN 1 THEN 'Januari' + WHEN 2 THEN 'Februari' + WHEN 3 THEN 'Maret' + WHEN 4 THEN 'April' + WHEN 5 THEN 'Mei' + WHEN 6 THEN 'Juni' + WHEN 7 THEN 'Juli' + WHEN 8 THEN 'Agustus' + WHEN 9 THEN 'September' + WHEN 10 THEN 'Oktober' + WHEN 11 THEN 'November' + WHEN 12 THEN 'Desember' + END,' ', + YEAR(NOW()) +) AS tanggalnow, +LetterOtherPekerjaan, +LetterOtherNumber, +M_CompanyName, +T_OrderHeaderDate , +T_OrderHeaderLabNumber , +T_OrderHeaderLabNumberExt, +fn_get_name( T_OrderHeaderM_PatientID ) AS M_PatientName, + `fn_get_nattest`(LetterOtherNat_TestID) as T_OrderDetailT_TestName, +T_OrderDetailResult,M_PatientIDNumber , +concat(ifnull(M_PatientPOB,'') ,", ",DATE_FORMAT(M_PatientDOB, "%d - %m - %Y") ) as ttl,M_SexName, +(SELECT concat(M_PatientAddressDescription, ' ' , M_DistrictName, " " ,M_CityName) from m_patientaddress AS p +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , +M_No_FormRev, +concat(REPLACE(M_BranchName, "Pramita", "Cabang"), " " ,if(M_CityName like SUBSTRING(M_BranchName, 9), '',M_CityName )) as M_BranchName, +M_CityName , +concat( 'Yang bertanda tangan dibawah ini, Laboratorium Klinik ' ,M_BranchName, ' ' ,if(M_CityName like SUBSTRING(M_BranchName, 9), '',M_CityName ), ' Menerangkan dengan sesungguhnya bahwa :') as header ,LetterOtherID ,M_PatientID , +LetterOtherT_OrderHeaderID , +LetterOtherNat_TestID, +LetterOtherT_TestSasCode, Nat_TestName, +if ( LetterOtherT_TestSasCode = '10635000' , concat('',if(Nat_TestShortName = 'Kesimpulan','SARS-CoV-2 (RT-PCR)', Nat_TestShortName)," ", if(T_OrderDetailResult like '%non%', 'Non Reaktif' , 'Reaktif'),'') , + group_concat( concat('',if(Nat_TestShortName = 'Kesimpulan','SARS-CoV-2 (RT-PCR)', Nat_TestShortName)," ", +(case +when T_OrderDetailResult like 'reaktif%' then 'Reaktif' +when T_OrderDetailResult like 'non reaktif%' then 'Non Reaktif' +else T_OrderDetailResult end) +,'') + separator ' dan ')) as hasil , + +if((LetterOtherM_DoctorID is null or LetterOtherM_DoctorID = '0') , +CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2," ",p.M_DoctorSufix3), +CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix," ",pj.M_DoctorSufix2," ",pj.M_DoctorSufix3)) AS DokterPJ , + +if((LetterOtherM_DoctorID is null or LetterOtherM_DoctorID = '0') ,"Dokter Penanggung Jawab" ,"Dokter Pemeriksa") AS Dokter, + concat("http://localhost/one-api/chart/the_qr/v3/",T_OrderHeaderID,"/",DATE_FORMAT(now(), "%d-%m-%Y%T") ) AS qrcode + +from letter_other +left join t_orderheader on LetterOtherT_OrderHeaderID = T_OrderHeaderID +left join m_company on T_OrderHeaderM_CompanyID = M_CompanyID +left join t_orderdetail on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID + and (LetterOtherT_TestSasCode = T_OrderDetailT_TestSasCode or LetterOtherT_TestSasCode like '%1063490%' or LetterOtherT_TestSasCode like '%10635600%' or LetterOtherT_TestSasCode like '%10813050%' + or LetterOtherT_TestSasCode like '%PN057810634900%' or LetterOtherT_TestSasCode like '%10813125%') + and T_OrderDetailIsActive = 'Y' and T_OrderDetailT_TestIsResult = 'Y' +left join m_patient on T_OrderHeaderM_PatientID = M_PatientID +LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "SK" +left join m_branch on M_BranchIsDefault = 'Y' +left join m_city on M_BranchM_CityID = M_CityID +left join m_sex on M_PatientM_SexID = M_SexID +left join t_test on T_OrderDetailT_TestID = T_TestID +left join nat_test on T_TestNat_TestID = Nat_TestID + left join m_doctor pj ON LetterOtherM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' + left join m_doctor p ON T_OrderHeaderPjM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' +where LetterOtherID = PID and LetterOtherIsActive = 'Y' + and ( SUBSTRING(T_OrderDetailT_TestSasCode , 7,20) + in ('10634900','1063490001','PN05781063490001','PN05781063490002','1063490002','10635000', +'1063510001','10813100','1081300001','10813050','10635500','1063590001', +'108130500108','10635600','1063560001','1063560002','10635200','10635400','10635550' +,'PN086610635400','10635575','10813125','1081312506') + +or + + T_OrderDetailT_TestSasCode + in ('10634900','1063490001','PN05781063490001','PN05781063490002','1063490002','10635000', +'1063510001','10813100','1081300001','10813050','10635500','1063590001', +'108130500108','10635600','1063560001','1063560002','10635200','10635400','10635550' +,'PN086610635400','10635575','10813125','1081312506') + +or +Nat_TestShortName = 'Kesimpulan' + ) + +group by LetterOtherID) as x $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_hasil_sk_1` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_hasil_sk_1`(IN `PID` int, IN `username` varchar(100)) +select +concat( +'Benar telah melakukan pemeriksaan ', + '',T_OrderDetailT_TestName, '', +' pada tanggal ' , +tanggal, + ' dengan data hasil pemeriksaan ' , concat('',T_OrderDetailT_TestName , '') ,' terlampir.' +) as hasil, + +tanggal, +LetterOtherPekerjaan, +LetterOtherNumber, +M_CompanyName, +M_CompanyAddress, +T_OrderHeaderDate , +T_OrderHeaderLabNumber , +T_OrderHeaderLabNumberExt, +M_PatientName, +T_OrderDetailT_TestName, +T_OrderDetailResult, +M_PatientIDNumber , + ttl,M_SexName, + M_PatientAddressDescription , +M_No_FormRev, +M_BranchName, +M_CityName , + header , +LetterOtherID , +M_PatientID , +LetterOtherT_OrderHeaderID , +LetterOtherNat_TestID, +LetterOtherT_TestSasCode, + Nat_TestName, + Nat_TestShortName, +concat(M_CityName,", ", tanggalnow) as tanggalnow , + DokterPJ ,Dokter, +if(M_CompanyName IN ( 'PASIEN MANDIRI','PASIEN KLINISI'), M_PatientAddressDescription ,M_CompanyName ) as alamat,qrcode + + +from +( + +select +CONCAT( + CASE DAYOFWEEK(`fn_get_date_sampling`(T_OrderDetailID)) + WHEN 1 THEN 'Minggu' + WHEN 2 THEN 'Senin' + WHEN 3 THEN 'Selasa' + WHEN 4 THEN 'Rabu' + WHEN 5 THEN 'Kamis' + WHEN 6 THEN 'Jumat' + WHEN 7 THEN 'Sabtu' + END,', ', + DAY(`fn_get_date_sampling`(T_OrderDetailID)),' ', + CASE MONTH(`fn_get_date_sampling`(T_OrderDetailID)) + WHEN 1 THEN 'Januari' + WHEN 2 THEN 'Februari' + WHEN 3 THEN 'Maret' + WHEN 4 THEN 'April' + WHEN 5 THEN 'Mei' + WHEN 6 THEN 'Juni' + WHEN 7 THEN 'Juli' + WHEN 8 THEN 'Agustus' + WHEN 9 THEN 'September' + WHEN 10 THEN 'Oktober' + WHEN 11 THEN 'November' + WHEN 12 THEN 'Desember' + END,' ', + YEAR(`fn_get_date_sampling`(T_OrderDetailID)) +) AS tanggal, + +CONCAT( + DAY(`fn_get_date_sampling`(T_OrderDetailID)),' ', + CASE MONTH(`fn_get_date_sampling`(T_OrderDetailID)) + WHEN 1 THEN 'Januari' + WHEN 2 THEN 'Februari' + WHEN 3 THEN 'Maret' + WHEN 4 THEN 'April' + WHEN 5 THEN 'Mei' + WHEN 6 THEN 'Juni' + WHEN 7 THEN 'Juli' + WHEN 8 THEN 'Agustus' + WHEN 9 THEN 'September' + WHEN 10 THEN 'Oktober' + WHEN 11 THEN 'November' + WHEN 12 THEN 'Desember' + END,' ', + YEAR(NOW()) +) AS tanggalnow, +LetterOtherPekerjaan, +LetterOtherNumber, +M_CompanyName, +T_OrderHeaderDate , +T_OrderHeaderLabNumber , +T_OrderHeaderLabNumberExt, +fn_get_name( T_OrderHeaderM_PatientID ) AS M_PatientName, + T_OrderDetailT_TestName, + M_PatientIDNumber , + DATE_FORMAT(ifnull(M_PatientPOB,""), "%d - %m - %Y") as ttl,M_SexName, +(SELECT concat(M_PatientAddressDescription, ' ' , M_DistrictName, " " ,M_CityName) from m_patientaddress AS p +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , +M_No_FormRev,M_CompanyAddress, +concat(REPLACE(M_BranchName, "Pramita", "Cabang"), " " ,if(M_CityName like SUBSTRING(M_BranchName, 9), '',M_CityName )) as M_BranchName, +M_CityName , +concat( 'Yang bertanda tangan dibawah ini, Laboratorium Klinik ' ,M_BranchName, ' ' ,if(M_CityName like SUBSTRING(M_BranchName, 9), '',M_CityName ), ' Menerangkan dengan sesungguhnya bahwa :') as header ,LetterOtherID ,M_PatientID , +LetterOtherT_OrderHeaderID , +LetterOtherNat_TestID, +LetterOtherT_TestSasCode, Nat_TestName,Nat_TestShortName,T_OrderDetailResult , + +if((LetterOtherM_DoctorID is null or LetterOtherM_DoctorID = '0') , +CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2," ",p.M_DoctorSufix3), +CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix," ",pj.M_DoctorSufix2," ",pj.M_DoctorSufix3)) AS DokterPJ , + +if((LetterOtherM_DoctorID is null or LetterOtherM_DoctorID = '0') ,"Dokter Penanggung Jawab" ,"Dokter Pemeriksa") AS Dokter, + concat("http://localhost/one-api/chart/the_qr/v3/",T_OrderHeaderID,"/",DATE_FORMAT(now(), "%d-%m-%Y%T") ) AS qrcode +from letter_other +left join t_orderheader on LetterOtherT_OrderHeaderID = T_OrderHeaderID +left join m_company on T_OrderHeaderM_CompanyID = M_CompanyID +left join t_orderdetail on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID + and (LetterOtherT_TestSasCode = T_OrderDetailT_TestSasCode or LetterOtherT_TestSasCode like '%1063490%' or LetterOtherT_TestSasCode like '%10635600%' or LetterOtherT_TestSasCode like '%10813050%' + or LetterOtherT_TestSasCode like '%PN057810634900%' or LetterOtherT_TestSasCode like '%10813125%') + and T_OrderDetailIsActive = 'Y' and T_OrderDetailT_TestIsResult = 'N' +left join m_patient on T_OrderHeaderM_PatientID = M_PatientID +LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "SK" +left join m_branch on M_BranchIsDefault = 'Y' +left join m_city on M_BranchM_CityID = M_CityID +left join m_sex on M_PatientM_SexID = M_SexID +left join t_test on T_OrderDetailT_TestID = T_TestID +left join nat_test on T_TestNat_TestID = Nat_TestID + left join m_doctor pj ON LetterOtherM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' + left join m_doctor p ON T_OrderHeaderPjM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' +where LetterOtherID = PID and LetterOtherIsActive = 'Y' and T_OrderDetailValidation = 'Y' + and ( SUBSTRING(T_OrderDetailT_TestSasCode , 7,20) + in ('10634900','1063490001','PN05781063490001','PN05781063490002','1063490002','10635000', +'1063510001','10813100','1081300001','10813050','10635500', +'108130500105','10635600','1063560001','1063560002','108130500101','108130500102','10635200','10635400','10635550' +,'PN086610635400','10635575','10813125','1081312505') + +or + + T_OrderDetailT_TestSasCode + in ('10634900','1063490001','PN05781063490001','PN05781063490002','1063490002','10635000', +'1063510001','10813100','1081300001','10813050','10635500', +'108130500105','10635600','1063560001','1063560002','108130500101','108130500102','10635200','10635400','10635550' +,'PN086610635400','10635575','10813125','1081312505') + +or +Nat_TestShortName = 'Kesimpulan' + + ) + ) as x $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_hasil_sk_2` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_hasil_sk_2`(IN `PID` int, IN `username` varchar(100)) +select +concat( +'Benar telah melakukan pemeriksaan ', + '',T_OrderDetailT_TestName, '', +' Antigen test dengan sample yang diambil dari swab Nasofaring pada tanggal ' , +tanggal, + ' data hasil pemeriksaan ' , concat('',T_OrderDetailT_TestName , '') ,' Antigen test terlampir.' +) as hasil, + +tanggal, +LetterOtherPekerjaan, +LetterOtherNumber, +M_CompanyName, +M_CompanyAddress, +T_OrderHeaderDate , +T_OrderHeaderLabNumber , +T_OrderHeaderLabNumberExt, +M_PatientName, +T_OrderDetailT_TestName, +T_OrderDetailResult, +M_PatientIDNumber , + ttl,M_SexName, + M_PatientAddressDescription , +M_No_FormRev, +M_BranchName, +M_CityName , + header , +LetterOtherID , +M_PatientID , +LetterOtherT_OrderHeaderID , +LetterOtherNat_TestID, +LetterOtherT_TestSasCode, + Nat_TestName, + Nat_TestShortName, +concat(M_CityName,", ", tanggalnow) as tanggalnow , + DokterPJ ,Dokter, +if(M_CompanyName IN ( 'PASIEN MANDIRI','PASIEN KLINISI'), M_PatientAddressDescription ,M_CompanyName ) as alamat,qrcode + + +from +( + +select +CONCAT( + CASE DAYOFWEEK(`fn_get_date_sampling`(T_OrderDetailID)) + WHEN 1 THEN 'Minggu' + WHEN 2 THEN 'Senin' + WHEN 3 THEN 'Selasa' + WHEN 4 THEN 'Rabu' + WHEN 5 THEN 'Kamis' + WHEN 6 THEN 'Jumat' + WHEN 7 THEN 'Sabtu' + END,', ', + DAY(`fn_get_date_sampling`(T_OrderDetailID)),' ', + CASE MONTH(`fn_get_date_sampling`(T_OrderDetailID)) + WHEN 1 THEN 'Januari' + WHEN 2 THEN 'Februari' + WHEN 3 THEN 'Maret' + WHEN 4 THEN 'April' + WHEN 5 THEN 'Mei' + WHEN 6 THEN 'Juni' + WHEN 7 THEN 'Juli' + WHEN 8 THEN 'Agustus' + WHEN 9 THEN 'September' + WHEN 10 THEN 'Oktober' + WHEN 11 THEN 'November' + WHEN 12 THEN 'Desember' + END,' ', + YEAR(`fn_get_date_sampling`(T_OrderDetailID)) +) AS tanggal, + +CONCAT( + DAY(`fn_get_date_sampling`(T_OrderDetailID)),' ', + CASE MONTH(`fn_get_date_sampling`(T_OrderDetailID)) + WHEN 1 THEN 'Januari' + WHEN 2 THEN 'Februari' + WHEN 3 THEN 'Maret' + WHEN 4 THEN 'April' + WHEN 5 THEN 'Mei' + WHEN 6 THEN 'Juni' + WHEN 7 THEN 'Juli' + WHEN 8 THEN 'Agustus' + WHEN 9 THEN 'September' + WHEN 10 THEN 'Oktober' + WHEN 11 THEN 'November' + WHEN 12 THEN 'Desember' + END,' ', + YEAR(NOW()) +) AS tanggalnow, +LetterOtherPekerjaan, +LetterOtherNumber, +M_CompanyName, +T_OrderHeaderDate , +T_OrderHeaderLabNumber , +T_OrderHeaderLabNumberExt, +fn_get_name( T_OrderHeaderM_PatientID ) AS M_PatientName, + T_OrderDetailT_TestName, + M_PatientIDNumber , + DATE_FORMAT(ifnull(M_PatientPOB,""), "%d - %m - %Y") as ttl,M_SexName, +(SELECT concat(M_PatientAddressDescription, ' ' , M_DistrictName, " " ,M_CityName) from m_patientaddress AS p +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , +M_No_FormRev,M_CompanyAddress, +concat(REPLACE(M_BranchName, "Pramita", "Cabang"), " " ,if(M_CityName like SUBSTRING(M_BranchName, 9), '',M_CityName )) as M_BranchName, +M_CityName , +concat( 'Yang bertanda tangan dibawah ini, Laboratorium Klinik ' ,M_BranchName, ' ' ,if(M_CityName like SUBSTRING(M_BranchName, 9), '',M_CityName ), ' Menerangkan dengan sesungguhnya bahwa :') as header ,LetterOtherID ,M_PatientID , +LetterOtherT_OrderHeaderID , +LetterOtherNat_TestID, +LetterOtherT_TestSasCode, Nat_TestName,Nat_TestShortName,T_OrderDetailResult , + +if((LetterOtherM_DoctorID is null or LetterOtherM_DoctorID = '0') , +CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2," ",p.M_DoctorSufix3), +CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix," ",pj.M_DoctorSufix2," ",pj.M_DoctorSufix3)) AS DokterPJ , + +if((LetterOtherM_DoctorID is null or LetterOtherM_DoctorID = '0') ,"Dokter Penanggung Jawab" ,"Dokter Pemeriksa") AS Dokter, + concat("http://localhost/one-api/chart/the_qr/v3/",T_OrderHeaderID,"/",DATE_FORMAT(now(), "%d-%m-%Y%T") ) AS qrcode +from letter_other +left join t_orderheader on LetterOtherT_OrderHeaderID = T_OrderHeaderID +left join m_company on T_OrderHeaderM_CompanyID = M_CompanyID +left join t_orderdetail on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID + and (LetterOtherT_TestSasCode = T_OrderDetailT_TestSasCode or LetterOtherT_TestSasCode like '%1063490%' or LetterOtherT_TestSasCode like '%10635600%' or LetterOtherT_TestSasCode like '%10813050%' + or LetterOtherT_TestSasCode like '%PN057810634900%' or LetterOtherT_TestSasCode like '%10813125%') + and T_OrderDetailIsActive = 'Y' and T_OrderDetailT_TestIsResult = 'Y' +left join m_patient on T_OrderHeaderM_PatientID = M_PatientID +LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "SK" +left join m_branch on M_BranchIsDefault = 'Y' +left join m_city on M_BranchM_CityID = M_CityID +left join m_sex on M_PatientM_SexID = M_SexID +left join t_test on T_OrderDetailT_TestID = T_TestID +left join nat_test on T_TestNat_TestID = Nat_TestID + left join m_doctor pj ON LetterOtherM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' + left join m_doctor p ON T_OrderHeaderPjM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' +where LetterOtherID = PID and LetterOtherIsActive = 'Y' and T_OrderDetailValidation = 'Y' + and ( SUBSTRING(T_OrderDetailT_TestSasCode , 7,20) + in ('10634900','1063490001','PN05781063490001','PN05781063490002','1063490002','10635000', +'1063510001','10813100','1081300001','10813050','10635500', +'108130500105','10635600','1063560001','1063560002','108130500101','108130500102','10635200','10635400','10635550' +,'PN086610635400','10635575','10813125','1081312505') + +or + + T_OrderDetailT_TestSasCode + in ('10634900','1063490001','PN05781063490001','PN05781063490002','1063490002','10635000', +'1063510001','10813100','1081300001','10813050','10635500', +'108130500105','10635600','1063560001','1063560002','108130500101','108130500102','10635200','10635400','10635550' +,'PN086610635400','10635575','10813125','1081312505') + ) + ) as x $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_hasil_sk_3` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_hasil_sk_3`(IN `PID` int, IN `username` char(100)) +select T_OrderDetailT_TestIsResult , +concat( +'Benar telah melakukan pemeriksaan ', + '','Rapid Test Covid-19 IgM/IgG', '', +' pada tanggal ' , +tanggal, + ' data hasil : ' +) as hasil, + +tanggal, +LetterOtherPekerjaan, +LetterOtherNumber, +M_CompanyName, +M_CompanyAddress, +T_OrderHeaderDate , +T_OrderHeaderLabNumber , +T_OrderHeaderLabNumberExt, +M_PatientName, +T_OrderDetailT_TestName, +T_OrderDetailResult, +M_PatientIDNumber , + ttl,M_SexName, + M_PatientAddressDescription , +M_No_FormRev, +M_BranchName, +M_CityName , + header , +LetterOtherID , +M_PatientID , +LetterOtherT_OrderHeaderID , +LetterOtherNat_TestID, +LetterOtherT_TestSasCode, + Nat_TestName, + Nat_TestShortName, +concat(M_CityName,", ", tanggalnow) as tanggalnow , + DokterPJ ,Dokter, +if(M_CompanyName IN ( 'PASIEN MANDIRI','PASIEN KLINISI'), M_PatientAddressDescription ,M_CompanyAddress ) as alamat,qrcode + + +from +( + +select T_OrderDetailT_TestIsResult , +CONCAT( + CASE DAYOFWEEK(`fn_get_date_sampling`(T_OrderDetailID)) + WHEN 1 THEN 'Minggu' + WHEN 2 THEN 'Senin' + WHEN 3 THEN 'Selasa' + WHEN 4 THEN 'Rabu' + WHEN 5 THEN 'Kamis' + WHEN 6 THEN 'Jumat' + WHEN 7 THEN 'Sabtu' + END,', ', + DAY(`fn_get_date_sampling`(T_OrderDetailID)),' ', + CASE MONTH(`fn_get_date_sampling`(T_OrderDetailID)) + WHEN 1 THEN 'Januari' + WHEN 2 THEN 'Februari' + WHEN 3 THEN 'Maret' + WHEN 4 THEN 'April' + WHEN 5 THEN 'Mei' + WHEN 6 THEN 'Juni' + WHEN 7 THEN 'Juli' + WHEN 8 THEN 'Agustus' + WHEN 9 THEN 'September' + WHEN 10 THEN 'Oktober' + WHEN 11 THEN 'November' + WHEN 12 THEN 'Desember' + END,' ', + YEAR(`fn_get_date_sampling`(T_OrderDetailID)) +) AS tanggal, + +CONCAT( + DAY(`fn_get_date_sampling`(T_OrderDetailID)),' ', + CASE MONTH(`fn_get_date_sampling`(T_OrderDetailID)) + WHEN 1 THEN 'Januari' + WHEN 2 THEN 'Februari' + WHEN 3 THEN 'Maret' + WHEN 4 THEN 'April' + WHEN 5 THEN 'Mei' + WHEN 6 THEN 'Juni' + WHEN 7 THEN 'Juli' + WHEN 8 THEN 'Agustus' + WHEN 9 THEN 'September' + WHEN 10 THEN 'Oktober' + WHEN 11 THEN 'November' + WHEN 12 THEN 'Desember' + END,' ', + YEAR(NOW()) +) AS tanggalnow, +LetterOtherPekerjaan, +LetterOtherNumber, +M_CompanyName, +T_OrderHeaderDate , +T_OrderHeaderLabNumber , +T_OrderHeaderLabNumberExt, +fn_get_name( T_OrderHeaderM_PatientID ) AS M_PatientName, + T_OrderDetailT_TestName, + M_PatientIDNumber , + DATE_FORMAT(ifnull(M_PatientPOB,""), "%d - %m - %Y") as ttl,M_SexName, +(SELECT concat(M_PatientAddressDescription, ' ' , M_DistrictName, " " ,M_CityName) from m_patientaddress AS p +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , +M_No_FormRev,M_CompanyAddress, +concat(REPLACE(M_BranchName, "Pramita", "Cabang"), " " ,if(M_CityName like SUBSTRING(M_BranchName, 9), '',M_CityName )) as M_BranchName, +M_CityName , +concat( 'Yang bertanda tangan dibawah ini, Laboratorium Klinik ' ,M_BranchName, ' ' ,if(M_CityName like SUBSTRING(M_BranchName, 9), '',M_CityName ), ' Menerangkan dengan sesungguhnya bahwa :') as header ,LetterOtherID ,M_PatientID , +LetterOtherT_OrderHeaderID , +LetterOtherNat_TestID, +LetterOtherT_TestSasCode, Nat_TestName,Nat_TestShortName,T_OrderDetailResult , + +if((LetterOtherM_DoctorID is null or LetterOtherM_DoctorID = '0') , +CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2," ",p.M_DoctorSufix3), +CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix," ",pj.M_DoctorSufix2," ",pj.M_DoctorSufix3)) AS DokterPJ , + +if((LetterOtherM_DoctorID is null or LetterOtherM_DoctorID = '0') ,"Dokter Penanggung Jawab" ,"Dokter Pemeriksa") AS Dokter, + concat("http://localhost/one-api/chart/the_qr/v3/",T_OrderHeaderID,"/",DATE_FORMAT(now(), "%d-%m-%Y%T") ) AS qrcode +from letter_other +left join t_orderheader on LetterOtherT_OrderHeaderID = T_OrderHeaderID +left join m_company on T_OrderHeaderM_CompanyID = M_CompanyID +left join t_orderdetail on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID + and (LetterOtherT_TestSasCode = T_OrderDetailT_TestSasCode or LetterOtherT_TestSasCode like '%1063490%' or LetterOtherT_TestSasCode like '%10635600%' or LetterOtherT_TestSasCode like '%10813050%' + or LetterOtherT_TestSasCode like '%PN057810634900%' or LetterOtherT_TestSasCode like '%10813125%') + and T_OrderDetailIsActive = 'Y' +left join m_patient on T_OrderHeaderM_PatientID = M_PatientID +LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "SK" +left join m_branch on M_BranchIsDefault = 'Y' +left join m_city on M_BranchM_CityID = M_CityID +left join m_sex on M_PatientM_SexID = M_SexID +left join t_test on T_OrderDetailT_TestID = T_TestID +left join nat_test on T_TestNat_TestID = Nat_TestID + left join m_doctor pj ON LetterOtherM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' + left join m_doctor p ON T_OrderHeaderPjM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' +where LetterOtherID = PID and LetterOtherIsActive = 'Y' and T_OrderDetailValidation = 'Y' + and ( SUBSTRING(T_OrderDetailT_TestSasCode , 7,20) + in ('10634900','1063490001','PN05781063490001','PN05781063490002','1063490002','10635000', +'1063510001','10813100','1081300001','10813050','10635500', +'108130500105','10635600','1063560001','1063560002','108130500101','108130500102','10635200','10635400','10635550' +,'PN086610635400','10635575','10813125','1081312505') + +or + + T_OrderDetailT_TestSasCode + in ('10634900','1063490001','PN05781063490001','PN05781063490002','1063490002','10635000', +'1063510001','10813100','1081300001','10813050','10635500', +'108130500105','10635600','1063560001','1063560002','108130500101','108130500102','10635200','10635400','10635550' +,'PN086610635400','10635575','10813125','1081312505') + ) + ) as x $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_hasil_sk_4` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_hasil_sk_4`(IN `PID` int, IN `username` varchar(100)) +select +tanggal, +LetterOtherPekerjaan, +LetterOtherNumber, +M_CompanyName, +T_OrderHeaderDate , +T_OrderHeaderLabNumber , +T_OrderHeaderLabNumberExt, +M_PatientName, +T_OrderDetailT_TestName, +T_OrderDetailResult, +M_PatientIDNumber , + ttl,M_SexName, + M_PatientAddressDescription , +M_No_FormRev, +M_BranchName, +M_CityName , + header , +LetterOtherID , +M_PatientID , +LetterOtherT_OrderHeaderID , +LetterOtherNat_TestID, +LetterOtherT_TestSasCode, + Nat_TestName, +concat( +'Benar telah melakukan pemeriksaan ', + '',T_OrderDetailT_TestName, '', +' pada hari ' , +tanggal, + ' dengan hasil ' , +if((LetterOtherT_TestSasCode in ( '1063510001','10635500','1081300001' )) , concat('',T_OrderDetailT_TestName , ' ' , T_OrderDetailResult, '') ,hasil ) ,' , dengan data hasil pemeriksaan terlampir.' +) as hasil, +concat(M_CityName,", ", tanggalnow) as tanggalnow , + DokterPJ ,Dokter,qrcode + + +from +( + +select +CONCAT( + CASE DAYOFWEEK(`fn_get_date_sampling`(T_OrderDetailID)) + WHEN 1 THEN 'Minggu' + WHEN 2 THEN 'Senin' + WHEN 3 THEN 'Selasa' + WHEN 4 THEN 'Rabu' + WHEN 5 THEN 'Kamis' + WHEN 6 THEN 'Jumat' + WHEN 7 THEN 'Sabtu' + END,', ', + DAY(`fn_get_date_sampling`(T_OrderDetailID)),' ', + CASE MONTH(`fn_get_date_sampling`(T_OrderDetailID)) + WHEN 1 THEN 'Januari' + WHEN 2 THEN 'Februari' + WHEN 3 THEN 'Maret' + WHEN 4 THEN 'April' + WHEN 5 THEN 'Mei' + WHEN 6 THEN 'Juni' + WHEN 7 THEN 'Juli' + WHEN 8 THEN 'Agustus' + WHEN 9 THEN 'September' + WHEN 10 THEN 'Oktober' + WHEN 11 THEN 'November' + WHEN 12 THEN 'Desember' + END,' ', + YEAR(T_OrderHeaderDate) +) AS tanggal, + +CONCAT( + DAY(T_OrderDetailValDate),' ', + CASE MONTH(T_OrderDetailValDate) + WHEN 1 THEN 'Januari' + WHEN 2 THEN 'Februari' + WHEN 3 THEN 'Maret' + WHEN 4 THEN 'April' + WHEN 5 THEN 'Mei' + WHEN 6 THEN 'Juni' + WHEN 7 THEN 'Juli' + WHEN 8 THEN 'Agustus' + WHEN 9 THEN 'September' + WHEN 10 THEN 'Oktober' + WHEN 11 THEN 'November' + WHEN 12 THEN 'Desember' + END,' ', + YEAR(NOW()) +) AS tanggalnow, +LetterOtherPekerjaan, +LetterOtherNumber, +M_CompanyName, +T_OrderHeaderDate , +T_OrderHeaderLabNumber , +T_OrderHeaderLabNumberExt, +fn_get_name( T_OrderHeaderM_PatientID ) AS M_PatientName, + `fn_get_nattest`(LetterOtherNat_TestID) as T_OrderDetailT_TestName, +T_OrderDetailResult,M_PatientIDNumber , +concat(M_PatientPOB ,", ",DATE_FORMAT(M_PatientDOB, "%d - %m - %Y") ) as ttl,M_SexName, +(SELECT concat(M_PatientAddressDescription, ' ' , M_DistrictName, " " ,M_CityName) from m_patientaddress AS p +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , +M_No_FormRev, +concat(REPLACE(M_BranchName, "Pramita", "Cabang"), " " ,if(M_CityName like SUBSTRING(M_BranchName, 9), '',M_CityName )) as M_BranchName, +M_CityName , +concat( 'Yang bertanda tangan dibawah ini, Laboratorium Klinik ' ,M_BranchName, ' ' ,if(M_CityName like SUBSTRING(M_BranchName, 9), '',M_CityName ), ' Menerangkan dengan sesungguhnya bahwa :') as header ,LetterOtherID ,M_PatientID , +LetterOtherT_OrderHeaderID , +LetterOtherNat_TestID, +LetterOtherT_TestSasCode, Nat_TestName, +if ( LetterOtherT_TestSasCode = '10635000' , concat('',if(Nat_TestShortName = 'Kesimpulan','SARS-CoV-2 (RT-PCR)', Nat_TestShortName)," ", if(T_OrderDetailResult like '%non%', 'Non Reaktif' , 'Reaktif'),'') , + group_concat( concat('',if(Nat_TestShortName = 'Kesimpulan','SARS-CoV-2 (RT-PCR)', Nat_TestShortName)," ", +(case +when T_OrderDetailResult like 'reaktif%' then 'Reaktif' +when T_OrderDetailResult like 'non reaktif%' then 'Non Reaktif' +else T_OrderDetailResult end) +,'') + separator ' dan ')) as hasil , + +if((LetterOtherM_DoctorID is null or LetterOtherM_DoctorID = '0') , +CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2," ",p.M_DoctorSufix3), +CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix," ",pj.M_DoctorSufix2," ",pj.M_DoctorSufix3)) AS DokterPJ , + +if((LetterOtherM_DoctorID is null or LetterOtherM_DoctorID = '0') ,"Dokter Penanggung Jawab" ,"Dokter Pemeriksa") AS Dokter, + concat("http://localhost/one-api/chart/the_qr/v3/",T_OrderHeaderID,"/",DATE_FORMAT(now(), "%d-%m-%Y%T") ) AS qrcode + +from letter_other +left join t_orderheader on LetterOtherT_OrderHeaderID = T_OrderHeaderID +left join m_company on T_OrderHeaderM_CompanyID = M_CompanyID +left join t_orderdetail on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID + and (LetterOtherT_TestSasCode = T_OrderDetailT_TestSasCode or LetterOtherT_TestSasCode like '%1063490%' or LetterOtherT_TestSasCode like '%10635600%' or LetterOtherT_TestSasCode like '%10813050%' + or LetterOtherT_TestSasCode like '%PN057810634900%' or LetterOtherT_TestSasCode like '%10813125%') + and T_OrderDetailIsActive = 'Y' and T_OrderDetailT_TestIsResult = 'Y' +left join m_patient on T_OrderHeaderM_PatientID = M_PatientID +LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "SK" +left join m_branch on M_BranchIsDefault = 'Y' +left join m_city on M_BranchM_CityID = M_CityID +left join m_sex on M_PatientM_SexID = M_SexID +left join t_test on T_OrderDetailT_TestID = T_TestID +left join nat_test on T_TestNat_TestID = Nat_TestID + left join m_doctor pj ON LetterOtherM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' + left join m_doctor p ON T_OrderHeaderPjM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' +where LetterOtherID =PID and LetterOtherIsActive = 'Y' and T_OrderDetailValidation = 'Y' + and ( SUBSTRING(T_OrderDetailT_TestSasCode , 7,20) + in ('10634900','1063490001','PN05781063490001','PN05781063490002','1063490002','10635000', +'1063510001','10813100','1081300001','10813050','10635500','1063590001', +'108130500108','10635600','1063560001','1063560002','10635200','10635400','10635550' +,'PN086610635400','10635575','10813125','1081312505') + +or + + T_OrderDetailT_TestSasCode + in ('10634900','1063490001','PN05781063490001','PN05781063490002','1063490002','10635000', +'1063510001','10813100','1081300001','10813050','10635500','1063590001', +'108130500108','10635600','1063560001','1063560002','10635200','10635400','10635550' +,'PN086610635400','10635575','10813125','1081312505') + +or +Nat_TestShortName = 'Kesimpulan' + ) + +group by LetterOtherID) as x $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_hasil_sk_eng` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_hasil_sk_eng`(IN `PID` int, IN `username` varchar(100)) +select +tanggal, +LetterOtherPekerjaan, +LetterOtherNumber, +M_CompanyName, +T_OrderHeaderDate , +T_OrderHeaderLabNumber , +T_OrderHeaderLabNumberExt, +M_PatientName, +T_OrderDetailT_TestName, +T_OrderDetailResult, +M_PatientIDNumber , + ttl,M_SexName, + M_PatientAddressDescription , +M_No_FormRev, +M_BranchName, +M_CityName , + header , +LetterOtherID , +M_PatientID , +LetterOtherT_OrderHeaderID , +LetterOtherNat_TestID, +LetterOtherT_TestSasCode, + Nat_TestName, +concat( +'Has undertook ', + '',T_OrderDetailT_TestName, '', +' on ' , +tanggal, + ' with the result of : ' , +if((LetterOtherT_TestSasCode in ( '1063510001','10635500','1081300001' ,'10813125' )) , concat('',T_OrderDetailT_TestName , ' ' , (case +when T_OrderDetailResult like '%reaktif%' then 'Reactive' +when T_OrderDetailResult like '%non reaktif%' then 'Non Reactive' +when T_OrderDetailResult like '%negatif%' then 'Negative' +when T_OrderDetailResult like '%positif%' then 'Positive' +else T_OrderDetailResult end), '') ,hasil ) ,' , with further details attached.' +) as hasil, +concat(M_CityName,", ", tanggalnow) as tanggalnow , + DokterPJ ,Dokter,qrcode + + +from +( + +select +DATE_FORMAT(`fn_get_date_sampling`(T_OrderDetailID), ' %W , %M %D %Y') AS tanggal, + + DATE_FORMAT(`fn_get_date_sampling`(T_OrderDetailID), '%M %D %Y') AS tanggalnow, +LetterOtherPekerjaan, +LetterOtherNumber, +M_CompanyName, +T_OrderHeaderDate , +T_OrderHeaderLabNumber , +T_OrderHeaderLabNumberExt, +CONCAT(M_TitleLangName ," ",ifnull(M_PatientPrefix,'')," ",M_PatientName," ",ifnull(M_PatientSuffix,'')) AS M_PatientName, + `fn_get_nattest`(LetterOtherNat_TestID) as T_OrderDetailT_TestName, +T_OrderDetailResult,M_PatientIDNumber , +concat(ifnull(M_PatientPOB,""),", ",DATE_FORMAT(M_PatientDOB, "%d - %m - %Y") ) as ttl,M_SexNameLang as M_SexName, +(SELECT concat(M_PatientAddressDescription, ' ' , M_DistrictName, " " ,M_CityName) from m_patientaddress AS p +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , +M_No_FormRev, +concat(REPLACE(M_BranchName, "Pramita", ""), " " ,if(M_CityName like SUBSTRING(M_BranchName, 9), '',M_CityName) , " Branch") as M_BranchName, +M_CityName , +concat( 'Signed below on behalf of ' ,M_BranchName, ' ' ,if(M_CityName like SUBSTRING(M_BranchName, 9), '',M_CityName ), ' Clinical Laboratory, herewith stating that :') as header ,LetterOtherID ,M_PatientID , +LetterOtherT_OrderHeaderID , +LetterOtherNat_TestID, +LetterOtherT_TestSasCode, Nat_TestName, +if ( LetterOtherT_TestSasCode = '10635000' , concat('',if(Nat_TestShortName = 'Kesimpulan','SARS-CoV-2 (RT-PCR)', Nat_TestShortName)," ", if(T_OrderDetailResult like '%non%', 'Non Reactive' , 'Reactive'),'') , + group_concat( concat('',if(Nat_TestShortName = 'Kesimpulan','SARS-CoV-2 (RT-PCR)', Nat_TestShortName)," ", +(case +when T_OrderDetailResult like 'reaktif%' then 'Reactive' +when T_OrderDetailResult like 'non reaktif%' then 'Non Reactive' +when T_OrderDetailResult like 'negatif%' then 'Negative' +when T_OrderDetailResult like 'positif%' then 'Positive' +else T_OrderDetailResult end) +,'') + separator ' dan ')) as hasil , + +if((LetterOtherM_DoctorID is null or LetterOtherM_DoctorID = '0') , +CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2," ",p.M_DoctorSufix3), +CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix," ",pj.M_DoctorSufix2," ",pj.M_DoctorSufix3)) AS DokterPJ , + +if((LetterOtherM_DoctorID is null or LetterOtherM_DoctorID = '0') ,"Clinical Pathologist" ,"Physician") AS Dokter, + concat("http://localhost/one-api/chart/the_qr/v3/",T_OrderHeaderID,"/",DATE_FORMAT(now(), "%d-%m-%Y%T") ) AS qrcode +from letter_other +left join t_orderheader on LetterOtherT_OrderHeaderID = T_OrderHeaderID +left join m_company on T_OrderHeaderM_CompanyID = M_CompanyID +left join t_orderdetail on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID + and (LetterOtherT_TestSasCode = T_OrderDetailT_TestSasCode or LetterOtherT_TestSasCode like '%1063490%' or LetterOtherT_TestSasCode like '%10635600%' or LetterOtherT_TestSasCode like '%10813050%' + or LetterOtherT_TestSasCode like '%PN057810634900%' or LetterOtherT_TestSasCode like '%10813125%') + and T_OrderDetailIsActive = 'Y' and T_OrderDetailT_TestIsResult = 'Y' +left join m_patient on T_OrderHeaderM_PatientID = M_PatientID +left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' +LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "SK" +left join m_branch on M_BranchIsDefault = 'Y' +left join m_city on M_BranchM_CityID = M_CityID +left join m_sex on M_PatientM_SexID = M_SexID +left join t_test on T_OrderDetailT_TestID = T_TestID +left join nat_test on T_TestNat_TestID = Nat_TestID + left join m_doctor pj ON LetterOtherM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' + left join m_doctor p ON T_OrderHeaderPjM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' +where LetterOtherID = PID and LetterOtherIsActive = 'Y' + and ( SUBSTRING(T_OrderDetailT_TestSasCode , 7,20) + in ('10634900','1063490001','PN05781063490001','PN05781063490002','1063490002','10635000', +'1063510001','10813100','1081300001','10813050','10635500','1063590001', +'108130500108','10635600','1063560001','1063560002','10635200','10635400','10635550' +,'PN086610635400','10635575','10813125','1081312506') + +or + + T_OrderDetailT_TestSasCode + in ('10634900','1063490001','PN05781063490001','PN05781063490002','1063490002','10635000', +'1063510001','10813100','1081300001','10813050','10635500','1063590001', +'108130500108','10635600','1063560001','1063560002','10635200','10635400','10635550' +,'PN086610635400','10635575','10813125','1081312506') + +or +Nat_TestShortName = 'Kesimpulan' + ) + +group by LetterOtherID) as x $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_hasil_sk_eng_4` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_hasil_sk_eng_4`(IN `PID` int, IN `username` varchar(100)) +select +tanggal, +LetterOtherPekerjaan, +LetterOtherNumber, +M_CompanyName, +T_OrderHeaderDate , +T_OrderHeaderLabNumber , +T_OrderHeaderLabNumberExt, +M_PatientName, +T_OrderDetailT_TestName, +T_OrderDetailResult, +M_PatientIDNumber , + ttl,M_SexName, + M_PatientAddressDescription , +M_No_FormRev, +M_BranchName, +M_CityName , + header , +LetterOtherID , +M_PatientID , +LetterOtherT_OrderHeaderID , +LetterOtherNat_TestID, +LetterOtherT_TestSasCode, + Nat_TestName, +concat( +'Has undertook ', + '',T_OrderDetailT_TestName, '', +' on ' , +tanggal, + ' with the result of : ' , +if((LetterOtherT_TestSasCode in ( '1063510001','10635500','1081300001' )) , concat('',T_OrderDetailT_TestName , ' ' , T_OrderDetailResult, '') ,hasil ) ,' , with further details attached.' +) as hasil, +concat(M_CityName,", ", tanggalnow) as tanggalnow , + DokterPJ ,Dokter,qrcode + + +from +( + +select +DATE_FORMAT(`fn_get_date_sampling`(T_OrderDetailID), ' %W , %M %D %Y') AS tanggal, + + DATE_FORMAT(T_OrderDetailValDate, '%M %D %Y') AS tanggalnow, +LetterOtherPekerjaan, +LetterOtherNumber, +M_CompanyName, +T_OrderHeaderDate , +T_OrderHeaderLabNumber , +T_OrderHeaderLabNumberExt, +CONCAT(M_TitleLangName ," ",ifnull(M_PatientPrefix,'')," ",M_PatientName," ",ifnull(M_PatientSuffix,'')) AS M_PatientName, + `fn_get_nattest`(LetterOtherNat_TestID) as T_OrderDetailT_TestName, +T_OrderDetailResult,M_PatientIDNumber , +concat(ifnull(M_PatientPOB,""),", ",DATE_FORMAT(M_PatientDOB, "%d - %m - %Y") ) as ttl,M_SexNameLang as M_SexName, +(SELECT concat(M_PatientAddressDescription, ' ' , M_DistrictName, " " ,M_CityName) from m_patientaddress AS p +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , +M_No_FormRev, +concat(REPLACE(M_BranchName, "Pramita", ""), " " ,if(M_CityName like SUBSTRING(M_BranchName, 9), '',M_CityName) , " Branch") as M_BranchName, +M_CityName , +concat( 'Signed below on behalf of ' ,M_BranchName, ' ' ,if(M_CityName like SUBSTRING(M_BranchName, 9), '',M_CityName ), ' Clinical Laboratory, herewith stating that :') as header ,LetterOtherID ,M_PatientID , +LetterOtherT_OrderHeaderID , +LetterOtherNat_TestID, +LetterOtherT_TestSasCode, Nat_TestName, +if ( LetterOtherT_TestSasCode = '10635000' , concat('',if(Nat_TestShortName = 'Kesimpulan','SARS-CoV-2 (RT-PCR)', Nat_TestShortName)," ", if(T_OrderDetailResult like '%non%', 'Non Reactive' , 'Reactive'),'') , + group_concat( concat('',if(Nat_TestShortName = 'Kesimpulan','SARS-CoV-2 (RT-PCR)', Nat_TestShortName)," ", +(case +when T_OrderDetailResult like 'reaktif%' then 'Reactive' +when T_OrderDetailResult like 'non reaktif%' then 'Non Reactive' +when T_OrderDetailResult like 'negatif%' then 'Negative' +when T_OrderDetailResult like 'positif%' then 'Positive' +else T_OrderDetailResult end) +,'') + separator ' dan ')) as hasil , + +if((LetterOtherM_DoctorID is null or LetterOtherM_DoctorID = '0') , +CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2," ",p.M_DoctorSufix3), +CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix," ",pj.M_DoctorSufix2," ",pj.M_DoctorSufix3)) AS DokterPJ , + +if((LetterOtherM_DoctorID is null or LetterOtherM_DoctorID = '0') ,"Clinical Pathologist" ,"Physician") AS Dokter, + concat("http://localhost/one-api/chart/the_qr/v3/",T_OrderHeaderID,"/",DATE_FORMAT(now(), "%d-%m-%Y%T") ) AS qrcode +from letter_other +left join t_orderheader on LetterOtherT_OrderHeaderID = T_OrderHeaderID +left join m_company on T_OrderHeaderM_CompanyID = M_CompanyID +left join t_orderdetail on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID + and (LetterOtherT_TestSasCode = T_OrderDetailT_TestSasCode or LetterOtherT_TestSasCode like '%1063490%' or LetterOtherT_TestSasCode like '%10635600%' or LetterOtherT_TestSasCode like '%10813050%' + or LetterOtherT_TestSasCode like '%PN057810634900%' or LetterOtherT_TestSasCode like '%10813125%') + and T_OrderDetailIsActive = 'Y' and T_OrderDetailT_TestIsResult = 'Y' +left join m_patient on T_OrderHeaderM_PatientID = M_PatientID +left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' +LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "SK" +left join m_branch on M_BranchIsDefault = 'Y' +left join m_city on M_BranchM_CityID = M_CityID +left join m_sex on M_PatientM_SexID = M_SexID +left join t_test on T_OrderDetailT_TestID = T_TestID +left join nat_test on T_TestNat_TestID = Nat_TestID + left join m_doctor pj ON LetterOtherM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' + left join m_doctor p ON T_OrderHeaderPjM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' +where LetterOtherID = PID and LetterOtherIsActive = 'Y' and T_OrderDetailValidation = 'Y' + and ( SUBSTRING(T_OrderDetailT_TestSasCode , 7,20) + in ('10634900','1063490001','PN05781063490001','PN05781063490002','1063490002','10635000', +'1063510001','10813100','1081300001','10813050','10635500','1063590001', +'108130500108','10635600','1063560001','1063560002','10635200','10635400','10635550' +,'PN086610635400','10635575','10813125','1081312505') + +or + + T_OrderDetailT_TestSasCode + in ('10634900','1063490001','PN05781063490001','PN05781063490002','1063490002','10635000', +'1063510001','10813100','1081300001','10813050','10635500','1063590001', +'108130500108','10635600','1063560001','1063560002','10635200','10635400','10635550' +,'PN086610635400','10635575','10813125','1081312505') + +or +Nat_TestShortName = 'Kesimpulan' + ) + +group by LetterOtherID) as x $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_hasil_sk_panel` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_hasil_sk_panel`(IN `PID` int, IN `username` varchar(100)) +select +tanggal, +LetterOtherPekerjaan, +LetterOtherNumber, +M_CompanyName, +T_OrderHeaderDate , +T_OrderHeaderLabNumber , +T_OrderHeaderLabNumberExt, +M_PatientName, +T_OrderDetailT_TestName, +T_OrderDetailResult, +M_PatientIDNumber , + ttl,M_SexName, + M_PatientAddressDescription , +M_No_FormRev, +M_BranchName, +M_CityName , + header , +LetterOtherID , +M_PatientID , +LetterOtherT_OrderHeaderID , +LetterOtherNat_TestID, +LetterOtherT_TestSasCode, + Nat_TestName, +concat( +'Benar telah melakukan pemeriksaan ', + '',T_OrderDetailT_TestName, '', +' pada hari ' , +tanggal, + ' dengan hasil ' , + hasil ,' , dengan data hasil pemeriksaan terlampir.' +) as hasil, +concat(M_CityName,", ", tanggalnow) as tanggalnow , + DokterPJ ,Dokter,qrcode + + +from +( + +select +CONCAT( + CASE DAYOFWEEK(`fn_get_date_sampling`(T_OrderDetailID)) + WHEN 1 THEN 'Minggu' + WHEN 2 THEN 'Senin' + WHEN 3 THEN 'Selasa' + WHEN 4 THEN 'Rabu' + WHEN 5 THEN 'Kamis' + WHEN 6 THEN 'Jumat' + WHEN 7 THEN 'Sabtu' + END,', ', + DAY(`fn_get_date_sampling`(T_OrderDetailID)),' ', + CASE MONTH(`fn_get_date_sampling`(T_OrderDetailID)) + WHEN 1 THEN 'Januari' + WHEN 2 THEN 'Februari' + WHEN 3 THEN 'Maret' + WHEN 4 THEN 'April' + WHEN 5 THEN 'Mei' + WHEN 6 THEN 'Juni' + WHEN 7 THEN 'Juli' + WHEN 8 THEN 'Agustus' + WHEN 9 THEN 'September' + WHEN 10 THEN 'Oktober' + WHEN 11 THEN 'November' + WHEN 12 THEN 'Desember' + END,' ', + YEAR(`fn_get_date_sampling`(T_OrderDetailID)) +) AS tanggal, + +CONCAT( + DAY(`fn_get_date_sampling`(T_OrderDetailID)),' ', + CASE MONTH(`fn_get_date_sampling`(T_OrderDetailID)) + WHEN 1 THEN 'Januari' + WHEN 2 THEN 'Februari' + WHEN 3 THEN 'Maret' + WHEN 4 THEN 'April' + WHEN 5 THEN 'Mei' + WHEN 6 THEN 'Juni' + WHEN 7 THEN 'Juli' + WHEN 8 THEN 'Agustus' + WHEN 9 THEN 'September' + WHEN 10 THEN 'Oktober' + WHEN 11 THEN 'November' + WHEN 12 THEN 'Desember' + END,' ', + YEAR(NOW()) +) AS tanggalnow, +LetterOtherPekerjaan, +LetterOtherNumber, +M_CompanyName, +T_OrderHeaderDate , +T_OrderHeaderLabNumber , +T_OrderHeaderLabNumberExt, +fn_get_name( T_OrderHeaderM_PatientID ) AS M_PatientName, + `fn_get_nattest`(LetterOtherNat_TestID) as T_OrderDetailT_TestName, +T_OrderDetailResult,M_PatientIDNumber , +concat(ifnull(M_PatientPOB,""),", ",DATE_FORMAT(M_PatientDOB, "%d - %m - %Y") ) as ttl,M_SexName, +(SELECT concat(M_PatientAddressDescription, ' ' , M_DistrictName, " " ,M_CityName) from m_patientaddress AS p +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , +M_No_FormRev, +concat(REPLACE(M_BranchName, "Pramita", "Cabang"), " " ,if(M_CityName like SUBSTRING(M_BranchName, 9), '',M_CityName )) as M_BranchName, +M_CityName , +concat( 'Yang bertanda tangan dibawah ini, Laboratorium Klinik ' ,M_BranchName, ' ' ,if(M_CityName like SUBSTRING(M_BranchName, 9), '',M_CityName ), ' Menerangkan dengan sesungguhnya bahwa :') as header ,LetterOtherID ,M_PatientID , +LetterOtherT_OrderHeaderID , +LetterOtherNat_TestID, +LetterOtherT_TestSasCode, Nat_TestName, +concat('','SARS-CoV-2 (RT-PCR)', " " , T_OrderDetailResult,'') as hasil , + +if((LetterOtherM_DoctorID is null or LetterOtherM_DoctorID = '0') , +CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2," ",p.M_DoctorSufix3), +CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix," ",pj.M_DoctorSufix2," ",pj.M_DoctorSufix3)) AS DokterPJ , + +if((LetterOtherM_DoctorID is null or LetterOtherM_DoctorID = '0') ,"Dokter Penanggung Jawab" ,"Dokter Pemeriksa") AS Dokter, + concat("http://localhost/one-api/chart/the_qr/v3/",T_OrderHeaderID,"/",DATE_FORMAT(now(), "%d-%m-%Y%T") ) AS qrcode +from letter_other +left join t_orderheader on LetterOtherT_OrderHeaderID = T_OrderHeaderID +left join m_company on T_OrderHeaderM_CompanyID = M_CompanyID +left join t_orderdetail on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID + and T_OrderDetailIsActive = 'Y' and T_OrderDetailT_TestIsResult = 'Y' +left join m_patient on T_OrderHeaderM_PatientID = M_PatientID +LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "SK" +left join m_branch on M_BranchIsDefault = 'Y' +left join m_city on M_BranchM_CityID = M_CityID +left join m_sex on M_PatientM_SexID = M_SexID +left join t_test on T_OrderDetailT_TestID = T_TestID +left join nat_test on T_TestNat_TestID = Nat_TestID + left join m_doctor pj ON LetterOtherM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' + left join m_doctor p ON T_OrderHeaderPjM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' +where LetterOtherID = PID and LetterOtherIsActive = 'Y' and T_OrderDetailT_TestSasCode = '108130500103' + +group by LetterOtherID) as x $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_hasil_sk_pasport` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_hasil_sk_pasport`(IN `PID` int, IN `username` varchar(100)) +select +tanggal, +LetterOtherPekerjaan, +LetterOtherNumber, +M_CompanyName, +T_OrderHeaderDate , +T_OrderHeaderLabNumber , +T_OrderHeaderLabNumberExt, +M_PatientName, +T_OrderDetailT_TestName, +T_OrderDetailResult, +M_PatientIDNumber , + ttl,M_SexName, + M_PatientAddressDescription , +M_No_FormRev, +M_BranchName, +M_CityName , + header , +LetterOtherID , +M_PatientID , +LetterOtherT_OrderHeaderID , +LetterOtherNat_TestID, +LetterOtherT_TestSasCode, + Nat_TestName, +concat( +'Benar telah melakukan pemeriksaan ', + '',T_OrderDetailT_TestName, '', +' pada hari ' , +tanggal, + ' dengan hasil ' , +if((LetterOtherT_TestSasCode in ( '1063510001','10635500','1081300001','10813125' )) , concat('',T_OrderDetailT_TestName , ' ' , T_OrderDetailResult, '') ,hasil ) ,' , dengan data hasil pemeriksaan terlampir.' +) as hasil, +concat(M_CityName,", ", tanggalnow) as tanggalnow , + DokterPJ ,Dokter,qrcode + + +from +( + +select +CONCAT( + CASE DAYOFWEEK(`fn_get_date_sampling`(T_OrderDetailID)) + WHEN 1 THEN 'Minggu' + WHEN 2 THEN 'Senin' + WHEN 3 THEN 'Selasa' + WHEN 4 THEN 'Rabu' + WHEN 5 THEN 'Kamis' + WHEN 6 THEN 'Jumat' + WHEN 7 THEN 'Sabtu' + END,', ', + DAY(`fn_get_date_sampling`(T_OrderDetailID)),' ', + CASE MONTH(`fn_get_date_sampling`(T_OrderDetailID)) + WHEN 1 THEN 'Januari' + WHEN 2 THEN 'Februari' + WHEN 3 THEN 'Maret' + WHEN 4 THEN 'April' + WHEN 5 THEN 'Mei' + WHEN 6 THEN 'Juni' + WHEN 7 THEN 'Juli' + WHEN 8 THEN 'Agustus' + WHEN 9 THEN 'September' + WHEN 10 THEN 'Oktober' + WHEN 11 THEN 'November' + WHEN 12 THEN 'Desember' + END,' ', + YEAR(T_OrderHeaderDate) +) AS tanggal, + +CONCAT( + DAY(T_OrderDetailValDate),' ', + CASE MONTH(T_OrderDetailValDate) + WHEN 1 THEN 'Januari' + WHEN 2 THEN 'Februari' + WHEN 3 THEN 'Maret' + WHEN 4 THEN 'April' + WHEN 5 THEN 'Mei' + WHEN 6 THEN 'Juni' + WHEN 7 THEN 'Juli' + WHEN 8 THEN 'Agustus' + WHEN 9 THEN 'September' + WHEN 10 THEN 'Oktober' + WHEN 11 THEN 'November' + WHEN 12 THEN 'Desember' + END,' ', + YEAR(NOW()) +) AS tanggalnow, +LetterOtherPekerjaan, +LetterOtherNumber, +M_CompanyName, +T_OrderHeaderDate , +T_OrderHeaderLabNumber , +T_OrderHeaderLabNumberExt, +fn_get_name( T_OrderHeaderM_PatientID ) AS M_PatientName, + `fn_get_nattest`(LetterOtherNat_TestID) as T_OrderDetailT_TestName, +T_OrderDetailResult,M_PatientIDNumber , +concat(M_PatientPOB ,", ",DATE_FORMAT(M_PatientDOB, "%d - %m - %Y") ) as ttl,M_SexName, +(SELECT concat(M_PatientAddressDescription, ' ' , M_DistrictName, " " ,M_CityName) from m_patientaddress AS p +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , +M_No_FormRev, +concat(REPLACE(M_BranchName, "Pramita", "Cabang"), " " ,if(M_CityName like SUBSTRING(M_BranchName, 9), '',M_CityName )) as M_BranchName, +M_CityName , +concat( 'Yang bertanda tangan dibawah ini, Laboratorium Klinik ' ,M_BranchName, ' ' ,if(M_CityName like SUBSTRING(M_BranchName, 9), '',M_CityName ), ' Menerangkan dengan sesungguhnya bahwa :') as header ,LetterOtherID ,M_PatientID , +LetterOtherT_OrderHeaderID , +LetterOtherNat_TestID, +LetterOtherT_TestSasCode, Nat_TestName, +if ( LetterOtherT_TestSasCode = '10635000' , concat('',if(Nat_TestShortName = 'Kesimpulan','SARS-CoV-2 (RT-PCR)', Nat_TestShortName)," ", if(T_OrderDetailResult like '%non%', 'Non Reaktif' , 'Reaktif'),'') , + group_concat( concat('',if(Nat_TestShortName = 'Kesimpulan','SARS-CoV-2 (RT-PCR)', Nat_TestShortName)," ", +(case +when T_OrderDetailResult like 'reaktif%' then 'Reaktif' +when T_OrderDetailResult like 'non reaktif%' then 'Non Reaktif' +else T_OrderDetailResult end) +,'') + separator ' dan ')) as hasil , + +if((LetterOtherM_DoctorID is null or LetterOtherM_DoctorID = '0') , +CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2," ",p.M_DoctorSufix3), +CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix," ",pj.M_DoctorSufix2," ",pj.M_DoctorSufix3)) AS DokterPJ , + +if((LetterOtherM_DoctorID is null or LetterOtherM_DoctorID = '0') ,"Dokter Penanggung Jawab" ,"Dokter Pemeriksa") AS Dokter, + concat("http://localhost/one-api/chart/the_qr/v3/",T_OrderHeaderID,"/",DATE_FORMAT(now(), "%d-%m-%Y%T") ) AS qrcode + +from letter_other +left join t_orderheader on LetterOtherT_OrderHeaderID = T_OrderHeaderID +left join m_company on T_OrderHeaderM_CompanyID = M_CompanyID +left join t_orderdetail on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID + and (LetterOtherT_TestSasCode = T_OrderDetailT_TestSasCode or LetterOtherT_TestSasCode like '%1063490%' or LetterOtherT_TestSasCode like '%10635600%' or LetterOtherT_TestSasCode like '%10813050%' + or LetterOtherT_TestSasCode like '%PN057810634900%' or LetterOtherT_TestSasCode like '%10813125%') + and T_OrderDetailIsActive = 'Y' and T_OrderDetailT_TestIsResult = 'Y' +left join m_patient on T_OrderHeaderM_PatientID = M_PatientID +LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "SK" +left join m_branch on M_BranchIsDefault = 'Y' +left join m_city on M_BranchM_CityID = M_CityID +left join m_sex on M_PatientM_SexID = M_SexID +left join t_test on T_OrderDetailT_TestID = T_TestID +left join nat_test on T_TestNat_TestID = Nat_TestID + left join m_doctor pj ON LetterOtherM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' + left join m_doctor p ON T_OrderHeaderPjM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' +where LetterOtherID =PID and LetterOtherIsActive = 'Y' and T_OrderDetailValidation = 'Y' + and ( SUBSTRING(T_OrderDetailT_TestSasCode , 7,20) + in ('10634900','1063490001','PN05781063490001','PN05781063490002','1063490002','10635000', +'1063510001','10813100','1081300001','10813050','10635500','1063590001', +'108130500108','10635600','1063560001','1063560002','10635200','10635400','10635550' +,'PN086610635400','10635575','10813125','1081312505') + +or + + T_OrderDetailT_TestSasCode + in ('10634900','1063490001','PN05781063490001','PN05781063490002','1063490002','10635000', +'1063510001','10813100','1081300001','10813050','10635500','1063590001', +'108130500108','10635600','1063560001','1063560002','10635200','10635400','10635550' +,'PN086610635400','10635575','10813125','1081312505') + +or +Nat_TestShortName = 'Kesimpulan' + ) + +group by LetterOtherID) as x $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_hasil_sk_pasport_eng` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_hasil_sk_pasport_eng`(IN `PID` int, IN `username` varchar(100)) +select +tanggal, +LetterOtherPekerjaan, +LetterOtherNumber, +M_CompanyName, +T_OrderHeaderDate , +T_OrderHeaderLabNumber , +T_OrderHeaderLabNumberExt, +M_PatientName, +T_OrderDetailT_TestName, +T_OrderDetailResult, +M_PatientIDNumber , + ttl,M_SexName, + M_PatientAddressDescription , +M_No_FormRev, +M_BranchName, +M_CityName , + header , +LetterOtherID , +M_PatientID , +LetterOtherT_OrderHeaderID , +LetterOtherNat_TestID, +LetterOtherT_TestSasCode, + Nat_TestName, +concat( +'Has undertook ', + '',T_OrderDetailT_TestName, '', +' on ' , +tanggal, + ' with the result of : ' , +if((LetterOtherT_TestSasCode in ( '1063510001','10635500','1081300001' ,'10813125')) , concat('',T_OrderDetailT_TestName , ' ' , T_OrderDetailResult, '') ,hasil ) ,' , with further details attached.' +) as hasil, +concat(M_CityName,", ", tanggalnow) as tanggalnow , + DokterPJ ,Dokter,qrcode + + +from +( + +select +DATE_FORMAT(`fn_get_date_sampling`(T_OrderDetailID), ' %W , %M %D %Y') AS tanggal, + + DATE_FORMAT(T_OrderDetailValDate, '%M %D %Y') AS tanggalnow, +LetterOtherPekerjaan, +LetterOtherNumber, +M_CompanyName, +T_OrderHeaderDate , +T_OrderHeaderLabNumber , +T_OrderHeaderLabNumberExt, +CONCAT(M_TitleLangName ," ",ifnull(M_PatientPrefix,'')," ",M_PatientName," ",ifnull(M_PatientSuffix,'')) AS M_PatientName, + `fn_get_nattest`(LetterOtherNat_TestID) as T_OrderDetailT_TestName, +T_OrderDetailResult,M_PatientIDNumber , +concat(ifnull(M_PatientPOB,""),", ",DATE_FORMAT(M_PatientDOB, "%d - %m - %Y") ) as ttl,M_SexNameLang as M_SexName, +(SELECT concat(M_PatientAddressDescription, ' ' , M_DistrictName, " " ,M_CityName) from m_patientaddress AS p +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , +M_No_FormRev, +concat(REPLACE(M_BranchName, "Pramita", ""), " " ,if(M_CityName like SUBSTRING(M_BranchName, 9), '',M_CityName) , " Branch") as M_BranchName, +M_CityName , +concat( 'Signed below on behalf of ' ,M_BranchName, ' ' ,if(M_CityName like SUBSTRING(M_BranchName, 9), '',M_CityName ), ' Clinical Laboratory, herewith stating that :') as header ,LetterOtherID ,M_PatientID , +LetterOtherT_OrderHeaderID , +LetterOtherNat_TestID, +LetterOtherT_TestSasCode, Nat_TestName, +if ( LetterOtherT_TestSasCode = '10635000' , concat('',if(Nat_TestShortName = 'Kesimpulan','SARS-CoV-2 (RT-PCR)', Nat_TestShortName)," ", if(T_OrderDetailResult like '%non%', 'Non Reactive' , 'Reactive'),'') , + group_concat( concat('',if(Nat_TestShortName = 'Kesimpulan','SARS-CoV-2 (RT-PCR)', Nat_TestShortName)," ", +(case +when T_OrderDetailResult like 'reaktif%' then 'Reactive' +when T_OrderDetailResult like 'non reaktif%' then 'Non Reactive' +when T_OrderDetailResult like 'negatif%' then 'Negative' +when T_OrderDetailResult like 'positif%' then 'Positive' +else T_OrderDetailResult end) +,'') + separator ' dan ')) as hasil , + +if((LetterOtherM_DoctorID is null or LetterOtherM_DoctorID = '0') , +CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2," ",p.M_DoctorSufix3), +CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix," ",pj.M_DoctorSufix2," ",pj.M_DoctorSufix3)) AS DokterPJ , + +if((LetterOtherM_DoctorID is null or LetterOtherM_DoctorID = '0') ,"Clinical Pathologist" ,"Phisician") AS Dokter, + concat("http://localhost/one-api/chart/the_qr/v3/",T_OrderHeaderID,"/",DATE_FORMAT(now(), "%d-%m-%Y%T") ) AS qrcode +from letter_other +left join t_orderheader on LetterOtherT_OrderHeaderID = T_OrderHeaderID +left join m_company on T_OrderHeaderM_CompanyID = M_CompanyID +left join t_orderdetail on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID + and (LetterOtherT_TestSasCode = T_OrderDetailT_TestSasCode or LetterOtherT_TestSasCode like '%1063490%' or LetterOtherT_TestSasCode like '%10635600%' or LetterOtherT_TestSasCode like '%10813050%' or LetterOtherT_TestSasCode like '%PN057810634900%' ) + and T_OrderDetailIsActive = 'Y' and T_OrderDetailT_TestIsResult = 'Y' +left join m_patient on T_OrderHeaderM_PatientID = M_PatientID +left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' +LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "SK" +left join m_branch on M_BranchIsDefault = 'Y' +left join m_city on M_BranchM_CityID = M_CityID +left join m_sex on M_PatientM_SexID = M_SexID +left join t_test on T_OrderDetailT_TestID = T_TestID +left join nat_test on T_TestNat_TestID = Nat_TestID + left join m_doctor pj ON LetterOtherM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' + left join m_doctor p ON T_OrderHeaderPjM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' +where LetterOtherID = PID and LetterOtherIsActive = 'Y' and T_OrderDetailValidation = 'Y' + and ( SUBSTRING(T_OrderDetailT_TestSasCode , 7,20) + in ('10634900','1063490001','PN05781063490001','PN05781063490002','1063490002','10635000', +'1063510001','10813100','1081300001','10813050','10635500','1063590001', +'108130500108','10635600','1063560001','1063560002','10635200','10635400','10635550' +,'PN086610635400') + +or + + T_OrderDetailT_TestSasCode + in ('10634900','1063490001','PN05781063490001','PN05781063490002','1063490002','10635000', +'1063510001','10813100','1081300001','10813050','10635500','1063590001', +'108130500108','10635600','1063560001','1063560002','10635200','10635400','10635550' +,'PN086610635400') + +or +Nat_TestShortName = 'Kesimpulan' + ) + +group by LetterOtherID) as x $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_hasil_smwt` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_hasil_smwt`(IN `PID` int, IN `PLang` int, IN `username` varchar(100)) +select T_OrderHeaderLabNumber as nolabasli, +DATE_FORMAT(NOW(), "%d-%m-%Y") AS Now, +DATE_FORMAT(T_OrderHeaderDate, "%d-%m-%Y %T") AS T_OrderHeaderDate, +T_OrderHeaderM_PatientAge, +M_SexName, +DATE_FORMAT(T_OrderHeaderCreated, "%d-%m-%Y %T") AS T_OrderHeaderCreated, +CONCAT(fn_lookup_external(T_OrderHeaderLabNumber,'L')," / ",M_PatientNoReg) AS PiID, +`fn_get_status_lunas`(T_OrderHeaderID) as status, +if( `fn_get_status_lunas`(T_OrderHeaderID) = 'N' , concat("",fn_lookup_external(T_OrderHeaderLabNumber,'L'),""),fn_lookup_external(T_OrderHeaderLabNumber,'L')) as T_OrderHeaderLabNumber, +fn_get_name( T_OrderHeaderM_PatientID ) AS M_PatientName, + +M_PatientNoReg, + DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") AS M_PatientDOB, +CONCAT(T_OrderHeaderM_PatientAge," / ",M_SexName) AS Umur, +M_TitleName, +M_PatientHP ,M_PatientPhone, M_PatientEmail, +concat("http://localhost/one-api/v1/su/code128/?no=",T_OrderHeaderLabNumberExt) AS Barcode, +M_CompanyName, +S_SystemsCompanyName ,So_ResultEntryT_OrderDetailID, +concat(S_SystemsCompanyAddress," ",S_SystemsCompanyCity," "," Telp. ", S_SystemsCompanyPhone) as alamatcabang, +S_SystemsEmailAddress,M_No_FormRev,S_SystemsCompanyCity, +CONCAT(mm.M_DoctorPrefix," ",mm.M_DoctorName," ",mm.M_DoctorSufix," ",mm.M_DoctorSufix2," ",mm.M_DoctorSufix3) AS M_DoctorName, +CONCAT(m.M_DoctorPrefix," ",m.M_DoctorName," ",m.M_DoctorSufix," ",m.M_DoctorSufix2," ",m.M_DoctorSufix3) AS M_Doctorkirim, +T_TestName, +So_ResultentrySmwtID , +So_ResultentrySmwtSo_ResultentryID, +So_ResultentrySmwtM_LangID , +So_ResultentrySmwtWeight , +So_ResultentrySmwtHeight, +So_ResultentrySmwtBMI , +concat(So_ResultentrySmwtJarakPutaran,' ' , 'Meter') as So_ResultentrySmwtJarakPutaran , +concat(So_ResultentrySmwtJumlahPutaran , ' ' , 'Putaran') as So_ResultentrySmwtJumlahPutaran , +concat(So_ResultentrySmwtPreTensi ,' ' , 'mmHg') as So_ResultentrySmwtPreTensi , +concat(So_ResultentrySmwtPreSPO2 ,' ' , '%') as So_ResultentrySmwtPreSPO2 , +concat(So_ResultentrySmwtPreNadi ,' ' , 'x/menit') as So_ResultentrySmwtPreNadi , +So_ResultentrySmwtPreDyspnea , +So_ResultentrySmwtPreFatigue, +concat(So_ResultentrySmwtPostTensi ,' ' , 'mmHg') as So_ResultentrySmwtPostTensi , +concat(So_ResultentrySmwtPostSPO2,' ' , '%') as So_ResultentrySmwtPostSPO2 , +concat(So_ResultentrySmwtPostNadi ,' ' , 'x/menit') as So_ResultentrySmwtPostNadi , +So_ResultentrySmwtPostDyspnea, +So_ResultentrySmwtPostFatigue , +So_ResultentrySmwtVOMax , +So_ResultentrySmwtKategoriKebugaran, +So_ResultentrySmwtDetailsWaktu, +So_ResultentrySmwtDetailsSPO2 , +So_ResultentrySmwtDetailsNadi, +M_BranchName, +(SELECT concat(M_PatientAddressDescription, ' ' , M_DistrictName, " " ,M_CityName) from m_patientaddress AS p +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription + + +from so_resultentry +left join t_orderheader on So_ResultEntryT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y' +left join so_resultentry_smwt on So_ResultentrySmwtSo_ResultentryID = So_ResultentryID and So_ResultentrySmwtIsActive = 'Y' +left join so_resultentry_smwt_details on So_ResultentrySmwtDetailsSo_ResultentrySmwtID = So_ResultentrySmwtID and So_ResultentrySmwtDetailsIsActive = 'Y' +left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID +left join m_sex ON M_PatientM_SexID = M_SexID +left join m_title ON M_PatientM_TitleID = M_TitleID +left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID and M_CompanyIsActive = 'Y' +left join t_orderdetail on So_ResultEntryT_OrderDetailID = T_OrderDetailID and T_OrderDetailIsActive = 'Y' +left join t_test ON T_TestID = T_OrderDetailT_TestID and T_TestIsActive = 'Y' +left join t_samplingso on T_SamplingSoT_OrderHeaderID = T_OrderHeaderID and T_SamplingSoT_TestID = T_TestID +left join m_doctor mm ON T_SamplingSoM_DoctorID = mm.M_DoctorID and mm.M_DoctorIsActive = 'Y' +left join m_doctor m ON T_OrderHeaderSenderM_DoctorID = m.M_DoctorID and m.M_DoctorIsActive = 'Y' +left join m_branch on M_BranchIsDefault = 'Y' +LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "FISIK" +left join conf_systems on S_SystemsID > 0 + +where So_ResultEntryID = PID and So_ResultEntryM_LangID = PLang $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_klinik_001` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_klinik_001`(IN `PID` int, IN `username` varchar(100)) +select +DATE_FORMAT(now(), "%d-%m-%Y %T") AS DATENOW, +orderID, +DATE_FORMAT(orderDate, "%d-%m-%Y %T") AS orderDate, +orderNumber, +fn_get_name(orderM_PatientID) AS M_PatientName, + M_PatientNoReg , + M_TitleName, + M_SexName, + M_PatientSuffix, + CONCAT(orderAge," / ",M_SexCode) AS Umur, + M_PatientHP , + M_PatientPhone , + M_PatientEmail, + M_PatientIDNumber, + M_PatientNote, + (SELECT concat(M_PatientAddressDescription," ",M_KelurahanName," ",M_DistrictName," ",M_CityName) from m_patientaddress AS p + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , +CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2) AS M_DoctorName, +orderM_PatientID, +orderM_DoctorID, +orderIsLunas, +orderKeluhan, +orderDiagnosisAwal, +orderDiagnosisAkhir, +orderSubtotal, +orderDiscountAmount, +orderDiscountPercent, +orderDiscountTotal, +orderTotal, + + IF(orderIsLunas= 'N' , "BELUM LUNAS","LUNAS") AS Status, + fn_get_delivery_patient(orderID) as alamatkirim, + fn_get_staff(orderUserID) as M_UserUsername, +M_No_FormRev, + orderNumber AS PIiD, + S_SystemsCompanyName, + concat(S_SystemsCompanyAddress," ",S_SystemsCompanyCity," ",S_SystemsCompanyCityFooter," Telp. ", S_SystemsCompanyPhone," Fax. ", S_SystemsCompanyFax) as alamatcabang, + S_SystemsEmailAddress,M_No_FormRev,S_SystemsCompanyCity, +if(fn_kirim_wa(orderID) = "" , "", concat("Kami menyetujui bahwa hasil pemeriksaan dikirim melalui media elektronik WhatsApp No." , fn_kirim_wa(orderID))) as WA + +from one_klinik.order + left join m_patient ON orderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' +left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' +left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' + left join m_doctor p ON orderM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' + LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "NOTA" +left join m_user on orderUserID = M_UserID + left join conf_systems on S_SystemsID > 0 +where orderIsActive = 'Y' AND orderID = PID $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_medis_001` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_medis_001`(IN `PID` int, IN `PLang` int, IN `username` varchar(100)) +select +fn_get_name( orderM_PatientID) AS M_PatientName, +(SELECT concat(M_PatientAddressDescription, ' ' , M_DistrictName, " " ,M_CityName) from m_patientaddress AS p +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = orderM_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , +CONCAT(ifnull( M_DoctorPrefix,"")," ", M_DoctorName," ",ifnull( M_DoctorSufix,"")," ",ifnull( M_DoctorSufix2,"")," ",ifnull( M_DoctorSufix3,"")) AS M_DoctorName, +orderDate, +orderAge , +orderNumber, +orderDoctorVitalSign, + orderDoctorReceipt, +concat(orderDoctorDiagnosePrimer," " ,orderDiagnoseIcd10Primary, " " ,orderDiagnoseIcd10PrimaryText) as orderDoctorDiagnosePrimer, +concat(orderDoctorDiagnoseSekunder," " ,orderDiagnoseIcd10Sekunder," " ,orderDiagnoseIcd10SekunderText ) as orderDoctorDiagnoseSekunder, +orderDoctorSaran, +orderKeluhan, + orderDiagnosisAwal, + orderDiagnosisAkhir , +T_TestName, +concat(orderDiagnoseIcd10Primary, " " ,orderDiagnoseIcd10PrimaryText ) as primaryText, +concat(orderDiagnoseIcd10Sekunder," " ,orderDiagnoseIcd10SekunderText) as SekunderText, + orderDoctorMedic + + +from one_klinik.order +left join one_klinik.order_doctor on order.orderid = order_doctor.orderDoctorOrderID and order_doctor .orderDoctorType = "TEXT" and order_doctor.orderDoctorIsActive = "Y" +left join m_doctor ON order.orderM_DoctorID = M_DoctorID +left join one_klinik.order_penunjang ON order.orderid = order_penunjang .orderPenunjangOrderID and orderPenunjangIsActive = 'Y' +left join t_test on order_penunjang .orderPenunjangT_TestID = T_TestID +left join one_klinik.order_diagnose_icd10 on order_diagnose_icd10.orderDiagnoseIcd10OrderID = order.orderid and order_diagnose_icd10.orderDiagnoseIcd10IsActive = 'Y' + + +where + + order.orderIsActive = "Y" +and order.OrderID = PID +and order.orderM_LanguageID = PLang $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_medis_002` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_medis_002`(IN `PID` int, IN `username` varchar(100)) +select +fn_get_name( orderM_PatientID) AS M_PatientName, +(SELECT concat(M_PatientAddressDescription, ' ' , M_DistrictName, " " ,M_CityName) from m_patientaddress AS p +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = orderM_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , +CONCAT(ifnull( M_DoctorPrefix,"")," ", M_DoctorName," ",ifnull( M_DoctorSufix,"")," ",ifnull( M_DoctorSufix2,"")," ",ifnull( M_DoctorSufix3,"")) AS M_DoctorName, +orderDate, +orderAge , +orderNumber, + +orderKeluhan, + orderDiagnosisAwal, + orderDiagnosisAkhir , +T_TestName,T_TestSasCode + + + +from one_klinik.order + left join m_doctor ON order.orderM_DoctorID = M_DoctorID +left join one_klinik.order_penunjang ON order.orderid = order_penunjang .orderPenunjangOrderID and orderPenunjangIsActive = 'Y' +left join t_test on order_penunjang .orderPenunjangT_TestID = T_TestID + + +where + + order.orderIsActive = "Y" +and order.OrderID = PID $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_m_doctor` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_m_doctor`(IN `PStaffID` int, IN `username` varchar(100)) +select +M_DoctorID, + M_DoctorOldCode , +M_DoctorCode, + M_DoctorM_BranchCode, +concat( M_DoctorPrefix,M_DoctorPrefix2, M_DoctorName,M_DoctorSufix,M_DoctorSufix2,M_DoctorSufix3) as doctor, +M_DoctorAddressNote, + +group_concat(concat(M_DoctorAddressNote, ":" , M_DoctorAddressDescription )SEPARATOR '\\n') as M_DoctorAddressDescription , +M_DoctorDOB, +M_SexName, +M_ReligionName, + M_DoctorEmail, +M_DoctorHP, + M_DoctorPhone, +M_DoctorNote, +M_SpecialistName, +Nat_StaffName, +M_KelurahanName, +M_DistrictName, +M_CityName, + if(M_DoctorIsMarketingConfirm = 'Y' , 'Sudah', 'Belum') as M_DoctorIsMarketingConfirm , + M_DoctorM_SexID , + M_DoctorM_ReligionID, + M_DoctorEmailIsDefault, + M_DoctorIsPJ, + M_DoctorIsDefaultPJ, + M_DoctorM_SpecialID, + M_DoctorIsClinic, + M_DoctorIsDefault, + M_DoctorIsDefaultMcu, + M_DoctorCreated, + M_DoctorLastUpdated, + M_DoctorIsActive, + M_DoctorReportCode, + M_DoctorPrivateRequest, + M_DoctorM_UserID, + M_DoctorM_StaffID, + M_DoctorM_StaffNIK, + + M_DoctorIsUploaded, + M_DoctorM_SpecialistID + + + +from m_doctor +left join m_doctoraddress on M_DoctorAddressM_DoctorID = M_DoctorID and M_DoctorAddressIsActive = 'Y' +left join m_sex on M_DoctorM_SexID = M_SexID +left join m_religion on M_DoctorM_ReligionID = M_ReligionID +left join nat_staff on M_DoctorM_StaffNIK = Nat_StaffNIK +left join m_specialist on M_DoctorM_SpecialistID = M_SpecialistID +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_DoctorAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + +where M_DoctorIsActive = 'Y' +and (PStaffID= 0 or (PStaffID> 0 and Nat_StaffID = PStaffID)) +group by M_DoctorCode +order by M_DoctorSufix,M_DoctorName $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_nl_005` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_nl_005`(IN `PStartDate` date, IN `PEndDate` date, IN `PPatientTypeID` int, IN `PMouID` int, IN `username` varchar(100)) +select +M_CompanyName,M_MouName,M_MouID,M_CompanyID, + T_OrderHeaderDate , +concat(right(ifnull(T_OrderHeaderAddOnLabNumberOrigin,''),2) , " " , T_OrderHeaderLabNumberExt) As T_OrderHeaderLabNumberExt, +T_OrderHeaderLabNumber , +M_PatientName, +M_PatientIDNumber , + M_PatientDOB, +T_OrderHeaderM_PatientAge, +M_SexName, +M_PatientLocation, +M_PatientHP, + +T_OrderDetailT_TestName, +T_OrderDetailResult, +T_OrderDetailT_TestSasCode as LetterOtherT_TestSasCode, + (SELECT concat(M_PatientAddressDescription, ' ' , M_DistrictName, " " ,M_CityName) from m_patientaddress AS p +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , +M_PatientNIK , +M_PatientJabatan , +M_PatientKedudukan, +M_PatientPJ , +M_PatientLocation , +M_PatientJob, +substring_index(T_OrderHeaderFoNote,',',-1) as note,mm.M_BranchName as M_BranchName + +from t_orderheader +left join m_company on T_OrderHeaderM_CompanyID = M_CompanyID +left join t_orderdetail on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID + and T_OrderDetailIsActive = 'Y' and T_OrderDetailT_TestIsResult = 'Y' +left join m_patient on T_OrderHeaderM_PatientID = M_PatientID +LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "SK" +left join m_branch m on M_BranchIsDefault = 'Y' +left join m_city on M_BranchM_CityID = M_CityID +left join m_sex on M_PatientM_SexID = M_SexID +left join t_test on T_OrderDetailT_TestID = T_TestID +left join nat_test on T_TestNat_TestID = Nat_TestID + left join m_doctor pj ON T_OrderHeaderPjM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' +left join m_mou on T_OrderHeaderM_MouID= M_MouID +left join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderAddOnIsActive = 'Y' +left join t_ref_deliveryorder_detail on T_RefDeliveryOrderDetailT_OrderHeaderID = T_OrderHeaderID and T_RefDeliveryOrderDetailIsActive = 'Y' +left join t_ref_deliveryorder on T_RefDeliveryOrderDetailT_RefDeliveryOrderID = T_RefDeliveryOrderID and T_RefDeliveryOrderDetailIsActive = 'Y' + LEFT JOIN m_branch mm ON T_RefDeliveryOrderM_DestinationID = mm.M_BranchID AND mm.M_BranchIsActive = 'Y' + +where T_OrderHeaderIsActive = 'Y' + and date(T_OrderHeaderDate) between PStartDate and PEndDate +and (PPatientTypeID= 0 or (PPatientTypeID> 0 and M_CompanyID = PPatientTypeID)) +and (PMouID= 0 or (PMouID > 0 and M_MouID= PMouID)) + and ( SUBSTRING(T_OrderDetailT_TestSasCode , 7,20) + in ('10634900','1063490001','PN05781063490001','PN05781063490002','1063490002','10635000','10635550', +'1063510001','10813100','1081300001','10813050','10635500','1063590001', +'108130500101','108130500102','108130500103','108130500104','108130500105', +'108130500106','108130500107','10635600','1063560001','1063560002','10635200','10635400','108130500108' +,'PN086610635400') + +or + + T_OrderDetailT_TestSasCode + in ('10634900','1063490001','PN05781063490001','PN05781063490002','1063490002','10635000','10635550', +'1063510001','10813100','1081300001','10813050','10635500','1063590001', +'108130500101','108130500102','108130500103','108130500104','108130500105', +'108130500106','108130500107','10635600','1063560001','1063560002','10635200','10635400','108130500108' +,'PN086610635400') + +or +Nat_TestShortName = 'Kesimpulan' + ) $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_pajak_001` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_pajak_001`(IN `PStartDate` date, IN `PEndDate` date, IN `username` varchar(100)) +select +"08" as KodePajak, +"BIAYA MEDICAL CHECK UP" as Pemeriksaan, +REPLACE(sysFaktur08NoEfaktur, ".", "") as sysFaktur08NoEfaktur, +sysFaktur08Amount, +month(T_OrderHeaderDate) as Bulan , +Year(T_OrderHeaderDate) as Tahun, +date_format(T_OrderHeaderDate , "%d/%m/%Y" ) as tanggal, +concat(M_PatientIDNumber,"#NIK","#NAMA#",M_PatientName) as pasien, +(SELECT concat(M_PatientAddressDescription, ' ' , M_DistrictName, " " ,M_CityName) from m_patientaddress AS p +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = M_PatientID and M_PatientAddressIsActive = 'Y' + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription + + +from sys_faktur_08 +join t_orderheader on sysFaktur08T_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y' +join m_patient on T_OrderHeaderM_PatientID = M_PatientID + +where sysFaktur08IsActive = 'Y' +and date(T_OrderHeaderDate) between PStartDate and PEndDate $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_pm_001` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_pm_001`(IN `PID` int, IN `username` varchar(100)) +BEGIN + +SELECT DISTINCT +DATE_FORMAT(now(), '%d-%m-%Y %T') AS DATENOW, +M_PatientNoReg, +concat(M_TitleName,' ',M_PatientName) AS M_PatientName, +concat(TIMESTAMPDIFF(YEAR, M_PatientDOB, CURDATE()), ' Tahun / ', M_SexCode) AS Umur, +MemberPaymentNumber, +IF(MemberPaymentNote = '' , ' ',CONCAT( 'No: ',MemberPaymentNote)) AS MemberPaymentNote, +MemberPaymentTotal, + +(SELECT concat(M_PatientAddressDescription,' ',M_KelurahanName,' ',M_DistrictName,' ',M_CityName) from m_patientaddress AS p +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , + +MemberPaymentDetailAmount, +IF(MemberPaymentDetailActual = '0' ,MemberPaymentDetailAmount,MemberPaymentDetailActual) AS MemberPaymentDetailActual , +MemberPaymentDetailChange, +MemberNote, +MemberNumber, +MemberM_BrachCode, +MemberNIK, +CASE + WHEN MemberTransactionType = 'N' THEN 'Baru' + WHEN MemberTransactionType = 'E' THEN 'Perpanjangan' + WHEN MemberTransactionType = 'O' THEN 'Member lama' +ELSE '' +END AS MemberTransactionType, +MemberTransactionType as MemberTransactionTypeCode, +MemberType, +DATE_FORMAT(MemberStartDate, '%d-%m-%Y') AS MemberStartDate, +DATE_FORMAT(MemberEndDate, '%d-%m-%Y') AS MemberEndDate, +MemberDateCountVisit, +MemberDateCountPoint, +M_PaymentTypeName, +if(MemberPaymentDetailCardNat_BankID = '0' , '', concat('Kartu: ',b.Nat_BankName)) as bank, +if(MemberPaymentDetailEDCNat_BankID = '0' , '', concat('EDC: ',bb.Nat_BankName)) as EDC, +concat(M_PaymentTypeName ,' ', +if(MemberPaymentDetailCardNat_BankID = '0' , '', concat('Kartu: ',b.Nat_BankName)),' ', +if(MemberPaymentDetailEDCNat_BankID = '0' , '', concat('EDC: ',bb.Nat_BankName)),' ', +if(MemberPaymentDetailM_BankAccountID = '0' , '', concat('No: ',concat(bbb.Nat_BankName,'/',M_BankAccountNo))) +) as aaa, +fn_get_staff(MemberPaymentUserID) AS M_UserUsername, +S_SystemsCompanyName, +S_SystemsEmailAddress, +S_SystemsCompanyCity, +(SELECT Member_EligibleDescription +FROM member_eligible WHERE Member_EligibleM_PatientID = M_PatientID +ORDER BY Member_EligibleID DESC +LIMIT 1) AS Member_EligibleDescription, +(SELECT Member_EligibleID +FROM member_eligible WHERE Member_EligibleM_PatientID = M_PatientID +ORDER BY Member_EligibleID DESC +LIMIT 1) AS flag_member + +FROM one_pointreward.member_payment +LEFT JOIN one_pointreward.member_paymentdetail ON MemberPaymentDetailMemberPaymentID = MemberPaymentID AND MemberPaymentDetailIsActive = 'Y' +LEFT JOIN m_paymenttype ON MemberPaymentDetailM_PaymentTypeID = M_PaymentTypeID AND M_PaymentTypeIsActive = 'Y' +LEFT JOIN nat_bank b ON MemberPaymentDetailCardNat_BankID = b.Nat_BankID +LEFT JOIN nat_bank bb ON MemberPaymentDetailEDCNat_BankID = bb.Nat_BankID +LEFT JOIN m_bank_account ON MemberPaymentDetailM_BankAccountID = M_BankAccountID +LEFT JOIN nat_bank bbb ON M_BankAccountNat_BankID = bbb.Nat_BankID +LEFT JOIN one_pointreward.member ON MemberPaymentMemberID = MemberID AND (MemberIsActive = 'Y' OR MemberIsActive = 'P') +LEFT JOIN m_patient ON MemberM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' +LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' +LEFT JOIN m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' +LEFT JOIN m_user on MemberPaymentUserID = M_UserID +LEFT JOIN conf_systems on S_SystemsID > 0 +WHERE MemberPaymentIsActive = 'Y' +AND MemberPaymentMemberID = PID; + + +END $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_p_001` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_p_001`(IN `PID` int, IN `username` varchar(100)) +BEGIN + +select PaymentOrderID into @oid +from +one_klinik.payment +where +PaymentID = PID AND PaymentIsActive = 'Y'; + +select ifnull(sum(PaymentTotal),0) into @amountotherinvoice +from +one_klinik.payment +WHERE +PaymentOrderID = @oid AND PaymentIsActive = 'Y' AND PaymentID < PID; + +select distinct +DATE_FORMAT(now(), "%d-%m-%Y %T") AS DATENOW, +orderID, +DATE_FORMAT(orderDate, "%d-%m-%Y %T") AS orderDate, +orderNumber, +fn_get_name(orderM_PatientID) AS M_PatientName, + M_PatientNoReg , + M_TitleName, + M_SexName, + M_PatientSuffix, + CONCAT(orderAge," / ",M_SexCode) AS Umur, + M_PatientHP , + M_PatientPhone , + M_PatientEmail, + M_PatientIDNumber, + M_PatientNote, + (SELECT concat(M_PatientAddressDescription," ",M_KelurahanName," ",M_DistrictName," ",M_CityName) from m_patientaddress AS p + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , +CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2) AS M_DoctorName, +orderM_PatientID, +orderM_DoctorID, +orderIsLunas, +orderKeluhan, +orderDiagnosisAwal, +orderDiagnosisAkhir, +orderSubtotal, +orderDiscountAmount, +orderDiscountPercent, +orderDiscountTotal, +orderTotal, +DATE_FORMAT(PaymentDate, "%d-%m-%Y") AS PaymentDate, +PaymentID, +PaymentOrderID, +PaymentNumber, +PaymentNote, +PaymentTotal, +PaymentIsPosted, + IF(orderIsLunas= 'N' , "BELUM LUNAS","LUNAS") AS Status, + fn_get_delivery_patient(orderID) as alamatkirim, +ifnull(fn_get_potongan(orderID, PaymentID),0) as administasi, +fn_get_staff(PaymentM_UserID) as M_UserUsername, +M_No_FormRev, + orderNumber AS PIiD, + S_SystemsCompanyName, + concat(S_SystemsCompanyAddress," ",S_SystemsCompanyCity," ",S_SystemsCompanyCityFooter," Telp. ", S_SystemsCompanyPhone," Fax. ", S_SystemsCompanyFax) as alamatcabang, + S_SystemsEmailAddress,M_No_FormRev,S_SystemsCompanyCity, + (orderTotal-ifnull(@amountotherinvoice,0)-PaymentTotal) as kurangbayar, +if(fn_kirim_wa(orderID) = "" , "", concat("Kami menyetujui bahwa hasil pemeriksaan dikirim melalui media elektronik WhatsApp No." , fn_kirim_wa(orderID))) as WA + +from one_klinik.order +left join one_klinik.payment on PaymentOrderID = orderID and PaymentIsActive = 'Y' +left join m_patient ON orderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' +left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' +left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' + left join m_doctor p ON orderM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' + LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "NOTA" +left join m_user on PaymentM_UserID = M_UserID + left join conf_systems on S_SystemsID > 0 +where orderIsActive = 'Y' AND PaymentID = PID; + +END $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_resep_001` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_resep_001`(IN `PID` int, IN `username` varchar(100)) +select +fn_get_name( orderM_PatientID) AS M_PatientName, +(SELECT concat(M_PatientAddressDescription, ' ' , M_DistrictName, " " ,M_CityName) from m_patientaddress AS p +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = orderM_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , +CONCAT(ifnull( M_DoctorPrefix,"")," ", M_DoctorName," ",ifnull( M_DoctorSufix,"")," ",ifnull( M_DoctorSufix2,"")," ",ifnull( M_DoctorSufix3,"")) AS M_DoctorName, +orderDate, +orderAge , +orderNumber, +orderDoctorVitalSign, + orderDoctorReceipt, +orderDoctorDiagnosePrimer, +orderDoctorDiagnoseSekunder, +orderDoctorSaran, +orderKeluhan, + orderDiagnosisAwal, + orderDiagnosisAkhir + + +from one_klinik.order_doctor +join one_klinik.order on order.orderid = order_doctor.orderDoctorOrderID +left join m_doctor ON order.orderM_DoctorID = M_DoctorID + + +where +order_doctor .orderDoctorType = "TEXT" +and order_doctor.orderDoctorIsActive = "Y" +and order.orderIsActive = "Y" +and order.OrderID = PID $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_r_015` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_r_015`(IN `PStartDate` date, IN `PEndDate` date, IN `username` varchar(100)) +begin + + +select +DATE_FORMAT(now(), "%d-%m-%Y %T") AS DATENOW, +T_OrderHeaderID as id, +DATE_FORMAT(T_OrderHeaderDate, "%d-%m-%Y %T") AS tglorder, +fn_numbering_external(T_OrderHeaderLabNumber) as labx, +CONCAT(fn_numbering_external(T_OrderHeaderLabNumber)," / ",M_PatientNoReg) AS PIiD, +CONCAT(M_TitleName," ",M_PatientName) AS M_PatientName, +T_OrderHeaderLabNumber, +M_PatientNoReg , +M_SexName, +DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") AS M_PatientDOB, +M_PatientHP , +M_PatientPhone , +M_PatientEmail, +M_PatientIDNumber, +M_PatientNote, +(SELECT concat(M_PatientAddressDescription," ",M_KelurahanName," ",M_DistrictName," ",M_CityName) from m_patientaddress AS p + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , +M_CompanyName, + M_MouName, +CONCAT(T_OrderHeaderM_PatientAge," / ",M_SexCode) AS Umur, +CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix) AS M_DoctorName, + +CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix) AS DokterPJ , + + T_OrderHeaderTotal, +T_TestCode , group_concat( distinct T_TestName) as pemeriksaan, + +CONCAT(`f_terbilang`(T_OrderHeaderTotal),"", "Rupiah") AS terbilang, +`fn_get_delivery_patient`(T_OrderHeaderID) as alamatkirim, +S_SystemsCompanyName , +concat(S_SystemsCompanyAddress," ",S_SystemsCompanyCity," ",S_SystemsCompanyCityFooter," Telp. ", S_SystemsCompanyPhone," Fax. ", S_SystemsCompanyFax) as alamatcabang, +S_SystemsEmailAddress,M_No_FormRev,S_SystemsCompanyCity ,M_UserUsername + + + +from t_orderheader +left join t_orderdetail on T_OrderHeaderID = T_OrderDetailT_OrderHeaderID + +left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' +left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' +left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' +left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y' +left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y' +left join m_doctor p ON T_OrderHeaderSenderM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' + left join m_doctor pj ON T_OrderHeaderPjM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' +left join t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' +left join nat_test ON T_TestNat_TestID = Nat_TestID +left join t_orderdetailaddon on T_OrderDetailID = T_OrderDetailAddOnT_OrderDetailID +left join t_packet on T_OrderDetailAddOnT_PacketID = T_PacketID +LEFT JOIN last_statuspayment ON Last_StatusPaymentT_OrderHeaderID = T_OrderHeaderID +LEFT JOIN m_no_form on M_No_FormID > 0 +left join conf_systems on S_SystemsID > 0 +left join m_user on T_OrderHeaderUserID = M_UserID + + + +where +DATE(T_OrderHeaderDate) between PStartDate and PEndDate +and + T_OrderHeaderIsActive = 'Y' and T_OrderDetailIsActive = 'Y' and + ( Nat_TestPriceSumToNat_TestID = 0 or Nat_TestPriceSumToNat_TestID is null ) + and +( + ( + T_OrderDetailT_TestIsPanelChildren = 'N' + and + ( ( T_TestIsPrintNota = 'y' ) + or + T_PacketIsNota = 'Y' + ) + ) + or + ( + T_OrderDetailT_TestIsPanelChildren = 'Y' + and + T_OrderDetailT_TestIsPanelChildrenPrintNota = 'Y' + ) +) +group by T_OrderHeaderID +order by T_OrderHeaderID + +; +end $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_r_046` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_r_046`(IN `PStartDate` date, IN `PEndDate` date, IN `username` varchar(100)) +select +T_OrderHeaderID , +DATE_FORMAT(T_OrderHeaderDate, "%d-%m-%Y") AS T_OrderHeaderDate, + fn_lookup_external(T_OrderHeaderLabNumber,'L') as T_OrderHeaderLabNumber, +CONCAT(M_TitleName," ",M_PatientName) AS M_PatientName, +M_PatientNoReg, +GROUP_CONCAT(distinct M_MouName SEPARATOR ',') as MOU , +M_CompanyName, +M_SexName, +M_PatientPOB, +M_PatientDOB, +T_OrderHeaderM_PatientAge, +M_ReligionName, +(SELECT M_PatientAddressDescription from m_patientaddress AS p + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , +M_KelurahanName, +M_DistrictName, +M_CityName, +M_PatientAddressPostCodeID, +M_PatientPhone , +M_PatientHP , +M_PatientEmail, +count(distinct T_OrderHeaderID) as jmlpemeriksaan, +sum(distinct T_OrderHeaderTotal) as jmlorder , +M_ReferenceName + +from t_orderheader + join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' + join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' + left join m_religion ON M_PatientM_ReligionID = M_ReligionID + join m_company on T_OrderHeaderM_CompanyID = M_CompanyID + join m_mou on T_OrderHeaderM_MouID = M_MouID + join m_omzettype on M_MouM_OmzetTypeID = M_OmzetTypeID +left join m_user on T_OrderHeaderUserID = M_UserID +left join m_staff on M_UserM_StaffID = M_StaffID + join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' + join m_patientaddress mm on mm.M_PatientAddressM_PatientID = M_PatientID +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd +left join t_orderreference ON T_OrderreferenceT_OrderheaderID = T_OrderheaderID +left join m_reference ON M_ReferenceID = T_OrderreferenceM_ReferenceID + +where T_OrderHeaderIsActive = 'Y' +and date(T_OrderHeaderDate) between PStartDate and PEndDate + +group by M_PatientID $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_r_047` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_r_047`(IN `PStartDate` date, IN `PEndDate` date, IN `username` varchar(100)) +select + DATE_FORMAT(M_PatientCreated, "%d-%m-%Y") AS M_PatientCreated, +M_PatientNoReg , +M_TitleName, +M_PatientName, + M_SexName, +M_ReligionName, +M_PatientPOB, +M_CompanyName, + DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") AS M_PatientDOB, +'' as realdob, +'' as alive , +'' as location, +(SELECT M_PatientAddressDescription from m_patientaddress AS p + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , +M_CityName, + M_PatientAddressPostCodeID, +M_PatientPhone , +M_PatientHP , + M_PatientEmail, +M_KelurahanName, +M_DistrictName + + +from m_patient + join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' +join t_orderheader on T_OrderHeaderM_PatientID = M_PatientID +join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID +left join m_company on T_OrderHeaderM_CompanyID = M_CompanyID +left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' +left join m_religion on M_PatientM_ReligionID = M_ReligionID +left join m_patientaddress mm on mm.M_PatientAddressM_PatientID = M_PatientID +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + +where date(M_PatientCreated) between PStartDate and PEndDate + AND M_PatientIsActive = 'Y' and T_OrderHeaderAddOnLabNumberOrigin is null + +group by M_PatientID + order by M_PatientCreated $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_r_077` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_r_077`(IN `PStartDate` date, IN `PEndDate` date, IN `PPatientTypeID` int, IN `username` varchar(100)) +select + +T_OrderHeaderLabNumberExt as noex, +T_OrderHeaderLabNumber as noIn, +fn_get_name( T_OrderHeaderM_PatientID ) AS M_PatientName, +T_OrderHeaderAddOnLabNumberOrigin as noLabAsli, +DATE_FORMAT(T_OrderHeaderDate, "%d-%m-%Y") AS T_OrderHeaderDate, +M_PatientIDNumber, +M_PatientNIK, +M_PatientDOB, +M_SexName, +M_PatientHP, +(SELECT M_PatientAddressDescription from m_patientaddress AS p +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , +(SELECT M_ProvinceName from m_patientaddress AS p +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS propinsi, + +(SELECT M_CityName from m_patientaddress AS p +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS kota, + +(SELECT M_DistrictName from m_patientaddress AS p +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS kecamatan, + +(SELECT M_KelurahanName from m_patientaddress AS p +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS kelurahan, +concat(T_OrderSampleSamplingDate ," " , T_OrderSampleSamplingTime ) as sampling, +`fn_get_suratjalan`(T_OrderDetailID) as suratjalan, +concat(T_OrderSampleReceiveDate, " " , T_OrderSampleReceiveTime ) as receive , +T_OrderDetailT_TestID as testid, +T_OrderDetailT_TestName as testname, +if(T_TestIsParent = 'Y','',(case +when (T_OrderSampleReceive= 'N' and T_OrderDetailResult is null ) then 'Bahan Belum' +when T_OrderDetailVerification = 'X' then 'Hasil Menyusul' else + concat( +if(`fn_itf_isnumber`(T_OrderDetailResult) = '0', concat(T_OrderDetailResult," ",ifnull(T_OrderDetailResultFlag,''), +ifnull(concat("",T_OrderDetailNote),"")),concat( `fn_rpt_format_number`(T_OrderDetailResult)," ",ifnull(concat("",T_OrderDetailNote),"")) +)) end) ) +as T_OrderDetailResult, +if(T_OrderDetailResultFlag = "*" ,'H' , '' ) as flag, +T_OrderDetailVerDate, +T_OrderDetailNat_MethodeID as metodeid, +T_OrderdetailNat_MethodeName as metodename, +Nat_GroupID, +Nat_GroupName, +concat(T_OrderDetailNormalValueNote , " " , ifnull(T_OrderDetailNormalValueDescription,'')) as normalvalue, +M_CompanyName,M_CompanyID + + + +from t_orderheader +join t_orderdetail on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID and T_OrderDetailIsActive = 'Y' and T_OrderDetailT_TestIsResult = 'Y' +join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID +left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' +left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' +left join t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' +left join nat_test oN T_TestNat_TestID = Nat_TestID aND Nat_TestIsActive = 'Y' +left join nat_unit on T_OrderDetailNat_UnitID = Nat_UnitID and Nat_UnitIsActive = 'Y' +left join t_ordersample on T_OrderSampleT_OrderHeaderID = T_OrderHeaderID and T_OrderSampleIsActive = 'Y' and T_OrderSampleT_SampleTypeID = T_TestT_SampleTypeID +left join nat_group on T_TestNat_GroupID = Nat_GroupID +left JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID + + +where T_OrderHeaderIsActive = 'Y' +and date(T_OrderHeaderDate) between PStartDate and PEndDate + +and (PPatientTypeID= 0 or (PPatientTypeID> 0 and M_CompanyID = PPatientTypeID)) +order by T_OrderHeaderID ,T_OrderDetailID $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_r_086` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_r_086`(IN `PStartDate` date, IN `PEndDate` date, IN `username` varchar(100)) +select * + +from ( + +select + fn_get_name( FutureOrderM_PatientID) AS M_PatientName, + + DATE_FORMAT(FutureOrderCreated , "%d-%m-%Y") AS FutureOrderCreated , +FutureOrderNumber , +M_PatientNoReg , + DATE_FORMAT(FutureOrderDateBooking, "%d-%m-%Y") AS bookingdate, +(SELECT concat(M_PatientAddressDescription," ",M_KelurahanName," ",M_DistrictName," ",M_CityName) from m_patientaddress AS p + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , + M_CompanyName, + M_MouName, +DATE_FORMAT(FutureDownpaymentF_PaymentDate , "%d-%m-%Y") as FutureDownpaymentF_PaymentDate , +FutureDownpaymentNumber, + CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2) AS M_DoctorName, +if(Future_OrderDetailIsPacket = 'Y' , +CONCAT(T_PacketName,"(",`fn_get_test_packet`(T_PacketID),")" ) +,group_concat(T_TestName separator ",") ) as test, +FutureOrderTotal, +FutureDownpaymentTotal, + + +FutureDownpaymentDetailAmount, + + Future_OrderDetailPrice , Future_OrderDetailDiscTotal, Future_OrderDetailTotal, + +ifnull(M_PaymentTypeName,"") as M_PaymentTypeName, +ifnull(Nat_BankName,"") as Nat_BankName, +ifnull(M_BankAccountNo,"") as M_BankAccountNo, +if(FutureDownpaymentUserID is null , '',`fn_get_staff`(FutureDownpaymentUserID)) as M_UserUsername + + +from future_order + left join future_downpayment ON FutureDownpaymentFutureOrderID = FutureOrderID AND FutureDownpaymentIsActive = 'Y' + left join future_orderdetail on Future_OrderDetailFutureOrderID = FutureOrderID and Future_OrderDetailIsActive = 'Y' + left join m_patient ON FutureOrderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' + left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' + left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' + left join m_company ON FutureOrderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y' + left join m_mou ON FutureOrderM_MouID = M_MouID AND M_MouIsActive = 'Y' + left join m_doctor p ON FutureOrderSenderM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' + left join t_test ON Future_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' + left join nat_test ON T_TestNat_TestID = Nat_TestID + LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "NOTA" + left join m_user on FutureDownpaymentUserID = M_UserID + left join conf_systems on S_SystemsID > 0 + left join t_packet on Future_OrderDetailT_TestID = T_PacketID and T_PacketIsActive = 'Y' +left join m_branch on M_BranchIsDefault = 'Y' + left join future_downpayment_detail on FutureDownpaymentDetailFutureDownpaymentID = FutureDownpaymentID +left join m_paymenttype ON FutureDownpaymentDetailM_PaymentTypeID = M_PaymentTypeID +left join m_bank_account on FutureDownpaymentDetailM_BankAccountID = M_BankAccountID +left join nat_bank on M_BankAccountNat_BankID = Nat_BankID + + where FutureOrderIsActive = 'Y' + and date(FutureOrderCreated) between PStartDate and PEndDate + +group by FutureOrderID , FutureDownpaymentID, FutureDownpaymentDetailID + + +union all + +select + fn_get_name( FutureOrderM_PatientID) AS M_PatientName, + + DATE_FORMAT(FutureOrderCreated , "%d-%m-%Y") AS FutureOrderCreated , +FutureOrderNumber , +M_PatientNoReg , + DATE_FORMAT(FutureOrderDateBooking, "%d-%m-%Y") AS bookingdate, +(SELECT concat(M_PatientAddressDescription," ",M_KelurahanName," ",M_DistrictName," ",M_CityName) from m_patientaddress AS p + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , + M_CompanyName, + M_MouName, + DATE_FORMAT(F_PaymentDate, "%d-%m-%Y") as FutureDownpaymentF_PaymentDate , +F_PaymentNumber as FutureDownpaymentNumber, + CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2) AS M_DoctorName, +'' as test, + FutureOrderTotal, +F_PaymentTotal as FutureDownpaymentTotal, + + +F_PaymentDetailAmount as FutureDownpaymentDetailAmount, + +'' as Future_OrderDetailPrice , +'' as Future_OrderDetailDiscTotal, +'' as Future_OrderDetailTotal, + +ifnull(M_PaymentTypeName,"") as M_PaymentTypeName, +ifnull(Nat_BankName,"") as Nat_BankName, +ifnull(M_BankAccountNo,"") as M_BankAccountNo, +if(F_PaymentM_UserID is null , '',`fn_get_staff`(F_PaymentM_UserID)) as M_UserUsername + + + +from future_order +left join future_map on FutureMapFutureOrderID = FutureOrderID +left join t_orderheader on FutureMapT_OrderHeaderID = T_OrderHeaderID +left join f_payment on F_PaymentT_OrderHeaderID = T_OrderHeaderID +left join f_paymentdetail on F_PaymentDetailF_PaymentID = F_PaymentID + left join m_paymenttype ON F_PaymentDetailM_PaymentTypeID = M_PaymentTypeID and M_PaymentTypeIsActive = 'Y' +left join m_bank_account on F_PaymentDetailM_BankAccountID = M_BankAccountID +left join nat_bank on M_BankAccountNat_BankID = Nat_BankID + + left join m_patient ON FutureOrderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' + left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' + left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' + left join m_company ON FutureOrderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y' + left join m_mou ON FutureOrderM_MouID = M_MouID AND M_MouIsActive = 'Y' + left join m_doctor p ON FutureOrderSenderM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' + + + where FutureOrderIsActive = 'Y' + and date(FutureOrderCreated) between PStartDate and PEndDate and M_PaymentTypeID <> '10' + group by T_OrderHeaderID,F_PaymentID +) as xx + +order by FutureOrderNumber $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_r_087` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_r_087`(IN `PStartDate` date, IN `PEndDate` date, IN `username` varchar(100)) +select +FutureOrderID , +M_PatientName , +FutureOrderCreated , +FutureOrderNumber, + M_PatientNoReg, bookingdate, + M_PatientAddressDescription, + M_CompanyName, + M_MouName, + FutureDownpaymentF_PaymentDate , +FutureDownpaymentNumber , +M_DoctorName, + test , +FutureOrderTotal , +sum(payment) as payment, +FutureOrderTotal - sum(payment) as piutang , +status , +M_UserUsername + +from +( +select FutureOrderID , + fn_get_name( FutureOrderM_PatientID) AS M_PatientName, + + DATE_FORMAT(FutureOrderCreated , "%d-%m-%Y") AS FutureOrderCreated , +FutureOrderNumber , +M_PatientNoReg , + DATE_FORMAT(FutureOrderDateBooking, "%d-%m-%Y") AS bookingdate, +(SELECT concat(M_PatientAddressDescription," ",M_KelurahanName," ",M_DistrictName," ",M_CityName) from m_patientaddress AS p + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , + M_CompanyName, + M_MouName, +DATE_FORMAT(FutureDownpaymentF_PaymentDate , "%d-%m-%Y") as FutureDownpaymentF_PaymentDate , +FutureDownpaymentNumber, + CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2) AS M_DoctorName, +if(Future_OrderDetailIsPacket = 'Y' , +CONCAT(T_PacketName,"(",`fn_get_test_packet`(T_PacketID),")" ) +,group_concat(T_TestName separator ",") ) as test, +FutureOrderTotal, + sum(distinct FutureDownpaymentTotal) as payment, + +FutureOrderTotal - sum(distinct ifnull(FutureDownpaymentTotal,"0")) as piutang, +if( FutureOrderTotal < sum(distinct ifnull(FutureDownpaymentTotal,"0")) , "LUNAS" , "BELUM LUNAS") as status , + +if(FutureDownpaymentUserID is null , '',`fn_get_staff`(FutureDownpaymentUserID)) as M_UserUsername + + +from future_order + left join future_downpayment ON FutureDownpaymentFutureOrderID = FutureOrderID AND FutureDownpaymentIsActive = 'Y' + left join future_orderdetail on Future_OrderDetailFutureOrderID = FutureOrderID and Future_OrderDetailIsActive = 'Y' + left join m_patient ON FutureOrderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' + left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' + left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' + left join m_company ON FutureOrderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y' + left join m_mou ON FutureOrderM_MouID = M_MouID AND M_MouIsActive = 'Y' + left join m_doctor p ON FutureOrderSenderM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' + left join t_test ON Future_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' + left join nat_test ON T_TestNat_TestID = Nat_TestID + LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "NOTA" + left join m_user on FutureDownpaymentUserID = M_UserID + left join conf_systems on S_SystemsID > 0 + left join t_packet on Future_OrderDetailT_TestID = T_PacketID and T_PacketIsActive = 'Y' +left join m_branch on M_BranchIsDefault = 'Y' + + + where FutureOrderIsActive = 'Y' + and date(FutureOrderDateBooking) between PStartDate and PEndDate + +group by FutureOrderID + +union all +select FutureOrderID , + fn_get_name( FutureOrderM_PatientID) AS M_PatientName, + + DATE_FORMAT(FutureOrderCreated , "%d-%m-%Y") AS FutureOrderCreated , +FutureOrderNumber , +M_PatientNoReg , + DATE_FORMAT(FutureOrderDateBooking, "%d-%m-%Y") AS bookingdate, +(SELECT concat(M_PatientAddressDescription," ",M_KelurahanName," ",M_DistrictName," ",M_CityName) from m_patientaddress AS p + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , + M_CompanyName, + M_MouName, +DATE_FORMAT(F_PaymentDate, "%d-%m-%Y") as FutureDownpaymentF_PaymentDate , +F_PaymentNumber as FutureDownpaymentNumber, + CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2) AS M_DoctorName, + '' as test, +FutureOrderTotal, + sum(F_PaymentTotal) as payment, + +FutureOrderTotal - sum(ifnull(F_PaymentTotal,"0")) as piutang, +if( FutureOrderTotal < sum(ifnull(F_PaymentTotal,"0")) , "LUNAS" , "BELUM LUNAS") as status , + +if(F_PaymentM_UserID is null , '',`fn_get_staff`(F_PaymentM_UserID)) as M_UserUsername + + +from future_order +left join future_map on FutureMapFutureOrderID = FutureOrderID +left join t_orderheader on FutureMapT_OrderHeaderID = T_OrderHeaderID +left join f_payment on F_PaymentT_OrderHeaderID = T_OrderHeaderID +left join f_paymentdetail on F_PaymentDetailF_PaymentID = F_PaymentID + left join m_patient ON FutureOrderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' + left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' + left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' + left join m_company ON FutureOrderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y' + left join m_mou ON FutureOrderM_MouID = M_MouID AND M_MouIsActive = 'Y' + left join m_doctor p ON FutureOrderSenderM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' + LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "NOTA" + left join conf_systems on S_SystemsID > 0 + left join m_branch on M_BranchIsDefault = 'Y' + + + where FutureOrderIsActive = 'Y' + and date(FutureOrderDateBooking) between PStartDate and PEndDate + and F_PaymentDetailM_PaymentTypeID <> '10' +group by FutureOrderID +) as xx group by FutureOrderID +order by bookingdate $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_r_088` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_r_088`(IN `PStartDate` date, IN `PEndDate` date, IN `username` varchar(100)) +select + fn_get_name( FutureOrderM_PatientID) AS M_PatientName, + + DATE_FORMAT(FutureOrderCreated , "%d-%m-%Y") AS FutureOrderCreated , +FutureOrderNumber , +M_PatientNoReg , + DATE_FORMAT(FutureOrderDateBooking, "%d-%m-%Y") AS bookingdate, +(SELECT concat(M_PatientAddressDescription," ",M_KelurahanName," ",M_DistrictName," ",M_CityName) from m_patientaddress AS p + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , + M_CompanyName, + M_MouName, + CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2) AS M_DoctorName, +if(Future_OrderDetailIsPacket = 'Y' , +CONCAT(T_PacketName,"(",`fn_get_test_packet`(T_PacketID),")" ) +,group_concat(T_TestName separator ",") ) as test, +FutureOrderTotal, +if(FutureOrderUserID is null , '',`fn_get_staff`(FutureOrderUserID)) as M_UserUsername + + +from future_order + left join future_orderdetail on Future_OrderDetailFutureOrderID = FutureOrderID and Future_OrderDetailIsActive = 'N' + left join m_patient ON FutureOrderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' + left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' + left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' + left join m_company ON FutureOrderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y' + left join m_mou ON FutureOrderM_MouID = M_MouID AND M_MouIsActive = 'Y' + left join m_doctor p ON FutureOrderSenderM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' + left join t_test ON Future_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' + left join nat_test ON T_TestNat_TestID = Nat_TestID + left join conf_systems on S_SystemsID > 0 + left join t_packet on Future_OrderDetailT_TestID = T_PacketID and T_PacketIsActive = 'Y' +left join m_branch on M_BranchIsDefault = 'Y' + + + where FutureOrderIsActive = 'N' + and date(FutureOrderCreated) between PStartDate and PEndDate + + +group by FutureOrderID $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_scanning_klinik` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_scanning_klinik`(IN `PID` int, IN `PLang` int, IN `username` varchar(100)) +select +fn_get_name( orderM_PatientID) AS M_PatientName, +(SELECT concat(M_PatientAddressDescription, ' ' , M_DistrictName, " " ,M_CityName) from m_patientaddress AS p +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = orderM_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , +CONCAT(ifnull( M_DoctorPrefix,"")," ", M_DoctorName," ",ifnull( M_DoctorSufix,"")," ",ifnull( M_DoctorSufix2,"")," ",ifnull( M_DoctorSufix3,"")) AS M_DoctorName, +orderDate, +orderAge , +orderNumber, + +orderScreeningKesanUmum , +a.ScreeningParameterType as TypeKesadaran , +a.ScreeningParameterDisplay as DisplayKesadaran, +orderScreeningValueKesadaran, + +b.ScreeningParameterType as TypePernafasan , +b.ScreeningParameterDisplay as DisplayPernafasan , +orderScreeningValuePernafasan , + +c.ScreeningParameterType as TypeJatuh, +c.ScreeningParameterDisplay as DisplayJatuh, +orderScreeningValueResikoJatuh, + +d.ScreeningParameterType as TypeDada , +d.ScreeningParameterDisplay as DisplayDada , +orderScreeningValueNyeriDada , + +e.ScreeningParameterType as TypeNyeri, +e.ScreeningParameterDisplay as DisplayNyeri, +orderScreeningValueSkalaNyeri, + +f.ScreeningParameterType as TypeBatuk, +f.ScreeningParameterDisplay as DisplayBatuk, +orderScreeningValueBatuk, + +g.ScreeningParameterType as TypeKeputusan , +g.ScreeningParameterDisplay as DisplayKeputusan , +orderScreeningValueKeputusan , +M_SexCode ,m_sexname, M_SexNameLang, +concat(S_SystemsCompanyCityFooter,", ",DATE_FORMAT(now(), "%d-%m-%Y ")) as hariini, +`fn_getstaffname`(orderScreeningUserID) as staff,orderScreeningUserID + +from one_klinik.order + left join m_doctor ON order.orderM_DoctorID = M_DoctorID + left join one_klinik.order_screening on orderScreeningOrderID = order.orderid +left join one_klinik.screening_parameter a on a.ScreeningParameterCode = orderScreeningValueKesadaran +left join one_klinik.screening_parameter b on b.ScreeningParameterCode = orderScreeningValuePernafasan +left join one_klinik.screening_parameter c on c.ScreeningParameterCode = orderScreeningValueResikoJatuh +left join one_klinik.screening_parameter d on d.ScreeningParameterCode = orderScreeningValueNyeriDada +left join one_klinik.screening_parameter e on e.ScreeningParameterCode = orderScreeningValueSkalaNyeri +left join one_klinik.screening_parameter f on f.ScreeningParameterCode = orderScreeningValueBatuk + left join one_klinik.screening_parameter g on g.ScreeningParameterCode = orderScreeningValueKeputusan +left join conf_systems on S_SystemsID > 0 +LEFT JOIN m_patient ON orderM_PatientID = M_PatientID + +left join m_sex on M_PatientM_SexID = M_SexID + where + + order.orderIsActive = "Y" and order.orderid = PID +and order.orderM_LanguageID = 1 $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_t_001` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_t_001`(IN `PID` int, IN `username` varchar(100)) +begin + + + +select sum(T_OrderDetailPrice) into @subtot + +from t_orderdetail + +where T_OrderDetailT_OrderHeaderID = PID and T_OrderDetailIsActive = 'Y' limit 1; + + + +select sum(T_OrderDetailDiscTotal) into @disc + +from t_orderdetail + +where T_OrderDetailT_OrderHeaderID = PID and T_OrderDetailIsActive = 'Y' limit 1; + + + + + +select + +distinct + +DATE_FORMAT(now(), "%d-%m-%Y %T") AS DATENOW, + +T_OrderHeaderID, + +DATE_FORMAT(T_OrderHeaderDate, "%d-%m-%Y %T") AS T_OrderHeaderDate,T_OrderHeaderLabNumber as noRegin, + +T_OrderHeaderLabNumberExt as noEX, + +CONCAT( fn_lookup_external(T_OrderHeaderLabNumber,'L')," / ",M_PatientNoReg) AS PIiD, + +CONCAT(M_TitleName," ",ifnull(M_PatientPrefix,'')," ",M_PatientName," ",ifnull(M_PatientSuffix,'')) AS M_PatientName, + +M_PatientNoReg , + +M_TitleName, + +M_SexName, + +M_PatientSuffix, + +DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") AS M_PatientDOB, + +M_PatientHP , + +M_PatientPhone , + +M_PatientEmail, + +M_PatientIDNumber, + +M_PatientNote, + +(SELECT concat(M_PatientAddressDescription," ",M_KelurahanName," ",M_DistrictName," ",M_CityName) from m_patientaddress AS p + + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = M_PatientID + + ORDER BY M_PatientAddressM_PatientID + + LIMIT 1) AS M_PatientAddressDescription , + +M_CompanyName, + +M_CompanyAddress, + +M_CompanyPhone , + +M_CompanyEmail , + + M_CompanyPICName as M_CompanyPIC , + +M_MouName, + +T_OrderHeaderM_PatientAge, + +CONCAT(T_OrderHeaderM_PatientAge," / ",M_SexCode) AS Umur, + + if(T_OrderHeaderAddOnAliasDoctorName is null or T_OrderHeaderAddOnAliasDoctorName = '' ,CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2),T_OrderHeaderAddOnAliasDoctorName) AS M_DoctorName, + + + +CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix) AS DokterPJ , + +T_OrderHeaderDoctorNote, + +T_OrderHeaderVerificationNote , + +T_OrderHeaderFoNote , + +T_OrderHeaderSamplingNote, + +T_OrderHeaderResultNote, + +T_OrderHeaderSubTotal, + +T_OrderHeaderRounding , + + T_OrderHeaderTotal, + +T_TestCode , + +T_PacketName as paket, + + if(T_TestName is null ,"kosong",T_TestName ) as test, + +if (T_PacketID is null, T_TestName, T_PacketName) as T_TestNamea, + +if (T_PacketID is null,concat(" ",T_TestName), ifnull( concat(T_PacketName,"
",`fn_get_test_packet`(T_PacketID)),"")) as T_TestName, + + concat(T_PacketName,"
",`fn_get_test_packet`(T_PacketID)) as testpaket, + +`fn_get_test_packet`(T_PacketID) as namapaket , + +T_OrderDetailPrice +ifnull( fn_rpt_profile_child_amount_header(T_OrderDetailID),0) T_OrderDetailPrice , + +T_OrderDetailPriceForDisc, + +(T_OrderDetailPrice +ifnull( fn_rpt_profile_child_amount_header(T_OrderDetailID),0)) - + +(T_OrderDetailDiscTotal + ifnull(fn_rpt_profile_child_disc_header(T_OrderDetailID),0)) T_OrderDetailTotal , + +T_OrderDetailDiscTotal + ifnull(fn_rpt_profile_child_disc_header(T_OrderDetailID),0) diskonsatuan, + +T_OrderDetailDiscAmount , + +T_OrderDetailDiscTotal , + +T_OrderDetailTotal + ifnull(fn_rpt_profile_child_disc_header(T_OrderDetailID),0) T_OrderDetailDisc, + +`fn_report_promise`(T_OrderHeaderID ) AS janjihasil, + +IF(Last_StatusPaymentIsLunas = 'N' , "BELUM LUNAS","LUNAS") AS Status, + + + +CONCAT(`f_terbilang`(T_OrderHeaderTotal),"", "Rupiah") AS terbilang, + +`fn_get_delivery_patient`(T_OrderHeaderID) as alamatkirim, + +S_SystemsCompanyName , + +concat(S_SystemsCompanyAddress," ",S_SystemsCompanyCity," ",S_SystemsCompanyCityFooter," Telp. ", S_SystemsCompanyPhone," Fax. ", S_SystemsCompanyFax) as alamatcabang, + +S_SystemsEmailAddress,M_No_FormRev,S_SystemsCompanyCity,@subtot as subtot,@disc+T_OrderHeaderRounding as disc, + + `fn_get_staff`(T_OrderHeaderCreatedUserID) as M_UserUsername + + + + + + + +from t_orderheader + +left join t_orderdetail on T_OrderHeaderID = T_OrderDetailT_OrderHeaderID and T_OrderDetailIsActive = 'Y' + + + +left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' + +left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' + +left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' + +left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y' + +left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y' + +left join m_doctor p ON T_OrderHeaderSenderM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' + + left join m_doctor pj ON T_OrderHeaderPjM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' + +left join t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' + +left join nat_test ON T_TestNat_TestID = Nat_TestID + +left join t_orderdetailaddon on T_OrderDetailID = T_OrderDetailAddOnT_OrderDetailID + +left join t_packet on T_OrderDetailAddOnT_PacketID = T_PacketID + +LEFT JOIN last_statuspayment ON Last_StatusPaymentT_OrderHeaderID = T_OrderHeaderID + +LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "INV" and M_No_FormIsActive = 'Y' + +left join conf_systems on S_SystemsID > 0 + + left join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID + + + + + +where + + T_OrderHeaderID = PID + + + +and ( Nat_TestPriceSumToNat_TestID = 0 or Nat_TestPriceSumToNat_TestID is null ) + + and + +( + + ( + + T_OrderDetailT_TestIsPanelChildren = 'N' + + and + + ( ( T_TestIsPrintNota = 'y' ) + + or + + T_PacketIsNota = 'Y' + + ) + + ) + + or + + ( + + T_OrderDetailT_TestIsPanelChildren = 'Y' + + and + + T_OrderDetailT_TestIsPanelChildrenPrintNota = 'Y' + + ) + +) + +order by T_OrderDetailT_TestSasCode + + + +;end $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_t_001ii` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_t_001ii`(IN `PID` int, IN `username` varchar(100)) +begin + +select sum(T_OrderDetailPrice) into @subtot +from t_orderdetail +where T_OrderDetailT_OrderHeaderID = PID and T_OrderDetailIsActive = 'Y' limit 1; + +select sum(T_OrderDetailDiscTotal) into @disc +from t_orderdetail +where T_OrderDetailT_OrderHeaderID = PID and T_OrderDetailIsActive = 'Y' limit 1; + + +select +distinct +DATE_FORMAT(now(), "%d-%m-%Y %T") AS DATENOW, +T_OrderHeaderID, +DATE_FORMAT(T_OrderHeaderDate, "%d-%m-%Y %T") AS T_OrderHeaderDate, + fn_lookup_external(T_OrderHeaderLabNumber,'L') as T_OrderHeaderLabNumber, +CONCAT( fn_lookup_external(T_OrderHeaderLabNumber,'L')," / ",M_PatientNoReg) AS PIiD, +CONCAT(M_TitleName," ",ifnull(M_PatientPrefix,'')," ",M_PatientName," ",ifnull(M_PatientSuffix,'')) AS M_PatientName, +M_PatientNoReg , +M_TitleName, +M_SexName, +M_PatientSuffix, +DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") AS M_PatientDOB, +M_PatientHP , +M_PatientPhone , +M_PatientEmail, +M_PatientIDNumber, +M_PatientNote, +(SELECT concat(M_PatientAddressDescription," ",M_KelurahanName," ",M_DistrictName," ",M_CityName) from m_patientaddress AS p + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , +M_CompanyName, +M_CompanyAddress, +M_CompanyPhone , +M_CompanyEmail , +M_CompanyPIC ,M_MouName, +T_OrderHeaderM_PatientAge, +CONCAT(T_OrderHeaderM_PatientAge," / ",M_SexCode) AS Umur, + if(T_OrderHeaderAddOnAliasDoctorName is null or T_OrderHeaderAddOnAliasDoctorName = '' ,CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2),T_OrderHeaderAddOnAliasDoctorName) AS M_DoctorName, + +CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix) AS DokterPJ , +T_OrderHeaderDoctorNote, +T_OrderHeaderVerificationNote , +T_OrderHeaderFoNote , +T_OrderHeaderSamplingNote, +T_OrderHeaderResultNote, +T_OrderHeaderSubTotal, +T_OrderHeaderRounding , + T_OrderHeaderTotal, +T_TestCode , +T_PacketName as paket, + if(T_TestName is null ,"kosong",T_TestName ) as test, +if (T_PacketID is null, T_TestName, T_PacketName) as T_TestNamea, +if (T_PacketID is null,concat(" ",T_TestName), ifnull( concat(T_PacketName,"
",`fn_get_test_packet`(T_PacketID)),"")) as T_TestName, + concat(T_PacketName,"
",`fn_get_test_packet`(T_PacketID)) as testpaket, +`fn_get_test_packet`(T_PacketID) as namapaket , +T_OrderDetailPrice +ifnull( fn_rpt_profile_child_amount_header(T_OrderDetailID),0) T_OrderDetailPrice , +T_OrderDetailPriceForDisc, +(T_OrderDetailPrice +ifnull( fn_rpt_profile_child_amount_header(T_OrderDetailID),0)) - +(T_OrderDetailDiscTotal + ifnull(fn_rpt_profile_child_disc_header(T_OrderDetailID),0)) T_OrderDetailTotal , +T_OrderDetailDiscTotal + ifnull(fn_rpt_profile_child_disc_header(T_OrderDetailID),0) diskonsatuan, +T_OrderDetailDiscAmount , +T_OrderDetailDiscTotal , +T_OrderDetailTotal + ifnull(fn_rpt_profile_child_disc_header(T_OrderDetailID),0) T_OrderDetailDisc, +`fn_report_promise`(T_OrderHeaderID ) AS janjihasil, +IF(Last_StatusPaymentIsLunas = 'N' , "BELUM LUNAS","LUNAS") AS Status, + +CONCAT(`f_terbilang`(T_OrderHeaderTotal),"", "Rupiah") AS terbilang, +`fn_get_delivery_patient`(T_OrderHeaderID) as alamatkirim, +S_SystemsCompanyName , +concat(S_SystemsCompanyAddress," ",S_SystemsCompanyCity," ",S_SystemsCompanyCityFooter," Telp. ", S_SystemsCompanyPhone," Fax. ", S_SystemsCompanyFax) as alamatcabang, +S_SystemsEmailAddress,M_No_FormRev,S_SystemsCompanyCity,@subtot as subtot,@disc+T_OrderHeaderRounding as disc, + `fn_get_staff`(T_OrderHeaderUserID) as M_UserUsername, +Last_StatusPaymentBillTotal , +Last_StatusPaymentPaid , +Last_StatusPaymentUnpaid + + + +from t_orderheader +left join t_orderdetail on T_OrderHeaderID = T_OrderDetailT_OrderHeaderID and T_OrderDetailIsActive = 'Y' + +left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' +left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' +left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' +left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y' +left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y' +left join m_doctor p ON T_OrderHeaderSenderM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' + left join m_doctor pj ON T_OrderHeaderPjM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' +left join t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' +left join nat_test ON T_TestNat_TestID = Nat_TestID +left join t_orderdetailaddon on T_OrderDetailID = T_OrderDetailAddOnT_OrderDetailID +left join t_packet on T_OrderDetailAddOnT_PacketID = T_PacketID +LEFT JOIN last_statuspayment ON Last_StatusPaymentT_OrderHeaderID = T_OrderHeaderID +LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "INV" +left join conf_systems on S_SystemsID > 0 + left join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID + + +where + T_OrderHeaderID = PID + +and ( Nat_TestPriceSumToNat_TestID = 0 or Nat_TestPriceSumToNat_TestID is null ) + and +( + ( + T_OrderDetailT_TestIsPanelChildren = 'N' + and + ( ( T_TestIsPrintNota = 'y' ) + or + T_PacketIsNota = 'Y' + ) + ) + or + ( + T_OrderDetailT_TestIsPanelChildren = 'Y' + and + T_OrderDetailT_TestIsPanelChildrenPrintNota = 'Y' + ) +) +order by T_OrderDetailT_TestSasCode + +;end $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_t_001_eng` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_t_001_eng`(IN `PID` int, IN `username` varchar(100)) +begin + +select sum(T_OrderDetailPrice) into @subtot +from t_orderdetail +where T_OrderDetailT_OrderHeaderID = PID and T_OrderDetailIsActive = 'Y' limit 1; + +select sum(T_OrderDetailDiscTotal) into @disc +from t_orderdetail +where T_OrderDetailT_OrderHeaderID = PID and T_OrderDetailIsActive = 'Y' limit 1; + + +select +distinct +DATE_FORMAT(now(), "%M %d %Y %T") AS DATENOW, +T_OrderHeaderID, +DATE_FORMAT(T_OrderHeaderDate, "%M %d %Y %T") AS T_OrderHeaderDate,T_OrderHeaderLabNumber as noRegin, +T_OrderHeaderLabNumberExt as noEX, +CONCAT( fn_lookup_external(T_OrderHeaderLabNumber,'L')," / ",M_PatientNoReg) AS PIiD, +CONCAT(M_TitleLangName," ",ifnull(M_PatientPrefix,'')," ",M_PatientName," ",ifnull(M_PatientSuffix,'')) AS M_PatientName, +M_PatientNoReg , +M_TitleLangName as M_TitleName, +M_SexName, +M_PatientSuffix, +DATE_FORMAT(M_PatientDOB, "%M %d %Y ") AS M_PatientDOB, +M_PatientHP , +M_PatientPhone , +M_PatientEmail, +M_PatientIDNumber, +M_PatientNote, +(SELECT concat(M_PatientAddressDescription," ",M_KelurahanName," ",M_DistrictName," ",M_CityName) from m_patientaddress AS p + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , +(case +when M_CompanyName = 'Pasien klinisi' then 'CLINICIAN REFERENCE' +when M_CompanyName = 'Pasien mandiri' then 'PERSONAL REQUEST' +else M_CompanyName end ) +as +M_CompanyName, +M_CompanyAddress, +M_CompanyPhone , +M_CompanyEmail , +M_CompanyPIC ,M_MouName, +REPLACE(REPLACE(REPLACE(T_OrderHeaderM_PatientAge, 'tahun', 'year') , 'bulan', 'month') , 'hari', 'days') as T_OrderHeaderM_PatientAge, +CONCAT(REPLACE(REPLACE(REPLACE(T_OrderHeaderM_PatientAge, 'tahun', 'year') , 'bulan', 'month') , 'hari', 'days') ," / ",M_SexCode) AS Umur, + if(T_OrderHeaderAddOnAliasDoctorName is null or T_OrderHeaderAddOnAliasDoctorName = '' ,CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2),T_OrderHeaderAddOnAliasDoctorName) AS M_DoctorName, + +CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix) AS DokterPJ , +T_OrderHeaderDoctorNote, +T_OrderHeaderVerificationNote , +T_OrderHeaderFoNote , +T_OrderHeaderSamplingNote, +T_OrderHeaderResultNote, +T_OrderHeaderSubTotal, +T_OrderHeaderRounding , + T_OrderHeaderTotal, +T_TestCode , +T_PacketName as paket, + if(Nat_TestLangName is null ,"kosong",Nat_TestLangName) as test, +if (T_PacketID is null, Nat_TestLangName, T_PacketName) as T_TestNamea, +if (T_PacketID is null,concat(" ",Nat_TestLangName), ifnull( concat(T_PacketName,"
",`fn_get_test_packet`(T_PacketID)),"")) as T_TestName, + concat(T_PacketName,"
",`fn_get_test_packet`(T_PacketID)) as testpaket, +`fn_get_test_packet`(T_PacketID) as namapaket , +T_OrderDetailPrice +ifnull( fn_rpt_profile_child_amount_header(T_OrderDetailID),0) T_OrderDetailPrice , +T_OrderDetailPriceForDisc, +(T_OrderDetailPrice +ifnull( fn_rpt_profile_child_amount_header(T_OrderDetailID),0)) - +(T_OrderDetailDiscTotal + ifnull(fn_rpt_profile_child_disc_header(T_OrderDetailID),0)) T_OrderDetailTotal , +T_OrderDetailDiscTotal + ifnull(fn_rpt_profile_child_disc_header(T_OrderDetailID),0) diskonsatuan, +T_OrderDetailDiscAmount , +T_OrderDetailDiscTotal , +T_OrderDetailTotal + ifnull(fn_rpt_profile_child_disc_header(T_OrderDetailID),0) T_OrderDetailDisc, +`fn_report_promise`(T_OrderHeaderID ) AS janjihasil, +IF(Last_StatusPaymentIsLunas = 'N' , "NOT PAID","PAID") AS Status, + +CONCAT(`f_terbilang`(T_OrderHeaderTotal),"", "Rupiah") AS terbilang, +`fn_get_delivery_patient`(T_OrderHeaderID) as alamatkirim, +S_SystemsCompanyName , +concat(S_SystemsCompanyAddress," ",S_SystemsCompanyCity," ",S_SystemsCompanyCityFooter," Telp. ", S_SystemsCompanyPhone," Fax. ", S_SystemsCompanyFax) as alamatcabang, +S_SystemsEmailAddress,M_No_FormRev,S_SystemsCompanyCity,@subtot as subtot,@disc+T_OrderHeaderRounding as disc, + `fn_get_staff`(T_OrderHeaderUserID) as M_UserUsername + + + +from t_orderheader +left join t_orderdetail on T_OrderHeaderID = T_OrderDetailT_OrderHeaderID and T_OrderDetailIsActive = 'Y' + +left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' +left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' +left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' +left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y' +left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y' +left join m_doctor p ON T_OrderHeaderSenderM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' + left join m_doctor pj ON T_OrderHeaderPjM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' +left join t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' +left join nat_test oN T_TestNat_TestID = Nat_TestID aND Nat_TestIsActive = 'Y' +left join nat_testlang on Nat_TestLangNat_TestID = Nat_TestID and Nat_testLangIsActive = 'Y' and Nat_TestLangLangID = '2' +left join t_orderdetailaddon on T_OrderDetailID = T_OrderDetailAddOnT_OrderDetailID +left join t_packet on T_OrderDetailAddOnT_PacketID = T_PacketID +LEFT JOIN last_statuspayment ON Last_StatusPaymentT_OrderHeaderID = T_OrderHeaderID +LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "INV" +left join conf_systems on S_SystemsID > 0 + left join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID + + +where + T_OrderHeaderID = PID + +and ( Nat_TestPriceSumToNat_TestID = 0 or Nat_TestPriceSumToNat_TestID is null ) + and +( + ( + T_OrderDetailT_TestIsPanelChildren = 'N' + and + ( ( T_TestIsPrintNota = 'y' ) + or + T_PacketIsNota = 'Y' + ) + ) + or + ( + T_OrderDetailT_TestIsPanelChildren = 'Y' + and + T_OrderDetailT_TestIsPanelChildrenPrintNota = 'Y' + ) +) +order by T_OrderDetailT_TestSasCode + +;end $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_t_002` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_t_002`(IN `PID` int, IN `an` varchar(200), IN `username` varchar(100)) +begin + + + +select sum(T_OrderDetailPrice) into @subtot + +from t_orderdetail + +where T_OrderDetailT_OrderHeaderID = PID and T_OrderDetailIsActive = 'Y' limit 1; + + + +select sum(T_OrderDetailDiscTotal) into @disc + +from t_orderdetail + +where T_OrderDetailT_OrderHeaderID = PID and T_OrderDetailIsActive = 'Y' limit 1; + + + + + +select + +distinct + +DATE_FORMAT(now(), "%d-%m-%Y %T") AS DATENOW, + +T_OrderHeaderID, + +DATE_FORMAT(T_OrderHeaderDate, "%d-%m-%Y %T") AS T_OrderHeaderDate, + + fn_lookup_external(T_OrderHeaderLabNumber,'L') T_OrderHeaderLabNumber, + +CONCAT(M_PatientNoReg," / ", fn_lookup_external(T_OrderHeaderLabNumber,'L')) AS PIiD, + +CONCAT(M_TitleName," ",ifnull(M_PatientPrefix,'')," ",M_PatientName," ",ifnull(M_PatientSuffix,'')) AS M_PatientName, + +M_PatientNoReg , + +M_TitleName, + +M_SexName, + +M_PatientSuffix, + +DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") AS M_PatientDOB, + +M_PatientHP , + +M_PatientPhone , + +M_PatientEmail, + +M_PatientIDNumber, + +M_PatientNote, + +(SELECT concat(M_PatientAddressDescription," ",M_KelurahanName," ",M_DistrictName," ",M_CityName) from m_patientaddress AS p + + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = M_PatientID + + ORDER BY M_PatientAddressM_PatientID + + LIMIT 1) AS M_PatientAddressDescription , + +M_CompanyName, + +M_CompanyAddress, + +M_CompanyPhone , + +M_CompanyEmail , + +M_CompanyPICName ,M_MouName, + +T_OrderHeaderM_PatientAge, + +CONCAT(T_OrderHeaderM_PatientAge," / ",M_SexCode) AS Umur, + + if(T_OrderHeaderAddOnAliasDoctorName is null or T_OrderHeaderAddOnAliasDoctorName = '' ,CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2),T_OrderHeaderAddOnAliasDoctorName) AS M_DoctorName, + + + +CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix) AS DokterPJ , + +T_OrderHeaderDoctorNote, + +T_OrderHeaderVerificationNote , + +T_OrderHeaderFoNote , + +T_OrderHeaderSamplingNote, + +T_OrderHeaderResultNote, + +T_OrderHeaderSubTotal, + +T_OrderHeaderRounding , + + T_OrderHeaderTotal, + +T_TestCode , + +T_PacketName as paket, + + if(T_TestName is null ,"kosong",T_TestName ) as test, + +if (T_PacketID is null, T_TestName, T_PacketName) as T_TestNamea, + +if (T_PacketID is null,concat(" ",T_TestName), ifnull( concat(T_PacketName,"
",`fn_get_test_packet`(T_PacketID)),"")) as T_TestName, + + concat(T_PacketName,"
",`fn_get_test_packet`(T_PacketID)) as testpaket, + +`fn_get_test_packet`(T_PacketID) as namapaket , + +T_OrderDetailPrice +ifnull( fn_rpt_profile_child_amount_header(T_OrderDetailID),0) T_OrderDetailPrice , + +T_OrderDetailPriceForDisc, + +T_OrderDetailDiscTotal + ifnull(fn_rpt_profile_child_disc_header(T_OrderDetailID),0) T_OrderDetailTotal , + +T_OrderDetailDiscTotal + ifnull(fn_rpt_profile_child_disc_header(T_OrderDetailID),0) diskonsatuan, + +T_OrderDetailDiscAmount , + +T_OrderDetailDiscTotal , + +T_OrderDetailTotal + ifnull(fn_rpt_profile_child_disc_header(T_OrderDetailID),0) T_OrderDetailDisc, + +`fn_report_promise`(T_OrderHeaderID ) AS janjihasil, + +IF(Last_StatusPaymentIsLunas = 'N' , "BELUM LUNAS","LUNAS") AS Status, + + + +CONCAT(`f_terbilang`(T_OrderHeaderTotal),"", "Rupiah") AS terbilang, + +`fn_get_delivery_patient`(T_OrderHeaderID) as alamatkirim, + +S_SystemsCompanyName , + +concat(S_SystemsCompanyAddress," ",S_SystemsCompanyCity," ",S_SystemsCompanyCityFooter," Telp. ", S_SystemsCompanyPhone," Fax. ", S_SystemsCompanyFax) as alamatcabang, + +S_SystemsEmailAddress,M_No_FormRev,S_SystemsCompanyCity,@subtot as subtot,@disc+T_OrderHeaderRounding as disc + +,`fn_get_staff`(T_OrderHeaderCreatedUserID) as M_UserUsername + + + + + +from t_orderheader + +left join t_orderdetail on T_OrderHeaderID = T_OrderDetailT_OrderHeaderID and T_OrderDetailIsActive = 'Y' + + + +left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' + +left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' + +left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' + +left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y' + +left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y' + +left join m_doctor p ON T_OrderHeaderSenderM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' + + left join m_doctor pj ON T_OrderHeaderPjM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' + +left join t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' + +left join nat_test ON T_TestNat_TestID = Nat_TestID + +left join t_orderdetailaddon on T_OrderDetailID = T_OrderDetailAddOnT_OrderDetailID + +left join t_packet on T_OrderDetailAddOnT_PacketID = T_PacketID + +LEFT JOIN last_statuspayment ON Last_StatusPaymentT_OrderHeaderID = T_OrderHeaderID + +LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "KWITANSI" + +left join conf_systems on S_SystemsID > 0 + + + +left join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID + + + +where + + T_OrderHeaderID = PID + + + +and ( Nat_TestPriceSumToNat_TestID = 0 or Nat_TestPriceSumToNat_TestID is null ) + + and + +( + + ( + + T_OrderDetailT_TestIsPanelChildren = 'N' + + and + + ( ( T_TestIsPrintNota = 'y' ) + + or + + T_PacketIsNota = 'Y' + + ) + + ) + + or + + ( + + T_OrderDetailT_TestIsPanelChildren = 'Y' + + and + + T_OrderDetailT_TestIsPanelChildrenPrintNota = 'Y' + + ) + +) + +order by T_OrderDetailT_TestSasCode + + + +;end $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_t_002_eng` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_t_002_eng`(IN `PID` int, IN `an` varchar(200), IN `username` varchar(100)) +begin + + + +select sum(T_OrderDetailPrice) into @subtot + +from t_orderdetail + +where T_OrderDetailT_OrderHeaderID = PID and T_OrderDetailIsActive = 'Y' limit 1; + + + +select sum(T_OrderDetailDiscTotal) into @disc + +from t_orderdetail + +where T_OrderDetailT_OrderHeaderID = PID and T_OrderDetailIsActive = 'Y' limit 1; + + + + + +select + +distinct + +DATE_FORMAT(now(), "%M %d %Y %T") AS DATENOW, + +T_OrderHeaderID, + +DATE_FORMAT(T_OrderHeaderDate, "%M %d %Y %T") AS T_OrderHeaderDate, + + fn_lookup_external(T_OrderHeaderLabNumber,'L') T_OrderHeaderLabNumber, + +CONCAT(M_PatientNoReg," / ", fn_lookup_external(T_OrderHeaderLabNumber,'L')) AS PIiD, + +CONCAT(M_TitleLangName," ",ifnull(M_PatientPrefix,'')," ",M_PatientName," ",ifnull(M_PatientSuffix,'')) AS M_PatientName, + +M_PatientNoReg , + +M_TitleLangName as M_TitleName, + +M_SexName, + +M_PatientSuffix, + +DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") AS M_PatientDOB, + +M_PatientHP , + +M_PatientPhone , + +M_PatientEmail, + +M_PatientIDNumber, + +M_PatientNote, + +(SELECT concat(M_PatientAddressDescription," ",M_KelurahanName," ",M_DistrictName," ",M_CityName) from m_patientaddress AS p + + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = M_PatientID + + ORDER BY M_PatientAddressM_PatientID + + LIMIT 1) AS M_PatientAddressDescription , + +(case + +when M_CompanyName = 'Pasien klinisi' then 'CLINICIAN REFERENCE' + +when M_CompanyName = 'Pasien mandiri' then 'PERSONAL REQUEST' + +else M_CompanyName end ) + +as M_CompanyName, + +M_CompanyAddress, + +M_CompanyPhone , + +M_CompanyEmail , + +M_CompanyPICName as M_CompanyPIC ,M_MouName, + +REPLACE(REPLACE(REPLACE(T_OrderHeaderM_PatientAge, 'tahun', 'year') , 'bulan', 'month') , 'hari', 'days') as T_OrderHeaderM_PatientAge, + +CONCAT(REPLACE(REPLACE(REPLACE(T_OrderHeaderM_PatientAge, 'tahun', 'year') , 'bulan', 'month') , 'hari', 'days') ," / ",if(M_SexCode = 'L' , 'M','F')) AS Umur, + + if(T_OrderHeaderAddOnAliasDoctorName is null or T_OrderHeaderAddOnAliasDoctorName = '' ,CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2),T_OrderHeaderAddOnAliasDoctorName) AS M_DoctorName, + + + +CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix) AS DokterPJ , + +T_OrderHeaderDoctorNote, + +T_OrderHeaderVerificationNote , + +T_OrderHeaderFoNote , + +T_OrderHeaderSamplingNote, + +T_OrderHeaderResultNote, + +T_OrderHeaderSubTotal, + +T_OrderHeaderRounding , + + T_OrderHeaderTotal, + +T_TestCode , + +T_PacketName as paket, + + if(Nat_TestLangName is null ,"kosong",Nat_TestLangName) as test, + +if (T_PacketID is null, Nat_TestLangName, T_PacketName) as T_TestNamea, + +if (T_PacketID is null,concat(" ",Nat_TestLangName), ifnull( concat(T_PacketName,"
",`fn_get_test_packet`(T_PacketID)),"")) as T_TestName, + + concat(T_PacketName,"
",`fn_get_test_packet`(T_PacketID)) as testpaket, + +`fn_get_test_packet`(T_PacketID) as namapaket , + +T_OrderDetailPrice +ifnull( fn_rpt_profile_child_amount_header(T_OrderDetailID),0) T_OrderDetailPrice , + +T_OrderDetailPriceForDisc, + +T_OrderDetailDiscTotal + ifnull(fn_rpt_profile_child_disc_header(T_OrderDetailID),0) T_OrderDetailTotal , + +T_OrderDetailDiscTotal + ifnull(fn_rpt_profile_child_disc_header(T_OrderDetailID),0) diskonsatuan, + +T_OrderDetailDiscAmount , + +T_OrderDetailDiscTotal , + +T_OrderDetailTotal + ifnull(fn_rpt_profile_child_disc_header(T_OrderDetailID),0) T_OrderDetailDisc, + +`fn_report_promise`(T_OrderHeaderID ) AS janjihasil, + +IF(Last_StatusPaymentIsLunas = 'N' , "NOT PAID","PAID") AS Status, + +concat( `fn_integerToWords`(T_OrderHeaderTotal)," Rupiah") AS terbilang, + +`fn_get_delivery_patient`(T_OrderHeaderID) as alamatkirim, + +S_SystemsCompanyName , + +concat(S_SystemsCompanyAddress," ",S_SystemsCompanyCity," ",S_SystemsCompanyCityFooter," Telp. ", S_SystemsCompanyPhone," Fax. ", S_SystemsCompanyFax) as alamatcabang, + +S_SystemsEmailAddress,M_No_FormRev,S_SystemsCompanyCity,@subtot as subtot,@disc+T_OrderHeaderRounding as disc + +,`fn_get_staff`(T_OrderHeaderCreatedUserID) as M_UserUsername + + + + + +from t_orderheader + +left join t_orderdetail on T_OrderHeaderID = T_OrderDetailT_OrderHeaderID and T_OrderDetailIsActive = 'Y' + + + +left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' + +left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' + +left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' + +left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y' + +left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y' + +left join m_doctor p ON T_OrderHeaderSenderM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' + + left join m_doctor pj ON T_OrderHeaderPjM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' + +left join t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' + +left join nat_test oN T_TestNat_TestID = Nat_TestID aND Nat_TestIsActive = 'Y' + +left join nat_testlang on Nat_TestLangNat_TestID = Nat_TestID and Nat_testLangIsActive = 'Y' and Nat_TestLangLangID = '2' + +left join t_orderdetailaddon on T_OrderDetailID = T_OrderDetailAddOnT_OrderDetailID + +left join t_packet on T_OrderDetailAddOnT_PacketID = T_PacketID + +LEFT JOIN last_statuspayment ON Last_StatusPaymentT_OrderHeaderID = T_OrderHeaderID + +LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "KWITANSI" + +left join conf_systems on S_SystemsID > 0 + + + +left join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID + + + +where + + T_OrderHeaderID = PID + + + +and ( Nat_TestPriceSumToNat_TestID = 0 or Nat_TestPriceSumToNat_TestID is null ) + + and + +( + + ( + + T_OrderDetailT_TestIsPanelChildren = 'N' + + and + + ( ( T_TestIsPrintNota = 'y' ) + + or + + T_PacketIsNota = 'Y' + + ) + + ) + + or + + ( + + T_OrderDetailT_TestIsPanelChildren = 'Y' + + and + + T_OrderDetailT_TestIsPanelChildrenPrintNota = 'Y' + + ) + +) + +order by T_OrderDetailT_TestSasCode + + + +;end $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_t_003` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_t_003`(IN `PID` int, IN `username` varchar(100)) +BEGIN + +select F_PaymentT_OrderHeaderID into @ohid + +from + +f_payment + +where + +F_PaymentID = PID AND F_PaymentIsActive = 'Y'; + + + +select ifnull(sum(F_PaymentTotal),0) into @amountotherinvoice + +from + +f_payment + +WHERE + +F_PaymentT_OrderHeaderID = @ohid AND F_PaymentIsActive = 'Y' AND F_PaymentID < PID; + + + + + +set @count_payment_test = 0; + +select count(*) into @count_payment_test + +from f_payment + +join f_payment_test on F_Payment_TestF_PaymentID = F_PaymentID and F_PaymentID=PID; + + + +if @count_payment_test = 0 then + + + + select + + distinct + + DATE_FORMAT(now(), "%d-%m-%Y %T") AS DATENOW, + + T_OrderHeaderID, + + DATE_FORMAT(T_OrderHeaderDate, "%d-%m-%Y %T") AS T_OrderHeaderDate, + + T_OrderHeaderLabNumber, + + CONCAT(fn_lookup_external(T_OrderHeaderLabNumber,'L') ," / ",T_OrderHeaderLabNumber) AS PIiD, + +fn_get_name( T_OrderHeaderM_PatientID ) AS M_PatientName, + + M_PatientNoReg , + + M_TitleName, + + M_SexName, + + M_PatientSuffix, + + DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") AS M_PatientDOB, + + M_PatientHP , + + M_PatientPhone , + + M_PatientEmail, + + M_PatientIDNumber, + + M_PatientNote, + + (SELECT concat(M_PatientAddressDescription," ",M_KelurahanName," ",M_DistrictName," ",M_CityName) from m_patientaddress AS p + + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = M_PatientID + + ORDER BY M_PatientAddressM_PatientID + + LIMIT 1) AS M_PatientAddressDescription , + + M_CompanyName, + + M_CompanyAddress, + + M_CompanyPhone , + + M_CompanyEmail , + + M_CompanyPICName as M_CompanyPIC ,M_MouName, + + T_OrderHeaderM_PatientAge, + + CONCAT(T_OrderHeaderM_PatientAge," / ",M_SexCode) AS Umur, + + if(T_OrderHeaderAddOnAliasDoctorName is null or T_OrderHeaderAddOnAliasDoctorName = '' ,CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2),T_OrderHeaderAddOnAliasDoctorName) AS M_DoctorName, + + + + CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix) AS DokterPJ , + + T_OrderHeaderDoctorNote, + + T_OrderHeaderVerificationNote , + + T_OrderHeaderFoNote , + + T_OrderHeaderSamplingNote, + + T_OrderHeaderResultNote, + + F_Payment_OrderHeaderSubTotal as T_OrderHeaderSubTotal, + + F_Payment_OrderHeaderRounding as T_OrderHeaderRounding , + + F_Payment_OrderHeaderTotal as T_OrderHeaderTotal, + + T_TestCode , + + T_PacketName as paket, + + if(T_TestName is null ,"kosong",T_TestName ) as test, + + if (T_PacketID is null, T_TestName, T_PacketName) as T_TestNamea, + + if (T_PacketID is null,concat(" ",T_TestName), ifnull( concat(T_PacketName,"
",`fn_get_test_packet`(T_PacketID)),"")) as T_TestName, + + concat(T_PacketName,"
",`fn_get_test_packet`(T_PacketID)) as testpaket, + + `fn_get_test_packet`(T_PacketID) as namapaket , + + T_OrderDetailPrice + fn_rpt_profile_child_amount(F_PaymentID, T_OrderDetailID) T_OrderDetailPrice , + + T_OrderDetailPriceForDisc, + + T_OrderDetailDisc + fn_rpt_profile_child_disc(F_PaymentID, T_OrderDetailID) T_OrderDetailDisc, + + T_OrderDetailDiscAmount , + + T_OrderDetailDiscTotal + fn_rpt_profile_child_disc(F_PaymentID, T_OrderDetailID) T_OrderDetailDiscTotal , + + T_OrderDetailTotal + fn_rpt_profile_child_amount(F_PaymentID, T_OrderDetailID) - fn_rpt_profile_child_disc(F_PaymentID, T_OrderDetailID) T_OrderDetailTotal, + + `fn_report_promise`(T_OrderHeaderID ) AS janjihasil, + + IF(F_Payment_OrderHeaderIsLunas = 'N' , "BELUM LUNAS","LUNAS") AS Status, + + + + CONCAT(`f_terbilang`(F_PaymentTotal),"", "Rupiah")AS terbilang, + + F_PaymentID, + + F_PaymentT_OrderHeaderID, + + F_PaymentDate, + + F_PaymentNumber , + + F_PaymentTotal, + + `fn_get_delivery_patient`(T_OrderHeaderID) as alamatkirim, + + S_SystemsCompanyName , + + concat(S_SystemsCompanyAddress," ",S_SystemsCompanyCity," ",S_SystemsCompanyCityFooter," Telp. ", S_SystemsCompanyPhone," Fax. ", S_SystemsCompanyFax) as alamatcabang, + + S_SystemsEmailAddress,M_No_FormRev,S_SystemsCompanyCity, + + `fn_get_count_payment`(F_PaymentID) as idd, + + if(`fn_get_count_payment`(F_PaymentID) = '0', (F_Payment_OrderHeaderTotal -ifnull(@amountotherinvoice,0)-F_PaymentTotal) , + + (F_Payment_OrderHeaderTotal -ifnull(@amountotherinvoice,0)-F_PaymentTotal) + ifnull(`fn_get_potongan_header`(T_OrderHeaderID ),0))as kurangbayarr , + + + + if(`fn_get_count_payment`(F_PaymentID) = '0',F_Payment_OrderHeaderSubTotal , + + F_Payment_OrderHeaderSubTotal +ifnull(`fn_get_potongan_header`(T_OrderHeaderID ),0) ) as subsubtotal_header, + + if(`fn_get_count_payment`(F_PaymentID) = '0',F_Payment_OrderHeaderSubTotal - F_Payment_OrderHeaderRounding , + + F_Payment_OrderHeaderSubTotal +ifnull(`fn_get_potongan_header`(T_OrderHeaderID ),0) - F_Payment_OrderHeaderRounding) as grandtotal_header, + + if(`fn_get_count_payment`(F_PaymentID) = '0','0', + + ifnull(`fn_get_potongan_header`(T_OrderHeaderID ),0) ) as biayaadmin_header, + + (F_Payment_OrderHeaderTotal -ifnull(@amountotherinvoice,0)-F_PaymentTotal) +ifnull(`fn_get_potongan`(T_OrderHeaderID , F_PaymentID),0) as kurangbayar, + + ifnull(`fn_get_potongan`(T_OrderHeaderID , F_PaymentID),0) as administasi, + + F_Payment_OrderHeaderSubTotal +ifnull(`fn_get_potongan`(T_OrderHeaderID , F_PaymentID),0) as subtotalbaru, + + F_Payment_OrderHeaderSubTotal +ifnull(`fn_get_potongan`(T_OrderHeaderID , F_PaymentID),0) -F_Payment_OrderHeaderRounding as grandtotalbaru,`fn_get_staff`(F_PaymentM_UserID) as M_UserUsername, + +if(fn_kirim_wa(T_OrderHeaderID) = "" , "", concat("Kami menyetujui bahwa hasil pemeriksaan dikirim melalui media elektronik WhatsApp No." ,`fn_kirim_wa`(T_OrderHeaderID))) as WA + + + +from t_orderheader + + left join f_payment ON F_PaymentT_OrderHeaderID = T_OrderHeaderID AND F_PaymentIsActive = 'Y' + + left join f_payment_test on F_Payment_TestF_PaymentID = F_PaymentID and T_OrderHeaderID = @ohid + + left join t_orderdetail on T_OrderHeaderID = T_OrderDetailT_OrderHeaderID + + and ( + + F_Payment_TestT_OrderDetailID = T_OrderDetailID + + or + + ( T_OrderDetailT_TestIsPanel = 'Y' and T_OrderDetailT_TestID = 0 ) + + ) + + + + left join f_payment_orderheader on F_Payment_OrderHeaderF_PaymentID = F_PaymentID + + left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' + + left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' + + left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' + + left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y' + + left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y' + + left join m_doctor p ON T_OrderHeaderSenderM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' + + left join m_doctor pj ON T_OrderHeaderPjM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' + + left join t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' + + left join nat_test ON T_TestNat_TestID = Nat_TestID + + left join t_orderdetailaddon on T_OrderDetailID = T_OrderDetailAddOnT_OrderDetailID + + left join t_packet on T_OrderDetailAddOnT_PacketID = T_PacketID + + LEFT JOIN last_statuspayment ON Last_StatusPaymentT_OrderHeaderID = T_OrderHeaderID + + LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "NOTA" + + left join m_user on F_PaymentM_UserID = M_UserID + + left join conf_systems on S_SystemsID > 0 + +left join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID + + where + + F_PaymentID = PID ; + +else + + select + + distinct + + DATE_FORMAT(now(), "%d-%m-%Y %T") AS DATENOW, + + T_OrderHeaderID, + + DATE_FORMAT(T_OrderHeaderDate, "%d-%m-%Y %T") AS T_OrderHeaderDate, + + T_OrderHeaderLabNumber, + + CONCAT(fn_lookup_external(T_OrderHeaderLabNumber,'L') ," / ",T_OrderHeaderLabNumber) AS PIiD, + +fn_get_name( T_OrderHeaderM_PatientID ) AS M_PatientName, + + M_PatientNoReg , + + M_TitleName, + + M_SexName, + + M_PatientSuffix, + + DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") AS M_PatientDOB, + + M_PatientHP , + + M_PatientPhone , + + M_PatientEmail, + + M_PatientIDNumber, + + M_PatientNote, + + (SELECT concat(M_PatientAddressDescription," ",M_KelurahanName," ",M_DistrictName," ",M_CityName) from m_patientaddress AS p + + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = M_PatientID + + ORDER BY M_PatientAddressM_PatientID + + LIMIT 1) AS M_PatientAddressDescription , + + M_CompanyName, + + M_CompanyAddress, + + M_CompanyPhone , + + M_CompanyEmail , + + M_CompanyPICName as M_CompanyPIC ,M_MouName, + + T_OrderHeaderM_PatientAge, + + CONCAT(T_OrderHeaderM_PatientAge," / ",M_SexCode) AS Umur, + + if(T_OrderHeaderAddOnAliasDoctorName is null or T_OrderHeaderAddOnAliasDoctorName = '' ,CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2),T_OrderHeaderAddOnAliasDoctorName) AS M_DoctorName, + + + + CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix) AS DokterPJ , + + T_OrderHeaderDoctorNote, + + T_OrderHeaderVerificationNote , + + T_OrderHeaderFoNote , + + T_OrderHeaderSamplingNote, + + T_OrderHeaderResultNote, + + F_Payment_OrderHeaderSubTotal as T_OrderHeaderSubTotal, + + F_Payment_OrderHeaderRounding as T_OrderHeaderRounding , + + F_Payment_OrderHeaderTotal as T_OrderHeaderTotal, + + T_TestCode , + + T_PacketName as paket, + + if(T_TestName is null ,"kosong",T_TestName ) as test, + + if (T_PacketID is null, T_TestName, T_PacketName) as T_TestNamea, + + if (T_PacketID is null,concat(" ",T_TestName), ifnull( concat(T_PacketName,"
",`fn_get_test_packet`(T_PacketID)),"")) as T_TestName, + + concat(T_PacketName,"
",`fn_get_test_packet`(T_PacketID)) as testpaket, + + `fn_get_test_packet`(T_PacketID) as namapaket , + + T_OrderDetailPrice + fn_rpt_profile_child_amount(F_PaymentID, T_OrderDetailID) T_OrderDetailPrice , + + T_OrderDetailPriceForDisc, + + T_OrderDetailDisc + fn_rpt_profile_child_disc(F_PaymentID, T_OrderDetailID) T_OrderDetailDisc, + + T_OrderDetailDiscAmount , + + T_OrderDetailDiscTotal + fn_rpt_profile_child_disc(F_PaymentID, T_OrderDetailID) T_OrderDetailDiscTotal , + + T_OrderDetailTotal + fn_rpt_profile_child_amount(F_PaymentID, T_OrderDetailID) - fn_rpt_profile_child_disc(F_PaymentID, T_OrderDetailID) T_OrderDetailTotal, + + `fn_report_promise`(T_OrderHeaderID ) AS janjihasil, + + IF(F_Payment_OrderHeaderIsLunas = 'N' , "BELUM LUNAS","LUNAS") AS Status, + + + + CONCAT(`f_terbilang`(F_PaymentTotal),"", "Rupiah")AS terbilang, + + F_PaymentID, + + F_PaymentT_OrderHeaderID, + + F_PaymentDate, + + F_PaymentNumber , + + F_PaymentTotal, + + `fn_get_delivery_patient`(T_OrderHeaderID) as alamatkirim, + + S_SystemsCompanyName , + + concat(S_SystemsCompanyAddress," ",S_SystemsCompanyCity," ",S_SystemsCompanyCityFooter," Telp. ", S_SystemsCompanyPhone," Fax. ", S_SystemsCompanyFax) as alamatcabang, + + S_SystemsEmailAddress,M_No_FormRev,S_SystemsCompanyCity, + + `fn_get_count_payment`(F_PaymentID) as idd, + + if(`fn_get_count_payment`(F_PaymentID) = '0', (F_Payment_OrderHeaderTotal -ifnull(@amountotherinvoice,0)-F_PaymentTotal) , + + (F_Payment_OrderHeaderTotal -ifnull(@amountotherinvoice,0)-F_PaymentTotal) + ifnull(`fn_get_potongan_header`(T_OrderHeaderID ),0))as kurangbayarr , + + + + if(`fn_get_count_payment`(F_PaymentID) = '0',F_Payment_OrderHeaderSubTotal , + + F_Payment_OrderHeaderSubTotal +ifnull(`fn_get_potongan_header`(T_OrderHeaderID ),0) ) as subsubtotal_header, + + if(`fn_get_count_payment`(F_PaymentID) = '0',F_Payment_OrderHeaderSubTotal - F_Payment_OrderHeaderRounding , + + F_Payment_OrderHeaderSubTotal +ifnull(`fn_get_potongan_header`(T_OrderHeaderID ),0) - F_Payment_OrderHeaderRounding) as grandtotal_header, + + if(`fn_get_count_payment`(F_PaymentID) = '0','0', + + ifnull(`fn_get_potongan_header`(T_OrderHeaderID ),0) ) as biayaadmin_header, + + (F_Payment_OrderHeaderTotal -ifnull(@amountotherinvoice,0)-F_PaymentTotal) +ifnull(`fn_get_potongan`(T_OrderHeaderID , F_PaymentID),0) as kurangbayar, + + ifnull(`fn_get_potongan`(T_OrderHeaderID , F_PaymentID),0) as administasi, + + F_Payment_OrderHeaderSubTotal +ifnull(`fn_get_potongan`(T_OrderHeaderID , F_PaymentID),0) as subtotalbaru, + + F_Payment_OrderHeaderSubTotal +ifnull(`fn_get_potongan`(T_OrderHeaderID , F_PaymentID),0) -F_Payment_OrderHeaderRounding as grandtotalbaru,`fn_get_staff`(F_PaymentM_UserID) as M_UserUsername, + +if(fn_kirim_wa(T_OrderHeaderID)= "" , "", concat("Kami menyetujui bahwa hasil pemeriksaan dikirim melalui media elektronik WhatsApp No." ,`fn_kirim_wa`(T_OrderHeaderID))) as WA + + + + from t_orderheader + + left join f_payment ON F_PaymentT_OrderHeaderID = T_OrderHeaderID AND F_PaymentIsActive = 'Y' + + join f_payment_test on F_Payment_TestF_PaymentID = F_PaymentID and T_OrderHeaderID = @ohid + + left join t_orderdetail on T_OrderHeaderID = T_OrderDetailT_OrderHeaderID + + and ( + + F_Payment_TestT_OrderDetailID = T_OrderDetailID + + or + + ( T_OrderDetailT_TestIsPanel = 'Y' and T_OrderDetailT_TestID = 0 ) + + ) + + + + left join f_payment_orderheader on F_Payment_OrderHeaderF_PaymentID = F_PaymentID + + left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' + + left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' + + left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' + + left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y' + + left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y' + + left join m_doctor p ON T_OrderHeaderSenderM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' + + left join m_doctor pj ON T_OrderHeaderPjM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' + + left join t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' + + left join nat_test ON T_TestNat_TestID = Nat_TestID + + left join t_orderdetailaddon on T_OrderDetailID = T_OrderDetailAddOnT_OrderDetailID + + left join t_packet on T_OrderDetailAddOnT_PacketID = T_PacketID + + LEFT JOIN last_statuspayment ON Last_StatusPaymentT_OrderHeaderID = T_OrderHeaderID + + LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "NOTA" + + left join m_user on F_PaymentM_UserID = M_UserID + + left join conf_systems on S_SystemsID > 0 + +left join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID + + where + + F_PaymentID = PID + + + + and ( Nat_TestPriceSumToNat_TestID = 0 or Nat_TestPriceSumToNat_TestID is null ) + + and + + ( + + ( + + T_OrderDetailT_TestIsPanelChildren = 'N' + + and + + ( ( T_TestIsPrintNota = 'y' ) + + or + + T_PacketIsNota = 'Y' + + ) + + ) + + or + + ( + + T_OrderDetailT_TestIsPanelChildren = 'Y' + + and + + T_OrderDetailT_TestIsPanelChildrenPrintNota = 'Y' + + ) + + ) + + order by T_OrderDetailT_TestSasCode + + ; + + + +end if; + +END $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_t_003x` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_t_003x`(IN `PID` int, IN `username` varchar(100)) +BEGIN +select F_PaymentT_OrderHeaderID into @ohid +from +f_payment +where +F_PaymentID = PID AND F_PaymentIsActive = 'Y'; + +select ifnull(sum(F_PaymentTotal),0) into @amountotherinvoice +from +f_payment +WHERE +F_PaymentT_OrderHeaderID = @ohid AND F_PaymentIsActive = 'Y' AND F_PaymentID < PID; + + +set @count_payment_test = 0; +select count(*) into @count_payment_test +from f_payment +join f_payment_test on F_Payment_TestF_PaymentID = F_PaymentID and F_PaymentID=PID; + +if @count_payment_test = 0 then + + select + distinct + DATE_FORMAT(now(), "%d-%m-%Y %T") AS DATENOW, + T_OrderHeaderID, + DATE_FORMAT(T_OrderHeaderDate, "%d-%m-%Y %T") AS T_OrderHeaderDate, + fn_lookup_external(T_OrderHeaderLabNumber,'L') T_OrderHeaderLabNumber, + CONCAT(T_OrderHeaderLabNumber," / ",M_PatientNoReg) AS PIiD, + CONCAT(M_TitleName," ",ifnull(M_PatientPrefix,'')," ",M_PatientName," ",ifnull(M_PatientSuffix,'')) AS M_PatientName, + M_PatientNoReg , + M_TitleName, + M_SexName, + M_PatientSuffix, + DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") AS M_PatientDOB, + M_PatientHP , + M_PatientPhone , + M_PatientEmail, + M_PatientIDNumber, + M_PatientNote, + (SELECT concat(M_PatientAddressDescription," ",M_KelurahanName," ",M_DistrictName," ",M_CityName) from m_patientaddress AS p + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , + M_CompanyName, + M_CompanyAddress, + M_CompanyPhone , + M_CompanyEmail , + M_CompanyPIC ,M_MouName, + T_OrderHeaderM_PatientAge, + CONCAT(T_OrderHeaderM_PatientAge," / ",M_SexCode) AS Umur, + CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix) AS M_DoctorName, + + CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix) AS DokterPJ , + T_OrderHeaderDoctorNote, + T_OrderHeaderVerificationNote , + T_OrderHeaderFoNote , + T_OrderHeaderSamplingNote, + T_OrderHeaderResultNote, + F_Payment_OrderHeaderSubTotal as T_OrderHeaderSubTotal, + F_Payment_OrderHeaderRounding as T_OrderHeaderRounding , + F_Payment_OrderHeaderTotal as T_OrderHeaderTotal, + T_TestCode , + T_PacketName as paket, + if(T_TestName is null ,"kosong",T_TestName ) as test, + if (T_PacketID is null, T_TestName, T_PacketName) as T_TestNamea, + if (T_PacketID is null,concat(" ",T_TestName), ifnull( concat(T_PacketName,"
",`fn_get_test_packet`(T_PacketID)),"")) as T_TestName, + concat(T_PacketName,"
",`fn_get_test_packet`(T_PacketID)) as testpaket, + `fn_get_test_packet`(T_PacketID) as namapaket , + T_OrderDetailPrice + fn_rpt_profile_child_amount(F_PaymentID, T_OrderDetailID) T_OrderDetailPrice , + T_OrderDetailPriceForDisc, + T_OrderDetailDisc + fn_rpt_profile_child_disc(F_PaymentID, T_OrderDetailID) T_OrderDetailDisc, + T_OrderDetailDiscAmount , + T_OrderDetailDiscTotal , + T_OrderDetailTotal + fn_rpt_profile_child_amount(F_PaymentID, T_OrderDetailID) - fn_rpt_profile_child_disc(F_PaymentID, T_OrderDetailID) T_OrderDetailTotal, + `fn_report_promise`(T_OrderHeaderID ) AS janjihasil, + IF(F_Payment_OrderHeaderIsLunas = 'N' , "BELUM LUNAS","LUNAS") AS Status, + + CONCAT(`f_terbilang`(F_PaymentTotal),"", "Rupiah")AS terbilang, + F_PaymentID, + F_PaymentT_OrderHeaderID, + F_PaymentDate, + F_PaymentNumber , + F_PaymentTotal, + `fn_get_delivery_patient`(T_OrderHeaderID) as alamatkirim, + S_SystemsCompanyName , + concat(S_SystemsCompanyAddress," ",S_SystemsCompanyCity," ",S_SystemsCompanyCityFooter," Telp. ", S_SystemsCompanyPhone," Fax. ", S_SystemsCompanyFax) as alamatcabang, + S_SystemsEmailAddress,M_No_FormRev,S_SystemsCompanyCity, + `fn_get_count_payment`(F_PaymentID) as idd, + if(`fn_get_count_payment`(F_PaymentID) = '0', (F_Payment_OrderHeaderTotal -ifnull(@amountotherinvoice,0)-F_PaymentTotal) , + (F_Payment_OrderHeaderTotal -ifnull(@amountotherinvoice,0)-F_PaymentTotal) + ifnull(`fn_get_potongan_header`(T_OrderHeaderID ),0))as kurangbayarr , + + if(`fn_get_count_payment`(F_PaymentID) = '0',F_Payment_OrderHeaderSubTotal , + F_Payment_OrderHeaderSubTotal +ifnull(`fn_get_potongan_header`(T_OrderHeaderID ),0) ) as subsubtotal_header, + if(`fn_get_count_payment`(F_PaymentID) = '0',F_Payment_OrderHeaderSubTotal - F_Payment_OrderHeaderRounding , + F_Payment_OrderHeaderSubTotal +ifnull(`fn_get_potongan_header`(T_OrderHeaderID ),0) - F_Payment_OrderHeaderRounding) as grandtotal_header, + if(`fn_get_count_payment`(F_PaymentID) = '0','0', + ifnull(`fn_get_potongan_header`(T_OrderHeaderID ),0) ) as biayaadmin_header, + (F_Payment_OrderHeaderTotal -ifnull(@amountotherinvoice,0)-F_PaymentTotal) +ifnull(`fn_get_potongan`(T_OrderHeaderID , F_PaymentID),0) as kurangbayar, + ifnull(`fn_get_potongan`(T_OrderHeaderID , F_PaymentID),0) as administasi, + F_Payment_OrderHeaderSubTotal +ifnull(`fn_get_potongan`(T_OrderHeaderID , F_PaymentID),0) as subtotalbaru, + F_Payment_OrderHeaderSubTotal +ifnull(`fn_get_potongan`(T_OrderHeaderID , F_PaymentID),0) -F_Payment_OrderHeaderRounding as grandtotalbaru + from t_orderheader + left join f_payment ON F_PaymentT_OrderHeaderID = T_OrderHeaderID AND F_PaymentIsActive = 'Y' + left join f_payment_test on F_Payment_TestF_PaymentID = F_PaymentID and T_OrderHeaderID = @ohid + left join t_orderdetail on T_OrderHeaderID = T_OrderDetailT_OrderHeaderID + and ( + F_Payment_TestT_OrderDetailID = T_OrderDetailID + or + ( T_OrderDetailT_TestIsPanel = 'Y' and T_OrderDetailT_TestID = 0 ) + ) + + left join f_payment_orderheader on F_Payment_OrderHeaderF_PaymentID = F_PaymentID + left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' + left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' + left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' + left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y' + left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y' + left join m_doctor p ON T_OrderHeaderSenderM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' + left join m_doctor pj ON T_OrderHeaderPjM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' + left join t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' + left join nat_test ON T_TestNat_TestID = Nat_TestID + left join t_orderdetailaddon on T_OrderDetailID = T_OrderDetailAddOnT_OrderDetailID + left join t_packet on T_OrderDetailAddOnT_PacketID = T_PacketID + LEFT JOIN last_statuspayment ON Last_StatusPaymentT_OrderHeaderID = T_OrderHeaderID + LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "NOTA" + left join conf_systems on S_SystemsID > 0 + + where + F_PaymentID = PID ; +else + select + distinct + DATE_FORMAT(now(), "%d-%m-%Y %T") AS DATENOW, + T_OrderHeaderID, + DATE_FORMAT(T_OrderHeaderDate, "%d-%m-%Y %T") AS T_OrderHeaderDate, + fn_lookup_external(T_OrderHeaderLabNumber,'L') T_OrderHeaderLabNumber, + CONCAT(T_OrderHeaderLabNumber," / ",M_PatientNoReg) AS PIiD, + CONCAT(M_TitleName," ",ifnull(M_PatientPrefix,'')," ",M_PatientName," ",ifnull(M_PatientSuffix,'')) AS M_PatientName, + M_PatientNoReg , + M_TitleName, + M_SexName, + M_PatientSuffix, + DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") AS M_PatientDOB, + M_PatientHP , + M_PatientPhone , + M_PatientEmail, + M_PatientIDNumber, + M_PatientNote, + (SELECT concat(M_PatientAddressDescription," ",M_KelurahanName," ",M_DistrictName," ",M_CityName) from m_patientaddress AS p + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , + M_CompanyName, + M_CompanyAddress, + M_CompanyPhone , + M_CompanyEmail , + M_CompanyPIC ,M_MouName, + T_OrderHeaderM_PatientAge, + CONCAT(T_OrderHeaderM_PatientAge," / ",M_SexCode) AS Umur, + CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix) AS M_DoctorName, + + CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix) AS DokterPJ , + T_OrderHeaderDoctorNote, + T_OrderHeaderVerificationNote , + T_OrderHeaderFoNote , + T_OrderHeaderSamplingNote, + T_OrderHeaderResultNote, + F_Payment_OrderHeaderSubTotal as T_OrderHeaderSubTotal, + F_Payment_OrderHeaderRounding as T_OrderHeaderRounding , + F_Payment_OrderHeaderTotal as T_OrderHeaderTotal, + T_TestCode , + T_PacketName as paket, + if(T_TestName is null ,"kosong",T_TestName ) as test, + if (T_PacketID is null, T_TestName, T_PacketName) as T_TestNamea, + if (T_PacketID is null,concat(" ",T_TestName), ifnull( concat(T_PacketName,"
",`fn_get_test_packet`(T_PacketID)),"")) as T_TestName, + concat(T_PacketName,"
",`fn_get_test_packet`(T_PacketID)) as testpaket, + `fn_get_test_packet`(T_PacketID) as namapaket , + T_OrderDetailPrice + fn_rpt_profile_child_amount(F_PaymentID, T_OrderDetailID) T_OrderDetailPrice , + T_OrderDetailPriceForDisc, + T_OrderDetailDisc + fn_rpt_profile_child_disc(F_PaymentID, T_OrderDetailID) T_OrderDetailDisc, + T_OrderDetailDiscAmount , + T_OrderDetailDiscTotal , + T_OrderDetailTotal + fn_rpt_profile_child_amount(F_PaymentID, T_OrderDetailID) - fn_rpt_profile_child_disc(F_PaymentID, T_OrderDetailID) T_OrderDetailTotal, + `fn_report_promise`(T_OrderHeaderID ) AS janjihasil, + IF(F_Payment_OrderHeaderIsLunas = 'N' , "BELUM LUNAS","LUNAS") AS Status, + + CONCAT(`f_terbilang`(F_PaymentTotal),"", "Rupiah")AS terbilang, + F_PaymentID, + F_PaymentT_OrderHeaderID, + F_PaymentDate, + F_PaymentNumber , + F_PaymentTotal, + `fn_get_delivery_patient`(T_OrderHeaderID) as alamatkirim, + S_SystemsCompanyName , + concat(S_SystemsCompanyAddress," ",S_SystemsCompanyCity," ",S_SystemsCompanyCityFooter," Telp. ", S_SystemsCompanyPhone," Fax. ", S_SystemsCompanyFax) as alamatcabang, + S_SystemsEmailAddress,M_No_FormRev,S_SystemsCompanyCity, + `fn_get_count_payment`(F_PaymentID) as idd, + if(`fn_get_count_payment`(F_PaymentID) = '0', (F_Payment_OrderHeaderTotal -ifnull(@amountotherinvoice,0)-F_PaymentTotal) , + (F_Payment_OrderHeaderTotal -ifnull(@amountotherinvoice,0)-F_PaymentTotal) + ifnull(`fn_get_potongan_header`(T_OrderHeaderID ),0))as kurangbayarr , + + if(`fn_get_count_payment`(F_PaymentID) = '0',F_Payment_OrderHeaderSubTotal , + F_Payment_OrderHeaderSubTotal +ifnull(`fn_get_potongan_header`(T_OrderHeaderID ),0) ) as subsubtotal_header, + if(`fn_get_count_payment`(F_PaymentID) = '0',F_Payment_OrderHeaderSubTotal - F_Payment_OrderHeaderRounding , + F_Payment_OrderHeaderSubTotal +ifnull(`fn_get_potongan_header`(T_OrderHeaderID ),0) - F_Payment_OrderHeaderRounding) as grandtotal_header, + if(`fn_get_count_payment`(F_PaymentID) = '0','0', + ifnull(`fn_get_potongan_header`(T_OrderHeaderID ),0) ) as biayaadmin_header, + (F_Payment_OrderHeaderTotal -ifnull(@amountotherinvoice,0)-F_PaymentTotal) +ifnull(`fn_get_potongan`(T_OrderHeaderID , F_PaymentID),0) as kurangbayar, + ifnull(`fn_get_potongan`(T_OrderHeaderID , F_PaymentID),0) as administasi, + F_Payment_OrderHeaderSubTotal +ifnull(`fn_get_potongan`(T_OrderHeaderID , F_PaymentID),0) as subtotalbaru, + F_Payment_OrderHeaderSubTotal +ifnull(`fn_get_potongan`(T_OrderHeaderID , F_PaymentID),0) -F_Payment_OrderHeaderRounding as grandtotalbaru + from t_orderheader + left join f_payment ON F_PaymentT_OrderHeaderID = T_OrderHeaderID AND F_PaymentIsActive = 'Y' + join f_payment_test on F_Payment_TestF_PaymentID = F_PaymentID and T_OrderHeaderID = @ohid + left join t_orderdetail on T_OrderHeaderID = T_OrderDetailT_OrderHeaderID + and ( + F_Payment_TestT_OrderDetailID = T_OrderDetailID + or + ( T_OrderDetailT_TestIsPanel = 'Y' and T_OrderDetailT_TestID = 0 ) + ) + + left join f_payment_orderheader on F_Payment_OrderHeaderF_PaymentID = F_PaymentID + left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' + left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' + left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' + left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y' + left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y' + left join m_doctor p ON T_OrderHeaderSenderM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' + left join m_doctor pj ON T_OrderHeaderPjM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' + left join t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' + left join nat_test ON T_TestNat_TestID = Nat_TestID + left join t_orderdetailaddon on T_OrderDetailID = T_OrderDetailAddOnT_OrderDetailID + left join t_packet on T_OrderDetailAddOnT_PacketID = T_PacketID + LEFT JOIN last_statuspayment ON Last_StatusPaymentT_OrderHeaderID = T_OrderHeaderID + LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "NOTA" + left join conf_systems on S_SystemsID > 0 + + where + F_PaymentID = PID + + and ( Nat_TestPriceSumToNat_TestID = 0 or Nat_TestPriceSumToNat_TestID is null ) + and + ( + ( + T_OrderDetailT_TestIsPanelChildren = 'N' + and + ( ( T_TestIsPrintNota = 'y' ) + or + T_PacketIsNota = 'Y' + ) + ) + or + ( + T_OrderDetailT_TestIsPanelChildren = 'Y' + and + T_OrderDetailT_TestIsPanelChildrenPrintNota = 'Y' + ) + ) + order by T_OrderDetailT_TestSasCode + ; + +end if; +END $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_t_003_eng` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_t_003_eng`(IN `PID` int, IN `username` varchar(100)) +BEGIN +select F_PaymentT_OrderHeaderID into @ohid +from +f_payment +where +F_PaymentID = PID AND F_PaymentIsActive = 'Y'; + +select ifnull(sum(F_PaymentTotal),0) into @amountotherinvoice +from +f_payment +WHERE +F_PaymentT_OrderHeaderID = @ohid AND F_PaymentIsActive = 'Y' AND F_PaymentID < PID; + + +set @count_payment_test = 0; +select count(*) into @count_payment_test +from f_payment +join f_payment_test on F_Payment_TestF_PaymentID = F_PaymentID and F_PaymentID=PID; + +if @count_payment_test = 0 then + + select + distinct + DATE_FORMAT(now(), "%M %d %Y %T") AS DATENOW, + T_OrderHeaderID, + DATE_FORMAT(T_OrderHeaderDate, "%M %d %Y %T") AS T_OrderHeaderDate, + fn_lookup_external(T_OrderHeaderLabNumber,'L') T_OrderHeaderLabNumber, + CONCAT(fn_lookup_external(T_OrderHeaderLabNumber,'L') ," / ",T_OrderHeaderLabNumber) AS PIiD, +CONCAT(M_TitleLangName," ",ifnull(M_PatientPrefix,'')," ",M_PatientName," ",ifnull(M_PatientSuffix,'')) AS M_PatientName, + M_PatientNoReg , + M_TitleName, + M_SexName, + M_PatientSuffix, + DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") AS M_PatientDOB, + M_PatientHP , + M_PatientPhone , + M_PatientEmail, + M_PatientIDNumber, + M_PatientNote, + (SELECT concat(M_PatientAddressDescription," ",M_KelurahanName," ",M_DistrictName," ",M_CityName) from m_patientaddress AS p + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , + (case +when M_CompanyName = 'Pasien klinisi' then 'CLINICIAN REFERENCE' +when M_CompanyName = 'Pasien mandiri' then 'PERSONAL REQUEST' +else M_CompanyName end ) +as M_CompanyName, + M_CompanyAddress, + M_CompanyPhone , + M_CompanyEmail , + M_CompanyPIC ,M_MouName, + REPLACE(REPLACE(REPLACE(T_OrderHeaderM_PatientAge, 'tahun', 'year') , 'bulan', 'month') , 'hari', 'days') as T_OrderHeaderM_PatientAge, + CONCAT(REPLACE(REPLACE(REPLACE(T_OrderHeaderM_PatientAge, 'tahun', 'year') , 'bulan', 'month') , 'hari', 'days') ," / ",M_SexCode) AS Umur, + if(T_OrderHeaderAddOnAliasDoctorName is null or T_OrderHeaderAddOnAliasDoctorName = '' ,CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2),T_OrderHeaderAddOnAliasDoctorName) AS M_DoctorName, + + CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix) AS DokterPJ , + T_OrderHeaderDoctorNote, + T_OrderHeaderVerificationNote , + T_OrderHeaderFoNote , + T_OrderHeaderSamplingNote, + T_OrderHeaderResultNote, + F_Payment_OrderHeaderSubTotal as T_OrderHeaderSubTotal, + F_Payment_OrderHeaderRounding as T_OrderHeaderRounding , + F_Payment_OrderHeaderTotal as T_OrderHeaderTotal, + T_TestCode , + T_PacketName as paket, + if(Nat_TestLangName is null ,"kosong",Nat_TestLangName ) as test, + if (T_PacketID is null, Nat_TestLangName, T_PacketName) as T_TestNamea, + if (T_PacketID is null,concat(" ",Nat_TestLangName), ifnull( concat(T_PacketName,"
",`fn_get_test_packet`(T_PacketID)),"")) as T_TestName, + concat(T_PacketName,"
",`fn_get_test_packet`(T_PacketID)) as testpaket, + `fn_get_test_packet`(T_PacketID) as namapaket , + T_OrderDetailPrice + fn_rpt_profile_child_amount(F_PaymentID, T_OrderDetailID) T_OrderDetailPrice , + T_OrderDetailPriceForDisc, + T_OrderDetailDisc + fn_rpt_profile_child_disc(F_PaymentID, T_OrderDetailID) T_OrderDetailDisc, + T_OrderDetailDiscAmount , + T_OrderDetailDiscTotal + fn_rpt_profile_child_disc(F_PaymentID, T_OrderDetailID) T_OrderDetailDiscTotal , + T_OrderDetailTotal + fn_rpt_profile_child_amount(F_PaymentID, T_OrderDetailID) - fn_rpt_profile_child_disc(F_PaymentID, T_OrderDetailID) T_OrderDetailTotal, + `fn_report_promise`(T_OrderHeaderID ) AS janjihasil, + IF(F_Payment_OrderHeaderIsLunas = 'N' , "BELUM LUNAS","LUNAS") AS Status, + + CONCAT(`f_terbilang`(F_PaymentTotal),"", "Rupiah")AS terbilang, + F_PaymentID, + F_PaymentT_OrderHeaderID, + F_PaymentDate, + F_PaymentNumber , + F_PaymentTotal, + `fn_get_delivery_patient`(T_OrderHeaderID) as alamatkirim, + S_SystemsCompanyName , + concat(S_SystemsCompanyAddress," ",S_SystemsCompanyCity," ",S_SystemsCompanyCityFooter," Telp. ", S_SystemsCompanyPhone," Fax. ", S_SystemsCompanyFax) as alamatcabang, + S_SystemsEmailAddress,M_No_FormRev,S_SystemsCompanyCity, + `fn_get_count_payment`(F_PaymentID) as idd, + if(`fn_get_count_payment`(F_PaymentID) = '0', (F_Payment_OrderHeaderTotal -ifnull(@amountotherinvoice,0)-F_PaymentTotal) , + (F_Payment_OrderHeaderTotal -ifnull(@amountotherinvoice,0)-F_PaymentTotal) + ifnull(`fn_get_potongan_header`(T_OrderHeaderID ),0))as kurangbayarr , + + if(`fn_get_count_payment`(F_PaymentID) = '0',F_Payment_OrderHeaderSubTotal , + F_Payment_OrderHeaderSubTotal +ifnull(`fn_get_potongan_header`(T_OrderHeaderID ),0) ) as subsubtotal_header, + if(`fn_get_count_payment`(F_PaymentID) = '0',F_Payment_OrderHeaderSubTotal - F_Payment_OrderHeaderRounding , + F_Payment_OrderHeaderSubTotal +ifnull(`fn_get_potongan_header`(T_OrderHeaderID ),0) - F_Payment_OrderHeaderRounding) as grandtotal_header, + if(`fn_get_count_payment`(F_PaymentID) = '0','0', + ifnull(`fn_get_potongan_header`(T_OrderHeaderID ),0) ) as biayaadmin_header, + (F_Payment_OrderHeaderTotal -ifnull(@amountotherinvoice,0)-F_PaymentTotal) +ifnull(`fn_get_potongan`(T_OrderHeaderID , F_PaymentID),0) as kurangbayar, + ifnull(`fn_get_potongan`(T_OrderHeaderID , F_PaymentID),0) as administasi, + F_Payment_OrderHeaderSubTotal +ifnull(`fn_get_potongan`(T_OrderHeaderID , F_PaymentID),0) as subtotalbaru, + F_Payment_OrderHeaderSubTotal +ifnull(`fn_get_potongan`(T_OrderHeaderID , F_PaymentID),0) -F_Payment_OrderHeaderRounding as grandtotalbaru,`fn_get_staff`(F_PaymentM_UserID) as M_UserUsername, +if(fn_kirim_wa(T_OrderHeaderID) = "" , "", concat("Kami menyetujui bahwa hasil pemeriksaan dikirim melalui media elektronik WhatsApp No." ,`fn_kirim_wa`(T_OrderHeaderID))) as WA + +from t_orderheader + left join f_payment ON F_PaymentT_OrderHeaderID = T_OrderHeaderID AND F_PaymentIsActive = 'Y' + left join f_payment_test on F_Payment_TestF_PaymentID = F_PaymentID and T_OrderHeaderID = @ohid + left join t_orderdetail on T_OrderHeaderID = T_OrderDetailT_OrderHeaderID + and ( + F_Payment_TestT_OrderDetailID = T_OrderDetailID + or + ( T_OrderDetailT_TestIsPanel = 'Y' and T_OrderDetailT_TestID = 0 ) + ) + + left join f_payment_orderheader on F_Payment_OrderHeaderF_PaymentID = F_PaymentID + left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' + left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' + left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' + left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y' + left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y' + left join m_doctor p ON T_OrderHeaderSenderM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' + left join m_doctor pj ON T_OrderHeaderPjM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' + left join t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' +left join nat_test oN T_TestNat_TestID = Nat_TestID aND Nat_TestIsActive = 'Y' +left join nat_testlang on Nat_TestLangNat_TestID = Nat_TestID and Nat_testLangIsActive = 'Y' and Nat_TestLangLangID = '2' + left join t_orderdetailaddon on T_OrderDetailID = T_OrderDetailAddOnT_OrderDetailID + left join t_packet on T_OrderDetailAddOnT_PacketID = T_PacketID + LEFT JOIN last_statuspayment ON Last_StatusPaymentT_OrderHeaderID = T_OrderHeaderID + LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "NOTA" + left join m_user on F_PaymentM_UserID = M_UserID + left join conf_systems on S_SystemsID > 0 +left join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID + where + F_PaymentID = PID ; +else + select + distinct + DATE_FORMAT(now(), "%M %d %Y %T") AS DATENOW, + T_OrderHeaderID, + DATE_FORMAT(T_OrderHeaderDate, "%d-%m-%Y %T") AS T_OrderHeaderDate, + fn_lookup_external(T_OrderHeaderLabNumber,'L') T_OrderHeaderLabNumber, + CONCAT(fn_lookup_external(T_OrderHeaderLabNumber,'L') ," / ",T_OrderHeaderLabNumber) AS PIiD, +CONCAT(M_TitleLangName," ",ifnull(M_PatientPrefix,'')," ",M_PatientName," ",ifnull(M_PatientSuffix,'')) AS M_PatientName, + M_PatientNoReg , + M_TitleName, + M_SexName, + M_PatientSuffix, + DATE_FORMAT(M_PatientDOB, "%M %d %Y %T") AS M_PatientDOB, + M_PatientHP , + M_PatientPhone , + M_PatientEmail, + M_PatientIDNumber, + M_PatientNote, + (SELECT concat(M_PatientAddressDescription," ",M_KelurahanName," ",M_DistrictName," ",M_CityName) from m_patientaddress AS p + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , + (case +when M_CompanyName = 'Pasien klinisi' then 'CLINICIAN REFERENCE' +when M_CompanyName = 'Pasien mandiri' then 'PERSONAL REQUEST' +else M_CompanyName end ) +as M_CompanyName, + M_CompanyAddress, + M_CompanyPhone , + M_CompanyEmail , + M_CompanyPIC ,M_MouName, + REPLACE(REPLACE(REPLACE(T_OrderHeaderM_PatientAge, 'tahun', 'year') , 'bulan', 'month') , 'hari', 'days') as T_OrderHeaderM_PatientAge, + CONCAT(REPLACE(REPLACE(REPLACE(T_OrderHeaderM_PatientAge, 'tahun', 'year') , 'bulan', 'month') , 'hari', 'days') ," / ",M_SexCode) AS Umur, + if(T_OrderHeaderAddOnAliasDoctorName is null or T_OrderHeaderAddOnAliasDoctorName = '' ,CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2),T_OrderHeaderAddOnAliasDoctorName) AS M_DoctorName, + + CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix) AS DokterPJ , + T_OrderHeaderDoctorNote, + T_OrderHeaderVerificationNote , + T_OrderHeaderFoNote , + T_OrderHeaderSamplingNote, + T_OrderHeaderResultNote, + F_Payment_OrderHeaderSubTotal as T_OrderHeaderSubTotal, + F_Payment_OrderHeaderRounding as T_OrderHeaderRounding , + F_Payment_OrderHeaderTotal as T_OrderHeaderTotal, + T_TestCode , + T_PacketName as paket, + if(Nat_TestLangName is null ,"kosong",Nat_TestLangName ) as test, + if (T_PacketID is null, Nat_TestLangName, T_PacketName) as T_TestNamea, + if (T_PacketID is null,concat(" ",Nat_TestLangName), ifnull( concat(T_PacketName,"
",`fn_get_test_packet`(T_PacketID)),"")) as T_TestName, + concat(T_PacketName,"
",`fn_get_test_packet`(T_PacketID)) as testpaket, + `fn_get_test_packet`(T_PacketID) as namapaket , + T_OrderDetailPrice + fn_rpt_profile_child_amount(F_PaymentID, T_OrderDetailID) T_OrderDetailPrice , + T_OrderDetailPriceForDisc, + T_OrderDetailDisc + fn_rpt_profile_child_disc(F_PaymentID, T_OrderDetailID) T_OrderDetailDisc, + T_OrderDetailDiscAmount , + T_OrderDetailDiscTotal + fn_rpt_profile_child_disc(F_PaymentID, T_OrderDetailID) T_OrderDetailDiscTotal , + T_OrderDetailTotal + fn_rpt_profile_child_amount(F_PaymentID, T_OrderDetailID) - fn_rpt_profile_child_disc(F_PaymentID, T_OrderDetailID) T_OrderDetailTotal, + `fn_report_promise`(T_OrderHeaderID ) AS janjihasil, + IF(F_Payment_OrderHeaderIsLunas = 'N' , "BELUM LUNAS","LUNAS") AS Status, + + CONCAT(`f_terbilang`(F_PaymentTotal),"", "Rupiah")AS terbilang, + F_PaymentID, + F_PaymentT_OrderHeaderID, + F_PaymentDate, + F_PaymentNumber , + F_PaymentTotal, + `fn_get_delivery_patient`(T_OrderHeaderID) as alamatkirim, + S_SystemsCompanyName , + concat(S_SystemsCompanyAddress," ",S_SystemsCompanyCity," ",S_SystemsCompanyCityFooter," Telp. ", S_SystemsCompanyPhone," Fax. ", S_SystemsCompanyFax) as alamatcabang, + S_SystemsEmailAddress,M_No_FormRev,S_SystemsCompanyCity, + `fn_get_count_payment`(F_PaymentID) as idd, + if(`fn_get_count_payment`(F_PaymentID) = '0', (F_Payment_OrderHeaderTotal -ifnull(@amountotherinvoice,0)-F_PaymentTotal) , + (F_Payment_OrderHeaderTotal -ifnull(@amountotherinvoice,0)-F_PaymentTotal) + ifnull(`fn_get_potongan_header`(T_OrderHeaderID ),0))as kurangbayarr , + + if(`fn_get_count_payment`(F_PaymentID) = '0',F_Payment_OrderHeaderSubTotal , + F_Payment_OrderHeaderSubTotal +ifnull(`fn_get_potongan_header`(T_OrderHeaderID ),0) ) as subsubtotal_header, + if(`fn_get_count_payment`(F_PaymentID) = '0',F_Payment_OrderHeaderSubTotal - F_Payment_OrderHeaderRounding , + F_Payment_OrderHeaderSubTotal +ifnull(`fn_get_potongan_header`(T_OrderHeaderID ),0) - F_Payment_OrderHeaderRounding) as grandtotal_header, + if(`fn_get_count_payment`(F_PaymentID) = '0','0', + ifnull(`fn_get_potongan_header`(T_OrderHeaderID ),0) ) as biayaadmin_header, + (F_Payment_OrderHeaderTotal -ifnull(@amountotherinvoice,0)-F_PaymentTotal) +ifnull(`fn_get_potongan`(T_OrderHeaderID , F_PaymentID),0) as kurangbayar, + ifnull(`fn_get_potongan`(T_OrderHeaderID , F_PaymentID),0) as administasi, + F_Payment_OrderHeaderSubTotal +ifnull(`fn_get_potongan`(T_OrderHeaderID , F_PaymentID),0) as subtotalbaru, + F_Payment_OrderHeaderSubTotal +ifnull(`fn_get_potongan`(T_OrderHeaderID , F_PaymentID),0) -F_Payment_OrderHeaderRounding as grandtotalbaru,`fn_get_staff`(F_PaymentM_UserID) as M_UserUsername, +if(fn_kirim_wa(T_OrderHeaderID)= "" , "", concat("Kami menyetujui bahwa hasil pemeriksaan dikirim melalui media elektronik WhatsApp No." ,`fn_kirim_wa`(T_OrderHeaderID))) as WA + + from t_orderheader + left join f_payment ON F_PaymentT_OrderHeaderID = T_OrderHeaderID AND F_PaymentIsActive = 'Y' + join f_payment_test on F_Payment_TestF_PaymentID = F_PaymentID and T_OrderHeaderID = @ohid + left join t_orderdetail on T_OrderHeaderID = T_OrderDetailT_OrderHeaderID + and ( + F_Payment_TestT_OrderDetailID = T_OrderDetailID + or + ( T_OrderDetailT_TestIsPanel = 'Y' and T_OrderDetailT_TestID = 0 ) + ) + + left join f_payment_orderheader on F_Payment_OrderHeaderF_PaymentID = F_PaymentID + left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' + left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' + left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' + left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y' + left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y' + left join m_doctor p ON T_OrderHeaderSenderM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' + left join m_doctor pj ON T_OrderHeaderPjM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' + left join t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' +left join nat_test oN T_TestNat_TestID = Nat_TestID aND Nat_TestIsActive = 'Y' +left join nat_testlang on Nat_TestLangNat_TestID = Nat_TestID and Nat_testLangIsActive = 'Y' and Nat_TestLangLangID = '2' + left join t_orderdetailaddon on T_OrderDetailID = T_OrderDetailAddOnT_OrderDetailID + left join t_packet on T_OrderDetailAddOnT_PacketID = T_PacketID + LEFT JOIN last_statuspayment ON Last_StatusPaymentT_OrderHeaderID = T_OrderHeaderID + LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "NOTA" + left join m_user on F_PaymentM_UserID = M_UserID + left join conf_systems on S_SystemsID > 0 +left join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID + where + F_PaymentID = PID + + and ( Nat_TestPriceSumToNat_TestID = 0 or Nat_TestPriceSumToNat_TestID is null ) + and + ( + ( + T_OrderDetailT_TestIsPanelChildren = 'N' + and + ( ( T_TestIsPrintNota = 'y' ) + or + T_PacketIsNota = 'Y' + ) + ) + or + ( + T_OrderDetailT_TestIsPanelChildren = 'Y' + and + T_OrderDetailT_TestIsPanelChildrenPrintNota = 'Y' + ) + ) + order by T_OrderDetailT_TestSasCode + ; + +end if; +END $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_t_003_pe` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_t_003_pe`(IN `PID` int, IN `username` varchar(100)) + READS SQL DATA +BEGIN + set @ohid =null; + select F_PaymentT_OrderHeaderID into @ohid + from + f_payment + where + F_PaymentID = PID AND F_PaymentIsActive = 'Y'; + + select ifnull(sum(F_PaymentTotal),0) into @amountotherinvoice + from + f_payment + WHERE + F_PaymentT_OrderHeaderID = @ohid AND F_PaymentIsActive = 'Y' AND F_PaymentID < PID; + + select + distinct + F_PaymentID, T_OrderDetailID, + fn_rpt_profile_child_amount(F_PaymentID, T_OrderDetailID), + DATE_FORMAT(now(), "%d-%m-%Y %T") AS DATENOW, + T_OrderHeaderID, + DATE_FORMAT(T_OrderHeaderDate, "%d-%m-%Y %T") AS T_OrderHeaderDate, + T_OrderHeaderLabNumber, + CONCAT(T_OrderHeaderLabNumber," / ",M_PatientNoReg) AS PIiD, + CONCAT(M_TitleName," ",ifnull(M_PatientPrefix,'')," ",M_PatientName," ",ifnull(M_PatientSuffix,'')) AS M_PatientName, + M_PatientNoReg , + M_TitleName, + M_SexName, + M_PatientSuffix, + DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") AS M_PatientDOB, + M_PatientHP , + M_PatientPhone , + M_PatientEmail, + M_PatientIDNumber, + M_PatientNote, + (SELECT concat(M_PatientAddressDescription," ",M_KelurahanName," ",M_DistrictName," ",M_CityName) from m_patientaddress AS p + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , + M_CompanyName, + M_CompanyAddress, + M_CompanyPhone , + M_CompanyEmail , + M_CompanyPIC ,M_MouName, + T_OrderHeaderM_PatientAge, + CONCAT(T_OrderHeaderM_PatientAge," / ",M_SexCode) AS Umur, + CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix) AS M_DoctorName, + + CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix) AS DokterPJ , + T_OrderHeaderDoctorNote, + T_OrderHeaderVerificationNote , + T_OrderHeaderFoNote , + T_OrderHeaderSamplingNote, + T_OrderHeaderResultNote, + F_Payment_OrderHeaderSubTotal as T_OrderHeaderSubTotal, + F_Payment_OrderHeaderRounding as T_OrderHeaderRounding , + F_Payment_OrderHeaderTotal as T_OrderHeaderTotal, + T_TestCode , + T_PacketName as paket, + if(T_TestName is null ,"kosong",T_TestName ) as test, + if (T_PacketID is null, T_TestName, T_PacketName) as T_TestNamea, + if (T_PacketID is null,concat(" ",T_TestName), ifnull( concat(T_PacketName,"
",`fn_get_test_packet`(T_PacketID)),"")) as T_TestName, + concat(T_PacketName,"
",`fn_get_test_packet`(T_PacketID)) as testpaket, + `fn_get_test_packet`(T_PacketID) as namapaket , + T_OrderDetailPrice, + T_OrderDetailPriceForDisc, + T_OrderDetailDisc , + T_OrderDetailDiscAmount , + T_OrderDetailDiscTotal , + T_OrderDetailTotal, + `fn_report_promise`(T_OrderHeaderID ) AS janjihasil, + IF(Last_StatusPaymentIsLunas = 'N' , "BELUM LUNAS","LUNAS") AS Status, + CONCAT(`f_terbilang`(F_PaymentTotal),"", "Rupiah")AS terbilang, + F_PaymentID, + F_PaymentT_OrderHeaderID, + F_PaymentDate, + F_PaymentNumber , + F_PaymentTotal, + `fn_get_delivery_patient`(T_OrderHeaderID) as alamatkirim, + S_SystemsCompanyName , + concat(S_SystemsCompanyAddress," ",S_SystemsCompanyCity," ",S_SystemsCompanyCityFooter," Telp. ", S_SystemsCompanyPhone," Fax. ", S_SystemsCompanyFax) as alamatcabang, + S_SystemsEmailAddress,M_No_FormRev,S_SystemsCompanyCity, + (F_Payment_OrderHeaderTotal -ifnull(@amountotherinvoice,0)-F_PaymentTotal) as kurangbayar + + + + from t_orderheader + join f_payment ON F_PaymentT_OrderHeaderID = T_OrderHeaderID AND F_PaymentIsActive = 'Y' + and T_OrderHeaderID = @ohid + join f_payment_test on F_Payment_TestF_PaymentID = F_PaymentID + join t_orderdetail on T_OrderHeaderID = T_OrderDetailT_OrderHeaderID + and ( + F_Payment_TestT_OrderDetailID = T_OrderDetailID + or + T_OrderDetailT_TestID = 0 + ) + left join f_payment_orderheader on F_Payment_OrderHeaderF_PaymentID = F_PaymentID + left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' + left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' + left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' + left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y' + left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y' + left join m_doctor p ON T_OrderHeaderSenderM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' + left join m_doctor pj ON T_OrderHeaderPjM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' + left join t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' + left join t_orderdetailaddon on T_OrderDetailID = T_OrderDetailAddOnT_OrderDetailID + left join t_packet on T_OrderDetailAddOnT_PacketID = T_PacketID + LEFT JOIN last_statuspayment ON Last_StatusPaymentT_OrderHeaderID = T_OrderHeaderID + LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "NOTA" + left join conf_systems on S_SystemsID > 0 + + where + F_PaymentID = PID + + and + ( + ( + T_OrderDetailT_TestIsPanelChildren = 'N' + and + ( T_TestIsPrintNota = 'y' + or + T_PacketIsNota = 'Y' + ) + ) + or + ( + T_OrderDetailT_TestIsPanelChildren = 'Y' + and + T_OrderDetailT_TestIsPanelChildrenPrintNota = 'Y' + ) + ) + order by T_OrderDetailT_TestSasCode ; +END $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_t_006` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_t_006`(IN `PID` int, IN `username` varchar(100)) +begin + + + +select sum(T_OrderDetailPrice) into @subtot + +from t_orderdetail + +where T_OrderDetailT_OrderHeaderID = PID and T_OrderDetailIsActive = 'Y' limit 1; + + + +select sum(T_OrderDetailDiscTotal) into @disc + +from t_orderdetail + +where T_OrderDetailT_OrderHeaderID = PID and T_OrderDetailIsActive = 'Y' limit 1; + + + + + +select + +distinct + +DATE_FORMAT(now(), "%d-%m-%Y %T") AS DATENOW, + +T_OrderHeaderID, + +DATE_FORMAT(T_OrderHeaderDate, "%d-%m-%Y %T") AS T_OrderHeaderDate, + + fn_lookup_external(T_OrderHeaderLabNumber,'L') T_OrderHeaderLabNumber, + +T_OrderHeaderLabNumber as noRegin, + +CONCAT(M_PatientNoReg," / ", fn_lookup_external(T_OrderHeaderLabNumber,'L')) AS PIiD, + +fn_get_name( T_OrderHeaderM_PatientID ) AS M_PatientName, + +M_PatientNoReg , + +M_TitleName, + +M_SexName, + +M_PatientSuffix, + +DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") AS M_PatientDOB, + +M_PatientHP , + +M_PatientPhone , + +M_PatientEmail, + +M_PatientIDNumber, + +M_PatientNote, + +(SELECT concat(M_PatientAddressDescription," ",M_KelurahanName," ",M_DistrictName," ",M_CityName) from m_patientaddress AS p + + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = M_PatientID + + ORDER BY M_PatientAddressM_PatientID + + LIMIT 1) AS M_PatientAddressDescription , + +M_CompanyName, + +M_CompanyAddress, + +M_CompanyPhone , + +M_CompanyEmail , + +IFNULL(M_CompanyPICName, '-') as M_CompanyPIC, + +M_MouName, + +T_OrderHeaderM_PatientAge, + +CONCAT(T_OrderHeaderM_PatientAge," / ",M_SexCode) AS Umur, + + if(T_OrderHeaderAddOnAliasDoctorName is null or T_OrderHeaderAddOnAliasDoctorName = '' ,CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2),T_OrderHeaderAddOnAliasDoctorName) AS M_DoctorName, + + + +CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix) AS DokterPJ , + +T_OrderHeaderDoctorNote, + +T_OrderHeaderVerificationNote , + +T_OrderHeaderFoNote , + +T_OrderHeaderSamplingNote, + +T_OrderHeaderResultNote, + +T_OrderHeaderSubTotal, + +T_OrderHeaderRounding , + + T_OrderHeaderTotal, + +T_TestCode , + +T_PacketName as paket, + + if(T_TestName is null ,"kosong",T_TestName ) as test, + +if (T_PacketID is null, T_TestName, T_PacketName) as T_TestNamea, + +if (T_PacketID is null,concat(" ",T_TestName), ifnull( concat(T_PacketName,"
",`fn_get_test_packet`(T_PacketID)),"")) as T_TestName, + + concat(T_PacketName,"
",`fn_get_test_packet`(T_PacketID)) as testpaket, + +`fn_get_test_packet`(T_PacketID) as namapaket , + +T_OrderDetailPrice +ifnull( fn_rpt_profile_child_amount_header(T_OrderDetailID),0) T_OrderDetailPrice , + +T_OrderDetailPriceForDisc, + +T_OrderDetailTotal + ifnull(fn_rpt_profile_child_disc_header(T_OrderDetailID),0) T_OrderDetailTotal , + +T_OrderDetailDiscTotal + ifnull(fn_rpt_profile_child_disc_header(T_OrderDetailID),0) diskonsatuan, + +T_OrderDetailDiscAmount , + +T_OrderDetailDiscTotal , + +T_OrderDetailTotal + ifnull(fn_rpt_profile_child_disc_header(T_OrderDetailID),0) T_OrderDetailDisc, + +`fn_report_promise`(T_OrderHeaderID ) AS janjihasil, + +IF(Last_StatusPaymentIsLunas = 'N' , "BELUM LUNAS","LUNAS") AS Status, + + + +CONCAT(`f_terbilang`(T_OrderHeaderTotal),"", "Rupiah") AS terbilang, + +`fn_get_delivery_patient`(T_OrderHeaderID) as alamatkirim, + +S_SystemsCompanyName , + +concat(S_SystemsCompanyAddress," ",S_SystemsCompanyCity," ",S_SystemsCompanyCityFooter," Telp. ", S_SystemsCompanyPhone," Fax. ", S_SystemsCompanyFax) as alamatcabang, + +S_SystemsEmailAddress,M_No_FormRev,S_SystemsCompanyCity,@subtot as subtot,@disc+T_OrderHeaderRounding as disc + +,`fn_get_staff`(T_OrderHeaderCreatedUserID) as M_UserUsername, + +if(fn_kirim_wa(T_OrderHeaderID) = "" , "", concat("Kami menyetujui bahwa hasil pemeriksaan dikirim melalui media elektronik WhatsApp No." ,`fn_kirim_wa`(T_OrderHeaderID))) as WA + + + + + +from t_orderheader + +left join t_orderdetail on T_OrderHeaderID = T_OrderDetailT_OrderHeaderID and T_OrderDetailIsActive = 'Y' + + + +left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' + +left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' + +left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' + +left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y' + +left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y' + +left join m_doctor p ON T_OrderHeaderSenderM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' + + left join m_doctor pj ON T_OrderHeaderPjM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' + +left join t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' + +left join nat_test ON T_TestNat_TestID = Nat_TestID + +left join t_orderdetailaddon on T_OrderDetailID = T_OrderDetailAddOnT_OrderDetailID + +left join t_packet on T_OrderDetailAddOnT_PacketID = T_PacketID + +LEFT JOIN last_statuspayment ON Last_StatusPaymentT_OrderHeaderID = T_OrderHeaderID + +LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "BP" + +left join conf_systems on S_SystemsID > 0 + + left join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID + + + + + +where + + T_OrderHeaderID = PID + + + +and ( Nat_TestPriceSumToNat_TestID = 0 or Nat_TestPriceSumToNat_TestID is null ) + + and + +( + + ( + + T_OrderDetailT_TestIsPanelChildren = 'N' + + and + + ( ( T_TestIsPrintNota = 'y' ) + + or + + T_PacketIsNota = 'Y' + + ) + + ) + + or + + ( + + T_OrderDetailT_TestIsPanelChildren = 'Y' + + and + + T_OrderDetailT_TestIsPanelChildrenPrintNota = 'Y' + + ) + +) + +order by T_OrderDetailT_TestSasCode + + + +;end $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_t_006x` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_t_006x`(IN `PID` int, IN `username` varchar(100)) +BEGIN +select sum(T_OrderDetailPrice) into @subtot +from t_orderdetail +where T_OrderDetailT_OrderHeaderID = PID limit 1; + +select sum(T_OrderDetailDiscTotal) into @disc +from t_orderdetail +where T_OrderDetailT_OrderHeaderID = PID limit 1; + +select +DATE_FORMAT(now(), "%d-%m-%Y %T") AS DATENOW, +T_OrderHeaderID, +DATE_FORMAT(T_OrderHeaderDate, "%d-%m-%Y %T") AS T_OrderHeaderDate, +T_OrderHeaderLabNumber, +CONCAT(T_OrderHeaderLabNumber," / ",M_PatientNoReg) AS PID, +CONCAT(M_TitleName," ",ifnull(M_PatientPrefix,'')," ",M_PatientName," ",ifnull(M_PatientSuffix,'')) AS M_PatientName, +M_PatientNoReg , + +M_TitleName, +M_SexName, +M_PatientSuffix, +DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") AS M_PatientDOB, +M_PatientHP , +M_PatientPhone , +M_PatientEmail, +M_PatientIDNumber, +M_PatientNote, +(SELECT concat(M_PatientAddressDescription," ",M_KelurahanName," ",M_DistrictName," ",M_CityName) from m_patientaddress AS p + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , +M_CompanyName, +M_CompanyAddress, +M_CompanyPhone , +M_CompanyEmail , +M_CompanyPIC ,M_MouName, +T_OrderHeaderM_PatientAge, +CONCAT(T_OrderHeaderM_PatientAge," / ",M_SexCode) AS Umur, + if(T_OrderHeaderAddOnAliasDoctorName is null or T_OrderHeaderAddOnAliasDoctorName = '' ,CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2),T_OrderHeaderAddOnAliasDoctorName) AS M_DoctorName, + +CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix) AS DokterPJ , +T_OrderHeaderDoctorNote, +T_OrderHeaderVerificationNote , +T_OrderHeaderFoNote , +T_OrderHeaderSamplingNote, +T_OrderHeaderResultNote, +T_OrderHeaderSubTotal, +T_OrderHeaderRounding , + T_OrderHeaderTotal, +T_TestCode , +T_PacketName as paket, + if(T_TestName is null ,"kosong",T_TestName ) as test, +if (T_PacketID is null, T_TestName, T_PacketName) as T_TestNamea, +if (T_PacketID is null,concat(" ",T_TestName), ifnull( concat(T_PacketName,"
",`fn_get_test_packet`(T_PacketID)),"")) as T_TestName, + concat(T_PacketName,"
",`fn_get_test_packet`(T_PacketID)) as testpaket, +`fn_get_test_packet`(T_PacketID) as namapaket , +T_OrderDetailPrice, +T_OrderDetailPriceForDisc, +T_OrderDetailDisc , +T_OrderDetailDiscAmount , +T_OrderDetailDiscTotal , +T_OrderDetailTotal, +`fn_report_promise`(T_OrderHeaderID ) AS janjihasil, +IF(Last_StatusPaymentIsLunas = 'N' , "BELUM LUNAS","LUNAS") AS Status, + +`fn_get_delivery_patient`(T_OrderHeaderID) as alamatkirim, +S_SystemsCompanyName , +concat(S_SystemsCompanyAddress," ",S_SystemsCompanyCity," ",S_SystemsCompanyCityFooter," Telp. ", S_SystemsCompanyPhone," Fax. ", S_SystemsCompanyFax) as alamatcabang, +S_SystemsEmailAddress,M_No_FormRev,S_SystemsCompanyCity +,@subtot as subtot,@disc+T_OrderHeaderRounding as disc + + + +from t_orderheader +left join t_orderdetail on T_OrderHeaderID = T_OrderDetailT_OrderHeaderID +left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' +left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' +left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' +left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y' +left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y' +left join m_doctor p ON T_OrderHeaderSenderM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' + left join m_doctor pj ON T_OrderHeaderPjM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' +left join t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' +left join t_orderdetailaddon on T_OrderDetailID = T_OrderDetailAddOnT_OrderDetailID +left join t_packet on T_OrderDetailAddOnT_PacketID = T_PacketID +LEFT JOIN last_statuspayment ON Last_StatusPaymentT_OrderHeaderID = T_OrderHeaderID +LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "NOTA" +left join conf_systems on S_SystemsID > 0 + left join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID + + +where + T_OrderHeaderID = PID + + and +( + ( + T_OrderDetailT_TestIsPanelChildren = 'N' + and + ( T_TestIsPrintNota = 'y' + or + T_PacketIsNota = 'Y' + ) + ) + or + ( + T_OrderDetailT_TestIsPanelChildren = 'Y' + and + T_OrderDetailT_TestIsPanelChildrenPrintNota = 'Y' + ) +) +order by T_OrderDetailT_TestSasCode + +; +END $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_t_013` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_t_013`(IN `PID` int, IN `username` varchar(100)) +BEGIN + select FutureDownpaymentFutureOrderID into @ohid +from +future_downpayment +where +FutureDownpaymentID = PID AND FutureDownpaymentIsActive = 'Y' ; + +select ifnull(sum(FutureDownpaymentTotal),0) into @amountotherinvoice +from +future_downpayment +WHERE +FutureDownpaymentFutureOrderID = @ohid AND FutureDownpaymentIsActive= 'Y' AND FutureDownpaymentID < PID; + + + + select + concat(S_SystemsCompanyCity,", ", DATE_FORMAT(now(), "%d-%m-%Y %T")) AS DATENOW, + FutureOrderID, + DATE_FORMAT(FutureOrderDateBooking, "%d-%m-%Y") AS T_OrderHeaderDate, + FutureOrderNumber , + fn_get_name( FutureOrderM_PatientID) AS M_PatientName, + M_PatientNoReg , + M_TitleName, + M_SexName, + M_PatientSuffix, + DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") AS M_PatientDOB, + M_PatientHP , + M_PatientPhone , + M_PatientEmail, + M_PatientIDNumber, + M_PatientNote, + (SELECT concat(M_PatientAddressDescription," ",M_KelurahanName," ",M_DistrictName," ",M_CityName) from m_patientaddress AS p + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , + M_CompanyName, + M_CompanyAddress, + M_CompanyPhone , + M_CompanyEmail , + M_CompanyPIC ,M_MouName, + + REPLACE(JSON_EXTRACT(FutureOrderJSONHeader, '$.age'), '"', "") as age, + CONCAT( REPLACE(JSON_EXTRACT(FutureOrderJSONHeader, '$.age'), '"', "") ," / ",M_SexCode) AS Umur, + CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2) AS M_DoctorName, + FutureOrderSubTotal ,FutureOrderTotal, + + T_TestCode ,T_TestName , + +if(Future_OrderDetailIsPacket = 'Y' , +CONCAT(T_PacketName,"
",`fn_get_test_packet`(T_PacketID) ) +,T_TestName ) as test, + Future_OrderDetailPrice ,Future_OrderDetailDisc, Future_OrderDetailDiscAmount ,Future_OrderDetailDiscTotal, Future_OrderDetailTotal, +FutureDownpaymentTotal, + @amountotherinvoice as pembayaranlain, +T_PacketName, +`fn_get_test_packet`(T_PacketID) as paketdetail, + +`fn_get_staff`(FutureDownpaymentUserID) as M_UserUsername, + DATE_FORMAT(FutureDownpaymentF_PaymentDate , "%d-%m-%Y") as FutureDownpaymentF_PaymentDate , +FutureDownpaymentNumber, +(FutureOrderTotal-ifnull(@amountotherinvoice,0)-FutureDownpaymentTotal) as kurangbayar , +if((FutureOrderTotal-ifnull(@amountotherinvoice,0)-FutureDownpaymentTotal) = '0' , "LUNAS","BELUM LUNAS" ) as statuslunas, +M_BranchName, +M_BranchAddress + + +from future_order + left join future_downpayment ON FutureDownpaymentFutureOrderID = FutureOrderID AND FutureDownpaymentIsActive = 'Y' + left join future_orderdetail on Future_OrderDetailFutureOrderID = FutureOrderID and Future_OrderDetailIsActive = 'Y' + left join m_patient ON FutureOrderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' + left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' + left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' + left join m_company ON FutureOrderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y' + left join m_mou ON FutureOrderM_MouID = M_MouID AND M_MouIsActive = 'Y' + left join m_doctor p ON FutureOrderSenderM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' + left join t_test ON Future_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' + left join nat_test ON T_TestNat_TestID = Nat_TestID + LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "NOTA" + left join m_user on FutureDownpaymentUserID = M_UserID + left join conf_systems on S_SystemsID > 0 + left join t_packet on Future_OrderDetailT_TestID = T_PacketID and T_PacketIsActive = 'Y' +left join m_branch on M_BranchIsDefault = 'Y' + + + where + FutureDownpaymentID = PID ; END $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_t_014` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_t_014`(IN `PID` int, IN `username` varchar(100)) +BEGIN + select FutureDownpaymentFutureOrderID into @ohid +from +future_downpayment +where +FutureDownpaymentID = PID AND FutureDownpaymentIsActive = 'N' ; + +select ifnull(sum(FutureDownpaymentTotal),0) into @amountotherinvoice +from +future_downpayment +WHERE +FutureDownpaymentFutureOrderID = @ohid AND FutureDownpaymentIsActive= 'N' AND FutureDownpaymentID < PID; + + + + select + concat(S_SystemsCompanyCity,", ", DATE_FORMAT(now(), "%d-%m-%Y %T")) AS DATENOW, + FutureOrderID, + DATE_FORMAT(FutureOrderDateBooking, "%d-%m-%Y") AS T_OrderHeaderDate, + FutureOrderNumber , + fn_get_name( FutureOrderM_PatientID) AS M_PatientName, + M_PatientNoReg , + M_TitleName, + M_SexName, + M_PatientSuffix, + DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") AS M_PatientDOB, + M_PatientHP , + M_PatientPhone , + M_PatientEmail, + M_PatientIDNumber, + M_PatientNote, + (SELECT concat(M_PatientAddressDescription," ",M_KelurahanName," ",M_DistrictName," ",M_CityName) from m_patientaddress AS p + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , + M_CompanyName, + M_CompanyAddress, + M_CompanyPhone , + M_CompanyEmail , + M_CompanyPIC ,M_MouName, + + REPLACE(JSON_EXTRACT(FutureOrderJSONHeader, '$.age'), '"', "") as age, + CONCAT( REPLACE(JSON_EXTRACT(FutureOrderJSONHeader, '$.age'), '"', "") ," / ",M_SexCode) AS Umur, + CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2) AS M_DoctorName, + FutureOrderSubTotal ,FutureOrderTotal, + + T_TestCode ,T_TestName , + +if(Future_OrderDetailIsPacket = 'Y' , +CONCAT(T_PacketName,"
",`fn_get_test_packet`(T_PacketID) ) +,T_TestName ) as test, + Future_OrderDetailPrice ,Future_OrderDetailDisc, Future_OrderDetailDiscAmount ,Future_OrderDetailDiscTotal, Future_OrderDetailTotal, +FutureDownpaymentTotal, + @amountotherinvoice as pembayaranlain, +T_PacketName, +`fn_get_test_packet`(T_PacketID) as paketdetail, + +`fn_get_staff`(FutureDownpaymentUserID) as M_UserUsername, + DATE_FORMAT(FutureDownpaymentF_PaymentDate , "%d-%m-%Y") as FutureDownpaymentF_PaymentDate , +FutureDownpaymentNumber, +(FutureOrderTotal-ifnull(@amountotherinvoice,0)-FutureDownpaymentTotal) as kurangbayar , +if((FutureOrderTotal-ifnull(@amountotherinvoice,0)-FutureDownpaymentTotal) = '0' , "LUNAS","BELUM LUNAS" ) as statuslunas, +M_BranchName, +M_BranchAddress + + +from future_order + left join future_downpayment ON FutureDownpaymentFutureOrderID = FutureOrderID AND FutureDownpaymentIsActive = 'N' + left join future_orderdetail on Future_OrderDetailFutureOrderID = FutureOrderID and Future_OrderDetailIsActive = 'N' + left join m_patient ON FutureOrderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' + left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' + left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' + left join m_company ON FutureOrderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y' + left join m_mou ON FutureOrderM_MouID = M_MouID AND M_MouIsActive = 'Y' + left join m_doctor p ON FutureOrderSenderM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' + left join t_test ON Future_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' + left join nat_test ON T_TestNat_TestID = Nat_TestID + LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "NOTA" + left join m_user on FutureDownpaymentUserID = M_UserID + left join conf_systems on S_SystemsID > 0 + left join t_packet on Future_OrderDetailT_TestID = T_PacketID and T_PacketIsActive = 'Y' +left join m_branch on M_BranchIsDefault = 'Y' + + + where + FutureDownpaymentID = PID ; END $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_t_015` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_t_015`(IN `PID` int, IN `an` varchar(100), IN `username` varchar(100)) +BEGIN + select FutureDownpaymentFutureOrderID into @ohid +from +future_downpayment +where +FutureDownpaymentID = PID AND FutureDownpaymentIsActive = 'Y' ; + +select ifnull(sum(FutureDownpaymentTotal),0) into @amountotherinvoice +from +future_downpayment +WHERE +FutureDownpaymentFutureOrderID = @ohid AND FutureDownpaymentIsActive= 'Y' AND FutureDownpaymentID < PID; + + + + select + concat(S_SystemsCompanyCity,", ", DATE_FORMAT(now(), "%d-%m-%Y %T")) AS DATENOW, + FutureOrderID, + DATE_FORMAT(FutureOrderDateBooking, "%d-%m-%Y") AS T_OrderHeaderDate, + FutureOrderNumber , + fn_get_name( FutureOrderM_PatientID) AS M_PatientName, + M_PatientNoReg , + M_TitleName, + M_SexName, + M_PatientSuffix, + DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") AS M_PatientDOB, + M_PatientHP , + M_PatientPhone , + M_PatientEmail, + M_PatientIDNumber, + M_PatientNote, + (SELECT concat(M_PatientAddressDescription," ",M_KelurahanName," ",M_DistrictName," ",M_CityName) from m_patientaddress AS p + left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , + M_CompanyName, + M_CompanyAddress, + M_CompanyPhone , + M_CompanyEmail , + M_CompanyPIC ,M_MouName, + + REPLACE(JSON_EXTRACT(FutureOrderJSONHeader, '$.age'), '"', "") as age, + CONCAT( REPLACE(JSON_EXTRACT(FutureOrderJSONHeader, '$.age'), '"', "") ," / ",M_SexCode) AS Umur, + CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2) AS M_DoctorName, + FutureOrderSubTotal ,FutureOrderTotal, + + T_TestCode ,T_TestName , + +if(Future_OrderDetailIsPacket = 'Y' , +CONCAT(T_PacketName,"
",`fn_get_test_packet`(T_PacketID) ) +,T_TestName ) as test, + Future_OrderDetailPrice ,Future_OrderDetailDisc, Future_OrderDetailDiscAmount ,Future_OrderDetailDiscTotal, Future_OrderDetailTotal, +FutureDownpaymentTotal, + @amountotherinvoice as pembayaranlain, +T_PacketName, +`fn_get_test_packet`(T_PacketID) as paketdetail, + +`fn_get_staff`(FutureDownpaymentUserID) as M_UserUsername, + DATE_FORMAT(FutureDownpaymentF_PaymentDate , "%d-%m-%Y") as FutureDownpaymentF_PaymentDate , +FutureDownpaymentNumber, +(FutureOrderTotal-ifnull(@amountotherinvoice,0)-FutureDownpaymentTotal) as kurangbayar , +if((FutureOrderTotal-ifnull(@amountotherinvoice,0)-FutureDownpaymentTotal) = '0' , "LUNAS","BELUM LUNAS" ) as statuslunas, +M_BranchName, +M_BranchAddress, +CONCAT(`f_terbilang`(FutureOrderTotal),"", "Rupiah") AS terbilang + + +from future_order + left join future_downpayment ON FutureDownpaymentFutureOrderID = FutureOrderID AND FutureDownpaymentIsActive = 'Y' + left join future_orderdetail on Future_OrderDetailFutureOrderID = FutureOrderID and Future_OrderDetailIsActive = 'Y' + left join m_patient ON FutureOrderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' + left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' + left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' + left join m_company ON FutureOrderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y' + left join m_mou ON FutureOrderM_MouID = M_MouID AND M_MouIsActive = 'Y' + left join m_doctor p ON FutureOrderSenderM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' + left join t_test ON Future_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' + left join nat_test ON T_TestNat_TestID = Nat_TestID + LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "NOTA" + left join m_user on FutureDownpaymentUserID = M_UserID + left join conf_systems on S_SystemsID > 0 + left join t_packet on Future_OrderDetailT_TestID = T_PacketID and T_PacketIsActive = 'Y' +left join m_branch on M_BranchIsDefault = 'Y' + + + where + FutureOrderID = PID ; END $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_t_hasil2` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_t_hasil2`(IN `PID` int, IN `username` varchar(100)) +select +CHAR_LENGTH(T_TestSasCode) as code, +case +when CHAR_LENGTH(T_TestSasCode) = '8' then concat("   ",T_TestShortName) +when CHAR_LENGTH(T_TestSasCode) = '10' then concat("      ",T_TestShortName) +when CHAR_LENGTH(T_TestSasCode) = '12' then concat("          • " ,T_TestShortName) +else concat("            ",T_TestShortName) end as space, +T_OrderHeaderID, +DATE_FORMAT(T_OrderHeaderDate, "%d-%m-%Y %T") AS T_OrderHeaderDate, + fn_lookup_external(T_OrderHeaderLabNumber,'L') as T_OrderHeaderLabNumber, +CONCAT( fn_lookup_external(T_OrderHeaderLabNumber,'L')," / ",M_PatientNoReg) AS PID, +fn_get_name( T_OrderHeaderM_PatientID ) AS M_PatientName, +M_PatientNoReg , + concat("http://localhost/one-api/v1/su/code128/?no=",T_OrderHeaderLabNumberExt) aS Barcode, + +M_TitleName, +M_SexName, +M_PatientSuffix, +DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") AS M_PatientDOB, +M_PatientHP , +M_PatientPhone , +M_PatientEmail, +M_PatientIDNumber, +M_PatientNote, +(SELECT concat(M_PatientAddressDescription, ' ' , M_DistrictName, " " ,M_CityName) from m_patientaddress AS p +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , +M_CompanyName, +M_CompanyAddress, +M_CompanyPhone , +M_CompanyEmail , +M_CompanyPIC ,M_MouName, +concat( DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") ," / ",T_OrderHeaderM_PatientAge ) as T_OrderHeaderM_PatientAge, +CONCAT(T_OrderHeaderM_PatientAge," / ",M_SexName) AS Umur, +CONCAT(ifnull(p.M_DoctorPrefix,"")," ",p.M_DoctorName," ",ifnull(p.M_DoctorSufix,"")," ",ifnull(p.M_DoctorSufix2,"")," ",ifnull(p.M_DoctorSufix3,"")) AS M_DoctorName, + +CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix," ",pj.M_DoctorSufix2," ",pj.M_DoctorSufix3) AS DokterPJ , +T_OrderHeaderDoctorNote, +T_OrderHeaderVerificationNote , +T_OrderHeaderFoNote , +T_OrderHeaderSamplingNote, + +T_OrderHeaderAddOnValidationNote , + `fn_get_note_extra_demo`(T_OrderHeaderID ,T_OrderDetailT_TestID,(case +when fn_get_result_header_new(T_OrderHeaderID,T_OrderDetailT_TestSasCode) like 'reaktif%' then 'Reaktif' +when fn_get_result_header_new(T_OrderHeaderID,T_OrderDetailT_TestSasCode) like 'non reaktif%' then 'Non Reaktif' +when fn_get_result_header_new(T_OrderHeaderID,T_OrderDetailT_TestSasCode) like 'terdeteksi%' then 'Positif' +when fn_get_result_header_new(T_OrderHeaderID,T_OrderDetailT_TestSasCode) like 'tidak terdeteksi%' then 'negatif' + +when fn_get_result_header_new(T_OrderHeaderID,T_OrderDetailT_TestSasCode) like 'positif%' then 'Positif' +when fn_get_result_header_new(T_OrderHeaderID,T_OrderDetailT_TestSasCode) like 'negatif%' then 'negatif' +else T_OrderDetailResult end)) as T_OrderHeaderResultNote , +T_OrderHeaderSubTotal, +T_OrderHeaderRounding , +T_OrderHeaderTotal, + T_OrderDetailNormalValueNote,if(Nat_MethodeNameInResult = "UNDEFINED METHODE" , "",Nat_MethodeNameInResult) as T_OrderdetailNat_MethodeName,S_SystemsCompanyCity ,S_SystemsCompanyCityFooter,DATE_FORMAT(now(), "%d-%m-%Y %T") as hariini, + +T_TestCode ,UPPER(Nat_SubSubGroupName) as Nat_SubSubGroupName, +`fn_report_promise`(T_OrderHeaderID ) AS janjihasil , T_OrderDetailHasResult, +if(T_TestIsParent = 'Y','',(case + when (`fn_get_ordersample`(T_OrderDetailID) = 'N' and T_OrderDetailResult is null ) then 'Bahan Belum' +when T_OrderDetailVerification = 'X' then 'Hasil Menyusul' else + concat( + + +if(`fn_itf_isnumber`(T_OrderDetailResult) = '0', concat(T_OrderDetailResult," ",ifnull(T_OrderDetailResultFlag,''),"
", +ifnull(concat("",T_OrderDetailNote),"")),concat( `fn_rpt_format_number`(T_OrderDetailResult)," ",ifnull(T_OrderDetailResultFlag,''),"
",ifnull(concat("",T_OrderDetailNote),"")) +) + +) + +end) ) + +as T_OrderDetailResult, +T_OrderDetailNote,T_TestNormalValue,ifnull(T_OrderDetailNormalValueDescription,'') as T_OrderDetailNormalValueDescription,Nat_UnitName,T_BahanName,T_OrderSampleSamplingDate,T_OrderSampleSamplingTime, +concat(DATE_FORMAT(T_OrderSampleSamplingDate, "%d-%m-%Y %T") ,",",T_OrderSampleSamplingTime ) as sampling,T_TestName as T_TestNameAA, +UPPER(Nat_SubGroupName) as Nat_SubGroupName +,S_SystemsCompanyName ,S_SystemsCompanyFax, +concat(S_SystemsCompanyAddress," ",S_SystemsCompanyCity," "," Telp. ", S_SystemsCompanyPhone ) as alamatcabang, +S_SystemsEmailAddress,M_No_FormRev,S_SystemsCompanyCity, +concat("

", +( +case +when (T_OrderDetailValUserID = '0' or T_TestIsParent = 'Y' ) then `fn_get_username_validation_by_parent_nol`( T_OrderHeaderID ) +when T_TestIsParent = 'Y' then `fn_get_username_validation_by_parent_code`( T_TestSasCode,T_OrderHeaderID ) +else M_StaffName end +) + +,"

") as uservalidasi, + + T_OrderDetailResultFlag,Nat_SubgroupID ,Nat_SubSubGroupID, T_TestID, +if(T_TestIsParent = 'Y','',DATE_FORMAT(T_OrderPromiseDateTime, "%d-%m-%Y %T")) AS T_OrderPromiseDateTime, +Last_StatusPaymentIsLunas ,IFNULL(`fn_get_delivery_patient_type`(T_OrderHeaderID),0 )as pengiriman, + SUBSTRING(T_OrderHeaderLabNumber,4, 5) as noreg, T_OrderHeaderLabNumber as noregasli, +if(`fn_is_periksa_covid`(T_OrderHeaderID) = 'N' , '', + concat("http://localhost/one-api/chart/the_qr/v3/",T_OrderHeaderID,"/",DATE_FORMAT(now(), "%d-%m-%Y%T")) ) AS qrcode +,`fn_itf_isnumber`(T_OrderDetailResult) as kodehasil ,Nat_TestIsLongResult,Group_ResultName + +from t_orderheader +left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' +left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' +left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' +left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y' +left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y' +left join m_doctor p ON T_OrderHeaderSenderM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' + left join m_doctor pj ON T_OrderHeaderPjM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' +left join t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y' +left join t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' +left join nat_test oN T_TestNat_TestID = Nat_TestID aND Nat_TestIsActive = 'Y' +left join nat_unit on T_OrderDetailNat_UnitID = Nat_UnitID and Nat_UnitIsActive = 'Y' +left join t_ordersample on T_OrderSampleT_OrderHeaderID = T_OrderHeaderID and T_OrderSampleIsActive = 'Y' and T_OrderSampleT_SampleTypeID = T_TestT_SampleTypeID +left join t_sampletype on T_OrderSampleT_SampleTypeID = T_SampleTypeID and T_SampleTypeIsActive = 'Y' +left join t_bahan on T_SampleTypeT_BahanID = T_BahanID and T_BahanIsActive = 'Y' +left join nat_subgroup on Nat_TestNat_SubGroupID = Nat_SubgroupID anD Nat_SubGroupIsActive = 'Y' +left join nat_subsubgroup on Nat_TestNat_SubSubGroupID = Nat_SubSubGroupID and Nat_SubSubGroupIsActive = 'Y' +LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "LAB" +left join conf_systems on S_SystemsID > 0 +left join m_user on T_OrderDetailValUserID = M_UserID +left join m_staff on M_UserM_StaffID = M_StaffID +left join nat_methode on T_OrderDetailNat_MethodeID = Nat_MethodeID +left join t_orderdetailaddon on T_OrderDetailAddOnT_OrderDetailID = T_OrderDetailID +left join t_orderpromise on T_OrderDetailT_OrderPromiseID = T_OrderPromiseID +left join last_statuspayment on Last_StatusPaymentT_OrderHeaderID = T_OrderHeaderID +left join group_resultdetail on Group_ResultDetailT_TestID = T_OrderDetailT_TestID and Group_ResultDetailIsActive = 'Y' +left join group_result on Group_ResultDetailGroup_ResultID = Group_ResultID +left join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID + +where + T_OrderHeaderID = PID + aND T_TestIsPrintResult = 'Y' and Nat_TestNat_GroupID = '1' and Group_ResultID in ('1','13') +and +if(T_TestIsParent = 'Y','',(case + when (`fn_get_ordersample`(T_OrderDetailID) = 'N' and T_OrderDetailResult is null ) then 'Bahan Belum' +when T_OrderDetailVerification = 'X' then 'Hasil Menyusul' else + concat( +if(`fn_itf_isnumber`(T_OrderDetailResult) = '0', concat(T_OrderDetailResult," ",ifnull(T_OrderDetailResultFlag,''),"
", +ifnull(concat("",T_OrderDetailNote),"")),concat( `fn_rpt_format_number`(T_OrderDetailResult)," ",ifnull(T_OrderDetailResultFlag,''),"
",ifnull(concat("",T_OrderDetailNote),"")) +) +) +end) ) not like '%#%' + + group by T_TestID +order by Nat_SubgroupID ,Nat_SubSubGroupID ,T_TestSasCode asc $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_t_hasil2_auto` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_t_hasil2_auto`(IN `PID` int, IN `username` varchar(100)) +begin + +set @lastValidasiUserID = null; + +set @lastStaffName = null; + + + +select T_OrderDetailValUserID into @lastValidasiUserID + +from t_orderdetail + +join t_test on T_OrderDetailT_OrderHeaderID = PID + +and T_OrderDetailValUserID is not null + +and T_OrderDetailT_TestID = T_TestID + +and T_TestNat_GroupID = 1 + +order by T_OrderDetailValDate desc,T_OrderDetailID desc + +limit 0,1; + + + +select M_StaffName into @lastStaffName + +from m_staff + +join m_user on M_StaffID = M_UserM_StaffID + +and M_UserID = @lastValidasiUserID; + + + +select + +CHAR_LENGTH(T_TestSasCode) as code, + +if (M_AkreditasiPxID is null , + +case + +when CHAR_LENGTH(T_TestSasCode) = '8' then concat("   ",T_TestShortName) + +when CHAR_LENGTH(T_TestSasCode) = '10' then concat("      ",T_TestShortName) + +when CHAR_LENGTH(T_TestSasCode) = '12' then concat("          • " ,T_TestShortName) + +else concat("            ",T_TestShortName) end , + +concat( + + + +case + +when CHAR_LENGTH(T_TestSasCode) = '8' then concat("   ",T_TestShortName) + +when CHAR_LENGTH(T_TestSasCode) = '10' then concat("      ",T_TestShortName) + +when CHAR_LENGTH(T_TestSasCode) = '12' then concat("          • " ,T_TestShortName) + +else concat("            ",T_TestShortName) end + +, " ® " ) + +) as space, + +T_OrderHeaderID, + +DATE_FORMAT(T_OrderHeaderDate, "%d-%m-%Y %T") AS T_OrderHeaderDate, + + fn_lookup_external(T_OrderHeaderLabNumber,'L') as T_OrderHeaderLabNumber, + +CONCAT( fn_lookup_external(T_OrderHeaderLabNumber,'L')," / ",M_PatientNoReg) AS PID, + +fn_get_name( T_OrderHeaderM_PatientID ) AS M_PatientName, + +M_PatientNoReg , + + concat("http://localhost/one-api/v1/su/code128/?no=",T_OrderHeaderLabNumberExt) aS Barcode, + + + +M_TitleName, + +M_SexName, + +M_PatientSuffix, + +DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") AS M_PatientDOB, + +M_PatientHP , + +ifnull(M_PatientPhone ,'') as M_PatientPhone , + +M_PatientEmail, + +M_PatientIDNumber, + +M_PatientNote, + +(SELECT concat(M_PatientAddressDescription, ' ' , M_DistrictName, " " ,M_CityName) from m_patientaddress AS p + +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + + + WHERE M_PatientAddressM_PatientID = M_PatientID + + ORDER BY M_PatientAddressM_PatientID + + LIMIT 1) AS M_PatientAddressDescription , + +M_CompanyName, + +M_CompanyAddress, + +M_CompanyPhone , + +M_CompanyEmail , + +M_CompanyPICName as M_CompanyPIC ,M_MouName, + +concat( DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") ," / ",T_OrderHeaderM_PatientAge ) as T_OrderHeaderM_PatientAge, + +CONCAT(T_OrderHeaderM_PatientAge," / ",M_SexName) AS Umur, + +CONCAT(ifnull(p.M_DoctorPrefix,"")," ",p.M_DoctorName," ",ifnull(p.M_DoctorSufix,"")," ",ifnull(p.M_DoctorSufix2,"")," ",ifnull(p.M_DoctorSufix3,"")) AS M_DoctorName, + + + +CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix," ",pj.M_DoctorSufix2," ",pj.M_DoctorSufix3) AS DokterPJ , + +T_OrderHeaderDoctorNote, + +ifnull(T_OrderHeaderVerificationNote,'') as T_OrderHeaderVerificationNote , + +ifnull(T_OrderHeaderFoNote,'') as T_OrderHeaderFoNote , + +ifnull(T_OrderHeaderSamplingNote,'') as T_OrderHeaderSamplingNote, + + + +T_OrderHeaderAddOnValidationNote , + + `fn_get_note_extra_demo`(T_OrderHeaderID ,T_OrderDetailT_TestID,(case + +when fn_get_result_header_new(T_OrderHeaderID,T_OrderDetailT_TestSasCode) like 'reaktif%' then 'Reaktif' + +when fn_get_result_header_new(T_OrderHeaderID,T_OrderDetailT_TestSasCode) like 'non reaktif%' then 'Non Reaktif' + +when fn_get_result_header_new(T_OrderHeaderID,T_OrderDetailT_TestSasCode) like 'terdeteksi%' then 'Positif' + +when fn_get_result_header_new(T_OrderHeaderID,T_OrderDetailT_TestSasCode) like 'tidak terdeteksi%' then 'negatif' + + + +when fn_get_result_header_new(T_OrderHeaderID,T_OrderDetailT_TestSasCode) like 'positif%' then 'Positif' + +when fn_get_result_header_new(T_OrderHeaderID,T_OrderDetailT_TestSasCode) like 'negatif%' then 'negatif' + +else T_OrderDetailResult end)) as T_OrderHeaderResultNote , + +T_OrderHeaderSubTotal, + +T_OrderHeaderRounding , + +T_OrderHeaderTotal, + + ifnull(T_OrderDetailNormalValueNote,'') as T_OrderDetailNormalValueNote,if(Nat_MethodeNameInResult = "UNDEFINED METHODE" , "",Nat_MethodeNameInResult) as T_OrderdetailNat_MethodeName,S_SystemsCompanyCity ,S_SystemsCompanyCityFooter,DATE_FORMAT(now(), "%d-%m-%Y %T") as hariini, + + + +T_TestCode ,UPPER(Nat_SubSubGroupName) as Nat_SubSubGroupName, + +`fn_report_promise`(T_OrderHeaderID ) AS janjihasil , T_OrderDetailHasResult, + +if(T_TestIsParent = 'Y','',(case + + when (`fn_get_ordersample`(T_OrderDetailID) = 'N' and T_OrderDetailResult is null ) then 'Bahan Belum' + +when T_OrderDetailValidation = 'X' then 'Hasil Menyusul' else + + concat( + + + + + +if(`fn_itf_isnumber`(T_OrderDetailResult) = '0', concat(T_OrderDetailResult," ",ifnull(T_OrderDetailResultFlag,''),"
", + +ifnull(concat("",T_OrderDetailNote),"")),concat( `fn_rpt_format_number`(T_OrderDetailResult)," ",ifnull(T_OrderDetailResultFlag,''),"
",ifnull(concat("",T_OrderDetailNote),"")) + +) + + + +) + + + +end) ) + + + +as T_OrderDetailResult, + +T_OrderDetailNote,T_TestNormalValue,ifnull(T_OrderDetailNormalValueDescription,'') as T_OrderDetailNormalValueDescription, + + ifnull(T_OrderDetailNat_UnitName,'') as Nat_UnitName,T_BahanName,T_OrderSampleSamplingDate,T_OrderSampleSamplingTime, + +concat(DATE_FORMAT(T_OrderSampleSamplingDate, "%d-%m-%Y %T") ,",",T_OrderSampleSamplingTime ) as sampling,T_TestName as T_TestNameAA, + +UPPER(Nat_SubGroupName) as Nat_SubGroupName + +,S_SystemsCompanyName ,S_SystemsCompanyFax, + +concat(S_SystemsCompanyAddress," ",S_SystemsCompanyCity," "," Telp. ", S_SystemsCompanyPhone ) as alamatcabang, + +S_SystemsEmailAddress,M_No_FormRev,S_SystemsCompanyCity, + +concat("

", + +IF (@lastValidasiUserID = 1500 ,CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix," ",pj.M_DoctorSufix2," ",pj.M_DoctorSufix3) , + +( + +case + +when @lastStaffName is not null then @lastStaffName + +when (T_OrderDetailValUserID = '0' or T_TestIsParent = 'Y' ) then `fn_get_username_validation_by_parent_nol`( T_OrderHeaderID ) + +when T_TestIsParent = 'Y' then `fn_get_username_validation_by_parent_code`( T_TestSasCode,T_OrderHeaderID ) + +else M_StaffName end + +)) + + + +,"

") as uservalidasi, + + + + T_OrderDetailResultFlag,Nat_SubgroupID ,Nat_SubSubGroupID, T_TestID, + +if(T_TestIsParent = 'Y','',DATE_FORMAT(T_OrderPromiseDateTime, "%d-%m-%Y %T")) AS T_OrderPromiseDateTime, + +Last_StatusPaymentIsLunas ,IFNULL(`fn_get_delivery_patient_type`(T_OrderHeaderID),0 )as pengiriman, + + SUBSTRING(T_OrderHeaderLabNumber,4, 5) as noreg, T_OrderHeaderLabNumber as noregasli, + +if(`fn_is_periksa_covid`(T_OrderHeaderID) = 'N' , '', + + concat("http://localhost/one-api/chart/the_qr/v3/",T_OrderHeaderID,"/",DATE_FORMAT(now(), "%d-%m-%Y%T")) ) AS qrcode + +,`fn_itf_isnumber`(T_OrderDetailResult) as kodehasil ,Nat_TestIsLongResult,Group_ResultName + + + +from t_orderheader + +left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' + +left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' + +left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' + +left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y' + +left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y' + +left join m_doctor p ON T_OrderHeaderSenderM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' + + left join m_doctor pj ON T_OrderHeaderPjM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' + +left join t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y' + +left join t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' + +left join nat_test oN T_TestNat_TestID = Nat_TestID aND Nat_TestIsActive = 'Y' + +left join nat_unit on T_OrderDetailNat_UnitID = Nat_UnitID and Nat_UnitIsActive = 'Y' + +left join t_ordersample on T_OrderSampleT_OrderHeaderID = T_OrderHeaderID and T_OrderSampleIsActive = 'Y' and T_OrderSampleT_SampleTypeID = T_TestT_SampleTypeID + +left join t_sampletype on T_OrderSampleT_SampleTypeID = T_SampleTypeID and T_SampleTypeIsActive = 'Y' + +left join t_bahan on T_SampleTypeT_BahanID = T_BahanID and T_BahanIsActive = 'Y' + +left join nat_subgroup on Nat_TestNat_SubGroupID = Nat_SubgroupID anD Nat_SubGroupIsActive = 'Y' + +left join nat_subsubgroup on Nat_TestNat_SubSubGroupID = Nat_SubSubGroupID and Nat_SubSubGroupIsActive = 'Y' + +LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "LAB" + +left join conf_systems on S_SystemsID > 0 + +left join m_user on T_OrderDetailValUserID = M_UserID + +left join m_staff on M_UserM_StaffID = M_StaffID + +left join nat_methode on T_OrderDetailNat_MethodeID = Nat_MethodeID + +left join t_orderdetailaddon on T_OrderDetailAddOnT_OrderDetailID = T_OrderDetailID + +left join t_orderpromise on T_OrderDetailT_OrderPromiseID = T_OrderPromiseID + +left join last_statuspayment on Last_StatusPaymentT_OrderHeaderID = T_OrderHeaderID + +left join group_resultdetail on Group_ResultDetailT_TestID = T_OrderDetailT_TestID and Group_ResultDetailIsActive = 'Y' + +left join group_result on Group_ResultDetailGroup_ResultID = Group_ResultID + +left join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID + +left join m_akreditasipx on T_TestNat_TestID = M_AkreditasiPxNat_TestID and M_AkreditasiPxIsActive = 'Y' + +where + + T_OrderHeaderID = PID + + aND T_TestIsPrintResult = 'Y' and Nat_TestNat_GroupID = '1' and Group_ResultID in ('1','13') + +and + +if(T_TestIsParent = 'Y','',(case + + when (`fn_get_ordersample`(T_OrderDetailID) = 'N' and T_OrderDetailResult is null ) then 'Bahan Belum' + +when T_OrderDetailValidation = 'X' then 'Hasil Menyusul' else + + concat( + +if(`fn_itf_isnumber`(T_OrderDetailResult) = '0', concat(T_OrderDetailResult," ",ifnull(T_OrderDetailResultFlag,''),"
", + +ifnull(concat("",T_OrderDetailNote),"")),concat( `fn_rpt_format_number`(T_OrderDetailResult)," ",ifnull(T_OrderDetailResultFlag,''),"
",ifnull(concat("",T_OrderDetailNote),"")) + +) + +) + +end) ) not like '%#%' + + + + group by T_TestID + +order by Nat_SubgroupID ,Nat_SubSubGroupID ,T_TestSasCode asc; + +end $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_t_hasil_email` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_t_hasil_email`(IN `PID` int, IN `username` varchar(100)) +select +CHAR_LENGTH(T_TestSasCode) as code, +case +when CHAR_LENGTH(T_TestSasCode) = '8' then concat("   ",T_TestShortName) +when CHAR_LENGTH(T_TestSasCode) = '10' then concat("      ",T_TestShortName) +when CHAR_LENGTH(T_TestSasCode) = '12' then concat("          • " ,T_TestShortName) +else concat("            ",T_TestShortName) end as space, +T_OrderHeaderID, +DATE_FORMAT(T_OrderHeaderDate, "%d-%m-%Y %T") AS T_OrderHeaderDate, + fn_lookup_external(T_OrderHeaderLabNumber,'L') as T_OrderHeaderLabNumber, +CONCAT( fn_lookup_external(T_OrderHeaderLabNumber,'L')," / ",M_PatientNoReg) AS PID, +CONCAT(M_TitleName," ",ifnull(M_PatientPrefix,'')," ",M_PatientName," ",ifnull(M_PatientSuffix,'')) AS M_PatientName, +M_PatientNoReg , + concat("http://localhost/one-api/v1/su/code128/?no=",T_OrderHeaderLabNumberExt) aS Barcode, + +M_TitleName, +M_SexName, +M_PatientSuffix, +DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") AS M_PatientDOB, +M_PatientHP , +M_PatientPhone , +M_PatientEmail, +M_PatientIDNumber, +M_PatientNote, +(SELECT concat(M_PatientAddressDescription, ' ' , M_DistrictName, " " ,M_CityName) from m_patientaddress AS p +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , +M_CompanyName, +M_CompanyAddress, +M_CompanyPhone , +M_CompanyEmail , +M_CompanyPIC ,M_MouName, +concat( DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") ," / ",T_OrderHeaderM_PatientAge ) as T_OrderHeaderM_PatientAge, +CONCAT(T_OrderHeaderM_PatientAge," / ",M_SexName) AS Umur, +CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2," ",p.M_DoctorSufix3) AS M_DoctorName, + +CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix," ",pj.M_DoctorSufix2," ",pj.M_DoctorSufix3) AS DokterPJ , +T_OrderHeaderDoctorNote, +T_OrderHeaderVerificationNote , +T_OrderHeaderFoNote , +T_OrderHeaderSamplingNote, + +T_OrderHeaderAddOnValidationNote , + `fn_get_note_extra_demo`(T_OrderHeaderID ,T_OrderDetailT_TestID,(case +when fn_get_result_header_new(T_OrderHeaderID,T_OrderDetailT_TestSasCode) like 'reaktif%' then 'Reaktif' +when fn_get_result_header_new(T_OrderHeaderID,T_OrderDetailT_TestSasCode) like 'non reaktif%' then 'Non Reaktif' +when fn_get_result_header_new(T_OrderHeaderID,T_OrderDetailT_TestSasCode) like 'terdeteksi%' then 'Positif' +when fn_get_result_header_new(T_OrderHeaderID,T_OrderDetailT_TestSasCode) like 'tidak terdeteksi%' then 'negatif' + +when fn_get_result_header_new(T_OrderHeaderID,T_OrderDetailT_TestSasCode) like 'positif%' then 'Positif' +when fn_get_result_header_new(T_OrderHeaderID,T_OrderDetailT_TestSasCode) like 'negatif%' then 'negatif' +else T_OrderDetailResult end)) as T_OrderHeaderResultNote , + +T_OrderHeaderSubTotal, +T_OrderHeaderRounding , +T_OrderHeaderTotal, + T_OrderDetailNormalValueNote,if(Nat_MethodeNameInResult = "UNDEFINED METHODE" , "",Nat_MethodeNameInResult) as T_OrderdetailNat_MethodeName,S_SystemsCompanyCity ,S_SystemsCompanyCityFooter,DATE_FORMAT(now(), "%d-%m-%Y %T") as hariini, + +T_TestCode ,UPPER(Nat_SubSubGroupName) as Nat_SubSubGroupName, +`fn_report_promise`(T_OrderHeaderID ) AS janjihasil , +T_OrderDetailHasResult, + +if(T_TestIsParent = 'Y','',(case + when (`fn_get_ordersample`(T_OrderDetailID) = 'N' and T_OrderDetailResult is null ) then 'Bahan Belum' +when T_OrderDetailVerification = 'X' then 'Hasil Menyusul' else + concat( + + +if(`fn_itf_isnumber`(T_OrderDetailResult) = '0', concat(T_OrderDetailResult," ",ifnull(T_OrderDetailResultFlag,''),"
", +ifnull(concat("",T_OrderDetailNote),"")),concat( `fn_rpt_format_number`(T_OrderDetailResult)," ",ifnull(T_OrderDetailResultFlag,''),"
",ifnull(concat("",T_OrderDetailNote),"")) +) + +) + +end) ) + +as T_OrderDetailResult, + +T_OrderDetailNote,T_TestNormalValue,ifnull(T_OrderDetailNormalValueDescription,'') as T_OrderDetailNormalValueDescription,Nat_UnitName,T_BahanName,T_OrderSampleSamplingDate,T_OrderSampleSamplingTime, +concat(DATE_FORMAT(T_OrderSampleSamplingDate, "%d-%m-%Y %T") ,",",T_OrderSampleSamplingTime ) as sampling,T_TestName as T_TestNameAA, +UPPER(Nat_SubGroupName) as Nat_SubGroupName +,S_SystemsCompanyName ,S_SystemsCompanyFax, +concat(S_SystemsCompanyAddress," ",S_SystemsCompanyCity," "," Telp. ", S_SystemsCompanyPhone ) as alamatcabang, +S_SystemsEmailAddress,M_No_FormRev,S_SystemsCompanyCity, +concat("

", +( +case +when (T_OrderDetailValUserID = '0' or T_TestIsParent = 'Y' ) then `fn_get_username_validation_by_parent_nol`( T_OrderHeaderID ) +when T_TestIsParent = 'Y' then `fn_get_username_validation_by_parent_code`( T_TestSasCode,T_OrderHeaderID ) +else M_StaffName end +) + +,"

") as uservalidasi, + + T_OrderDetailResultFlag,Nat_SubgroupID ,Nat_SubSubGroupID, T_TestID, +if(T_TestIsParent = 'Y','',DATE_FORMAT(T_OrderPromiseDateTime, "%d-%m-%Y %T")) AS T_OrderPromiseDateTime, +Last_StatusPaymentIsLunas ,IFNULL(`fn_get_delivery_patient_type`(T_OrderHeaderID),0 )as pengiriman, + SUBSTRING(T_OrderHeaderLabNumber,4, 5) as noreg, T_OrderHeaderLabNumber as noregasli, +replace(concat("http://localhost/charts/qr.php?d=", +case +when (T_OrderDetailValUserID = '0' or T_TestIsParent = 'Y' ) then `fn_get_username_validation_by_parent_nol`( T_OrderHeaderID ) +when T_TestIsParent = 'Y' then `fn_get_username_validation_by_parent_code`( T_TestSasCode,T_OrderHeaderID ) +else M_StaffName end + +,"^",DATE_FORMAT(now(), "%d-%m-%Y %T"))," ","+") AS qrcode +,`fn_itf_isnumber`(T_OrderDetailResult) as kodehasil ,Nat_TestIsLongResult, + +if(`fn_is_periksa_covid`(T_OrderHeaderID) = 'N' , '', + concat("http://localhost/one-api/chart/the_qr/v3/",T_OrderHeaderID,"/",DATE_FORMAT(now(), "%d-%m-%Y%T")) )AS qrcodecov + +from t_orderheader +left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' +left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' +left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' +left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y' +left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y' +left join m_doctor p ON T_OrderHeaderSenderM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' + left join m_doctor pj ON T_OrderHeaderPjM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' +left join t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y' +left join t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' +left join nat_test oN T_TestNat_TestID = Nat_TestID aND Nat_TestIsActive = 'Y' +left join nat_unit on T_OrderDetailNat_UnitID = Nat_UnitID and Nat_UnitIsActive = 'Y' +left join t_ordersample on T_OrderSampleT_OrderHeaderID = T_OrderHeaderID and T_OrderSampleIsActive = 'Y' and T_OrderSampleT_SampleTypeID = T_TestT_SampleTypeID +left join t_sampletype on T_OrderSampleT_SampleTypeID = T_SampleTypeID and T_SampleTypeIsActive = 'Y' +left join t_bahan on T_SampleTypeT_BahanID = T_BahanID and T_BahanIsActive = 'Y' +left join nat_subgroup on Nat_TestNat_SubGroupID = Nat_SubgroupID anD Nat_SubGroupIsActive = 'Y' +left join nat_subsubgroup on Nat_TestNat_SubSubGroupID = Nat_SubSubGroupID and Nat_SubSubGroupIsActive = 'Y' +LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "LAB" +left join conf_systems on S_SystemsID > 0 +left join m_user on T_OrderDetailValUserID = M_UserID +left join m_staff on M_UserM_StaffID = M_StaffID +left join nat_methode on T_OrderDetailNat_MethodeID = Nat_MethodeID +left join t_orderdetailaddon on T_OrderDetailAddOnT_OrderDetailID = T_OrderDetailID +left join t_orderpromise on T_OrderDetailT_OrderPromiseID = T_OrderPromiseID +left join last_statuspayment on Last_StatusPaymentT_OrderHeaderID = T_OrderHeaderID +left join group_resultdetail on Group_ResultDetailT_TestID = T_OrderDetailT_TestID and Group_ResultDetailIsActive = 'Y' +left join group_result on Group_ResultDetailGroup_ResultID = Group_ResultID +left join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID + +where + T_OrderHeaderID = PID + aND T_TestIsPrintResult = 'Y' and Nat_TestNat_GroupID = '1' and Group_ResultID in ('1','13') + +and +if(T_TestIsParent = 'Y','',(case +when T_OrderSampleReceive= 'N' then 'Bahan Belum' +when T_OrderDetailVerification = 'X' then 'Hasil Menyusul' else + concat( +if(`fn_itf_isnumber`(T_OrderDetailResult) = '0', concat(T_OrderDetailResult," ",ifnull(T_OrderDetailResultFlag,''),"
", +ifnull(concat("",T_OrderDetailNote),"")),concat( `fn_rpt_format_number`(T_OrderDetailResult)," ",ifnull(T_OrderDetailResultFlag,''),"
",ifnull(concat("",T_OrderDetailNote),"")) +) +) +end) ) not like '%#%' + group by T_TestID +order by Nat_SubgroupID ,Nat_SubSubGroupID ,T_TestSasCode asc $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_t_hasil_email_auto` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_t_hasil_email_auto`(IN `PID` int, IN `username` varchar(100)) +begin +set @lastValidasiUserID = null; +set @lastStaffName = null; + +select T_OrderDetailValUserID into @lastValidasiUserID +from t_orderdetail +join t_test on T_OrderDetailT_OrderHeaderID = PID +and T_OrderDetailValUserID is not null +and T_OrderDetailT_TestID = T_TestID +and T_TestNat_GroupID = 1 +order by T_OrderDetailValDate desc,T_OrderDetailID desc +limit 0,1; + +select M_StaffName into @lastStaffName +from m_staff +join m_user on M_StaffID = M_UserM_StaffID +and M_UserID = @lastValidasiUserID; + + +select +CHAR_LENGTH(T_TestSasCode) as code, +if (M_AkreditasiPxID is null , +case +when CHAR_LENGTH(T_TestSasCode) = '8' then concat("   ",T_TestShortName) +when CHAR_LENGTH(T_TestSasCode) = '10' then concat("      ",T_TestShortName) +when CHAR_LENGTH(T_TestSasCode) = '12' then concat("          • " ,T_TestShortName) +else concat("            ",T_TestShortName) end , +concat( + +case +when CHAR_LENGTH(T_TestSasCode) = '8' then concat("   ",T_TestShortName) +when CHAR_LENGTH(T_TestSasCode) = '10' then concat("      ",T_TestShortName) +when CHAR_LENGTH(T_TestSasCode) = '12' then concat("          • " ,T_TestShortName) +else concat("            ",T_TestShortName) end +, " ® " ) +) as space, +T_OrderHeaderID, +DATE_FORMAT(T_OrderHeaderDate, "%d-%m-%Y %T") AS T_OrderHeaderDate, + fn_lookup_external(T_OrderHeaderLabNumber,'L') as T_OrderHeaderLabNumber, +CONCAT( fn_lookup_external(T_OrderHeaderLabNumber,'L')," / ",M_PatientNoReg) AS PID, +CONCAT(M_TitleName," ",ifnull(M_PatientPrefix,'')," ",M_PatientName," ",ifnull(M_PatientSuffix,'')) AS M_PatientName, +M_PatientNoReg , + concat("http://localhost/one-api/v1/su/code128/?no=",T_OrderHeaderLabNumberExt) aS Barcode, + +M_TitleName, +M_SexName, +M_PatientSuffix, +DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") AS M_PatientDOB, +M_PatientHP , +M_PatientPhone , +M_PatientEmail, +M_PatientIDNumber, +M_PatientNote, +(SELECT concat(M_PatientAddressDescription, ' ' , M_DistrictName, " " ,M_CityName) from m_patientaddress AS p +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , +M_CompanyName, +M_CompanyAddress, +M_CompanyPhone , +M_CompanyEmail , +M_CompanyPIC ,M_MouName, +concat( DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") ," / ",T_OrderHeaderM_PatientAge ) as T_OrderHeaderM_PatientAge, +CONCAT(T_OrderHeaderM_PatientAge," / ",M_SexName) AS Umur, +CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2," ",p.M_DoctorSufix3) AS M_DoctorName, + +CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix," ",pj.M_DoctorSufix2," ",pj.M_DoctorSufix3) AS DokterPJ , +T_OrderHeaderDoctorNote, +T_OrderHeaderVerificationNote , +T_OrderHeaderFoNote , +T_OrderHeaderSamplingNote, + +T_OrderHeaderAddOnValidationNote , + `fn_get_note_extra_demo`(T_OrderHeaderID ,T_OrderDetailT_TestID,(case +when fn_get_result_header_new(T_OrderHeaderID,T_OrderDetailT_TestSasCode) like 'reaktif%' then 'Reaktif' +when fn_get_result_header_new(T_OrderHeaderID,T_OrderDetailT_TestSasCode) like 'non reaktif%' then 'Non Reaktif' +when fn_get_result_header_new(T_OrderHeaderID,T_OrderDetailT_TestSasCode) like 'terdeteksi%' then 'Positif' +when fn_get_result_header_new(T_OrderHeaderID,T_OrderDetailT_TestSasCode) like 'tidak terdeteksi%' then 'negatif' + +when fn_get_result_header_new(T_OrderHeaderID,T_OrderDetailT_TestSasCode) like 'positif%' then 'Positif' +when fn_get_result_header_new(T_OrderHeaderID,T_OrderDetailT_TestSasCode) like 'negatif%' then 'negatif' +else T_OrderDetailResult end)) as T_OrderHeaderResultNote , + +T_OrderHeaderSubTotal, +T_OrderHeaderRounding , +T_OrderHeaderTotal, + T_OrderDetailNormalValueNote,if(Nat_MethodeNameInResult = "UNDEFINED METHODE" , "",Nat_MethodeNameInResult) as T_OrderdetailNat_MethodeName,S_SystemsCompanyCity ,S_SystemsCompanyCityFooter,DATE_FORMAT(now(), "%d-%m-%Y %T") as hariini, + +T_TestCode ,UPPER(Nat_SubSubGroupName) as Nat_SubSubGroupName, +`fn_report_promise`(T_OrderHeaderID ) AS janjihasil , +T_OrderDetailHasResult, + +if(T_TestIsParent = 'Y','',(case + when (`fn_get_ordersample`(T_OrderDetailID) = 'N' and T_OrderDetailResult is null ) then 'Bahan Belum' +when T_OrderDetailValidation = 'X' then 'Hasil Menyusul' else + concat( + + +if(`fn_itf_isnumber`(T_OrderDetailResult) = '0', concat(T_OrderDetailResult," ",ifnull(T_OrderDetailResultFlag,''),"
", +ifnull(concat("",T_OrderDetailNote),"")),concat( `fn_rpt_format_number`(T_OrderDetailResult)," ",ifnull(T_OrderDetailResultFlag,''),"
",ifnull(concat("",T_OrderDetailNote),"")) +) + +) + +end) ) + +as T_OrderDetailResult, + +T_OrderDetailNote,T_TestNormalValue,ifnull(T_OrderDetailNormalValueDescription,'') as T_OrderDetailNormalValueDescription,Nat_UnitName,T_BahanName,T_OrderSampleSamplingDate,T_OrderSampleSamplingTime, +concat(DATE_FORMAT(T_OrderSampleSamplingDate, "%d-%m-%Y %T") ,",",T_OrderSampleSamplingTime ) as sampling,T_TestName as T_TestNameAA, +UPPER(Nat_SubGroupName) as Nat_SubGroupName +,S_SystemsCompanyName ,S_SystemsCompanyFax, +concat(S_SystemsCompanyAddress," ",S_SystemsCompanyCity," "," Telp. ", S_SystemsCompanyPhone ) as alamatcabang, +S_SystemsEmailAddress,M_No_FormRev,S_SystemsCompanyCity, +concat("

", +IF (@lastValidasiUserID = 1500 ,CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix," ",pj.M_DoctorSufix2," ",pj.M_DoctorSufix3) , +( +case +when @lastStaffName is not null then @lastStaffName +when (T_OrderDetailValUserID = '0' or T_TestIsParent = 'Y' ) then `fn_get_username_validation_by_parent_nol`( T_OrderHeaderID ) +when T_TestIsParent = 'Y' then `fn_get_username_validation_by_parent_code`( T_TestSasCode,T_OrderHeaderID ) +else M_StaffName end +)) + +,"

") as uservalidasi, + + T_OrderDetailResultFlag,Nat_SubgroupID ,Nat_SubSubGroupID, T_TestID, +if(T_TestIsParent = 'Y','',DATE_FORMAT(T_OrderPromiseDateTime, "%d-%m-%Y %T")) AS T_OrderPromiseDateTime, +Last_StatusPaymentIsLunas ,IFNULL(`fn_get_delivery_patient_type`(T_OrderHeaderID),0 )as pengiriman, + SUBSTRING(T_OrderHeaderLabNumber,4, 5) as noreg, T_OrderHeaderLabNumber as noregasli, +replace(concat("http://localhost/charts/qr.php?d=", +case +when (T_OrderDetailValUserID = '0' or T_TestIsParent = 'Y' ) then `fn_get_username_validation_by_parent_nol`( T_OrderHeaderID ) +when T_TestIsParent = 'Y' then `fn_get_username_validation_by_parent_code`( T_TestSasCode,T_OrderHeaderID ) +else M_StaffName end + +,"^",DATE_FORMAT(now(), "%d-%m-%Y %T"))," ","+") AS qrcode +,`fn_itf_isnumber`(T_OrderDetailResult) as kodehasil ,Nat_TestIsLongResult, + +if(`fn_is_periksa_covid`(T_OrderHeaderID) = 'N' , '', + concat("http://localhost/one-api/chart/the_qr/v3/",T_OrderHeaderID,"/",DATE_FORMAT(now(), "%d-%m-%Y%T")) )AS qrcodecov + +from t_orderheader +left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' +left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' +left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' +left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y' +left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y' +left join m_doctor p ON T_OrderHeaderSenderM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' + left join m_doctor pj ON T_OrderHeaderPjM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' +left join t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y' +left join t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' +left join nat_test oN T_TestNat_TestID = Nat_TestID aND Nat_TestIsActive = 'Y' +left join nat_unit on T_OrderDetailNat_UnitID = Nat_UnitID and Nat_UnitIsActive = 'Y' +left join t_ordersample on T_OrderSampleT_OrderHeaderID = T_OrderHeaderID and T_OrderSampleIsActive = 'Y' and T_OrderSampleT_SampleTypeID = T_TestT_SampleTypeID +left join t_sampletype on T_OrderSampleT_SampleTypeID = T_SampleTypeID and T_SampleTypeIsActive = 'Y' +left join t_bahan on T_SampleTypeT_BahanID = T_BahanID and T_BahanIsActive = 'Y' +left join nat_subgroup on Nat_TestNat_SubGroupID = Nat_SubgroupID anD Nat_SubGroupIsActive = 'Y' +left join nat_subsubgroup on Nat_TestNat_SubSubGroupID = Nat_SubSubGroupID and Nat_SubSubGroupIsActive = 'Y' +LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "LAB" +left join conf_systems on S_SystemsID > 0 +left join m_user on T_OrderDetailValUserID = M_UserID +left join m_staff on M_UserM_StaffID = M_StaffID +left join nat_methode on T_OrderDetailNat_MethodeID = Nat_MethodeID +left join t_orderdetailaddon on T_OrderDetailAddOnT_OrderDetailID = T_OrderDetailID +left join t_orderpromise on T_OrderDetailT_OrderPromiseID = T_OrderPromiseID +left join last_statuspayment on Last_StatusPaymentT_OrderHeaderID = T_OrderHeaderID +left join group_resultdetail on Group_ResultDetailT_TestID = T_OrderDetailT_TestID and Group_ResultDetailIsActive = 'Y' +left join group_result on Group_ResultDetailGroup_ResultID = Group_ResultID +left join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID +left join m_akreditasipx on T_TestNat_TestID = M_AkreditasiPxNat_TestID and M_AkreditasiPxIsActive = 'Y' +where + T_OrderHeaderID = PID + aND T_TestIsPrintResult = 'Y' and Nat_TestNat_GroupID = '1' and Group_ResultID in ('1','13') + +and +if(T_TestIsParent = 'Y','',(case +when T_OrderSampleReceive= 'N' then 'Bahan Belum' +when T_OrderDetailValidation = 'X' then 'Hasil Menyusul' else + concat( +if(`fn_itf_isnumber`(T_OrderDetailResult) = '0', concat(T_OrderDetailResult," ",ifnull(T_OrderDetailResultFlag,''),"
", +ifnull(concat("",T_OrderDetailNote),"")),concat( `fn_rpt_format_number`(T_OrderDetailResult)," ",ifnull(T_OrderDetailResultFlag,''),"
",ifnull(concat("",T_OrderDetailNote),"")) +) +) +end) ) not like '%#%' + group by T_TestID +order by Nat_SubgroupID ,Nat_SubSubGroupID ,T_TestSasCode asc; +end $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_t_hasil_eng` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_t_hasil_eng`(IN `PID` int, IN `username` varchar(100)) +select T_OrderDetailID,T_OrderDetailLangT_OrderDetailID , +CHAR_LENGTH(T_TestSasCode) as code, +case +when CHAR_LENGTH(T_TestSasCode) = '8' then concat("   ",T_OrderDetailLangNat_TestLangName) +when CHAR_LENGTH(T_TestSasCode) = '10' then concat("      ",T_OrderDetailLangNat_TestLangName) +when CHAR_LENGTH(T_TestSasCode) = '12' then concat("          • " ,T_OrderDetailLangNat_TestLangName) +else concat("            ",T_OrderDetailLangNat_TestLangName) end as space, +T_OrderHeaderID, +DATE_FORMAT(T_OrderHeaderDate, "%d-%m-%Y %T") AS T_OrderHeaderDate, + fn_lookup_external(T_OrderHeaderLabNumber,'L') as T_OrderHeaderLabNumber, +CONCAT( fn_lookup_external(T_OrderHeaderLabNumber,'L')," / ",M_PatientNoReg) AS PID, +CONCAT(M_TitleLangName ," ",ifnull(M_PatientPrefix,'')," ",M_PatientName," ",ifnull(M_PatientSuffix,'')) AS M_PatientName, +M_PatientNoReg , + concat("http://localhost/one-api/v1/su/code128/?no=",T_OrderHeaderLabNumberExt) aS Barcode, + +M_TitleLangName as M_TitleName, +M_SexNameLang as M_SexName, +M_PatientSuffix, +DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") AS M_PatientDOB, +M_PatientHP , +M_PatientPhone , +M_PatientEmail, +M_PatientIDNumber, +M_PatientNote, +(SELECT concat(M_PatientAddressDescription, ' ' , M_DistrictName, " " ,M_CityName) from m_patientaddress AS p +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , +(case +when M_CompanyName = 'Pasien klinisi' then 'CLINICIAN REFERENCE' +when M_CompanyName = 'Pasien mandiri' then 'PERSONAL REQUEST' +else M_CompanyName end ) +as M_CompanyName, +M_CompanyAddress, +M_CompanyPhone , +M_CompanyEmail , +M_CompanyPIC ,M_MouName, +concat( DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") ," / ",REPLACE(REPLACE(REPLACE(T_OrderHeaderM_PatientAge, 'tahun', 'year') , 'bulan', 'month') , 'hari', 'days') ) as T_OrderHeaderM_PatientAge, +CONCAT(T_OrderHeaderM_PatientAge," / ",M_SexName) AS Umur, +CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2," ",p.M_DoctorSufix3) AS M_DoctorName, + +CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix," ",pj.M_DoctorSufix2," ",pj.M_DoctorSufix3) AS DokterPJ , +T_OrderHeaderDoctorNote, +T_OrderHeaderVerificationNote , +T_OrderHeaderFoNote , +T_OrderHeaderSamplingNote, +T_OrderHeaderLangResultNote as T_OrderHeaderResultNote, +T_OrderHeaderSubTotal, +T_OrderHeaderRounding , +T_OrderHeaderTotal, +T_OrderDetailLangNat_NormalValueLangNote as T_OrderDetailNormalValueNote,if(Nat_MethodeNameInResult = "UNDEFINED METHODE" , "",Nat_MethodeNameInResult) as T_OrderdetailNat_MethodeName,S_SystemsCompanyCity ,S_SystemsCompanyCityFooter,DATE_FORMAT(now(), "%d-%m-%Y %T") as hariini, + +T_TestCode ,UPPER(Nat_SubSubGroupLangName) as Nat_SubSubGroupName, +`fn_report_promise`(T_OrderHeaderID ) AS janjihasil , T_OrderDetailHasResult, + +if(T_TestIsParent = 'Y','',(case + when (`fn_get_ordersample`(T_OrderDetailID) = 'N' and T_OrderDetailResult is null ) then 'Sample will be completed' +when T_OrderDetailVerification = 'X' then concat( 'Will be completed' , " " , date_format(T_OrderPromiseDateTime, "%d-%m-%Y") ) else + concat( + + +concat(ifnull(if(T_OrderDetailLangResult = 'Terlampir','Attachment',T_OrderDetailLangResult ),''),"", ifnull(T_OrderDetailLangFlag ,'')) + +) + +end) ) + + as T_OrderDetailResult, + + +T_OrderDetailNote,T_TestNormalValue,ifnull(if (T_OrderDetailLangIsSI = 'Y' ,Nat_NormalValueLangDescriptionSI,Nat_NormalValueLangDescription),'') as T_OrderDetailNormalValueDescription,T_OrderDetailLangNat_UnitLangName as Nat_UnitName,T_BahanName,T_OrderSampleSamplingDate,T_OrderSampleSamplingTime, +concat(DATE_FORMAT(T_OrderSampleSamplingDate, "%d-%m-%Y %T") ,",",T_OrderSampleSamplingTime ) as sampling,T_OrderDetailLangNat_TestLangName as T_TestNameAA, +UPPER(Nat_SubGroupLangName) as Nat_SubGroupName +,S_SystemsCompanyName ,S_SystemsCompanyFax, +concat(S_SystemsCompanyAddress," ",S_SystemsCompanyCity," "," Telp. ", S_SystemsCompanyPhone ) as alamatcabang, +S_SystemsEmailAddress,M_No_FormRev,S_SystemsCompanyCity, + +concat("

", +( +case +when (T_OrderDetailValUserID = '0' or T_TestIsParent = 'Y' ) then `fn_get_username_validation_by_parent_nol`( T_OrderHeaderID ) +when T_TestIsParent = 'Y' then `fn_get_username_validation_by_parent_code`( T_TestSasCode,T_OrderHeaderID ) +else M_StaffName end +) + +,"

") as uservalidasi, +T_OrderDetailLangFlag as T_OrderDetailResultFlag,Nat_SubgroupID ,Nat_SubSubGroupID, T_TestID, +if(T_TestIsParent = 'Y','',DATE_FORMAT(T_OrderPromiseDateTime, "%d-%m-%Y %T")) AS T_OrderPromiseDateTime, +Last_StatusPaymentIsLunas ,IFNULL(`fn_get_delivery_patient_type`(T_OrderHeaderID),0 )as pengiriman, + SUBSTRING(T_OrderHeaderLabNumber,4, 5) as noreg, T_OrderHeaderLabNumber as noregasli, +replace(concat("http://localhost/charts/qr.php?d=", +case +when (T_OrderDetailValUserID = '0' or T_TestIsParent = 'Y' ) then `fn_get_username_validation_by_parent_nol`( T_OrderHeaderID ) +when T_TestIsParent = 'Y' then `fn_get_username_validation_by_parent_code`( T_TestSasCode,T_OrderHeaderID ) +else M_StaffName end + +,"^",DATE_FORMAT(now(), "%d-%m-%Y %T"))," ","+") AS qrcode +,`fn_itf_isnumber`(T_OrderDetailResult) as kodehasil ,Nat_TestIsLongResult,Group_ResultName, + +if(`fn_is_periksa_covid`(T_OrderHeaderID) = 'N' , '', + concat("http://localhost/one-api/chart/the_qr/v3/",T_OrderHeaderID,"/",DATE_FORMAT(now(), "%d-%m-%Y%T")) )AS qrcodecov + + + +from t_orderheader +left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' +left join t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y' + join t_orderdetaillang on T_OrderDetailID = T_OrderDetailLangT_OrderDetailID and T_OrderDetailLangT_OrderHeaderID = T_OrderHeaderID +left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' +left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' +left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y' +left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y' +left join m_doctor p ON T_OrderHeaderSenderM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' + left join m_doctor pj ON T_OrderHeaderPjM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' +left join t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' +left join nat_test oN T_TestNat_TestID = Nat_TestID aND Nat_TestIsActive = 'Y' +left join nat_testlang on T_OrderDetailLangNat_TestLangID = Nat_TestLangID +left join nat_unitlang on T_OrderDetailLangNat_UnitLangID = Nat_UnitLangID and Nat_UnitLangIsActive = 'Y' +left join t_ordersample on T_OrderSampleT_OrderHeaderID = T_OrderHeaderID and T_OrderSampleIsActive = 'Y' and T_OrderSampleT_SampleTypeID = T_TestT_SampleTypeID +left join t_sampletype on T_OrderSampleT_SampleTypeID = T_SampleTypeID and T_SampleTypeIsActive = 'Y' +left join t_bahan on T_SampleTypeT_BahanID = T_BahanID and T_BahanIsActive = 'Y' +left join nat_subgroup on Nat_TestNat_SubGroupID = Nat_SubgroupID anD Nat_SubGroupIsActive = 'Y' +left join nat_subsubgroup on Nat_TestNat_SubSubGroupID = Nat_SubSubGroupID and Nat_SubSubGroupIsActive = 'Y' +LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "LAB" +left join conf_systems on S_SystemsID > 0 +left join m_user on T_OrderDetailValUserID = M_UserID +left join m_staff on M_UserM_StaffID = M_StaffID +left join nat_methode on T_OrderDetailNat_MethodeID = Nat_MethodeID +left join t_orderdetailaddon on T_OrderDetailAddOnT_OrderDetailID = T_OrderDetailID +left join t_orderpromise on T_OrderDetailT_OrderPromiseID = T_OrderPromiseID +left join last_statuspayment on Last_StatusPaymentT_OrderHeaderID = T_OrderHeaderID +left join group_resultdetail on Group_ResultDetailT_TestID = T_OrderDetailT_TestID and Group_ResultDetailIsActive = 'Y' +left join group_result on Group_ResultDetailGroup_ResultID = Group_ResultID +left join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID +left join nat_normalvaluelang on T_OrderDetailLangNat_NormalValueLangID = Nat_NormalValueLangID +left join t_orderheaderlang on T_OrderHeaderLangT_OrderHeaderID = T_OrderHeaderID + +where + T_OrderHeaderID = PID + aND T_TestIsPrintResult = 'Y' and Nat_TestNat_GroupID = '1' and Group_ResultID in ('1','13') + +and +if(T_TestIsParent = 'Y','',(case +when T_OrderSampleReceive= 'N' then 'Bahan Belum' +when T_OrderDetailVerification = 'X' then 'Hasil Menyusul' else + concat( +if(`fn_itf_isnumber`(T_OrderDetailResult) = '0', concat(T_OrderDetailResult," ",ifnull(T_OrderDetailResultFlag,''),"
", +ifnull(concat("",T_OrderDetailNote),"")),concat( `fn_rpt_format_number`(T_OrderDetailResult)," ",ifnull(T_OrderDetailResultFlag,''),"
",ifnull(concat("",T_OrderDetailNote),"")) +) +) +end) ) not like '%#%' + group by T_TestID +order by Nat_SubgroupID ,Nat_SubSubGroupID ,T_TestSasCode asc $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_t_hasil_eng_auto` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_t_hasil_eng_auto`(IN `PID` int, IN `username` varchar(100)) +begin +set @lastValidasiUserID = null; +set @lastStaffName = null; + +select T_OrderDetailValUserID into @lastValidasiUserID +from t_orderdetail +join t_test on T_OrderDetailT_OrderHeaderID = PID +and T_OrderDetailValUserID is not null +and T_OrderDetailT_TestID = T_TestID +and T_TestNat_GroupID = 1 +order by T_OrderDetailValDate desc,T_OrderDetailID desc +limit 0,1; + +select M_StaffName into @lastStaffName +from m_staff +join m_user on M_StaffID = M_UserM_StaffID +and M_UserID = @lastValidasiUserID; + + + +select T_OrderDetailID,T_OrderDetailLangT_OrderDetailID , +CHAR_LENGTH(T_TestSasCode) as code, + +if (M_AkreditasiPxID is null , +case +when CHAR_LENGTH(T_TestSasCode) = '8' then concat("   ",T_OrderDetailLangNat_TestLangName) +when CHAR_LENGTH(T_TestSasCode) = '10' then concat("      ",T_OrderDetailLangNat_TestLangName) +when CHAR_LENGTH(T_TestSasCode) = '12' then concat("          • " ,T_OrderDetailLangNat_TestLangName) +else concat("            ",T_OrderDetailLangNat_TestLangName) end , +concat( + +case +when CHAR_LENGTH(T_TestSasCode) = '8' then concat("   ",T_OrderDetailLangNat_TestLangName) +when CHAR_LENGTH(T_TestSasCode) = '10' then concat("      ",T_OrderDetailLangNat_TestLangName) +when CHAR_LENGTH(T_TestSasCode) = '12' then concat("          • " ,T_OrderDetailLangNat_TestLangName) +else concat("            ",T_OrderDetailLangNat_TestLangName) end +, " ® " ) +) as space, + +T_OrderHeaderID, +DATE_FORMAT(T_OrderHeaderDate, "%d-%m-%Y %T") AS T_OrderHeaderDate, + fn_lookup_external(T_OrderHeaderLabNumber,'L') as T_OrderHeaderLabNumber, +CONCAT( fn_lookup_external(T_OrderHeaderLabNumber,'L')," / ",M_PatientNoReg) AS PID, +CONCAT(M_TitleLangName ," ",ifnull(M_PatientPrefix,'')," ",M_PatientName," ",ifnull(M_PatientSuffix,'')) AS M_PatientName, +M_PatientNoReg , + concat("http://localhost/one-api/v1/su/code128/?no=",T_OrderHeaderLabNumberExt) aS Barcode, + +M_TitleLangName as M_TitleName, +M_SexNameLang as M_SexName, +M_PatientSuffix, +DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") AS M_PatientDOB, +M_PatientHP , +M_PatientPhone , +M_PatientEmail, +M_PatientIDNumber, +M_PatientNote, +(SELECT concat(M_PatientAddressDescription, ' ' , M_DistrictName, " " ,M_CityName) from m_patientaddress AS p +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , +(case +when M_CompanyName = 'Pasien klinisi' then 'CLINICIAN REFERENCE' +when M_CompanyName = 'Pasien mandiri' then 'PERSONAL REQUEST' +else M_CompanyName end ) +as M_CompanyName, +M_CompanyAddress, +M_CompanyPhone , +M_CompanyEmail , +M_CompanyPIC ,M_MouName, +concat( DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") ," / ",REPLACE(REPLACE(REPLACE(T_OrderHeaderM_PatientAge, 'tahun', 'year') , 'bulan', 'month') , 'hari', 'days') ) as T_OrderHeaderM_PatientAge, +CONCAT(T_OrderHeaderM_PatientAge," / ",M_SexName) AS Umur, +CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2," ",p.M_DoctorSufix3) AS M_DoctorName, + +CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix," ",pj.M_DoctorSufix2," ",pj.M_DoctorSufix3) AS DokterPJ , +T_OrderHeaderDoctorNote, +T_OrderHeaderVerificationNote , +T_OrderHeaderFoNote , +T_OrderHeaderSamplingNote, +T_OrderHeaderLangResultNote as T_OrderHeaderResultNote, +T_OrderHeaderSubTotal, +T_OrderHeaderRounding , +T_OrderHeaderTotal, +T_OrderDetailLangNat_NormalValueLangNote as T_OrderDetailNormalValueNote,if(Nat_MethodeNameInResult = "UNDEFINED METHODE" , "",Nat_MethodeNameInResult) as T_OrderdetailNat_MethodeName,S_SystemsCompanyCity ,S_SystemsCompanyCityFooter,DATE_FORMAT(now(), "%d-%m-%Y %T") as hariini, + +T_TestCode ,UPPER(Nat_SubSubGroupLangName) as Nat_SubSubGroupName, +`fn_report_promise`(T_OrderHeaderID ) AS janjihasil , T_OrderDetailHasResult, + +if(T_TestIsParent = 'Y','',(case + when (`fn_get_ordersample`(T_OrderDetailID) = 'N' and T_OrderDetailResult is null ) then 'Sample will be completed' +when T_OrderDetailValidation = 'X' then concat( 'Will be completed' , " " , date_format(T_OrderPromiseDateTime, "%d-%m-%Y") ) else + concat( + + +concat(ifnull(if(T_OrderDetailLangResult = 'Terlampir','Attachment',T_OrderDetailLangResult ),''),"", ifnull(T_OrderDetailLangFlag ,'')) + +) + +end) ) + + as T_OrderDetailResult, + + +T_OrderDetailNote,T_TestNormalValue,ifnull(if (T_OrderDetailLangIsSI = 'Y' ,Nat_NormalValueLangDescriptionSI,Nat_NormalValueLangDescription),'') as T_OrderDetailNormalValueDescription,T_OrderDetailLangNat_UnitLangName as Nat_UnitName,T_BahanName,T_OrderSampleSamplingDate,T_OrderSampleSamplingTime, +concat(DATE_FORMAT(T_OrderSampleSamplingDate, "%d-%m-%Y %T") ,",",T_OrderSampleSamplingTime ) as sampling,T_OrderDetailLangNat_TestLangName as T_TestNameAA, +UPPER(Nat_SubGroupLangName) as Nat_SubGroupName +,S_SystemsCompanyName ,S_SystemsCompanyFax, +concat(S_SystemsCompanyAddress," ",S_SystemsCompanyCity," "," Telp. ", S_SystemsCompanyPhone ) as alamatcabang, +S_SystemsEmailAddress,M_No_FormRev,S_SystemsCompanyCity, + +concat("

", +IF (@lastValidasiUserID = 1500 ,CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix," ",pj.M_DoctorSufix2," ",pj.M_DoctorSufix3) , +( +case +when @lastStaffName is not null then @lastStaffName +when (T_OrderDetailValUserID = '0' or T_TestIsParent = 'Y' ) then `fn_get_username_validation_by_parent_nol`( T_OrderHeaderID ) +when T_TestIsParent = 'Y' then `fn_get_username_validation_by_parent_code`( T_TestSasCode,T_OrderHeaderID ) +else M_StaffName end +)) + +,"

") as uservalidasi, + + +T_OrderDetailLangFlag as T_OrderDetailResultFlag,Nat_SubgroupID ,Nat_SubSubGroupID, T_TestID, +if(T_TestIsParent = 'Y','',DATE_FORMAT(T_OrderPromiseDateTime, "%d-%m-%Y %T")) AS T_OrderPromiseDateTime, +Last_StatusPaymentIsLunas ,IFNULL(`fn_get_delivery_patient_type`(T_OrderHeaderID),0 )as pengiriman, + SUBSTRING(T_OrderHeaderLabNumber,4, 5) as noreg, T_OrderHeaderLabNumber as noregasli, +replace(concat("http://localhost/charts/qr.php?d=", +case +when (T_OrderDetailValUserID = '0' or T_TestIsParent = 'Y' ) then `fn_get_username_validation_by_parent_nol`( T_OrderHeaderID ) +when T_TestIsParent = 'Y' then `fn_get_username_validation_by_parent_code`( T_TestSasCode,T_OrderHeaderID ) +else M_StaffName end + +,"^",DATE_FORMAT(now(), "%d-%m-%Y %T"))," ","+") AS qrcode +,`fn_itf_isnumber`(T_OrderDetailResult) as kodehasil ,Nat_TestIsLongResult,Group_ResultName, + +if(`fn_is_periksa_covid`(T_OrderHeaderID) = 'N' , '', + concat("http://localhost/one-api/chart/the_qr/v3/",T_OrderHeaderID,"/",DATE_FORMAT(now(), "%d-%m-%Y%T")) )AS qrcodecov + + + +from t_orderheader +left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' +left join t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y' + join t_orderdetaillang on T_OrderDetailID = T_OrderDetailLangT_OrderDetailID and T_OrderDetailLangT_OrderHeaderID = T_OrderHeaderID +left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' +left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' +left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y' +left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y' +left join m_doctor p ON T_OrderHeaderSenderM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' + left join m_doctor pj ON T_OrderHeaderPjM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' +left join t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' +left join nat_test oN T_TestNat_TestID = Nat_TestID aND Nat_TestIsActive = 'Y' +left join nat_testlang on T_OrderDetailLangNat_TestLangID = Nat_TestLangID +left join nat_unitlang on T_OrderDetailLangNat_UnitLangID = Nat_UnitLangID and Nat_UnitLangIsActive = 'Y' +left join t_ordersample on T_OrderSampleT_OrderHeaderID = T_OrderHeaderID and T_OrderSampleIsActive = 'Y' and T_OrderSampleT_SampleTypeID = T_TestT_SampleTypeID +left join t_sampletype on T_OrderSampleT_SampleTypeID = T_SampleTypeID and T_SampleTypeIsActive = 'Y' +left join t_bahan on T_SampleTypeT_BahanID = T_BahanID and T_BahanIsActive = 'Y' +left join nat_subgroup on Nat_TestNat_SubGroupID = Nat_SubgroupID anD Nat_SubGroupIsActive = 'Y' +left join nat_subsubgroup on Nat_TestNat_SubSubGroupID = Nat_SubSubGroupID and Nat_SubSubGroupIsActive = 'Y' +LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "LAB" +left join conf_systems on S_SystemsID > 0 +left join m_user on T_OrderDetailValUserID = M_UserID +left join m_staff on M_UserM_StaffID = M_StaffID +left join nat_methode on T_OrderDetailNat_MethodeID = Nat_MethodeID +left join t_orderdetailaddon on T_OrderDetailAddOnT_OrderDetailID = T_OrderDetailID +left join t_orderpromise on T_OrderDetailT_OrderPromiseID = T_OrderPromiseID +left join last_statuspayment on Last_StatusPaymentT_OrderHeaderID = T_OrderHeaderID +left join group_resultdetail on Group_ResultDetailT_TestID = T_OrderDetailT_TestID and Group_ResultDetailIsActive = 'Y' +left join group_result on Group_ResultDetailGroup_ResultID = Group_ResultID +left join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID +left join nat_normalvaluelang on T_OrderDetailLangNat_NormalValueLangID = Nat_NormalValueLangID +left join t_orderheaderlang on T_OrderHeaderLangT_OrderHeaderID = T_OrderHeaderID +left join m_akreditasipx on T_TestNat_TestID = M_AkreditasiPxNat_TestID and M_AkreditasiPxIsActive = 'Y' +where + T_OrderHeaderID = PID + aND T_TestIsPrintResult = 'Y' and Nat_TestNat_GroupID = '1' and Group_ResultID in ('1','13') + +and +if(T_TestIsParent = 'Y','',(case +when T_OrderSampleReceive= 'N' then 'Bahan Belum' +when T_OrderDetailValidation = 'X' then 'Hasil Menyusul' else + concat( +if(`fn_itf_isnumber`(T_OrderDetailResult) = '0', concat(T_OrderDetailResult," ",ifnull(T_OrderDetailResultFlag,''),"
", +ifnull(concat("",T_OrderDetailNote),"")),concat( `fn_rpt_format_number`(T_OrderDetailResult)," ",ifnull(T_OrderDetailResultFlag,''),"
",ifnull(concat("",T_OrderDetailNote),"")) +) +) +end) ) not like '%#%' + group by T_TestID +order by Nat_SubgroupID ,Nat_SubSubGroupID ,T_TestSasCode asc; +end $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_t_hasil_image` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_t_hasil_image`(IN `PID` int, IN `username` varchar(100)) +begin + +select +CHAR_LENGTH(T_TestSasCode) as code, +if (M_AkreditasiPxID is null , +case +when CHAR_LENGTH(T_TestSasCode) = '8' then concat("   ",T_TestShortName) +when CHAR_LENGTH(T_TestSasCode) = '10' then concat("      ",T_TestShortName) +when CHAR_LENGTH(T_TestSasCode) = '12' then concat("          • " ,T_TestShortName) +else concat("            ",T_TestShortName) end , +concat( + +case +when CHAR_LENGTH(T_TestSasCode) = '8' then concat("   ",T_TestShortName) +when CHAR_LENGTH(T_TestSasCode) = '10' then concat("      ",T_TestShortName) +when CHAR_LENGTH(T_TestSasCode) = '12' then concat("          • " ,T_TestShortName) +else concat("            ",T_TestShortName) end +, " ® " ) +) as space, +T_OrderHeaderID, +DATE_FORMAT(T_OrderHeaderDate, "%d-%m-%Y %T") AS T_OrderHeaderDate, + fn_lookup_external(T_OrderHeaderLabNumber,'L') as T_OrderHeaderLabNumber, +CONCAT( fn_lookup_external(T_OrderHeaderLabNumber,'L')," / ",M_PatientNoReg) AS PID, +CONCAT(M_TitleName," ",ifnull(M_PatientPrefix,'')," ",M_PatientName," ",ifnull(M_PatientSuffix,'')) AS M_PatientName, +M_PatientNoReg , + concat("http://localhost/one-api/v1/su/code128/?no=",T_OrderHeaderLabNumberExt) aS Barcode, + +M_TitleName, +M_SexName, +M_PatientSuffix, +DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") AS M_PatientDOB, +M_PatientHP , +M_PatientPhone , +M_PatientEmail, +M_PatientIDNumber, +M_PatientNote, +(SELECT concat(M_PatientAddressDescription, ' ' , M_DistrictName, " " ,M_CityName) from m_patientaddress AS p +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , +M_CompanyName, +M_CompanyAddress, +M_CompanyPhone , +M_CompanyEmail , +M_CompanyPIC ,M_MouName, +concat( DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") ," / ",T_OrderHeaderM_PatientAge ) as T_OrderHeaderM_PatientAge, +CONCAT(T_OrderHeaderM_PatientAge," / ",M_SexName) AS Umur, +CONCAT(p.M_DoctorPrefix," ",p.M_DoctorName," ",p.M_DoctorSufix," ",p.M_DoctorSufix2," ",p.M_DoctorSufix3) AS M_DoctorName, + +CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix," ",pj.M_DoctorSufix2," ",pj.M_DoctorSufix3) AS DokterPJ , +T_OrderHeaderDoctorNote, +T_OrderHeaderVerificationNote , +T_OrderHeaderFoNote , +T_OrderHeaderSamplingNote, + +T_OrderHeaderAddOnValidationNote , + `fn_get_note_extra_demo`(T_OrderHeaderID ,T_OrderDetailT_TestID,(case +when fn_get_result_header_new(T_OrderHeaderID,T_OrderDetailT_TestSasCode) like 'reaktif%' then 'Reaktif' +when fn_get_result_header_new(T_OrderHeaderID,T_OrderDetailT_TestSasCode) like 'non reaktif%' then 'Non Reaktif' +when fn_get_result_header_new(T_OrderHeaderID,T_OrderDetailT_TestSasCode) like 'terdeteksi%' then 'Positif' +when fn_get_result_header_new(T_OrderHeaderID,T_OrderDetailT_TestSasCode) like 'tidak terdeteksi%' then 'negatif' + +when fn_get_result_header_new(T_OrderHeaderID,T_OrderDetailT_TestSasCode) like 'positif%' then 'Positif' +when fn_get_result_header_new(T_OrderHeaderID,T_OrderDetailT_TestSasCode) like 'negatif%' then 'negatif' +else T_OrderDetailResult end)) as T_OrderHeaderResultNote , + +T_OrderHeaderSubTotal, +T_OrderHeaderRounding , +T_OrderHeaderTotal, + T_OrderDetailNormalValueNote,if(Nat_MethodeNameInResult = "UNDEFINED METHODE" , "",Nat_MethodeNameInResult) as T_OrderdetailNat_MethodeName,S_SystemsCompanyCity ,S_SystemsCompanyCityFooter,DATE_FORMAT(now(), "%d-%m-%Y %T") as hariini, + +T_TestCode ,UPPER(Nat_SubSubGroupName) as Nat_SubSubGroupName, +`fn_report_promise`(T_OrderHeaderID ) AS janjihasil , +T_OrderDetailHasResult, + +if(T_TestIsParent = 'Y','',(case + when (`fn_get_ordersample`(T_OrderDetailID) = 'N' and T_OrderDetailResult is null ) then 'Bahan Belum' +when T_OrderDetailValidation = 'X' then 'Hasil Menyusul' else + concat( + + +if(`fn_itf_isnumber`(T_OrderDetailResult) = '0', concat(T_OrderDetailResult," ",ifnull(T_OrderDetailResultFlag,''),"
", +ifnull(concat("",T_OrderDetailNote),"")),concat( `fn_rpt_format_number`(T_OrderDetailResult)," ",ifnull(T_OrderDetailResultFlag,''),"
",ifnull(concat("",T_OrderDetailNote),"")) +) + +) + +end) ) + +as T_OrderDetailResult, + +T_OrderDetailNote,T_TestNormalValue,ifnull(T_OrderDetailNormalValueDescription,'') as T_OrderDetailNormalValueDescription,Nat_UnitName,T_BahanName,T_OrderSampleSamplingDate,T_OrderSampleSamplingTime, +concat(DATE_FORMAT(T_OrderSampleSamplingDate, "%d-%m-%Y %T") ,",",T_OrderSampleSamplingTime ) as sampling,T_TestName as T_TestNameAA, +UPPER(Nat_SubGroupName) as Nat_SubGroupName +,S_SystemsCompanyName ,S_SystemsCompanyFax, +concat(S_SystemsCompanyAddress," ",S_SystemsCompanyCity," "," Telp. ", S_SystemsCompanyPhone ) as alamatcabang, +S_SystemsEmailAddress,M_No_FormRev,S_SystemsCompanyCity, +concat("

", +IF (@lastValidasiUserID = 1500 ,CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix," ",pj.M_DoctorSufix2," ",pj.M_DoctorSufix3) , +( +case +when @lastStaffName is not null then @lastStaffName +when (T_OrderDetailValUserID = '0' or T_TestIsParent = 'Y' ) then `fn_get_username_validation_by_parent_nol`( T_OrderHeaderID ) +when T_TestIsParent = 'Y' then `fn_get_username_validation_by_parent_code`( T_TestSasCode,T_OrderHeaderID ) +else M_StaffName end +)) + +,"

") as uservalidasi, + + T_OrderDetailResultFlag,Nat_SubgroupID ,Nat_SubSubGroupID, T_TestID, +if(T_TestIsParent = 'Y','',DATE_FORMAT(T_OrderPromiseDateTime, "%d-%m-%Y %T")) AS T_OrderPromiseDateTime, +Last_StatusPaymentIsLunas ,IFNULL(`fn_get_delivery_patient_type`(T_OrderHeaderID),0 )as pengiriman, + SUBSTRING(T_OrderHeaderLabNumber,4, 5) as noreg, T_OrderHeaderLabNumber as noregasli, +replace(concat("http://localhost/charts/qr.php?d=", +case +when (T_OrderDetailValUserID = '0' or T_TestIsParent = 'Y' ) then `fn_get_username_validation_by_parent_nol`( T_OrderHeaderID ) +when T_TestIsParent = 'Y' then `fn_get_username_validation_by_parent_code`( T_TestSasCode,T_OrderHeaderID ) +else M_StaffName end + +,"^",DATE_FORMAT(now(), "%d-%m-%Y %T"))," ","+") AS qrcode +,`fn_itf_isnumber`(T_OrderDetailResult) as kodehasil ,Nat_TestIsLongResult, + +if(`fn_is_periksa_covid`(T_OrderHeaderID) = 'N' , '', + concat("http://localhost/one-api/chart/the_qr/v3/",T_OrderHeaderID,"/",DATE_FORMAT(now(), "%d-%m-%Y%T")) )AS qrcodecov + +from t_orderheader +left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' +left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' +left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' +left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y' +left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y' +left join m_doctor p ON T_OrderHeaderSenderM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' + left join m_doctor pj ON T_OrderHeaderPjM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' +left join t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y' +left join t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' +left join nat_test oN T_TestNat_TestID = Nat_TestID aND Nat_TestIsActive = 'Y' +left join nat_unit on T_OrderDetailNat_UnitID = Nat_UnitID and Nat_UnitIsActive = 'Y' +left join t_ordersample on T_OrderSampleT_OrderHeaderID = T_OrderHeaderID and T_OrderSampleIsActive = 'Y' and T_OrderSampleT_SampleTypeID = T_TestT_SampleTypeID +left join t_sampletype on T_OrderSampleT_SampleTypeID = T_SampleTypeID and T_SampleTypeIsActive = 'Y' +left join t_bahan on T_SampleTypeT_BahanID = T_BahanID and T_BahanIsActive = 'Y' +left join nat_subgroup on Nat_TestNat_SubGroupID = Nat_SubgroupID anD Nat_SubGroupIsActive = 'Y' +left join nat_subsubgroup on Nat_TestNat_SubSubGroupID = Nat_SubSubGroupID and Nat_SubSubGroupIsActive = 'Y' +LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "LAB" +left join conf_systems on S_SystemsID > 0 +left join m_user on T_OrderDetailValUserID = M_UserID +left join m_staff on M_UserM_StaffID = M_StaffID +left join nat_methode on T_OrderDetailNat_MethodeID = Nat_MethodeID +left join t_orderdetailaddon on T_OrderDetailAddOnT_OrderDetailID = T_OrderDetailID +left join t_orderpromise on T_OrderDetailT_OrderPromiseID = T_OrderPromiseID +left join last_statuspayment on Last_StatusPaymentT_OrderHeaderID = T_OrderHeaderID +left join group_resultdetail on Group_ResultDetailT_TestID = T_OrderDetailT_TestID and Group_ResultDetailIsActive = 'Y' +left join group_result on Group_ResultDetailGroup_ResultID = Group_ResultID +left join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID +left join m_akreditasipx on T_TestNat_TestID = M_AkreditasiPxNat_TestID and M_AkreditasiPxIsActive = 'Y' +where + T_OrderHeaderID = PID + aND T_TestIsPrintResult = 'Y' and Nat_TestNat_GroupID = '1' and Group_ResultID in ('1','13') + +and +if(T_TestIsParent = 'Y','',(case +when T_OrderSampleReceive= 'N' then 'Bahan Belum' +when T_OrderDetailValidation = 'X' then 'Hasil Menyusul' else + concat( +if(`fn_itf_isnumber`(T_OrderDetailResult) = '0', concat(T_OrderDetailResult," ",ifnull(T_OrderDetailResultFlag,''),"
", +ifnull(concat("",T_OrderDetailNote),"")),concat( `fn_rpt_format_number`(T_OrderDetailResult)," ",ifnull(T_OrderDetailResultFlag,''),"
",ifnull(concat("",T_OrderDetailNote),"")) +) +) +end) ) not like '%#%' + group by T_TestID +order by Nat_SubgroupID ,Nat_SubSubGroupID ,T_TestSasCode asc; +end $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_t_hasil_rspad` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_t_hasil_rspad`(IN `PID` int, IN `username` varchar(100)) +select +CHAR_LENGTH(T_TestSasCode) as code, + +case +when CHAR_LENGTH(T_TestSasCode) = '8' then concat("   ",T_TestShortName) +when CHAR_LENGTH(T_TestSasCode) = '10' then concat("      ",T_TestShortName) +when CHAR_LENGTH(T_TestSasCode) = '12' then concat("          • " ,T_TestShortName) +else concat("            ",T_TestShortName) end + as space, +T_OrderHeaderID, +DATE_FORMAT(T_OrderHeaderDate, "%d-%m-%Y %T") AS T_OrderHeaderDate, + fn_lookup_external(T_OrderHeaderLabNumber,'L') as T_OrderHeaderLabNumber, +CONCAT( fn_lookup_external(T_OrderHeaderLabNumber,'L')," / ",M_PatientNoReg) AS PID, +fn_get_name( T_OrderHeaderM_PatientID ) AS M_PatientName, +M_PatientNoReg , + concat("http://localhost/one-api/v1/su/code128/?no=",T_OrderHeaderLabNumberExt) aS Barcode, + +M_TitleName, +M_SexName, + DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") AS M_PatientDOB, +M_PatientHP , + M_PatientEmail, +M_PatientIDNumber, +M_PatientNote, + +concat(fn_get_name( T_OrderHeaderM_PatientID )," / " ,TIMESTAMPDIFF(YEAR, M_PatientDOB, CURDATE()) ," Tahun" ) as NamaPasienUmur , +M_PatientStatusKeluarga as StatusKeluarga , + DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") as TanggalLahir, +M_PatientKesatuan as Kesatuan, +M_PatientPangkat as Pangkat, +T_OrderHeaderRuangPoli as Ruang , +concat(T_OrderHeaderLabNumber," / " , M_PatientNoReg) as NoLab , +DATE_FORMAT(T_OrderHeaderDate, "%d-%m-%Y %T") as TglRegistrasi , +CONCAT(ifnull(p.M_DoctorPrefix,"")," ",p.M_DoctorName," ",ifnull(p.M_DoctorSufix,"")," ",ifnull(p.M_DoctorSufix2,"")," ",ifnull(p.M_DoctorSufix3,"")) as PermintaanDokter , +DATE_FORMAT(T_OrderDetailValDate , "%d-%m-%Y %T") as TglSelesai, +T_OrderHeaderDiagnose as Diagnosa , +T_OrderHeaderStatus as Status, +M_PatientIDNumber as Identitas , + + + +(SELECT concat(M_PatientAddressDescription, ' ' , M_DistrictName, " " ,M_CityName) from m_patientaddress AS p +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , +M_CompanyName, +M_CompanyAddress, + concat( DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") ," / ",T_OrderHeaderM_PatientAge ) as T_OrderHeaderM_PatientAge, +CONCAT(T_OrderHeaderM_PatientAge," / ",M_SexName) AS Umur, +CONCAT(ifnull(p.M_DoctorPrefix,"")," ",p.M_DoctorName," ",ifnull(p.M_DoctorSufix,"")," ",ifnull(p.M_DoctorSufix2,"")," ",ifnull(p.M_DoctorSufix3,"")) AS M_DoctorName, + +CONCAT(pj.M_DoctorPrefix," ",pj.M_DoctorName," ",pj.M_DoctorSufix," ",pj.M_DoctorSufix2," ",pj.M_DoctorSufix3) AS DokterPJ , + + ifnull(T_OrderDetailNormalValueNote,'') as T_OrderDetailNormalValueNote,if(Nat_MethodeNameInResult = "UNDEFINED METHODE" , "",Nat_MethodeNameInResult) as T_OrderdetailNat_MethodeName,S_SystemsCompanyCity ,S_SystemsCompanyCityFooter,DATE_FORMAT(now(), "%d-%m-%Y %T") as hariini, + +T_TestCode ,UPPER(Nat_SubSubGroupName) as Nat_SubSubGroupName, +`fn_report_promise`(T_OrderHeaderID ) AS janjihasil , T_OrderDetailHasResult, +if(T_TestIsParent = 'Y','',(case + when (`fn_get_ordersample`(T_OrderDetailID) = 'N' and T_OrderDetailResult is null ) then 'Bahan Belum' +when T_OrderDetailValidation = 'X' then 'Hasil Menyusul' else + concat( + + +if(`fn_itf_isnumber`(T_OrderDetailResult) = '0', concat(T_OrderDetailResult," ",ifnull(T_OrderDetailResultFlag,''),"
", +ifnull(concat("",T_OrderDetailNote),"")),concat( `fn_rpt_format_number`(T_OrderDetailResult)," ",ifnull(T_OrderDetailResultFlag,''),"
",ifnull(concat("",T_OrderDetailNote),"")) +) + +) + +end) ) + +as T_OrderDetailResult, + + +T_OrderDetailNote,T_TestNormalValue,ifnull(T_OrderDetailNormalValueDescription,'') as T_OrderDetailNormalValueDescription, + ifnull(Nat_UnitName,'') as Nat_UnitName,T_BahanName,T_OrderSampleSamplingDate,T_OrderSampleSamplingTime, +concat(DATE_FORMAT(T_OrderSampleSamplingDate, "%d-%m-%Y %T") ,",",T_OrderSampleSamplingTime ) as sampling,T_TestName as T_TestNameAA, +UPPER(Nat_SubGroupName) as Nat_SubGroupName +,S_SystemsCompanyName ,S_SystemsCompanyFax, +concat(S_SystemsCompanyAddress," ",S_SystemsCompanyCity," "," Telp. ", S_SystemsCompanyPhone ) as alamatcabang, +S_SystemsEmailAddress,M_No_FormRev,S_SystemsCompanyCity, +concat("

", +( +case +when (T_OrderDetailValUserID = '0' or T_TestIsParent = 'Y' ) then `fn_get_username_validation_by_parent_nol`( T_OrderHeaderID ) +when T_TestIsParent = 'Y' then `fn_get_username_validation_by_parent_code`( T_TestSasCode,T_OrderHeaderID ) +else M_StaffName end +) + +,"

") as uservalidasi, + + T_OrderDetailResultFlag,Nat_SubgroupID ,Nat_SubSubGroupID, T_TestID, +if(T_TestIsParent = 'Y','',DATE_FORMAT(T_OrderPromiseDateTime, "%d-%m-%Y %T")) AS T_OrderPromiseDateTime, +Last_StatusPaymentIsLunas ,IFNULL(`fn_get_delivery_patient_type`(T_OrderHeaderID),0 )as pengiriman, + SUBSTRING(T_OrderHeaderLabNumber,4, 5) as noreg, T_OrderHeaderLabNumber as noregasli, +if(`fn_is_periksa_covid`(T_OrderHeaderID) = 'N' , '', + concat("http://localhost/one-api/chart/the_qr/v3/",T_OrderHeaderID,"/",DATE_FORMAT(now(), "%d-%m-%Y%T")) ) AS qrcode +,`fn_itf_isnumber`(T_OrderDetailResult) as kodehasil ,Nat_TestIsLongResult,Group_ResultName, +T_OrderDetailMinValue , +T_OrderDetailMaxValue, +T_OrderDetailMinValueInclusive , +T_OrderDetailMaxValueInclusive + +from t_orderheader +left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' +left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' +left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' +left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y' +left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y' +left join m_doctor p ON T_OrderHeaderSenderM_DoctorID = p.M_DoctorID AND p.M_DoctorIsActive = 'Y' + left join m_doctor pj ON T_OrderHeaderPjM_DoctorID = pj.M_DoctorID AND pj.M_DoctorIsActive = 'Y' +left join t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y' +left join t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' +left join nat_test oN T_TestNat_TestID = Nat_TestID aND Nat_TestIsActive = 'Y' +left join nat_unit on T_OrderDetailNat_UnitID = Nat_UnitID and Nat_UnitIsActive = 'Y' +left join t_ordersample on T_OrderSampleT_OrderHeaderID = T_OrderHeaderID and T_OrderSampleIsActive = 'Y' and T_OrderSampleT_SampleTypeID = T_TestT_SampleTypeID +left join t_sampletype on T_OrderSampleT_SampleTypeID = T_SampleTypeID and T_SampleTypeIsActive = 'Y' +left join t_bahan on T_SampleTypeT_BahanID = T_BahanID and T_BahanIsActive = 'Y' +left join nat_subgroup on Nat_TestNat_SubGroupID = Nat_SubgroupID anD Nat_SubGroupIsActive = 'Y' +left join nat_subsubgroup on Nat_TestNat_SubSubGroupID = Nat_SubSubGroupID and Nat_SubSubGroupIsActive = 'Y' +LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "LAB" +left join conf_systems on S_SystemsID > 0 +left join m_user on T_OrderDetailValUserID = M_UserID +left join m_staff on M_UserM_StaffID = M_StaffID +left join nat_methode on T_OrderDetailNat_MethodeID = Nat_MethodeID +left join t_orderdetailaddon on T_OrderDetailAddOnT_OrderDetailID = T_OrderDetailID +left join t_orderpromise on T_OrderDetailT_OrderPromiseID = T_OrderPromiseID +left join last_statuspayment on Last_StatusPaymentT_OrderHeaderID = T_OrderHeaderID +left join group_resultdetail on Group_ResultDetailT_TestID = T_OrderDetailT_TestID and Group_ResultDetailIsActive = 'Y' +left join group_result on Group_ResultDetailGroup_ResultID = Group_ResultID +left join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID + where + T_OrderHeaderID = PID + aND T_TestIsPrintResult = 'Y' and Nat_TestNat_GroupID = '1' and Group_ResultID in ('1','13') +and +if(T_TestIsParent = 'Y','',(case + when (`fn_get_ordersample`(T_OrderDetailID) = 'N' and T_OrderDetailResult is null ) then 'Bahan Belum' +when T_OrderDetailValidation = 'X' then 'Hasil Menyusul' else + concat( +if(`fn_itf_isnumber`(T_OrderDetailResult) = '0', concat(T_OrderDetailResult," ",ifnull(T_OrderDetailResultFlag,''),"
", +ifnull(concat("",T_OrderDetailNote),"")),concat( `fn_rpt_format_number`(T_OrderDetailResult)," ",ifnull(T_OrderDetailResultFlag,''),"
",ifnull(concat("",T_OrderDetailNote),"")) +) +) +end) ) not like '%#%' + + group by T_TestID +order by Nat_SubgroupID ,Nat_SubSubGroupID ,T_TestSasCode asc $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_t_hasil_so_layanan` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_t_hasil_so_layanan`(IN `PID` int, IN `PLang` int, IN `username` varchar(100)) +select * +from ( +select T_OrderHeaderLabNumber as nolabasli, +DATE_FORMAT(NOW(), "%d-%m-%Y") AS Now, +DATE_FORMAT(T_OrderHeaderDate, "%d-%m-%Y %T") AS T_OrderHeaderDate, +T_OrderHeaderM_PatientAge, +M_SexName, +DATE_FORMAT(T_OrderHeaderCreated, "%d-%m-%Y %T") AS T_OrderHeaderCreated, +CONCAT(fn_lookup_external(T_OrderHeaderLabNumber,'L')," / ",M_PatientNoReg) AS PiID, +`fn_get_status_lunas`(T_OrderHeaderID) as status, +if( `fn_get_status_lunas`(T_OrderHeaderID) = 'N' , concat("",fn_lookup_external(T_OrderHeaderLabNumber,'L'),""),fn_lookup_external(T_OrderHeaderLabNumber,'L')) as T_OrderHeaderLabNumber, + +M_PatientNoReg, +CONCAT(M_TitleName," ",ifnull(M_PatientPrefix,'')," ",M_PatientName," ",ifnull(M_PatientSuffix,'')) AS M_PatientName, +DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") AS M_PatientDOB, +CONCAT(T_OrderHeaderM_PatientAge," / ",M_SexName) AS Umur, +M_TitleName, +M_PatientHP ,M_PatientPhone, M_PatientEmail, + concat("http://localhost/one-api/v1/su/code128/?no=",T_OrderHeaderLabNumberExt) AS Barcode, +M_CompanyName, +CONCAT(mm.M_DoctorPrefix," ",mm.M_DoctorName," ",mm.M_DoctorSufix," ",mm.M_DoctorSufix2," ",mm.M_DoctorSufix3) AS M_DoctorName, +(SELECT concat(M_PatientAddressDescription, ' ' , M_DistrictName, " " ,M_CityName) from m_patientaddress AS p +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , + +So_ResultEntryDetailSo_TemplateDetailName as So_TemplateDetailName, +So_ResultEntryDetailResult , +T_TestCode, + T_TestName, + +(case +when T_TestIsNonLab = "XRAY" then "XRAY FOTO" +when T_TestIsNonLab = "USG" then "HASIL USG" +else "HASIL ELEKTROMEDIS" END) AS judul , +So_ResultEntryDetailSo_TemplateDetailPriority as So_TemplateDetailPriority, +DATE_FORMAT(now(), "%d-%m-%Y %T") AS DATENOW, +S_SystemsCompanyName ,So_ResultEntryT_OrderDetailID, +concat(S_SystemsCompanyAddress," ",S_SystemsCompanyCity," "," Telp. ", S_SystemsCompanyPhone) as alamatcabang, +S_SystemsEmailAddress,M_No_FormRev,S_SystemsCompanyCity, + +CONCAT(m.M_DoctorPrefix," ",m.M_DoctorName," ",m.M_DoctorSufix," ",m.M_DoctorSufix2," ",m.M_DoctorSufix3) AS M_Doctorkirim + +from so_resultentry +left join so_resultentrydetail on So_ResultEntryDetailSo_ResultEntryID = So_ResultEntryID and So_ResultEntryDetailIsActive = 'y' +left join t_orderheader on So_ResultEntryT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y' +left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID +left join m_sex ON M_PatientM_SexID = M_SexID +left join m_title ON M_PatientM_TitleID = M_TitleID +left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID and M_CompanyIsActive = 'Y' +left join t_orderdetail on So_ResultEntryT_OrderDetailID = T_OrderDetailID and T_OrderDetailIsActive = 'Y' +left join t_test ON T_TestID = T_OrderDetailT_TestID and T_TestIsActive = 'Y' +left join t_samplingso on T_SamplingSoT_OrderHeaderID = T_OrderHeaderID and T_SamplingSoT_TestID = T_TestID +left join m_doctor mm ON T_SamplingSoM_DoctorID = mm.M_DoctorID and mm.M_DoctorIsActive = 'Y' + +LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "FISIK" +left join conf_systems on S_SystemsID > 0 +left join m_doctor m ON T_OrderHeaderSenderM_DoctorID = m.M_DoctorID and m.M_DoctorIsActive = 'Y' +where So_ResultEntryID =PID and So_ResultEntryM_LangID = PLang and So_ResultEntryDetailResult <> "" +and So_ResultEntryDetailFlagPrint = 'Y' + +group by So_ResultEntryDetailID + +union + +select T_OrderHeaderLabNumber as nolabasli, +DATE_FORMAT(NOW(), "%d-%m-%Y") AS Now, +DATE_FORMAT(T_OrderHeaderDate, "%d-%m-%Y %T") AS T_OrderHeaderDate, +T_OrderHeaderM_PatientAge, +M_SexName, +DATE_FORMAT(T_OrderHeaderCreated, "%d-%m-%Y %T") AS T_OrderHeaderCreated, +CONCAT(fn_lookup_external(T_OrderHeaderLabNumber,'L')," / ",M_PatientNoReg) AS PiID, +`fn_get_status_lunas`(T_OrderHeaderID) as status, +if( `fn_get_status_lunas`(T_OrderHeaderID) = 'N' , concat("",fn_lookup_external(T_OrderHeaderLabNumber,'L'),""),fn_lookup_external(T_OrderHeaderLabNumber,'L')) as T_OrderHeaderLabNumber, + +M_PatientNoReg, +CONCAT(M_TitleName," ",ifnull(M_PatientPrefix,'')," ",M_PatientName," ",ifnull(M_PatientSuffix,'')) AS M_PatientName, +DATE_FORMAT(M_PatientDOB, "%d-%m-%Y") AS M_PatientDOB, +CONCAT(T_OrderHeaderM_PatientAge," / ",M_SexName) AS Umur, +M_TitleName, +M_PatientHP ,M_PatientPhone, M_PatientEmail, + concat("http://localhost/one-api/v1/su/code128/?no=",M_PatientNoReg) AS Barcode, +(case +when M_CompanyName = 'Pasien klinisi' then 'CLINICIAN REFERENCE' +when M_CompanyName = 'Pasien mandiri' then 'PERSONAL REQUEST' +else M_CompanyName end ) as M_CompanyName, +CONCAT(mm.M_DoctorPrefix," ",mm.M_DoctorName," ",mm.M_DoctorSufix," ",mm.M_DoctorSufix2," ",mm.M_DoctorSufix3) AS M_DoctorName, +(SELECT concat(M_PatientAddressDescription, ' ' , M_DistrictName, " " ,M_CityName) from m_patientaddress AS p +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_kel on NULLIF(TRIM(p.M_PatientAddressRegionalCd), "") = reg_kel.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_kec on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, reg_kel.kec_cd, "000") = reg_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_kab on CONCAT(reg_kel.pro_cd, reg_kel.kab_cd, "000000") = reg_kab.regional_cd +left join (select regional_cd, regional_nm as M_ProvinceName from regional) reg_pro on CONCAT(reg_kel.pro_cd, "00000000") = reg_pro.regional_cd + + WHERE M_PatientAddressM_PatientID = M_PatientID + ORDER BY M_PatientAddressM_PatientID + LIMIT 1) AS M_PatientAddressDescription , + +So_ResultEntryDetailOtherSo_TemplateDetailName as So_TemplateDetailName , +So_ResultEntryDetailOtherResult as So_ResultEntryDetailResult , + +T_TestCode, + Nat_TestLangName as T_TestName, +(case +when T_TestIsNonLab = "XRAY" then "XRAY PHOTO" +when T_TestIsNonLab = "USG" then "RESULT USG" +else "RESULT ELEKTROMEDIS" END) AS judul , +So_ResultEntryDetailOtherSo_TemplateDetailPriority as So_TemplateDetailPriority, +DATE_FORMAT(now(), "%d-%m-%Y %T") AS DATENOW, +S_SystemsCompanyName ,So_ResultEntryT_OrderDetailID, +concat(S_SystemsCompanyAddress," ",S_SystemsCompanyCity," "," Telp. ", S_SystemsCompanyPhone) as alamatcabang, +S_SystemsEmailAddress,M_No_FormRev,S_SystemsCompanyCity, + +CONCAT(m.M_DoctorPrefix," ",m.M_DoctorName," ",m.M_DoctorSufix," ",m.M_DoctorSufix2," ",m.M_DoctorSufix3) AS M_Doctorkirim + +from so_resultentry +left join t_orderheader on So_ResultEntryT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y' +left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID +left join m_sex ON M_PatientM_SexID = M_SexID +left join m_title ON M_PatientM_TitleID = M_TitleID +left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID and M_CompanyIsActive = 'Y' +left join t_orderdetail on So_ResultEntryT_OrderDetailID = T_OrderDetailID and T_OrderDetailIsActive = 'Y' +left join t_test ON T_TestID = T_OrderDetailT_TestID and T_TestIsActive = 'Y' +left join t_samplingso on T_SamplingSoT_OrderHeaderID = T_OrderHeaderID and T_SamplingSoT_TestID = T_TestID +left join m_doctor mm ON T_SamplingSoM_DoctorID = mm.M_DoctorID and mm.M_DoctorIsActive = 'Y' + +left join nat_test on T_TestNat_TestID = Nat_TestID and Nat_TestIsActive = 'Y' +left join nat_testlang on Nat_TestLangNat_TestID = Nat_TestID and Nat_testLangIsActive = 'Y' +left join so_resultentrydetail_other on So_ResultEntryDetailOtherSo_ResultEntryID = So_ResultEntryID and So_ResultEntryDetailOtherIsActive = 'Y' +LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "FISIK" +left join conf_systems on S_SystemsID > 0 +left join m_doctor m ON T_OrderHeaderSenderM_DoctorID = m.M_DoctorID and m.M_DoctorIsActive = 'Y' +where So_ResultEntryID = PID and So_ResultEntryDetailOtherM_LangID = PLang and So_ResultEntryDetailOtherResult <> "" +and So_ResultEntryDetailOtherFlagPrint = 'y' + +group by So_ResultEntryDetailOtherID +) as x +order by So_TemplateDetailPriority $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_bill_issue_inv` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_bill_issue_inv`(IN `PID` int, IN `username` varchar(100)) +begin +SELECT M_StaffName INTO @manager +FROM m_user +JOIN m_staff ON M_UserM_StaffID = M_StaffID +left join m_usergroup on M_UserGroupID = M_UserM_UserGroupID and M_UserGroupIsActive = 'Y' +WHERE +M_UserGroupName = 'Manager Keuangan' and M_UserIsActive = 'Y' LIMIT 1; + +select min(T_OrderHeaderDate) into @PStartDate from t_orderheader join f_bill_detail on F_BillDetailT_OrderHeaderID = T_OrderHeaderID and F_BillDetailIsActive = 'Y' + where F_BillDetailF_BillID = PID ; +select max(T_OrderHeaderDate) into @PEndDate from t_orderheader join f_bill_detail on F_BillDetailT_OrderHeaderID = T_OrderHeaderID and F_BillDetailIsActive = 'Y' + where F_BillDetailF_BillID = PID ; + +select +F_BillIssueID, + F_BillIssueNumber, + F_BillIssueRefNumber, + F_BillIssueF_BillID, + F_BillIssueDate, + F_BillIssueIsSend, + F_BillIssueSendDate, + F_BillIssueIsReceive, + F_BillIssueReceiveDate, + F_BillIssuePIC, + F_BillIssuePICHP, + F_BillIssuePICEmail, + M_CompanyName, +M_CompanyAddress, +M_CompanyPhone, + M_MouName, + F_BillIssueAgingDay, + F_BillIssueExtendDay, + F_BillIssueExtendNote, + F_BillIssueExtendDueDate, + F_BillIssueIsLunas, + F_BillIssueIsNotif , + F_BillIssueNotifDate, + F_BillIssueImg, + F_BillIssueImgSend, + Nat_BankName, +M_BankAccountNo, +M_BranchName, +M_BranchAddress, +concat(M_CityName, ", " ,DATE_FORMAT(F_BillIssueDate, "%d-%m-%Y") ) as citydate, +M_CityName, +fn_get_staff(F_BillIssueUserID) as staffpembuat, +fn_get_staff(F_BillIssueSendUserID) as sendstaff, +fn_get_staff(F_BillIssueReceiveUserID) as receivestaff, +fn_get_staff(F_BillIssueNotifUserID) as notifuser, +fn_get_staff(F_BillIssueExtendUserID) as extendeduser, +F_BillNo, + F_BillTotal, +CONCAT(`f_terbilang`(F_BillTotal),"", "Rupiah") AS terbilang, + +date(@PStartDate) as PstartDate, +date(@PEndDate) as PEndDate , +concat(DATE_FORMAT((@PStartDate) , "%d-%m-%Y") , " s/d ", DATE_FORMAT(@PEndDate, "%d-%m-%Y") ) as tangal, +M_BankAccountName,M_No_FormRev, +F_BillNote,ConfOnHoldSenderEmail,@manager as managerkeuangan + +from f_bill_issue +join m_company on F_BillIssueM_CompanyID = M_CompanyID +join m_mou on F_BillIssueM_MouID = M_MouID + join m_bank_account on F_BillIssueM_BankAccountID =M_BankAccountID +join nat_bank on M_BankAccountNat_BankID = Nat_BankID +join m_branch on M_BranchIsDefault = 'Y' +left join (select regional_cd, pro_cd, kab_cd from regional) reg_branch on NULLIF(TRIM(M_BranchRegionalCd), "") = reg_branch.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_branch_city on CONCAT(reg_branch.pro_cd, reg_branch.kab_cd, "000000") = reg_branch_city.regional_cd +join f_bill on F_BillIssueF_BillID = F_BillID + LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "INVISSUE" +left join conf_on_hold on ConfOnHoldIsActive = 'Y' + +where F_BillID = PID + +;end $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_r_085` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_r_085`(IN `PStartDate` date, IN `PEndDate` date, IN `PPatientTypeID` int, IN `PMouID` int, IN `username` varchar(100)) +begin + select count(T_OrderHeaderID) into @pasien +from t_orderheader +join m_company on T_OrderHeaderM_CompanyID = M_CompanyID +join m_mou on T_OrderHeaderM_MouID = M_MouID + +where T_OrderHeaderIsActive = 'Y' and +date(T_OrderHeaderDate) between PStartDate and PEndDate +and (PPatientTypeID= 0 or (PPatientTypeID> 0 and M_CompanyID = PPatientTypeID)) +and (PMouID= 0 or (PMouID > 0 and M_MouID= PMouID)) ; + +select +DATE_FORMAT(T_OrderHeaderDate, "%d-%m-%Y") AS T_OrderHeaderDate, +concat(M_CityName,", ", DATE_FORMAT(now(), "%d-%m-%Y") ) AS Hariini, +concat(T_OrderHeaderLabNumber,"/",T_OrderHeaderLabNumberExt) as nolab, +M_CompanyName, +M_MouName, +fn_get_name( T_OrderHeaderM_PatientID ) AS M_PatientName, +M_CompanyAddress , +M_BranchAddress, +M_BranchName, + @pasien as total,M_No_FormRev + +from t_orderheader +join m_company on T_OrderHeaderM_CompanyID = M_CompanyID +join m_mou on T_OrderHeaderM_MouID = M_MouID +left join m_branch on M_BranchIsDefault = 'Y' +left join (select regional_cd, pro_cd, kab_cd from regional) reg_branch on NULLIF(TRIM(M_BranchRegionalCd), "") = reg_branch.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_branch_city on CONCAT(reg_branch.pro_cd, reg_branch.kab_cd, "000000") = reg_branch_city.regional_cd +LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "LAB15" + +where T_OrderHeaderIsActive = 'Y' and +date(T_OrderHeaderDate) between PStartDate and PEndDate +and (PPatientTypeID= 0 or (PPatientTypeID> 0 and M_CompanyID = PPatientTypeID)) +and (PMouID= 0 or (PMouID > 0 and M_MouID= PMouID)) + +; +end $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_t_011` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_t_011`(IN `PID` int, IN `PTipe` char, IN `username` varchar(100)) +select +T_RefDeliveryOrderNumber , +T_RefDeliveryOrderDate, +if(T_RefDeliveryOrderIsExternal = 'N',"Internal","External") as T_RefDeliveryOrderIsExternal , +m.M_BranchName , +concat(m.M_BranchAddress ," ",c.M_CityName," ",m.M_BranchPhone) as alamatpeminta, +if(T_RefDeliveryOrderIsExternal = 'N' , mm.M_BranchName ,M_LabReferenceName) as tujuan, +if(T_RefDeliveryOrderIsExternal = 'N' , concat(mm.M_BranchAddress ," ",cc.M_CityName," ",mm.M_BranchPhone) , +concat(M_LabReferenceAddress ," ",ccc.M_CityName," ",M_LabReferencePhone)) as alamattujuan, +T_WorklistName, +T_TestName, +DATE_FORMAT(T_OrderHeaderDate, "%d-%m-%Y") AS T_OrderHeaderDate, + +DATE_FORMAT(now(), "%d-%m-%Y") AS now, +concat( fn_lookup_external(T_OrderHeaderLabNumber,'L') ," / ", T_OrderHeaderLabNumber ) as T_OrderHeaderLabNumber, +CONCAT(M_TitleName," ",ifnull(M_PatientPrefix,'')," ",M_PatientName," ",ifnull(M_PatientSuffix,'')) AS M_PatientName, +M_CompanyName, +M_StaffName, +M_No_FormRev + +from t_ref_deliveryorder +left join m_branch m on T_RefDeliveryOrderM_BranchID = m.M_BranchID and m.M_BranchIsActive = 'Y' +left join m_branch mm on T_RefDeliveryOrderM_DestinationID = mm.M_BranchID and mm.M_BranchIsActive = 'Y' +left join m_labreference on T_RefDeliveryOrderM_DestinationID = M_LabReferenceID and M_LabReferenceIsActive = 'Y' +left join (select regional_cd, pro_cd, kab_cd from regional) reg_branch_src on NULLIF(TRIM(m.M_BranchRegionalCd), "") = reg_branch_src.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) c on CONCAT(reg_branch_src.pro_cd, reg_branch_src.kab_cd, "000000") = c.regional_cd +left join (select regional_cd, pro_cd, kab_cd from regional) reg_branch_dest on NULLIF(TRIM(mm.M_BranchRegionalCd), "") = reg_branch_dest.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) cc on CONCAT(reg_branch_dest.pro_cd, reg_branch_dest.kab_cd, "000000") = cc.regional_cd +left join (select regional_cd, pro_cd, kab_cd from regional) reg_labref on NULLIF(TRIM(M_LabReferenceRegionalCd), "") = reg_labref.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) ccc on CONCAT(reg_labref.pro_cd, reg_labref.kab_cd, "000000") = ccc.regional_cd +left join t_worklist on T_RefDeliveryOrderT_WorklistID = T_WorklistID and T_WorklistIsActive = 'Y' +left join t_ref_deliveryorder_detail on T_RefDeliveryOrderDetailT_RefDeliveryOrderID = T_RefDeliveryOrderID and T_RefDeliveryOrderIsActive = 'Y' +left join t_orderheader on T_RefDeliveryOrderDetailT_OrderHeaderID = T_OrderHeaderID +left join t_test on T_RefDeliveryOrderDetailT_TestID = T_TestID +left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' +left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' +left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y' +left join m_courier on T_RefDeliveryOrderM_CourierID = M_CourierID +left join m_staff on M_CourierM_StaffID = M_StaffID + LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "RUJUKAN" + +where T_RefDeliveryOrderID = PID and T_RefDeliveryOrderIsExternal = PTipe +order by T_OrderHeaderID $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_t_012` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_t_012`(IN `PID` int, IN `PTipe` char, IN `username` varchar(100)) +select +T_RefDeliveryOrderNumber , +T_RefDeliveryOrderDate, +if(T_RefDeliveryOrderIsExternal = 'N',"Internal","External") as T_RefDeliveryOrderIsExternal , +m.M_BranchName , +concat(m.M_BranchAddress ," ",c.M_CityName," ",m.M_BranchPhone) as alamatpeminta, +if(T_RefDeliveryOrderIsExternal = 'N' , mm.M_BranchName ,M_LabReferenceName) as tujuan, +if(T_RefDeliveryOrderIsExternal = 'N' , concat(mm.M_BranchAddress ," ",cc.M_CityName," ",mm.M_BranchPhone) , +concat(M_LabReferenceAddress ," ",ccc.M_CityName," ",M_LabReferencePhone)) as alamattujuan, +T_WorklistName, +T_TestName, +DATE_FORMAT(T_OrderHeaderDate, "%d-%m-%Y") AS T_OrderHeaderDate, +DATE_FORMAT(now(), "%d-%m-%Y") AS now, +concat( fn_lookup_external(T_OrderHeaderLabNumber,'L') ," / ", T_OrderHeaderLabNumber ) as T_OrderHeaderLabNumber, +CONCAT(M_TitleName," ",ifnull(M_PatientPrefix,'')," ",M_PatientName," ",ifnull(M_PatientSuffix,'')) AS M_PatientName, +M_CompanyName, +M_StaffName,M_PatientDOB,M_SexName,T_OrderHeaderM_PatientAge + +from t_ref_deliveryorder +left join m_branch m on T_RefDeliveryOrderM_BranchID = m.M_BranchID and m.M_BranchIsActive = 'Y' +left join m_branch mm on T_RefDeliveryOrderM_DestinationID = mm.M_BranchID and mm.M_BranchIsActive = 'Y' +left join m_labreference on T_RefDeliveryOrderM_DestinationID = M_LabReferenceID and M_LabReferenceIsActive = 'Y' +left join (select regional_cd, pro_cd, kab_cd from regional) reg_branch_src on NULLIF(TRIM(m.M_BranchRegionalCd), "") = reg_branch_src.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) c on CONCAT(reg_branch_src.pro_cd, reg_branch_src.kab_cd, "000000") = c.regional_cd +left join (select regional_cd, pro_cd, kab_cd from regional) reg_branch_dest on NULLIF(TRIM(mm.M_BranchRegionalCd), "") = reg_branch_dest.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) cc on CONCAT(reg_branch_dest.pro_cd, reg_branch_dest.kab_cd, "000000") = cc.regional_cd +left join (select regional_cd, pro_cd, kab_cd from regional) reg_labref on NULLIF(TRIM(M_LabReferenceRegionalCd), "") = reg_labref.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) ccc on CONCAT(reg_labref.pro_cd, reg_labref.kab_cd, "000000") = ccc.regional_cd +left join t_worklist on T_RefDeliveryOrderT_WorklistID = T_WorklistID and T_WorklistIsActive = 'Y' +left join t_ref_deliveryorder_detail on T_RefDeliveryOrderDetailT_RefDeliveryOrderID = T_RefDeliveryOrderID and T_RefDeliveryOrderIsActive = 'Y' +left join t_orderheader on T_RefDeliveryOrderDetailT_OrderHeaderID = T_OrderHeaderID +left join t_test on T_RefDeliveryOrderDetailT_TestID = T_TestID +left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' +left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' +left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y' +left join m_courier on T_RefDeliveryOrderM_CourierID = M_CourierID +left join m_staff on M_CourierM_StaffID = M_StaffID +left join m_sex on M_PatientM_SexID = M_SexID + +where T_RefDeliveryOrderID = PID and T_RefDeliveryOrderIsExternal = PTipe + +order by T_OrderHeaderID $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_r_033` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_r_033`(IN `PStartDate` date, IN `PEndDate` date, IN `PStaffID` int, IN `username` varchar(100)) +select +T_OrderHeaderDate, +M_CompanyOldID, +M_CompanyNumber, +M_CompanyName, +M_CompanyAddress, +M_MouName, +M_OmzetTypeName, + sum(T_OrderHeaderTotal) as total, + count(T_OrderHeaderID ) as pasien, +M_OmzetTypeID, +M_StaffName, +M_StaffID ,M_CityName,M_CompanyPhone,M_CompanyHp + +from t_orderheader +join m_company on T_OrderHeaderM_CompanyID = M_CompanyID and M_CompanyIsActive = 'Y' +join m_mou on T_OrderHeaderM_MouID = M_MouID and M_MouIsActive = 'Y' +join m_omzettype on M_MouM_OmzetTypeID = M_OmzetTypeID and M_OmzetTypeIsActive = 'Y' +join m_staff on M_CompanyM_StaffID = M_StaffID and M_StaffIsActive = 'Y' +left join f_payment on F_PaymentT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y' +left join (select regional_cd, pro_cd, kab_cd from regional) reg_company on NULLIF(TRIM(M_CompanyAddressRegionalCd), "") = reg_company.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_company_city on CONCAT(reg_company.pro_cd, reg_company.kab_cd, "000000") = reg_company_city.regional_cd + +where DATE(T_OrderHeaderDate) between PStartDate and PEndDate +and (PStaffID= 0 or (PStaffID > 0 and M_StaffID = PStaffID)) +and T_OrderHeaderIsActive = 'Y' + +group by M_MouID + +order by M_StaffID $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_t_005` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_t_005`(IN `PID` int, IN `username` varchar(100)) +begin +select +T_OrderRefOutHeaderDate, +T_OrderRefOutHeaderNumber, +M_CompanyName, +M_CompanyAddress, +M_CompanyPhone, +M_CityName, +M_DistrictName, +M_KelurahanName, +T_OrderRefOutDate, +T_TestName, +T_SampleTypeName, +T_OrderHeaderM_PatientAge, +M_SexName,M_SexCode,T_OrderHeaderDate, + fn_lookup_external(T_OrderHeaderLabNumber,'L') T_OrderHeaderLabNumber, +CONCAT(T_OrderHeaderM_PatientAge," / ",M_SexCode) AS Umur, +CONCAT(M_TitleName," ",ifnull(M_PatientPrefix,'')," ",M_PatientName," ",ifnull(M_PatientSuffix,'')) AS M_PatientName , +T_OrderSampleBarcode, +M_StaffName +from +t_orderrefoutheader +left join m_company on T_OrderRefOutHeaderM_CompanyID = M_CompanyID +left join (select regional_cd, regional_nm as M_KelurahanName, pro_cd, kab_cd, kec_cd from regional) reg_company on NULLIF(TRIM(M_CompanyAddressRegionalCd), "") = reg_company.regional_cd +left join (select regional_cd, regional_nm as M_DistrictName from regional) reg_company_kec on CONCAT(reg_company.pro_cd, reg_company.kab_cd, reg_company.kec_cd, "000") = reg_company_kec.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_company_kab on CONCAT(reg_company.pro_cd, reg_company.kab_cd, "000000") = reg_company_kab.regional_cd +left join t_orderrefout on T_OrderRefOutT_OrderRefOutHeaderID = T_OrderRefOutHeaderID and T_OrderRefOutIsActive = 'y' +left join t_test on T_OrderRefOutT_TestID = T_TestID +left join t_sampletype on T_OrderRefOutT_SampleTypeID = T_SampleTypeID +left join t_orderheader on T_OrderRefOutT_OrderHeaderID = T_OrderHeaderID +left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' +left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y' +left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' +left join t_ordersample on T_OrderSampleT_OrderHeaderID = T_OrderHeaderID and T_OrderSampleIsActive = 'Y' and T_OrderSampleT_SampleTypeID = T_OrderRefOutT_SampleTypeID +left join m_courier on T_OrderRefOutHeaderM_CourierID = M_CourierID AND M_CourierIsActive = 'Y' +left join m_staff on M_CourierM_StaffID = M_StaffID +where +T_OrderRefOutHeaderID = PID + +; end $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_t_007` $$ +CREATE DEFINER=`rptadi`@`localhost` PROCEDURE `sp_rpt_t_007`(IN `PID` int, IN `username` varchar(100)) +begin +select DISTINCT +DATE_FORMAT(now(), "%d-%m-%Y %T") AS DATENOW, +F_BillID, +F_BillNo, +F_BillM_CompanyID, +M_CompanyName, +M_CityName, +M_CompanyAddress, +M_CompanyPhone, +M_CompanyFax, +M_CompanyEmail, +F_BillM_MouID, +fi.F_BillIssuePIC AS M_CompanyPICName, +0 as otherpayment, +if(F_BillM_MouID = '0',"Semua Agreement",m.M_MouName) as M_MouName , +mm.M_MouName as agreement, +F_BillDueDate, +F_BillTotal, +F_BillCreated, +F_BillNote, +T_OrderHeaderDate, +T_OrderHeaderLabNumber, + CONCAT(M_TitleName," ",ifnull(M_PatientPrefix,'')," ",M_PatientName," ",ifnull(M_PatientSuffix,'')) AS M_PatientName, +ifnull (T_OrderHeaderTotal, 0) AS T_OrderHeaderTotal, +S_SystemsCompanyName, +concat(S_SystemsCompanyAddress," ",S_SystemsCompanyCity," ",S_SystemsCompanyCityFooter," Telp. ", S_SystemsCompanyPhone," Fax. ", S_SystemsCompanyFax) as alamatcabang, + S_SystemsEmailAddress,M_No_FormRev,S_SystemsCompanyCity, +`fn_get_test_detail`(T_OrderHeaderID) as pemeriksaan + +from +f_bill +left join m_company on F_BillM_CompanyID = M_CompanyID +left join m_mou m on F_BillM_MouID = m.M_MouID +left join (select regional_cd, pro_cd, kab_cd from regional) reg_company on NULLIF(TRIM(M_CompanyAddressRegionalCd), "") = reg_company.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_company_city on CONCAT(reg_company.pro_cd, reg_company.kab_cd, "000000") = reg_company_city.regional_cd +left join f_bill_detail on F_BillDetailF_BillID = F_BillID and F_BillDetailIsActive = 'Y' +left join t_orderheader on F_BillDetailT_OrderHeaderID =T_OrderHeaderID +left join m_patient on T_OrderHeaderM_PatientID = M_PatientID + left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' +LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "NOTA" +left join m_mou mm on T_OrderHeaderM_MouID = mm.M_MouID +left join conf_systems on S_SystemsID > 0 +left join f_bill_issue fi on fi.F_BillIssueF_BillID = F_BillID and fi.F_BillIssueIsActive = 'Y' + +where +F_BillID = PID +; +end $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_t_007_pusat` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_t_007_pusat`(IN `PID` int, IN `username` varchar(100)) +begin +select +DATE_FORMAT(now(), "%d-%m-%Y %T") AS DATENOW, +F_BillID, +F_BillNo, +F_BillM_CompanyID, +M_CompanyName, +M_CityName, +M_CompanyAddress,M_CompanyPIC, + +M_CompanyPhone, +M_CompanyFax, +M_CompanyEmail, +F_BillM_MouID, +if(F_BillM_MouID = '0',"Semua Agreement",m.M_MouName) as M_MouName , +mm.M_MouName as agreement, +F_BillDueDate, +F_BillTotal, +F_BillCreated, +F_BillNote, +T_OrderHeaderDate, +T_OrderHeaderLabNumber, + CONCAT(M_TitleName," ",ifnull(M_PatientPrefix,'')," ",M_PatientName," ",ifnull(M_PatientSuffix,'')) AS M_PatientName, +T_OrderHeaderTotal, +S_SystemsCompanyName, +concat(S_SystemsCompanyAddress," ",S_SystemsCompanyCity," ",S_SystemsCompanyCityFooter," Telp. ", S_SystemsCompanyPhone," Fax. ", S_SystemsCompanyFax) as alamatcabang, + S_SystemsEmailAddress,M_No_FormRev,S_SystemsCompanyCity, +`fn_get_test_detail`(T_OrderHeaderID) as pemeriksaan + +from +f_bill +left join m_company on F_BillM_CompanyID = M_CompanyID +left join m_mou m on F_BillM_MouID = m.M_MouID +left join (select regional_cd, pro_cd, kab_cd from regional) reg_company on NULLIF(TRIM(M_CompanyAddressRegionalCd), "") = reg_company.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_company_city on CONCAT(reg_company.pro_cd, reg_company.kab_cd, "000000") = reg_company_city.regional_cd +left join f_bill_detail on F_BillDetailF_BillID = F_BillID and F_BillDetailIsActive = 'Y' +left join t_orderheader on F_BillDetailT_OrderHeaderID =T_OrderHeaderID +left join m_patient on T_OrderHeaderM_PatientID = M_PatientID + left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' +LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "NOTA" +left join m_mou mm on T_OrderHeaderM_MouID = mm.M_MouID +left join conf_systems on S_SystemsID > 0 + +where +F_BillID = PID +; +end $$ + +DROP PROCEDURE IF EXISTS `sp_rpt_t_008` $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_t_008`(IN `PID` int, IN `username` varchar(100)) +begin +select + +F_BillPaymentID, +F_BillPaymentF_BillID, +F_BillPaymentDate, +F_BillPaymentNumber, +F_BillPaymentNote, +F_BillPaymentAmount, +F_BillPaymentM_PaymentTypeID, +F_BillPaymentEDCNat_BankID, +F_BillPaymentCardNat_BankID, +F_BillPaymentM_BankAccountID, +F_BillPaymentCreated, +F_BillNo, + M_CompanyName, +M_CityName, +M_CompanyAddress, +M_CompanyPhone, M_CompanyPIC, +M_CompanyFax, +M_CompanyEmail, +F_BillM_MouID, +M_MouName, +F_BillDueDate, +F_BillTotal, +F_BillCreated, +F_BillNote, +T_OrderHeaderDate, + fn_lookup_external(T_OrderHeaderLabNumber,'L') T_OrderHeaderLabNumber, + CONCAT(M_TitleName," ",ifnull(M_PatientPrefix,'')," ",M_PatientName," ",ifnull(M_PatientSuffix,'')) AS M_PatientName, +T_OrderHeaderTotal, +M_PaymentTypeName, +F_BillPaymentDetailAmount, +F_PaymentDate, +F_PaymentNumber, +F_PaymentNote, +F_PaymentTotal, +DATE_FORMAT(now(), "%d-%m-%Y %T") AS DATENOW, +S_SystemsCompanyName, +concat(S_SystemsCompanyAddress," ",S_SystemsCompanyCity," ",S_SystemsCompanyCityFooter," Telp. ", S_SystemsCompanyPhone," Fax. ", S_SystemsCompanyFax) as alamatcabang, + S_SystemsEmailAddress,M_No_FormRev,S_SystemsCompanyCity + +from +f_bill_payment +left join f_bill_payment_detail on F_BillPaymentDetailF_BillPaymentID = F_BillPaymentID +left join f_bill on F_BillPaymentF_BillID = F_BillID +join f_bill_detail on F_BillPaymentDetailF_BillDetailID = F_BillDetailID +left join m_company on F_BillM_CompanyID = M_CompanyID +left join m_mou on F_BillM_MouID =M_MouID +left join (select regional_cd, pro_cd, kab_cd from regional) reg_company on NULLIF(TRIM(M_CompanyAddressRegionalCd), "") = reg_company.regional_cd +left join (select regional_cd, regional_nm as M_CityName from regional) reg_company_city on CONCAT(reg_company.pro_cd, reg_company.kab_cd, "000000") = reg_company_city.regional_cd +left join t_orderheader on F_BillDetailT_OrderHeaderID =T_OrderHeaderID +left join m_patient on T_OrderHeaderM_PatientID = M_PatientID + left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y' +left join m_paymenttype on F_BillPaymentM_PaymentTypeID = M_PaymentTypeID +left join f_payment on F_BillPaymentDetailF_PaymentID = F_PaymentID +LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = "NOTA" +left join conf_systems on S_SystemsID > 0 + +where F_BillPaymentIsActive = 'y' and F_BillPaymentID = PID +; +end $$ + +DELIMITER ; + +-- Auto-fixed procedures: +-- sp_fo_clinic_load +-- sp_fo_clinic_load_fx +-- sp_fo_delivery_address +-- sp_fo_delivery_address_mcu +-- sp_fo_delivery_address_v3_bandung +-- sp_fo_payment_get_delivery +-- sp_fo_register_load +-- sp_rpt_hasil_framingham +-- sp_rpt_hasil_header +-- sp_rpt_hasil_header_nonLab +-- sp_rpt_hasil_preparasi_sperma +-- sp_rpt_hasil_sk +-- sp_rpt_hasil_sk_1 +-- sp_rpt_hasil_sk_2 +-- sp_rpt_hasil_sk_3 +-- sp_rpt_hasil_sk_4 +-- sp_rpt_hasil_sk_eng +-- sp_rpt_hasil_sk_eng_4 +-- sp_rpt_hasil_sk_panel +-- sp_rpt_hasil_sk_pasport +-- sp_rpt_hasil_sk_pasport_eng +-- sp_rpt_hasil_smwt +-- sp_rpt_bill_issue_inv +-- sp_rpt_klinik_001 +-- sp_rpt_medis_001 +-- sp_rpt_medis_002 +-- sp_rpt_m_doctor +-- sp_rpt_nl_005 +-- sp_rpt_pajak_001 +-- sp_rpt_pm_001 +-- sp_rpt_p_001 +-- sp_rpt_resep_001 +-- sp_rpt_r_033 +-- sp_rpt_r_015 +-- sp_rpt_r_046 +-- sp_rpt_r_047 +-- sp_rpt_r_077 +-- sp_rpt_r_085 +-- sp_rpt_r_086 +-- sp_rpt_r_087 +-- sp_rpt_r_088 +-- sp_rpt_scanning_klinik +-- sp_rpt_t_001 +-- sp_rpt_t_001ii +-- sp_rpt_t_001_eng +-- sp_rpt_t_002 +-- sp_rpt_t_002_eng +-- sp_rpt_t_003 +-- sp_rpt_t_003x +-- sp_rpt_t_003_eng +-- sp_rpt_t_003_pe +-- sp_rpt_t_005 +-- sp_rpt_t_006 +-- sp_rpt_t_006x +-- sp_rpt_t_007 +-- sp_rpt_t_007_pusat +-- sp_rpt_t_008 +-- sp_rpt_t_011 +-- sp_rpt_t_012 +-- sp_rpt_t_013 +-- sp_rpt_t_014 +-- sp_rpt_t_015 +-- sp_rpt_t_hasil2 +-- sp_rpt_t_hasil2_auto +-- sp_rpt_t_hasil_email +-- sp_rpt_t_hasil_email_auto +-- sp_rpt_t_hasil_eng +-- sp_rpt_t_hasil_eng_auto +-- sp_rpt_t_hasil_image +-- sp_rpt_t_hasil_rspad +-- sp_rpt_t_hasil_so_layanan + +-- Manual review required: +-- sp_rpt_m_company +-- sp_rpt_md_001 +-- sp_rpt_mr_008 +-- sp_rpt_mr_008_surabaya +-- sp_rpt_mr_011 +-- sp_satusehat_mapping_district +-- sp_satusehat_mapping_kelurahan +-- sp_satusehat_x_kelurahan_temp