yudistira / satusehat-api
Non Official SATUSEHAT API with FHIR Object in Easy Way
Fund package maintenance!
Requires
- php: ^7.4|^8.0|^8.1|^8.2|^8.3
- guzzlehttp/guzzle: ^7.8
- illuminate/config: ^8.0|^9.0|^10.0|^11.0|^12.0
- illuminate/database: ^8.0|^9.0|^10.0|^11.0|^12.0
- illuminate/support: ^8.0|^9.0|^10.0|^11.0|^12.0
- jeroenzwart/laravel-csv-seeder: ^1.6
- phpseclib/phpseclib: ^3.0
- vlucas/phpdotenv: ^5.5
Requires (Dev)
- phpunit/phpunit: ^9.0
Suggests
- laravel/pint: Minimalist Opionated Code Formatting Extension for PHP 8.0+
- pestphp/pest: Pest PHP Testing Framework for PHP 8.0+
This package is auto-updated.
Last update: 2026-05-28 05:26:50 UTC
README
Library Laravel untuk integrasi SATUSEHAT Kemenkes RI. Generate FHIR-ready JSON sesuai profil SATUSEHAT Documentation.
Mengapa Package Ini?
- Open-source (MIT license), gratis dipakai termasuk untuk komersial
- Mendukung 19 FHIR resource (Patient, Encounter, Bundle, dst)
- OAuth2 token caching otomatis via Laravel Cache
- Multi-tenant via
Tenanttrait - KYC Centang Biru
- Sandbox mode dengan ID pasien dan nakes development
- Tested di Laravel 8 sampai 12
Quick Start
1. Install via Composer
composer require yudistira/satusehat-api
2. Publish Config dan Migration
php artisan vendor:publish --provider="Satusehat\Integration\SatusehatIntegrationServiceProvider"
php artisan migrate
3. Set Environment Variables
Daftarkan aplikasi Anda di portal SATUSEHAT menu Pengembang > Aplikasi, lalu tambahkan kredensial berikut ke file .env:
| Variable | Deskripsi |
|---|---|
SATUSEHAT_ENV |
DEV untuk sandbox, PROD untuk production |
SATUSEHAT_CLIENT_ID |
Client ID dari portal SATUSEHAT |
SATUSEHAT_CLIENT_SECRET |
Client Secret dari portal SATUSEHAT |
SATUSEHAT_ORGANIZATION_ID |
Organization ID fasyankes Anda |
4. Contoh: Buat Resource Patient
use Satusehat\Integration\FHIR\Patient; $patient = new Patient(); $patient->addIdentifier('nik', '3174012345678901'); $patient->setName('Budi Setiawan'); $patient->setGender('male'); $patient->setBirthDate('1990-01-15'); $json = $patient->json();
5. Contoh: Kirim Bundle Kunjungan (Encounter + Diagnosis)
use Satusehat\Integration\FHIR\Bundle; use Satusehat\Integration\FHIR\Encounter; use Satusehat\Integration\FHIR\Condition; $encounter = new Encounter(); // ... isi data encounter $diagnosis = new Condition(); // ... isi data diagnosis $bundle = new Bundle(); $bundle->addEncounter($encounter); $bundle->addCondition($diagnosis); $response = $bundle->post();
Dokumentasi lengkap per resource ada di folder docs/.
FHIR Resources Tersedia (19)
Patient, Practitioner, Encounter, Condition, Observation, Procedure, Medication, MedicationRequest, MedicationDispense, AllergyIntolerance, ClinicalImpression, Composition, DiagnosticReport, ServiceRequest, Specimen, CarePlan, Location, Organization, Bundle
Persyaratan
- PHP 7.4 atau 8.0+
- Laravel 8 / 9 / 10 / 11 / 12
- Akun developer SATUSEHAT (daftar di sini)
Roadmap
- Dokumentasi lengkap per resource di
/docs - Contoh project Laravel end-to-end
- Test coverage untuk semua FHIR resource
- Migration helper dari format legacy
Need Help?
Package ini gratis dan open-source. Kalau Anda butuh:
- Custom integration SATUSEHAT untuk SaaS klinik atau RS
- Konsultasi compliance SATUSEHAT
- Bridging BPJS (VClaim, PCare, Antrean) - lihat bpjs-api
Email: yudistira.sd2@gmail.com
Contributing
Kontribusi welcome. Lihat CONTRIBUTING.md.
Bug report dan feature request via Issues.
Credits
- Original work: ivanwilliammd/satusehat-integration by Dr. dr. Ivan William Harsono, MTI
- Maintained dan updated for latest SATUSEHAT API by @yudistirasd
License
MIT License. Bebas dipakai termasuk untuk komersial.
Maintained by Yudistira SD - Laravel developer Indonesia. Spesialis integrasi healthcare API (SATUSEHAT, BPJS) untuk SaaS klinik.