PHPackages                             ivanwilliammd/satusehat-integration - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. ivanwilliammd/satusehat-integration

ActiveLibrary[API Development](/categories/api)

ivanwilliammd/satusehat-integration
===================================

Build SATUSEHAT FHIR Object in Easy Way

3.1.0-stable(1y ago)764.6k↓22.7%48[2 PRs](https://github.com/ivanwilliammd/satusehat-integration/pulls)MITPHPPHP ^7.4|^8.0|^8.1|^8.2|^8.3CI passing

Since Oct 20Pushed 2w ago3 watchersCompare

[ Source](https://github.com/ivanwilliammd/satusehat-integration)[ Packagist](https://packagist.org/packages/ivanwilliammd/satusehat-integration)[ Docs](https://github.com/ivanwilliammd/satusehat-integration)[ GitHub Sponsors](https://github.com/ivanwilliammd)[ RSS](/packages/ivanwilliammd-satusehat-integration/feed)WikiDiscussions main Synced 2w ago

READMEChangelog (10)Dependencies (8)Versions (40)Used By (0)

SATUSEHAT Integration Library
=============================

[](#satusehat-integration-library)

> **Build SATUSEHAT FHIR R4 objects with ease — open source Laravel PHP library.**

[![Latest Version](https://camo.githubusercontent.com/d2c47ae1792149eb8a46c35518fe1e3881b11001f1538c2742d6d8ded6ff1c06/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6976616e77696c6c69616d6d642f7361747573656861742d696e746567726174696f6e)](https://packagist.org/packages/ivanwilliammd/satusehat-integration)[![Laravel](https://camo.githubusercontent.com/e221c380bf16dad7b1fd2d7d5c7b3c0a9f2106349d6eec64d0f3b910297ea32a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d3825453225383025393331332d626c7565)](https://laravel.com)[![PHP](https://camo.githubusercontent.com/6cd82146fbed92a5a2ae6b0e17f6934f86282ed39eeb2cfa6d8059ba06cbccac/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d372e34254532253830253933382e332d707572706c65)](https://php.net)[![License](https://camo.githubusercontent.com/5caa455d8debc46fb23abbadb45a733a937f3910a73fc875c2f7820468e1bb54/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d677265656e)](LICENSE)[![Stars](https://camo.githubusercontent.com/a0f3b8001177a73cbb9191ff2320951518036c974eeaf10e822c92ce8a6e2175/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f6976616e77696c6c69616d6d642f7361747573656861742d696e746567726174696f6e)](https://github.com/ivanwilliammd/satusehat-integration)

---

Overview
--------

[](#overview)

`satusehat-integration` is an **open-source** Laravel PHP library that makes integrating with **SATUSEHAT** (Indonesia's national health data platform, powered by FHIR R4) simple and developer-friendly.

Built on the official [SATUSEHAT Platform Guidelines](https://satusehat.kemkes.go.id/platform/docs), it provides:

- OAuth2 authentication with SATUSEHAT IAM
- FHIR R4 resource object builders (Patient, Encounter, Condition, Observation, etc.)
- Bundle operations for multi-resource transactions
- KYC / Centang Biru verification
- Master data: ICD-10, Kode Wilayah Indonesia, KFA v2

---

Quick Start
-----------

[](#quick-start)

```
composer require ivanwilliammd/satusehat-integration
```

```
# .env
SATUSEHAT_ENV=DEV          # DEV | STG | PROD
SATUSEHAT_BASE_URL_DEV=https://api-satusehat-dev.dto.kemkes.go.id
CLIENTID_DEV=your_client_id
CLIENTSECRET_DEV=your_client_secret
ORGID_DEV=your_org_id
```

```
use Satusehat\Integration\OAuth2Client;
use Satusehat\Integration\FHIR\FhirPatient;
use Satusehat\Integration\FHIR\FhirEncounter;

$client = new OAuth2Client();

// Build & post Patient
$patient = (new FhirPatient)
    ->setNik('3312345678901234')
    ->setName('John Doe')
    ->setGender('male')
    ->setBirthDate('1990-01-15')
    ->setAddress('Jl. Sudirman No.1', 'Jakarta Selatan', 'DKI Jakarta')
    ->setPhone('081234567890');

[$status, $resp] = $client->ss_post('Patient', $patient->build());

// Build & post Encounter
$encounter = (new FhirEncounter)
    ->setStatus('finished')
    ->setClassCode('AMB')
    ->setSubjectReference("Patient/{$resp['id']}", 'John Doe')
    ->setParticipantIndividual('Practitioner/10009880728', 'Dr. Smith')
    ->setPeriodStart(now()->toIso8601String())
    ->setReasonText('Pemeriksaan umum');

[$status, $encResp] = $client->ss_post('Encounter', $encounter->build());
```

---

FHIR Resources Supported
------------------------

[](#fhir-resources-supported)

\#ResourceGETPOSTPUT1Patient✅✅✅2Practitioner✅✅✅3Organization✅✅✅4Location✅✅✅5Encounter✅✅✅6Condition✅✅✅7Observation✅✅✅8Bundle—✅—> **Coming soon (Phase 3 roadmap):** Procedure, MedicationRequest, MedicationDispense, ServiceRequest, Specimen, DiagnosticReport, AllergicIntolerance, ClinicalImpression, CarePlan, Goal, NutritionOrder, Composition, Immunization, and more.

---

Master Data Included
--------------------

[](#master-data-included)

DataSeederCSVICD-10 (18,547 codes)✅✅Kode Wilayah Indonesia (91,592 entries)✅✅---

Documentation
-------------

[](#documentation)

PageDescription[Installation](https://github.com/ivanwilliammd/satusehat-integration/wiki/Installation)composer require, publish config, env setup[Usage](https://github.com/ivanwilliammd/satusehat-integration/wiki/Usage)OAuth, Patient, Encounter, Condition, Bundle, KFA[Features](https://github.com/ivanwilliammd/satusehat-integration/wiki/Features)Full feature matrix[Onboarding](https://github.com/ivanwilliammd/satusehat-integration/wiki/Onboarding)SATUSEHAT developer account setup[Wiki](https://github.com/ivanwilliammd/satusehat-integration/wiki)Full documentation---

Example Projects
----------------

[](#example-projects)

- [satusehat-laravel-example](https://github.com/ivanwilliammd/satusehat-laravel-example) — Laravel 10 full integration example

---

Open Source Roadmap
-------------------

[](#open-source-roadmap)

This library is actively developed. See [ROADMAP.md](ROADMAP.md) for the full phased release plan from v3.x → v5.0.

---

Upgrade Notes
-------------

[](#upgrade-notes)

### v3.2.0 (Laravel 13)

[](#v320-laravel-13)

- ✅ Added Laravel 13 support (`illuminate/* ^13.0`)
- ✅ Fixed Dotenv path resolution — `base_path()` used inside Laravel, `getcwd()` fallback for standalone
- ✅ Replaced deprecated `Dotenv::createUnsafeImmutable` → `Dotenv::createImmutable`

### v3.0.0

[](#v300)

- Multi-role access with per-API restrictions
- Privacy: Patient/Practitioner name censorship
- `Encounter.subject.display` and `Encounter.participant.individual` must match Master Patient Index / Master Nakes Index

---

License
-------

[](#license)

MIT — see [LICENSE](LICENSE)

###  Health Score

54

—

FairBetter than 97% of packages

Maintenance71

Regular maintenance activity

Popularity39

Limited adoption so far

Community21

Small or concentrated contributor base

Maturity71

Established project with proven stability

 Bus Factor1

Top contributor holds 79.3% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~14 days

Recently: every ~26 days

Total

35

Last Release

538d ago

Major Versions

0.15 → 1.02023-10-23

1.2.2 → 2.0.02024-03-22

2.9.8 → 3.0.0-stable2025-01-30

PHP version history (3 changes)0.14PHP ^8.1

1.2.0PHP ^7.4|^8.0|^8.1

2.8.0PHP ^7.4|^8.0|^8.1|^8.2|^8.3

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/48039956?v=4)[Ivan William Harsono](/maintainers/ivanwilliammd)[@ivanwilliammd](https://github.com/ivanwilliammd)

---

Top Contributors

[![ivanwilliammd](https://avatars.githubusercontent.com/u/48039956?v=4)](https://github.com/ivanwilliammd "ivanwilliammd (338 commits)")[![SyaefulKai](https://avatars.githubusercontent.com/u/158563298?v=4)](https://github.com/SyaefulKai "SyaefulKai (33 commits)")[![yudistirasd](https://avatars.githubusercontent.com/u/25135334?v=4)](https://github.com/yudistirasd "yudistirasd (22 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (15 commits)")[![IrsyadProject](https://avatars.githubusercontent.com/u/39052384?v=4)](https://github.com/IrsyadProject "IrsyadProject (10 commits)")[![yogip07](https://avatars.githubusercontent.com/u/72334350?v=4)](https://github.com/yogip07 "yogip07 (7 commits)")[![widialjatsiyah](https://avatars.githubusercontent.com/u/33711600?v=4)](https://github.com/widialjatsiyah "widialjatsiyah (1 commits)")

---

Tags

fhir-clienthealth-informaticshealthcareintegrationkyclaravel-packagephp74php80php81php82php83satusehat-kycsatusehat-mobileivanwilliammdsatusehat-integration

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/ivanwilliammd-satusehat-integration/health.svg)

```
[![Health](https://phpackages.com/badges/ivanwilliammd-satusehat-integration/health.svg)](https://phpackages.com/packages/ivanwilliammd-satusehat-integration)
```

###  Alternatives

[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

265.2k](/packages/aedart-athenaeum)[psalm/plugin-laravel

Psalm plugin for Laravel

3345.4M354](/packages/psalm-plugin-laravel)[roots/acorn

Framework for Roots WordPress projects built with Laravel components.

9922.4M146](/packages/roots-acorn)[mike-bronner/laravel-model-caching

Automatic caching for Eloquent models.

2.4k161.4k2](/packages/mike-bronner-laravel-model-caching)[api-platform/laravel

API Platform support for Laravel

58190.1k21](/packages/api-platform-laravel)[simplestats-io/laravel-client

Server-side analytics for Laravel that follows the full funnel from visit to registration to payment, attributed to the channel that drove it. Revenue, MRR, churn and ad-spend profit (ROAS/CAC) per channel. GDPR compliant, ad-blocker proof.

5226.7k](/packages/simplestats-io-laravel-client)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
