DICOM records
This is WIP applications
Production url
- API - http://104.198.185.94:8080/
- DICOM storage SCP - host 35.202.37.159 port 8083
Test
TODO
Local development
TODO
Deploy [manual so far]
We use kubernetes in GCE for a deploy You will need 3 components for the deploy
NFS server
- Create persistent disk
gcloud compute disks create --size=10GiB --zone=us-central1-a dicmo-app-storage
- Deploy NFS to k8n
kubectl apply -f ./deployment/nfs/nfs-deployment.yaml
kubectl apply -f ./deployment/nfs/nfs-service.yaml
- Get NFS ClusterIP
kubectl get service nfs-server
DICOM storage SCP (receiver)
- Build docker images for dcmrecv
cd ./dcmrecv/
docker build -t dcmrecv .
docker tag dcmrecv:latest truskovskyi/dcmrecv:latest
docker push truskovskyi/dcmrecv:latest
cd ./../
- Deploy
kubectl create -f ./deployment/dcmrecv/dcmrecv-deployment.yaml
kubectl expose deployment dcmrecv --type=LoadBalancer --name=dcmrecv-service
- Get DICOM storage SCP IP
kubectl get service dcmrecv-service
- Clean it
kubectl delete service dcmrecv-service
kubectl delete deployments dcmrecv
DICOM API
- Build docker images for DICOM API
docker build -t dcmrecv_api .
docker tag dcmrecv_api:latest truskovskyi/dcmrecv_api:latest
docker push truskovskyi/dcmrecv_api:latest
- Deploy
kubectl create -f ./deployment/dicom_api/dicom-api-deployment.yaml
kubectl expose deployment dicom-api --type=LoadBalancer --name=dicom-api-service
- Get DICOM API
kubectl get service dicom-api-service
- Clean it
kubectl delete service dicom-api-service
kubectl delete deployments dicom-api
Manual testing
- Install dcmtk
brew install dcmtk
- Send test image
dcmsend --verbose <host> <port> <image>
example: dcmsend --verbose 35.202.37.159 8083 ./data/patient_1/image_49.dcm
Plan
- NFS server
- DICOM storage SCP (receiver)
- DICOM API
- Manual Deploy
- Tests
- CI Deploy