diff --git a/application/controllers/cpone/mcuoffline/Preregisterv2.php b/application/controllers/cpone/mcuoffline/Preregisterv2.php
index ad5c73e..16567b4 100644
--- a/application/controllers/cpone/mcuoffline/Preregisterv2.php
+++ b/application/controllers/cpone/mcuoffline/Preregisterv2.php
@@ -105,10 +105,10 @@ class Preregisterv2 extends MY_Controller
// exit;
$batchSize = 500; // Define the batch size
-
+
// Split the array into chunks of 250 records
$dataChunks = array_chunk($datas, $batchSize);
-
+
// Loop through each chunk and insert the batch
foreach ($dataChunks as $batchData) {
$insertData = [];
@@ -123,7 +123,7 @@ class Preregisterv2 extends MY_Controller
json_encode($batchData),
$userid
));
-
+
}
$exist_patients_arr = [];
@@ -193,8 +193,8 @@ class Preregisterv2 extends MY_Controller
$patient_id = 0;
if ($v['PID'] != '') {
- $sql = "SELECT *
- FROM m_patient
+ $sql = "SELECT *
+ FROM m_patient
WHERE M_PatientNoReg = '{$v['PID']}' LIMIT 1";
$query = $this->db->query($sql);
if(!$query){
@@ -227,17 +227,17 @@ class Preregisterv2 extends MY_Controller
}
if ($v['KTP'] != '') {
- $sql = "SELECT *
- FROM m_patient
- WHERE
- M_PatientIdentifierCode = 'NNIDN' AND
+ $sql = "SELECT *
+ FROM m_patient
+ WHERE
+ M_PatientIdentifierCode = 'NNIDN' AND
M_PatientIdentifierValue = '{$v['KTP']}' AND
M_PatientIsActive = 'Y' LIMIT 1";
$query = $this->db->query($sql);
if(!$query){
$last_qry = $this->db->last_query();
$this->db->trans_rollback();
-
+
$this->sys_error("select m_patient : ".$last_qry);
exit;
}
@@ -280,7 +280,7 @@ class Preregisterv2 extends MY_Controller
} else {
$last_qry = $this->db->last_query();
$this->db->trans_rollback();
-
+
$this->sys_error("select corporate : ".$last_qry);
exit;
}
@@ -289,17 +289,17 @@ class Preregisterv2 extends MY_Controller
$v['NAMA'] = addslashes($v['NAMA']);
$sql_pre = "SELECT * FROM mcu_preregister_patients WHERE (
- Mcu_PreregisterPatientsPatientName = '{$v['NAMA']}' AND
- Mcu_PreregisterPatientsDOB = '{$pdob}' AND
+ Mcu_PreregisterPatientsPatientName = '{$v['NAMA']}' AND
+ Mcu_PreregisterPatientsDOB = '{$pdob}' AND
Mcu_PreregisterPatientsNIP = '{$v['NIP']}'
- ) AND
+ ) AND
Mcu_PreregisterPatientsMgm_McuID = '{$prm['xid']}' AND
Mcu_PreregisterPatientsIsActive = 'Y' LIMIT 1";
$qry_pre = $this->db->query($sql_pre);
if(!$qry_pre){
$last_qry = $this->db->last_query();
$this->db->trans_rollback();
-
+
$this->sys_error("select mcu_preregister_patients : ".$last_qry);
exit;
}
@@ -354,7 +354,7 @@ class Preregisterv2 extends MY_Controller
if(!$rows){
$last_qry = $this->db->last_query();
$this->db->trans_rollback();
-
+
$this->sys_error("insert mcu_preregister_patients : ".$last_qry);
exit;
}
@@ -362,18 +362,18 @@ class Preregisterv2 extends MY_Controller
$last_id_x = $this->db->insert_id();
if ($patient_id == 0) {
- $sql = "SELECT *
+ $sql = "SELECT *
FROM m_patient
WHERE
- M_PatientName = '{$v['NAMA']}' AND
- M_PatientDOB = '{$pdob}' AND
+ M_PatientName = '{$v['NAMA']}' AND
+ M_PatientDOB = '{$pdob}' AND
M_PatientNIP = '{$v['NIP']}' AND
M_PatientIsActive = 'Y' LIMIT 1";
$query = $this->db->query($sql);
if(!$query){
$last_qry = $this->db->last_query();
$this->db->trans_rollback();
-
+
$this->sys_error("select m_patient : ".$last_qry);
exit;
}
@@ -384,9 +384,9 @@ class Preregisterv2 extends MY_Controller
//echo $sql;
}
- $sql_cor = "SELECT *
+ $sql_cor = "SELECT *
FROM corporate
- WHERE
+ WHERE
CorporateID = '{$prm['corporateID']}' AND
CorporateIsActive = 'Y' LIMIT 1";
$qry_cor = $this->db->query($sql_cor);
@@ -404,9 +404,9 @@ class Preregisterv2 extends MY_Controller
if ($v['CORPORATE'] == '') {
$corporate_id = $prm['corporateID'];
} else {
- $sql_cor = "SELECT *
+ $sql_cor = "SELECT *
FROM corporate
- WHERE
+ WHERE
CorporateCode = '{$v['CORPORATE']}' AND
CorporateIsActive = 'Y' LIMIT 1";
$query = $this->db->query($sql_cor);
@@ -539,7 +539,7 @@ class Preregisterv2 extends MY_Controller
//echo $this->db->last_query();
}
- $sql = "UPDATE mcu_preregister_patients SET Mcu_PreregisterPatientsM_PatientID = {$patient_id}
+ $sql = "UPDATE mcu_preregister_patients SET Mcu_PreregisterPatientsM_PatientID = {$patient_id}
WHERE Mcu_PreregisterPatientsID = {$last_id_x}";
$query = $this->db->query($sql);
if(!$query){
@@ -559,7 +559,7 @@ class Preregisterv2 extends MY_Controller
} else {
$this->db->trans_commit();
}
-
+
@@ -643,8 +643,8 @@ class Preregisterv2 extends MY_Controller
$number_offset = ($prm['current_page'] - 1) * $number_limit;
$sql = " SELECT count(*) as total
FROM mcu_preregister_patients
- WHERE
- Mcu_PreregisterPatientsMgm_McuID = {$prm['mgm_mcuid']} AND
+ WHERE
+ Mcu_PreregisterPatientsMgm_McuID = {$prm['mgm_mcuid']} AND
Mcu_PreregisterPatientsIsActive = 'Y'
$sql_where
";
@@ -668,7 +668,7 @@ class Preregisterv2 extends MY_Controller
FROM mcu_offline_prepare
JOIN m_company ON McuOfflinePrepareM_CompanyID = M_CompanyID
WHERE
- McuOfflinePrepareIsDownloaded = 'Y' AND
+ McuOfflinePrepareIsDownloaded = 'Y' AND
McuOfflinePrepareIsActive = 'Y'";
//echo $sq
$xrow = $this->db_onedev->query($sql)->row_array();*/
@@ -676,7 +676,7 @@ class Preregisterv2 extends MY_Controller
$sql = "SELECT mcu_preregister_patients.*,
DATE_FORMAT(Mcu_PreregisterPatientsDOB, '%d-%m-%Y') as dob
FROM mcu_preregister_patients
- WHERE
+ WHERE
Mcu_PreregisterPatientsMgm_McuID = {$prm['mgm_mcuid']} AND Mcu_PreregisterPatientsIsActive = 'Y'
$sql_where
ORDER BY Mcu_PreregisterPatientsPatientName ASC
@@ -894,8 +894,8 @@ class Preregisterv2 extends MY_Controller
if ($v['PID'] != '') {
- $sql = "SELECT *
- FROM m_patient
+ $sql = "SELECT *
+ FROM m_patient
JOIN m_sex ON M_PatientM_SexID = M_SexID
WHERE M_PatientNoReg = '{$v['PID']}' LIMIT 1";
$exist_r = $this->db_onedev->query($sql)->row_array();
@@ -919,11 +919,11 @@ class Preregisterv2 extends MY_Controller
}
if ($v['KTP'] != '') {
- $sql = "SELECT *
- FROM m_patient
+ $sql = "SELECT *
+ FROM m_patient
JOIN m_sex ON M_PatientM_SexID = M_SexID
- WHERE M_PatientM_IdTypeID = 1 AND
- M_PatientIDNumber = '{$v['KTP']}' AND
+ WHERE M_PatientM_IdTypeID = 1 AND
+ M_PatientIDNumber = '{$v['KTP']}' AND
M_PatientIsActive = 'Y'
LIMIT 1";
$exist_r = $this->db_onedev->query($sql)->row_array();
@@ -1011,19 +1011,19 @@ class Preregisterv2 extends MY_Controller
if ($rows) {
$last_id_x = $this->db_onedev->insert_id();
- $sql = "SELECT *
- FROM mcu_offline_prepare
+ $sql = "SELECT *
+ FROM mcu_offline_prepare
JOIN m_company ON McuOfflinePrepareM_CompanyID = M_CompanyID
WHERE McuOfflinePrepareID = {$prm['xid']}";
$row_header = $this->db_onedev->query($sql)->row_array();
//print_r($row_header);
if ($patient_id == 0) {
- $sql = "SELECT *
+ $sql = "SELECT *
FROM m_patient
WHERE
- M_PatientName = '{$v['NAMA']}' AND
- M_PatientDOB = '{$pdob}' AND
+ M_PatientName = '{$v['NAMA']}' AND
+ M_PatientDOB = '{$pdob}' AND
M_PatientNIP = '{$v['NIK']}' AND
M_PatientIsActive = 'Y' LIMIT 1";
$exist_r = $this->db_onedev->query($sql)->row_array();
diff --git a/application/controllers/cpone/mcuoffline/Preregisterv3.php b/application/controllers/cpone/mcuoffline/Preregisterv3.php
new file mode 100644
index 0000000..0e58727
--- /dev/null
+++ b/application/controllers/cpone/mcuoffline/Preregisterv3.php
@@ -0,0 +1,1469 @@
+db = $this->load->database("cpone", true);
+ }
+
+ public function index()
+ {
+ // $cek = $this->db->query("select database() as current_db")->result();
+ // print_r($cek);
+ echo "PATIENT API";
+ }
+
+ function getmgmmcu()
+ {
+ try {
+ if (!$this->isLogin) {
+ $this->sys_error("Invalid Token");
+ exit;
+ }
+ $prm = $this->sys_input;
+
+ $sql = "SELECT Mgm_McuID,
+ CONCAT(Mgm_McuLabel,' ', '[', Mgm_McuNumber, ']') as mcuName,
+ DATE_FORMAT(Mgm_McuStartDate, '%d-%m-%Y') as Mgm_McuStartDate,
+ DATE_FORMAT(Mgm_McuEndDate, '%d-%m-%Y') as Mgm_McuEndDate,
+ Mgm_McuFlagRelasiBayarSendiri,
+ Mgm_McuBisaTambahPemeriksaan,
+ Mgm_McuLabel,
+ Mgm_McuNumber,
+ Mgm_McuNumberNational,
+ Mgm_McuNote,
+ Mgm_McuCorporateID
+ FROM mgm_mcu
+ WHERE Mgm_McuIsActive = 'Y'";
+ $qry = $this->db->query($sql);
+ if ($qry) {
+ $rows = $qry->result_array();
+ } else {
+ $this->sys_error_db("mcu select error", $this->db);
+ exit;
+ }
+
+ $result = array(
+ "records" => $rows,
+ "sql" => $this->db->last_query()
+ );
+ $this->sys_ok($result);
+ } catch (Exception $exc) {
+ $message = $exc->getMessage();
+ $this->sys_error($message);
+ }
+ }
+
+ function cekKTP($nik, $tanggal, $bulan, $tahun)
+ {
+ if (strlen($nik) != 16) {
+ return false;
+ }
+ $d = substr($nik, 6, 2);
+ $m = substr($nik, 8, 2);
+ $y = substr($nik, 10, 2);
+
+ //jika tahun full, ambil 2 digit terakhir
+ if (strlen($tahun == 4)) {
+ $tahun = substr($tahun, 2, 2);
+ }
+ if (intval($d) > 40) {
+ //Wanita
+ $d = intval($d) - 40;
+ }
+ if ($tanggal / $d != 1) {
+ return false;
+ }
+
+ if ($bulan / $m != 1) {
+ return false;
+ }
+
+ if ($tahun / $y != 1) {
+ return false;
+ }
+ //setelah berhasil melewati rintangan, berarti nomornya valid (tidak 100% valid)
+ return true;
+ }
+
+ function savecsv()
+ {
+ try {
+ if (!$this->isLogin) {
+ $this->sys_error("Invalid Token");
+ exit;
+ }
+ $userid = $this->sys_user["M_UserID"];
+ $prm = $this->sys_input;
+ $datas = $prm['data'];
+ // print_r($prm);
+ // exit;
+
+ $batchSize = 500; // Define the batch size
+
+ // Split the array into chunks of 250 records
+ $dataChunks = array_chunk($datas, $batchSize);
+
+ // Loop through each chunk and insert the batch
+ foreach ($dataChunks as $batchData) {
+ $insertData = [];
+ $sql = "INSERT INTO cpone_log.log_xls(
+ Mgm_McuID,
+ trx_date,
+ json,
+ userid
+ ) VALUES(?,NOW(),?,?)";
+ $save_log = $this->db->query($sql,array(
+ $prm['xid'],
+ json_encode($batchData),
+ $userid
+ ));
+
+ }
+
+ $exist_patients_arr = [];
+ $exist_pat = [];
+ foreach ($datas as $k => $v) {
+ $timestamp = strtotime($v['TANGGAL_LAHIR']);
+ $pdob = date('Y-m-d', $timestamp);
+ $v['NAMA'] = trim(str_replace("'", "\\'", $v['NAMA']));
+ $datas[$k]['NAMA'] = trim(str_replace("'", "\\'", $v['NAMA']));
+ $datas[$k]['LOKASI'] = trim(str_replace("'", "\\'", $v['LOKASI']));
+ $datas[$k]['DEPARTEMENT'] = trim(str_replace("'", "\\'", $v['DEPARTEMENT']));
+ $datas[$k]['DIVISI'] = trim(str_replace("'", "\\'", $v['DIVISI']));
+ $datas[$k]['JOB'] = trim(str_replace("'", "\\'", $v['JOB']));
+ $datas[$k]['POSISI'] = trim(str_replace("'", "\\'", $v['POSISI']));
+
+ $idxxxist = $v['NAMA'].$pdob.$v['NIP'];
+ if (in_array($idxxxist, $exist_patients_arr))
+ $exist_pat[] = $idxxxist;
+ else
+ $exist_patients_arr[] = $idxxxist;
+ }
+
+ // exit;
+ if(count($exist_pat) > 0){
+ $dt_error = join("",$exist_pat);
+ $this->sys_error("Ada data pasien yang sama : ".$dt_error );
+ exit;
+ }
+
+
+ // bisa upload file excel beberapa kali
+ // $sql = "UPDATE mcu_preregister_patients SET Mcu_PreregisterPatientsIsActive = 'N' WHERE Mcu_PreregisterPatientsMgm_McuID = '{$prm['xid']}'";
+ // $this->db->query($sql);
+ //echo $sql;
+
+ $this->db->trans_begin();
+
+ foreach ($datas as $k => $v) {
+
+ $timestamp = strtotime($v['TANGGAL_LAHIR']);
+ $pdob = date('Y-m-d', $timestamp);
+
+ // $arrDate = explode('-', $pdob);
+ // $year = $arrDate[0];
+ // $month = $arrDate[1];
+ // $day = $arrDate[2];
+
+
+ // print_r($year);
+ // print_r($month);
+ // print_r($day);
+
+ // $cekPatientKTP = $this->cekKTP($v['KTP'], $day, $month, $year);
+
+ // print_r($cekPatientKTP);
+
+ // if ($cekPatientKTP) {
+ // print_r("benar");
+ // exit;
+ // } else {
+ // print_r("salah");
+ // exit;
+ // }
+ // exit;
+
+ $v['NAMA'] = str_replace("'", "\\'", $v['NAMA']);
+ $patient_id = 0;
+
+ if ($v['PID'] != '') {
+ $sql = "SELECT *
+ FROM m_patient
+ WHERE M_PatientNoReg = '{$v['PID']}' LIMIT 1";
+ $query = $this->db->query($sql);
+ if(!$query){
+ $last_qry = $this->db->last_query();
+ $this->db->trans_rollback();
+ $this->sys_error("select m_patient : ".$last_qry);
+ exit;
+ }
+ $exist_r = $query->row_array();
+
+
+ if ($exist_r) {
+ $patient_id = $exist_r["M_PatientID"];
+ $v['NAMA'] = addslashes($exist_r["M_PatientName"]);
+ $pdob = date('Y-m-d', strtotime($exist_r['M_PatientDOB']));
+ $title_id = $exist_r["M_PatientM_TitleID"];
+ $sex_id = $exist_r["M_PatientGender"];
+ $religion_id = $exist_r["M_PatientReligionCode"];
+ $v['NIK'] = $v['NIK'] ? $v['NIK'] : $exist_r["M_PatientNIK"];
+ $v['EMAIL'] = $v['EMAIL'] ? $v['EMAIL'] : $exist_r["M_PatientEmail"];
+ $v['HP'] = $v['HP'] ? $v['HP'] : $exist_r["M_PatientHP"];
+ $v['JOB'] = $v['JOB'] ? addslashes($v['JOB']) : addslashes($exist_r["M_PatientJob"]);
+ $v['POSISI'] = $v['POSISI'] ? addslashes($v['POSISI']) : addslashes($exist_r["M_PatientPosisi"]);
+ $v['DIVISI'] = $v['DIVISI'] ? addslashes($v['DIVISI']) : addslashes($exist_r["M_PatientDivisi"]);
+ $v['DEPARTEMENT'] = $v['DEPARTEMENT'] ? addslashes($v['DEPARTEMENT']) : addslashes($exist_r["M_PatientDepartement"]);
+ $v['LOKASI'] = $v['LOKASI'] ? addslashes($v['LOKASI']) : addslashes($exist_r["M_PatientLocation"]);
+ $v['JENIS_KELAMIN'] = $exist_r["M_PatientGender"] == 'male' ? 'L' : 'P';
+ }
+ // echo $sql;
+ }
+
+ if ($v['KTP'] != '') {
+ $sql = "SELECT *
+ FROM m_patient
+ WHERE
+ M_PatientIdentifierCode = 'NNIDN' AND
+ M_PatientIdentifierValue = '{$v['KTP']}' AND
+ M_PatientIsActive = 'Y' LIMIT 1";
+ $query = $this->db->query($sql);
+ if(!$query){
+ $last_qry = $this->db->last_query();
+ $this->db->trans_rollback();
+
+ $this->sys_error("select m_patient : ".$last_qry);
+ exit;
+ }
+ $exist_r = $query->row_array();
+ if ($exist_r) {
+ $patient_id = $exist_r["M_PatientID"];
+ $v['NAMA'] = $exist_r["M_PatientName"];
+ //$pdob = date('Y-m-d',strtotime($exist_r['M_PatientDOB']));
+ $title_id = $exist_r["M_PatientM_TitleID"];
+ $v['EMAIL'] = $v['EMAIL'] ? $v['EMAIL'] : $exist_r["M_PatientEmail"];
+ $v['JENIS_KELAMIN'] = $v['JENIS_KELAMIN'] ? $v['JENIS_KELAMIN'] : 'L';
+ $v['HP'] = $v['HP'] ? $v['HP'] : $exist_r["M_PatientHP"];
+ $v['JOB'] = $v['JOB'] ? $v['JOB'] : $exist_r["M_PatientJob"];
+ $v['POSISI'] = $v['POSISI'] ? $v['POSISI'] : $exist_r["M_PatientPosisi"];
+ $v['DIVISI'] = $v['DIVISI'] ? $v['DIVISI'] : $exist_r["M_PatientDivisi"];
+ $v['LOKASI'] = $v['LOKASI'] ? addslashes($v['LOKASI']) : addslashes($exist_r["M_PatientLocation"]);
+ $v['DEPARTEMENT'] = $v['DEPARTEMENT'] ? $v['DEPARTEMENT'] : $exist_r["M_PatientDepartement"];
+ }
+ //echo $sql;
+ }
+
+ $title_id = 0;
+ $gender = "";
+ //$sql = "SELECT * FROM m_title WHERE M_TitleM_SexID = '{$sex_id}' AND M_TitleIsActive = 'Y' ORDER BY M_TitleID ASC LIMIT 1";
+ //$title_id = $this->db->query($sql)->row()->M_TitleID;
+ if (TRIM($v['JENIS_KELAMIN']) == 'L') {
+ $title_id = 1;
+ $gender = "male";
+ } else {
+ $title_id = 3;
+ $gender = "female";
+ }
+
+ $sql_corporate = "SELECT CorporateID, CorporateCode
+ FROM corporate
+ WHERE CorporateIsActive = 'Y' AND CorporateID = '{$prm['corporateID']}' LIMIT 1";
+ $qry_corporate = $this->db->query($sql_corporate);
+ if ($qry_corporate) {
+ $rowcor = $qry_corporate->row_array();
+ } else {
+ $last_qry = $this->db->last_query();
+ $this->db->trans_rollback();
+
+ $this->sys_error("select corporate : ".$last_qry);
+ exit;
+ }
+
+ $v['NAMA'] = trim(str_replace("'", "\\'", $v['NAMA']));
+ $v['NAMA'] = addslashes($v['NAMA']);
+
+ $sql_pre = "SELECT * FROM mcu_preregister_patients WHERE (
+ Mcu_PreregisterPatientsPatientName = '{$v['NAMA']}' AND
+ Mcu_PreregisterPatientsDOB = '{$pdob}' AND
+ Mcu_PreregisterPatientsNIP = '{$v['NIP']}'
+ ) AND
+ Mcu_PreregisterPatientsMgm_McuID = '{$prm['xid']}' AND
+ Mcu_PreregisterPatientsIsActive = 'Y' LIMIT 1";
+ $qry_pre = $this->db->query($sql_pre);
+ if(!$qry_pre){
+ $last_qry = $this->db->last_query();
+ $this->db->trans_rollback();
+
+ $this->sys_error("select mcu_preregister_patients : ".$last_qry);
+ exit;
+ }
+ $exist_r = $qry_pre->result_array();
+
+ if (count($exist_r) == 0) {
+ $query = " INSERT INTO mcu_preregister_patients (
+ Mcu_PreregisterPatientsMgm_McuID,
+ Mcu_PreregisterPatientsCorporateCode,
+ Mcu_PreregisterPatientsNIP,
+ Mcu_PreregisterPatientsKTP,
+ Mcu_PreregisterPatientsM_PatientID,
+ Mcu_PreregisterPatientsM_TitleID,
+ Mcu_PreregisterPatientsPatientName,
+ Mcu_PreregisterPatientsGender,
+ Mcu_PreregisterPatientsDOB,
+ Mcu_PreregisterPatientsJob,
+ Mcu_PreregisterPatientsEmail,
+ Mcu_PreregisterPatientsHp,
+ Mcu_PreregisterPatientsPosisi,
+ Mcu_PreregisterPatientsDivisi,
+ Mcu_PreregisterPatientsLocation,
+ Mcu_PreregisterPatientsDepartment,
+ Mcu_PreregisterPatientsOrders,
+ Mcu_PreregisterPatientsCreated,
+ Mcu_PreregisterPatientsUserID
+ )
+ VALUES(
+ '{$prm['xid']}',
+ '{$rowcor["CorporateCode"]}',
+ '{$v['NIP']}',
+ '{$v['KTP']}',
+ '{$patient_id}',
+ '{$title_id}',
+ '{$v['NAMA']}',
+ '{$gender}',
+ '{$pdob}',
+ '{$v['JOB']}',
+ '{$v['EMAIL']}',
+ '{$v['HP']}',
+ '{$v['POSISI']}',
+ '{$v['DIVISI']}',
+ '{$v['LOKASI']}',
+ '{$v['DEPARTEMENT']}',
+ '{$v['PEMERIKSAAN']}',
+ NOW(),
+ {$userid}
+ )";
+ // echo $query;
+ // exit;
+ $rows = $this->db->query($query);
+ if(!$rows){
+ $last_qry = $this->db->last_query();
+ $this->db->trans_rollback();
+
+ $this->sys_error("insert mcu_preregister_patients : ".$last_qry);
+ exit;
+ }
+ if ($rows) {
+ $last_id_x = $this->db->insert_id();
+
+ if (!empty($v['TANGGAL_MCU'])) {
+ $mcutime = strtotime($v['TANGGAL_MCU']);
+ $mcudate = date('Y-m-d', $mcutime);
+ $sqlmcudate = "INSERT INTO mcu_preregister_date (
+ Mcu_PreregisterDateMcu_PreregisterPatientsID,
+ Mcu_PreregisterDateCheckinSchedule,
+ Mcu_PreregisterDateCreated,
+ Mcu_PreregisterDateCreatedUserID
+ ) VALUES (?,?,NOW(),?)";
+ $quemcudate = $this->db->query($sqlmcudate, [
+ $last_id_x, $mcudate, $userid
+ ]);
+ if (!$quemcudate) {
+ $last_qry = $this->db->last_query();
+ $this->db->trans_rollback();
+
+ $this->sys_error("failed insert mcu_preregister_date : ".$last_qry);
+ exit;
+ }
+ }
+
+ if ($patient_id == 0) {
+ $sql = "SELECT *
+ FROM m_patient
+ WHERE
+ M_PatientName = '{$v['NAMA']}' AND
+ M_PatientDOB = '{$pdob}' AND
+ M_PatientNIP = '{$v['NIP']}' AND
+ M_PatientIsActive = 'Y' LIMIT 1";
+ $query = $this->db->query($sql);
+ if(!$query){
+ $last_qry = $this->db->last_query();
+ $this->db->trans_rollback();
+
+ $this->sys_error("select m_patient : ".$last_qry);
+ exit;
+ }
+ $exist_r = $query->row_array();
+ if ($exist_r) {
+ $patient_id = $exist_r["M_PatientID"];
+ }
+ //echo $sql;
+ }
+
+ $sql_cor = "SELECT *
+ FROM corporate
+ WHERE
+ CorporateID = '{$prm['corporateID']}' AND
+ CorporateIsActive = 'Y' LIMIT 1";
+ $qry_cor = $this->db->query($sql_cor);
+ if(!$qry_cor){
+ $last_qry = $this->db->last_query();
+ $this->db->trans_rollback();
+ $this->sys_error("select corporate : ".$last_qry);
+ exit;
+ }
+ $qry_cor = $qry_cor->row_array();
+
+ // print_r($patient_id);
+ // exit;
+ $corporate_id = 0;
+ if ($v['CORPORATE'] == '') {
+ $corporate_id = $prm['corporateID'];
+ } else {
+ $sql_cor = "SELECT *
+ FROM corporate
+ WHERE
+ CorporateCode = '{$v['CORPORATE']}' AND
+ CorporateIsActive = 'Y' LIMIT 1";
+ $query = $this->db->query($sql_cor);
+ if(!$query){
+
+ $last_qry = $this->db->last_query();
+ $this->db->trans_rollback();
+ $this->sys_error("select corporate : ".$last_qry);
+ exit;
+ }
+ $rst_corporate = $query->row_array();
+ $corporate_id = $rst_corporate['CorporateID'];
+ }
+
+ //echo $patient_id;
+ if ($patient_id == 0) {
+ //echo 'insert new patient';
+ //$pdob = date('Y-m-d',strtotime($prm['Mcu_PreregisterDetailsDOB']));
+ $sql = "INSERT INTO m_patient (
+ M_PatientRegisteredByCorporateID,
+ M_PatientNoReg,
+ M_PatientName,
+ M_PatientGender,
+ M_PatientM_TitleID,
+ M_PatientDOB,
+ M_PatientIdentifierValue,
+ M_PatientNIP,
+ M_PatientJob,
+ M_PatientPosisi,
+ M_PatientDivisi,
+ M_PatientLocation,
+ M_PatientDepartement,
+ M_PatientHP,
+ M_PatientEmail,
+ M_PatientAddress,
+ M_PatientAddressRegionalCd,
+ M_PatientAddressCity,
+ M_PatientAddressRT,
+ M_PatientAddressRW,
+ M_PatientAddressVillage,
+ M_PatientAddressDistrict,
+ M_PatientAddressState,
+ M_PatientAddressCountry,
+ M_PatientCreatedUserID
+ )
+ VALUES(
+ '{$corporate_id}',
+ `fn_numbering_cpone`('P'),
+ '{$v["NAMA"]}',
+ '{$gender}',
+ {$title_id},
+ '{$pdob}',
+ '{$v['KTP']}',
+ '{$v['NIP']}',
+ '{$v['JOB']}',
+ '{$v['POSISI']}',
+ '{$v['DIVISI']}',
+ '{$v['LOKASI']}',
+ '{$v['DEPARTEMENT']}',
+ '{$v['HP']}',
+ '{$v['EMAIL']}',
+ '{$qry_cor['CorporateAddress']}',
+ '{$qry_cor['CorporateAddressRegionalCd']}',
+ '{$qry_cor['CorporateAddressCity']}',
+ '{$qry_cor['CorporateAddressRT']}',
+ '{$qry_cor['CorporateAddressRW']}',
+ '{$qry_cor['CorporateAddressVillage']}',
+ '{$qry_cor['CorporateAddressDistrict']}',
+ '{$qry_cor['CorporateAddressState']}',
+ '{$qry_cor['CorporateAddressCountry']}',
+ '{$userid}'
+ )";
+ // echo $sql;
+ // exit;
+ $query = $this->db->query($sql);
+ if(!$query){
+ $last_qry = $this->db->last_query();
+ $this->db->trans_rollback();
+ $this->sys_error("insert m_patient : ".$last_qry);
+ exit;
+ }
+ $patient_id = $this->db->insert_id();
+ } else {
+ //echo 'masuk';
+ $data_update_patient = array(
+ 'M_PatientDOB' => $pdob
+ );
+ if ($v['JENIS_KELAMIN'] == 'L')
+ $data_update_patient['M_PatientM_TitleID'] = 1;
+ else
+ $data_update_patient['M_PatientM_TitleID'] = 3;
+
+ if ($prm['corporateID'] != '')
+ $data_update_patient['M_PatientRegisteredByCorporateID'] = $prm['corporateID'];
+ if ($v['EMAIL'] != '')
+ $data_update_patient['M_PatientEmail'] = $v['EMAIL'];
+ if ($v['HP'] != '')
+ $data_update_patient['M_PatientHP'] = $v['HP'];
+ if ($v['JOB'] != '')
+ $data_update_patient['M_PatientJob'] = $v['JOB'];
+ if ($v['POSISI'] != '')
+ $data_update_patient['M_PatientPosisi'] = $v['POSISI'];
+ if ($v['DIVISI'] != '')
+ $data_update_patient['M_PatientDivisi'] = $v['DIVISI'];
+ if ($v['LOKASI'] != '')
+ $data_update_patient['M_PatientLocation'] = $v['LOKASI'];
+ if ($v['DEPARTEMENT'] != '')
+ $data_update_patient['M_PatientDepartement'] = $v['DEPARTEMENT'];
+ if ($qry_cor['CorporateAddress'] != '')
+ $data_update_patient['M_PatientAddress'] = $qry_cor['CorporateAddress'];
+ if ($qry_cor['CorporateAddressRegionalCd'] != '')
+ $data_update_patient['M_PatientAddressRegionalCd'] = $qry_cor['CorporateAddressRegionalCd'];
+ if ($qry_cor['CorporateAddressCity'] != '')
+ $data_update_patient['M_PatientAddressCity'] = $qry_cor['CorporateAddressCity'];
+ if ($qry_cor['CorporateAddressRT'] != '')
+ $data_update_patient['M_PatientAddressRT'] = $qry_cor['CorporateAddressRT'];
+ if ($qry_cor['CorporateAddressRW'] != '')
+ $data_update_patient['M_PatientAddressRW'] = $qry_cor['CorporateAddressRW'];
+ if ($qry_cor['CorporateAddressVillage'] != '')
+ $data_update_patient['M_PatientAddressVillage'] = $qry_cor['CorporateAddressVillage'];
+ if ($qry_cor['CorporateAddressDistrict'] != '')
+ $data_update_patient['M_PatientAddressDistrict'] = $qry_cor['CorporateAddressDistrict'];
+ if ($qry_cor['CorporateAddressState'] != '')
+ $data_update_patient['M_PatientAddressState'] = $qry_cor['CorporateAddressState'];
+ if ($qry_cor['CorporateAddressCountry'] != '')
+ $data_update_patient['M_PatientAddressCountry'] = $qry_cor['CorporateAddressCountry'];
+
+ $this->db->where('M_PatientID', $patient_id);
+ $this->db->update('m_patient', $data_update_patient);
+ //echo $this->db->last_query();
+ }
+
+ $sql = "UPDATE mcu_preregister_patients SET Mcu_PreregisterPatientsM_PatientID = {$patient_id}
+ WHERE Mcu_PreregisterPatientsID = {$last_id_x}";
+ $query = $this->db->query($sql);
+ if(!$query){
+ $last_qry = $this->db->last_query();
+ $this->db->trans_rollback();
+ $this->sys_error("update mcu_preregister_patients : ".$last_qry);
+ exit;
+ }
+ }
+ }
+ }
+
+ if ($this->db->trans_status() === FALSE) {
+ $this->db->trans_rollback();
+ $this->sys_error("Transaction Failed");
+ exit;
+ } else {
+ $this->db->trans_commit();
+ }
+
+
+
+
+ $result = array(
+ "total" => 1,
+ "records" => array('status' => 'OK')
+ );
+
+ $this->sys_ok($result);
+ exit;
+ } catch (Exception $exc) {
+ $message = $exc->getMessage();
+ $this->sys_error($message);
+ }
+ }
+
+ function generatesetup()
+ {
+ $prm = $this->sys_input;
+ $setupcode = $prm['setupcode'];
+ $query = " SELECT mcu_offline_prepare.*, '' as patients,
+ M_CompanyName,
+ '' as agreements,
+ '' as deliveries,
+ '' as doctors,
+ M_MouName as default_mou_name,
+ M_DoctorName as default_doctor_name,
+ DATE_FORMAT(McuOfflinePrepareStartDate,'%d-%m-%Y') as start_date,
+ DATE_FORMAT(McuOfflinePrepareEndDate,'%d-%m-%Y') as end_date,
+ DATE_FORMAT(McuOfflinePreparePromiseDate,'%d-%m-%Y') as promise_date,
+ TIME_FORMAT(McuOfflinePreparePromiseTime,'%H:%i') as promise_time
+ FROM mcu_offline_prepare
+ JOIN m_company ON McuOfflinePrepareM_CompanyID = M_CompanyID
+ JOIN m_mou ON McuOfflinePrepareM_MouDefaultID = M_MouID
+ JOIN m_doctor ON McuOfflinePrepareM_DoctorDefaultID = M_DoctorID
+ WHERE
+ McuOfflinePrepareCode = '{$setupcode}'
+ LIMIT 1
+ ";
+ //echo $query;
+ $row = $this->db->query($query)->row_array();
+
+ if ($row) {
+ $row['agreements'] = json_decode($row['McuOfflinePrepareMous']);
+ $row['deliveries'] = json_decode($row['McuOfflinePrepareDeliveries']);
+ $row['doctors'] = json_decode($row['McuOfflinePrepareDoctors']);
+ }
+
+ $result = array(
+ "total" => 1,
+ "records" => $row
+ );
+ $this->sys_ok($result);
+ exit;
+ }
+
+ public function search()
+ {
+ $prm = $this->sys_input;
+ if (!$this->isLogin) {
+ $this->sys_error("Invalid Token");
+ exit;
+ }
+ $search = $prm["search"];
+ $nama = $prm["name"];
+
+ // echo $norm;
+
+ $sql_where = " ";
+ $sql_param = array();
+ if ($search != "") {
+ $sql_where = " AND ( Mcu_PreregisterPatientsKTP like CONCAT('%','{$search}','%') OR Mcu_PreregisterPatientsPatientName like CONCAT('%','{$search}','%')) ";
+ //$sql_param[] = "%$search%";
+ }
+
+ $limit = '';
+ if ($all == 'N') {
+ $limit = ' LIMIT 10';
+ }
+ $number_limit = 10;
+ $number_offset = ($prm['current_page'] - 1) * $number_limit;
+ $sql = " SELECT count(*) as total
+ FROM mcu_preregister_patients
+ WHERE
+ Mcu_PreregisterPatientsMgm_McuID = {$prm['mgm_mcuid']} AND
+ Mcu_PreregisterPatientsIsActive = 'Y'
+ $sql_where
+ ";
+ //echo $sql;
+ $query = $this->db_onedev->query($sql, $sql_param);
+ //echo $this->db_onedev->last_query();
+ $tot_count = 0;
+ $tot_page = 0;
+ if ($query) {
+ $tot_count = $query->result_array()[0]["total"];
+ $tot_page = ceil($tot_count / $number_limit);
+ } else {
+ $this->sys_error_db("m_patient count", $this->db_onedev);
+ exit;
+ }
+
+ /* $sql = "SELECT mcu_offline_prepare.*,M_CompanyName,
+ DATE_FORMAT(McuOfflinePrepareStartDate, '%d.%m.%Y') as start_date,
+ DATE_FORMAT(McuOfflinePrepareEndDate, '%d.%m.%Y') as end_date,
+ '' as agreements
+ FROM mcu_offline_prepare
+ JOIN m_company ON McuOfflinePrepareM_CompanyID = M_CompanyID
+ WHERE
+ McuOfflinePrepareIsDownloaded = 'Y' AND
+ McuOfflinePrepareIsActive = 'Y'";
+ //echo $sq
+ $xrow = $this->db_onedev->query($sql)->row_array();*/
+
+ $sql = "SELECT mcu_preregister_patients.*,
+ DATE_FORMAT(Mcu_PreregisterPatientsDOB, '%d-%m-%Y') as dob
+ FROM mcu_preregister_patients
+ WHERE
+ Mcu_PreregisterPatientsMgm_McuID = {$prm['mgm_mcuid']} AND Mcu_PreregisterPatientsIsActive = 'Y'
+ $sql_where
+ ORDER BY Mcu_PreregisterPatientsPatientName ASC
+ limit $number_limit offset $number_offset
+ ";
+ //echo $sql;
+ $query = $this->db_onedev->query($sql);
+ $rows = $query->result_array();
+
+ //$this->_add_address($rows);
+ $result = array("total" => $tot_page, "records" => $rows);
+ $this->sys_ok($result);
+ exit;
+ }
+
+ function getsexreg()
+ {
+ if (!$this->isLogin) {
+ $this->sys_error("Invalid Token");
+ exit;
+ }
+ $rows = [];
+ $query = " SELECT *
+ FROM m_title
+ WHERE
+ M_TitleIsActive = 'Y'
+ ";
+ //echo $query;
+ $rows['titles'] = $this->db_onedev->query($query)->result_array();
+
+ $query = " SELECT *
+ FROM m_sex
+ WHERE
+ M_SexIsActive = 'Y'
+ ";
+ //echo $query;
+ $rows['sexes'] = $this->db_onedev->query($query)->result_array();
+ $query = " SELECT *
+ FROM m_religion
+ WHERE
+ M_ReligionIsActive = 'Y'
+ ";
+ //echo $query;
+ $rows['religions'] = $this->db_onedev->query($query)->result_array();
+
+ $query = " SELECT *
+ FROM m_idtype
+ WHERE
+ M_IdTypeIsActive = 'Y'
+ ";
+ //echo $query;
+ $rows['kartuidentitass'] = $this->db_onedev->query($query)->result_array();
+
+
+ $result = array(
+ "total" => count($rows),
+ "records" => $rows,
+ );
+ $this->sys_ok($result);
+ exit;
+ }
+
+ function gotoreg()
+ {
+ if (!$this->isLogin) {
+ $this->sys_error("Invalid Token");
+ exit;
+ }
+
+ $userid = $this->sys_user["M_UserID"];
+ $prm = $this->sys_input;
+
+ $new_status = "Y";
+
+ $result = array(
+ "total" => 1,
+ "records" => $prm,
+ );
+ $this->sys_ok($result);
+ exit;
+ }
+
+ function searchcity()
+ {
+ if (!$this->isLogin) {
+ $this->sys_error("Invalid Token");
+ exit;
+ }
+ $prm = $this->sys_input;
+
+ $max_rst = 12;
+ $tot_count = 0;
+
+ $q = [
+ 'search' => '%'
+ ];
+
+ if ($prm['search'] != '') {
+ $q['search'] = "%{$prm['search']}%";
+ }
+
+ // QUERY TOTAL
+ $sql = "SELECT count(*) as total
+ FROM m_city
+ WHERE
+ M_CityName like ?
+ AND M_CityIsActive = 'Y'";
+ $query = $this->db_onedev->query($sql, $q['search']);
+ //echo $query;
+ if ($query) {
+ $tot_count = $query->result_array()[0]["total"];
+ } else {
+ $this->sys_error_db("m_city count", $this->db_onedev);
+ exit;
+ }
+
+ $sql = "
+ SELECT *
+ FROM m_city
+ WHERE
+ M_CityName like ?
+ AND M_CityIsActive = 'Y'
+ ORDER BY M_CityName DESC
+ ";
+ $query = $this->db_onedev->query($sql, array($q['search']));
+
+ if ($query) {
+ $rows = $query->result_array();
+ //echo $this->db_onedev->last_query();
+ $result = array("total" => $tot_count, "records" => $rows, "total_display" => sizeof($rows));
+ $this->sys_ok($result);
+ } else {
+ $this->sys_error_db("m_city rows", $this->db_onedev);
+ exit;
+ }
+ }
+ function getdistrict()
+ {
+ $prm = $this->sys_input;
+ $query = " SELECT *
+ FROM m_district
+ WHERE
+ M_DistrictIsActive = 'Y' AND M_DistrictM_CityID = ?
+ ";
+ //echo $query;
+ $rows = $this->db_onedev->query($query, array($prm['id']))->result_array();
+
+ $result = array(
+ "total" => count($rows),
+ "records" => $rows,
+ );
+ $this->sys_ok($result);
+ exit;
+ }
+
+ function getkelurahan()
+ {
+ $prm = $this->sys_input;
+ $query = " SELECT *
+ FROM m_kelurahan
+ WHERE
+ M_KelurahanIsActive = 'Y' AND M_KelurahanM_DistrictID = ?
+ ";
+ //echo $query;
+ $rows = $this->db_onedev->query($query, array($prm['id']))->result_array();
+
+ $result = array(
+ "total" => count($rows),
+ "records" => $rows,
+ );
+ $this->sys_ok($result);
+ exit;
+ }
+
+ function save()
+ {
+ if (!$this->isLogin) {
+ $this->sys_error("Invalid Token");
+ exit;
+ }
+ $userid = $this->sys_user["M_UserID"];
+ $prm = $this->sys_input;
+ $datas = $prm['data'];
+ //print_r($prm);
+ // $sql = "UPDATE mcu_preregister_patients SET Mcu_PreregisterDetailsIsActive = 'N' WHERE Mcu_PreregisterDetailsMcuOfflinePrepareID = '{$prm['xid']}'";
+ // $this->db_onedev->query($sql);
+ //echo $sql;
+ //unset($datas[0]);
+ $sql = "SELECT *
+ FROM mcu_offline_prepare
+ JOIN m_mou ON McuOfflinePrepareM_MouDefaultID = M_MouID
+ WHERE
+ McuOfflinePrepareID = {$prm['xid']}";
+ $data_prepare = $this->db_onedev->query($sql)->row_array();
+ $default_agreement_code = $data_prepare['M_MouNumber'];
+ $default_tests = $data_prepare['McuOfflinePrepareTests'];
+
+ foreach ($datas as $k => $v) {
+ $agreement = $v['AGREEMENT'];
+ $tests = $v['PEMERIKSAAN'];
+ if ($agreement == '') {
+ $agreement = $default_agreement_code;
+ }
+ if ($tests == '') {
+ $tests = $default_tests;
+ }
+ $xdate = substr($v['TANGGAL_LAHIR'], 0, 2);
+ $xmonth = substr($v['TANGGAL_LAHIR'], 3, 2);
+ $xyear = substr($v['TANGGAL_LAHIR'], 6, 4);
+ $tgl_lahir = $xdate . '-' . $xmonth . '-' . $xyear;
+ $pdob = date('Y-m-d', strtotime($tgl_lahir));
+ $v['NAMA'] = str_replace("'", "\\'", $v['NAMA']);
+ $v['NAMA'] = $this->strip_unicode($v['NAMA']);
+ $patient_id = 0;
+
+
+ if ($v['PID'] != '') {
+ $sql = "SELECT *
+ FROM m_patient
+ JOIN m_sex ON M_PatientM_SexID = M_SexID
+ WHERE M_PatientNoReg = '{$v['PID']}' LIMIT 1";
+ $exist_r = $this->db_onedev->query($sql)->row_array();
+ if ($exist_r) {
+ $patient_id = $exist_r["M_PatientID"];
+ $v['NAMA'] = $exist_r["M_PatientName"];
+ $pdob = date('Y-m-d', strtotime($exist_r['M_PatientDOB']));
+ $title_id = $exist_r["M_PatientM_TitleID"];
+ $sex_id = $exist_r["M_PatientM_SexID"];
+ $religion_id = $exist_r["M_PatientM_ReligionID"];
+ $v['NIK'] = $v['NIK'] ? $v['NIK'] : $exist_r["M_PatientNIK"];
+ $v['EMAIL'] = $v['EMAIL'] ? $v['EMAIL'] : $exist_r["M_PatientEmail"];
+ $v['HP'] = $v['HP'] ? $v['HP'] : $exist_r["M_PatientHP"];
+ $v['KEDUDUKAN'] = $v['KEDUDUKAN'] ? $v['KEDUDUKAN'] : $exist_r["M_PatientKedudukan"];
+ $v['JABATAN'] = $v['JABATAN'] ? $v['JABATAN'] : $exist_r["M_PatientJabatan"];
+ $v['JOB'] = $v['JOB'] ? $v['JOB'] : $exist_r["M_PatientJob"];
+ $v['LOKASI'] = $v['LOKASI'] ? addslashes($v['LOKASI']) : addslashes($exist_r["M_PatientLocation"]);
+ $v['JENIS_KELAMIN'] = $exist_r["M_SexCode"];
+ }
+ //echo $sql;
+ }
+
+ if ($v['KTP'] != '') {
+ $sql = "SELECT *
+ FROM m_patient
+ JOIN m_sex ON M_PatientM_SexID = M_SexID
+ WHERE M_PatientM_IdTypeID = 1 AND
+ M_PatientIDNumber = '{$v['KTP']}' AND
+ M_PatientIsActive = 'Y'
+ LIMIT 1";
+ $exist_r = $this->db_onedev->query($sql)->row_array();
+ if ($exist_r) {
+ $patient_id = $exist_r["M_PatientID"];
+ $v['NAMA'] = $exist_r["M_PatientName"];
+ //$pdob = date('Y-m-d',strtotime($exist_r['M_PatientDOB']));
+ $title_id = $exist_r["M_PatientM_TitleID"];
+ $sex_id = $exist_r["M_PatientM_SexID"];
+ $religion_id = $exist_r["M_PatientM_ReligionID"];
+ $v['NIK'] = $v['NIK'] ? $v['NIK'] : $exist_r["M_PatientNIK"];
+ $v['EMAIL'] = $v['EMAIL'] ? $v['EMAIL'] : $exist_r["M_PatientEmail"];
+ $v['HP'] = $v['HP'] ? $v['HP'] : $exist_r["M_PatientHP"];
+ $v['KEDUDUKAN'] = $v['KEDUDUKAN'] ? $v['KEDUDUKAN'] : $exist_r["M_PatientKedudukan"];
+ $v['JABATAN'] = $v['JABATAN'] ? $v['JABATAN'] : $exist_r["M_PatientJabatan"];
+ $v['JOB'] = $v['JOB'] ? $v['JOB'] : $exist_r["M_PatientJob"];
+ $v['LOKASI'] = $v['LOKASI'] ? addslashes($v['LOKASI']) : addslashes($exist_r["M_PatientLocation"]);
+ $v['JENIS_KELAMIN'] = $exist_r["M_SexCode"];
+ $v['KTP'] = $v['KTP'] ? $v['KTP'] : $exist_r["M_PatientIDNumber"];
+ }
+ //echo $sql;
+ }
+
+ if ($patient_id == 0) {
+ $sex_id = 0;
+ $sql = "SELECT * FROM m_sex WHERE M_SexCode = TRIM('{$v['JENIS_KELAMIN']}') AND M_SexIsActive = 'Y' LIMIT 1";
+ $sex_id = $this->db_onedev->query($sql)->row()->M_SexID;
+
+ $title_id = 0;
+ //$sql = "SELECT * FROM m_title WHERE M_TitleM_SexID = '{$sex_id}' AND M_TitleIsActive = 'Y' ORDER BY M_TitleID ASC LIMIT 1";
+ //$title_id = $this->db_onedev->query($sql)->row()->M_TitleID;
+ if (TRIM($v['JENIS_KELAMIN']) == 'L')
+ $title_id = 2;
+ else
+ $title_id = 4;
+
+ $religion_id = 0;
+ $sql = "SELECT * FROM m_religion WHERE M_ReligionName = 'OTHERS' AND M_ReligionIsActive = 'Y' LIMIT 1";
+ $religion_id = $this->db_onedev->query($sql)->row()->M_ReligionID;
+ }
+ $query = " INSERT INTO mcu_preregister_patients (
+ Mcu_PreregisterDetailsMcuOfflinePrepareID,
+ Mcu_PreregisterDetailsPID,
+ Mcu_PreregisterDetailsKTP,
+ Mcu_PreregisterDetailsNIK,
+ Mcu_PreregisterDetailsM_TitleID,
+ Mcu_PreregisterDetailsPatientName,
+ Mcu_PreregisterDetailsM_ReligionID,
+ Mcu_PreregisterDetailsEmail,
+ Mcu_PreregisterDetailsHp,
+ Mcu_PreregisterDetailsDOB,
+ Mcu_PreregisterDetailsKedudukan,
+ Mcu_PreregisterDetailsJabatan,
+ Mcu_PreregisterDetailsJob,
+ Mcu_PreregisterDetailsLocation,
+ Mcu_PreregisterDetailsM_SexCode,
+ Mcu_PreregisterDetailsAgreement,
+ Mcu_PreregisterDetailsTests,
+ Mcu_PreregisterDetailsCreated,
+ Mcu_PreregisterDetailsUserID
+ )
+ VALUES(
+ '{$prm['xid']}',
+ '{$v['PID']}',
+ '{$v['KTP']}',
+ '{$v['NIK']}',
+ '{$title_id}',
+ '{$v['NAMA']}',
+ '{$religion_id}',
+ '{$v['EMAIL']}',
+ '{$v['HP']}',
+ '{$pdob}',
+ '{$v['KEDUDUKAN']}',
+ '{$v['JABATAN']}',
+ '{$v['JOB']}',
+ '{$v['LOKASI']}',
+ TRIM('{$v['JENIS_KELAMIN']}'),
+ '{$agreement}',
+ '{$tests}',
+ NOW(),
+ {$userid}
+ )";
+ //echo $query;
+ $rows = $this->db_onedev->query($query);
+ if ($rows) {
+ $last_id_x = $this->db_onedev->insert_id();
+
+ $sql = "SELECT *
+ FROM mcu_offline_prepare
+ JOIN m_company ON McuOfflinePrepareM_CompanyID = M_CompanyID
+ WHERE McuOfflinePrepareID = {$prm['xid']}";
+ $row_header = $this->db_onedev->query($sql)->row_array();
+ //print_r($row_header);
+
+ if ($patient_id == 0) {
+ $sql = "SELECT *
+ FROM m_patient
+ WHERE
+ M_PatientName = '{$v['NAMA']}' AND
+ M_PatientDOB = '{$pdob}' AND
+ M_PatientNIP = '{$v['NIK']}' AND
+ M_PatientIsActive = 'Y' LIMIT 1";
+ $exist_r = $this->db_onedev->query($sql)->row_array();
+ if ($exist_r) {
+ $patient_id = $exist_r["M_PatientID"];
+ }
+ //echo $sql;
+ }
+
+ //echo $patient_id;
+ if ($patient_id == 0) {
+ //echo 'insert new patient';
+ //$pdob = date('Y-m-d',strtotime($prm['Mcu_PreregisterDetailsDOB']));
+ $M_PatientM_IdTypeID = 0;
+ $M_PatientIDNumber = NULL;
+ if (isset($v["KTP"]) && $v["KTP"] != '') {
+ $M_PatientM_IdTypeID = 1;
+ $M_PatientIDNumber = $v["KTP"];
+ }
+ $sql = "INSERT INTO m_patient (
+ M_PatientName,
+ M_PatientM_TitleID,
+ M_PatientM_SexID,
+ M_PatientM_ReligionID,
+ M_PatientPOB,
+ M_PatientDOB,
+ M_PatientNIK,
+ M_PatientM_IdTypeID,
+ M_PatientIDNumber,
+ M_PatientJabatan,
+ M_PatientLocation,
+ M_PatientKedudukan,
+ M_PatientJob,
+ M_PatientEmail,
+ M_PatientHP,
+ M_PatientUserID
+ )
+ VALUES(
+ '{$v["NAMA"]}',
+ {$title_id},
+ {$sex_id},
+ {$religion_id},
+ '-',
+ '{$pdob}',
+ '{$v["NIK"]}',
+ '{$M_PatientM_IdTypeID}',
+ '{$M_PatientIDNumber}',
+ '{$v['JABATAN']}',
+ '{$v['LOKASI']}',
+ '{$v['KEDUDUKAN']}',
+ '{$v['JOB']}',
+ '{$v['EMAIL']}',
+ '{$v['HP']}',
+ '{$userid}'
+ )";
+ //echo $sql;
+ $this->db_onedev->query($sql);
+ $data_insert_patient = array(
+ 'M_PatientName' => $v["NAMA"],
+ 'M_PatientM_TitleID' => $title_id,
+ 'M_PatientM_SexID' => $sex_id,
+ 'M_PatientM_ReligionID' => $religion_id,
+ 'M_PatientPOB' => '-',
+ 'M_PatientDOB' => $pdob,
+ 'M_PatientNIK' => $v["NIK"],
+ 'M_PatientJabatan' => $v['JABATAN'],
+ 'M_PatientLocation' => $v['LOKASI'],
+ 'M_PatientKedudukan' => $v['KEDUDUKAN'],
+ 'M_PatientJob' => $v['JOB'],
+ 'M_PatientEmail' => $v['EMAIL'],
+ 'M_PatientHP' => $v['HP'],
+ 'M_PatientUserID' => $userid
+ );
+
+
+ //$this->db->insert('m_patient', $data_insert_patient);
+ //echo $this->db_onedev->last_query();
+ $patient_id = $this->db_onedev->insert_id();
+
+ //$sql = "SELECT LAST_INSERT_ID() as xid";
+ //$patient_id = $this->db_onedev->query($sql)->row()->xid;
+ //echo $patient_id ;
+
+ $sql = "INSERT INTO m_patientaddress (
+ M_PatientAddressM_PatientID,
+ M_PatientAddressDescription,
+ M_PatientAddressM_KelurahanID,
+ M_PatientAddressCreated,
+ M_PatientAddressUserID
+ )
+ VALUES(
+ {$patient_id},
+ '{$row_header['M_CompanyAddress']}',
+ '{$row_header['M_CompanyM_KelurahanID']}',
+ NOW(),
+ '{$userid}'
+ )";
+ $this->db_onedev->query($sql);
+ //echo $sql;
+ //$patient_addr_id = $this->db_onedev->insert_id();
+ //$sql = "SELECT * FROM m_patientaddress WHERE M_PatientAddressID = {$patient_addr_id}";
+ //$ptn_addr = $this->db_onedev->query($sql)->row_array();
+ //$ptn_addr = json_encode($ptn_addr);
+ //$this->db_onedev->query("CALL one_log.log_me('PATIENT', 'PATIENT.ADDR_ADD', '{$ptn_addr}', $userid)");
+
+
+ } else {
+ //echo 'masuk';
+ //$pdob = date('Y-m-d',strtotime($prm['Mcu_PreregisterDetailsDOB']));
+ $data_update_patient = array(
+ 'M_PatientDOB' => $pdob
+ );
+ if ($v['JENIS_KELAMIN'] == 'L')
+ $data_update_patient['M_PatientM_TitleID'] = 2;
+ else
+ $data_update_patient['M_PatientM_TitleID'] = 4;
+
+ if ($v['EMAIL'] != '')
+ $data_update_patient['M_PatientEmail'] = $v['EMAIL'];
+ if ($v['HP'] != '')
+ $data_update_patient['M_PatientHP'] = $v['HP'];
+ if ($v['NIK'] != '')
+ $data_update_patient['M_PatientNIK'] = $v['NIK'];
+ if ($v['JABATAN'] != '')
+ $data_update_patient['M_PatientJabatan'] = $v['JABATAN'];
+ if ($v['KEDUDUKAN'] != '')
+ $data_update_patient['M_PatientKedudukan'] = $v['KEDUDUKAN'];
+ if ($v['LOKASI'] != '')
+ $data_update_patient['M_PatientLocation'] = $v['LOKASI'];
+ if ($v['JOB'] != '')
+ $data_update_patient['M_PatientJob'] = $v['JOB'];
+
+ if (isset($v["KTP"]) && $v["KTP"] != '') {
+ $data_update_patient['M_PatientM_IdTypeID'] = 1;
+ $data_update_patient['M_PatientIDNumber'] = $v["KTP"];
+ }
+
+ $this->db_onedev->where('M_PatientID', $patient_id);
+ $this->db_onedev->update('m_patient', $data_update_patient);
+ //echo $this->db_onedev->last_query();
+
+ //$sql = "SELECT * FROM m_patient WHERE M_PatientID = {$patient_id}";
+ //$ptn = $this->db_onedev->query($sql)->row_array();
+ //$ptn = json_encode($ptn);
+ //$this->db_onedev->query("CALL one_log.log_me('PATIENT', 'PATIENT.EDIT', '{$ptn}', $userid)");
+ }
+
+ $sql = "UPDATE mcu_preregister_patients SET Mcu_PreregisterDetailsM_PatientID = {$patient_id} WHERE Mcu_PreregisterDetailsID = {$last_id_x}";
+ $this->db_onedev->query($sql);
+ }
+ }
+
+
+
+ $result = array(
+ "total" => 1,
+ "records" => array('status' => 'OK')
+ );
+
+ $this->sys_ok($result);
+ exit;
+ }
+
+ function strip_unicode($inp)
+ {
+ //echo $inp;
+ $result = mb_convert_encoding($inp, 'US-ASCII', 'UTF-8');
+ //echo $result;
+ $result = str_replace("?", " ", $result);
+ //echo $result;
+ return $result;
+ }
+
+ function newpatient()
+ {
+ if (!$this->isLogin) {
+ $this->sys_error("Invalid Token");
+ exit;
+ }
+ $prm = $this->sys_input;
+ $userid = $this->sys_user["M_UserID"];
+
+ $pdob = date('Y-m-d', strtotime($prm['M_PatientDOB']));
+ $query = "INSERT INTO m_patient (
+ M_PatientM_TitleID,
+ M_PatientPrefix,
+ M_PatientName,
+ M_PatientSuffix,
+ M_PatientDOB,
+ M_PatientM_SexID,
+ M_PatientM_ReligionID,
+ M_PatientEmail,
+ M_PatientPOB,
+ M_PatientHP,
+ M_PatientPhone,
+ M_PatientM_IdTypeID,
+ M_PatientIDNumber,
+ M_PatientNote,
+ M_PatientNIK,
+ M_PatientJabatan,
+ M_PatientKedudukan,
+ M_PatientPJ,
+ M_PatientLocation,
+ M_PatientJob,
+ M_PatientUserID
+ )
+ VALUES(
+ '{$prm['M_PatientM_TitleID']}',
+ '{$prm['M_PatientPrefix']}',
+ '{$prm['M_PatientName']}',
+ '{$prm['M_PatientSuffix']}',
+ '{$pdob}',
+ '{$prm['M_PatientM_SexID']}',
+ '{$prm['M_PatientM_ReligionID']}',
+ '{$prm['M_PatientEmail']}',
+ '{$prm['M_PatientPOB']}',
+ '{$prm['M_PatientHP']}',
+ '{$prm['M_PatientPhone']}',
+ '{$prm['M_PatientM_IdTypeID']}',
+ '{$prm['M_PatientIDNumber']}',
+ '{$prm['M_PatientNote']}',
+ '{$prm['M_PatientNIK']}',
+ '{$prm['M_PatientJabatan']}',
+ '{$prm['M_PatientKedudukan']}',
+ '{$prm['M_PatientPJ']}',
+ '{$prm['M_PatientLocation']}',
+ '{$prm['M_PatientJob']}',
+ $userid
+ )
+ ";
+ //echo $query;
+ $rows = $this->db_onedev->query($query);
+ $last_id = $this->db_onedev->insert_id();
+ $result = array(
+ "total" => 1,
+ "records" => array('status' => 'OK'),
+ "id" => $last_id
+ );
+ $ptn = $prm;
+ $ptn["M_PatientID"] = $last_id;
+ $ptn["M_PatientDOB"] = $pdob;
+ $ptn = json_encode($ptn);
+ $this->db_onedev->query("CALL one_log.log_me('PATIENT', 'PATIENT.ADD', '{$ptn}', $userid)");
+ $this->sys_ok($result);
+ exit;
+ }
+
+ function deletepatient()
+ {
+ if (!$this->isLogin) {
+ $this->sys_error("Invalid Token");
+ exit;
+ }
+ $userid = $this->sys_user["M_UserID"];
+ $prm = $this->sys_input;
+ $query = "UPDATE m_patient SET
+ M_PatientIsActive = 'N'
+ WHERE
+ M_PatientID = '{$prm['M_PatientID']}'
+ ";
+ //echo $query;
+ $rows = $this->db_onedev->query($query);
+
+ $result = array(
+ "total" => 1,
+ "records" => array('status' => 'OK')
+ );
+ $ptn = $prm;
+ $ptn["M_PatientDOB"] = $pdob;
+ $ptn = json_encode($ptn);
+ $this->db_onedev->query("CALL one_log.log_me('PATIENT', 'PATIENT.DELETE', '{$ptn}', $userid)");
+ $this->sys_ok($result);
+ exit;
+ }
+
+ function getaddress()
+ {
+ if (!$this->isLogin) {
+ $this->sys_error("Invalid Token");
+ exit;
+ }
+ $prm = $this->sys_input;
+ $query = " SELECT m_patientaddress.*,
+ M_KelurahanName,
+ M_DistrictID,
+ M_DistrictName,
+ M_CityID,
+ M_CityName,
+ '' as action
+ FROM m_patientaddress
+ JOIN m_kelurahan ON M_PatientAddressM_KelurahanID = M_KelurahanID
+ JOIN m_district ON M_KelurahanM_DistrictID = M_DistrictID
+ JOIN m_city ON M_DistrictM_CityID = M_CityID
+ WHERE
+ M_PatientAddressIsActive = 'Y' AND M_PatientAddressM_PatientID = ?
+ ";
+ //echo $query;
+ $rows = $this->db_onedev->query($query, array($prm['id']))->result_array();
+ if ($rows) {
+ foreach ($rows as $k => $v) {
+ $rows[$k]['action'] = 'delete';
+ $rows[$k]['action'] .= 'edit';
+ }
+ }
+ $result = array(
+ "total" => count($rows),
+ "records" => $rows,
+ );
+ $this->sys_ok($result);
+ exit;
+ }
+ function savenewaddress()
+ {
+ if (!$this->isLogin) {
+ $this->sys_error("Invalid Token");
+ exit;
+ }
+ $userid = $this->sys_user["M_UserID"];
+ $prm = $this->sys_input;
+ $count_addrs = $this->db_onedev->query("SELECT COUNT(*) as countx FROM m_patientaddress WHERE M_PatientAddressM_PatientID = '{$prm['M_PatientAddressM_PatientID']}' AND M_PatientAddressIsActive = 'Y'")->row()->countx;
+
+ //echo $this->db_onedev->last_query();
+ if ($count_addrs == 0) {
+ $prm['M_PatientAddressNote'] = 'Utama';
+ } else {
+ $count_addrs_utama = $this->db_onedev->query("SELECT COUNT(*) as countx FROM m_patientaddress WHERE M_PatientAddressM_PatientID = '{$prm['M_PatientAddressM_PatientID']}' AND M_PatientAddressNote = 'Utama' AND M_PatientAddressIsActive = 'Y'")->row()->countx;
+ if ($count_addrs_utama > 0 && strtolower($prm['M_PatientAddressNote']) == 'utama') {
+ $rx = date('YmdHis');
+ $prm['M_PatientAddressNote'] = 'Utama_' . $rx;
+ }
+ }
+ $query = "INSERT INTO m_patientaddress (
+ M_PatientAddressM_PatientID,
+ M_PatientAddressNote,
+ M_PatientAddressDescription,
+ M_PatientAddressM_KelurahanID,
+ M_PatientAddressCreated
+ )
+ VALUES(
+ '{$prm['M_PatientAddressM_PatientID']}',
+ '{$prm['M_PatientAddressNote']}',
+ '{$prm['M_PatientAddressDescription']}',
+ '{$prm['M_PatientAddressM_KelurahanID']}',
+ NOW()
+ )
+ ";
+ //echo $query;
+ $rows = $this->db_onedev->query($query);
+
+ $result = array(
+ "total" => 1,
+ "records" => array('status' => 'OK')
+ );
+ $ptn = $prm;
+ $ptn["M_UserID"] = $pdob;
+ $ptn = json_encode($ptn);
+ $this->db_onedev->query("CALL one_log.log_me('PATIENT', 'PATIENT.ADDR_ADD', '{$ptn}', $userid)");
+ $this->sys_ok($result);
+ exit;
+ }
+
+ function saveeditaddress()
+ {
+ if (!$this->isLogin) {
+ $this->sys_error("Invalid Token");
+ exit;
+ }
+ $userid = $this->sys_user["M_UserID"];
+ $prm = $this->sys_input;
+
+ $query = "UPDATE m_patientaddress SET
+ M_PatientAddressM_PatientID = '{$prm['M_PatientAddressM_PatientID']}',
+ M_PatientAddressNote = '{$prm['M_PatientAddressNote']}',
+ M_PatientAddressDescription = '{$prm['M_PatientAddressDescription']}',
+ M_PatientAddressM_KelurahanID = '{$prm['M_PatientAddressM_KelurahanID']}'
+ WHERE
+ M_PatientAddressID = '{$prm['M_PatientAddressID']}'
+ ";
+ //echo $query;
+ $rows = $this->db_onedev->query($query);
+
+ $result = array(
+ "total" => 1,
+ "records" => array('status' => 'OK')
+ );
+ $ptn = $prm;
+ $ptn["M_UserID"] = $pdob;
+ $ptn = json_encode($ptn);
+ $this->db_onedev->query("CALL one_log.log_me('PATIENT', 'PATIENT.ADDR_EDIT', '{$ptn}', $userid)");
+ $this->sys_ok($result);
+ exit;
+ }
+
+ function deleteaddress()
+ {
+ if (!$this->isLogin) {
+ $this->sys_error("Invalid Token");
+ exit;
+ }
+ $userid = $this->sys_user["M_UserID"];
+ $prm = $this->sys_input;
+
+ $query = "UPDATE m_patientaddress SET
+ M_PatientAddressIsActive = 'N'
+ WHERE
+ M_PatientAddressID = '{$prm['M_PatientAddressID']}'
+ ";
+ //echo $query;
+ $rows = $this->db_onedev->query($query);
+
+ $result = array(
+ "total" => 1,
+ "records" => array('status' => 'OK')
+ );
+ $ptn = $prm;
+ $ptn["M_UserID"] = $pdob;
+ $ptn = json_encode($ptn);
+ $this->db_onedev->query("CALL one_log.log_me('PATIENT', 'PATIENT.ADDR_DELETE', '{$ptn}', $userid)");
+ $this->sys_ok($result);
+ exit;
+ }
+}