add readme.md
This commit is contained in:
145
README.md
Normal file
145
README.md
Normal file
@@ -0,0 +1,145 @@
|
|||||||
|
# GO-OHIF-Proxy
|
||||||
|
|
||||||
|
## 1. Gambaran Umum
|
||||||
|
|
||||||
|
### Tujuan
|
||||||
|
|
||||||
|
App ini dibuat untuk menyalurkan **dicomWeb** request dari OHIF ke Google Healthcare. Proxy berperan hanya sebagai authenticator ke Google dengan `service-account.json`, **tanpa merubah / menambah request**
|
||||||
|
|
||||||
|
Berikut adalah cara clone project ini:
|
||||||
|
|
||||||
|
|
||||||
|
## 2. Alur Kerja Aplikasi
|
||||||
|
|
||||||
|
```
|
||||||
|
+----------------+ +----------------+ +----------------------+
|
||||||
|
| | | | | |
|
||||||
|
| OHIF Viewer |----->| GO-OHIF-Proxy |----->| Google Healthcare |
|
||||||
|
| (Web Client) |<-----| |<-----| DICOM API |
|
||||||
|
| | | | | |
|
||||||
|
+----------------+ +----------------+ +----------------------+
|
||||||
|
```
|
||||||
|
|
||||||
|
1. **Permintaan Klien**: OHIF Viewer mengirimkan permintaan DICOMweb (misalnya, untuk mengambil studi).
|
||||||
|
2. **Pemrosesan Proxy**:
|
||||||
|
- Proxy mencegat permintaan.
|
||||||
|
- Menambahkan header autentikasi yang sesuai.
|
||||||
|
- Meneruskan permintaan ke Google Cloud Healthcare API.
|
||||||
|
3. **Pemrosesan Google Cloud**: Healthcare API memproses permintaan DICOM.
|
||||||
|
4. **Penanganan Respons**: Proxy meneruskan respons kembali ke klien.
|
||||||
|
|
||||||
|
## 3. Instalasi dan Penggunaan
|
||||||
|
|
||||||
|
### Prasyarat
|
||||||
|
|
||||||
|
- Go versi 1.19 atau lebih tinggi.
|
||||||
|
- Akun Google Cloud dengan Healthcare API diaktifkan.
|
||||||
|
- Kredensial akun layanan dengan akses ke DICOM store.
|
||||||
|
|
||||||
|
### Clone dan Setup
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Clone repositori
|
||||||
|
git clone https://devone.aplikasi.web.id/gitea/mario/go-ohif-proxy.git
|
||||||
|
cd go-ohif-proxy
|
||||||
|
|
||||||
|
# Install dependencies
|
||||||
|
go mod download
|
||||||
|
```
|
||||||
|
|
||||||
|
### Konfigurasi
|
||||||
|
|
||||||
|
1. Salin file konfigurasi contoh:
|
||||||
|
```bash
|
||||||
|
cp config/config.yaml.example config/config.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Edit `config/config.yaml` sesuai kebutuhan:
|
||||||
|
```yaml
|
||||||
|
server:
|
||||||
|
port: 5555
|
||||||
|
read_timeout_seconds: 30
|
||||||
|
write_timeout_seconds: 30
|
||||||
|
idle_timeout_seconds: 60
|
||||||
|
|
||||||
|
log_level: "info" # debug, info, warn, error
|
||||||
|
|
||||||
|
google:
|
||||||
|
project_id: "id-proyek-gcp-anda"
|
||||||
|
location: "lokasi-anda"
|
||||||
|
dataset: "nama-dataset-anda"
|
||||||
|
dicom_store: "nama-dicom-store-anda"
|
||||||
|
credentials_path: "./credentials/service-account.json"
|
||||||
|
|
||||||
|
allowed_origins:
|
||||||
|
- "http://localhost:3000" # URL OHIF Viewer
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Letakkan kredensial akun layanan Google Cloud Anda di `credentials/service-account.json`.
|
||||||
|
|
||||||
|
### Menjalankan Aplikasi
|
||||||
|
|
||||||
|
#### Build dan Jalankan Secara Langsung
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Build aplikasi
|
||||||
|
go build -o ohif-proxy ./cmd/server
|
||||||
|
|
||||||
|
# Jalankan aplikasi
|
||||||
|
./ohif-proxy
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Menggunakan Docker
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Build image Docker
|
||||||
|
docker build -t go-ohif-proxy .
|
||||||
|
|
||||||
|
# Jalankan dengan Docker
|
||||||
|
docker run -p 5555:5555 -v $(pwd)/config:/app/config -v $(pwd)/credentials:/app/credentials go-ohif-proxy
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Menggunakan Docker Compose
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose up
|
||||||
|
```
|
||||||
|
|
||||||
|
### Run Aplikasi Tanpa Build
|
||||||
|
|
||||||
|
1. Transfer `./ohif-proxy` ke server tujuan. Contoh:
|
||||||
|
```sh
|
||||||
|
scp ohif-proxy pacs@152.42.173.210:/home/pacs/google-ohif-proxy
|
||||||
|
```
|
||||||
|
2. Pastikan server tujuan terinstall **go versi >1.19**. Cek dengan:
|
||||||
|
3. Buat direktori:
|
||||||
|
```sh
|
||||||
|
mkdir -p ~/google-ohif-proxy
|
||||||
|
mkdir -p ~/google-ohif-proxy/config
|
||||||
|
mkdir -p ~/google-ohif-proxy/credentials
|
||||||
|
```
|
||||||
|
4. Tambahkan `config.go` dan `config.yaml`.
|
||||||
|
```sh
|
||||||
|
scp -r config/* pacs@152.42.173.210:/home/pacs/google-ohif-proxy/config/
|
||||||
|
```
|
||||||
|
5. Tambahkan credential `/credentials/service-account.json`
|
||||||
|
```
|
||||||
|
nano credentials/service-account.json
|
||||||
|
# atau
|
||||||
|
# scp dari local
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### Pengujian
|
||||||
|
|
||||||
|
Aplikasi ini menyertakan permintaan HTTP uji di direktori `test/http` yang dapat digunakan dengan klien REST seperti ekstensi REST Client di VSCode.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Jalankan pengujian yang disertakan
|
||||||
|
make test
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Untuk informasi lebih lanjut tentang OHIF: [https://ohif.org/](https://ohif.org/)
|
||||||
|
Untuk informasi lebih lanjut tentang Google Cloud Healthcare API: [https://cloud.google.com/healthcare](https://cloud.google.com/healthcare)
|
||||||
@@ -1,5 +1,8 @@
|
|||||||
### Local OHIF Proxy Test File
|
### Local OHIF Proxy Test File
|
||||||
@baseUrl = http://localhost:5555
|
# @baseUrl = http://localhost:5555
|
||||||
|
# @baseUrl = http://devone.aplikasi.web.id:5555
|
||||||
|
@baseUrl = http://152.42.173.210:5555
|
||||||
|
|
||||||
|
|
||||||
### 1. Health Check
|
### 1. Health Check
|
||||||
# Verifies that the proxy server is running
|
# Verifies that the proxy server is running
|
||||||
@@ -18,7 +21,7 @@ Accept: application/dicom+json
|
|||||||
|
|
||||||
### 4. QIDO-RS: Search for Studies with Date Range
|
### 4. QIDO-RS: Search for Studies with Date Range
|
||||||
# Returns studies within a date range
|
# Returns studies within a date range
|
||||||
GET {{baseUrl}}/dicomWeb/studies?StudyDate=20200101-20230101
|
GET {{baseUrl}}/dicomWeb/studies?StudyDate=20250301-20250415
|
||||||
Accept: application/dicom+json
|
Accept: application/dicom+json
|
||||||
|
|
||||||
### 5. QIDO-RS: Search for Series in a Study
|
### 5. QIDO-RS: Search for Series in a Study
|
||||||
|
|||||||
Reference in New Issue
Block a user