PrimeKarte > PkBase > ForwardFileTool

概要 †

ファイル転送クラス
オーダに付随する画像やXMLデータをファイルサーバに転送します。
ジャーナルへはZIPファイルとして転送。 そこから発行データとしてもZIPファイル、カルテ参照用には展開して特定ファイル*1のみを転送。

↑

関数一覧 †

ConvRelativePathName相対パスリストを取得
CopyDirectoryフォルダごとコピー(サブフォルダ含む)
CreateDirectoryフォルダ作成
DeleteDirectoryフォルダごと削除
Execute転送処理開始
FileCopyファイルをコピー
FileFromArchive書庫ファイルを指定フォルダに展開
FilePathAddBackslashパス文字列の最後にバックスラッシュ付与。既にある場合は何もしない
FileToArchive書庫ファイルを作成
FileToServerジャーナルに転送
GetDirectoryLastNameフォルダの最後の階層の文字列を取得
GetFileIdStrファイル識別文字列の取得
GetFileServerPathファイル転送先パスの取得
GetForwardFileNameファイル保存先フォルダ名を取得
GetForwardFilePathファイル保存先パスを取得
GetKanjaIdFolder患者IDを15桁ゼロ詰めし、
先頭から3桁ずつの4階層のフォルダ文字列を取得。
例)KANJA_ID:1234567⇒000\000\001\234
GetStringFromStrArrayOrderBaseのStrListより取得
OutPutLogログ出力
ToDateTime日付オブジェクトへの変換
ToDoubledouble値への変換
ToIntint値への変換
ToStrstringへの変換
↑

使い方 †

※解説の中には、現在実装中のメソッドも含みます

↑

FileFromArchive †

ファイルサーバ上のZIPファイルを展開しつつ、ローカルにコピー

型変数名詳細
OrderBaseorderBase転送対象のオーダ情報
stringdestPath展開先パス⇒GetForwardFilePathで取得
ForwardFileKindflg解凍対象となるファイルタイプ
  1. orderBaseに最低限必要なパラメータ
    1. OrFilePath
    2. OrFileName
↑

GetFileServerPath †

サーバへの転送先ファイル名を取得

型変数名詳細
SortedList<int, object>filepathDocListFilepathDocのリスト。中身が無ければ関数内で読み込みます
ForwardFileff転送情報、取得するための情報を設定しておく
ForwardFileUseKinduseKind取得したいものの種別
  1. ffの設定内容
    1. セットの転送先を取得したい場合
      1. ff.HakkouDate = DateTime.Today;
      2. ff.OrderKindCodeStr = 対応したオーダ種コード
↑

GetForwardFilePath †

保存先パス名を取得

型変数名詳細
PkOrderKindorderKindオーダ種コード
ForwardFilePathTypepathType種別
↑

マスタ設定 †

FilepathDocを参照して、転送先マスタを設定

↑

記録系 †

  1. KarteCommonToolを用いた方法で実装済みなので、とりあえず説明は割愛
    ただし、基本は通常オーダ系と同じで、記録系は常にオーダ単位で処理が発生するが、通常オーダ系では、編集中のオーダ全てを処理するかの違いがあるだけです(たぶん)
    っていうか、記録系を解読しながら書いてるので、ほとんど同じなのは当たり前...
↑

通常オーダ系 †

  1. ジャーナルへ保存(OI_Save等でのジャーナル保存時)
    1. オーダNo未確定の場合は、OrderJournalDB.GetOrderNoList?よりオーダNoを取得
    2. 転送したいファイルを指定フォルダにコピー
      1. PkBase.ForwardFileTool.GetForwardFilePathによりパスを取得
        ジャーナル保存時はForwardFilePathType:New
        ⇒伝票行のOrderBase.OrFilePathにセット
      2. PkBase.ForwardFileTool.GetForwardFileNameにより、フォルダ名を取得
        ForwardFileFileKind:GlobalFileName
        ⇒伝票行のOrderBase.OrFileNameにセット
        ⇒転送ファイル名の基本部分になります
        ファイル名の命名規則⇒OR_MAIN.PAGE_INFO
      3. 上記で取得したものを繋げたフォルダ名をコピー先に指定してフォルダコピー
        ⇒PkBase.ForwardFileTool.CopyDirectory
        ※転送処理は、フォルダ単位で行われるため、その中のファイルの命名に関しては各々が判別できるように自由で
        ⇒カルテ参照や、レポート参照でも使用するため、ファイル名も規則に従って作成する必要があります
    3. PkBase.ForwardFileTool.FileToServer(下記の処理が自動で行われます)
      1. zipFlg:trueで、ZIPに圧縮
        ⇒他と動作を合わせるため、ジャーナルおよび、発行用データはZIP圧縮します
      2. ジャーナル用フォルダに転送
      3. 渡したOrderBaseのOrFilePath/OrFileNameが転送先情報に書き換わります
      4. New内の転送元データをフォルダごと削除
        ⇒PkBase.ForwardFileTool.DeleteFolder
  2. ジャーナルからの読み込み
    1. ジャーナルからオーダデータ読み込み時に、編集用にローカルにデータをコピー
      ⇒PkBase.ForwardFileTool.FileFromArchive
      OrderBase:orderBase
      destPath:WORK用パス
      ForwardFileKind:AllComplete
      ⇒PkBase.ForwardFileTool.CopyDirectory
      ※コピー元:OrderBase.OrFilePath + OrderBase.OrFileName
       コピー先:WORK用
  3. 発行(ここは、アプリからの制御)
    1. ファイル転送対象オーダチェック
      1. 文書系:ForwardFileGroup.Doc
      2. 記録系:ForwardFileGroup.Karte
      3. 上記2つとも:ForwardFileGroup.All
        ⇒画像検査ならカルテと同じ転送モードってことにするか?
    2. 対象オーダがあれば、ForwardFileTool.Execute実行⇒下記の処理が流れます
      1. 転送対象オーダ情報取得
      2. カルテ参照転送/アーカイブ転送は、どっかの設定から
        ⇒AppXmlProf.Instance.GetForwardFileConfig()._forwardKind
      3. BUMON_DENSO_FLG_05⇒「転送中」に

*1 png,txt,pdf,bmp

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS