PrimeKarte > PkReport
概要 †
各種ツールを用いて、各種印刷物を出力します。
ソース †
- PkReport
帳票の印刷、値設定を行っています。
- PkReportFile
レポートファイルがあります。
- PkUtility
一括発行ダイアログがあります。(IkkatsuHakkouDialogForm.cs)
- PkEnum
帳票コードの定義があります。(Enum.cs PkChohyoCode)
新たに帳票を作るとき †
- レイアウトを確認しましょう。
用紙サイズ、使用するプリンタ等
- どの操作から印刷を行うか確認しましょう。
オーダ発行時に印刷するか。→発行オプションはどうするか
指示歴から印刷するか。
あるボタンから印刷するか。
- 帳票コードの採番
→PkEnum.PhChohyoCodeに定義を追加
- 帳票マスタの作成
→CONTROL[00020017][00020018].CODE=帳票コードレコードの追加
- レポートファイルの作成
→PkReportFileプロジェクトで行います。
- 印刷処理の実装
→PkReportプロジェクトで行います。
データ取得SQLについて †
オーダ発行時と指示歴からの印刷の場合は共通処理でKANJA_IDとGROUP_NO指定となりますので基本ORDER_JOURNALテーブルからデータを取得します。
他の場合は各トランザクションテーブルからデータを取得します。
例えばオーダ発行時と部門システム両方から印刷を行いたい場合はSQLを2種類用意する必要があります。
例:処方箋のデータ取得SQLは3種類ある。
- 08210007.sql:ORDER_JOURNALを使用しています。オーダ発行時と指示歴からの印刷用
- 08210042,43.sql:SHOHO_DENPYO等を使用しています。部門システムやボタンからの印刷用
帳票ファイル名命名規則 †
こちら
設定ファイル †
- Config(0821.xml)
関連マスタ †
- CHOHYO
帳票マスタ(1帳票に必ず1つ)
- REPORT
印刷情報マスタ(1帳票に複数)
- TANMATSU_CHOHYO
印刷先プリンタ情報マスタ
- DOCUMENT_SETTINGS
汎用印刷情報マスタ
関連もの †
- 各種帳票印刷ダイアログ
- テスト印刷アプリ
- 一括発行ダイアログ
- 病棟一括印刷
- FAX送信
印刷ログ †
正常終了するとPrimeKarteのLogには以下のように残ります。
--印刷先取得
15:38:58.488 [ INFO]PK - RptCommonTool - 【SosaPrint.SetChohyoCode】810001の印刷先情報の取得開始
15:38:58.503 [ INFO] - - 【SosaPrint.SetDefaultValue】new PrinterSettings() 開始
15:38:59.042 [ INFO] - - 【SosaPrint.SetDefaultValue】new PrinterSettings() 終了
15:38:59.042 [ INFO] - - 【SosaPrint.SetDefaultValue】SJ17077
--印刷処理
15:38:59.146 [ INFO]PK - RptCommonTool - 【SosaCrep】印刷キュー開始 帳票コード:810001
15:38:59.146 [ INFO]PK - RptCommonTool - 【CrpeThread】印刷スレッド開始(PrintToPrinter) 帳票コード:810001
15:39:00.425 [ INFO]PK - RptCommonTool - 【CrpeThread】印刷開始(PrintToPrinter) 帳票コード:810001 プリンタ:Microsoft Print to PDF
15:39:04.583 [ INFO]PK - RptCommonTool - 【CrpeThread】印刷終了(PrintToPrinter) 帳票コード:810001 プリンタ:Microsoft Print to PDF
主に使用する用紙サイズとコードの対応表
プリンタについて †
- ページプリンタ
一般的なA4プリンタです。トレイを変えてA5やB5等も印刷します。
- ラベル(チビ)プリンタ
- Star TSP700 Raster Printer
主にオーダ控え等シールで使用されています。
設定手順
フォルダ:\\eagle01b\SEC2\作業履歴\kawamura\11_セットアップ\ラベルプリンタ設定\TSP
- ip-66 SATOレスプリ
主に注射ボトルラベルで使用されています。
設定手順
フォルダ:\\eagle01b\SEC2\作業履歴\kawamura\11_セットアップ\ラベルプリンタ設定
ファイル:ip-66設定手順.xls
- NEC MultiCoder
BSN様案件のシール印刷で使用されています。
プリンタドライバ
フォルダ:\\eagle01b\free\113301\作業用\NEC MultiCoder 502L
設定手順
フォルダ:\\eagle01b\SEC2\作業履歴\kawamura\11_セットアップ\ラベルプリンタ設定
ファイル:NEC MultiCoder 502L3.xlsx
各オーダ種トピックス †
特に作業の多い帳票です。
処方 †
処方箋 †
- 処方箋は種類がたくさんあります。帳票一覧で確認して下さい。
- データ取得SQLは08210012,08210042.sql,08210043.sqlの3種類あります。(オーダ発行時と部門発行時で異なります。)
院外処方箋(帳票コード:110006) †
- 病院の名前や電話番号をレポートファイルに直書きしているところもあります。
- 基本全病院分のレポートファイルがあります。
再診予約 †
予約票(帳票コード:810001) †
- A4,A5用があります。(メインはA5)A5→A4にしたい場合は拡大縮小ではなくレポートファイルを作り直しています。
- 病院の名前や電話番号をレポートファイルに直書きしているところもあります。
- データ取得SQLは08210012,08210013.sql,08210050.sql,08210114.sqlの4種類あります。(オーダ発行時と期間選択、一括印刷等で異なります。)
- 発行オプションに表示するかどうかはオーダ種マスタで制御しています。
- 予約票に印字するオーダ種はSELECT_USER_FLGTBLのCONTROL_CODE=8210001にあるオーダ種です。これは受診案内と共通です。
受診案内(帳票コード:810015) †
病診連携 †
診療情報提供書(帳票コード:3110001) †
- 病院の名前や電話番号をレポートファイルに直書きしているところもあります。
- 印刷枚数は0821.xmlで制御しています。(DispOrder=9079,9084-9086)
- 左上の宛先情報は窓あき封筒に収まるようにしています。病院名や住所は文字長さによってフォントサイズを変える処理を行っているところもあります。(レポートファイル上で制御)
- 印刷処理はオーダ発行時、ファンクションメニューの印刷プレビュー、部門印刷時からで異なります。修正が発生した場合は各操作から動作確認を行ってください。
バーコードタッチリーダについて †
- 型名:FMV-BCR212
- 設定シートはこちら →
bar-code-menu.pdf
- バーコードを読み込んだ値の最後に6がついてしまう現象について・・・。
→ 設定シートの出力バーコード種別(読み取りコード番号)を「出力しない」に設定してみましょう。
ロゴの表示 †
※下記の方法は、もっといい方法が発見されたため、お蔵入りです
C:\Program Files\PrimeKarte\Report\LOGOフォルダ内(固定)にBMPファイルを置くことで、帳票にロゴを表示させることができる。
ファイル制御 †
- C:\Program Files\PrimeKarte\Report\(病院コード)\LOGO内のBMPファイルを検索
- ファイルが存在すれば、C:\Program Files\PrimeKarte\Report\LOGOにコピーして終了
- C:\Program Files\PrimeKarte\Report\000\LOGO内のBMPファイルを検索
- ファイルが存在すれば、C:\Program Files\PrimeKarte\Report\LOGOにコピーして終了
目的 †
- 各病院で、固定のロゴ等を帳票に印字したいという要望に対応するため。
- 使用するイメージファイルパスを動的に変更することが現状、困難なため
⇒内部的に使用しているDataset変更により可能らしいが、この変更による
他の帳票への影響が【計り知れない強さです】
- ロゴ表示の要望が無い環境で、前回のイメージが表示されないように、
デフォルトで病院コード000のものを使用。
⇒上記より、000フォルダには、何も描画の無いイメージを入れておくこと
⇒デモでイメージを貼ることを考慮すると、まったく別のフォルダを
デフォルトとした方が良いかもしれない(別途相談)
使用BMPリスト †
ファイルが存在すれば、規定の位置に配置されます
| 帳票名 | ファイル名 | 用途 |
| 予約票 | LOGO_SMALL.bmp | 帳票の左上に、ロゴとして |
PDF出力 †
2パターンの出力方法あり。しかし、1パターンのみしか使わないと思う。
- 0821.xmlのRptReportPdfPrintFlg(9051)に1を設定する。
印刷物が容赦なくPDFで出力される。
おまけに出力PDFが表示される。
出力PDFは、『C:\CRP\帳票名称\YYYYMMDD_印刷カウント』で保存される。
デフォルトプリンタによっては出力されない場合もあり。
テスト用にしか使えない。。。
- SosaPrintのプロパティに設定する。
指定ファイルパス・ファイル名称でPDF出力ができる。
読影レポートで必要になったために実装してみた。
| プロパティ | 型 | 詳細 | 備考 |
| PdfFlg | int | PDF出力フラグ | 0:通常印刷/1:PDF表示 |
| FilePath | string | 保存先パス | |
| FileName | string | ファイル名称 | |
| StartPdf | bool | 出力後に表示・非表示の設定 | true:表示/false:非表示 |
QRコードの印刷 †
なんとなくやってみたらできたっぽい。。。
やり方としては、クリレポに【BlobFieldObject】を貼り付けてデータを入れるだけでできるっぽい。
- RptDataset.xsdに DataType ⇒ System.Byte[] を追加。(Name ⇒ BLOB にしてみました)
- クリレポに BLOBを貼り付ける。
- DataRowオブジェクトにバーコードデータを入れる。
☆↓サンプル↓☆

※ヘッダー部以外では印刷されない。
フッター部に印刷する場合はサブレポートを貼り、その中のヘッダー部にBLOBを貼り付ける。