jkn_rust 0.1.0

Client Rust untuk bridging API BPJS/JKN
Documentation
use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct PcareListResponse<T> {
    pub count: u32,
    pub list: Vec<T>,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct PcareAlergiItem {
    #[serde(rename = "kdAlergi")]
    pub kd_alergi: String,
    #[serde(rename = "nmAlergi")]
    pub nm_alergi: String,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct PcareDiagnosaItem {
    #[serde(rename = "kdDiag")]
    pub kd_diag: String,
    #[serde(rename = "nmDiag")]
    pub nm_diag: String,
    #[serde(rename = "nonSpesialis")]
    pub non_spesialis: bool,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct PcareDokterItem {
    #[serde(rename = "kdDokter")]
    pub kd_dokter: String,
    #[serde(rename = "nmDokter")]
    pub nm_dokter: String,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct PcareKesadaranItem {
    #[serde(rename = "kdSadar")]
    pub kd_sadar: String,
    #[serde(rename = "nmSadar")]
    pub nm_sadar: String,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct PcarePoliItem {
    #[serde(rename = "kdPoli")]
    pub kd_poli: String,
    #[serde(rename = "nmPoli")]
    pub nm_poli: String,
    #[serde(rename = "poliSakit")]
    pub poli_sakit: bool,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct PcarePrognosaItem {
    #[serde(rename = "kdPrognosa")]
    pub kd_prognosa: String,
    #[serde(rename = "nmPrognosa")]
    pub nm_prognosa: String,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct PcareStatusPulangItem {
    #[serde(rename = "kdStatusPulang")]
    pub kd_status_pulang: String,
    #[serde(rename = "nmStatusPulang")]
    pub nm_status_pulang: String,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct PcareProviderItem {
    #[serde(rename = "kdProvider")]
    pub kd_provider: String,
    #[serde(rename = "nmProvider")]
    pub nm_provider: String,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct PcarePesertaProvider {
    #[serde(rename = "kdProvider")]
    pub kd_provider: Option<String>,
    #[serde(rename = "nmProvider")]
    pub nm_provider: Option<String>,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct PcarePesertaJenis {
    pub nama: String,
    pub kode: String,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct PcarePesertaAsuransi {
    #[serde(rename = "kdAsuransi")]
    pub kd_asuransi: Option<String>,
    #[serde(rename = "nmAsuransi")]
    pub nm_asuransi: Option<String>,
    #[serde(rename = "noAsuransi")]
    pub no_asuransi: Option<String>,
    pub cob: bool,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct PcarePesertaData {
    #[serde(rename = "noKartu")]
    pub no_kartu: String,
    pub nama: String,
    #[serde(rename = "hubunganKeluarga")]
    pub hubungan_keluarga: String,
    pub sex: String,
    #[serde(rename = "tglLahir")]
    pub tgl_lahir: String,
    #[serde(rename = "tglMulaiAktif")]
    pub tgl_mulai_aktif: String,
    #[serde(rename = "tglAkhirBerlaku")]
    pub tgl_akhir_berlaku: String,
    #[serde(rename = "kdProviderPst")]
    pub kd_provider_pst: PcarePesertaProvider,
    #[serde(rename = "kdProviderGigi")]
    pub kd_provider_gigi: PcarePesertaProvider,
    #[serde(rename = "jnsKelas")]
    pub jns_kelas: PcarePesertaJenis,
    #[serde(rename = "jnsPeserta")]
    pub jns_peserta: PcarePesertaJenis,
    #[serde(rename = "golDarah")]
    pub gol_darah: String,
    #[serde(rename = "noHP")]
    pub no_hp: String,
    #[serde(rename = "noKTP")]
    pub no_ktp: String,
    #[serde(rename = "pstProl")]
    pub pst_prol: String,
    #[serde(rename = "pstPrb")]
    pub pst_prb: String,
    pub aktif: bool,
    #[serde(rename = "ketAktif")]
    pub ket_aktif: String,
    pub asuransi: PcarePesertaAsuransi,
    pub tunggakan: u32,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct PcareSpesialisItem {
    #[serde(rename = "kdSpesialis")]
    pub kd_spesialis: String,
    #[serde(rename = "nmSpesialis")]
    pub nm_spesialis: String,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct PcareSubSpesialisItem {
    #[serde(rename = "kdSubSpesialis")]
    pub kd_sub_spesialis: String,
    #[serde(rename = "nmSubSpesialis")]
    pub nm_sub_spesialis: String,
    #[serde(rename = "kdPoliRujuk")]
    pub kd_poli_rujuk: String,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct PcareSaranaItem {
    #[serde(rename = "kdSarana")]
    pub kd_sarana: String,
    #[serde(rename = "nmSarana")]
    pub nm_sarana: String,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct PcareKhususItem {
    #[serde(rename = "kdKhusus")]
    pub kd_khusus: String,
    #[serde(rename = "nmKhusus")]
    pub nm_khusus: String,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct PcareFaskesRujukanSubSpesialisItem {
    pub kdppk: String,
    pub nmppk: String,
    #[serde(rename = "alamatPpk")]
    pub alamat_ppk: String,
    #[serde(rename = "telpPpk")]
    pub telp_ppk: String,
    pub kelas: String,
    pub nmkc: String,
    pub distance: f64,
    pub jadwal: String,
    #[serde(rename = "jmlRujuk")]
    pub jml_rujuk: u32,
    pub kapasitas: u32,
    pub persentase: f64,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct PcareRujukanPpkDati {
    #[serde(rename = "kdProp")]
    pub kd_prop: Option<String>,
    #[serde(rename = "kdDati")]
    pub kd_dati: String,
    #[serde(rename = "nmDati")]
    pub nm_dati: String,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct PcareRujukanPpkKr {
    #[serde(rename = "kdKR")]
    pub kd_kr: String,
    #[serde(rename = "nmKR")]
    pub nm_kr: String,
    pub alamat: Option<String>,
    pub telp: Option<String>,
    pub fax: Option<String>,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct PcareRujukanPpkKc {
    #[serde(rename = "kdKC")]
    pub kd_kc: String,
    #[serde(rename = "nmKC")]
    pub nm_kc: String,
    pub alamat: Option<String>,
    pub telp: Option<String>,
    pub fax: Option<String>,
    pub dati: PcareRujukanPpkDati,
    #[serde(rename = "kdKR")]
    pub kd_kr: PcareRujukanPpkKr,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct PcareRujukanPpk {
    #[serde(rename = "kdPPK")]
    pub kd_ppk: String,
    #[serde(rename = "nmPPK")]
    pub nm_ppk: String,
    pub alamat: Option<String>,
    pub kc: PcareRujukanPpkKc,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct PcareRujukanPoli {
    #[serde(rename = "kdPoli")]
    pub kd_poli: String,
    #[serde(rename = "nmPoli")]
    pub nm_poli: String,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct PcareRujukanDiagnosa {
    #[serde(rename = "kdDiag")]
    pub kd_diag: String,
    #[serde(rename = "nmDiag")]
    pub nm_diag: String,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct PcareRujukanDokter {
    #[serde(rename = "kdDokter")]
    pub kd_dokter: String,
    #[serde(rename = "nmDokter")]
    pub nm_dokter: String,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct PcareRujukanTacc {
    #[serde(rename = "nmTacc")]
    pub nm_tacc: Option<String>,
    #[serde(rename = "alasanTacc")]
    pub alasan_tacc: Option<String>,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct PcareRujukanResult {
    #[serde(rename = "noRujukan")]
    pub no_rujukan: String,
    pub ppk: PcareRujukanPpk,
    #[serde(rename = "tglKunjungan")]
    pub tgl_kunjungan: String,
    pub poli: PcareRujukanPoli,
    #[serde(rename = "nokaPst")]
    pub noka_pst: String,
    #[serde(rename = "nmPst")]
    pub nm_pst: String,
    #[serde(rename = "tglLahir")]
    pub tgl_lahir: String,
    pub pisa: String,
    #[serde(rename = "ketPisa")]
    pub ket_pisa: String,
    pub sex: String,
    pub diag1: PcareRujukanDiagnosa,
    pub diag2: Option<String>,
    pub diag3: Option<String>,
    pub catatan: String,
    pub dokter: PcareRujukanDokter,
    pub tacc: PcareRujukanTacc,
    #[serde(rename = "infoDenda")]
    pub info_denda: String,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct PcareRiwayatProviderPelayanan {
    #[serde(rename = "kdProvider")]
    pub kd_provider: String,
    #[serde(rename = "nmProvider")]
    pub nm_provider: String,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct PcareRiwayatPeserta {
    #[serde(rename = "noKartu")]
    pub no_kartu: String,
    pub nama: Option<String>,
    #[serde(rename = "hubunganKeluarga")]
    pub hubungan_keluarga: String,
    pub sex: Option<String>,
    #[serde(rename = "tglLahir")]
    pub tgl_lahir: Option<String>,
    #[serde(rename = "tglMulaiAktif")]
    pub tgl_mulai_aktif: Option<String>,
    #[serde(rename = "tglAkhirBerlaku")]
    pub tgl_akhir_berlaku: Option<String>,
    #[serde(rename = "kdPpkPst")]
    pub kd_ppk_pst: Option<String>,
    #[serde(rename = "kdPpkGigi")]
    pub kd_ppk_gigi: Option<String>,
    #[serde(rename = "jnsKelas")]
    pub jns_kelas: Option<String>,
    #[serde(rename = "jnsPeserta")]
    pub jns_peserta: Option<String>,
    #[serde(rename = "golDarah")]
    pub gol_darah: Option<String>,
    #[serde(rename = "noHP")]
    pub no_hp: Option<String>,
    #[serde(rename = "noKTP")]
    pub no_ktp: Option<String>,
    pub asuransi: Option<String>,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct PcareRiwayatNamedValue {
    #[serde(flatten)]
    pub extra: serde_json::Map<String, serde_json::Value>,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct PcareRiwayatKunjunganItem {
    #[serde(rename = "noKunjungan")]
    pub no_kunjungan: String,
    #[serde(rename = "tglKunjungan")]
    pub tgl_kunjungan: String,
    #[serde(rename = "providerPelayanan")]
    pub provider_pelayanan: PcareRiwayatProviderPelayanan,
    pub peserta: PcareRiwayatPeserta,
    pub poli: PcareRiwayatNamedValue,
    #[serde(rename = "progProlanis")]
    pub prog_prolanis: PcareRiwayatNamedValue,
    pub keluhan: String,
    pub diagnosa1: PcareRiwayatNamedValue,
    pub diagnosa2: PcareRiwayatNamedValue,
    pub diagnosa3: PcareRiwayatNamedValue,
    pub kesadaran: PcareRiwayatNamedValue,
    pub sistole: i64,
    pub diastole: i64,
    #[serde(rename = "beratBadan")]
    pub berat_badan: i64,
    #[serde(rename = "tinggiBadan")]
    pub tinggi_badan: i64,
    #[serde(rename = "respRate")]
    pub resp_rate: i64,
    #[serde(rename = "heartRate")]
    pub heart_rate: i64,
    pub catatan: String,
    #[serde(rename = "rujukBalik")]
    pub rujuk_balik: i64,
    #[serde(rename = "providerAsalRujuk")]
    pub provider_asal_rujuk: PcareRiwayatNamedValue,
    #[serde(rename = "providerRujukLanjut")]
    pub provider_rujuk_lanjut: PcareRiwayatNamedValue,
    #[serde(rename = "pemFisikLain")]
    pub pem_fisik_lain: String,
    pub dokter: PcareRiwayatNamedValue,
    #[serde(rename = "statusPulang")]
    pub status_pulang: PcareRiwayatNamedValue,
    pub tkp: PcareRiwayatNamedValue,
    #[serde(rename = "poliRujukInternal")]
    pub poli_rujuk_internal: PcareRiwayatNamedValue,
    #[serde(rename = "poliRujukLanjut")]
    pub poli_rujuk_lanjut: PcareRiwayatNamedValue,
    #[serde(rename = "tglPulang")]
    pub tgl_pulang: String,
}