DICOMweb™

LEE_JUN_HA·2022년 3월 28일
0

DICOMweb™이란?

DICOMweb™은 웹 기반 의료 영상을 위한 DICOM 표준입니다. 웹 개발자가 업계 표준 도구 세트를 사용하여 의료 이미지의 힘을 활용할 수 있도록 하는 RESTful 서비스 세트입니다. DICOMweb은 직접 구현하거나 DIMSE 서비스에 대한 프록시로 구현하여 DICOM 지원 시스템에 대한 최신 웹 기반 액세스를 제공할 수 있습니다. DICOMweb을 지원하기 위해 이미지 생성 방식을 모두 개조할 필요는 없습니다.

Dicomweb-server

Dicomweb server를 CouchDB랑 연동하는 방법을 정리해 보겠습니다 🙋‍♂️

📌  https://github.com/dcmjs-org/dicomweb-server 페이지를 참조하였습니다  📌

1. Architecture

기본적인 아키텍쳐는 이렇게 구성되어있습니다

2. 설치

git clone git://github.com/dcmjs-org/dicomweb-server

원하는 폴더를 만든 후 클론을 받아 줍니다

cd.. dicomweb-server

클론 받은 폴더로 이동 후

npm install

npm을 설치해 줍시다.

🚨 저는 여기서 에러가 자꾸 떠서 고생했는데 검색해 보니 가끔 업데이트 문제 때문에 설치가 안 될 때가 있다고 합니다.
그럴 때는 그냥 홈페이지 가서 직접 받으면 해결이 됩니다 😊

CouchDB도 각자 OS에 맞게 설치해 주시면 됩니다.

CouchDB를 처음 실행하면 아이디는 admin으로 되어 있고 비밀번호를 설정할 수 있는데 admin으로 해주었습니다.

처음에는 CouchDB 데이터베이스가 비어 있는 상태로 시작되지만 dicomweb-server가 내부 데이터베이스를 설정하고 문서를 설계하므로 구성할 필요가 없습니다.

3. 실행

CouchDB 가 localhost:5984(기본값)에서 실행되고 있는지 확인한 다음 dicomweb-server를 시작합니다.

npm start

이렇게 서버를 돌리면

쨘! 이렇게 에러가 뜹니다 😂

에러 메세지를 확인해 보면 이름과 패스워드가 잘못됐다고 하네요 🤔

그럼 한번 인증을 바꿔 볼까요?

4. Authentification


기본적으로 인증은 없음이고 응용 프로그램 모드는 개발입니다.

config/development.js에서 auth 속성을 변경하여 인증 방법을 변경할 수 있습니다.

입력하는 값은 config 디렉토리에 있는 json 파일의 이름이어야 합니다. 인증을 위한 샘플 구성에는 다음 정보가 있어야 합니다.

{ "realm": "your-realm", "authServerUrl": "your-auth-server-port-and-port", "clientId": "your-client-id", "clientSecret": "your-secret" }

관리자 계정과 함께 couchdb의 기본 인증을 사용하는 경우 아래 스타일로 config/development.js에서 관리자 사용자 이름과 비밀번호를 지정해야 합니다.

{ dbServer: process.env.DB_SERVER || 'http://username:password@localhost' }


일단 위에 realm 인증은 놔두시고, 밑의 dbServer 부분을 확인해 봅니다 😯

http://username:password@localhost

이렇게 되어 있으니 유저네임과 패스워드를 수정해주면 되겠죠?

위에서 알려줬듯, config/development.js에서 dbServer부분을 유저네임과 패스워드인 admin:admin으로 바꿔주었습니다.

그리고 다시 npm start를 해줍니다.

npm start

쨘! 정상적으로 서버가 켜진 것을 확인할 수 있습니다 😊

CouchDB에 접속해서 chronicle 데이터베이스가 생성된 걸 확인할 수 있습니다 😀

5. 사용법

서버는 궁극적으로 모든 DICOMweb 클라이언트 라이브러리와 호환되어야 합니다.

Python 구현 dicomweb_client 로 테스트 합니다.

https://github.com/herrmannlab/dicomweb-client.git

일단 아까 켜둔 서버는 계속 살려두시고, 새로운 폴더에 클론을 받고, 새로운 터미널에서 해당 폴더로 이동합니다

dicomweb_client --url http://localhost:5985 search studies

터미널에 이렇게 입력하시면

따란! 이렇게 빈 값을 받을 수 있습니다 😉

profile
할 수 있다, 할 수 있다, 아자뵤!

1개의 댓글

comment-user-thumbnail
2023년 12월 8일

좋은 글 정말 감사드립니다. 혹시 CouchDB 가 localhost:5984(기본값)에서 실행되고 있는지 확인은 어떻게 하나요 ..?

답글 달기