DICOM(12)OsirixのDICOMサンプルデータのフォルダ一覧

前の関連記事:DICOM(11)OsirixのDICOMサンプルデータをWindowsで使う


OsirixのDICOMサンプルデータのzipファイルを解凍した状態ではdcmファイルを含まないフォルダを含まれています。それらを除くためにバッチファイルを作って一覧を出力します。

バッチファイルでフォルダ一覧を出力する


Osirixサンプルデータは膨大でなにから見ていけばいいのかよくわかりません。

どこかに一覧がないか探してみましたが見つけられませんでした。

まずzipファイルを解凍してできたフォルダの一覧を作ってみます。

ここから以下はバッチファイル作成の試行錯誤の記録です。

フォルダ一覧はこの記事の一番下にあります。
pushd %~p0
dir /ad/b/s  %1 >list.txt
このバッチファイルにフォルダをドロップすると中にあるフォルダがサブフォルダも含めてすべてのフォルダのフルパス一覧がバッチファイルのあるフォルダにlist.txtファイルに出力されます。

フォルダ数が多いと1回目は結構時間がかかりますが結果がどこかにキャッシュされているのか2回目以降は一瞬で出力されます。

結果はフルパスで表示されていてとてもみにくいです。

dcmファイルが入ったフォルダだけ表示させようとしましたがdirコマンドではどうもうまくいく方法を思いつきませんでした。

そこでforを使ってdcmファイルがあるフォルダ名を表示させます。
setlocal enabledelayedexpansion
pushd %1
for /r %%i in (*.dcm) do (
  pushd %%~pi
  for  %%j in ("!CD!") do set forudamei=%%~nxj
  echo %%~nxiのあるフォルダ名は「!forudamei!」です。
  pause
)
endlocal
これにフォルダをドロップするとサブフォルダでもdcmファイルがあるフォルダ名が順に表示されました。

こんどはこのフォルダ名を順次txtファイルに記録する方法を考えます。
setlocal enabledelayedexpansion
pushd %1
for /r %%i in (*.dcm) do (
  pushd %%~pi
  for  %%j in ("!CD!") do set forudamei=%%~nxj
  echo !forudamei!>>"%~dp0list.txt"
)
endlocal
これでバッチファイルのあるlist.txtにフォルダ名が記録されました。

しかしこれはdcmファイルの数だけループするので非常に効率が悪いです。

全部で4万個超もdcmファイルがあるので2時間ほどかかってしまいそうです。

そこでアルゴリズムを変更して、各サブフォルダに移動してからdcmファイルがあるかどうかみて、あればフォルダ名を記録して、次のフォルダに移動する、というふうにします。

バッチファイルにはネストになったforを1段階だけ抜ける方法がない


バッチファイルにはforを抜けるコマンドがありません。

代わりにgotoを使おうと思ったのですけどネストしたforの最外層にしかでれません。

ということでif existを使いました。結果的にはこっちの方がスマートになりました。
pushd %1
rem ドロップしたフォルダ自体は検索されないことに注意。
for /d /r %%i in (*) do (
  if exist %%i\*.dcm (
    echo %%~nxi>>"%~dp0list.txt"
  )
)
うーん。やっぱりフォルダ名だけだと階層構造がわかりません。

でもフルパスだと見にくいし、、、
pushd %1
rem ドロップしたフォルダ自体は検索されないことに注意。
for /d /r %%i in (*) do (
  if exist %%i\*.dcm (
    echo   %%~nxi>>"%~dp0list.txt"
  ) else (
    echo %%~nxi>>"%~dp0list.txt"
  )
)
dcmファイルが直下にないフォルダ名も表示させるようにしてみました。

AGECANONIX
Specials 1CoronaryCTA_with_spiral _CTA_pre
  CorCTA w-c  1.0  B20f - 6
  CorCTA w-c  3.0  B20f  0% - 9
  CorCTA w-c  3.0  B20f  10% - 10
  CorCTA w-c  3.0  B20f  20% - 11
  CorCTA w-c  3.0  B20f  30% - 12
  CorCTA w-c  3.0  B20f  40% - 13
  CorCTA w-c  3.0  B20f  50% - 14
  CorCTA w-c  3.0  B20f  60% - 15
  CorCTA w-c  3.0  B20f  70% - 16
  CorCTA w-c  3.0  B20f  80% - 17
  CorCTA w-c  3.0  B20f  DIASTOLE - 8
  CorCTA w-c  3.0  B20f  SYSTOLE - 7
  CorCTA w-o  3.0  B20f - 4

結果はこんな感じになります。

でも最下層にdcmファイルがないフォルダまで表示されてしまいます。

最下層にdcmファイルがあるフォルダの階層のみ順次インデントして表示させたいですね。
setlocal enabledelayedexpansion
pushd %1
rem ドロップしたフォルダ自体は検索されないことに注意。
for /d /r %%i in (*) do (
  if exist %%i\*.dcm (
    set forudamei0=%%~nxi
    pushd %%i
    pushd ..
    if not "!CD!"==%1 (
      for  %%j in ("!CD!") do set forudamei1=%%~nxj
      pushd ..
      if not "!CD!"==%1 (
        for  %%j in ("!CD!") do set forudamei2=%%~nxj
        echo !forudamei2!>>"%~dp0list.txt"
        echo   !forudamei1!>>"%~dp0list.txt"
        echo     !forudamei0!>>"%~dp0list.txt"          
      ) else (
        echo !forudamei1!>>"%~dp0list.txt"
        echo   !forudamei0!>>"%~dp0list.txt"
      )
    )
  )
)
endlocal
dcmファイルがあるフォルダを2階層上までさかのぼって出力するようにしてみました。

AGECANONIX
  Specials 1CoronaryCTA_with_spiral _CTA_pre
    CorCTA w-c  1.0  B20f - 6      
AGECANONIX
  Specials 1CoronaryCTA_with_spiral _CTA_pre
    CorCTA w-c  3.0  B20f  0% - 9      
AGECANONIX
  Specials 1CoronaryCTA_with_spiral _CTA_pre
    CorCTA w-c  3.0  B20f  10% - 10      
AGECANONIX
  Specials 1CoronaryCTA_with_spiral _CTA_pre
    CorCTA w-c  3.0  B20f  20% - 11      
AGECANONIX
  Specials 1CoronaryCTA_with_spiral _CTA_pre
    CorCTA w-c  3.0  B20f  30% - 12      
AGECANONIX
  Specials 1CoronaryCTA_with_spiral _CTA_pre
    CorCTA w-c  3.0  B20f  40% - 13      
AGECANONIX
  Specials 1CoronaryCTA_with_spiral _CTA_pre
    CorCTA w-c  3.0  B20f  50% - 14      
AGECANONIX
  Specials 1CoronaryCTA_with_spiral _CTA_pre
    CorCTA w-c  3.0  B20f  60% - 15      
AGECANONIX
  Specials 1CoronaryCTA_with_spiral _CTA_pre
    CorCTA w-c  3.0  B20f  70% - 16      
AGECANONIX
  Specials 1CoronaryCTA_with_spiral _CTA_pre
    CorCTA w-c  3.0  B20f  80% - 17      
AGECANONIX
  Specials 1CoronaryCTA_with_spiral _CTA_pre
    CorCTA w-c  3.0  B20f  DIASTOLE - 8      
AGECANONIX
  Specials 1CoronaryCTA_with_spiral _CTA_pre
    CorCTA w-c  3.0  B20f  SYSTOLE - 7      
AGECANONIX
  Specials 1CoronaryCTA_with_spiral _CTA_pre
    CorCTA w-o  3.0  B20f - 4

dcmファイルがあるフォルダのみの順次インデントは実現できましたが、何回も同じフォルダ名がでてきていしまいます。

バッファに前に出力したフォルダ名を格納しといてバッファと比較して同じときは出力しないようにします。
setlocal enabledelayedexpansion
pushd %1
rem ドロップしたフォルダ自体は検索されないことに注意。
for /d /r %%i in (*) do (
  if exist %%i\*.dcm (
    set forudamei0=%%~nxi
    pushd %%i
    pushd ..
    if not "!CD!"==%1 (
      for  %%j in ("!CD!") do set forudamei1=%%~nxj
      pushd ..
      if not "!CD!"==%1 (
        for  %%j in ("!CD!") do set forudamei2=%%~nxj
        if not !forudamei2!==!buf_forudamei2! (
          echo !forudamei2!>>"%~dp0list.txt"
          set buf_forudamei2=!forudamei2!
        )
        if not !forudamei1!==!buf_forudamei1! (
          echo   !forudamei1!>>"%~dp0list.txt"
          set buf_forudamei1=!forudamei1!
        )
        echo     !forudamei0!>>"%~dp0list.txt"
      ) else (
        if not !forudamei1!==!buf_forudamei1! (
          echo !forudamei1!>>"%~dp0list.txt"
          set buf_forudamei1=!forudamei1!
        )
        echo   !forudamei0!>>"%~dp0list.txt"
      )
    ) else (
      echo !forudamei0!>>"%~dp0list.txt"
    )
  )
)
endlocal
これに先ほどと同じフォルダをドロップすると以下の結果が出力されます。

AGECANONIX
  Specials 1CoronaryCTA_with_spiral _CTA_pre
    CorCTA w-c  1.0  B20f - 6
    CorCTA w-c  3.0  B20f  0% - 9
    CorCTA w-c  3.0  B20f  10% - 10
    CorCTA w-c  3.0  B20f  20% - 11
    CorCTA w-c  3.0  B20f  30% - 12
    CorCTA w-c  3.0  B20f  40% - 13
    CorCTA w-c  3.0  B20f  50% - 14
    CorCTA w-c  3.0  B20f  60% - 15
    CorCTA w-c  3.0  B20f  70% - 16
    CorCTA w-c  3.0  B20f  80% - 17
    CorCTA w-c  3.0  B20f  DIASTOLE - 8
    CorCTA w-c  3.0  B20f  SYSTOLE - 7
    CorCTA w-o  3.0  B20f - 4

ほしい結果どおりになりましたね。

「set buf_forudamei1=!forudamei1!」が
「set buf_forudamei1=!forudamei1! 」と
なっているのに気づかなくて原因を探し出すのに結構時間がかかりました。

最後に空白が紛れ込んでいただけですのに。

また空白のあるフルパスの対処でつまずく


ようやく出来上がったと思ってダンロードしたOsirixのサンプルデータをすべていれたフォルダをドロップしてみるとちゃんと動きません。

またDICOM(10)GDCM:サブフォルダのdcmファイルも一括処理するバッチファイルが完成と同じようにフルパスに空白があるのが問題という気はしたのですが一体どこに""をつければよいのかの対処で時間を食ってしまいました。

結局対処として%1には""は不要、!CD!と%~dp0list.txtには""が必要、というので解決しました。

また遡ってこれまでのバッチファイルを修正しました。

フォルダのチェックとかカウンタとか追加した完成版


@echo off
setlocal enabledelayedexpansion
echo %~a1|find "d">NUL
if %ERRORLEVEL% EQU 0 (
  echo dcmファイルを含むフォルダ一覧を出力します。
  echo ドロップしたフォルダ自体はリストには含まれません。
  echo 結果はこのバッチファイルのあるフォルダのlist.txtに追記されます。
  echo.
  pause
  goto menu
  ) else (
  echo dcmファイルを含んだフォルダリストの作成にはdcmファイルを含んだフォルダをドロップしてください。
  echo.
  pause
  exit
)
:menu
pushd %1
rem ドロップしたフォルダ自体は検索されないことに注意。
set Count0=0
for /d /r %%i in (*) do (
  if exist %%i\*.dcm (
    cls
    set /a Count0=Count0+1
    echo フォルダリストをリストアップ中。!Count0!
    set forudamei0=%%~nxi
    pushd %%i
    pushd ..
    if not "!CD!"==%1 (
      for  %%j in ("!CD!") do set forudamei1=%%~nxj
      pushd ..
      if not "!CD!"==%1 (
        for  %%j in ("!CD!") do set forudamei2=%%~nxj
        if not !forudamei2!==!buf_forudamei2! (
          echo !forudamei2!>>"%~dp0list.txt"
          set buf_forudamei2=!forudamei2!
        )
        if not !forudamei1!==!buf_forudamei1! (
          echo   !forudamei1!>>"%~dp0list.txt"
          set buf_forudamei1=!forudamei1!
        )
        echo     !forudamei0!>>"%~dp0list.txt"
      ) else (
        if not !forudamei1!==!buf_forudamei1! (
          echo !forudamei1!>>"%~dp0list.txt"
          set buf_forudamei1=!forudamei1!
        )
        echo   !forudamei0!>>"%~dp0list.txt"
      )
    ) else (
      echo !forudamei0!>>"%~dp0list.txt"
    )
  )
)
cls
echo dcmファイルのあるフォルダは!Count0!個でした。
echo フォルダリストは%~p0のlist.txtに追記されています。
echo.
pause
endlocal

Osirixサンプルデータのフォルダ一覧


上記のバッチファイルでフォルダ一覧を出力した結果です。

全部で289個のフォルダがありました。

ただし出力結果のうちRATIB1はzipファイル名がさらに1階層上にあったのでFOURDIX(RATIB1)と書き換えています。

またOrdalfabetixはzipファイル直下のフォルダ名がUSERとなっており順番がUの位置に出力されたためOの位置に移動させています。

é→e、â→aに事前に修正してあります。
(DICOM(11)OsirixのDICOMサンプルデータをWindowsで使うのフォルダ名修正参照。)

以下フォルダ一覧

AGECANONIX
  Specials 1CoronaryCTA_with_spiral _CTA_pre
    CorCTA w-c  1.0  B20f - 6
    CorCTA w-c  3.0  B20f  0% - 9
    CorCTA w-c  3.0  B20f  10% - 10
    CorCTA w-c  3.0  B20f  20% - 11
    CorCTA w-c  3.0  B20f  30% - 12
    CorCTA w-c  3.0  B20f  40% - 13
    CorCTA w-c  3.0  B20f  50% - 14
    CorCTA w-c  3.0  B20f  60% - 15
    CorCTA w-c  3.0  B20f  70% - 16
    CorCTA w-c  3.0  B20f  80% - 17
    CorCTA w-c  3.0  B20f  DIASTOLE - 8
    CorCTA w-c  3.0  B20f  SYSTOLE - 7
    CorCTA w-o  3.0  B20f - 4
AMNESIX
  Post_Stent
    AngioRunOff  2.0  B30f
    AP-Ext Topo  0.6  T20s
ANEURIX
  Vasculaire Angio_MI (Adulte)
    LL - 5363
ANONYMIZE
  BRAIN
    3-pl T2_ FGRE S - 1
    Ax Flair - 5
    Ax PD&T2 FSE - 4
    Ax T1 FSE +C - 7
    Ax T1 FSE - 6
    COR T1 FSE +C - 9
    Sag T1 FSE +C - 8
    Sag T1 FSE - 3
    Sag T2 FSE - 2
ARTIFIX
  Thorax 1CTA_THORACIC_AORTA_GATED (Adult)
    A Aorta w-c  1.5  B20f  60%
    A Aorta w-c  3.0  SPO  cor  55%
    A Aorta w-c  3.0  SPO  Sag Obl
    A Aorta w-c  MULTIPHASE
ASSURANCETOURIX
  Thorax 1WB_PETCT
    CT WB w-contrast 5.0 B30s
    PET WB
    PET WB-uncorrected
BEAUFIX
  BEAUFIX
    dyn_echo bh perfusion_SUB_MIP_COR
    fl2d_qfss_cor_post
    fl2d_qfss_tra_post
    Mip thin 5mm_arterial
    Mip thin 5mm_venous
    mra_highres
    SUB_arterial
    t2_haste_cor
BRAINIX
  IRM cerebrale, neuro-crane
    SOUS - 702
    sT2-TSE-T - 301
    sT2W-FLAIR - 401
    T1-3D-FFE-C - 801
    T1-SE-extrp - 601
    T1-SE-extrp - 701
    T2W-FE-EPI - 501
BREBIX
  CT10 ponction foie
    DEF FOIE ART. - 107198
    DEF. VEINEUX - 107205
CALIX
  CT1 abdomen
    D30MN BILISCOPIN
    DEF ARTERIEL
    DEF TARDIVES
    DEF VEINEUSE
CARCINOMIX
  CT THORACO-ABDO
    ARTERIELLES - 5
CARDIX
  CAT SCAN CARDIAQUE
    75.0% - 5
CENOVIX
  CT1 abdomen
    ARTERIELLE - 6168
CEREBRIX
  Neuro Crane
    Axial_T1 - 5352
    t1_fl2d_tra - 10
    t1_mpr3D_ns_sag_gd - 16
    t2_tirm_cor_dark-fluid-fs - 5
    t2_tirm_cor_dark-fluid-fs - 9
    t2_tse_tra_p2 - 6
    _MPR Range[1]_ - 18
  PET PETCT_CTplusFET_LM_Brain (Adult)
    CT FET Cerebral Natif  2.0mm - 3
    dynamic recon 3x10min Volume (Corrected) - 7
    PET FET Cerebral - 5
    PET FET Cerebral Uncorrected - 6
CETAUTOMATIX
  Cardiovascular Heart-Cardiac Function
    cine_retro_aortic valve
    cine_retro_normal_hla
    cine_retro_normal_lvla
    cine_retro_normal_lvot
    cine_retro_normal_rvot
    cine_retro_normal_sa
    cor shared echo_SUB_MIP_COR
    cor thin mips ist pass
    MIP thin cor first phase
    mra highres.ce_S47_DIS2D
    mra highres.ce_S48_DIS2D
    sag timing run-flash_MIP_SAG
    SUB_1st pass
    t1_fl2d_cor_pre-post
    Trufi_COR
    Trufi_SAG
    Trufi_TRANS
COLONIX
  CAT SCAN ABDOMINAL COLONOSCOPIE
    abd 1mm - 6
COMUNIX
  Neck 1HEAD_NECK_PETCT
    CT HEAD-NK 5.0 B30s
    PET WB
DIASTOLIX
  CorCTALow  2.0  B25f 0-95%
ENTERIX
  PET PETCT_WB_apc (Adult)
    Abdo art. I.V.  2.0mm - 7
    Abdo-Vein.  2.0mm - 6
    CT WB_Native_2mm - 3
    mpr.fusion.axial - 803
    mpr.fusion.coro - 804
    mpr.pet.coro - 805
    Patient Protocol - 501
    PET WB - 102
    Projection MIP - 806
    Topogram  1.0  T20s - 1
FELIX
  UCLA Head 3T Routine
    CEMRA_HIGHRES
    MIP thin cor
    Shared_echo_Cor_ bh_SUB_MIP_COR
    SUB_MRA
FEROVIX
  Specials 1CTA-CORONARY-ADULT
    CorStd  1.0  B30f
    CorStd  3.0  B30f  Diastole -15%
    CorStd  3.0  B30f  Systole 10%
FIVIX
  Cardiac Cardiac_Standard (Adult)
    CorCTA  0.6  B20f  65% dias - 11
    CorCTA  3.0  B20f  0-90% 10ph - 13
    pet cardiac 10 gates Volume (Corrected) - 404
FORURIX(RATIB1)
  Cardiac 1CTA_CORONARY_ARTERIES_lowHR_TESTBOLUS (Adult)
    CorCTALow  0.6  B10f 65%
    CorCTALow  0.75  B25f  Diastolic
    CorCTALow  0.75  B25f  Systolic
GOUDURIX
  Specials 1_CORONARY_CTA_COMBI_SMH
    70 % 1.0  B30f
GRUSELAMBIX
  LHC
    LHC
IDEFIX
  unnamed
    unnamed
INCISIX
  Tete Dental (Adulte)
    Dentascan  0.75  H60s - 3
KESKONRIX
  Vascular 1ABD_PEL_EXTREMITY_RUNOFF (Adult)
    AngioRunOff  2.0  B30f
    AP-Ext Topo  0.6  T20s
KNEE
  IRM DU GENOU
    3D_mFFE XL - 401
    DP SPAIR AX SENSE - 701
    PD SPAIR COR SENSE - 801
    PDW_aTSE - 501
    T1W_aTSE - 301
    T2W_TSE - 601
KNIX
  Knee (R)
    AX.  FSE PD - 5
    Cor FSE PD - 4
    Cor FSE T1 - 7
    Loc (Right) - 1
    Sag FRSE PD FS - 3
    Sag FSE T2 - 6
LOMBIX
  IRM DE LA COLONNE LOMBAIRE
    3D PROSET - 801
    MYELO_radial - 701
    STIR_TSE - 501
    T1W_TSE - 401
    T2W_DRIVE - 301
    T2W_TSE SENSE - 601
LUNGIX
  PET PETCT_WB_apc (Adult)
    CT WB_Native_2mm - 3
    PET WB - 102
    _ALPHA Collection_ - 107
MACOESSIX
  CT1 abdomen
    3D MIP - 5533
    3D VR - 5577
    AVEC I.V. - 5305
MAGIX
  Cardiaque Cardiaque_standard (Adulte)
    Cir  CardiacCirc  3.0  B20f  0-90% RETARD_DECLECHEMENT 0 % - 10
    Cir  CardiacCirc  3.0  B20f  0-90% RETARD_DECLECHEMENT 10 % - 10
    Cir  CardiacCirc  3.0  B20f  0-90% RETARD_DECLECHEMENT 20 % - 10
    Cir  CardiacCirc  3.0  B20f  0-90% RETARD_DECLECHEMENT 30 % - 10
    Cir  CardiacCirc  3.0  B20f  0-90% RETARD_DECLECHEMENT 40 % - 10
    Cir  CardiacCirc  3.0  B20f  0-90% RETARD_DECLECHEMENT 50 % - 10
    Cir  CardiacCirc  3.0  B20f  0-90% RETARD_DECLECHEMENT 60 % - 10
    Cir  CardiacCirc  3.0  B20f  0-90% RETARD_DECLECHEMENT 70 % - 10
    Cir  CardiacCirc  3.0  B20f  0-90% RETARD_DECLECHEMENT 80 % - 10
    Cir  CardiacCirc  3.0  B20f  0-90% RETARD_DECLECHEMENT 90 % - 10
MANIX
  CER-CT
    ANGIO CT
    AVEC I.V
    SANS I.V
    unnamed
MATRIX
  Angio Membres inferieurs
    ANATOMIE + VAISSEAUX BAS - 65
    ANATOMIE + VAISSEAUX HAUT - 64
    III_Fl3d_cor_cuisse_550 - 25
    III_Fl3d_cor_cuisse_550_SUB - 26
    III_Fl3d_cor_cuisse_550_SUB_MIP_COR - 28
    II_Fl3d_cor_pelvis_825mm - 21
    II_Fl3d_cor_pelvis_825mm_SUB - 22
    II_Fl3d_cor_pelvis_825mm_SUB_MIP_COR - 24
    IV_Fl3d_cor_genou_275mm - 29
    IV_Fl3d_cor_genou_275mm_SUB - 30
    IV_Fl3d_cor_genou_275mm_SUB_MIP_COR - 32
    I_Fl3d_cor_abdomen_1100mm - 17
    I_Fl3d_cor_abdomen_1100mm_SUB - 18
    I_Fl3d_cor_abdomen_1100mm_SUB_MIP_COR - 20
    MIP TOTAL - 63
    Reformat Series 1 - 182131
    V_Fl3d_cor_dynamique_SUB_MIP_COR - 45
    V_Fl3d_cor_jambe_0mm - 33
    V_Fl3d_cor_jambe_0mm - 37
    V_Fl3d_cor_jambe_0mm_SUB - 34
    V_Fl3d_cor_jambe_0mm_SUB - 38
    V_Fl3d_cor_jambe_0mm_SUB_MIP_COR - 36
    V_Fl3d_cor_jambe_0mm_SUB_MIP_COR - 40
MECANIX
  Vasculaire ANGIO_AORTE (Adulte)
    3D VR - 5631
    3D VR - 5633
    Angio Aorte  1.5mm - 6
    Aorte SPC  3.0mm - 3
    Topogramme  0.6  T20s - 1
MELANIX
  PET PETCT_WB_spc (Adult)
    CT AV-BR_Native_2mm - 7
    CT WB_Native_2mm - 3
    mip projection - 809
    MPR fusion WB coronal - 5303
    mpr.axial.av-br.fusion - 810
    mpr.axial.fusion - 805
    mpr.coro.av-br.fusion - 811
    mpr.coro.av-br.pet - 812
    mpr.coro.fusion - 806
    mpr.coro.pet - 807
    PET AV-BR - 105
    PET AV-BR Uncorrected - 106
    PET WB - 102
MERGE
  COLONNE
    LOMBAIRE FACE PA - 3
MRIX LUMBAR
  Lumbar
    3-Plane Loc - 1
    48 FOV Loc - 2
    Ax FRFSE PD - 7
    Ax T2 frFSE S - 5
    Sag T1 Flair - 4
    Sag T2 frFSE S - 3
  Thoracic; Lumbar
    3-Plane Loc - 1
    48 FOV Loc - 2
    Ax FRFSE PD - 7
    Ax T2 frFSE S - 5
    Sag T1 Flair - 6
    Sag T2 frFSE S - 4
OBELIX
  Specials 1_COMBI_CORONARY_SMH
    30%1.0  B20f
    65%1.0  B20f
    70 %1.0  B30f
    CorCTA  1.0  B30f
    WholeBody  2.0  B20f
Ordalfabetix
  Cardiovascular_Mra - 1
    AX_T1_FL2D_OOPFSPOST_39
    AX_T1_FL2D_OOPFSpre_5
    corT1_FL2D_OOPFSpOST_40
    corT1_FL2D_OOPFSpre_6
    COR_subsec_timing_SUB_MIP_COR_8
    fl3d_ce_highres_GADO_38
    fl3d_ce_highres_MASK_36
    MIP_RENALS_MIP_Range_43
    trufi_cor_2
    trufi_sag_4
    trufi_tra_3
OSIRIX
  Thorax Thorax_abdo_01 (Adulte)
    Abdo.tardives  2.0  B25f - 7
    Thorax-Abdo  2.0  B25f - 4
    Thorax-Abdo  6.0  SPO cor - 9
    Thorax-Abdo  6.0  SPO sag - 10
PANORAMIX
  Abdomen 1ABD_PEL_AAA
    abd-pel scout  1.0  T20s
    Abd-Pel w-c  3.0  B30f
PELVIX
  Bassin Bassin (Adulte)
    Bassin  2.0mm std - 2
  CT1 pelvis, bassin
    BASSIN - 8577
PETCETIX
  PET PETCT_WB_apc (Adult)
    Abdo-Veineux  3.0mm - 9
    CT WB_Native_3mm - 4
    mpr.axial.fusion - 603
    mpr.cor.fusion - 604
    mpr.cor.pet - 605
    PET WB - 102
    Thorax I.V.  3.0mm - 7
PHENIX
  CT2 tete, face, sinus
    COU IV
    OS
    unnamed
PNEUMATIX
  Cardiovascular Heart-Cardiac Function
    cine_retro_aortic arch
    cine_retro_hla
    cine_retro_lvot
    cine_retro_lvot trans
    cine_retro_sa
    cine_retro_vla
    cor shared echo_SUB_MIP_COR
    fl3d-cor
PROSTATIX
  PET PETCT_Choline_LM_plusPETCT_WB (Adult)
    CT WB_Natif  2.0mm - 3
    dynamic recon 3x3min Volume (Corrected) - 13
    mpr.axial.fusion.choline.WB - 808
    mpr.coronal.fusion.choline.WB - 809
    mpr.coronal.pet.choline.WB - 813
    PET Prost 5min - 6
    PET WB - 5
QUANTREDEUSIX
  Cardiovascular Heart-Cardiac Function
    cemra highres
    cor shared echo_SUB_MIP_COR
    haste_ coronal
TOUTATIX
  Cardiac 1CTA_CORONARY_ARTERIES_TESTBOLUS (Adult)
    Chest Topo  0.6  T20s
    CorCTA  0.75  B25f  Diastole 65%
    CorCTA  0.75  B25f  Systolic25%
    Heart w-o  1.5  B25f  55%
    No ArchiveCorCTA  2.0  Multiphase
TRAGICOMIX
  Thorax 1CTA_THORACIC_AORTA_GATED (Adult)
    A Aorta w-c  3.0  B20f  0-95%
    A Aorta w-c  3.0  SPO  55%
    A Aorta w-o  1.0  B20f  85%
    A Aorta w-o  2.0  B10f  85%Smooth
    Chest Topo  0.6  T20s
VIX
  Extremites inferieures Pied_cheville_UHR (Adulte)
    Pied-cheville  1.0mm std - 5
VOLUMEMERGE
  IRM DE LA COLONNE CERVICO-DORSO-LOMBAIRE
    MobiView - 305
    MobiView - 405
    MobiView - 505
    STIR_TSE_MT - 501
    STIR_TSE_MT - 502
    STIR_TSE_MT - 503
    T1W_TSE_MT - 401
    T1W_TSE_MT - 402
    T1W_TSE_MT - 403
    T2W_TSE_MT - 301
    T2W_TSE_MT - 302
    T2W_TSE_MT - 303
WRIX
  WRIST RIGHT
    SCOUT 3-PLANE RT. - 2
    SCOUT AXIAL LG FOV RT. - 1
    STIR COR. RT. - 5
    T1 TSE COR RT. - 4
    T2 TSE AX FS RT. - 3

参考にしたサイト


DICOM files
OsirixのサイトにあるDICOMサンプルデータ。

フォルダ内のファイル一覧をテキスト ファイルに出力する方法
これをヒントにバッチファイルを作りはじめました。

バッチファイルでのドラッグ&ドロップ対応 [Win,コマンドプロンプト] - Diary on wind
ドロップしたファイルの処理方法。

dirコマンドでよく使うパラメータ・オプションまとめ
dirコマンドについていろいろ例が載っています。

追加書き込みでファイルへ出力 - リダイレクトとパイプ - コマンドプロンプトの使い方
バッチファイルの結果を順次追加記録する方法。

for“/d”コマンドについて - マイクロソフト コミュニティ
forでディレクトリを列挙する方法。in (*)は省略できないのですね。

雑記 ※BLOGじゃないから恥ずかしくないもん!
forを抜けるコマンドはないし、gotoではネストのforをすべて抜けるしかできないのですね、、、
PR

0 件のコメント:

コメントを投稿