4.4 KiB
4.4 KiB
Manual ISO Creation — HOWTO
Create a bootable DICOM viewer ISO with patient images, using genisoimage (or mkisofs / xorriso).
Prerequisites
| Tool | Check | Install (Arch) |
|---|---|---|
genisoimage |
which genisoimage |
pacman -S cdrtools + symlink, or pacman -S libisoburn (xorriso) |
| Raw viewer files | raw/microdicom/ |
Part of this project |
| DICOM files | From PACS or unzipped archive | e.g. unzip pasien.zip |
Steps
1. Prepare working directory
mkdir -p /tmp/build_iso/xcdrom/DICOMDIR
Directory structure yang akan jadi root ISO:
/tmp/build_iso/xcdrom/ ← root ISO
├── AUTORUN.INF
├── INDEX.PHP
├── README.TXT
├── RUN.BAT
├── MICROD/ ← DICOM viewer
└── DICOMDIR/ ← file DICOM pasien
2. Copy microdicom viewer
cp -r /path/to/raw/microdicom/* /tmp/build_iso/xcdrom/
Hasil:
/tmp/build_iso/xcdrom/AUTORUN.INF
/tmp/build_iso/xcdrom/INDEX.PHP
/tmp/build_iso/xcdrom/README.TXT
/tmp/build_iso/xcdrom/RUN.BAT
/tmp/build_iso/xcdrom/MICROD/
3. Copy DICOM files pasien
Flat (semua file langsung di DICOMDIR):
cp /path/to/dicom/files/* /tmp/build_iso/xcdrom/DICOMDIR/
Dari unzip dengan subfolder (misal hasil unzip EF76D893/...):
find EF76D893 -type f -exec cp {} /tmp/build_iso/xcdrom/DICOMDIR/ \;
Verifikasi:
find /tmp/build_iso/xcdrom -type f | sort
4. Build ISO
genisoimage \
-iso-level 4 \
-r \
-allow-multidot \
-allow-lowercase \
-allow-leading-dots \
-V DICOM \
-o /tmp/output.iso \
/tmp/build_iso/xcdrom
| Flag | Fungsi |
|---|---|
-iso-level 4 |
Mengizinkan direktori >8 level |
-r |
Rock Ridge (long filename, Unix permissions) |
-allow-multidot |
Mengizinkan multiple dots dalam filename |
-allow-lowercase |
Lowercase filename |
-allow-leading-dots |
File dimulai dengan titik (.) |
-V DICOM |
Volume label = DICOM |
-o output.iso |
File ISO tujuan |
5. Verify ISO
# Cek ukuran
ls -lh /tmp/output.iso
# Cek struktur isi
isoinfo -l -i /tmp/output.iso
# Cek format
file /tmp/output.iso
# Output: ISO 9660 CD-ROM filesystem data 'DICOM'
# Mount & inspect (optional)
mkdir -p /tmp/mnt_iso
sudo mount -o loop /tmp/output.iso /tmp/mnt_iso
find /tmp/mnt_iso -type f -ls
sudo umount /tmp/mnt_iso
rmdir /tmp/mnt_iso
Shortcut (one-liner)
Gabung semua step dalam satu script:
#!/bin/bash
ISO_NAME="${1:-output}"
SRC_DIR="/tmp/build_iso/xcdrom"
ISO_FILE="/tmp/${ISO_NAME}.iso"
mkdir -p "$SRC_DIR/DICOMDIR"
cp -r /path/to/raw/microdicom/* "$SRC_DIR/"
cp /path/to/dicom/files/* "$SRC_DIR/DICOMDIR/"
genisoimage \
-iso-level 4 -r \
-allow-multidot -allow-lowercase -allow-leading-dots \
-V DICOM \
-o "$ISO_FILE" \
"$SRC_DIR"
echo "ISO created: $ISO_FILE ($(du -h "$ISO_FILE" | cut -f1))"
Alternative: xorriso
If you have xorriso instead of genisoimage:
xorriso -as mkisofs \
-iso-level 4 \
-r \
-V DICOM \
-o /tmp/output.iso \
/tmp/build_iso/xcdrom
Output Structure Reference
output.iso
└── xcdrom/ ← root ISO
├── AUTORUN.INF ← auto-play CD (Windows)
├── INDEX.PHP ← halaman web viewer
├── README.TXT ← petunjuk penggunaan
├── RUN.BAT ← batch file untuk jalanin viewer
├── MICROD/ ← MicroDicom executable viewer
│ ├── MDICOM.EXE ← main executable
│ ├── MDICOM.CHM ← help file
│ ├── MFC120U.DLL ← Visual C++ runtime
│ ├── MSVCP120.DLL ← Visual C++ runtime
│ ├── MSVCR120.DLL ← Visual C++ runtime
│ ├── INDEX.PHP
│ └── SETTINGS/ ← konfigurasi viewer
│ ├── APPLICAT.XML
│ ├── ANIMATIO.XML
│ ├── ANNOTATI.XML
│ ├── EXPORTDI.XML
│ ├── EXPORTIM.XML
│ ├── EXPORTVI.XML
│ ├── OVERLAY.XML
│ ├── OVERLAY_.XML
│ ├── PRINT.XML
│ └── WINDOWLE.XML
└── DICOMDIR/ ← file DICOM pasien
├── 26811B9D ← contoh file DICOM
└── 601182D5 ← contoh file DICOM