Add MCU report endpoint and deployment tooling

This commit is contained in:
2026-09-25 06:49:58 +07:00
parent d881872206
commit dd62728316
14 changed files with 3841 additions and 2 deletions

View File

@@ -1,5 +1,47 @@
# CPONE Middleware Go
## Deploy ke server
Tool deploy melakukan test, vet, build binary `linux/amd64`, upload melalui
`scp`, mengganti binary secara atomik, membuat backup binary sebelumnya, lalu
me-restart service melalui systemd.
Untuk server development yang sudah dikonfigurasi:
```bash
make deploy one@devcpone.aplikasi.web.id
```
Bentuk eksplisit yang setara:
```bash
make deploy DEPLOY_TARGET=one@devcpone.aplikasi.web.id
```
Default deploy menggunakan:
- direktori aplikasi: diambil dari `WorkingDirectory` service (otomatis), atau
`$HOME/apps` bila service tidak mendefinisikannya
- binary: `<direktori aplikasi>/cpone-middleware`
- service: `cpone-middleware.service`
- service manager: otomatis mendeteksi systemd user (`systemctl --user`) atau
systemd system (`systemctl`)
- restart: menghentikan `MainPID`, lalu systemd `Restart=always` menyalakan
binary baru
- SSH memiliki timeout koneksi dan keepalive agar deploy tidak menggantung
Jika server memakai izin systemd untuk `restart`, gunakan:
```bash
make deploy one@host.example SERVICE=cpone-middleware.service RESTART_MODE=systemctl
```
Untuk direktori khusus, gunakan `REMOTE_DIR=/path/apps`. Untuk target lama
`one@devcpone.aplikasi.web.id`, hasil default tetap `/home/one/apps`.
Target server harus sudah dapat diakses dengan SSH key/agent; tool tidak
menyimpan atau mengirim `.env` lokal.
Service Go untuk endpoint:
```text
@@ -53,6 +95,10 @@ dipaginasi 20 data per halaman.
GET /api/cpone/layanan-mapping-harga?periodeTarifID=10&layananID=6413,6414,1309
Authorization: Bearer <your-secure-token>
GET /api/cpone/reports/mcu?tanggal=2026-09-01&tanggal2=2026-09-07
Authorization: Bearer <your-secure-token>
X-RS-Code: <kode-rs>
POST /api/cpone/patients/lab-registration
Authorization: Bearer <your-secure-token>
Content-Type: application/json
@@ -72,6 +118,18 @@ Content-Type: application/json
Format payload dan response dibuat mengikuti controller PHP CPONE terkait.
Endpoint laporan MCU mengembalikan JSON dengan envelope standar `success`,
`message`, dan `data`. Setiap item `data` mempertahankan kolom yang ditulis oleh
`docs/lap_mcu.php`, termasuk nilai fallback seperti `Tidak Ada`, `Normal`, dan
`UMUM`. Alias kompatibel yang tersedia adalah `/api/cpone/laporan/mcu` dan
`/api/cpone/laporan-mcu` serta `/api/cpone/lap-mcu`.
Query laporan membutuhkan privilege `SELECT` pada tabel MCU legacy:
`pengkajianmcu`, `tandavital_pasien`, `regpas_detail`, `gayahidup`,
`riwayatpenyakitdahulu`, `riwayatpenyakitkeluarga`, `riwayatalergi`, seluruh
tabel `pemeriksaanfisik_*` yang dipakai laporan, `pemeriksaankhusus`, dan
`penyakitakibatkerja`.
Contoh payload pembuatan paket beserta layanan:
```json