Author: byun1114

  • Orthanc + OHIF

    AI 도움을 받아가며 여러 방법으로 시도했다.

    하지만, 가장 단순한 방법으로 해결했다.

    여기에 언급된 방법 중에서 Precompiled된 파일을 다운 받아서 plugin 폴더에 넣는다.

    통상적인 plugin 폴더 위치는 /usr/share/orthanc/plugins 이다.

    그러면 Open OHIF study list 버튼이 생성된다.

  • Orthanc + Dicomweb

    dicomweb.json 파일을 다음과 같은 형식으로 수정해서 실행한다.

    Gemini 도움을 받아서 “// 아래 Servers 블록을 추가하세요”만 추가해 주었다.

    {
        /**
         * The following options control the configuration of the Orthanc
         * plugin adding support of WADO and DICOMweb.
         **/
    
        "DicomWeb" : {
            "Enable" : true,         // Whether DICOMweb support is enabled
            "Root" : "/dicom-web/",  // Root URI of the DICOMweb API (for QIDO-RS, STOW-RS and WADO-RS)
            "EnableWado" : true,     // Whether WADO-URI (aka. WADO) support is enabled
            "WadoRoot" : "/wado",    // Root URI of the WADO-URI (aka. WADO) API
            "Host" : "localhost",    // Hard-codes the name of the host for subsequent WADO-RS requests
            "Ssl" : false,           // Whether HTTPS should be used for subsequent WADO-RS requests
    
            // 아래 Servers 블록을 추가하세요
            "Servers" : {
                    "MyLocalPACS" : {
                            "Url" : "http://localhost:8042/dicom-web/",
                            "Username" : "byun1114",
                            "Password" : "1"
                    }
            }
        }
    }
    
  • Orthanc DICOM 서버

    필요에 의해서 DICOM 서버를 구축해야 했다. 필요한 이유는 많은 PACS 이미지를 전송 받아서 분석에 이용하기 위해서는 DICOM 포맷으로만 가능하다고 한다. 이게 단순히 dcm 파일로만 전송해 줄 수 있다는 것이 아니다. DICOM 이라는 규격을 준수하면 파일을 주고 받을 수 있다는 것이다. 즉, DICOM 서버가 필요하다는 소리이다. 인터넷 검색을 통하여 몇 개를 찾을 수 있었는데, 그 중에서 Orthanc 가 Rest API도 지원이 되고, 오픈 소스이기 때문에 사용을 해보았다.

    처음에는 Docker에서 진행하여 보았다. 홈페이지에서도 도커를 언급하고 있으므로, 안되는 것은 아니다. 다만, 완전 초보인 경우에는 설정 파일을 수정하기 전까지는 localhost의 web에서 접속을 함으로써 성공 여부를 평가할 수 있다. 급한 것은 아니나 프로그램에 익숙해 진 이후에 하면 되는 것이라서 이럴 때마다 희생되는 나의 옛 데탑 PC에 Ubuntu Desktop을 설치한 이후에 프로그램을 실행하였다.

    Debian이나 Ubuntu repository에 등록된 프로그램이기 때문에 설치는 간단하다. 일단은 관련 플러그인도 다 설치하여 보았다.

    $ sudo apt install orthanc orthanc-*

    기본 설정으로 DICOM 포트는 4242이며, web이나 rest api 포트는 8042이다. 병원 PACS에서 파일 전송을 위한 SCP 등록을 위해서 업체 관리자에게 부탁해서 등록을 했다. 알려주어야 하는 것은 이름(title), IP, 포트이다. 이렇게 등록이 되면 PACS에서 send 를 클릭하는 것으로 한 방에 보낼 수 있다.

    기본 설치를 하게 되면 /usr/sbin 에 Orthanc라는 실행 파일이 설치가 된다. 그리고 이는 /etc/init.d/orthanc 라는 스크립트에 의하여 관리가 된다. 상태를 보면 다음과 같다.

    $ sudo systemctl status orthanc
    ...
    CGroup: /system.slice/orthanc.service
             /usr/sbin/Orthanc --logdir=/var/log/orthanc /etc/orthanc/

    Orthanc는 JSON 포맷으로 설정을 관리한다. 그리고 특정 파일을 지정할 수 있다. 폴더를 지정하면 폴더 내의 모든 파일을 합하여 인식이 된다고 한다. 즉, /etc/orthanc/ 에 있는 파일이 설정 파일이다. localhost 이외의 컴퓨터에서 접속을 하기 위해서는 /etc/orthanc/orthanc.json 파일을 수정해야 한다. 기본 설정인 상태에서 다음의 부분을 수정한다. 설정 파일에 보면 나와 있지만 사용자 계정과 비밀번호는 plain text로 저장이 되므로, 그냥 예시에서 주석을 해제하여 이용하였다. 그리고 서비스를 재시작하면 다른 PC에서도 접속할 수 있다.

    ...
    "RemoteAccessAllowed" : true,
    ...
    "AuthenticationEnabled" : true,
    ...

    RemoteAccessAllowed 을 설정하면 기본 orthanc/orthanc 로 접속 가능하다.

    credential.json 파일을 편집해서 ID/PW를 입력한다.

    "RegisteredUsers": {
    "ID": "PW"
    }
  • 역발상의 기술

    기본적으로 역발상의 법칙은 스스로 질문을 하는 습관을 요구한다. 이런 질문들이다.

    “반론이 옳다고 가정해보자. 그렇다면 어떻게 될까?”

    “어떤 사람은 이렇게 말하고, 어떤 사람은 저렇게 말하는데, 또 다른 가능성은 없을까? 지금 당장 생각나지는 않더라도 말이다.”

    “군중은 보통 어떤 열풍이나 추세의 초기에는 옳지만, 시간이 오래 지나 ‘종점’이 가까이 오면 틀린 입장에 서게 되는 게 아닐까?”