/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package khanzahmsservicepcare;

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import fungsi.ApiPcare;
import fungsi.koneksiDB;
import fungsi.sekuel;
import fungsi.validasi;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Calendar;
import java.util.Date;
import javax.swing.Timer;
import org.apache.commons.codec.binary.Base64;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;

/**
 *
 * @author windiartonugroho
 */
public class frmUtama extends javax.swing.JFrame {
    private Connection koneksi=koneksiDB.condb();
    private sekuel Sequel=new sekuel();
    private validasi Valid=new validasi();
    private PreparedStatement ps,pscari;
    private ResultSet rs,rscari;
    private ApiPcare api=new ApiPcare();
    private String URL="",requestJson="",diagnosa2="",diagnosa3="",otorisasi,terapiobat="",bmhp="";
    private HttpHeaders headers,headerscari;
    private HttpEntity requestEntity;
    private ObjectMapper mapper = new ObjectMapper();
    private JsonNode root;
    private JsonNode nameNode;
    private JsonNode response;
    private String signa1="1",signa2="1",kdObatSK="",utc="";
    private String[] arrSplit;

    /**
     * Creates new form frmUtama
     */
    public frmUtama() {
        initComponents();
        try {
            otorisasi=koneksiDB.USERPCARE()+":"+koneksiDB.PASSPCARE()+":095";
            URL=koneksiDB.URLAPIPCARE(); 
        } catch (Exception e) {
            TeksArea.append("E : "+e);
        } 
        
        this.setSize(390,340);
        
        jam();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        TNoRw = new widget.TextBox();
        TNoRM = new widget.TextBox();
        KdPoliTujuan = new widget.TextBox();
        KdTenagaMedis = new widget.TextBox();
        JenisKunjungan = new widget.ComboBox();
        Perawatan = new widget.ComboBox();
        TanggalDaftar = new widget.Tanggal();
        TanggalKunjungan = new widget.Tanggal();
        TanggalPulang = new widget.Tanggal();
        KdStatusPulang = new widget.TextBox();
        NmStatusPulang = new widget.TextBox();
        NmPoliTujuan = new widget.TextBox();
        NmTenagaMedis = new widget.TextBox();
        KdDiagnosa1 = new widget.TextBox();
        NmDiagnosa1 = new widget.TextBox();
        KdDiagnosa2 = new widget.TextBox();
        NmDiagnosa2 = new widget.TextBox();
        NmDiagnosa3 = new widget.TextBox();
        KdDiagnosa3 = new widget.TextBox();
        TinggiBadan = new widget.TextBox();
        Keluhan = new widget.TextBox();
        Sistole = new widget.TextBox();
        BeratBadan = new widget.TextBox();
        Diastole = new widget.TextBox();
        Respiratory = new widget.TextBox();
        Heartrate = new widget.TextBox();
        KdSadar = new widget.TextBox();
        NmSadar = new widget.TextBox();
        NoKartu = new widget.TextBox();
        TPasien = new widget.TextBox();
        ChkRujukLanjut = new widget.CekBox();
        TerapiObat = new widget.TextBox();
        LingkarPerut = new widget.TextBox();
        TerapiNonObat = new widget.TextBox();
        BMHP = new widget.TextBox();
        KdAlergiMakanan = new widget.TextBox();
        NmAlergiMakanan = new widget.TextBox();
        KdAlergiUdara = new widget.TextBox();
        NmAlergiUdara = new widget.TextBox();
        KdPrognosa = new widget.TextBox();
        NmPrognosa = new widget.TextBox();
        NmAlergiObat = new widget.TextBox();
        KdAlergiObat = new widget.TextBox();
        TSuhu = new widget.TextBox();
        jScrollPane1 = new javax.swing.JScrollPane();
        TeksArea = new javax.swing.JTextArea();
        jButton1 = new javax.swing.JButton();

        TNoRw.setBackground(new java.awt.Color(245, 250, 240));
        TNoRw.setHighlighter(null);

        TNoRM.setHighlighter(null);

        KdPoliTujuan.setEditable(false);
        KdPoliTujuan.setBackground(new java.awt.Color(245, 250, 240));
        KdPoliTujuan.setHighlighter(null);

        KdTenagaMedis.setEditable(false);
        KdTenagaMedis.setBackground(new java.awt.Color(245, 250, 240));
        KdTenagaMedis.setHighlighter(null);

        JenisKunjungan.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Kunjungan Sakit", "Kunjungan Sehat" }));

        Perawatan.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "10 Rawat Jalan", "20 Rawat Inap", "50 Promotif Preventif" }));

        TanggalDaftar.setForeground(new java.awt.Color(50, 70, 50));
        TanggalDaftar.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "01-07-2024" }));
        TanggalDaftar.setDisplayFormat("dd-MM-yyyy");
        TanggalDaftar.setOpaque(false);
        TanggalDaftar.setPreferredSize(new java.awt.Dimension(95, 23));

        TanggalKunjungan.setForeground(new java.awt.Color(50, 70, 50));
        TanggalKunjungan.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "01-07-2024" }));
        TanggalKunjungan.setDisplayFormat("dd-MM-yyyy");
        TanggalKunjungan.setEnabled(false);
        TanggalKunjungan.setOpaque(false);
        TanggalKunjungan.setPreferredSize(new java.awt.Dimension(95, 23));

        TanggalPulang.setForeground(new java.awt.Color(50, 70, 50));
        TanggalPulang.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "01-07-2024" }));
        TanggalPulang.setDisplayFormat("dd-MM-yyyy");
        TanggalPulang.setEnabled(false);
        TanggalPulang.setOpaque(false);
        TanggalPulang.setPreferredSize(new java.awt.Dimension(95, 23));

        KdStatusPulang.setEditable(false);
        KdStatusPulang.setBackground(new java.awt.Color(245, 250, 240));
        KdStatusPulang.setHighlighter(null);

        NmStatusPulang.setEditable(false);
        NmStatusPulang.setBackground(new java.awt.Color(245, 250, 240));
        NmStatusPulang.setHighlighter(null);

        NmPoliTujuan.setEditable(false);
        NmPoliTujuan.setBackground(new java.awt.Color(245, 250, 240));
        NmPoliTujuan.setHighlighter(null);

        NmTenagaMedis.setEditable(false);
        NmTenagaMedis.setBackground(new java.awt.Color(245, 250, 240));
        NmTenagaMedis.setHighlighter(null);

        KdDiagnosa1.setEditable(false);
        KdDiagnosa1.setBackground(new java.awt.Color(245, 250, 240));
        KdDiagnosa1.setHighlighter(null);

        NmDiagnosa1.setEditable(false);
        NmDiagnosa1.setBackground(new java.awt.Color(245, 250, 240));
        NmDiagnosa1.setHighlighter(null);

        KdDiagnosa2.setEditable(false);
        KdDiagnosa2.setBackground(new java.awt.Color(245, 250, 240));
        KdDiagnosa2.setHighlighter(null);

        NmDiagnosa2.setEditable(false);
        NmDiagnosa2.setBackground(new java.awt.Color(245, 250, 240));
        NmDiagnosa2.setHighlighter(null);

        NmDiagnosa3.setEditable(false);
        NmDiagnosa3.setBackground(new java.awt.Color(245, 250, 240));
        NmDiagnosa3.setHighlighter(null);

        KdDiagnosa3.setEditable(false);
        KdDiagnosa3.setBackground(new java.awt.Color(245, 250, 240));
        KdDiagnosa3.setHighlighter(null);

        TinggiBadan.setText("0");
        TinggiBadan.setHighlighter(null);

        Keluhan.setHighlighter(null);

        Sistole.setText("0");
        Sistole.setHighlighter(null);

        BeratBadan.setText("0");
        BeratBadan.setHighlighter(null);

        Diastole.setText("0");
        Diastole.setHighlighter(null);

        Respiratory.setText("0");
        Respiratory.setHighlighter(null);

        Heartrate.setText("0");
        Heartrate.setHighlighter(null);

        KdSadar.setEditable(false);
        KdSadar.setBackground(new java.awt.Color(245, 250, 240));
        KdSadar.setHighlighter(null);

        NmSadar.setEditable(false);
        NmSadar.setBackground(new java.awt.Color(245, 250, 240));
        NmSadar.setHighlighter(null);

        NoKartu.setEditable(false);
        NoKartu.setBackground(new java.awt.Color(245, 250, 240));
        NoKartu.setHighlighter(null);

        TPasien.setEditable(false);
        TPasien.setBackground(new java.awt.Color(245, 250, 240));
        TPasien.setHighlighter(null);

        ChkRujukLanjut.setText("Rujuk Lanjut :");
        ChkRujukLanjut.setEnabled(false);
        ChkRujukLanjut.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        ChkRujukLanjut.setOpaque(false);

        TerapiObat.setEnabled(false);
        TerapiObat.setHighlighter(null);

        LingkarPerut.setEditable(false);
        LingkarPerut.setBackground(new java.awt.Color(245, 250, 240));
        LingkarPerut.setHighlighter(null);

        TerapiNonObat.setEnabled(false);
        TerapiNonObat.setHighlighter(null);

        BMHP.setEnabled(false);
        BMHP.setHighlighter(null);

        KdAlergiMakanan.setEditable(false);
        KdAlergiMakanan.setBackground(new java.awt.Color(245, 250, 240));
        KdAlergiMakanan.setHighlighter(null);

        NmAlergiMakanan.setEditable(false);
        NmAlergiMakanan.setBackground(new java.awt.Color(245, 250, 240));
        NmAlergiMakanan.setHighlighter(null);

        KdAlergiUdara.setEditable(false);
        KdAlergiUdara.setBackground(new java.awt.Color(245, 250, 240));
        KdAlergiUdara.setHighlighter(null);

        NmAlergiUdara.setEditable(false);
        NmAlergiUdara.setBackground(new java.awt.Color(245, 250, 240));
        NmAlergiUdara.setHighlighter(null);

        KdPrognosa.setEditable(false);
        KdPrognosa.setBackground(new java.awt.Color(245, 250, 240));
        KdPrognosa.setHighlighter(null);

        NmPrognosa.setEditable(false);
        NmPrognosa.setBackground(new java.awt.Color(245, 250, 240));
        NmPrognosa.setHighlighter(null);

        NmAlergiObat.setEditable(false);
        NmAlergiObat.setBackground(new java.awt.Color(245, 250, 240));
        NmAlergiObat.setHighlighter(null);

        KdAlergiObat.setEditable(false);
        KdAlergiObat.setBackground(new java.awt.Color(245, 250, 240));
        KdAlergiObat.setHighlighter(null);

        TSuhu.setFocusTraversalPolicyProvider(true);

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("SIMKES Khanza Service PCare");

        TeksArea.setColumns(20);
        TeksArea.setFont(new java.awt.Font("Tahoma", 0, 11)); // NOI18N
        TeksArea.setRows(5);
        jScrollPane1.setViewportView(TeksArea);

        getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER);

        jButton1.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jButton1.setText("Keluar");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });
        getContentPane().add(jButton1, java.awt.BorderLayout.PAGE_END);

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
        System.exit(0);
    }//GEN-LAST:event_jButton1ActionPerformed

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(frmUtama.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(frmUtama.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(frmUtama.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(frmUtama.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new frmUtama().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private widget.TextBox BMHP;
    private widget.TextBox BeratBadan;
    private widget.CekBox ChkRujukLanjut;
    private widget.TextBox Diastole;
    private widget.TextBox Heartrate;
    private widget.ComboBox JenisKunjungan;
    private widget.TextBox KdAlergiMakanan;
    private widget.TextBox KdAlergiObat;
    private widget.TextBox KdAlergiUdara;
    private widget.TextBox KdDiagnosa1;
    private widget.TextBox KdDiagnosa2;
    private widget.TextBox KdDiagnosa3;
    private widget.TextBox KdPoliTujuan;
    private widget.TextBox KdPrognosa;
    private widget.TextBox KdSadar;
    private widget.TextBox KdStatusPulang;
    private widget.TextBox KdTenagaMedis;
    private widget.TextBox Keluhan;
    private widget.TextBox LingkarPerut;
    private widget.TextBox NmAlergiMakanan;
    private widget.TextBox NmAlergiObat;
    private widget.TextBox NmAlergiUdara;
    private widget.TextBox NmDiagnosa1;
    private widget.TextBox NmDiagnosa2;
    private widget.TextBox NmDiagnosa3;
    private widget.TextBox NmPoliTujuan;
    private widget.TextBox NmPrognosa;
    private widget.TextBox NmSadar;
    private widget.TextBox NmStatusPulang;
    private widget.TextBox NmTenagaMedis;
    private widget.TextBox NoKartu;
    private widget.ComboBox Perawatan;
    private widget.TextBox Respiratory;
    private widget.TextBox Sistole;
    private widget.TextBox TNoRM;
    private widget.TextBox TNoRw;
    private widget.TextBox TPasien;
    private widget.TextBox TSuhu;
    private widget.Tanggal TanggalDaftar;
    private widget.Tanggal TanggalKunjungan;
    private widget.Tanggal TanggalPulang;
    private javax.swing.JTextArea TeksArea;
    private widget.TextBox TerapiNonObat;
    private widget.TextBox TerapiObat;
    private widget.TextBox TinggiBadan;
    private javax.swing.JButton jButton1;
    private javax.swing.JScrollPane jScrollPane1;
    // End of variables declaration//GEN-END:variables
    private void jam(){
        ActionListener taskPerformer = new ActionListener(){
            private int nilai_jam;
            private int nilai_menit;
            private int nilai_detik;
            public void actionPerformed(ActionEvent e) {
                String nol_jam = "";
                String nol_menit = "";
                String nol_detik = "";
                Date now = Calendar.getInstance().getTime();
                // Mengambil nilaj JAM, MENIT, dan DETIK Sekarang
                nilai_jam = now.getHours();
                nilai_menit = now.getMinutes();
                nilai_detik = now.getSeconds();
                // Jika nilai JAM lebih kecil dari 10 (hanya 1 digit)
                if (nilai_jam <= 9) {
                    // Tambahkan "0" didepannya
                    nol_jam = "0";
                }
                // Jika nilai MENIT lebih kecil dari 10 (hanya 1 digit)
                if (nilai_menit <= 9) {
                    // Tambahkan "0" didepannya
                    nol_menit = "0";
                }
                // Jika nilai DETIK lebih kecil dari 10 (hanya 1 digit)
                if (nilai_detik <= 9) {
                    // Tambahkan "0" didepannya
                    nol_detik = "0";
                }
                // Membuat String JAM, MENIT, DETIK
                String jam = nol_jam + Integer.toString(nilai_jam);
                String menit = nol_menit + Integer.toString(nilai_menit);
                String detik = nol_detik + Integer.toString(nilai_detik);
                if(menit.equals("01")||menit.equals("10")||menit.equals("20")||menit.equals("30")||menit.equals("40")||menit.equals("50")){
                    if(menit.equals("01")&&detik.equals("01")){
                        TeksArea.setText("");
                    }
                    
                    try {
                        koneksi=koneksiDB.condb();
                        TeksArea.append("MEMULAI PENGIRIMAN DATA\n");
                        TeksArea.append("Pengiriman data pendaftaran PCare dimulai\n");
                        ps=koneksi.prepareStatement(
                            "select pcare_pendaftaran.no_rawat,pcare_pendaftaran.tglDaftar,pcare_pendaftaran.no_rkm_medis,"+
                            "pcare_pendaftaran.nm_pasien,pcare_pendaftaran.kdProviderPeserta,pcare_pendaftaran.noKartu,pcare_pendaftaran.lingkar_perut,"+
                            "pcare_pendaftaran.kdPoli,pcare_pendaftaran.nmPoli,pcare_pendaftaran.keluhan,pcare_pendaftaran.kunjSakit,"+
                            "pcare_pendaftaran.sistole,pcare_pendaftaran.diastole,pcare_pendaftaran.beratBadan,pcare_pendaftaran.tinggiBadan,"+
                            "pcare_pendaftaran.respRate,pcare_pendaftaran.heartRate,pcare_pendaftaran.rujukBalik,pcare_pendaftaran.kdTkp,"+
                            "pcare_pendaftaran.noUrut,pcare_pendaftaran.status,reg_periksa.kd_dokter from pcare_pendaftaran "+
                            "inner join reg_periksa on reg_periksa.no_rawat=pcare_pendaftaran.no_rawat where pcare_pendaftaran.status='Gagal' ");
                        try {
                            rs=ps.executeQuery();
                            while(rs.next()){
                                try {
                                    headers = new HttpHeaders();
                                    headers.setContentType(MediaType.TEXT_PLAIN);
                                    headers.add("X-cons-id",koneksiDB.CONSIDAPIPCARE());
                                    utc=String.valueOf(api.GetUTCdatetimeAsString());
                                    headers.add("X-timestamp",utc);            
                                    headers.add("X-signature",api.getHmac());
                                    headers.add("X-authorization","Basic "+Base64.encodeBase64String(otorisasi.getBytes()));
                                    headers.add("user_key",koneksiDB.USERKEYAPIPCARE());
                                    requestJson ="{" +
                                                    "\"kdProviderPeserta\": \""+rs.getString("kdProviderPeserta")+"\"," +
                                                    "\"tglDaftar\": \""+Valid.SetTgl3(rs.getString("tglDaftar"))+"\"," +
                                                    "\"noKartu\": \""+rs.getString("noKartu")+"\"," +
                                                    "\"kdPoli\": \""+rs.getString("kdPoli")+"\"," +
                                                    "\"keluhan\": \""+rs.getString("keluhan")+"\"," +
                                                    "\"kunjSakit\": "+(rs.getString("kunjSakit").equals("Kunjungan Sakit")?"true":"false")+"," +
                                                    "\"sistole\": "+rs.getString("sistole")+"," +
                                                    "\"diastole\": "+rs.getString("diastole")+"," +
                                                    "\"beratBadan\": "+rs.getString("beratBadan")+"," +
                                                    "\"tinggiBadan\": "+rs.getString("tinggiBadan")+"," +
                                                    "\"respRate\": "+rs.getString("respRate")+"," +
                                                    "\"lingkarPerut\": "+rs.getString("lingkar_perut")+"," +
                                                    "\"heartRate\": "+rs.getString("heartRate")+"," +
                                                    "\"rujukBalik\": 0," +
                                                    "\"kdTkp\": \""+rs.getString("kdTkp")+"\"" +
                                                 "}";
                                    TeksArea.append(requestJson+"\n");
                                    requestEntity = new HttpEntity(requestJson,headers);
                                    requestJson=api.getRest().exchange(URL+"/pendaftaran", HttpMethod.POST, requestEntity, String.class).getBody();
                                    root = mapper.readTree(requestJson);
                                    nameNode = root.path("metaData");
                                    TeksArea.append("code : "+nameNode.path("code").asText()+"\n");
                                    TeksArea.append("message : "+nameNode.path("message").asText()+"\n");
                                    if(nameNode.path("code").asText().equals("201")){
                                        response = mapper.readTree(api.Decrypt(root.path("response").asText(),utc)).path("message");   
                                        if(Sequel.cariInteger("select count(no_rawat) from pemeriksaan_ralan where no_rawat=?",rs.getString("no_rawat"))<=0){
                                            Sequel.menyimpan2("pemeriksaan_ralan","?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?",21,new String[]{
                                                rs.getString("no_rawat"),rs.getString("tglDaftar"),Sequel.cariIsi("select current_time()"),
                                                "",rs.getString("sistole")+"/"+rs.getString("diastole"),rs.getString("heartRate"),rs.getString("respRate"),
                                                rs.getString("tinggiBadan"),rs.getString("beratBadan"),"","","Compos Mentis", rs.getString("keluhan"),"","",rs.getString("lingkar_perut"),
                                                "","","","",rs.getString("kd_dokter")
                                            });
                                        }
                                            
                                        Sequel.mengedit("pcare_pendaftaran","no_rawat=?","noUrut=?,status='Terkirim'",2,new String[]{response.asText(),rs.getString("no_rawat")});
                                    }
                                }catch (Exception ex) {
                                    TeksArea.append("Notifikasi Bridging : "+ex+"\n");
                                    if(ex.toString().contains("UnknownHostException")||ex.toString().contains("unreachable")){
                                        TeksArea.append("Koneksi ke server PCare terputus. Data disimpan secara lokal, dan dapat dikirimkan kembali ke server PCare..!!"+"\n");
                                    }else if(ex.toString().contains("500")){
                                        TeksArea.append("Server PCare baru ngambek broooh. Data disimpan secara lokal, dan dapat dikirimkan kembali ke server PCare..!!"+"\n");
                                    }else if(ex.toString().contains("401")){
                                        TeksArea.append("Username/Password salah. Lupa password? Wani piro...!"+"\n");
                                    }else if(ex.toString().contains("408")){
                                        TeksArea.append("Time out, hayati lelah baaaang. Data disimpan secara lokal, dan dapat dikirimkan kembali ke server PCare..!!"+"\n");
                                    }else if(ex.toString().contains("424")){
                                        TeksArea.append("Ambil data masternya yang bener dong coy...!"+"\n");
                                    }else if(ex.toString().contains("412")){
                                        TeksArea.append("Tidak sesuai kondisi. Aku, kamu end...!"+"\n");
                                    }else if(ex.toString().contains("204")){
                                        TeksArea.append("Data tidak ditemukan...!"+"\n");
                                    }else if(ex.toString().contains("refused")){
                                        TeksArea.append("BPJSe ngelu...!"+"\n");
                                    }
                                }
                            }
                        } catch (Exception ex) {
                            TeksArea.append("Notif : "+ex+"\n");
                        } finally{
                            if(rs!=null){
                                rs.close();
                            }
                            if(ps!=null){
                                ps.close();
                            }
                        }
                        TeksArea.append("Pengiriman data pendaftaran PCare selesai\n\n");
                        
                        TeksArea.append("Pengiriman data kunjungan PCare dimulai\n");
                        ps=koneksi.prepareStatement(
                            "select pcare_pendaftaran.no_rawat,pcare_pendaftaran.tglDaftar,pcare_pendaftaran.no_rkm_medis,"+
                            "pcare_pendaftaran.nm_pasien,pcare_pendaftaran.kdProviderPeserta,pcare_pendaftaran.noKartu,pcare_pendaftaran.lingkar_perut,"+
                            "pcare_pendaftaran.kdPoli,pcare_pendaftaran.nmPoli,pcare_pendaftaran.keluhan,pcare_pendaftaran.kunjSakit,"+
                            "pcare_pendaftaran.sistole,pcare_pendaftaran.diastole,pcare_pendaftaran.beratBadan,pcare_pendaftaran.tinggiBadan,"+
                            "pcare_pendaftaran.respRate,pcare_pendaftaran.heartRate,pcare_pendaftaran.rujukBalik,pcare_pendaftaran.kdTkp,"+
                            "pcare_pendaftaran.noUrut,pcare_pendaftaran.status from pcare_pendaftaran where pcare_pendaftaran.status='Terkirim' ");
                        try {
                            rs=ps.executeQuery();
                            while(rs.next()){
                                try {
                                    NoKartu.setText(rs.getString("noKartu"));
                                    TPasien.setText(rs.getString("nm_pasien"));
                                    setNoRm2(rs.getString("no_rawat"));  
                                    if(TinggiBadan.getText().equals("")||TinggiBadan.getText().equals("0")||BeratBadan.getText().equals("")||BeratBadan.getText().equals("0")||Sistole.getText().equals("")||Sistole.getText().equals("0")||
                                        Keluhan.getText().equals("")||Keluhan.getText().equals("0")||Diastole.getText().equals("")||Diastole.getText().equals("0")||Respiratory.getText().equals("")||Respiratory.getText().equals("0")||
                                        Heartrate.getText().equals("")||Heartrate.getText().equals("0")||KdSadar.getText().equals("")||NmSadar.getText().equals("")||TSuhu.getText().equals("")||TSuhu.getText().equals("0")){
                                            TeksArea.append("Notif 1 : "+"No.Pendaftaran "+rs.getString("no_rawat")+" / No.RM "+rs.getString("no_rkm_medis")+" / Pasien "+rs.getString("nm_pasien")+" dilewati karena data pemeriksaan fisik tidak ditemukan...!!"+"\n");
                                    }else{
                                        if(KdDiagnosa1.getText().equals("")||NmDiagnosa1.getText().equals("")){
                                            TeksArea.append("Notif 2 : "+"No.Pendaftaran "+rs.getString("no_rawat")+" / No.RM "+rs.getString("no_rkm_medis")+" / Pasien "+rs.getString("nm_pasien")+" dilewati karena data diagnosa tidak ditemukan...!!"+"\n");
                                        }else{
                                            if(KdTenagaMedis.getText().equals("")||NmTenagaMedis.getText().equals("")){
                                                TeksArea.append("Notif 3 : "+"No.Pendaftaran "+rs.getString("no_rawat")+" / No.RM "+rs.getString("no_rkm_medis")+" / Pasien "+rs.getString("nm_pasien")+" dilewati karena mapping tenaga medis tidak ditemukan...!!"+"\n");
                                            }else{
                                                TeksArea.append("Mencari data No.Rawat : "+rs.getString("no_rawat")+"\n");
                                                if(Sequel.cariInteger("select count(pcare_kunjungan_umum.no_rawat) from pcare_kunjungan_umum where pcare_kunjungan_umum.no_rawat=?",rs.getString("no_rawat"))==0){
                                                    TeksArea.append("No.Rawat : "+rs.getString("no_rawat")+" ditemukan, proses mengirim kunjungan ke server PCare BPJS.. "+"\n");
                                                    try {
                                                        headerscari = new HttpHeaders();
                                                        headerscari.setContentType(MediaType.TEXT_PLAIN);
                                                        headerscari.add("X-cons-id",koneksiDB.CONSIDAPIPCARE());
                                                        utc=String.valueOf(api.GetUTCdatetimeAsString());
                                                        headerscari.add("X-timestamp",utc);            
                                                        headerscari.add("X-signature",api.getHmac());
                                                        headerscari.add("X-authorization","Basic "+Base64.encodeBase64String(otorisasi.getBytes()));
                                                        headerscari.add("user_key",koneksiDB.USERKEYAPIPCARE());
                                                        if(ChkRujukLanjut.isSelected()==false){
                                                            diagnosa2="null";
                                                            if(!KdDiagnosa2.getText().equals("")){
                                                                diagnosa2="\""+KdDiagnosa2.getText()+"\"";
                                                            }
                                                            diagnosa3="null";
                                                            if(!KdDiagnosa3.getText().equals("")){
                                                                diagnosa3="\""+KdDiagnosa3.getText()+"\"";
                                                            }
                                                            requestJson ="{" +
                                                                            "\"noKunjungan\": null," +
                                                                            "\"noKartu\": \""+NoKartu.getText()+"\"," +
                                                                            "\"tglDaftar\": \""+TanggalDaftar.getSelectedItem()+"\"," +
                                                                            "\"kdPoli\": \""+KdPoliTujuan.getText()+"\"," +
                                                                            "\"keluhan\": \""+(Keluhan.getText().equals("")?"Tidak Ada":Keluhan.getText())+"\"," +
                                                                            "\"kdSadar\": \""+KdSadar.getText()+"\"," +
                                                                            "\"sistole\": "+Sistole.getText()+"," +
                                                                            "\"diastole\": "+Diastole.getText()+"," +
                                                                            "\"beratBadan\": "+BeratBadan.getText()+"," +
                                                                            "\"tinggiBadan\": "+TinggiBadan.getText()+"," +
                                                                            "\"respRate\": "+Respiratory.getText()+"," +
                                                                            "\"heartRate\": "+Heartrate.getText()+"," +
                                                                            "\"lingkarPerut\": "+LingkarPerut.getText()+"," +
                                                                            "\"kdStatusPulang\": \"3\"," +
                                                                            "\"tglPulang\": \""+TanggalPulang.getSelectedItem()+"\"," +
                                                                            "\"kdDokter\": \""+KdTenagaMedis.getText()+"\"," +
                                                                            "\"kdDiag1\": \""+KdDiagnosa1.getText()+"\"," +
                                                                            "\"kdDiag2\": "+diagnosa2+"," +
                                                                            "\"kdDiag3\": "+diagnosa3+"," +
                                                                            "\"kdPoliRujukInternal\":null," +
                                                                            "\"rujukLanjut\": null," +
                                                                            "\"kdTacc\": -1," +
                                                                            "\"alasanTacc\": null," +
                                                                            "\"anamnesa\": \""+(Keluhan.getText().equals("")?"Tidak Ada":Keluhan.getText())+"\"," +
                                                                            "\"alergiMakan\": \""+KdAlergiMakanan.getText()+"\"," +
                                                                            "\"alergiUdara\": \""+KdAlergiUdara.getText()+"\"," +
                                                                            "\"alergiObat\": \""+KdAlergiObat.getText()+"\"," +
                                                                            "\"kdPrognosa\": \""+KdPrognosa.getText()+"\"," +
                                                                            "\"terapiObat\": \""+(TerapiObat.getText().equals("")?"Tidak Ada":TerapiObat.getText())+"\"," +
                                                                            "\"terapiNonObat\": \""+(TerapiNonObat.getText().equals("")?"Tidak Ada":TerapiNonObat.getText())+"\"," +
                                                                            "\"bmhp\": \""+(BMHP.getText().equals("")?"Tidak Ada":BMHP.getText())+"\"," +
                                                                            "\"suhu\": \""+TSuhu.getText()+"\"" +
                                                                          "}";
                                                            TeksArea.append(requestJson+"\n");
                                                            requestEntity = new HttpEntity(requestJson,headerscari);
                                                            requestJson=api.getRest().exchange(URL+"/kunjungan/V1", HttpMethod.POST, requestEntity, String.class).getBody();
                                                            TeksArea.append(requestJson+"\n");
                                                            root = mapper.readTree(requestJson);
                                                            nameNode = root.path("metaData");
                                                            TeksArea.append("code : "+nameNode.path("code").asText()+"\n");
                                                            TeksArea.append("message : "+nameNode.path("message").asText()+"\n");
                                                            if(nameNode.path("code").asText().equals("201")){
                                                                for(JsonNode list:mapper.readTree(api.Decrypt(root.path("response").asText(),utc))){
                                                                    response=list.path("message");
                                                                }
                                                                Sequel.menyimpan2("pcare_kunjungan_umum","?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,'Terkirim',?,?,?,?,?,?,?,?,?,?","No.Urut",40,new String[]{
                                                                    TNoRw.getText(),response.asText(),Valid.SetTgl(TanggalKunjungan.getSelectedItem()+""),TNoRM.getText(),TPasien.getText(),
                                                                    NoKartu.getText(),KdPoliTujuan.getText(),NmPoliTujuan.getText(),Valid.MaxTeks(Keluhan.getText(),400),KdSadar.getText(),NmSadar.getText(),
                                                                    Sistole.getText(),Diastole.getText(),BeratBadan.getText(),TinggiBadan.getText(),Respiratory.getText(),Heartrate.getText(),
                                                                    LingkarPerut.getText(),Valid.MaxTeks(TerapiObat.getText(),2000),"3","Berobat Jalan",Valid.SetTgl(TanggalPulang.getSelectedItem()+""),
                                                                    KdTenagaMedis.getText(),Valid.MaxTeks(NmTenagaMedis.getText(),50),KdDiagnosa1.getText(),Valid.MaxTeks(NmDiagnosa1.getText(),400),KdDiagnosa2.getText(),
                                                                    Valid.MaxTeks(NmDiagnosa2.getText(),400),KdDiagnosa3.getText(),Valid.MaxTeks(NmDiagnosa3.getText(),400),KdAlergiMakanan.getText(),NmAlergiMakanan.getText(),
                                                                    KdAlergiUdara.getText(),NmAlergiUdara.getText(),KdAlergiObat.getText(),NmAlergiObat.getText(),KdPrognosa.getText(),NmPrognosa.getText(),
                                                                    Valid.MaxTeks(TerapiNonObat.getText(),2000),Valid.MaxTeks(BMHP.getText(),2000)
                                                                });
                                                            }
                                                        }
                                                    }catch (Exception ex) {
                                                        TeksArea.append(ex+"\n");
                                                        if(ex.toString().contains("UnknownHostException")){
                                                            Sequel.menyimpan2("pcare_kunjungan_umum","?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,'Terkirim',?,?,?,?,?,?,?,?,?,?","No.Urut",40,new String[]{
                                                                TNoRw.getText(),response.asText(),Valid.SetTgl(TanggalKunjungan.getSelectedItem()+""),TNoRM.getText(),TPasien.getText(),
                                                                NoKartu.getText(),KdPoliTujuan.getText(),NmPoliTujuan.getText(),Valid.MaxTeks(Keluhan.getText(),400),KdSadar.getText(),NmSadar.getText(),
                                                                Sistole.getText(),Diastole.getText(),BeratBadan.getText(),TinggiBadan.getText(),Respiratory.getText(),Heartrate.getText(),
                                                                LingkarPerut.getText(),Valid.MaxTeks(TerapiObat.getText(),2000),"3","Berobat Jalan",Valid.SetTgl(TanggalPulang.getSelectedItem()+""),
                                                                KdTenagaMedis.getText(),Valid.MaxTeks(NmTenagaMedis.getText(),50),KdDiagnosa1.getText(),Valid.MaxTeks(NmDiagnosa1.getText(),400),KdDiagnosa2.getText(),
                                                                Valid.MaxTeks(NmDiagnosa2.getText(),400),KdDiagnosa3.getText(),Valid.MaxTeks(NmDiagnosa3.getText(),400),KdAlergiMakanan.getText(),NmAlergiMakanan.getText(),
                                                                KdAlergiUdara.getText(),NmAlergiUdara.getText(),KdAlergiObat.getText(),NmAlergiObat.getText(),KdPrognosa.getText(),NmPrognosa.getText(),
                                                                Valid.MaxTeks(TerapiNonObat.getText(),2000),Valid.MaxTeks(BMHP.getText(),2000)
                                                            });
                                                            TeksArea.append("Koneksi ke server PCare terputus. Data disimpan secara lokal, dan dapat dikirimkan kembali ke server PCare..!!\n");
                                                        }else if(ex.toString().contains("500")){
                                                            Sequel.menyimpan2("pcare_kunjungan_umum","?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,'Terkirim',?,?,?,?,?,?,?,?,?,?","No.Urut",40,new String[]{
                                                                TNoRw.getText(),response.asText(),Valid.SetTgl(TanggalKunjungan.getSelectedItem()+""),TNoRM.getText(),TPasien.getText(),
                                                                NoKartu.getText(),KdPoliTujuan.getText(),NmPoliTujuan.getText(),Valid.MaxTeks(Keluhan.getText(),400),KdSadar.getText(),NmSadar.getText(),
                                                                Sistole.getText(),Diastole.getText(),BeratBadan.getText(),TinggiBadan.getText(),Respiratory.getText(),Heartrate.getText(),
                                                                LingkarPerut.getText(),Valid.MaxTeks(TerapiObat.getText(),2000),"3","Berobat Jalan",Valid.SetTgl(TanggalPulang.getSelectedItem()+""),
                                                                KdTenagaMedis.getText(),Valid.MaxTeks(NmTenagaMedis.getText(),50),KdDiagnosa1.getText(),Valid.MaxTeks(NmDiagnosa1.getText(),400),KdDiagnosa2.getText(),
                                                                Valid.MaxTeks(NmDiagnosa2.getText(),400),KdDiagnosa3.getText(),Valid.MaxTeks(NmDiagnosa3.getText(),400),KdAlergiMakanan.getText(),NmAlergiMakanan.getText(),
                                                                KdAlergiUdara.getText(),NmAlergiUdara.getText(),KdAlergiObat.getText(),NmAlergiObat.getText(),KdPrognosa.getText(),NmPrognosa.getText(),
                                                                Valid.MaxTeks(TerapiNonObat.getText(),2000),Valid.MaxTeks(BMHP.getText(),2000)
                                                            });
                                                            TeksArea.append("Server PCare baru ngambek broooh. Data disimpan secara lokal, dan dapat dikirimkan kembali ke server PCare..!!\n");
                                                        }else if(ex.toString().contains("401")){
                                                            TeksArea.append("Username/Password salah. Lupa password? Wani piro...!\n");
                                                        }else if(ex.toString().contains("408")){
                                                            Sequel.menyimpan2("pcare_kunjungan_umum","?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,'Terkirim',?,?,?,?,?,?,?,?,?,?","No.Urut",40,new String[]{
                                                                TNoRw.getText(),response.asText(),Valid.SetTgl(TanggalKunjungan.getSelectedItem()+""),TNoRM.getText(),TPasien.getText(),
                                                                NoKartu.getText(),KdPoliTujuan.getText(),NmPoliTujuan.getText(),Valid.MaxTeks(Keluhan.getText(),400),KdSadar.getText(),NmSadar.getText(),
                                                                Sistole.getText(),Diastole.getText(),BeratBadan.getText(),TinggiBadan.getText(),Respiratory.getText(),Heartrate.getText(),
                                                                LingkarPerut.getText(),Valid.MaxTeks(TerapiObat.getText(),2000),"3","Berobat Jalan",Valid.SetTgl(TanggalPulang.getSelectedItem()+""),
                                                                KdTenagaMedis.getText(),Valid.MaxTeks(NmTenagaMedis.getText(),50),KdDiagnosa1.getText(),Valid.MaxTeks(NmDiagnosa1.getText(),400),KdDiagnosa2.getText(),
                                                                Valid.MaxTeks(NmDiagnosa2.getText(),400),KdDiagnosa3.getText(),Valid.MaxTeks(NmDiagnosa3.getText(),400),KdAlergiMakanan.getText(),NmAlergiMakanan.getText(),
                                                                KdAlergiUdara.getText(),NmAlergiUdara.getText(),KdAlergiObat.getText(),NmAlergiObat.getText(),KdPrognosa.getText(),NmPrognosa.getText(),
                                                                Valid.MaxTeks(TerapiNonObat.getText(),2000),Valid.MaxTeks(BMHP.getText(),2000)
                                                            });
                                                            TeksArea.append("Time out, hayati lelah baaaang. Data disimpan secara lokal, dan dapat dikirimkan kembali ke server PCare..!!\n");
                                                        }else if(ex.toString().contains("424")){
                                                            TeksArea.append("Ambil data masternya yang bener dong coy...!\n");
                                                        }else if(ex.toString().contains("412")){
                                                            TeksArea.append("Tidak sesuai kondisi. Aku, kamu end...!\n");
                                                        }else if(ex.toString().contains("204")){
                                                            TeksArea.append("Data tidak ditemukan...!\n");
                                                        }else if(ex.toString().contains("refused")){
                                                            TeksArea.append("BPJSe ngelu...!\n");
                                                        }
                                                    }         
                                                }      
                                            }
                                        }
                                    }
                                    emptTeks();
                                }catch (Exception ex) {
                                    TeksArea.append("Notifikasi : "+ex+"\n");
                                }
                            }
                        } catch (Exception ex) {
                            TeksArea.append("Notif : "+ex+"\n");
                        } finally{
                            if(rs!=null){
                                rs.close();
                            }
                            if(ps!=null){
                                ps.close();
                            }
                        }
                        
                        ps=koneksi.prepareStatement(
                            "select pcare_kunjungan_umum.no_rawat,pcare_kunjungan_umum.nm_pasien,pcare_kunjungan_umum.noKartu from pcare_kunjungan_umum where pcare_kunjungan_umum.status='Gagal'");
                        try {
                            rs=ps.executeQuery();
                            while(rs.next()){
                                NoKartu.setText(rs.getString("noKartu"));
                                TPasien.setText(rs.getString("nm_pasien"));
                                setNoRm2(rs.getString("no_rawat")); 
                                TeksArea.append("No.Rawat : "+rs.getString("no_rawat")+" ditemukan, proses mengirim kunjungan ke server PCare BPJS.. "+"\n");
                                headerscari = new HttpHeaders();
                                headerscari.setContentType(MediaType.TEXT_PLAIN);
                                headerscari.add("X-cons-id",koneksiDB.CONSIDAPIPCARE());
                                utc=String.valueOf(api.GetUTCdatetimeAsString());
                                headerscari.add("X-timestamp",utc);            
                                headerscari.add("X-signature",api.getHmac());
                                headerscari.add("X-authorization","Basic "+Base64.encodeBase64String(otorisasi.getBytes()));
                                headerscari.add("user_key",koneksiDB.USERKEYAPIPCARE());
                                requestJson ="{" +
                                                "\"noKunjungan\": null," +
                                                "\"noKartu\": \""+NoKartu.getText()+"\"," +
                                                "\"tglDaftar\": \""+TanggalDaftar.getSelectedItem()+"\"," +
                                                "\"kdPoli\": \""+KdPoliTujuan.getText()+"\"," +
                                                "\"keluhan\": \""+(Keluhan.getText().equals("")?"Tidak Ada":Keluhan.getText())+"\"," +
                                                "\"kdSadar\": \""+KdSadar.getText()+"\"," +
                                                "\"sistole\": "+Sistole.getText()+"," +
                                                "\"diastole\": "+Diastole.getText()+"," +
                                                "\"beratBadan\": "+BeratBadan.getText()+"," +
                                                "\"tinggiBadan\": "+TinggiBadan.getText()+"," +
                                                "\"respRate\": "+Respiratory.getText()+"," +
                                                "\"heartRate\": "+Heartrate.getText()+"," +
                                                "\"lingkarPerut\": "+LingkarPerut.getText()+"," +
                                                "\"kdStatusPulang\": \"3\"," +
                                                "\"tglPulang\": \""+TanggalPulang.getSelectedItem()+"\"," +
                                                "\"kdDokter\": \""+KdTenagaMedis.getText()+"\"," +
                                                "\"kdDiag1\": \""+KdDiagnosa1.getText()+"\"," +
                                                "\"kdDiag2\": "+diagnosa2+"," +
                                                "\"kdDiag3\": "+diagnosa3+"," +
                                                "\"kdPoliRujukInternal\":null," +
                                                "\"rujukLanjut\": null," +
                                                "\"kdTacc\": -1," +
                                                "\"alasanTacc\": null," +
                                                "\"anamnesa\": \""+(Keluhan.getText().equals("")?"Tidak Ada":Keluhan.getText())+"\"," +
                                                "\"alergiMakan\": \""+KdAlergiMakanan.getText()+"\"," +
                                                "\"alergiUdara\": \""+KdAlergiUdara.getText()+"\"," +
                                                "\"alergiObat\": \""+KdAlergiObat.getText()+"\"," +
                                                "\"kdPrognosa\": \""+KdPrognosa.getText()+"\"," +
                                                "\"terapiObat\": \""+(TerapiObat.getText().equals("")?"Tidak Ada":TerapiObat.getText())+"\"," +
                                                "\"terapiNonObat\": \""+(TerapiNonObat.getText().equals("")?"Tidak Ada":TerapiNonObat.getText())+"\"," +
                                                "\"bmhp\": \""+(BMHP.getText().equals("")?"Tidak Ada":BMHP.getText())+"\"," +
                                                "\"suhu\": \""+TSuhu.getText()+"\"" +
                                              "}";
                                TeksArea.append(requestJson+"\n");
                                requestEntity = new HttpEntity(requestJson,headerscari);
                                requestJson=api.getRest().exchange(URL+"/kunjungan/V1", HttpMethod.POST, requestEntity, String.class).getBody();
                                TeksArea.append(requestJson+"\n");
                                root = mapper.readTree(requestJson);
                                nameNode = root.path("metaData");
                                TeksArea.append("code : "+nameNode.path("code").asText()+"\n");
                                TeksArea.append("message : "+nameNode.path("message").asText()+"\n");
                                if(nameNode.path("code").asText().equals("201")){
                                    for(JsonNode list:mapper.readTree(api.Decrypt(root.path("response").asText(),utc))){
                                        response=list.path("message");
                                    }
                                    Sequel.mengedit("pcare_kunjungan_umum","no_rawat=?","noKunjungan=?,status='Terkirim'", 2,new String[]{
                                        response.asText(),rs.getString("no_rawat")
                                    });
                                }
                            }
                        } catch (Exception ex) {
                            TeksArea.append("Notif : "+ex+"\n");
                            if(ex.toString().contains("UnknownHostException")||ex.toString().contains("unreachable")){
                                TeksArea.append("Koneksi ke server PCare terputus. Data disimpan secara lokal, dan dapat dikirimkan kembali ke server PCare..!!"+"\n");
                            }else if(ex.toString().contains("500")){
                                TeksArea.append("Server PCare baru ngambek broooh. Data disimpan secara lokal, dan dapat dikirimkan kembali ke server PCare..!!"+"\n");
                            }else if(ex.toString().contains("401")){
                                TeksArea.append("Username/Password salah. Lupa password? Wani piro...!"+"\n");
                            }else if(ex.toString().contains("408")){
                                TeksArea.append("Time out, hayati lelah baaaang. Data disimpan secara lokal, dan dapat dikirimkan kembali ke server PCare..!!"+"\n");
                            }else if(ex.toString().contains("424")){
                                TeksArea.append("Ambil data masternya yang bener dong coy...!"+"\n");
                            }else if(ex.toString().contains("412")){
                                TeksArea.append("Tidak sesuai kondisi. Aku, kamu end...!"+"\n");
                            }else if(ex.toString().contains("204")){
                                TeksArea.append("Data tidak ditemukan...!"+"\n");
                            }else if(ex.toString().contains("refused")){
                                TeksArea.append("BPJSe ngelu...!"+"\n");
                            }
                        } finally{
                            if(rs!=null){
                                rs.close();
                            }
                            if(ps!=null){
                                ps.close();
                            }
                        }
                        
                        TeksArea.append("Pengiriman data kunjungan PCare selesai\n\n");
                        
                        TeksArea.append("Pengiriman data obat & tindakan PCare dimulai\n");
                        ps=koneksi.prepareStatement(
                            "select pcare_kunjungan_umum.no_rawat,pcare_kunjungan_umum.noKunjungan,pcare_kunjungan_umum.no_rkm_medis,pcare_kunjungan_umum.nm_pasien from pcare_kunjungan_umum where pcare_kunjungan_umum.status='Terkirim'");
                        try {
                            rs=ps.executeQuery();
                            while(rs.next()){
                                TeksArea.append("Mencoba mencari data mapping obat No.Kunjungan "+rs.getString("noKunjungan")+" / No.Rawat "+rs.getString("no_rawat")+" / No.RM "+rs.getString("no_rkm_medis")+" / Pasien "+rs.getString("nm_pasien")+" dan mengirimkan ke server PCare BPJS...!!\n");
                                pscari=koneksi.prepareStatement(
                                    "select detail_pemberian_obat.tgl_perawatan,detail_pemberian_obat.jam,detail_pemberian_obat.kode_brng,detail_pemberian_obat.jml,detail_pemberian_obat.no_rawat,maping_obat_pcare.kode_brng_pcare,detail_pemberian_obat.no_batch,"+
                                    "detail_pemberian_obat.no_faktur from detail_pemberian_obat inner join maping_obat_pcare on maping_obat_pcare.kode_brng=detail_pemberian_obat.kode_brng where detail_pemberian_obat.no_rawat=?");
                                try {
                                    pscari.setString(1,rs.getString("no_rawat"));
                                    rscari=pscari.executeQuery();
                                    while(rscari.next()){
                                        if(Sequel.cariInteger("select count(kode_brng) from pcare_obat_diberikan where tgl_perawatan='"+rscari.getString("tgl_perawatan")+"' and jam='"+rscari.getString("jam")+"' and no_rawat='"+rs.getString("no_rawat")+"' and kode_brng='"+rscari.getString("kode_brng")+"'")==0){
                                            arrSplit = Sequel.cariIsi("select aturan from aturan_pakai where tgl_perawatan='"+rscari.getString("tgl_perawatan")+"' and jam='"+rscari.getString("jam")+"' and no_rawat='"+rs.getString("no_rawat")+"' and kode_brng='"+rscari.getString("kode_brng")+"'").toLowerCase().split("x");
                                            signa1="1";
                                            try {
                                                if(!arrSplit[0].replaceAll("[^0-9.]+", "").equals("")){
                                                    signa1=arrSplit[0].replaceAll("[^0-9.]+", "");
                                                }
                                            } catch (Exception a) {
                                                signa1="1";
                                            }

                                            signa2="1";
                                            try {
                                                if(!arrSplit[1].replaceAll("[^0-9.]+", "").equals("")){
                                                    signa2=arrSplit[1].replaceAll("[^0-9.]+", "");
                                                }
                                            } catch (Exception a) {
                                                signa2="1";
                                            }  

                                            try {
                                                headers = new HttpHeaders();
                                                headers.setContentType(MediaType.TEXT_PLAIN);
                                                headers.add("X-cons-id",koneksiDB.CONSIDAPIPCARE());
                                                utc=String.valueOf(api.GetUTCdatetimeAsString());
                                                headers.add("X-timestamp",utc);            
                                                headers.add("X-signature",api.getHmac());
                                                headers.add("X-authorization","Basic "+Base64.encodeBase64String(otorisasi.getBytes()));
                                                headers.add("user_key",koneksiDB.USERKEYAPIPCARE());
                                                requestJson ="{" +
                                                    "\"kdObatSK\": 0," +
                                                    "\"noKunjungan\": \""+rs.getString("noKunjungan")+"\"," +
                                                    "\"racikan\": false," +
                                                    "\"kdRacikan\": null," +
                                                    "\"obatDPHO\": true," +
                                                    "\"kdObat\": \""+rscari.getString("kode_brng_pcare")+"\"," +
                                                    "\"signa1\": "+signa1+"," +
                                                    "\"signa2\": "+signa2+"," +
                                                    "\"jmlObat\": "+rscari.getString("jml")+"," +
                                                    "\"jmlPermintaan\": "+rscari.getString("jml")+"," +
                                                    "\"nmObatNonDPHO\": \"-\"" +
                                                 "}";
                                                TeksArea.append(requestJson+"\n");
                                                requestEntity = new HttpEntity(requestJson,headers);
                                                requestJson=api.getRest().exchange(URL+"/obat/kunjungan", HttpMethod.POST, requestEntity, String.class).getBody();
                                                TeksArea.append(requestJson+"\n");
                                                root = mapper.readTree(requestJson);
                                                nameNode = root.path("metaData");
                                                TeksArea.append("code : "+nameNode.path("code").asText()+"\n");
                                                TeksArea.append("message : "+nameNode.path("message").asText()+"\n"); 
                                                if(nameNode.path("code").asText().equals("201")){
                                                    response = mapper.readTree(api.Decrypt(root.path("response").asText(),utc));
                                                    kdObatSK="";
                                                    if(response.isArray()){
                                                        for(JsonNode list:response){
                                                            if(list.path("field").asText().equals("kdObatSK")){
                                                                kdObatSK=list.path("message").asText();
                                                            }
                                                        }
                                                    }
                                                    Sequel.menyimpan2("pcare_obat_diberikan","?,?,?,?,?,?,?,?",8,new String[]{
                                                        rs.getString("no_rawat"),rs.getString("noKunjungan"),kdObatSK,rscari.getString("tgl_perawatan"),rscari.getString("jam"),rscari.getString("kode_brng"),rscari.getString("no_batch"),rscari.getString("no_faktur")
                                                    });
                                                }
                                            }catch (Exception ex) {
                                                TeksArea.append("Notifikasi Bridging : "+ex+"\n");
                                                if(ex.toString().contains("UnknownHostException")){
                                                    TeksArea.append("Koneksi ke server PCare terputus...!\n");
                                                }else if(ex.toString().contains("500")){
                                                    TeksArea.append("Server PCare baru ngambek broooh...!\n");
                                                }else if(ex.toString().contains("401")){
                                                    TeksArea.append("Username/Password salah. Lupa password? Wani piro...!\n");
                                                }else if(ex.toString().contains("408")){
                                                    TeksArea.append("Time out, hayati lelah baaaang...!\n");
                                                }else if(ex.toString().contains("424")){
                                                    TeksArea.append("Ambil data masternya yang bener dong coy...!\n");
                                                }else if(ex.toString().contains("412")){
                                                    TeksArea.append("Tidak sesuai kondisi. Aku, kamu end...!\n");
                                                }else if(ex.toString().contains("204")){
                                                    TeksArea.append("Data tidak ditemukan...!\n");
                                                }
                                            } 
                                        }
                                    }
                                    if(rscari.getRow()==0){
                                        TeksArea.append("Mapping obat No.Kunjungan "+rs.getString("noKunjungan")+" / No.Rawat "+rs.getString("no_rawat")+" / No.RM "+rs.getString("no_rkm_medis")+" / Pasien "+rs.getString("no_rkm_medis")+" tidak ditemukan...!!");
                                    }
                                } catch (Exception a) {
                                    TeksArea.append("Notif : "+a+"\n");
                                } finally{
                                    if(rscari!=null){
                                        rscari.close();
                                    }
                                    if(pscari!=null){
                                        pscari.close();
                                    }
                                }

                                TeksArea.append("Mencoba mencari data mapping tindakan dokter rawat jalan, No.Kunjungan "+rs.getString("noKunjungan")+" / No.Rawat "+rs.getString("noKunjungan")+" / No.RM "+rs.getString("no_rkm_medis")+" / Pasien "+rs.getString("no_rkm_medis")+" dan mengirimkan ke server PCare BPJS...!!\n");
                                pscari=koneksi.prepareStatement(
                                    "select rawat_jl_dr.kd_jenis_prw,rawat_jl_dr.tgl_perawatan,rawat_jl_dr.jam_rawat,rawat_jl_dr.material,rawat_jl_dr.bhp,rawat_jl_dr.tarif_tindakandr,rawat_jl_dr.kso,rawat_jl_dr.menejemen,rawat_jl_dr.biaya_rawat, "+
                                    "maping_tindakan_pcare.kd_tindakan_pcare from rawat_jl_dr inner join maping_tindakan_pcare on maping_tindakan_pcare.kd_jenis_prw=rawat_jl_dr.kd_jenis_prw where rawat_jl_dr.no_rawat=?");
                                try {
                                    pscari.setString(1,rs.getString("no_rawat"));
                                    rscari=pscari.executeQuery();
                                    while(rscari.next()){
                                        if(Sequel.cariInteger("select count(kd_jenis_prw) from pcare_tindakan_ralan_diberikan where tgl_perawatan='"+rscari.getString("tgl_perawatan")+"' and jam='"+rscari.getString("jam")+"' and no_rawat='"+rs.getString("no_rawat")+"' and kd_jenis_prw='"+rscari.getString("kd_jenis_prw")+"'")==0){
                                            try {
                                                headers = new HttpHeaders();
                                                headers.setContentType(MediaType.APPLICATION_JSON);
                                                headers.add("X-cons-id",koneksiDB.CONSIDAPIPCARE());
                                                utc=String.valueOf(api.GetUTCdatetimeAsString());
                                                headers.add("X-timestamp",utc);            
                                                headers.add("X-signature",api.getHmac());
                                                headers.add("X-authorization","Basic "+Base64.encodeBase64String(otorisasi.getBytes()));
                                                headers.add("user_key",koneksiDB.USERKEYAPIPCARE());
                                                requestJson ="{" +
                                                    "\"kdTindakanSK\": 0," +
                                                    "\"noKunjungan\": \""+rs.getString("noKunjungan")+"\"," +
                                                    "\"kdTindakan\": \""+rscari.getString("kd_tindakan_pcare")+"\"," +
                                                    "\"biaya\": 0," +
                                                    "\"keterangan\": null," +
                                                    "\"hasil\": 0" +
                                                "}";
                                                TeksArea.append(requestJson+"\n");
                                                requestEntity = new HttpEntity(requestJson,headers);
                                                requestJson=api.getRest().exchange(URL+"/tindakan", HttpMethod.POST, requestEntity, String.class).getBody();
                                                TeksArea.append(requestJson+"\n");
                                                root = mapper.readTree(requestJson);
                                                nameNode = root.path("metaData");
                                                TeksArea.append("code : "+nameNode.path("code").asText()+"\n");
                                                TeksArea.append("message : "+nameNode.path("message").asText()+"\n"); 
                                                if(nameNode.path("code").asText().equals("201")){
                                                    response = mapper.readTree(api.Decrypt(root.path("response").asText(),utc));
                                                    Sequel.menyimpan2("pcare_tindakan_ralan_diberikan","?,?,?,?,?,?,?,?,?,?,?,?,?",13,new String[]{
                                                        rs.getString("no_rawat"),rs.getString("noKunjungan"), response.path("message").asText(),
                                                        rscari.getString("tgl_perawatan"),rscari.getString("jam_rawat"),rscari.getString("kd_jenis_prw"),rscari.getString("material"), 
                                                        rscari.getString("bhp"),rscari.getString("tarif_tindakandr"),"0",rscari.getString("kso"), 
                                                        rscari.getString("menejemen"),rscari.getString("biaya_rawat")
                                                    });
                                                }
                                            }catch (Exception ex) {
                                                TeksArea.append("Notifikasi Bridging : "+ex+"\n");
                                                if(ex.toString().contains("UnknownHostException")){
                                                    TeksArea.append("Koneksi ke server PCare terputus...!\n");
                                                }else if(ex.toString().contains("500")){
                                                    TeksArea.append("Server PCare baru ngambek broooh...!\n");
                                                }else if(ex.toString().contains("401")){
                                                    TeksArea.append("Username/Password salah. Lupa password? Wani piro...!\n");
                                                }else if(ex.toString().contains("408")){
                                                    TeksArea.append("Time out, hayati lelah baaaang...!\n");
                                                }else if(ex.toString().contains("424")){
                                                    TeksArea.append("Ambil data masternya yang bener dong coy...!\n");
                                                }else if(ex.toString().contains("412")){
                                                    TeksArea.append("Tidak sesuai kondisi. Aku, kamu end...!\n");
                                                }else if(ex.toString().contains("204")){
                                                    TeksArea.append("Data tidak ditemukan...!\n");
                                                }
                                            } 
                                        }
                                    }
                                    if(rscari.getRow()==0){
                                        TeksArea.append("Mapping tindakan dokter rawat jalan, No.Kunjungan "+rs.getString("noKunjungan")+" / No.Rawat "+rs.getString("noKunjungan")+" / No.RM "+rs.getString("no_rkm_medis")+" / Pasien "+rs.getString("no_rkm_medis")+" tidak ditemukan...!!\n");
                                    }
                                } catch (Exception a) {
                                    TeksArea.append("Notif : "+a+"\n");
                                } finally{
                                    if(rscari!=null){
                                        rscari.close();
                                    }
                                    if(pscari!=null){
                                        pscari.close();
                                    }
                                }

                                TeksArea.append("Mencoba mencari data mapping tindakan paramedis rawat jalan, No.Kunjungan "+rs.getString("noKunjungan")+" / No.Rawat "+rs.getString("noKunjungan")+" / No.RM "+rs.getString("no_rkm_medis")+" / Pasien "+rs.getString("no_rkm_medis")+" dan mengirimkan ke server PCare BPJS...!!\n");
                                pscari=koneksi.prepareStatement(
                                    "select rawat_jl_pr.kd_jenis_prw,rawat_jl_pr.tgl_perawatan,rawat_jl_pr.jam_rawat,rawat_jl_pr.material,rawat_jl_pr.bhp,rawat_jl_pr.tarif_tindakanpr,rawat_jl_pr.kso,rawat_jl_pr.menejemen,rawat_jl_pr.biaya_rawat, "+
                                    "maping_tindakan_pcare.kd_tindakan_pcare from rawat_jl_pr inner join maping_tindakan_pcare on maping_tindakan_pcare.kd_jenis_prw=rawat_jl_pr.kd_jenis_prw where rawat_jl_pr.no_rawat=?");
                                try {
                                    pscari.setString(1,rs.getString("no_rawat"));
                                    rscari=pscari.executeQuery();
                                    while(rscari.next()){
                                        if(Sequel.cariInteger("select count(kd_jenis_prw) from pcare_tindakan_ralan_diberikan where tgl_perawatan='"+rscari.getString("tgl_perawatan")+"' and jam='"+rscari.getString("jam")+"' and no_rawat='"+rs.getString("no_rawat")+"' and kd_jenis_prw='"+rscari.getString("kd_jenis_prw")+"'")==0){
                                            try {
                                                headers = new HttpHeaders();
                                                headers.setContentType(MediaType.APPLICATION_JSON);
                                                headers.add("X-cons-id",koneksiDB.CONSIDAPIPCARE());
                                                utc=String.valueOf(api.GetUTCdatetimeAsString());
                                                headers.add("X-timestamp",utc);            
                                                headers.add("X-signature",api.getHmac());
                                                headers.add("X-authorization","Basic "+Base64.encodeBase64String(otorisasi.getBytes()));
                                                headers.add("user_key",koneksiDB.USERKEYAPIPCARE());
                                                requestJson ="{" +
                                                    "\"kdTindakanSK\": 0," +
                                                    "\"noKunjungan\": \""+rs.getString("noKunjungan")+"\"," +
                                                    "\"kdTindakan\": \""+rscari.getString("kd_tindakan_pcare")+"\"," +
                                                    "\"biaya\": 0," +
                                                    "\"keterangan\": null," +
                                                    "\"hasil\": 0" +
                                                "}";
                                                TeksArea.append(requestJson+"\n");
                                                requestEntity = new HttpEntity(requestJson,headers);
                                                requestJson=api.getRest().exchange(URL+"/tindakan", HttpMethod.POST, requestEntity, String.class).getBody();
                                                TeksArea.append(requestJson+"\n");
                                                root = mapper.readTree(requestJson);
                                                nameNode = root.path("metaData");
                                                TeksArea.append("code : "+nameNode.path("code").asText()+"\n");
                                                TeksArea.append("message : "+nameNode.path("message").asText()+"\n"); 
                                                if(nameNode.path("code").asText().equals("201")){
                                                    response = mapper.readTree(api.Decrypt(root.path("response").asText(),utc));
                                                    Sequel.menyimpan2("pcare_tindakan_ralan_diberikan","?,?,?,?,?,?,?,?,?,?,?,?,?",13,new String[]{
                                                        rs.getString("no_rawat"),rs.getString("noKunjungan"), response.path("message").asText(),
                                                        rscari.getString("tgl_perawatan"),rscari.getString("jam_rawat"),rscari.getString("kd_jenis_prw"),rscari.getString("material"), 
                                                        rscari.getString("bhp"),"0",rscari.getString("tarif_tindakanpr"),rscari.getString("kso"), 
                                                        rscari.getString("menejemen"),rscari.getString("biaya_rawat")
                                                    });
                                                }
                                            }catch (Exception ex) {
                                                TeksArea.append("Notifikasi Bridging : "+ex+"\n");
                                                if(ex.toString().contains("UnknownHostException")){
                                                    TeksArea.append("Koneksi ke server PCare terputus...!\n");
                                                }else if(ex.toString().contains("500")){
                                                    TeksArea.append("Server PCare baru ngambek broooh...!\n");
                                                }else if(ex.toString().contains("401")){
                                                    TeksArea.append("Username/Password salah. Lupa password? Wani piro...!\n");
                                                }else if(ex.toString().contains("408")){
                                                    TeksArea.append("Time out, hayati lelah baaaang...!\n");
                                                }else if(ex.toString().contains("424")){
                                                    TeksArea.append("Ambil data masternya yang bener dong coy...!\n");
                                                }else if(ex.toString().contains("412")){
                                                    TeksArea.append("Tidak sesuai kondisi. Aku, kamu end...!\n");
                                                }else if(ex.toString().contains("204")){
                                                    TeksArea.append("Data tidak ditemukan...!\n");
                                                }
                                            } 
                                        }
                                    }
                                    if(rscari.getRow()==0){
                                        TeksArea.append("Mapping tindakan paramedis rawat jalan, No.Kunjungan "+rs.getString("noKunjungan")+" / No.Rawat "+rs.getString("noKunjungan")+" / No.RM "+rs.getString("no_rkm_medis")+" / Pasien "+rs.getString("no_rkm_medis")+" tidak ditemukan...!!\n");
                                    }
                                } catch (Exception a) {
                                    TeksArea.append("Notif : "+a+"\n");
                                } finally{
                                    if(rscari!=null){
                                        rscari.close();
                                    }
                                    if(pscari!=null){
                                        pscari.close();
                                    }
                                }

                                TeksArea.append("Mencoba mencari data mapping tindakan dokter & paramedis rawat jalan, No.Kunjungan "+rs.getString("noKunjungan")+" / No.Rawat "+rs.getString("noKunjungan")+" / No.RM "+rs.getString("no_rkm_medis")+" / Pasien "+rs.getString("no_rkm_medis")+" dan mengirimkan ke server PCare BPJS...!!\n");
                                pscari=koneksi.prepareStatement(
                                    "select rawat_jl_drpr.kd_jenis_prw,rawat_jl_drpr.tgl_perawatan,rawat_jl_drpr.jam_rawat,rawat_jl_drpr.material,rawat_jl_drpr.bhp,rawat_jl_drpr.tarif_tindakandr,rawat_jl_drpr.tarif_tindakanpr,rawat_jl_drpr.kso,rawat_jl_drpr.menejemen, "+
                                    "rawat_jl_drpr.biaya_rawat,maping_tindakan_pcare.kd_tindakan_pcare from rawat_jl_drpr inner join maping_tindakan_pcare on maping_tindakan_pcare.kd_jenis_prw=rawat_jl_drpr.kd_jenis_prw where rawat_jl_drpr.no_rawat=?");
                                try {
                                    pscari.setString(1,rs.getString("no_rawat"));
                                    rscari=pscari.executeQuery();
                                    while(rscari.next()){
                                        if(Sequel.cariInteger("select count(kd_jenis_prw) from pcare_tindakan_ralan_diberikan where tgl_perawatan='"+rscari.getString("tgl_perawatan")+"' and jam='"+rscari.getString("jam")+"' and no_rawat='"+rs.getString("no_rawat")+"' and kd_jenis_prw='"+rscari.getString("kd_jenis_prw")+"'")==0){
                                            try {
                                                headers = new HttpHeaders();
                                                headers.setContentType(MediaType.APPLICATION_JSON);
                                                headers.add("X-cons-id",koneksiDB.CONSIDAPIPCARE());
                                                utc=String.valueOf(api.GetUTCdatetimeAsString());
                                                headers.add("X-timestamp",utc);            
                                                headers.add("X-signature",api.getHmac());
                                                headers.add("X-authorization","Basic "+Base64.encodeBase64String(otorisasi.getBytes()));
                                                headers.add("user_key",koneksiDB.USERKEYAPIPCARE());
                                                requestJson ="{" +
                                                    "\"kdTindakanSK\": 0," +
                                                    "\"noKunjungan\": \""+rs.getString("noKunjungan")+"\"," +
                                                    "\"kdTindakan\": \""+rscari.getString("kd_tindakan_pcare")+"\"," +
                                                    "\"biaya\": 0," +
                                                    "\"keterangan\": null," +
                                                    "\"hasil\": 0" +
                                                "}";
                                                TeksArea.append(requestJson+"\n");
                                                requestEntity = new HttpEntity(requestJson,headers);
                                                requestJson=api.getRest().exchange(URL+"/tindakan", HttpMethod.POST, requestEntity, String.class).getBody();
                                                TeksArea.append(requestJson+"\n");
                                                root = mapper.readTree(requestJson);
                                                nameNode = root.path("metaData");
                                                TeksArea.append("code : "+nameNode.path("code").asText()+"\n");
                                                TeksArea.append("message : "+nameNode.path("message").asText()+"\n"); 
                                                if(nameNode.path("code").asText().equals("201")){
                                                    response = mapper.readTree(api.Decrypt(root.path("response").asText(),utc));
                                                    Sequel.menyimpan2("pcare_tindakan_ralan_diberikan","?,?,?,?,?,?,?,?,?,?,?,?,?",13,new String[]{
                                                        rs.getString("no_rawat"),rs.getString("noKunjungan"), response.path("message").asText(),
                                                        rscari.getString("tgl_perawatan"),rscari.getString("jam_rawat"),rscari.getString("kd_jenis_prw"),rscari.getString("material"), 
                                                        rscari.getString("bhp"),rscari.getString("tarif_tindakandr"),rscari.getString("tarif_tindakanpr"),rscari.getString("kso"), 
                                                        rscari.getString("menejemen"),rscari.getString("biaya_rawat")
                                                    });
                                                }
                                            }catch (Exception ex) {
                                                TeksArea.append("Notifikasi Bridging : "+ex+"\n");
                                                if(ex.toString().contains("UnknownHostException")){
                                                    TeksArea.append("Koneksi ke server PCare terputus...!\n");
                                                }else if(ex.toString().contains("500")){
                                                    TeksArea.append("Server PCare baru ngambek broooh...!\n");
                                                }else if(ex.toString().contains("401")){
                                                    TeksArea.append("Username/Password salah. Lupa password? Wani piro...!\n");
                                                }else if(ex.toString().contains("408")){
                                                    TeksArea.append("Time out, hayati lelah baaaang...!\n");
                                                }else if(ex.toString().contains("424")){
                                                    TeksArea.append("Ambil data masternya yang bener dong coy...!\n");
                                                }else if(ex.toString().contains("412")){
                                                    TeksArea.append("Tidak sesuai kondisi. Aku, kamu end...!\n");
                                                }else if(ex.toString().contains("204")){
                                                    TeksArea.append("Data tidak ditemukan...!\n");
                                                }
                                            } 
                                        }
                                    }
                                    if(rscari.getRow()==0){
                                        TeksArea.append("Mapping tindakan dokter & paramedis rawat jalan, No.Kunjungan "+rs.getString("noKunjungan")+" / No.Rawat "+rs.getString("noKunjungan")+" / No.RM "+rs.getString("no_rkm_medis")+" / Pasien "+rs.getString("no_rkm_medis")+" tidak ditemukan...!!\n");
                                    }
                                } catch (Exception a) {
                                    TeksArea.append("Notif : "+a+"\n");
                                } finally{
                                    if(rscari!=null){
                                        rscari.close();
                                    }
                                    if(pscari!=null){
                                        pscari.close();
                                    }
                                }

                                TeksArea.append("Mencoba mencari data mapping tindakan dokter rawat inap, No.Kunjungan "+rs.getString("noKunjungan")+" / No.Rawat "+rs.getString("noKunjungan")+" / No.RM "+rs.getString("no_rkm_medis")+" / Pasien "+rs.getString("no_rkm_medis")+" dan mengirimkan ke server PCare BPJS...!!\n");
                                pscari=koneksi.prepareStatement(
                                    "select rawat_inap_dr.kd_jenis_prw,rawat_inap_dr.tgl_perawatan,rawat_inap_dr.jam_rawat,rawat_inap_dr.material,rawat_inap_dr.bhp,rawat_inap_dr.tarif_tindakandr,rawat_inap_dr.kso,rawat_inap_dr.menejemen,rawat_inap_dr.biaya_rawat, "+
                                    "maping_tindakan_ranap_pcare.kd_tindakan_pcare from rawat_inap_dr inner join maping_tindakan_ranap_pcare on maping_tindakan_ranap_pcare.kd_jenis_prw=rawat_inap_dr.kd_jenis_prw where rawat_inap_dr.no_rawat=?");
                                try {
                                    pscari.setString(1,rs.getString("no_rawat"));
                                    rscari=pscari.executeQuery();
                                    while(rscari.next()){
                                        if(Sequel.cariInteger("select count(pcare_tindakan_ranap_diberikan.kd_jenis_prw) from pcare_tindakan_ranap_diberikan where pcare_tindakan_ranap_diberikan.tgl_perawatan='"+rscari.getString("tgl_perawatan")+"' and jam='"+rscari.getString("jam")+"' and no_rawat='"+rs.getString("no_rawat")+"' and kd_jenis_prw='"+rscari.getString("kd_jenis_prw")+"'")==0){
                                            try {
                                                headers = new HttpHeaders();
                                                headers.setContentType(MediaType.APPLICATION_JSON);
                                                headers.add("X-cons-id",koneksiDB.CONSIDAPIPCARE());
                                                utc=String.valueOf(api.GetUTCdatetimeAsString());
                                                headers.add("X-timestamp",utc);            
                                                headers.add("X-signature",api.getHmac());
                                                headers.add("X-authorization","Basic "+Base64.encodeBase64String(otorisasi.getBytes()));
                                                headers.add("user_key",koneksiDB.USERKEYAPIPCARE());
                                                requestJson ="{" +
                                                    "\"kdTindakanSK\": 0," +
                                                    "\"noKunjungan\": \""+rs.getString("noKunjungan")+"\"," +
                                                    "\"kdTindakan\": \""+rscari.getString("kd_tindakan_pcare")+"\"," +
                                                    "\"biaya\": 0," +
                                                    "\"keterangan\": null," +
                                                    "\"hasil\": 0" +
                                                "}";
                                                TeksArea.append(requestJson+"\n");
                                                requestEntity = new HttpEntity(requestJson,headers);
                                                requestJson=api.getRest().exchange(URL+"/tindakan", HttpMethod.POST, requestEntity, String.class).getBody();
                                                TeksArea.append(requestJson+"\n");
                                                root = mapper.readTree(requestJson);
                                                nameNode = root.path("metaData");
                                                TeksArea.append("code : "+nameNode.path("code").asText()+"\n");
                                                TeksArea.append("message : "+nameNode.path("message").asText()+"\n"); 
                                                if(nameNode.path("code").asText().equals("201")){
                                                    response = mapper.readTree(api.Decrypt(root.path("response").asText(),utc));
                                                    Sequel.menyimpan2("pcare_tindakan_ranap_diberikan","?,?,?,?,?,?,?,?,?,?,?,?,?",13,new String[]{
                                                        rs.getString("no_rawat"),rs.getString("noKunjungan"), response.path("message").asText(),
                                                        rscari.getString("tgl_perawatan"),rscari.getString("jam_rawat"),rscari.getString("kd_jenis_prw"),rscari.getString("material"), 
                                                        rscari.getString("bhp"),rscari.getString("tarif_tindakandr"),"0",rscari.getString("kso"), 
                                                        rscari.getString("menejemen"),rscari.getString("biaya_rawat")
                                                    });
                                                }
                                            }catch (Exception ex) {
                                                TeksArea.append("Notifikasi Bridging : "+ex+"\n");
                                                if(ex.toString().contains("UnknownHostException")){
                                                    TeksArea.append("Koneksi ke server PCare terputus...!\n");
                                                }else if(ex.toString().contains("500")){
                                                    TeksArea.append("Server PCare baru ngambek broooh...!\n");
                                                }else if(ex.toString().contains("401")){
                                                    TeksArea.append("Username/Password salah. Lupa password? Wani piro...!\n");
                                                }else if(ex.toString().contains("408")){
                                                    TeksArea.append("Time out, hayati lelah baaaang...!\n");
                                                }else if(ex.toString().contains("424")){
                                                    TeksArea.append("Ambil data masternya yang bener dong coy...!\n");
                                                }else if(ex.toString().contains("412")){
                                                    TeksArea.append("Tidak sesuai kondisi. Aku, kamu end...!\n");
                                                }else if(ex.toString().contains("204")){
                                                    TeksArea.append("Data tidak ditemukan...!\n");
                                                }
                                            } 
                                        }
                                    }
                                    if(rscari.getRow()==0){
                                        TeksArea.append("Mapping tindakan dokter rawat inap, No.Kunjungan "+rs.getString("noKunjungan")+" / No.Rawat "+rs.getString("noKunjungan")+" / No.RM "+rs.getString("no_rkm_medis")+" / Pasien "+rs.getString("no_rkm_medis")+" tidak ditemukan...!!\n");
                                    }
                                } catch (Exception a) {
                                    TeksArea.append("Notif : "+a+"\n");
                                } finally{
                                    if(rscari!=null){
                                        rscari.close();
                                    }
                                    if(pscari!=null){
                                        pscari.close();
                                    }
                                }

                                TeksArea.append("Mencoba mencari data mapping tindakan paramedis rawat inap, No.Kunjungan "+rs.getString("noKunjungan")+" / No.Rawat "+rs.getString("noKunjungan")+" / No.RM "+rs.getString("no_rkm_medis")+" / Pasien "+rs.getString("no_rkm_medis")+" dan mengirimkan ke server PCare BPJS...!!\n");
                                pscari=koneksi.prepareStatement(
                                    "select rawat_inap_pr.kd_jenis_prw,rawat_inap_pr.tgl_perawatan,rawat_inap_pr.jam_rawat,rawat_inap_pr.material,rawat_inap_pr.bhp,rawat_inap_pr.tarif_tindakanpr,rawat_inap_pr.kso,rawat_inap_pr.menejemen,rawat_inap_pr.biaya_rawat, "+
                                    "maping_tindakan_ranap_pcare.kd_tindakan_pcare from rawat_inap_pr inner join maping_tindakan_ranap_pcare on maping_tindakan_ranap_pcare.kd_jenis_prw=rawat_inap_pr.kd_jenis_prw where rawat_inap_pr.no_rawat=?");
                                try {
                                    pscari.setString(1,rs.getString("no_rawat"));
                                    rscari=pscari.executeQuery();
                                    while(rscari.next()){
                                        if(Sequel.cariInteger("select count(pcare_tindakan_ranap_diberikan.kd_jenis_prw) from pcare_tindakan_ranap_diberikan where pcare_tindakan_ranap_diberikan.tgl_perawatan='"+rscari.getString("tgl_perawatan")+"' and jam='"+rscari.getString("jam")+"' and no_rawat='"+rs.getString("no_rawat")+"' and kd_jenis_prw='"+rscari.getString("kd_jenis_prw")+"'")==0){
                                            try {
                                                headers = new HttpHeaders();
                                                headers.setContentType(MediaType.APPLICATION_JSON);
                                                headers.add("X-cons-id",koneksiDB.CONSIDAPIPCARE());
                                                utc=String.valueOf(api.GetUTCdatetimeAsString());
                                                headers.add("X-timestamp",utc);            
                                                headers.add("X-signature",api.getHmac());
                                                headers.add("X-authorization","Basic "+Base64.encodeBase64String(otorisasi.getBytes()));
                                                headers.add("user_key",koneksiDB.USERKEYAPIPCARE());
                                                requestJson ="{" +
                                                    "\"kdTindakanSK\": 0," +
                                                    "\"noKunjungan\": \""+rs.getString("noKunjungan")+"\"," +
                                                    "\"kdTindakan\": \""+rscari.getString("kd_tindakan_pcare")+"\"," +
                                                    "\"biaya\": 0," +
                                                    "\"keterangan\": null," +
                                                    "\"hasil\": 0" +
                                                "}";
                                                TeksArea.append(requestJson+"\n");
                                                requestEntity = new HttpEntity(requestJson,headers);
                                                requestJson=api.getRest().exchange(URL+"/tindakan", HttpMethod.POST, requestEntity, String.class).getBody();
                                                TeksArea.append(requestJson+"\n");
                                                root = mapper.readTree(requestJson);
                                                nameNode = root.path("metaData");
                                                TeksArea.append("code : "+nameNode.path("code").asText()+"\n");
                                                TeksArea.append("message : "+nameNode.path("message").asText()+"\n"); 
                                                if(nameNode.path("code").asText().equals("201")){
                                                    response = mapper.readTree(api.Decrypt(root.path("response").asText(),utc));
                                                    Sequel.menyimpan2("pcare_tindakan_ranap_diberikan","?,?,?,?,?,?,?,?,?,?,?,?,?",13,new String[]{
                                                        rs.getString("no_rawat"),rs.getString("noKunjungan"), response.path("message").asText(),
                                                        rscari.getString("tgl_perawatan"),rscari.getString("jam_rawat"),rscari.getString("kd_jenis_prw"),rscari.getString("material"), 
                                                        rscari.getString("bhp"),"0",rscari.getString("tarif_tindakanpr"),rscari.getString("kso"), 
                                                        rscari.getString("menejemen"),rscari.getString("biaya_rawat")
                                                    });
                                                }
                                            }catch (Exception ex) {
                                                TeksArea.append("Notifikasi Bridging : "+ex+"\n");
                                                if(ex.toString().contains("UnknownHostException")){
                                                    TeksArea.append("Koneksi ke server PCare terputus...!\n");
                                                }else if(ex.toString().contains("500")){
                                                    TeksArea.append("Server PCare baru ngambek broooh...!\n");
                                                }else if(ex.toString().contains("401")){
                                                    TeksArea.append("Username/Password salah. Lupa password? Wani piro...!\n");
                                                }else if(ex.toString().contains("408")){
                                                    TeksArea.append("Time out, hayati lelah baaaang...!\n");
                                                }else if(ex.toString().contains("424")){
                                                    TeksArea.append("Ambil data masternya yang bener dong coy...!\n");
                                                }else if(ex.toString().contains("412")){
                                                    TeksArea.append("Tidak sesuai kondisi. Aku, kamu end...!\n");
                                                }else if(ex.toString().contains("204")){
                                                    TeksArea.append("Data tidak ditemukan...!\n");
                                                }
                                            } 
                                        }
                                    }
                                    if(rscari.getRow()==0){
                                        TeksArea.append("Mapping tindakan paramedis rawat inap, No.Kunjungan "+rs.getString("noKunjungan")+" / No.Rawat "+rs.getString("noKunjungan")+" / No.RM "+rs.getString("no_rkm_medis")+" / Pasien "+rs.getString("no_rkm_medis")+" tidak ditemukan...!!\n");
                                    }
                                } catch (Exception a) {
                                    TeksArea.append("Notif : "+a+"\n");
                                } finally{
                                    if(rscari!=null){
                                        rscari.close();
                                    }
                                    if(pscari!=null){
                                        pscari.close();
                                    }
                                }

                                TeksArea.append("Mencoba mencari data mapping tindakan dokter & paramedis rawat inap, No.Kunjungan "+rs.getString("noKunjungan")+" / No.Rawat "+rs.getString("noKunjungan")+" / No.RM "+rs.getString("no_rkm_medis")+" / Pasien "+rs.getString("no_rkm_medis")+" dan mengirimkan ke server PCare BPJS...!!\n");
                                pscari=koneksi.prepareStatement(
                                    "select rawat_inap_drpr.kd_jenis_prw,rawat_inap_drpr.tgl_perawatan,rawat_inap_drpr.jam_rawat,rawat_inap_drpr.material,rawat_inap_drpr.bhp,rawat_inap_drpr.tarif_tindakandr,rawat_inap_drpr.tarif_tindakanpr,rawat_inap_drpr.kso,rawat_inap_drpr.menejemen, "+
                                    "rawat_inap_drpr.biaya_rawat,maping_tindakan_ranap_pcare.kd_tindakan_pcare from rawat_inap_drpr inner join maping_tindakan_ranap_pcare on maping_tindakan_ranap_pcare.kd_jenis_prw=rawat_inap_drpr.kd_jenis_prw where rawat_inap_drpr.no_rawat=?");
                                try {
                                    pscari.setString(1,rs.getString("no_rawat"));
                                    rscari=pscari.executeQuery();
                                    while(rscari.next()){
                                        if(Sequel.cariInteger("select count(pcare_tindakan_ranap_diberikan.kd_jenis_prw) from pcare_tindakan_ranap_diberikan where pcare_tindakan_ranap_diberikan.tgl_perawatan='"+rscari.getString("tgl_perawatan")+"' and jam='"+rscari.getString("jam")+"' and no_rawat='"+rs.getString("no_rawat")+"' and kd_jenis_prw='"+rscari.getString("kd_jenis_prw")+"'")==0){
                                            try {
                                                headers = new HttpHeaders();
                                                headers.setContentType(MediaType.APPLICATION_JSON);
                                                headers.add("X-cons-id",koneksiDB.CONSIDAPIPCARE());
                                                utc=String.valueOf(api.GetUTCdatetimeAsString());
                                                headers.add("X-timestamp",utc);            
                                                headers.add("X-signature",api.getHmac());
                                                headers.add("X-authorization","Basic "+Base64.encodeBase64String(otorisasi.getBytes()));
                                                headers.add("user_key",koneksiDB.USERKEYAPIPCARE());
                                                requestJson ="{" +
                                                    "\"kdTindakanSK\": 0," +
                                                    "\"noKunjungan\": \""+rs.getString("noKunjungan")+"\"," +
                                                    "\"kdTindakan\": \""+rscari.getString("kd_tindakan_pcare")+"\"," +
                                                    "\"biaya\": 0," +
                                                    "\"keterangan\": null," +
                                                    "\"hasil\": 0" +
                                                "}";
                                                TeksArea.append(requestJson+"\n");
                                                requestEntity = new HttpEntity(requestJson,headers);
                                                requestJson=api.getRest().exchange(URL+"/tindakan", HttpMethod.POST, requestEntity, String.class).getBody();
                                                TeksArea.append(requestJson+"\n");
                                                root = mapper.readTree(requestJson);
                                                nameNode = root.path("metaData");
                                                TeksArea.append("code : "+nameNode.path("code").asText()+"\n");
                                                TeksArea.append("message : "+nameNode.path("message").asText()+"\n"); 
                                                if(nameNode.path("code").asText().equals("201")){
                                                    response = mapper.readTree(api.Decrypt(root.path("response").asText(),utc));
                                                    Sequel.menyimpan2("pcare_tindakan_ranap_diberikan","?,?,?,?,?,?,?,?,?,?,?,?,?",13,new String[]{
                                                        rs.getString("no_rawat"),rs.getString("noKunjungan"), response.path("message").asText(),
                                                        rscari.getString("tgl_perawatan"),rscari.getString("jam_rawat"),rscari.getString("kd_jenis_prw"),rscari.getString("material"), 
                                                        rscari.getString("bhp"),rscari.getString("tarif_tindakandr"),rscari.getString("tarif_tindakanpr"),rscari.getString("kso"), 
                                                        rscari.getString("menejemen"),rscari.getString("biaya_rawat")
                                                    });
                                                }
                                            }catch (Exception ex) {
                                                TeksArea.append("Notifikasi Bridging : "+ex+"\n");
                                                if(ex.toString().contains("UnknownHostException")){
                                                    TeksArea.append("Koneksi ke server PCare terputus...!\n");
                                                }else if(ex.toString().contains("500")){
                                                    TeksArea.append("Server PCare baru ngambek broooh...!\n");
                                                }else if(ex.toString().contains("401")){
                                                    TeksArea.append("Username/Password salah. Lupa password? Wani piro...!\n");
                                                }else if(ex.toString().contains("408")){
                                                    TeksArea.append("Time out, hayati lelah baaaang...!\n");
                                                }else if(ex.toString().contains("424")){
                                                    TeksArea.append("Ambil data masternya yang bener dong coy...!\n");
                                                }else if(ex.toString().contains("412")){
                                                    TeksArea.append("Tidak sesuai kondisi. Aku, kamu end...!\n");
                                                }else if(ex.toString().contains("204")){
                                                    TeksArea.append("Data tidak ditemukan...!\n");
                                                }
                                            } 
                                        }
                                    }
                                    if(rscari.getRow()==0){
                                        TeksArea.append("Mapping tindakan dokter & paramedis rawat inap, No.Kunjungan "+rs.getString("noKunjungan")+" / No.Rawat "+rs.getString("noKunjungan")+" / No.RM "+rs.getString("no_rkm_medis")+" / Pasien "+rs.getString("no_rkm_medis")+" tidak ditemukan...!!\n");
                                    }
                                } catch (Exception a) {
                                    TeksArea.append("Notif : "+a+"\n");
                                } finally{
                                    if(rscari!=null){
                                        rscari.close();
                                    }
                                    if(pscari!=null){
                                        pscari.close();
                                    }
                                }
                            }
                        } catch (Exception ex) {
                            TeksArea.append("Notif : "+ex+"\n");
                        } finally{
                            if(rs!=null){
                                rs.close();
                            }
                            if(ps!=null){
                                ps.close();
                            }
                        }
                        TeksArea.append("Pengiriman data obat & tindakan PCare selesai\n");
                        TeksArea.append("PROSES KIRIM SELESAI\n\n\n");
                    } catch (Exception ez) {
                        TeksArea.append("Notif : "+ez);
                    }
                }
            }
        };
        // Timer
        new Timer(1000, taskPerformer).start();
    }
    
    public void setNoRm2(String norwt) {
        TNoRw.setText(norwt);
        try{
            pscari=koneksi.prepareStatement(
                    "select reg_periksa.kd_poli,reg_periksa.kd_dokter,reg_periksa.no_rkm_medis,reg_periksa.status_lanjut,reg_periksa.tgl_registrasi,reg_periksa.stts from reg_periksa where reg_periksa.no_rawat=?");
            try{
                pscari.setString(1,norwt);
                rscari=pscari.executeQuery();
                if(rscari.next()){
                    KdTenagaMedis.setText(rscari.getString("kd_dokter"));
                    KdPoliTujuan.setText(rscari.getString("kd_poli"));
                    TNoRM.setText(rscari.getString("no_rkm_medis"));
                    if(rscari.getString("status_lanjut").equals("Ralan")){
                        Perawatan.setSelectedIndex(0);
                    }else{
                        Perawatan.setSelectedIndex(1);
                    }
                    TanggalDaftar.setDate(rscari.getDate("tgl_registrasi"));
                    TanggalKunjungan.setDate(rscari.getDate("tgl_registrasi"));
                    if(rscari.getString("stts").equals("Dirujuk")){
                        KdStatusPulang.setText("4");
                        NmStatusPulang.setText("Rujuk Vertikal");
                    }else if(rscari.getString("stts").equals("Meninggal")){
                        KdStatusPulang.setText("1");
                        NmStatusPulang.setText("Meninggal");
                    }else if(rscari.getString("stts").equals("Pulang Paksa")){
                        KdStatusPulang.setText("2");
                        NmStatusPulang.setText("Pulang Paksa");
                    }else if(rscari.getString("stts").equals("Sudah")){
                        KdStatusPulang.setText("0");
                        NmStatusPulang.setText("Sembuh");
                    }else{
                        KdStatusPulang.setText("9");
                        NmStatusPulang.setText("Lain-lain");
                    }
                }
            }catch(Exception ex){
                TeksArea.append("Notif : "+ex+"\n");
            }finally{
                if(rscari!=null){
                    rscari.close();
                }
                if(pscari!=null){
                    pscari.close();
                }
            }
            
            pscari=koneksi.prepareStatement(
                    "select maping_poliklinik_pcare.kd_poli_pcare,maping_poliklinik_pcare.nm_poli_pcare from maping_poliklinik_pcare where maping_poliklinik_pcare.kd_poli_rs=?");
            try{
                pscari.setString(1,KdPoliTujuan.getText());
                rscari=pscari.executeQuery();
                if(rscari.next()){
                    KdPoliTujuan.setText(rscari.getString("kd_poli_pcare"));
                    NmPoliTujuan.setText(rscari.getString("nm_poli_pcare"));
                }else{
                    TeksArea.append("Mapping poli tidak ditemukan...!!");
                }
            }catch(Exception ex){
                TeksArea.append("Notif : "+ex+"\n");
            }finally{
                if(rscari!=null){
                    rscari.close();
                }
                if(pscari!=null){
                    pscari.close();
                }
            }
            
            pscari=koneksi.prepareStatement(
                    "select maping_dokter_pcare.kd_dokter_pcare,maping_dokter_pcare.nm_dokter_pcare from maping_dokter_pcare where maping_dokter_pcare.kd_dokter=?");
            try{
                pscari.setString(1,KdTenagaMedis.getText());
                rscari=pscari.executeQuery();
                if(rscari.next()){
                    KdTenagaMedis.setText(rscari.getString("kd_dokter_pcare"));
                    NmTenagaMedis.setText(rscari.getString("nm_dokter_pcare"));
                }else{
                    TeksArea.append("Mapping dokter tidak ditemukan...!!");
                }
            }catch(Exception ex){
                TeksArea.append("Notif : "+ex+"\n");
            }finally{
                if(rscari!=null){
                    rscari.close();
                }
                if(pscari!=null){
                    pscari.close();
                }
            }
            
            pscari=koneksi.prepareStatement(
                    "select diagnosa_pasien.kd_penyakit,penyakit.nm_penyakit,diagnosa_pasien.prioritas "+
                    "from diagnosa_pasien inner join penyakit on diagnosa_pasien.kd_penyakit=penyakit.kd_penyakit "+
                    "where diagnosa_pasien.no_rawat=? order by diagnosa_pasien.prioritas ");
            try {
                pscari.setString(1,norwt);
                rscari=pscari.executeQuery();
                while(rscari.next()){
                    if(rscari.getInt("prioritas")==1){
                        KdDiagnosa1.setText(rscari.getString("kd_penyakit"));
                        NmDiagnosa1.setText(rscari.getString("nm_penyakit"));
                    }
                    
                    if(rscari.getInt("prioritas")==2){
                        KdDiagnosa2.setText(rscari.getString("kd_penyakit"));
                        NmDiagnosa2.setText(rscari.getString("nm_penyakit"));
                    }
                    
                    if(rscari.getInt("prioritas")==3){
                        KdDiagnosa3.setText(rscari.getString("kd_penyakit"));
                        NmDiagnosa3.setText(rscari.getString("nm_penyakit"));
                    }
                }
            } catch (Exception e) {
                TeksArea.append("Notif : "+e);
            } finally{
                if(rscari!=null){
                    rscari.close();
                }
                if(pscari!=null){
                    pscari.close();
                }
            }
            
            pscari=koneksi.prepareStatement(
                    "select databarang.nama_brng,sum(detail_pemberian_obat.jml) as jml,jenis.nama from detail_pemberian_obat "+
                    "inner join databarang on detail_pemberian_obat.kode_brng=databarang.kode_brng "+
                    "inner join jenis on jenis.kdjns=databarang.kdjns where detail_pemberian_obat.no_rawat=? "+
                    "group by databarang.nama_brng");
            try {
                pscari.setString(1,norwt);
                rscari=pscari.executeQuery();
                terapiobat="";
                bmhp="";
                while(rscari.next()){
                    if(rscari.getString("nama").toLowerCase().contains("obat")){
                        terapiobat=rscari.getString("nama_brng")+" "+rscari.getString("jml")+", "+terapiobat;
                    }else if(rscari.getString("nama").toLowerCase().contains("bmhp")||rscari.getString("nama").toLowerCase().contains("bhp")){
                        bmhp=rscari.getString("nama_brng")+" "+rscari.getString("jml")+", "+bmhp;
                    }
                }
                TerapiObat.setText(terapiobat.equals("")?"Tidak Ada":terapiobat);
                BMHP.setText(bmhp.equals("")?"Tidak Ada":bmhp);
            } catch (Exception e) {
                System.out.println("Notif : "+e);
            } finally{
                if(rscari!=null){
                    rscari.close();
                }
                if(pscari!=null){
                    pscari.close();
                }
            }
            
            if(Perawatan.getSelectedIndex()==0){
                TanggalPulang.setDate(TanggalKunjungan.getDate());
                pscari=koneksi.prepareStatement(
                        "select pemeriksaan_ralan.tensi,pemeriksaan_ralan.nadi,pemeriksaan_ralan.respirasi,pemeriksaan_ralan.tinggi,"+
                        "pemeriksaan_ralan.berat,pemeriksaan_ralan.kesadaran,pemeriksaan_ralan.keluhan,pemeriksaan_ralan.lingkar_perut,"+
                        "pemeriksaan_ralan.penilaian,pemeriksaan_ralan.alergi,pemeriksaan_ralan.suhu_tubuh,pemeriksaan_ralan.pemeriksaan,"+
                        "pemeriksaan_ralan.instruksi from pemeriksaan_ralan where pemeriksaan_ralan.no_rawat=? "+
                        "order by pemeriksaan_ralan.tgl_perawatan,pemeriksaan_ralan.jam_rawat desc limit 1");
                try{
                    pscari.setString(1,norwt);
                    rscari=pscari.executeQuery();
                    if(rscari.next()){
                        arrSplit = rscari.getString("tensi").split("/");
                        try {
                            if(!arrSplit[0].equals("")){
                                Sistole.setText(arrSplit[0]);
                            }
                        } catch (Exception e) {
                            Sistole.setText("0");
                        }
                        
                        try {
                            if(!arrSplit[1].equals("")){
                                Diastole.setText(arrSplit[1]);
                            }
                        } catch (Exception e) {
                            Diastole.setText("0");
                        }
                        Heartrate.setText(rscari.getString("nadi"));
                        Respiratory.setText(rscari.getString("respirasi"));
                        TinggiBadan.setText(rscari.getString("tinggi"));
                        BeratBadan.setText(rscari.getString("berat"));
                        LingkarPerut.setText(rscari.getString("lingkar_perut"));
                        Keluhan.setText(rscari.getString("keluhan")+(rscari.getString("pemeriksaan").equals("")?"":", "+rscari.getString("pemeriksaan")));
                        NmSadar.setText(rscari.getString("kesadaran"));
                        TSuhu.setText(rscari.getString("suhu_tubuh"));
                        TerapiNonObat.setText(rscari.getString("instruksi").equals("")?"Tidak Ada":rscari.getString("instruksi"));
                        if(rscari.getString("kesadaran").equals("Compos Mentis")){
                            KdSadar.setText("01");
                        }else if(rscari.getString("kesadaran").equals("Somnolence")){
                            KdSadar.setText("02");
                        }else if(rscari.getString("kesadaran").equals("Sopor")){
                            KdSadar.setText("03");
                        }else if(rscari.getString("kesadaran").equals("Coma")){
                            KdSadar.setText("04");
                        }
                        
                        if(rscari.getString("penilaian").toLowerCase().contains("sanam")||rscari.getString("penilaian").toLowerCase().contains("sembuh")){
                            KdPrognosa.setText("01");
                            NmPrognosa.setText("Sanam (Sembuh)");
                        }else if(rscari.getString("penilaian").toLowerCase().contains("bonam")||rscari.getString("penilaian").toLowerCase().contains("baik")){
                            KdPrognosa.setText("02");
                            NmPrognosa.setText("Bonam (Baik)");
                        }else if(rscari.getString("penilaian").toLowerCase().contains("malam")||rscari.getString("penilaian").toLowerCase().contains("buruk")||rscari.getString("penilaian").toLowerCase().contains("jelek")){
                            KdPrognosa.setText("03");
                            NmPrognosa.setText("Malam (Buruk/Jelek)");
                        }else if(rscari.getString("penilaian").toLowerCase().contains("dubia ad sanam")||rscari.getString("penilaian").toLowerCase().contains("dubia ad bolam")||rscari.getString("penilaian").toLowerCase().contains("cenderung sembuh")){
                            KdPrognosa.setText("04");
                            NmPrognosa.setText("Dubia Ad Sanam/Bolam (Tidak tentu/Ragu-ragu, Cenderung Sembuh/Baik)");
                        }else if(rscari.getString("penilaian").toLowerCase().equals("dubia ad malam")||rscari.getString("penilaian").toLowerCase().equals("tidak tentu")||rscari.getString("penilaian").toLowerCase().equals("ragu")){
                            KdPrognosa.setText("05");
                            NmPrognosa.setText("Dubia Ad Malam (Tidak tentu/Ragu-ragu, Cenderung Sembuh/Baik)");
                        }else{
                            KdPrognosa.setText("02");
                            NmPrognosa.setText("Bonam (Baik)");
                        }
                        
                        if(rscari.getString("alergi").toLowerCase().contains("seafood")){
                            KdAlergiMakanan.setText("01");
                            NmAlergiMakanan.setText("Seafood");
                        }else if(rscari.getString("alergi").toLowerCase().contains("gandum")){
                            KdAlergiMakanan.setText("02");
                            NmAlergiMakanan.setText("Gandum");
                        }else if(rscari.getString("alergi").toLowerCase().contains("susu sapi")){
                            KdAlergiMakanan.setText("03");
                            NmAlergiMakanan.setText("Susu Sapi");
                        }else if(rscari.getString("alergi").toLowerCase().contains("kacangan")){
                            KdAlergiMakanan.setText("04");
                            NmAlergiMakanan.setText("Kacang-Kacangan");
                        }else if(rscari.getString("alergi").toLowerCase().contains("makanan lain")){
                            KdAlergiMakanan.setText("05");
                            NmAlergiMakanan.setText("Makanan Lain");
                        }else{
                            KdAlergiMakanan.setText("00");
                            NmAlergiMakanan.setText("Tidak Ada");
                        }
                        
                        if(rscari.getString("alergi").toLowerCase().contains("udara panas")){
                            KdAlergiUdara.setText("01");
                            NmAlergiUdara.setText("Udara Panas");
                        }else if(rscari.getString("alergi").toLowerCase().contains("udara dingin")){
                            KdAlergiUdara.setText("02");
                            NmAlergiUdara.setText("Udara Dingin");
                        }else if(rscari.getString("alergi").toLowerCase().contains("udara kotor")){
                            KdAlergiUdara.setText("03");
                            NmAlergiUdara.setText("Udara Kotor");
                        }else{
                            KdAlergiUdara.setText("00");
                            NmAlergiUdara.setText("Tidak Ada");
                        }
                        
                        if(rscari.getString("alergi").toLowerCase().contains("antibiotik")){
                            KdAlergiObat.setText("01");
                            NmAlergiObat.setText("Antibiotik");
                        }else if(rscari.getString("alergi").toLowerCase().trim().contains("antiinflamasi")||rscari.getString("alergi").toLowerCase().trim().contains("anti inflamasi")){
                            KdAlergiObat.setText("02");
                            NmAlergiObat.setText("Antiinflamasi");
                        }else if(rscari.getString("alergi").toLowerCase().trim().contains("nonsteroid")||rscari.getString("alergi").toLowerCase().trim().contains("non steroid")){
                            KdAlergiObat.setText("03");
                            NmAlergiObat.setText("Non Steroid");
                        }else if(rscari.getString("alergi").toLowerCase().contains("aspirin")){
                            KdAlergiObat.setText("04");
                            NmAlergiObat.setText("Aspirin");
                        }else if(rscari.getString("alergi").toLowerCase().contains("kortikosteroid")){
                            KdAlergiObat.setText("05");
                            NmAlergiObat.setText("Kortikosteroid");
                        }else if(rscari.getString("alergi").toLowerCase().contains("insulin")){
                            KdAlergiObat.setText("06");
                            NmAlergiObat.setText("Insulin");
                        }else if(rscari.getString("alergi").toLowerCase().contains("obat-obatan lain")||rscari.getString("alergi").toLowerCase().contains("obat lain")){
                            KdAlergiObat.setText("07");
                            NmAlergiObat.setText("Obat-Obatan Lain");
                        }else{
                            KdAlergiObat.setText("00");
                            NmAlergiObat.setText("Tidak Ada");
                        }
                    }else{
                        Sistole.setText("0");
                        Diastole.setText("0");
                        Heartrate.setText("0");
                        Respiratory.setText("0");
                        TinggiBadan.setText("0");
                        BeratBadan.setText("0");
                        LingkarPerut.setText("0");
                        Keluhan.setText("0");
                        KdSadar.setText("");
                        NmSadar.setText("");
                        KdPrognosa.setText("02");
                        NmPrognosa.setText("Bonam (Baik)");
                        KdAlergiMakanan.setText("00");
                        NmAlergiMakanan.setText("Tidak Ada");
                        KdAlergiUdara.setText("00");
                        NmAlergiUdara.setText("Tidak Ada");
                        KdAlergiObat.setText("00");
                        NmAlergiObat.setText("Tidak Ada");
                        TSuhu.setText("0");
                        TerapiNonObat.setText("Tidak Ada");
                    }
                }catch(Exception ex){
                    TeksArea.append("Notif : "+ex+"\n");
                }finally{
                    if(rscari!=null){
                        rscari.close();
                    }
                    if(pscari!=null){
                        pscari.close();
                    }
                }
            }else if(Perawatan.getSelectedIndex()==1){
                pscari=koneksi.prepareStatement("select if(kamar_inap.tgl_keluar='0000-00-00',CURRENT_DATE(),kamar_inap.tgl_keluar) as tgl_keluar,kamar_inap.stts_pulang from kamar_inap where kamar_inap.no_rawat=? order by kamar_inap.tgl_masuk,kamar_inap.jam_masuk desc limit 1 ");
                try{
                    pscari.setString(1,norwt);
                    rscari=pscari.executeQuery();
                    if(rscari.next()){
                        TanggalPulang.setDate(rscari.getDate("tgl_keluar"));
                        if(rscari.getString("stts_pulang").equals("Sehat")||rscari.getString("stts_pulang").equals("Sembuh")||rscari.getString("stts_pulang").equals("Membaik")||rscari.getString("stts_pulang").equals("Atas Perscarietujuan Dokter")){
                            KdStatusPulang.setText("0");
                            NmStatusPulang.setText("Sembuh");
                        }else if(rscari.getString("stts_pulang").equals("Rujuk")){
                            KdStatusPulang.setText("4");
                            NmStatusPulang.setText("Rujuk Vertikal");
                        }else if(rscari.getString("stts_pulang").equals("Meninggal")||rscari.getString("stts_pulang").equals("+")){
                            KdStatusPulang.setText("1");
                            NmStatusPulang.setText("Meninggal");
                        }else if(rscari.getString("stts_pulang").equals("Pulang Paksa")||rscari.getString("stts_pulang").equals("Atas Permintaan Sendiri")||rscari.getString("stts_pulang").equals("APS")){
                            KdStatusPulang.setText("2");
                            NmStatusPulang.setText("Pulang Paksa");
                        }else{
                            KdStatusPulang.setText("9");
                            NmStatusPulang.setText("Lain-lain");
                        }
                    }
                }catch(Exception ex){
                    TeksArea.append("Notif : "+ex+"\n");
                }finally{
                    if(rscari!=null){
                        rscari.close();
                    }
                    if(pscari!=null){
                        pscari.close();
                    }
                }
                
                pscari=koneksi.prepareStatement(
                        "select pemeriksaan_ranap.tensi, pemeriksaan_ranap.nadi, pemeriksaan_ranap.respirasi, pemeriksaan_ranap.tinggi, pemeriksaan_ranap.berat, pemeriksaan_ranap.keluhan,pemeriksaan_ranap.kesadaran,pemeriksaan_ranap.penilaian,"+
                        "pemeriksaan_ranap.alergi,pemeriksaan_ranap.suhu_tubuh,pemeriksaan_ranap.pemeriksaan,pemeriksaan_ranap.instruksi from pemeriksaan_ranap where pemeriksaan_ranap.no_rawat=? order by pemeriksaan_ranap.tgl_perawatan,pemeriksaan_ranap.jam_rawat desc limit 1");
                try{
                    pscari.setString(1,norwt);
                    rscari=pscari.executeQuery();
                    if(rscari.next()){
                        arrSplit = rscari.getString("tensi").split("/");
                        try {
                            if(!arrSplit[0].equals("")){
                                Sistole.setText(arrSplit[0]);
                            }
                        } catch (Exception e) {
                            Sistole.setText("0");
                        }
                        
                        try {
                            if(!arrSplit[1].equals("")){
                                Diastole.setText(arrSplit[1]);
                            }
                        } catch (Exception e) {
                            Diastole.setText("0");
                        }
                        Heartrate.setText(rscari.getString("nadi"));
                        Respiratory.setText(rscari.getString("respirasi"));
                        TinggiBadan.setText(rscari.getString("tinggi"));
                        BeratBadan.setText(rscari.getString("berat"));
                        LingkarPerut.setText("40");
                        Keluhan.setText(rscari.getString("keluhan")+(rscari.getString("pemeriksaan").equals("")?"":", "+rscari.getString("pemeriksaan")));
                        NmSadar.setText(rscari.getString("kesadaran"));
                        TSuhu.setText(rscari.getString("suhu_tubuh"));
                        TerapiNonObat.setText(rscari.getString("instruksi").equals("")?"Tidak Ada":rscari.getString("instruksi"));
                        if(rscari.getString("kesadaran").equals("Compos Mentis")){
                            KdSadar.setText("01");
                        }else if(rscari.getString("kesadaran").equals("Somnolence")){
                            KdSadar.setText("02");
                        }else if(rscari.getString("kesadaran").equals("Sopor")){
                            KdSadar.setText("03");
                        }else if(rscari.getString("kesadaran").equals("Coma")){
                            KdSadar.setText("04");
                        }
                        
                        if(rscari.getString("penilaian").toLowerCase().contains("sanam")||rscari.getString("penilaian").toLowerCase().contains("sembuh")){
                            KdPrognosa.setText("01");
                            NmPrognosa.setText("Sanam (Sembuh)");
                        }else if(rscari.getString("penilaian").toLowerCase().contains("bonam")||rscari.getString("penilaian").toLowerCase().contains("baik")){
                            KdPrognosa.setText("02");
                            NmPrognosa.setText("Bonam (Baik)");
                        }else if(rscari.getString("penilaian").toLowerCase().contains("malam")||rscari.getString("penilaian").toLowerCase().contains("buruk")||rscari.getString("penilaian").toLowerCase().contains("jelek")){
                            KdPrognosa.setText("03");
                            NmPrognosa.setText("Malam (Buruk/Jelek)");
                        }else if(rscari.getString("penilaian").toLowerCase().contains("dubia ad sanam")||rscari.getString("penilaian").toLowerCase().contains("dubia ad bolam")||rscari.getString("penilaian").toLowerCase().contains("cenderung sembuh")){
                            KdPrognosa.setText("04");
                            NmPrognosa.setText("Dubia Ad Sanam/Bolam (Tidak tentu/Ragu-ragu, Cenderung Sembuh/Baik)");
                        }else if(rscari.getString("penilaian").toLowerCase().equals("dubia ad malam")||rscari.getString("penilaian").toLowerCase().equals("tidak tentu")||rscari.getString("penilaian").toLowerCase().equals("ragu")){
                            KdPrognosa.setText("05");
                            NmPrognosa.setText("Dubia Ad Malam (Tidak tentu/Ragu-ragu, Cenderung Sembuh/Baik)");
                        }else{
                            KdPrognosa.setText("02");
                            NmPrognosa.setText("Bonam (Baik)");
                        }
                        
                        if(rscari.getString("alergi").toLowerCase().contains("seafood")){
                            KdAlergiMakanan.setText("01");
                            NmAlergiMakanan.setText("Seafood");
                        }else if(rscari.getString("alergi").toLowerCase().contains("gandum")){
                            KdAlergiMakanan.setText("02");
                            NmAlergiMakanan.setText("Gandum");
                        }else if(rscari.getString("alergi").toLowerCase().contains("susu sapi")){
                            KdAlergiMakanan.setText("03");
                            NmAlergiMakanan.setText("Susu Sapi");
                        }else if(rscari.getString("alergi").toLowerCase().contains("kacangan")){
                            KdAlergiMakanan.setText("04");
                            NmAlergiMakanan.setText("Kacang-Kacangan");
                        }else if(rscari.getString("alergi").toLowerCase().contains("makanan lain")){
                            KdAlergiMakanan.setText("05");
                            NmAlergiMakanan.setText("Makanan Lain");
                        }else{
                            KdAlergiMakanan.setText("00");
                            NmAlergiMakanan.setText("Tidak Ada");
                        }
                        
                        if(rscari.getString("alergi").toLowerCase().contains("udara panas")){
                            KdAlergiUdara.setText("01");
                            NmAlergiUdara.setText("Udara Panas");
                        }else if(rscari.getString("alergi").toLowerCase().contains("udara dingin")){
                            KdAlergiUdara.setText("02");
                            NmAlergiUdara.setText("Udara Dingin");
                        }else if(rscari.getString("alergi").toLowerCase().contains("udara kotor")){
                            KdAlergiUdara.setText("03");
                            NmAlergiUdara.setText("Udara Kotor");
                        }else{
                            KdAlergiUdara.setText("00");
                            NmAlergiUdara.setText("Tidak Ada");
                        }
                        
                        if(rscari.getString("alergi").toLowerCase().contains("antibiotik")){
                            KdAlergiObat.setText("01");
                            NmAlergiObat.setText("Antibiotik");
                        }else if(rscari.getString("alergi").toLowerCase().trim().contains("antiinflamasi")||rscari.getString("alergi").toLowerCase().trim().contains("anti inflamasi")){
                            KdAlergiObat.setText("02");
                            NmAlergiObat.setText("Antiinflamasi");
                        }else if(rscari.getString("alergi").toLowerCase().trim().contains("nonsteroid")||rscari.getString("alergi").toLowerCase().trim().contains("non steroid")){
                            KdAlergiObat.setText("03");
                            NmAlergiObat.setText("Non Steroid");
                        }else if(rscari.getString("alergi").toLowerCase().contains("aspirin")){
                            KdAlergiObat.setText("04");
                            NmAlergiObat.setText("Aspirin");
                        }else if(rscari.getString("alergi").toLowerCase().contains("kortikosteroid")){
                            KdAlergiObat.setText("05");
                            NmAlergiObat.setText("Kortikosteroid");
                        }else if(rscari.getString("alergi").toLowerCase().contains("insulin")){
                            KdAlergiObat.setText("06");
                            NmAlergiObat.setText("Insulin");
                        }else if(rscari.getString("alergi").toLowerCase().contains("obat-obatan lain")||rscari.getString("alergi").toLowerCase().contains("obat lain")){
                            KdAlergiObat.setText("07");
                            NmAlergiObat.setText("Obat-Obatan Lain");
                        }else{
                            KdAlergiObat.setText("00");
                            NmAlergiObat.setText("Tidak Ada");
                        }
                    }else{
                        Sistole.setText("0");
                        Diastole.setText("0");
                        Heartrate.setText("0");
                        Respiratory.setText("0");
                        TinggiBadan.setText("0");
                        BeratBadan.setText("0");
                        LingkarPerut.setText("0");
                        Keluhan.setText("0");
                        KdSadar.setText("");
                        NmSadar.setText("");
                        KdPrognosa.setText("02");
                        NmPrognosa.setText("Bonam (Baik)");
                        KdAlergiMakanan.setText("00");
                        NmAlergiMakanan.setText("Tidak Ada");
                        KdAlergiUdara.setText("00");
                        NmAlergiUdara.setText("Tidak Ada");
                        KdAlergiObat.setText("00");
                        NmAlergiObat.setText("Tidak Ada");
                        TSuhu.setText("0");
                        TerapiNonObat.setText("Tidak Ada");
                    }
                }catch(Exception ex){
                    TeksArea.append("Notif : "+ex+"\n");
                }finally{
                    if(rscari!=null){
                        rscari.close();
                    }
                    if(pscari!=null){
                        pscari.close();
                    }
                }
            }   
        }catch(Exception e){
            TeksArea.append("Notifikasi : "+e);
        }          
    }
    
    private void emptTeks(){
        TNoRw.setText("");
        TPasien.setText("");
        TanggalDaftar.setDate(new Date());
        NoKartu.setText("");
        Keluhan.setText("");
        KdPoliTujuan.setText("");
        NmPoliTujuan.setText("");
        TNoRM.setText("");
        TinggiBadan.setText("0");
        BeratBadan.setText("0");
        Sistole.setText("0");
        Diastole.setText("0");
        Respiratory.setText("0");
        Heartrate.setText("0");
        LingkarPerut.setText("0");
        ChkRujukLanjut.setSelected(false);
        KdSadar.setText("");
        NmSadar.setText("");
        TerapiObat.setText("");
        KdStatusPulang.setText("");
        NmStatusPulang.setText("");
        KdTenagaMedis.setText("");
        NmTenagaMedis.setText("");
        KdDiagnosa1.setText("");
        KdDiagnosa2.setText("");
        KdDiagnosa3.setText("");
        NmDiagnosa1.setText("");
        NmDiagnosa2.setText("");
        NmDiagnosa3.setText("");
        NmPoliTujuan.setText("");
        TanggalDaftar.requestFocus();
        TerapiNonObat.setText("");
        BMHP.setText("");
        KdAlergiMakanan.setText("");
        NmAlergiMakanan.setText("");
        KdAlergiUdara.setText("");
        NmAlergiUdara.setText("");
        KdAlergiObat.setText("");
        NmAlergiObat.setText("");
        KdPrognosa.setText("");
        NmPrognosa.setText("");
        TSuhu.setText("0");
    }
}
