レポートの開発
このトピックでは、オーバーライド可能な API を拡張して、改訂不可能な承認申請と改訂可能な承認申請用に人間が読み取れる承認申請レポートを生成する方法について説明します。
ソリューション
• generatePrimaryContent メソッドをオーバーライドするカスタム承認申請プロセッサクラスを作成します。
• 人間が読み取れるカスタムレポートの生成を実装します。
• カスタムクラスを登録する services.xconf エントリを作成します。
ソリューションエレメント
次のテーブルで、ソリューションエレメントについて説明します。
エレメント
|
タイプ
|
説明
|
RegulatorySubmission generatePrimaryContent(RegulatorySubmission regulatorySubmission)
|
API
|
|
この API は廃止予定であり、今後のリリースで除去されます。
|
承認申請のプライマリコンテンツを生成します。
|
RegulatorySubmission generatePrimaryContent(RegulatorySubmission regulatorySubmission, boolean draft)
|
API
|
承認申請のプライマリコンテンツのサンプルを生成します。
|
デフォルトの動作
デフォルトの動作では、承認申請のプライマリコンテンツ用の PDF レポートが作成されます。Draft パラメータが TRUE に指定されている場合、作成されたレポートの各ページに DRAFT ウォーターマークが設定されます。
承認申請のプライマリコンテンツ属性は、人間が読み取れるレポート用に予約済みです。デフォルトの動作では、PDF レポートが作成され、承認申請のプライマリコンテンツとしてレポートが関連付けられます。「レポートの画面レイアウト」画面タイプによって、人間が読み取れるレポートに表示される属性のフォーマットが決まります。「レポートの画面レイアウト」が使用できない場合、人間が読み取れるレポートには「プライマリ属性」レイアウトと「その他の属性」レイアウトの値が使用されます。このレポートには、承認申請に関連付けられている、定義済みの「テーブルデータ」、「件名」、「ドライバー」も含まれます。
デフォルトの実装は、デモと説明のみを目的としています。ただし、一部のタイプの承認申請では、人間が読み取れるデフォルトのレポートが適している場合があります。あるいは、インプリメンターは機関から提供されているドキュメンテーションと一致する、申請固有の、人間が読み取れるレポートを作成できます。
カスタムクラスの作成
プライマリコンテンツの生成をカスタマイズするには、SimpleRegulatorySubmissionProcessor または適切な改訂可能なサブタイプポピュレータを拡張する Java クラス (独自のプロセッサ) を作成してから、generatePrimaryContent メソッドをオーバーライドします。改訂可能なサブタイププロセッサには、AERSubmissionProcessor、ERSubmissionProcessor、RPSSubmissionProcessor、UDISubmissionProcessor などがあります。承認申請に関連付けられているプライマリコンテンツの PDF レポートをカスタマイズするには、カスタム申請プロセッサクラスの generatePrimaryContent() メソッドをオーバーライドします。
次の例は、generatePrimaryContent メソッドがオーバーライドされた新しいカスタムクラスを示しています。
public RegulatorySubmission generatePrimaryContent(RegulatorySubmission regulatorySubmission, boolean draft) throws Exception {
String fileName = "RegSub_Report.pdf";
// This method will get all the primary contents form the Regulatory Submission and create a formatted output for storing.
InputStream in = generatePDF(regulatorySubmission);
// This method will get the formatted output and check all the validations to store the PDF report as Primary content.
RegulatoryContentHelper.getService().storePrimaryContent(regulatorySubmission, in, fileName);
return regulatorySubmission;
}
}