[APP DOKTER] - Aplikasi Mobile App Dokter - ALUR GATEWAY #15

Open
opened 2023-08-28 09:53:38 +07:00 by sindhu · 0 comments
Owner

FILE DI SERVER
devbandungraya

  • /home/regional/project/regional/one-api/application/controllers/app_doctor/Confirmorder.php

devone

  • /home/one/project/one/one-api/application/controllers/one-doctor/Downloadconfirmorder.php
  1. gateway akan diarahkan kemana dapat dilihat di config-app-dokter.json
{
  "base_url": "http://IPADDRESS_CABANG/one-api/one-doctor/",
  "schedule": [
    "*/5 5-21 * * *"
  ],
  "delay": 5
}
  1. Job yang akan dijalankan sbb :

- download order from regional
ketentuan :
- sudah ada order di order_patient regional dan belum ada order_fo di cabang. Jika sudah ada order_patient dicabang maka akan di update

$sqlCekFo = "SELECT EXISTS(SELECT OrderFoOrderPatientID FROM one_doctor.order_fo
WHERE  OrderFoOrderPatientID = ? AND OrderFoIsActive = 'Y') as result";
                            
$sqlCek = "SELECT EXISTS(SELECT OrderPatientID FROM one_doctor.order_patient 
WHERE  OrderPatientID = ? ) as result";                            

Code di gateway

// download order from regional
    logging.info(NAME_SPACE, "Download Order from Regional");
    var resp = await download_order();
    if (resp["status"] == "OK") {
      logging.info(NAME_SPACE, "\t Success");
    } else {
      logging.error(NAME_SPACE, "\t Error " + resp["message"]);
    }
    logging.info(NAME_SPACE, "Wait " + config.delay + " second");
    await delay(config.delay * 1000);

- upload result to regional
ketentuan:
- sudah ada salah satu hasil dan lunas serta masuk ke office
Result_ProcessToOfficeIsActive (Y) = kriteria masuk ke office
F_Payment_OrderHeaderIsLunas (Y) & M_MouIsBill (Y) => kriteria lunas
T_OrderHeaderAddOnValidationDone (Y OR P) => kriteria salah satu hasil

lunas akan di filter pada waktu search di menu request upload

$sql_filter = "select count(*) as total 
        from (
                select
                T_OrderHeaderLabNumber as no_reg,
                concat(M_TitleName, ' ',
                            ifnull(M_PatientPrefix,' '),
                            M_PatientName,
                            ifnull(M_PatientSuffix,'')
                            )
                            as nama_pasien,
                fn_get_doctor_fullname($this->db_str_doctor.order_fo.OrderFoM_DoctorID) as nama_dokter,
                M_MouName as nama_mou,
                T_OrderHeaderTotal as total,
                if($this->db_str_doctor.request_upload.RequestUploadIsUploaded is NULL,'N',RequestUploadIsUploaded) as RequestIsUploaded
                from t_orderheader 
                join $this->db_str_doctor.order_fo 
                    ON OrderFoT_OrderHeaderID = T_OrderHeaderID
                    AND OrderFoIsActive = 'Y'
                    AND T_OrderHeaderIsActive = 'Y'
                join $this->db_str_doctor.order_patient 
                    ON OrderFoOrderPatientID = OrderPatientID
                    AND OrderPatientIsActive = 'Y'
                left join $this->db_str_doctor.request_upload
                    ON T_OrderHeaderID = RequestUploadT_OrderHeaderID
                    AND RequestUploadIsActive = 'Y'
                    AND RequestUploadIsUploaded = 'N'
                join m_mou
                    ON OrderFoM_MouID = M_MouID
                    AND M_MouIsActive = 'Y'
                    AND M_MouIsReleased = 'Y'
                    AND M_MouM_CompanyID = $this->M_MouM_CompanyID 
                    AND M_MouIsBill = 'Y'
                join m_patient
                    ON T_OrderHeaderM_PatientID = M_PatientID
                join m_title 
                    on M_PatientM_TitleID = M_TitleID
                JOIN result_processtooffice
                    ON T_OrderHeaderID = Result_ProcessToOfficeT_OrderHeaderID
                    AND Result_ProcessToOfficeIsActive = 'Y'
                where $where
                group by T_OrderHeaderID
                UNION
                select
                T_OrderHeaderLabNumber as no_reg,
                concat(M_TitleName, ' ',
                            ifnull(M_PatientPrefix,' '),
                            M_PatientName,
                            ifnull(M_PatientSuffix,'')
                            )
                            as nama_pasien,
                fn_get_doctor_fullname($this->db_str_doctor.order_fo.OrderFoM_DoctorID) as nama_dokter,
                M_MouName as nama_mou,
                T_OrderHeaderTotal as total,
                if($this->db_str_doctor.request_upload.RequestUploadIsUploaded is NULL,'N',RequestUploadIsUploaded) as RequestIsUploaded
                from t_orderheader 
                join $this->db_str_doctor.order_fo 
                    ON OrderFoT_OrderHeaderID = T_OrderHeaderID
                    AND OrderFoIsActive = 'Y'
                    AND T_OrderHeaderIsActive = 'Y'
                join $this->db_str_doctor.order_patient 
                    ON OrderFoOrderPatientID = OrderPatientID
                    AND OrderPatientIsActive = 'Y'
                left join $this->db_str_doctor.request_upload
                    ON T_OrderHeaderID = RequestUploadT_OrderHeaderID
                    AND RequestUploadIsActive = 'Y'
                    AND RequestUploadIsUploaded = 'N'
                join m_mou
                    ON OrderFoM_MouID = M_MouID
                    AND M_MouIsActive = 'Y'
                    AND M_MouIsReleased = 'Y'
                    AND M_MouM_CompanyID = $this->M_MouM_CompanyID 
                join m_patient
                    ON T_OrderHeaderM_PatientID = M_PatientID
                join m_title 
                    on M_PatientM_TitleID = M_TitleID
                JOIN result_processtooffice
                    ON T_OrderHeaderID = Result_ProcessToOfficeT_OrderHeaderID
                    AND Result_ProcessToOfficeIsActive = 'Y'
                    join f_payment 
                    ON t_orderheader.T_OrderHeaderID = F_PaymentT_OrderHeaderID
                    AND F_PaymentIsActive = 'Y'
                join f_payment_orderheader 
                    ON F_PaymentID = F_Payment_OrderHeaderF_PaymentID
                    AND F_Payment_OrderHeaderIsLunas = 'Y'
                where $where
                group by T_OrderHeaderID
            ) x";

kemudian pada api gateway code spt dibawah ini

SELECT distinct OrderFoT_OrderHeaderID
        FROM (
            SELECT OrderFoT_OrderHeaderID
            FROM one_doctor.order_fo
            JOIN t_orderheader
                ON OrderFoT_OrderHeaderID = T_OrderHeaderID
                AND OrderFoIsActive = 'Y'
                AND T_OrderHeaderIsActive = 'Y'
            JOIN t_orderheaderaddon
                ON T_OrderHeaderID = T_OrderHeaderAddOnT_OrderHeaderID
                AND (T_OrderHeaderAddOnValidationDone = 'Y' OR T_OrderHeaderAddOnValidationDone = 'P')
            JOIN one_doctor.request_upload
                ON T_OrderHeaderID = RequestUploadT_OrderHeaderID
                AND RequestUploadIsUploaded = 'N'
            UNION
            SELECT OrderFoT_OrderHeaderID
                FROM one_doctor.order_fo
            JOIN t_orderheader
                ON OrderFoT_OrderHeaderID = T_OrderHeaderID
                AND OrderFoIsActive = 'Y'
                AND T_OrderHeaderIsActive = 'Y'
            JOIN t_orderheaderaddon
                ON T_OrderHeaderID = T_OrderHeaderAddOnT_OrderHeaderID
            JOIN one_doctor.request_upload
                ON T_OrderHeaderID = RequestUploadT_OrderHeaderID
                AND RequestUploadIsUploaded = 'N'
            JOIN t_orderdetail
                ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID
        ) AS hasilUnion

lalu code di gateway sbb

// upload result to regional
    logging.info(NAME_SPACE, "Upload Result to Regional");
    var resp = await upload_result();
    if (resp["status"] == "OK") {
      logging.info(NAME_SPACE, "\t Success");
    } else {
      logging.error(NAME_SPACE, "\t Error " + resp["message"]);
    }
    logging.info(NAME_SPACE, "Wait " + config.delay + " second");
    await delay(config.delay * 1000);

- download kesimpulan dan saran dari regional
ketentuan : sudah ada saran di order_saran regional

filter akan seperti ini, jika sudah ada maka akan diupdate

$sqlCek = "SELECT EXISTS(SELECT OrderSaranID FROM one_doctor.order_saran
WHERE  OrderSaranID = ? ) as result";
 // download kesimpulan dan saran from regional
    logging.info(NAME_SPACE, "Download Kesimpulan dan Saran from Regional");
    var resp = await download_saran();
    if (resp["status"] == "OK") {
      logging.info(NAME_SPACE, "\t Success");
    } else {
      logging.error(NAME_SPACE, "\t Error " + resp["message"]);
    }
    logging.info(NAME_SPACE, "Wait " + config.delay + " second");
    await delay(config.delay * 1000);

- upload untuk update isConfirm
ketentuan : ada di order_fo dan F_Payment_OrderHeaderIsLunas = 'Y' serta
uploadLogConfirmDate + INTERVAL 7 day > NOW()

code di api

  $sql_isLunas = "SELECT T_OrderHeaderID, OrderFoOrderPatientID as order_patient_id, 
        M_PatientID, M_PatientName, 
        T_OrderHeaderDate, F_PaymentID, F_Payment_OrderHeaderIsLunas,
        '{$branch_id}' as M_BranchID,
        '{$branch_code}' as M_BranchCode
        from t_orderheader
            join $this->db_str_doctor.order_fo ON T_OrderHeaderID = OrderFoT_OrderHeaderID
            AND OrderFoIsActive = 'Y'
            join m_patient ON T_OrderHeaderM_PatientID = M_PatientID
            AND M_PatientIsActive = 'Y'
            join f_payment ON T_OrderHeaderID = F_PaymentT_OrderHeaderID
            AND F_PaymentIsActive = 'Y'
            join f_payment_orderheader ON F_PaymentID = F_Payment_OrderHeaderF_PaymentID
            AND F_Payment_OrderHeaderIsLunas = 'Y'
        where T_OrderHeaderIsActive = 'Y'
        AND T_OrderHeaderDate + INTERVAL 7 day > NOW()";

sehingga di gateway

 // upload isconfirm to regional
    logging.info(NAME_SPACE, "Upload Update IsConfirm to Regional");
    var resp = await upload_isconfirm();
    if (resp["status"] == "OK") {
      logging.info(NAME_SPACE, "\t Success");
    } else {
      logging.error(NAME_SPACE, "\t Error " + resp["message"]);
    }
    logging.info(NAME_SPACE, "Wait " + config.delay + " second");
    await delay(config.delay * 1000);

- update order generate di cabang lain
ketentuan : sudah ada order di regional namun belum masuk order_fo di cabang tertentu

code api Downloadconfirmorder.php di cabang

$sql_cek = "select OrderPatientID
from one_doctor.order_patient 
left join one_doctor.order_fo
ON OrderPatientID = OrderFoOrderPatientID
WHERE OrderPatientIsActive = 'Y'
AND OrderPatientID IN ($order_patient_id_str)
AND (OrderFoIsActive IS NULL OR OrderFoIsActive = 'N')";

sehingga code di gateway

 // update order generate di cabang lain
    logging.info(NAME_SPACE, "Update Order Generate Di Cabang Lain");
    var resp = await update_order_other_branch();
    if (resp["status"] == "OK") {
      logging.info(NAME_SPACE, "\t Success");
    } else {
      logging.error(NAME_SPACE, "\t Error " + resp["message"]);
    }

- download pesan khusus from regional
ketentuan : sudah ada hasil yang dikirimkan dari cabang.

code api fungsi download_pesan_khusus di file Downloader.php di cabang.

$sql = "SELECT distinct
            DoctorMessageOrderPatientID as OrderPatientID, 
            downloadDoctorMessageLogM_BranchID, 
            downloadDoctorMessageLogM_BranchCode,
            downloadDoctorMessageLogIsDownloaded, 
            downloadDoctorMessageLogRetry
            from one_doctor.doctor_message
            join one_doctor.order_patient
            ON DoctorMessageOrderPatientID = OrderPatientID
            AND DoctorMessageIsActive = 'Y'
            AND DoctorMessageStatusDownload = 'N'
            JOIN one_doctor.order_patient_details 
            ON OrderPatientID = OrderPatientDetailsOrderPatientID 
            AND OrderPatientDetailsIsActive = 'Y'
            JOIN m_mou on OrderPatientM_MouID = M_MouID
            AND M_MouIsActive = 'Y'
            LEFT JOIN one_doctor.download_doctor_message_log
            ON OrderPatientID  = downloadDoctorMessageLogOrderPatientID
            WHERE OrderPatientIsActive = 'Y'
            AND (
                ISNULL(downloadDoctorMessageLogM_BranchID) 
                OR (downloadDoctorMessageLogM_BranchID = ? AND downloadDoctorMessageLogIsDownloaded = 'N') 
                OR (downloadDoctorMessageLogM_BranchID <> ? )
            )
                AND (ISNULL(downloadDoctorMessageLogRetry) OR downloadDoctorMessageLogRetry < 10)
            GROUP BY DoctorMessageOrderPatientID, downloadDoctorMessageLogM_BranchID
            ORDER BY DoctorMessageOrderPatientID
            LIMIT ?";

sehingga code di gateway menjadi seperti ini :

    // download pesan khusus
    logging.info(NAME_SPACE, "Download Pesan Khusus from Regional");
    var resp = await download_pesan_khusus();
    if (resp["status"] == "OK") {
      logging.info(NAME_SPACE, "\t Success");
    } else {
      logging.error(NAME_SPACE, "\t Error " + resp["message"]);
    }
    logging.info(NAME_SPACE, "Wait " + config.delay + " second");
    await delay(config.delay * 1000);
**FILE DI SERVER** devbandungraya - /home/regional/project/regional/one-api/application/controllers/app_doctor/Confirmorder.php devone - /home/one/project/one/one-api/application/controllers/one-doctor/Downloadconfirmorder.php 1. gateway akan diarahkan kemana dapat dilihat di **config-app-dokter.json** ``` { "base_url": "http://IPADDRESS_CABANG/one-api/one-doctor/", "schedule": [ "*/5 5-21 * * *" ], "delay": 5 } ``` 2. Job yang akan dijalankan sbb : **- download order from regional** ketentuan : **- sudah ada order di order_patient regional dan belum ada order_fo di cabang. Jika sudah ada order_patient dicabang maka akan di update** ``` $sqlCekFo = "SELECT EXISTS(SELECT OrderFoOrderPatientID FROM one_doctor.order_fo WHERE OrderFoOrderPatientID = ? AND OrderFoIsActive = 'Y') as result"; $sqlCek = "SELECT EXISTS(SELECT OrderPatientID FROM one_doctor.order_patient WHERE OrderPatientID = ? ) as result"; ``` **Code di gateway** ``` // download order from regional logging.info(NAME_SPACE, "Download Order from Regional"); var resp = await download_order(); if (resp["status"] == "OK") { logging.info(NAME_SPACE, "\t Success"); } else { logging.error(NAME_SPACE, "\t Error " + resp["message"]); } logging.info(NAME_SPACE, "Wait " + config.delay + " second"); await delay(config.delay * 1000); ``` **- upload result to regional** ketentuan: **- sudah ada salah satu hasil dan lunas serta masuk ke office** **Result_ProcessToOfficeIsActive (Y) = kriteria masuk ke office F_Payment_OrderHeaderIsLunas (Y) & M_MouIsBill (Y) => kriteria lunas T_OrderHeaderAddOnValidationDone (Y OR P) => kriteria salah satu hasil** lunas akan di filter pada waktu search di menu request upload ``` $sql_filter = "select count(*) as total from ( select T_OrderHeaderLabNumber as no_reg, concat(M_TitleName, ' ', ifnull(M_PatientPrefix,' '), M_PatientName, ifnull(M_PatientSuffix,'') ) as nama_pasien, fn_get_doctor_fullname($this->db_str_doctor.order_fo.OrderFoM_DoctorID) as nama_dokter, M_MouName as nama_mou, T_OrderHeaderTotal as total, if($this->db_str_doctor.request_upload.RequestUploadIsUploaded is NULL,'N',RequestUploadIsUploaded) as RequestIsUploaded from t_orderheader join $this->db_str_doctor.order_fo ON OrderFoT_OrderHeaderID = T_OrderHeaderID AND OrderFoIsActive = 'Y' AND T_OrderHeaderIsActive = 'Y' join $this->db_str_doctor.order_patient ON OrderFoOrderPatientID = OrderPatientID AND OrderPatientIsActive = 'Y' left join $this->db_str_doctor.request_upload ON T_OrderHeaderID = RequestUploadT_OrderHeaderID AND RequestUploadIsActive = 'Y' AND RequestUploadIsUploaded = 'N' join m_mou ON OrderFoM_MouID = M_MouID AND M_MouIsActive = 'Y' AND M_MouIsReleased = 'Y' AND M_MouM_CompanyID = $this->M_MouM_CompanyID AND M_MouIsBill = 'Y' join m_patient ON T_OrderHeaderM_PatientID = M_PatientID join m_title on M_PatientM_TitleID = M_TitleID JOIN result_processtooffice ON T_OrderHeaderID = Result_ProcessToOfficeT_OrderHeaderID AND Result_ProcessToOfficeIsActive = 'Y' where $where group by T_OrderHeaderID UNION select T_OrderHeaderLabNumber as no_reg, concat(M_TitleName, ' ', ifnull(M_PatientPrefix,' '), M_PatientName, ifnull(M_PatientSuffix,'') ) as nama_pasien, fn_get_doctor_fullname($this->db_str_doctor.order_fo.OrderFoM_DoctorID) as nama_dokter, M_MouName as nama_mou, T_OrderHeaderTotal as total, if($this->db_str_doctor.request_upload.RequestUploadIsUploaded is NULL,'N',RequestUploadIsUploaded) as RequestIsUploaded from t_orderheader join $this->db_str_doctor.order_fo ON OrderFoT_OrderHeaderID = T_OrderHeaderID AND OrderFoIsActive = 'Y' AND T_OrderHeaderIsActive = 'Y' join $this->db_str_doctor.order_patient ON OrderFoOrderPatientID = OrderPatientID AND OrderPatientIsActive = 'Y' left join $this->db_str_doctor.request_upload ON T_OrderHeaderID = RequestUploadT_OrderHeaderID AND RequestUploadIsActive = 'Y' AND RequestUploadIsUploaded = 'N' join m_mou ON OrderFoM_MouID = M_MouID AND M_MouIsActive = 'Y' AND M_MouIsReleased = 'Y' AND M_MouM_CompanyID = $this->M_MouM_CompanyID join m_patient ON T_OrderHeaderM_PatientID = M_PatientID join m_title on M_PatientM_TitleID = M_TitleID JOIN result_processtooffice ON T_OrderHeaderID = Result_ProcessToOfficeT_OrderHeaderID AND Result_ProcessToOfficeIsActive = 'Y' join f_payment ON t_orderheader.T_OrderHeaderID = F_PaymentT_OrderHeaderID AND F_PaymentIsActive = 'Y' join f_payment_orderheader ON F_PaymentID = F_Payment_OrderHeaderF_PaymentID AND F_Payment_OrderHeaderIsLunas = 'Y' where $where group by T_OrderHeaderID ) x"; ``` kemudian pada api gateway code spt dibawah ini ``` SELECT distinct OrderFoT_OrderHeaderID FROM ( SELECT OrderFoT_OrderHeaderID FROM one_doctor.order_fo JOIN t_orderheader ON OrderFoT_OrderHeaderID = T_OrderHeaderID AND OrderFoIsActive = 'Y' AND T_OrderHeaderIsActive = 'Y' JOIN t_orderheaderaddon ON T_OrderHeaderID = T_OrderHeaderAddOnT_OrderHeaderID AND (T_OrderHeaderAddOnValidationDone = 'Y' OR T_OrderHeaderAddOnValidationDone = 'P') JOIN one_doctor.request_upload ON T_OrderHeaderID = RequestUploadT_OrderHeaderID AND RequestUploadIsUploaded = 'N' UNION SELECT OrderFoT_OrderHeaderID FROM one_doctor.order_fo JOIN t_orderheader ON OrderFoT_OrderHeaderID = T_OrderHeaderID AND OrderFoIsActive = 'Y' AND T_OrderHeaderIsActive = 'Y' JOIN t_orderheaderaddon ON T_OrderHeaderID = T_OrderHeaderAddOnT_OrderHeaderID JOIN one_doctor.request_upload ON T_OrderHeaderID = RequestUploadT_OrderHeaderID AND RequestUploadIsUploaded = 'N' JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID ) AS hasilUnion ``` lalu code di gateway sbb ``` // upload result to regional logging.info(NAME_SPACE, "Upload Result to Regional"); var resp = await upload_result(); if (resp["status"] == "OK") { logging.info(NAME_SPACE, "\t Success"); } else { logging.error(NAME_SPACE, "\t Error " + resp["message"]); } logging.info(NAME_SPACE, "Wait " + config.delay + " second"); await delay(config.delay * 1000); ``` **- download kesimpulan dan saran dari regional** ketentuan : sudah ada saran di order_saran regional filter akan seperti ini, jika sudah ada maka akan diupdate ``` $sqlCek = "SELECT EXISTS(SELECT OrderSaranID FROM one_doctor.order_saran WHERE OrderSaranID = ? ) as result"; ``` ``` // download kesimpulan dan saran from regional logging.info(NAME_SPACE, "Download Kesimpulan dan Saran from Regional"); var resp = await download_saran(); if (resp["status"] == "OK") { logging.info(NAME_SPACE, "\t Success"); } else { logging.error(NAME_SPACE, "\t Error " + resp["message"]); } logging.info(NAME_SPACE, "Wait " + config.delay + " second"); await delay(config.delay * 1000); ``` **- upload untuk update isConfirm** ketentuan : ada di order_fo dan F_Payment_OrderHeaderIsLunas = 'Y' serta uploadLogConfirmDate + INTERVAL 7 day > NOW() code di api ``` $sql_isLunas = "SELECT T_OrderHeaderID, OrderFoOrderPatientID as order_patient_id, M_PatientID, M_PatientName, T_OrderHeaderDate, F_PaymentID, F_Payment_OrderHeaderIsLunas, '{$branch_id}' as M_BranchID, '{$branch_code}' as M_BranchCode from t_orderheader join $this->db_str_doctor.order_fo ON T_OrderHeaderID = OrderFoT_OrderHeaderID AND OrderFoIsActive = 'Y' join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' join f_payment ON T_OrderHeaderID = F_PaymentT_OrderHeaderID AND F_PaymentIsActive = 'Y' join f_payment_orderheader ON F_PaymentID = F_Payment_OrderHeaderF_PaymentID AND F_Payment_OrderHeaderIsLunas = 'Y' where T_OrderHeaderIsActive = 'Y' AND T_OrderHeaderDate + INTERVAL 7 day > NOW()"; ``` sehingga di gateway ``` // upload isconfirm to regional logging.info(NAME_SPACE, "Upload Update IsConfirm to Regional"); var resp = await upload_isconfirm(); if (resp["status"] == "OK") { logging.info(NAME_SPACE, "\t Success"); } else { logging.error(NAME_SPACE, "\t Error " + resp["message"]); } logging.info(NAME_SPACE, "Wait " + config.delay + " second"); await delay(config.delay * 1000); ``` **- update order generate di cabang lain** ketentuan : sudah ada order di regional namun belum masuk order_fo di cabang tertentu code api **Downloadconfirmorder.php** di cabang ``` $sql_cek = "select OrderPatientID from one_doctor.order_patient left join one_doctor.order_fo ON OrderPatientID = OrderFoOrderPatientID WHERE OrderPatientIsActive = 'Y' AND OrderPatientID IN ($order_patient_id_str) AND (OrderFoIsActive IS NULL OR OrderFoIsActive = 'N')"; ``` sehingga code di gateway ``` // update order generate di cabang lain logging.info(NAME_SPACE, "Update Order Generate Di Cabang Lain"); var resp = await update_order_other_branch(); if (resp["status"] == "OK") { logging.info(NAME_SPACE, "\t Success"); } else { logging.error(NAME_SPACE, "\t Error " + resp["message"]); } ``` **- download pesan khusus from regional** ketentuan : sudah ada hasil yang dikirimkan dari cabang. code api fungsi **download_pesan_khusus** di file **Downloader.php** di cabang. ```PHP $sql = "SELECT distinct DoctorMessageOrderPatientID as OrderPatientID, downloadDoctorMessageLogM_BranchID, downloadDoctorMessageLogM_BranchCode, downloadDoctorMessageLogIsDownloaded, downloadDoctorMessageLogRetry from one_doctor.doctor_message join one_doctor.order_patient ON DoctorMessageOrderPatientID = OrderPatientID AND DoctorMessageIsActive = 'Y' AND DoctorMessageStatusDownload = 'N' JOIN one_doctor.order_patient_details ON OrderPatientID = OrderPatientDetailsOrderPatientID AND OrderPatientDetailsIsActive = 'Y' JOIN m_mou on OrderPatientM_MouID = M_MouID AND M_MouIsActive = 'Y' LEFT JOIN one_doctor.download_doctor_message_log ON OrderPatientID = downloadDoctorMessageLogOrderPatientID WHERE OrderPatientIsActive = 'Y' AND ( ISNULL(downloadDoctorMessageLogM_BranchID) OR (downloadDoctorMessageLogM_BranchID = ? AND downloadDoctorMessageLogIsDownloaded = 'N') OR (downloadDoctorMessageLogM_BranchID <> ? ) ) AND (ISNULL(downloadDoctorMessageLogRetry) OR downloadDoctorMessageLogRetry < 10) GROUP BY DoctorMessageOrderPatientID, downloadDoctorMessageLogM_BranchID ORDER BY DoctorMessageOrderPatientID LIMIT ?"; ``` sehingga code di gateway menjadi seperti ini : ``` // download pesan khusus logging.info(NAME_SPACE, "Download Pesan Khusus from Regional"); var resp = await download_pesan_khusus(); if (resp["status"] == "OK") { logging.info(NAME_SPACE, "\t Success"); } else { logging.error(NAME_SPACE, "\t Error " + resp["message"]); } logging.info(NAME_SPACE, "Wait " + config.delay + " second"); await delay(config.delay * 1000); ```
sindhu changed title from [APP DOKTER] - Aplikasi Mobile App Dokter - GATEWAY to [APP DOKTER] - Aplikasi Mobile App Dokter - ALUR GATEWAY 2023-08-28 11:23:09 +07:00
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sindhu/belajar#15