DICOM Router Terakhir disunting pada 27 September 2023
Penjelasan DICOM Router
DICOM Router merupakan penghubung antara Picture Archiving and Communication System dengan Dicom Store. DICOM Router merupakan engine (backend service) yang digunakan sebagai penghubung antara sistem di suatu Rumah Sakit ke SATUSEHAT terkait dengan file DICOM. Pada DICOM Router terdapat Accession Number yang merupakan nomor untuk mengidentifikasi urutan permintaan/order dari study. Nomor ini selalu unik untuk setiap permintaan yang di fasyankes tersebut.
Arsitektur
Diagram DICOM Router
Berikut ilustrasi arsitektur DICOM Router secara umum :
Berdasarkan ilustrasi di atas dapat dijelaskan sebagai berikut :
DICOM Router yang sudah berjalan sebelumnya selalu melakukan listening terhadap event C-STORE
tadi, sehingga otomatis file DICOM dari Modality tadi diproses oleh DICOM Router, dan disimpan sementara untuk kemudian akan diproses lebih lanjut.
DICOM Router menerima file DICOM dari Modality atau PACS yang telah didefinisikan sebelumnya, melalui event
C-STORE
, lalu menyimpannya dalam direktori internal dari aplikasi DICOM Router.DICOM Router akan menyimpan dan mengekstrak data dari file DICOM, terutama terkait Accession Number, karena proses ini merupakan step penting untuk bisa masuk ke tahap selanjutnya, kemudian data tersebut disimpan dalam database internal.
DICOM Router melakukan pengecekan resource
ServiceRequest
ke SATUSEHAT dengan Accession Number yang telah didapatkan dari proses ekstrak file DICOM yang telah diterima sebelumnya. Jika sukses, maka melakukan proses selanjutnya, jika gagal maka kembali mengulang proses dari awal.Langkah selanjutnya adalah membuat resource
ImagingStudy
dari data yang didapatkan dari langkah-langkah sebelumnya.Kemudian resource
ImagingStudy
yang sudah dibuat dikirimkan ke SATUSEHAT. Jika sukses, maka melakukan proses selanjutnya, jika gagal maka kembali mengulang proses dari awal.Unggah file DICOM ke SATUSEHAT DICOM Store. Jika sukses, maka melakukan proses selanjutnya, jika gagal maka kembali mengulang proses dari awal.
Jika semua proses di atas berhasil, maka data dan file DICOM terkait akan dihapus dari penyimpanan sementara.
Proses selesai dan DICOM Router kembali idle.
Untuk alur DICOM Router (PACS + MWL) sebagai berikut :
Berdasarkan alur di atas dapat dijelaskan sebagai berikut :
SIMRS/SIMPUS melakukan order ke MWL (Modality Worklist) dan MWL melakukan return status.
SIMRS/SIMPUS melakukan (POST)
ServiceRequest
ke SATUSEHAT menggunakan Accession Number sebagai identifier.SATUSEHAT mengirim response berupa
ServiceRequest
ID ke SIMRS/SIMPUS.Modality mendapatkan order dari MWL.
MWL mengirimkan kembali order ke Modality.
Setelah mendapatkan gambar, Modality akan mengirimkan hasil berupa DICOM file ke PACS.
PACS mengirimkan DICOM file ke DICOM Router.
DICOM Router mengirimkan DICOM file ke DICOM Store (melalui API Gateway).
DICOM Store melakukan return status ke DICOM Router.
DICOM Router melakukan (POST) terhadap resource
ImagingStudy
ke SATUSEHAT, basedOn: createdServiceRequest
SATUSEHAT mengembalikan
ImagingStudy
ID ke DICOM Router.SIMRS/SIMPUS melakukan (POST) resource
Observation
danDiagnosticReport
basedOn createdServiceRequest
.SATUSEHAT mengembalikan
Observation
ID danDiagnosticReport
ID ke SIMRS/SIMPUS.
Sedangkan alur untuk DICOM Router (tanpa MWL) sebagai berikut :
Berdasarkan alur di atas dapat dijelaskan sebagai berikut :
SIMRS/SIMPUS melakukan order ke DICOM Router dan DICOM Router akan melakukan return status.
SIMRS/SIMPUS melakukan (POST)
ServiceRequest
ke SATUSEHAT menggunakan Accession Number sebagai identifier.SATUSEHAT mengirim response berupa
ServiceRequest
ID ke SIMRS/SIMPUS.Modality mendapatkan order dari DICOM Router.
DICOM Router mengirimkan kembali order ke Modality.
Setelah mendapatkan gambar, Modality akan mengirimkan hasil berupa DICOM file ke DICOM Router
DICOM Router mengirimkan DICOM file ke DICOM Store (melalui API Gateway).
DICOM Store melakukan return status ke DICOM Router.
DICOM Router melakukan (POST) terhadap resource
ImagingStudy
ke SATUSEHAT, basedOn: createdServiceRequest
SATUSEHAT mengembalikan
ImagingStudy
ID ke DICOM Router.SIMRS/SIMPUS melakukan (POST) resource
Observation
danDiagnosticReport
basedOn createdServiceRequest
.SATUSEHAT mengembalikan
Observation
ID danDiagnosticReport
ID ke SIMRS/SIMPUS.
Resource FHIR terkait pada DICOM Router
Resource ImagingStudy
Pengiriman informasi hasil radiologi dalam format DICOM akan dikirimkan oleh DICOM Router. Setelah mendapatkan file DICOM, DICOM Router akan mengirimkan file tersebut ke DICOM Store. DICOM Store akan mengembalikan response status yang nantinya dapat digunakan untuk melihat hasil pencitraan yang telah tersimpan di DICOM Store. DICOM Router kemudian akan melakukan POST informasi terkait DICOM melalui resource ImagingStudy
ke SATUSEHAT. SATUSEHAT akan merespon dengan mengembalikan ImagingStudy
.id ke DICOM Router.
ini perlu disimpan dan nantinya akan direferensikan ketika melakukan pengiriman data bacaan atau ekspertise dari hasil pemeriksaan radiologi.ImagingStudy
.id
Kebutuhan Sistem dan Instalasi Router
Untuk dapat menjalankan DICOM, perlu dilakukan proses instalasi Router, berikut merupakan langkah-langkah yang harus dilakukan untuk menjalankan DICOM :
Proses Unduh dan Instalasi ekosistem Anaconda :
Unduh ekosistem Anaconda melalui link berikut ini: https://www.anaconda.com/products/distribution
Jika sudah, lakukan proses instalasi terhadap ekosistem Anaconda tersebut.
Proses setup DICOM Router :
Lakukan proses clone project DICOM Router melalui GitLab.
Jika sudah, masuk ke dalam direktori/folder di mana DICOM Router tersimpan.
Buka file
Router.conf
, kemudian lakukan konfigurasi untuk target endpoint pada bagianurl
.Masukkan ID Organization, Client Key, dan Secret Key sesuai nama variabelnya pada file
Router.conf
. Jika tidak memiliki akses, silahkan ajukan akses terlebih dahulu di Developer Portal untuk memperoleh data tersebut.Simpan perubahan pada file
Router.conf
, kemudian buka console/terminal/command di mana file tersebut berada, lalu ketik perintah berikut:conda env create -n dicom-router -f conda.yml
Menjalankan DICOM Router :
Lakukan aktivasi pada Anaconda Environment melalui terminal dengan perintah:
conda activate dicom-router
Jalankan microservices utama dengan perintah:
python main.py -v
Program tersebut tidak berjalan pada sebagai background app. Untuk menjalankan program pada background app dapat menggunakan aplikasi nohup
atauscreen
.Pada sistem operasi Windows perlu diperhatikan bahwa jendela terminal tidak boleh tertutup.