最終更新: a few seconds agoRemove Netlify-related code from main (grafted, HEAD)

CIRCUS 議事録/作業ログ(memo)

2018-08-20 三木先生/加納

先日の上田質問に対する回答

  • circus-rs で dicom-file-repository のインターフェイスは使用しない
  • 型はいちいち書かない。javascript なので、慣れてください。
  • 使用時にはいちいち書く必要がない。
  • 宣言においては完全に書く

2018-08-18 加納/上田

  • 手詰まり(質疑)
    • DicomFileRepository は なぜ抽象クラスから Interface になったのか。

      • クラスではなくてクロージャで `DicomFileRepository` を実装しても構わないよ、ということにするために敢えてInterfaceに変更。
      • circus-api/src/storage の下に今回のと似たようなストレージ抽象化があり、そちら側はクラスを一切使わずクロージャだけで同じようなことを実装しているので要確認のこと。https://github.com/utrad-ical/circus-api/tree/master/src/storage
    • Interface SeriesAccessor の export について

      • Interface は typescript 固有の機能なので export は適切ではない?
      • 型推測や、チェック?のようなものは d.ts で定義されるのか?
        • d.ts を置いてほしい????
          • 結論からいうと、上田の勘違いであり対応不要。`SeriesAccessor` が `DicomFileRepository` の一部としてすでに間接的にパッケージ外に公開されている状態に気づいていなかった。なお、間接的にでもパッケージ外に公開されている状態であれば、VSCode上でそれを選択し右クリックから定義を表示させることも可能。
  • @deprecated ほしい
  • 1ファイル 1定義について
    • というか、定義とファイル分割の方針
  • React について 読むとか。調べるとか。
    • 参考 cirucs-web-ui

2018-08-08 加納/上田

上田開発環境上で、circus rs の default demo が動作するところまで確認。
以下、作業依頼に関するメモ

  • circus-rs の package.json で、 circus-dicom-repository に依存させる。
    • dependency みたいなの
  • それ ...repository を使った形に変更する
  • branch 切って開発 feature/.....
  • master には merge しないで、github に push ののち、 pull request を出す。
  • src/server を中心に確認。

明日以降、コードの精査を開始する(上田)。

RSについて、以下の説明はしていない。 RS browser 開発当初のメモがあると分かりやすい・・・?

  • 根本的な設計思想
    • Composition
    • ImageSource
    • Viewer
    • Tool

2018-08-07 三木先生/加納

  • Three.js 依存しない形で計算系ユーティリティを使用できるようにする。
    • 計算系のfunction export は、export 用に wrapper 的なものを作成し、それを export するようにする。

2018-08-06

  • リポジトリ名変更
    • circus-db-web-ui > circus-web-ui
  • circus-web-ui
    • 動かない
  • 分担について
    • Kano: RS (client side) の塗り絵機能を復活させる
      • 行列計算を glmatrix ベースから threejs ベースに変更する際に、エンバグの可能性。
    • Ueda: RS (server side) の画像関連個所について、circus-dicom-repository に依存させるように調整。
      • とりあえず rs を動かしてみてもらう。
  • design-note の修正をほぼ完了

全体構成に関するメモ

  • 概念上の構成は、次の2つのアプリケーション。
    伴に、クラサバ構成。
    • circus-db: DICOM画像を表示し、腫瘍の塗り絵など。
      DICOM画像に対するアノテーション追記などのフィードバック登録と表示。
    • circus-cs: CAD(プラグインとして実装)のキュー管理と実行。
      実存するcircus-csリポジトリは、すごく古いものなので、参照する価値がない。
  • この2つのアプリケーションは、昔、PHP 5.3 / mysql / jQueryベースの構成で始まった。
    • circus-db については、nodejsなどの新しい構成への書き換えが進んでいる。
    • circus-cs については、古いまま。
  • 実装上の構成は、共有部品が非常に多いため概念上の構成と異なる。
    • circus-web-ui: circus-db client side + circus-cs client side
    • circus-api: circus-db server side + circus-db server side
  • 実装上の構成の中で、一部の部品に対してリポジトリを分離している。
    • circus-rs: ボリューム画像とアノテーションのビューア(実装ポリシーとしてはボリューム画像に限定しない汎用的なものとする)
    • circus-cs-core: circus-cs server side, plugin manager の分離 (実装上は circus-api がこれに依存)
    • circus-dicom-repository: DICOM画像のファイルの置き場をクラウド化する前提とした、(仮想)ファイルシステムに対する wrapper。
      (実装上は circus-api, circus-cs-core がこれに依存)

2018-08-02 + 2018-08-06

開発者が作業に取り掛かるための敷居が高い。

  • プロジェクト同士の因果関係や変遷を掌握しづらい。
  • 実際に動作させるための手順が複雑?
  • 各プロジェクトの関連性を再整理
    • CIRCUS DB
    • CIRCUS RS
      • 最も低いレベル
      • ビューアー / エディター
      • 画像表示のためのコンポーネント
      • テキストにおけるメモ帳
      • イメージタグ(HTMLでいう)
    • CIRCUS RS (VR機能)
      • CSのフィードバック表示として使用する予定
    • CIRCUS CS
      • アプリケーション
      • クラサバアプリケーション
      • 部品
        • core
          • CAD=(プラグイン、現時点では)を実行するためのもの
          • キューの管理(プラグイン)
          • GUI一切ない
        • 監視
        • 監視
        • 表示
        • Feedback
        • データベース
    • circus-api
      • 権限モデルやログインは統一化
      • cs系コマンド
      • db (server side) + cs (server side)
      • circus-cs-core に依存
        • circus-cs-core は circus-dicom-repository に依存
    • circus-web-ui
      • circus-db-web-ui
      • cs系 今はない
        • とても古いCS (php, jquery, mysql)にはあった。
    • 部品
      • circus rs
        • browser 側
          • circus web ui に組み込む
        • server 側
          • circus api に組み込む
          • DICOMのsid -> 画像を読みだして meta, volume
          • 匿名化にも結果なっている
          • あくまで、ビューア機能のみ
    • circus-dicom-repository の分離
      • いろんな所から使用するため
      • バックエンド系

circus-dicom-repository

  • CS/DBをこれに依存する形にする
  • 書いてはある。

circus-rs

  • 昔のglmatrixをthreeに変える作業中
    • 塗り絵が壊れている?
      • 加納の分担
  • リポジトリの組み込み
  • 分担する ( circus-dicom-repository に依存させる形に書き換え ) > Ueda

circus api

  • ドキュメント
    • 現時点ではcircus db ものしかない

2018-07-23

  • 協力者候補 - uedamari0922@gmail.com

  • 開発対象リポジトリ

    • cs-core
    • cs-api - rs - rs-document - db-ui
  • テストについて

    • Wercker や Travis CI を使う
  • vscode

    • editor config 0.12 ...
    • prettier
    • (live sha)
    • (node language pack)
    • debugger for chrome
    • azure cosmos db
      • mongo db viewer
    • dicom tag dump
  • プラグインの異常終了の検知

    • 終了コードを確認する
  • 開発・試験用のデータについて

    • DICOM 画像、プラグインは DropBox で共有

2018-07-19

ジェニュインコーポレーション
19:15 - 20:00

現在の状況について

  • 性急なリリースが求められている
  • 今後のことも踏まえ、人手を増やすことも重要な課題である

直近のリリースに向けて

概して、磨く段階にある。

  • オープンソースでパブリックに公開
  • 実用に耐えるソースコード, ドキュメント, 安定性 - テストを付属させる
  • 主な作業 - バグ修正 - 機能の追加 - リファクタリング - テストの追加 - ドキュメントの整備
  • 指揮系統 - 三木先生から都度指示を受け、作業を行う。 - この体制での開発を実現するために、時間の共有を増やす。

将来の開発体制に向けて

  • github を中心とした開発
  • 人手の確保(協力者を増やす) - 加納の身内(姉)が候補 - 現時点では、最大で週に 30H 程度の作業が可能とのこと。 - まずはソースコードの共有を行う。 - 状況の共有 - 関連知識の収集

開発環境の構築について

  • 共用機材(サーバー)を用意して使用する - OS, ミドルウェア等 - Ubuntu - node (nvm) - docker - (mongo ?) - ssh server - git - samba - Network - local ip を割り当て (192.168.2.0/255.255.255.0) とか? - global ip を割り当てる
  • 共用のネットワーク内で作業を行う
  • 三木先生は、専用に PC を準備。

スケジュールについて

事前説明 2018 年 7 月 23 日(月) 午後~夜
事前説明 予備日 2018 年 7 月 26 日(木)
2018 年 8 月 6 日(月) 以降 三木先生
月曜日 10:00 - 20:00
火曜日 10:00 - 16:00
木曜日 10:00 - 16:00