Manajemen Perawatan Luka
Bangun dengan Agen AI
Backend Manajemen Perawatan Luka

Template Backend Aplikasi Manajemen Perawatan Luka
Kelola profil luka, rencana perawatan, dan aktifkan pesan aman antara klinisi dan pasien

Backend manajemen perawatan luka yang siap produksi di Back4app dengan pengiriman profil luka yang aman, manajemen rencana perawatan, pesan klinisi, penghubung janji, dan log audit terpusat. Termasuk diagram ER, kamus data, skema JSON, taman bermain API, dan prompt AI Agent untuk bootstrap cepat.

Poin Penting

Luncurkan backend yang berfokus pada clinician dengan kontrol akses yang aman, profil luka yang terverifikasi, riwayat rencana perawatan, pesan yang terthread, dan jejak audit sehingga tim produk Anda dapat fokus pada pengalaman pengguna dan kepatuhan.

  1. Model data berpusat pada pasienJaga identitas pasien, profil luka, rencana perawatan, dan pesan dimodelkan secara terpisah tetapi terhubung untuk kejelasan asal-usul dan otorisasi.
  2. Pesan yang amanPesan yang terthread dan ramah lampiran antara pasien dan Provider dengan tanda terima baca yang jelas dan kontrol retensi.
  3. Profil luka yang terverifikasiSimpan profil luka dengan asal-usul dan metadata versi sehingga wawasan dan rencana perawatan yang diperbarui dapat dilacak.
  4. Siklus rencana perawatanKelola draf rencana perawatan, persetujuan oleh Provider, pengakuan pasien, dan riwayat versi.
  5. Pencatatan siap untuk kepatuhanKelas AuditLog Terpusat mencatat peristiwa sensitif untuk ditinjau, dipantau, dan untuk kepatuhan.

Apa itu Template Backend Aplikasi Manajemen Perawatan Luka?

Back4app adalah backend-as-a-service (BaaS) untuk pengiriman cepat. Template Backend Aplikasi Manajemen Perawatan Luka adalah skema yang sudah dibangun sebelumnya untuk profil pasien, profil luka, rencana perawatan, pesan aman, janji temu, dan audit log. Hubungkan frontend pilihan Anda (React, Flutter, Next.js, dan lainnya) dan kirim lebih cepat.

Terbaik untuk:

Manajemen perawatan lukaPesan telehealthPengiriman profil luka yang amanManajemen rencana perawatanKomunikasi klinisi-pasienTim membangun prototipe sadar HIPAA

Ikhtisar

Manajemen perawatan luka membutuhkan batas data yang kuat, perubahan yang dapat diaudit, dan pengiriman barang sensitif yang dapat diandalkan seperti profil luka dan rencana perawatan.

Templat ini mendefinisikan PatientProfile, WoundProfile, TreatmentPlan, Message, ProviderProfile, Appointment, dan AuditLog dengan kepemilikan dan aturan berbasis peran sehingga tim dapat mengimplementasikan aplikasi manajemen perawatan luka dengan cepat dan aman.

Fitur Utama Manajemen Perawatan Luka

Setiap kartu teknologi di pusat ini menggunakan skema backend manajemen perawatan luka yang sama dengan PatientProfile, WoundProfile, TreatmentPlan, Message, ProviderProfile, Appointment, dan AuditLog.

Profil pasien & otentikasi

ProfilPasien menyimpan identitas, detail kontak, dan preferensi dengan penunjuk ke Pengguna yang telah diautentikasi.

Profil luka terperinci

ProfileLuka menyimpan pasien, detailLuka, status, dan penilaian untuk manajemen yang berkelanjutan.

Siklus rencana perawatan

TreatmentPlan menyimpan konten rencana, pengesah Provider, status (draf, aktif, selesai), dan jendela efektif.

Pesan aman antara klinisi - pasien

Pesan mendukung utas, lampiran, penunjuk pengirim/penerima, dan status pengiriman/pembacaan.

Menghubungkan janji temu

Janji temu menghubungkan pasien, Provider, waktu yang dijadwalkan, dan status untuk konteks kunjungan.

Catatan audit terpusat

AuditLog menangkap identitas aktor, tipe tindakan, konteks entitas, dan metadata muatan untuk kepatuhan.

Mengapa Membangun Backend Aplikasi Manajemen Perawatan Luka Anda dengan Back4app?

Back4app menangani dasar-dasar backend—keamanan, persistensi, API, dan waktu nyata—sehingga Anda dapat fokus pada pengalaman klinisi, alur kerja privasi, dan integrasi klinis.

  • Pengiriman data klinis yang aman: Pola otentikasi dan ACL/CLP bawaan memungkinkan Anda mengontrol persis pengguna mana yang dapat melihat setiap profil luka, rencana perawatan, atau pesan.
  • Audit dan asal usul: AuditLog menangkap siapa yang melihat, menerbitkan, atau mengubah catatan sensitif sehingga Anda dapat mendukung kepatuhan dan debugging.
  • Pesan dan notifikasi: Pesan bertema, lampiran, dan pembaruan langsung opsional membuat percakapan klinisi-pasien menjadi lancar dan tepat waktu.

Terapkan backend manajemen perawatan luka yang aman dengan cepat dan iterasi pada alur kerja klinis bukannya perbaikan backend.

Manfaat Utama

Backend manajemen perawatan luka yang mengutamakan privasi, asal-usul, dan pengiriman cepat.

Pengalaman klinisi yang dipercepat

Kirim penampil profil luka, pengiriman rencana pengobatan, dan pesan aman lebih cepat dengan menggunakan kontrak backend yang telah divalidasi.

Provenansi data yang kuat

Profil luka versi dan rencana perawatan sehingga perubahan klinis dapat diaudit dan dilacak.

Izin yang rinci

Lindungi item sensitif dengan ACL/CLP dan pemeriksaan peran sehingga hanya klinisi dan pasien yang diizinkan yang dapat mengaksesnya.

Pesan terintegrasi

Pesan bertautan dengan lampiran dan pembaruan waktu nyata opsional meningkatkan kolaborasi klinisi-pasien.

Pencatatan siap kepatuhan

AuditLog terpusat mendukung ulasan, penyelidikan insiden, dan pelaporan kepatuhan.

Bootstrap yang didukung AI

Mulai pengembangan dengan prompt AI Agent yang dikurasi yang menyusun skema, ACL, dan kode integrasi dasar.

Siap untuk membangun aplikasi manajemen perawatan luka yang aman?

Biarkan Agen AI Back4app membuat backend manajemen perawatan luka Anda dan menghasilkan profil pasien, profil luka, rencana perawatan, pesan, dan log audit dari satu prompt.

Gratis untuk memulai — 50 prompt Agen AI/bulan, tanpa kartu kredit diperlukan

Tumpukan Teknis

Segala sesuatu termasuk dalam template backend Manajemen Perawatan Luka ini.

Frontend
13+ teknologi
Backend
Back4app
Database
MongoDB
Auth
Otentikasi bawaan + sesi
API
REST dan GraphQL
Waktu nyata
Live Queries

Diagram ER

Model hubungan entitas untuk skema backend Manajemen Perawatan Luka.

Lihat sumber diagram
Mermaid
erDiagram
    PatientProfile ||--o{ WoundAssessment : "assesses"
    PatientProfile ||--o{ TreatmentPlan : "receives"
    PatientProfile ||--o{ Message : "context for"
    PatientProfile ||--o{ Appointment : "scheduled in"
    WoundAssessment ||--o{ TreatmentPlan : "applies to"
    _User ||--o{ Message : "sends/receives"
    _User ||--o{ TreatmentPlan : "authors"
    _User ||--o{ Appointment : "provides"
    _User ||--o{ WoundAssessment : "performs"

    PatientProfile {
        String objectId PK
        Pointer user FK
        String medicalRecordNumber
        String displayName
        Date dateOfBirth
        String primaryClinic
        Boolean isActive
        Date createdAt
        Date updatedAt
    }

    WoundAssessment {
        String objectId PK
        Pointer patient FK
        Pointer assessedBy FK
        String location
        String woundType
        String size
        String status
        String notes
        Date createdAt
        Date updatedAt
    }

    TreatmentPlan {
        String objectId PK
        Pointer patient FK
        Pointer createdBy FK
        String summary
        String details
        String status
        Date startDate
        Date endDate
        Date createdAt
        Date updatedAt
    }

    Message {
        String objectId PK
        String conversationId
        Pointer from FK
        Pointer to FK
        Pointer patient FK
        String body
        Array attachments
        Boolean isRead
        Date sentAt
        Date createdAt
        Date updatedAt
    }

    Appointment {
        String objectId PK
        Pointer patient FK
        Pointer provider FK
        Date startAt
        Date endAt
        String location
        String status
        String reason
        Date createdAt
        Date updatedAt
    }

    AuditLog {
        String objectId PK
        Pointer actor FK
        String entityType
        String entityId
        String action
        String summary
        Object metadata
        Date createdAt
        Date updatedAt
    }

Alur Integrasi

Alur runtime tipikal untuk autentikasi, pengiriman profil luka, pembaruan rencana perawatan, dan pengiriman pesan.

Lihat sumber diagram
Mermaid
sequenceDiagram
  participant Patient
  participant App as Wound Care Management App
  participant Clinician
  participant Back4app as Back4app Cloud

  Patient->>App: Sign in with email or SSO
  App->>Back4app: POST /login (credentials/SSO token)
  Back4app-->>App: Return Session Token + Patient context

  Patient->>App: Open Wound Assessment Dashboard
  App->>Back4app: GET /classes/PatientProfile?where={"user":Pointer("_User", "u123")}
  Back4app-->>App: PatientProfile object
  App->>Back4app: GET /classes/WoundAssessment?where={"patient":Pointer("PatientProfile","p123")}
  Back4app-->>App: List of WoundAssessment

  Patient->>App: Create new Wound Assessment
  App->>Back4app: POST /classes/WoundAssessment (location, woundType, size, status)
  Back4app-->>App: WoundAssessment objectId
  
  Patient->>App: Send secure message to clinician
  App->>Back4app: POST /classes/Message (conversationId, body, to: Pointer(_User, clinicianId))
  Back4app-->>App: Message objectId

  Back4app-->>App: LiveQuery -> new Message or WoundAssessment update
  App-->>Patient: Real-time notification (new message / assessment update)

  Clinician->>Back4app: Update Wound Assessment
  Back4app-->>App: LiveQuery event -> App fetches updated WoundAssessment
  App-->>Patient: Alert: "Wound assessment updated"

Kamus Data

Referensi tingkat lapangan lengkap untuk setiap kelas dalam skema Manajemen Perawatan Luka.

LapanganTipeDeskripsiDiperlukan
objectIdStringAuto-generated unique identifierOtomatis
userPointer<_User>Linked Back4app user account
medicalRecordNumberStringUnique MRN for the patient
displayNameStringPatient full name shown in UI
dateOfBirthDatePatient date of birth
primaryClinicStringPrimary clinic or provider group
isActiveBooleanActive portal access flag
createdAtDateAuto-generated creation timestampOtomatis
updatedAtDateAuto-generated last-update timestampOtomatis

9 bidang di PatientProfile

Keamanan dan Izin

Bagaimana strategi ACL, CLP, dan enkripsi mengamankan profil luka, rencana perawatan, pesan, dan catatan audit.

Akses dan kepemilikan berbasis peran

Terapkan ACL agar pasien dapat melihat profil luka mereka sendiri dan Provider dapat melihat data pasien yang ditugaskan; CLP mencegah operasi kelas yang tidak sah.

Beban yang dienkripsi dan lampiran

Simpan blob sensitif (lampiran catatan luka, PDF) di belakang URL yang ditandatangani dan gunakan enkripsi tingkat penyimpanan untuk perlindungan saat tidak aktif.

Jejak audit hanya tambahkan

Tuliskan entri AuditLog dari Cloud Code sisi server untuk memastikan pengguna tidak dapat merusak catatan kepatuhan historis.

Skema (JSON)

Definisi skema JSON mentah siap untuk disalin ke Back4app atau digunakan sebagai referensi implementasi.

JSON
{
  "classes": [
    {
      "className": "PatientProfile",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "user": {
          "type": "Pointer",
          "required": true,
          "targetClass": "_User"
        },
        "medicalRecordNumber": {
          "type": "String",
          "required": true
        },
        "displayName": {
          "type": "String",
          "required": true
        },
        "dateOfBirth": {
          "type": "Date",
          "required": false
        },
        "primaryClinic": {
          "type": "String",
          "required": false
        },
        "isActive": {
          "type": "Boolean",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "WoundAssessment",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "patient": {
          "type": "Pointer",
          "required": true,
          "targetClass": "PatientProfile"
        },
        "assessedBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "_User"
        },
        "location": {
          "type": "String",
          "required": true
        },
        "woundType": {
          "type": "String",
          "required": true
        },
        "size": {
          "type": "String",
          "required": true
        },
        "status": {
          "type": "String",
          "required": true
        },
        "notes": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "TreatmentPlan",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "patient": {
          "type": "Pointer",
          "required": true,
          "targetClass": "PatientProfile"
        },
        "createdBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "_User"
        },
        "summary": {
          "type": "String",
          "required": true
        },
        "details": {
          "type": "String",
          "required": false
        },
        "status": {
          "type": "String",
          "required": true
        },
        "startDate": {
          "type": "Date",
          "required": false
        },
        "endDate": {
          "type": "Date",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Message",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "conversationId": {
          "type": "String",
          "required": true
        },
        "from": {
          "type": "Pointer",
          "required": true,
          "targetClass": "_User"
        },
        "to": {
          "type": "Pointer",
          "required": true,
          "targetClass": "_User"
        },
        "patient": {
          "type": "Pointer",
          "required": true,
          "targetClass": "PatientProfile"
        },
        "body": {
          "type": "String",
          "required": true
        },
        "attachments": {
          "type": "Array",
          "required": false
        },
        "isRead": {
          "type": "Boolean",
          "required": true
        },
        "sentAt": {
          "type": "Date",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Appointment",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "patient": {
          "type": "Pointer",
          "required": true,
          "targetClass": "PatientProfile"
        },
        "provider": {
          "type": "Pointer",
          "required": true,
          "targetClass": "_User"
        },
        "startAt": {
          "type": "Date",
          "required": true
        },
        "endAt": {
          "type": "Date",
          "required": true
        },
        "location": {
          "type": "String",
          "required": false
        },
        "status": {
          "type": "String",
          "required": true
        },
        "reason": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "AuditLog",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "actor": {
          "type": "Pointer",
          "required": true,
          "targetClass": "_User"
        },
        "entityType": {
          "type": "String",
          "required": true
        },
        "entityId": {
          "type": "String",
          "required": true
        },
        "action": {
          "type": "String",
          "required": true
        },
        "summary": {
          "type": "String",
          "required": true
        },
        "metadata": {
          "type": "Object",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    }
  ]
}

Bangun dengan Agen AI

Gunakan Agen AI Back4app untuk menghasilkan aplikasi Manajemen Perawatan Luka dari template ini, termasuk skema backend, ACL, dan integrasi frontend pemula.

Back4app Agen AI
Siap untuk dibangun
Buat backend Manajemen Perawatan Luka di Back4app dengan skema dan perilaku yang persis ini.

Skema:
1. ProfilPasien: pengguna (Pointer ke Pengguna, wajib), namaLengkap (String, wajib), tglLahir (Tanggal, opsional), kontak (Objek), nomorRekamMedis (String, wajib, unik); objectId, createdAt, updatedAt.
2. ProfilLuka: pasien (Pointer ke ProfilPasien, wajib), detailLuka (Objek), status (String), penilaian (Objek); objectId, createdAt, updatedAt.
3. RencanaPerawatan: pasien (Pointer ke ProfilPasien, wajib), Provider (Pointer ke ProviderProfil, wajib), ringkasan (String), detail (Objek), status (String: draft, aktif, selesai), efektifDari (Tanggal), efektifSampai (Tanggal), versi (Nomor); objectId, createdAt, updatedAt.
4. Pesan: pengirim (Pointer ke Pengguna, wajib), penerima (Pointer ke Pengguna, wajib), threadId (String, wajib), body (String), lampiran (Array File), status (String: terkirim, terkirim, dibaca), dikirimPada (Tanggal); objectId, createdAt, updatedAt.
5. ProviderProfil: pengguna (Pointer ke Pengguna, wajib), spesialisasi (String), klinik (String), kontak (Objek); objectId, createdAt, updatedAt.
6. JanjiTemu: pasien (Pointer ke ProfilPasien, wajib), Provider (Pointer ke ProviderProfil, wajib), dijadwalkanPada (Tanggal, wajib), status (String: dijadwalkan, dibatalkan, selesai), lokasi (String); objectId, createdAt, updatedAt.
7. AuditLog: pelaku (Pointer ke Pengguna, wajib), tindakan (String, wajib), jenisEntitas (String, wajib), idEntitas (String, wajib), payload (Objek, opsional), createdAt (Tanggal); objectId, createdAt, updatedAt.

Keamanan:
- Terapkan ACL agar pasien hanya dapat membaca profil luka dan rencana perawatan mereka. Provider melihat pasien yang ditugaskan. Gunakan Cloud Code untuk transisi sensitif dan untuk menulis entri AuditLog di sisi server. Lindungi lampiran dengan URL yang ditandatangani dan enkripsi penyimpanan.

Otentikasi:
- Dukung pendaftaran untuk pasien dan Provider; penugasan peran; login aman dan manajemen sesi.

Perilaku:
- Pasien masuk, mengambil profil luka dan rencana perawatan terbaru, mengirim pesan ke thread Provider, dan menerima notifikasi. Provider menerbitkan profil luka dan rencana perawatan; sistem menulis entri AuditLog untuk tindakan penerbitan.

Kirim:
- Aplikasi Back4app dengan skema, CLP, ACL, Cloud Code hooks untuk menerbitkan dan logging audit, serta integrasi frontend pemula untuk tampilan pasien dan Provider.

Tekan tombol di bawah untuk membuka Agen dengan prompt template ini yang telah diisi sebelumnya.

Ini adalah prompt dasar tanpa akhiran teknologi. Anda dapat menyesuaikan tumpukan frontend yang dihasilkan setelahnya.

Terapkan dalam hitungan menit50 prompt gratis / bulanTidak diperlukan kartu kredit

API Playground

Coba titik akhir REST dan GraphQL terhadap skema Manajemen Perawatan Luka. Respons menggunakan data tiruan dan tidak memerlukan akun Back4app.

common.loadingPlayground

Menggunakan skema yang sama seperti template ini.

Pilih Teknologi Anda

Perluas setiap kartu untuk langkah integrasi, pola status, contoh model data, dan catatan offline.

Flutter Manajemen Perawatan Luka Backend

React Manajemen Perawatan Luka Backend

React Native Manajemen Perawatan Luka Backend

Next.js Manajemen Perawatan Luka Backend

JavaScript Manajemen Perawatan Luka Backend

Android Manajemen Perawatan Luka Backend

iOS Manajemen Perawatan Luka Backend

Vue Manajemen Perawatan Luka Backend

Angular Manajemen Perawatan Luka Backend

GraphQL Manajemen Perawatan Luka Backend

REST API Manajemen Perawatan Luka Backend

PHP Manajemen Perawatan Luka Backend

.NET Manajemen Perawatan Luka Backend

Apa yang Anda Dapatkan dengan Setiap Teknologi

Setiap stack menggunakan skema backend dan kontrak API Manajemen Perawatan Luka yang sama.

Profil pasien perawatan luka yang terpadu

Profil pasien yang komprehensif untuk manajemen luka yang efektif.

Pesan aman untuk perawatan luka

Komunikasi rahasia antara pasien dan Provider penyedia layanan kesehatan.

Rencana perawatan yang dapat disesuaikan untuk perawatan luka

Mudah membuat dan memodifikasi rencana perawatan yang disesuaikan untuk setiap pasien.

Jadwal janji untuk perawatan luka

Penjadwalan janji yang efisien untuk meningkatkan perawatan pasien.

Log audit untuk perawatan luka

Log terperinci untuk melacak interaksi pasien dan riwayat perawatan.

REST/GraphQL API untuk perawatan luka

API fleksibel untuk mengintegrasikan dengan teknologi frontend apa pun.

Perbandingan Kerangka Perawatan Luka

Bandingkan kecepatan pengaturan, gaya SDK, dan dukungan AI di semua teknologi yang didukung.

KerangkaWaktu PengaturanManfaat Perawatan LukaJenis SDKDukungan AI
Di bawah 5 menitBasis kode tunggal untuk perawatan luka di seluler dan web.Typed SDKPenuh
~3–7 menitDasbor web cepat untuk perawatan luka.Typed SDKPenuh
Pengaturan cepat (5 menit)Aplikasi seluler lintas platform untuk perawatan luka.Typed SDKPenuh
~5 menitAplikasi web yang dirender di server untuk perawatan luka.Typed SDKPenuh
~3–5 menitIntegrasi web ringan untuk perawatan luka.Typed SDKPenuh
Di bawah 5 menitAplikasi Android native untuk perawatan luka.Typed SDKPenuh
~3–7 menitAplikasi iOS native untuk perawatan luka.Typed SDKPenuh
Pengaturan cepat (5 menit)UI web Reactive untuk perawatan luka.Typed SDKPenuh
~5 menitAplikasi web perusahaan untuk perawatan luka.Typed SDKPenuh
Di bawah 2 menitAPI GraphQL fleksibel untuk perawatan luka.GraphQL APIPenuh
Pengaturan cepat (2 menit)Integrasi REST API untuk perawatan luka.REST APIPenuh
~3 menitBackend PHP sisi server untuk perawatan luka.REST APIPenuh
Pengaturan cepat (5 menit)Backend .NET untuk perawatan luka.Typed SDKPenuh

Waktu pengaturan mencerminkan durasi yang diharapkan dari bootstrap proyek hingga login pasien pertama dan kueri profil luka menggunakan skema template ini.

Pertanyaan yang Sering Diajukan

Pertanyaan umum tentang membangun backend Manajemen Perawatan Luka dengan template ini.

Apa itu backend Manajemen Perawatan Luka?
Apa yang termasuk dalam template Manajemen Perawatan Luka?
Mengapa menggunakan Back4app untuk aplikasi manajemen perawatan luka?
Bagaimana cara mendapatkan profil luka terbaru dan Provider-nya dalam satu kueri?
Bagaimana cara menandai pesan sebagai dibaca?
Bisakah React Native menyimpan rencana perawatan untuk digunakan secara offline?
Bagaimana cara mencegah berbagi PDF luka yang tidak sah?
Apa cara terbaik untuk menampilkan konteks janji temu di mobile?
Bagaimana alur pencatatan audit berfungsi dari awal hingga akhir?
Bagaimana saya mendukung pengakuan pasien terhadap rencana perawatan?

Dipercaya oleh pengembang di seluruh dunia

Bergabunglah dengan tim yang mengirim aplikasi manajemen perawatan luka yang aman lebih cepat dengan template Back4app

G2 Users Love Us Badge

Siap untuk Membangun Aplikasi Manajemen Perawatan Luka Anda?

Mulai proyek manajemen perawatan luka Anda dalam beberapa menit. Tidak diperlukan kartu kredit.

Pilih Teknologi