alkee-skia / mars-processor

issue tracker for MARS processor
1 stars 0 forks source link

AR confirm 에서 upload 가 동작하지 않음 #45

Closed alkee-skia closed 3 years ago

alkee-skia commented 3 years ago

upload 시도 시 No required objects 메시지가 나타나면서 업로드 되지 않음

image

발생 상황의 동영상

DPseol commented 3 years ago

Upload Folder 와 DICOM File Download 기본 폴더를 변경했습니다. 권한 관련, 폴더의 파일생성 불가 상황이 의심되어 일반적인 데이터 저장 경로인 AppData로 변경 했습니다. AppData 하부 "MarsData" Folder 입니다.

"AppData\Roaming\MarsData" 위의 폴더 아래 "DICOM" 폴더, "Upload" 폴더가 생성됩니다.

AR Tab을 누른후 AR confirm 전에 "Upload" 폴더 하부에 CT_IMAGE, LESION, MARKER, SKIN 폴더에서 생성된 파일들을 확인해 주세요.

DICOM Download Folder는 Menu->Setting Dialog 에서 수정 가능합니다.

v1982 버전 부터 확인 가능합니다.

alkee-skia commented 3 years ago

서버로그를 봤을때, file index 가 0~162 (아마 163 장의 image 인 듯) 사이의 값으로 들어가야 하는데 그보다 큰 값(아래 로그의 경우 507) 이 들어간 것으로 보입니다.

각 type(ArFileType)별로 0부터 시작하는 고유 index 를 넣어주어야 합니다.

(참고 서버log)

fail: Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware[1]
      An unhandled exception has occurred while executing the request.
System.ArgumentOutOfRangeException: 507 must be between 0 and 162 (Parameter 'index')
   at Mars.v2.Controllers.MarsController.AttachArFile(Int64 arStudyId, ArFileType type, Int32 index, String fileName, Byte[] content, Nullable`1 refDicomFileId)

또한 index 를 0 값만 넣을 수 있는 type(skin mesh 와 같이 하나의 파일만 존재하는 type)에서도 0 이 아닌 1 값을 index 로 넣는 상황도 있는 것 같습니다.(index는 0부터 시작)

fail: Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware[1]
      An unhandled exception has occurred while executing the request.
System.ArgumentOutOfRangeException: 1 must be between 0 and 0 (Parameter 'index')
   at Mars.v2.Controllers.MarsController.AttachArFile(Int64 arStudyId, ArFileType type, Int32 index, String fileName, Byte[] content, Nullable`1 refDicomFileId)
DPseol commented 3 years ago

이미지는 인덱스는 0 부터 시작으로 수정 했습니다. 이미지는 보통 300장 이상도 500장 이상도 생성될 수 있습니다.

\AppData\Roaming\MarsData\Upload 폴더에서 업로드전 생성된 파일 확인이 가능하고, 올리기전 파일 개수 팝업을 띄웁니다.

alkee-skia commented 3 years ago

이미지는 보통 300장 이상도 500장 이상도 생성될 수 있습니다.

series 내에 이미지가 많다면 당연히 많은 파일이 생성될 수 있겠지만, 로그에 나타난 예시의 경우 이미지가 163 장(index 0~162)인 series 인데 업로드시에 index 를 507 이라고 붙여져 있어 오류가 발생한 것입니다.

jhpark-rs commented 3 years ago

이미지는 보통 300장 이상도 500장 이상도 생성될 수 있습니다.

series 내에 이미지가 많다면 당연히 많은 파일이 생성될 수 있겠지만, 로그에 나타난 예시의 경우 이미지가 163 장(index 0~162)인 series 인데 업로드시에 index 를 507 이라고 붙여져 있어 오류가 발생한 것입니다.

CT 이미지가 axial이 아닌 경우, dicom 수와 image 수는 다를 수 있습니다. axial로 re-orientation 된 결과를 저장하기 때문입니다.

예를 들어, 서버에서 수신된 리스트 중 첫번째 CT(AN_ID_20191001080707)의 경우 원 영상은 512^512^163이지만, sagittal 방향으로 재구성 된 영상으로, 이를 axial방향으로 재구성 하면, 162^512^512 영상이 생성됩니다.

thumb nail image

original image orientation image

alkee-skia commented 3 years ago

CT 이미지가 axial이 아닌 경우, dicom 와 image 수는 다를 수 있습니다.

아.. 이해했습니다. AXIAL image 가 아닌 경우에대해서 어떻게 처리해야할지 고민이 더 필요해 보입니다. 일단, 업로드 테스트는 original axial image 만을 확인하도록 하고 derived image 의 경우 방식이 정해지면 다시 별도 기록하도록 하겠습니다.

alkee-skia commented 3 years ago

서버에 업로드 요구하는 image 개수를 axial 기준으로 설정하도록 변경되었습니다. 요구하는 CT image 파일 갯수는 아래와 같습니다.

Axial Coronal Sagittal
non localizer image counts 원본 이미지의 rows 원본 이미지의 columns

다만, 아직 테스트가 충분히 되지 않았으므로, axial image 에 대한 업로드만 확인하도록 하겠습니다.

alkee-skia commented 3 years ago

업로드가 되지 않는 문제가, 필요한 mesh 파일이 없는 문제(#55)와는 관련이 없는지 확인이 필요할 것 같습니다.

alkee-skia commented 3 years ago

실행경로에 skinmarker.targets.json 파일을 넣고, 업로드에 성공하는 UI 까지는 확인하였습니다.

서버에 업로드된 데이터확인 후 issue close 하도록 하겠습니다.

alkee-skia commented 3 years ago

서버에 업로드된 파일이 정상적인 것을 확인하였습니다.