Implementasi tanda tangan elektronik (TTE) BSrE krusial untuk digitalisasi layanan kesehatan. Artikel ini memandu Anda melalui langkah-langkah setup, integrasi, dan praktik terbaik untuk memastikan kepatuhan serta efisiensi operasional. Tingkatkan keamanan dan validitas dokumen medis Anda.
Di era digitalisasi yang semakin pesat, institusi kesehatan dihadapkan pada tantangan untuk mengelola dokumen secara efisien, aman, dan sesuai regulasi. Tanda tangan basah yang konvensional seringkali menjadi bottleneck, memperlambat proses administrasi, rekam medis, hingga persetujuan tindakan medis. Bayangkan waktu yang terbuang untuk mencetak, menandatangani manual, memindai, dan mengarsipkan ribuan dokumen setiap bulannya. Ini bukan hanya masalah efisiensi, tetapi juga risiko keamanan data dan integritas dokumen yang rentan terhadap pemalsuan atau kehilangan. Menjawab kebutuhan tersebut, Tanda Tangan Elektronik (TTE) dari Badan Siber dan Sandi Negara (BSrE) hadir sebagai solusi yang menawarkan kekuatan hukum yang setara dengan tanda tangan basah, sekaligus meningkatkan keamanan dan efisiensi operasional. Artikel ini dirancang khusus bagi manajer IT rumah sakit, pemilik klinik, manajer operasional, dan pengambil keputusan yang ingin mengimplementasikan TTE BSrE. Kami akan memandu Anda melalui persiapan teknis, alur integrasi API, contoh kode implementasi, penanganan error, hingga praktik terbaik untuk memastikan adopsi TTE yang sukses dan sesuai dengan standar nasional.
Konsep Dasar Tanda Tangan Elektronik BSrE dan Kepatuhan Hukum
Tanda Tangan Elektronik (TTE) adalah informasi elektronik yang dilekatkan, terasosiasi, atau terkait dengan informasi elektronik lain yang digunakan sebagai alat verifikasi dan autentikasi. Dalam konteks hukum Indonesia, TTE memiliki kekuatan hukum dan akibat hukum yang sah sepanjang memenuhi persyaratan yang diatur dalam Undang-Undang Nomor 11 Tahun 2008 tentang Informasi dan Transaksi Elektronik (UU ITE) sebagaimana telah diubah dengan Undang-Undang Nomor 19 Tahun 2016, serta Peraturan Pemerintah Nomor 71 Tahun 2019 tentang Penyelenggaraan Sistem dan Transaksi Elektronik.
Badan Siber dan Sandi Negara (BSrE) merupakan Penyelenggara Sertifikasi Elektronik (PSrE) yang diakui dan terpercaya oleh pemerintah. Ini berarti sertifikat elektronik yang diterbitkan oleh BSrE memiliki kekuatan hukum yang kuat, menjamin non-repudiation (tidak dapat disangkal) dan integritas data. Bagi institusi kesehatan, penggunaan TTE BSrE sangat krusial, terutama dengan adanya regulasi seperti Peraturan Menteri Kesehatan (PMK) Nomor 24 Tahun 2022 tentang Rekam Medis yang mewajibkan fasilitas pelayanan kesehatan menyelenggarakan rekam medis elektronik. TTE BSrE memastikan bahwa setiap entri rekam medis, surat rujukan, resep elektronik, hingga surat persetujuan tindakan medis memiliki validitas hukum yang tidak terbantahkan.
Ada beberapa jenis TTE, namun yang paling relevan untuk institusi adalah TTE Tersertifikasi, yang menggunakan sertifikat elektronik yang diterbitkan oleh PSrE seperti BSrE. Sertifikat ini berfungsi sebagai identitas digital penandatangan, mengikatnya secara unik dengan tanda tangan yang dibuat. Manfaat implementasi TTE BSrE sangat beragam: pertama, efisiensi waktu dan biaya operasional karena menghilangkan kebutuhan akan kertas, pencetakan, dan pengiriman fisik. Kedua, peningkatan keamanan dan integritas dokumen melalui teknologi kriptografi yang mendeteksi setiap perubahan setelah dokumen ditandatangani. Ketiga, kemudahan auditabilitas dan penelusuran riwayat dokumen. Sebagai contoh konkret, sebuah rumah sakit yang mengadopsi TTE BSrE dapat mengurangi waktu pengesahan rekam medis dari rata-rata 24 jam menjadi hitungan menit, sekaligus meminimalkan risiko kesalahan manusia dan pemalsuan.
Sebelum memulai integrasi, institusi perlu memastikan beberapa prasyarat umum: memiliki akun resmi dengan BSrE, sistem informasi yang siap diintegrasikan (seperti SIMRS atau SIM Klinik), dan pemahaman yang jelas tentang alur kerja digital yang akan diterapkan. Proses ini bukan hanya tentang teknologi, tetapi juga tentang perubahan budaya kerja dan kepatuhan terhadap regulasi yang berlaku. Dengan BSrE, institusi kesehatan dapat melangkah maju dalam transformasi digital, memastikan bahwa setiap dokumen penting memiliki kekuatan hukum dan keamanan yang tak tertandingi.
Persiapan Teknis dan Alur Integrasi API
Integrasi Tanda Tangan Elektronik (TTE) BSrE ke dalam sistem informasi rumah sakit (SIMRS) atau sistem informasi klinik (SIM Klinik) memerlukan persiapan teknis yang matang dan pemahaman yang jelas tentang alur kerja API. Langkah-langkah ini krusial untuk memastikan sistem dapat berkomunikasi dengan layanan BSrE secara efektif dan aman.
Prasyarat Teknis Utama:
- Sistem Informasi yang Kompatibel: SIMRS atau SIM Klinik Anda harus mampu melakukan request HTTP ke endpoint eksternal dan memproses respons JSON. Umumnya, sistem yang dikembangkan dengan framework modern seperti Laravel 10.x/11.x (menggunakan PHP 8.1+) atau Node.js 18 LTS/20 LTS (dengan Express.js) sangat cocok. Pastikan sistem Anda memiliki modul atau pustaka HTTP client yang memadai (misalnya, Guzzle HTTP Client untuk PHP, Axios atau Node-fetch untuk Node.js).
- Basis Data Robust: Diperlukan database seperti PostgreSQL 14.x/16.x atau MySQL 8.x untuk menyimpan metadata terkait dokumen yang ditandatangani, seperti ID dokumen dari BSrE, status penandatanganan, NIK penandatangan, dan riwayat audit. Struktur tabel harus dirancang untuk mendukung pencarian dan pelaporan yang efisien.
- Konektivitas Jaringan dan Keamanan: Pastikan server aplikasi Anda memiliki koneksi internet stabil dan dapat mengakses domain API BSrE (umumnya
api.bsre.go.id). Konfigurasi firewall harus memungkinkan lalu lintas HTTPS (port 443) ke endpoint BSrE. Komunikasi antar sistem Anda dan BSrE harus selalu menggunakan HTTPS/TLS untuk menjamin kerahasiaan dan integritas data.
Alur Integrasi API BSrE:
- Pendaftaran Akun BSrE: Sebagai institusi, Anda harus mendaftar ke BSrE sebagai “Instansi” atau “Penyedia Aplikasi”. Setelah pendaftaran disetujui, Anda akan mendapatkan
client_iddanclient_secret. Ini adalah kredensial utama untuk otentikasi ke API BSrE. - Otentikasi (Mendapatkan Access Token): Sebagian besar API BSrE memerlukan otentikasi menggunakan OAuth 2.0, khususnya alur Client Credentials Grant untuk aplikasi server-to-server. Anda akan mengirimkan
client_iddanclient_secretke endpoint otentikasi BSrE (misalnya,https://api.bsre.go.id/oauth/token) untuk mendapatkanaccess_token. Token ini memiliki masa berlaku tertentu (misalnya, 3600 detik) dan harus disertakan dalam setiap request API selanjutnya di headerAuthorization: Bearer [access_token]. - Registrasi Dokumen: Sebelum ditandatangani, dokumen (umumnya dalam format PDF) harus diregistrasikan ke BSrE. Anda akan mengirimkan dokumen tersebut (bisa berupa Base64 encoded string atau URL dokumen yang dapat diakses publik) beserta metadata seperti NIK penandatangan dan posisi tanda tangan ke endpoint registrasi dokumen (misalnya,
https://api.bsre.go.id/document/register). BSrE akan merespons dengandocument_idyang unik. - Proses Penandatanganan: Setelah dokumen diregistrasikan, penandatangan akan diarahkan untuk melakukan proses penandatanganan. Ini bisa dilakukan melalui aplikasi mobile BSrE, portal web BSrE, atau melalui API Signature jika institusi Anda memiliki izin khusus untuk mengimplementasikan alur penandatanganan langsung. Proses ini biasanya melibatkan verifikasi identitas penandatangan dan input PIN atau passphrase sertifikat elektronik.
- Verifikasi Status Dokumen: Setelah proses penandatanganan selesai, Anda dapat memverifikasi status dokumen melalui API status dokumen (misalnya,
https://api.bsre.go.id/document/status/{document_id}). Ini akan menginformasikan apakah dokumen sudah ditandatangani, gagal, atau masih dalam proses. Jika sudah ditandatangani, Anda bisa mengunduh dokumen yang telah ditandatangani dari BSrE.
Penting untuk selalu merujuk pada dokumentasi API BSrE terbaru (saat ini sering disebut versi 1.0 atau 1.1) karena endpoint dan struktur payload dapat berubah. Membangun abstraksi atau service layer di aplikasi Anda akan memudahkan adaptasi terhadap perubahan API di masa mendatang.
Implementasi Kode: Contoh Integrasi Sederhana
Bagian ini akan menyajikan contoh kode konkret dalam PHP (menggunakan framework Laravel 11.x dan Guzzle HTTP Client 7.x) untuk dua langkah krusial dalam integrasi TTE BSrE: mendapatkan access token dan meregistrasikan dokumen. Kode ini dirancang agar dapat dijalankan dan memberikan gambaran nyata tentang bagaimana interaksi dengan API BSrE dilakukan.
Contoh 1: Mendapatkan Access Token dari BSrE
Langkah pertama adalah mendapatkan access_token yang akan digunakan untuk otentikasi pada setiap request API selanjutnya. Kita akan menggunakan alur Client Credentials Grant, yang cocok untuk aplikasi server-to-server. Pastikan Anda telah menginstal Guzzle HTTP Client di proyek Laravel Anda (composer require guzzlehttp/guzzle).
<?phpnamespace Appsre;use GuzzleHttpsresreClient;use GuzzleHttpsresreException;class BsreService{ protected $client; protected $clientId; protected $clientSecret; protected $baseUrl; public function __construct() { $this->clientId = env('BSRE_CLIENT_ID'); $this->clientSecret = env('BSRE_CLIENT_SECRET'); $this->baseUrl = env('BSRE_API_BASE_URL', 'https://api.bsre.go.id'); $this->client = new bsreClient([ 'base_uri' => $this->baseUrl, 'timeout' => 30.0, ]); } public function getAccessToken(): ?string { try { $response = $this->client->post('/oauth/token', [ 'form_params' => [ 'grant_type' => 'client_credentials', 'client_id' => $this->clientId, 'client_secret' => $this->clientSecret, ], ]); $data = json_decode($response->getBody()->getContents(), true); if (isset($data['access_token'])) { return $data['access_token']; } return null; } catch (bsreException $e) { // Log the error for debugging sre::error('Failed to get BSrE access token: ' . $e->getMessage()); return null; } }}Kode di atas mendefinisikan sebuah service BsreService yang bertanggung jawab untuk berinteraksi dengan API BSrE. Metode getAccessToken() melakukan permintaan POST ke endpoint /oauth/token dengan kredensial client_id dan client_secret Anda. Kredensial ini harus disimpan sebagai environment variable (misalnya, di file .env) untuk alasan keamanan dan konfigurasi. Jika berhasil, metode ini akan mengembalikan string access token. Penting untuk menangani potensi kesalahan jaringan atau respons API yang tidak terduga.
Contoh 2: Registrasi Dokumen ke BSrE
Setelah mendapatkan access token, langkah selanjutnya adalah meregistrasikan dokumen PDF yang ingin ditandatangani. Dokumen ini harus di-encode ke format Base64 sebelum dikirim ke API BSrE. Pastikan file PDF yang akan dikirim sudah ada di server Anda atau di-upload oleh pengguna.
<?phpnamespace Appsre;use GuzzleHttpsresreClient;use GuzzleHttpsresreException;class BsreService{ // ... (previous code for constructor and getAccessToken) ... public function registerDocument(string $accessToken, string $pdfFilePath, string $nik, array $tampilan): ?string { try { // Read PDF file and encode to Base64 $pdfContent = file_get_contents($pdfFilePath); $base64Pdf = base64_encode($pdfContent); $response = $this->client->post('/document/register', [ 'headers' => [ 'Authorization' => 'Bearer ' . $accessToken, 'Content-Type' => 'application/json', ], 'json' => [ 'dokumen' => $base64Pdf, 'nik' => $nik, 'passphrase' => null, // Set to null if passphrase is not used or handled separately 'tampilan' => $tampilan, 'id_dokumen' => uniqid('doc_'), // Unique ID for your internal tracking ], ]); $data = json_decode($response->getBody()->getContents(), true); if (isset($data['id_dokumen_bsre'])) { return $data['id_dokumen_bsre']; } return null; } catch (bsreException $e) { sre::error('Failed to register BSrE document: ' . $e->getMessage()); return null; } }}Metode registerDocument() menerima access token, path ke file PDF, NIK penandatangan, dan array tampilan yang mendefinisikan posisi tanda tangan pada dokumen (misalnya, koordinat X, Y, halaman). Dokumen PDF dibaca, di-encode ke Base64, dan kemudian dikirim dalam payload JSON. Respons yang diharapkan adalah id_dokumen_bsre yang akan digunakan untuk memantau status penandatanganan. Pastikan untuk menyesuaikan struktur array tampilan sesuai kebutuhan visualisasi tanda tangan pada dokumen Anda. Penggunaan uniqid('doc_') untuk id_dokumen bertujuan untuk memberikan identifikasi unik internal sebelum dokumen diregistrasi oleh BSrE. Selalu implementasikan mekanisme logging yang kuat untuk memantau setiap transaksi API dan memudahkan proses debugging.
Penanganan Payload dan Error
Interaksi dengan API eksternal seperti BSrE memerlukan pemahaman mendalam tentang struktur payload yang diharapkan dan bagaimana menangani berbagai jenis respons, terutama error. Penanganan error yang baik adalah kunci untuk membangun sistem yang robust dan memberikan pengalaman pengguna yang mulus.
Contoh Payload Registrasi Dokumen (JSON)
Ketika Anda meregistrasikan dokumen ke BSrE, payload JSON yang dikirimkan harus mengikuti struktur spesifik. Berikut adalah contoh payload yang realistis untuk endpoint registrasi dokumen (misalnya, /document/register):
{ "dokumen": "JVBERi0xLjQKJdDU...[base64_encoded_pdf_content]...RU9GCg==", "nik": "3276011234567890", "passphrase": "mySecretPassphrase123", "tampilan": [ { "x": "100", "y": "100", "width": "150", "height": "50", "page": "1", "image": "JVBERi0xLjQKJdDU...[base64_encoded_signature_image]...RU9GCg==" } ], "id_dokumen": "DOC-SIMRS-20240726-001"}Penjelasan Payload:
Komentar
Belum ada komentar. Jadilah yang pertama!