Files
pydicom-migrasi-clarity/api-app/README.md
2025-07-11 15:48:34 +07:00

2.4 KiB

DICOM Migration REST API

A simple REST API that triggers DICOM study migration for a specific Accession Number.

How to Run

# Start the server on default port 8000
python run.py

# Custom port
python run.py --port 9000

# Custom token
python run.py --token your-secure-token

# Development mode with auto-reload
python run.py --reload

How to Use

Make a Request

# Using curl
curl -X POST "http://localhost:8000/migrate/R.20240401.0138" \
  -H "Authorization: Bearer token-his2-untuk-hit-api-migrasi-clarity" \
  -H "Content-Type: application/json"

Response Example

{
    "success":true,
    "message":"Berhasil migrasi file DICOM Accession Number: R.20240401.0138",
    "details":
    {
        "accession_number":"R.20240401.0138",
        "process_start_time":"2025-07-11 15:27:26",
        "steps_completed":[
            "study_found","study_retrieved","study_sent","log_created","his_api_success","cleanup_success"
            ],
        "study_uid":"1.2.826.1.3680043.9.5282.150415.544835.202404010138",
        "patient_id":"00544835",
        "study_description":"A103 - Thorax PA",
        "instances_retrieved":4,
        "files_sent":2,
        "total_files":2,
        "c_store_success":true,
        "series_count":4,
        "his_api_status_code":200,
        "his_integration_success":true,
        "cleanup_success":true,
        "process_end_time":"2025-07-11 15:27:46"
    }
}

Logs

  • Main API logs: logs/api.log
  • Process details: logs/api_process.log

Simple Workflow

  1. API receives request with accession number
  2. Finds study UID using C-FIND
  3. Downloads DICOM files using C-GET
  4. Uploads files to destination PACS using C-STORE
  5. Updates HIS system via API call
  6. Cleans up all temporary DICOM files
  7. Returns success/failure response

Troubleshooting Tips

  • Check PACS connectivity in config/settings.py
  • Verify the accession number exists in source PACS
  • Ensure permissions for log directories
  • Check both log files for detailed error messages
  • Verify HIS API connectivity for end-to-end success

Quick Test

  1. Start the server:

    python run.py
    
  2. In another terminal, test the root endpoint:

    curl http://localhost:8000/
    
  3. Test migration with a valid accession number:

    curl -X POST "http://localhost:8000/migrate/R.20240401.0138" \
      -H "Authorization: Bearer token-his2-untuk-hit-api-migrasi-clarity"