Responses & errors
One shape for every stage. Read the status, then show the fixes.
Status: three values, everywhere
lengkapComplete. Nothing to do.belum_lengkapSomething is missing. Fill it in.perbaikiPresent but inconsistent with the evidence. Correct it.summary.claim_ready is true only when every section is lengkap.
Anatomy of a response
summaryOverall status and countsfindings[]One result per section: status, recommendation, copy-ready example, explanationnotices[]Extra advice, e.g. documents to add for more accurate codingclaim_impact · diagnosis_suggestions · medication_review · document_sync · coding_warningsStage-specific blocks, null when not applicableskipped · skip_reasontrue for non-BPJS or unsupported cases. No AI call, no charge.Stage-specific blocks
| Block | Stage | Meaning |
|---|---|---|
claim_impact | ranap_cppt · ranap_resume | Effect on the claim: under-coding, upcoding risk, or optimal |
diagnosis_suggestions | ranap_cppt | Diagnosis suggestions supported by the evidence |
medication_review | ranap_cppt | Medication review against diagnoses and results |
document_sync | ranap_cppt | Documents that must be complete before discharge |
coding_warnings[] | rajal_soap | Deterministic claim-rule warnings (referral validity, repeated procedures) |
Example response · ranap_cppt
response.json
{
"check_id": "chk_e788073e94e38836",
"api_version": "v1",
"stage": "ranap_cppt",
"pathway": "igd_ranap",
"encounter_ref": {
"visit_id": "DEMO-EWS-DATA-BERMASALAH-CAP-",
"patient_ref": null
},
"skipped": false,
"skip_reason": null,
"skip_detail": null,
"summary": {
"status": "perbaiki",
"claim_ready": false,
"counts": {
"lengkap": 6,
"belum_lengkap": 0,
"perbaiki": 3
}
},
"notices": [],
"findings": [],
"claim_impact": {
"status": "perbaiki",
"rekomendasi": "Sesuaikan kode pneumonia ke J15.0 dan kode diabetes melitus ke E11.65 pada form klaim.",
"contoh_isian": "Diagnosa utama J15.0 Pneumonia lobaris akibat Klebsiella pneumoniae, diagnosa sekunder E11.65 Diabetes melitus tipe 2 dengan hiperglikemia.",
"penjelasan": "Sesuai kaidah koding ICD-10, jika agen penyebab infeksi telah teridentifikasi melalui kultur sputum (Klebsiella pneumoniae pada 2026-07-08), maka harus dikode spesifik ke J15.0, bukan J18.9. Diabetes melitus dengan hiperglikemia persisten yang membutuhkan insulin koreksi dikode ke E11.65.",
"temuan": [
{
"kondisi": "Pneumonia akibat Klebsiella pneumoniae",
"icd10_disarankan": "J15.0",
"dasar_bukti": [
"Hasil kultur sputum tanggal 2026-07-07 menunjukkan pertumbuhan Klebsiella pneumoniae positif, didukung terapi Ceftriaxone IV sejak 2026-07-06."
],
"dampak_severity": "Meningkatkan akurasi kode spesifik etiologi bakteri gram negatif"
},
{
"kondisi": "Diabetes Melitus tipe 2 dengan komplikasi hiperglikemia",
"icd10_disarankan": "E11.1 atau E11.65",
"dasar_bukti": [
"CPPT tanggal 2026-07-06 s.d. 2026-07-08 mencatat GDS tidak terkontrol (280 mg/dL dan 230 mg/dL) yang memerlukan terapi aktif Insulin Novorapid koreksi SC."
],
"dampak_severity": "Meningkatkan severity level dari minor menjadi moderate/major"
}
]
},
"diagnosis_suggestions": {
"status": "perbaiki",
"rekomendasi": "Ganti diagnosa utama menjadi J15.0 dan diagnosa sekunder DM menjadi E11.65 sebelum resume medis dibuat.",
"contoh_isian": "Diagnosa Utama: J15.0 Pneumonia Klebsiella. Diagnosa Sekunder: E11.65 DM Tipe 2 dengan Hiperglikemia, I10 Hipertensi Esensial.",
"penjelasan": "Kaidah ICD-10 menginstruksikan penggunaan kode spesifik bila hasil pemeriksaan penunjang (kultur sputum bakteri gram negatif) telah tegak. Kondisi hiperglikemia yang mendapat terapi insulin koreksi aktif juga wajib dikode spesifik.",
"kandidat": [
{
"icd10": "J15.0",
"deskripsi": "Pneumonia due to Klebsiella pneumoniae",
"status": "disarankan_ganti",
"tingkat_keyakinan": "tinggi",
"dasar_bukti": [
"Hasil kultur sputum tanggal 2026-07-07: Klebsiella pneumoniae (+)",
"CPPT DPJP tanggal 2026-07-08: hasil kultur sputum keluar Klebsiella pneumoniae"
],
"dampak_klaim": "Mengganti kode pneumonia tidak spesifik J18.9 menjadi spesifik bakteri gram negatif J15.0 yang memiliki bobot klinis lebih tepat."
},
{
"icd10": "E11.65",
"deskripsi": "Type 2 diabetes mellitus with hyperglycemia",
"status": "disarankan_ganti",
"tingkat_keyakinan": "tinggi",
"dasar_bukti": [
"Hasil lab GDS tanggal 2026-07-06 sebesar 280 mg/dL",
"CPPT DPJP tanggal 2026-07-06 s.d. 2026-07-08: DM belum terkontrol, lanjut insulin koreksi"
],
"dampak_klaim": "Mengubah komorbiditas dari tanpa komplikasi E11.9 menjadi dengan hiperglikemia E11.65 yang meningkatkan severity level klaim INA-CBG."
}
]
},
"medication_review": {
"ringkasan": {
"status": "perbaiki",
"jumlah_obat_diperiksa": 3,
"jumlah_bermasalah": 1
},
"detail": [
{
"nama_obat": "Insulin Novorapid",
"status": "perbaiki",
"rekomendasi": "Sesuaikan diagnosa sekunder DM pada klaim agar mencerminkan kondisi hiperglikemia.",
"contoh_isian": "Diagnosa sekunder: E11.65 Diabetes melitus tipe 2 dengan hiperglikemia.",
"penjelasan": "Pemberian insulin koreksi Novorapid SC untuk mengatasi GDS 280 mg/dL tidak selaras dengan diagnosa klaim saat ini yaitu E11.9 (DM tanpa komplikasi). Harus disesuaikan ke E11.65."
},
{
"nama_obat": "Ceftriaxone inj 1g",
"status": "lengkap",
"rekomendasi": "",
"contoh_isian": "",
"penjelasan": ""
},
{
"nama_obat": "Amlodipin 10mg",
"status": "lengkap",
"rekomendasi": "",
"contoh_isian": "",
"penjelasan": ""
}
]
},
"document_sync": {
"wajib": [
{
"key": "asesmenAwalIgd",
"label": null,
"status": "lengkap",
"rekomendasi": "",
"contoh_isian": "",
"penjelasan": ""
},
{
"key": "pengantarRanap",
"label": null,
"status": "lengkap",
"rekomendasi": "",
"contoh_isian": "",
"penjelasan": ""
},
{
"key": "asesmenAwalRanap",
"label": null,
"status": "lengkap",
"rekomendasi": "",
"contoh_isian": "",
"penjelasan": ""
},
{
"key": "lab",
"label": null,
"status": "lengkap",
"rekomendasi": "",
"contoh_isian": "",
"penjelasan": ""
},
{
"key": "radiologi",
"label": null,
"status": "lengkap",
"rekomendasi": "",
"contoh_isian": "",
"penjelasan": ""
},
{
"key": "cpoObat",
"label": null,
"status": "lengkap",
"rekomendasi": "",
"contoh_isian": "",
"penjelasan": ""
}
],
"kondisional": [
{
"key": "curb65",
"label": null,
"status": "belum_lengkap",
"rekomendasi": "Unggah berkas skor CURB-65 untuk melengkapi administrasi klinis pneumonia.",
"contoh_isian": "Skor CURB-65: 1 (usia di bawah 65 tahun, RR 26 kali per menit, kesadaran compos mentis, tidak ada uremia/hipotensi).",
"penjelasan": "Sesuai PPK Pneumonia Komunitas, penilaian derajat keparahan menggunakan skor CURB-65 atau PSI wajib dilampirkan sebagai pendukung indikasi rawat inap pasien pneumonia.",
"diperlukan": true
}
]
},
"coding_warnings": [],
"meta": {
"latency_ms": null,
"engine": "rules+llm",
"model": "google/gemini-3.5-flash",
"profile": "simple",
"origin_normalized": "IGD"
}
}Skipped (non-BPJS)
response.json
{
"check_id": "chk_466365dc77710640",
"api_version": "v1",
"stage": "ranap_cppt",
"pathway": "igd_ranap",
"encounter_ref": {
"visit_id": "DEMO-EWS-NON-BPJS-EXPECT-SKIP",
"patient_ref": null
},
"skipped": true,
"skip_reason": "non_bpjs",
"skip_detail": "Pasien non-BPJS (penjamin: \"UMUM\") — verifikasi AI dilewati.",
"summary": {
"status": null,
"claim_ready": null,
"counts": {
"lengkap": 0,
"belum_lengkap": 0,
"perbaiki": 0
}
},
"notices": [],
"findings": [],
"claim_impact": null,
"diagnosis_suggestions": null,
"medication_review": null,
"document_sync": null,
"coding_warnings": [],
"meta": {
"latency_ms": null,
"engine": "rules+llm",
"model": null,
"profile": "simple",
"origin_normalized": "IGD"
}
}Errors
| HTTP | When | What to do |
|---|---|---|
| 400 | Payload does not match the schema. details lists the fields. | Fix the mapping |
| 401 | API key missing, wrong or revoked | Check the key / contact HealthGuard |
| 413 | Payload larger than 5 MB | Send lab/radiology summaries only |
| 422 | Valid JSON but unusable (e.g. Bundle without Encounter) | Fix the data |
| 429 | Too many requests for your facility | Wait for Retry-After |
| 502 | AI provider failed after retries | Retry with the same Idempotency-Key |
400
{
"error": "invalid_payload",
"message": "Request does not match the schema",
"details": [
"/sections/0/key: 'codingDiagnosis' is not one of […]"
],
"request_id": "req_01J…"
}