Versi 2.5.3-24061400

Gagal buat surat kontrol berulang

Silahkan eksekusi perintah ini di database

-- --------------------------------------------------------
-- Host:                         0.0.0.0
-- Server version:               8.0.11 - MySQL Community Server - GPL
-- Server OS:                    Linux
-- HeidiSQL Version:             12.7.0.6850
-- --------------------------------------------------------

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET NAMES utf8 */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

-- Dumping database structure for pendaftaran
USE `pendaftaran`;

-- Dumping structure for function pendaftaran.getPendaftaranAsal
DROP FUNCTION IF EXISTS `getPendaftaranAsal`;
DELIMITER //
CREATE FUNCTION `getPendaftaranAsal`(
	`PKUNJUNGAN_NOMOR` CHAR(19),
	`PPENJAMIN_ID` SMALLINT,
	`PRUANGAN_ID` CHAR(10)
) RETURNS json
    DETERMINISTIC
BEGIN
	DECLARE VNORM INT;
	DECLARE VTANGGAL DATETIME;
	DECLARE VSEP CHAR(25) DEFAULT '';
	DECLARE VRUJUKAN_NOMOR CHAR(25);
	DECLARE VRUJUKAN_TANGGAL DATE;
	DECLARE VRUJUKAN_EXPIRE SMALLINT;
	DECLARE VPPK INT;
	DECLARE VPENDAFTARAN_NOMOR CHAR(10);
	DECLARE VPASCA_RAWAT_INAP TINYINT DEFAULT 0;
	
	SELECT i.PPK
	  INTO VPPK
	  FROM aplikasi.instansi i
	 LIMIT 1;
	
	SELECT p2.NORM, p2.TANGGAL
	  INTO VNORM, VTANGGAL
	  FROM pendaftaran.kunjungan k,
	       pendaftaran.pendaftaran p,
	       pendaftaran.surat_rujukan_pasien srp,
	       pendaftaran.penjamin pj,
	       pendaftaran.pendaftaran p2
	 WHERE k.NOMOR = PKUNJUNGAN_NOMOR
	   AND p.NOMOR = k.NOPEN
	   AND srp.ID = p.RUJUKAN
		AND srp.PPK = VPPK
		AND pj.JENIS = PPENJAMIN_ID
		AND pj.NOMOR = srp.NOMOR
		AND p2.NOMOR = pj.NOPEN
	LIMIT 1;
   
   IF NOT VNORM IS NULL THEN
   	SET VPASCA_RAWAT_INAP = 1;
   	
		SELECT p.NOMOR, pj.NOMOR, srp.NOMOR, srp.TANGGAL, DATEDIFF(DATE(NOW()), srp.TANGGAL)
		  INTO VPENDAFTARAN_NOMOR, VSEP, VRUJUKAN_NOMOR, VRUJUKAN_TANGGAL, VRUJUKAN_EXPIRE
		  FROM pendaftaran.pendaftaran p,
		  	    pendaftaran.penjamin pj,
		  	    pendaftaran.tujuan_pasien tp,
		  	    pendaftaran.surat_rujukan_pasien srp,
		  	    `master`.ruangan r
		 WHERE p.NORM = VNORM
		   AND p.TANGGAL < VTANGGAL
		   AND p.`STATUS` IN (1, 2)
		   AND pj.NOPEN = p.NOMOR
		   AND pj.JENIS = PPENJAMIN_ID
		   AND tp.NOPEN = p.NOMOR
		   AND tp.RUANGAN = PRUANGAN_ID
			AND srp.ID = p.RUJUKAN
		   AND r.ID = tp.RUANGAN
		   AND r.JENIS_KUNJUNGAN = 1
		 ORDER BY p.TANGGAL DESC
		 LIMIT 1;
		
		IF VSEP IS NULL THEN
			SELECT p.NOMOR, pj.NOMOR, srp.NOMOR, srp.TANGGAL, DATEDIFF(DATE(NOW()), srp.TANGGAL)
			  INTO VPENDAFTARAN_NOMOR, VSEP, VRUJUKAN_NOMOR, VRUJUKAN_TANGGAL, VRUJUKAN_EXPIRE
			  FROM pendaftaran.pendaftaran p,
			  	    pendaftaran.penjamin pj,
			  	    pendaftaran.tujuan_pasien tp,
			  	    pendaftaran.surat_rujukan_pasien srp,
			  	    `master`.ruangan r
			 WHERE p.NORM = VNORM
			   AND p.TANGGAL < VTANGGAL
			   AND p.`STATUS` IN (1, 2)
			   AND pj.NOPEN = p.NOMOR
			   AND pj.JENIS = PPENJAMIN_ID
			   AND tp.NOPEN = p.NOMOR
			   AND srp.ID = p.RUJUKAN
			   AND r.ID = tp.RUANGAN
			   AND r.JENIS_KUNJUNGAN = 1
			   AND NOT r.ID IN (PRUANGAN)
			 ORDER BY p.TANGGAL DESC
			 LIMIT 1;
		END IF;
	ELSE
		SET VPASCA_RAWAT_INAP = 0;
		SELECT k.NOPEN, pj.NOMOR, srp.NOMOR, srp.TANGGAL, DATEDIFF(DATE(NOW()), srp.TANGGAL)
		  INTO VPENDAFTARAN_NOMOR, VSEP, VRUJUKAN_NOMOR, VRUJUKAN_TANGGAL, VRUJUKAN_EXPIRE
		  FROM pendaftaran.kunjungan k,
		       pendaftaran.pendaftaran p,
		       pendaftaran.surat_rujukan_pasien srp,
		       pendaftaran.penjamin pj
		 WHERE k.NOMOR = PKUNJUNGAN_NOMOR
		   AND p.NOMOR = k.NOPEN
		   AND srp.ID = p.RUJUKAN
		   AND pj.NOPEN = p.NOMOR 
		   AND pj.JENIS = PPENJAMIN_ID
		LIMIT 1;
	END IF;
 
	RETURN JSON_OBJECT(
		'PASCA_RAWAT_INAP', VPASCA_RAWAT_INAP,
	   'PENDAFTARAN_NOMOR', VPENDAFTARAN_NOMOR,
		'SEP_NOMOR', VSEP,
		'RUJUKAN_NOMOR', VRUJUKAN_NOMOR,
		'RUJUKAN_TANGGAL', VRUJUKAN_TANGGAL,
		'RUJUKAN_EXPIRE', IF(VRUJUKAN_EXPIRE <= 90, 0, 1)
	);
END//
DELIMITER ;

/*!40103 SET TIME_ZONE=IFNULL(@OLD_TIME_ZONE, 'system') */;
/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
/*!40014 SET FOREIGN_KEY_CHECKS=IFNULL(@OLD_FOREIGN_KEY_CHECKS, 1) */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40111 SET SQL_NOTES=IFNULL(@OLD_SQL_NOTES, 1) */;