taiho tlf automated tool」の紹介 - sas institute...帳票mockup...

35
帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール T aiho TLF Automated T ool」の紹介 ○伊藤衡気 1 、栗矢芳之 2 、銭本敦 2 (株式会社タクミインフォメーションテクノロジー 1 、大鵬薬品工業株式会社 2

Upload: others

Post on 07-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

帳票Mockup からのRTF用テンプレートSASプログラム自動作成ツール

「Taiho TLF Automated Tool」の紹介

○伊藤衡気1、栗矢芳之2、銭本敦2

(株式会社タクミインフォメーションテクノロジー1、大鵬薬品工業株式会社2)

Page 2: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

要旨:

Excelで作成したTLF Mockupから、

RTF出力用のSASマクロプログラムを、

自動で作成するツール、

「Taiho TLF Automated Tool (TTAT) 」を紹介する。

キーワード:RTF, VBA, 自動生成, TLF, 標準化, Mockup

2

Page 3: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

Agenda

1. Prologue : RTF帳票作成における問題点

2. Progress : TTATの機能について

3. Advantage : TTATによってもたらされるメリット

4. Presentation : DEMO

3

Page 4: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

1. Prologue

臨床試験におけるTLFの主流がExcelからRTFに移行した今、解析などの本質的な部分ではなく、見た目を整えるテンプレートプログラムの作成に時間をとられるという問題が生じている。

一度テンプレートプログラムを作成しても、列を追加するなど細々した修正が入ることも多々有り、手間がかかる作業となっている。

4

Page 5: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

RTF作成フロー

ADaM

5

MockUp

(帳票案)

RTF解析帳表

解析プログラムレイアウト設定

プログラム

解析結果

データセット

解析プログラム

仕様書

Page 6: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

proc template ;

define table RT11421010TFAS2 / store = work.TEMPLATE(UPDATE) ;

style = { rules=rows frame=hsides } ;

cellstyle _ROW_ in(&IND_01.) and _column_=1 as Cell{leftmargin= .5cm}

, _ROW_ in(&IND_02.) and _column_=1 as Cell{leftmargin= 1.0cm} ;

* title and footnote;

title1 font= 'Times New Roman' height=9pt j=l "&THPRJNO. Protocol &THPTCNO." j=r "&timehead. Page ^{thispage}";

title2 font= 'Times New Roman' height=9pt ' ' ;

title3 font= 'Times New Roman' height=9pt j=c 'RT1-1421-010T-FAS-2' ;

title4 font= 'Times New Roman' height=9pt j=c 'Best Overall Response (Indepedemt Review Committie)' ;

footnote font= 'Times New Roman' height=9pt j=l "Program Name : &pgname." j=r "User ID : &THID." ;

* header ;

header Header1 Header2 Header3 Header4 Header5 Header6 Header7 Header8 ;

define header1 ; text " " ; just=l start=&THVAR01. ; end = &THVAR01. ; split="@"; end ;

define header2 ; text "&TNVAR01." ; just=c start=&THVAR02. ; end = &THVAR02. ; split="@"; end ;

define header3 ; text "&TNVAR02." ; just=c start=&THVAR03. ; end = &THVAR03. ; split="@"; end ;

define header4 ; text "Test" ; STYLE={BORDERBOTTOMWIDTH=1pt };just=c start=&THVAR04. ; end = &THVAR04. ; split="@"; end ;

define header5 ; text " " ; STYLE={BORDERBOTTOMWIDTH=1pt BORDERTOPCOLOR=white};just=l start=&THVAR01. ; end = &THVAR01. ; split="@"; end ;

define header6 ; text 'N (%)' ; STYLE={BORDERBOTTOMWIDTH=1pt BORDERTOPCOLOR=white};just=c start=&THVAR02. ; end = &THVAR02. ; split='@'; end ;

define header7 ; text 'N (%)' ; STYLE={BORDERBOTTOMWIDTH=1pt BORDERTOPCOLOR=white};just=c start=&THVAR03. ; end = &THVAR03. ; split='@'; end ;

define header8 ; text "P Value *" ; STYLE={BORDERBOTTOMWIDTH=1pt };just=c start=&THVAR04. ; end = &THVAR04. ; split="@"; end ;

* body ;

column &THVAR01. &THVAR02. &THVAR03. &THVAR04. ;

define &THVAR01. ; print_headers=off ; style={width=166.6pt just=l BORDERTOPCOLOR=white } ; end ;

define &THVAR02. ; print_headers=off ; style={width= 99.0pt just=c BORDERTOPCOLOR=white } ; end ;

define &THVAR03. ; print_headers=off ; style={width= 99.0pt just=c BORDERTOPCOLOR=white } ; end ;

define &THVAR04. ; print_headers=off ; style={width= 77.5pt just=c BORDERTOPCOLOR=white } ; end ;

* footer ;

footer footer1 footer2 ;

%if &last.=1 %then %do ;

define footer1 ; text "Analysis Set: FAS" ; style={just=l borderbottomstyle=none } ; split='@'; end ;

define footer2 ; text "*:Fisher's Exact Test" ; style={just=l borderbottomstyle=none } ; split='@'; end ;

%end ;6

テンプレートプログラム例(一部)

Page 7: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

[ 必須の作業 ]

テンプレートプログラム作成作業 x 帳票数

[ それに加え… ]

随時(主に終盤で)入る細々した修正

→ プログラムの修正、Mockupの修正

この作業量を減らすことができれば

より早く、質の高い結果を出せるのではないだろうか

7

Page 8: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

2. Progress

8

Excelで作成されたMockup(帳票レイアウト)から、

VBAでレイアウト情報を読み取り、

RTF用テンプレートSASプログラムを

自動で作成するツール

「Taiho TLF Automated Tool (TTAT)」を開発した。

Page 9: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

RTF作成フロー

ADaM

9

MockUp

(帳票案)

RTF解析帳表

解析プログラムレイアウト設定

マクロプログラム

解析結果

データセット

解析プログラム

仕様書

Automated!

Page 10: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

Mockupから自動でSASテンプレートマクロプログラムを作成

10

Page 11: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

マクロパラメータ生成例

11

Page 12: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

マクロパラメータ

• THDATA : 入力データセット

• THPAGE : 改ページ制御

• TNVARXX : Headerに示す文字列(N=xxなど)

セルごとに作成

• THVARXX : Body各列に示す文字列

列ごとに作成

• THIND : インデント制御

※ XXは 01 , 02 といった通し番号12

Page 13: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

マクロパラメータに入力データセット名、変数名を設定

13

Page 14: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

14

RTF生成イメージ

Page 15: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

Mockupから自動でSASテンプレートマクロプログラムを作成

15

Page 16: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

sas.addline "proc template ;"

sas.addline " define table " & TLF_pgmName() & " ;"

sas.addline " style = { rules=rows frame=hsides } ;"

sas.addline " "

sas.addline " cellstyle _ROW_ in(&IND_01.) and _column_=" & getIndentColumn() & " as Cell{leftmargin= .5cm}"

sas.addline " , _ROW_ in(&IND_02.) and _column_=" & getIndentColumn() & " as Cell{leftmargin= 1.0cm} ;"

sas.addline " "

sas.addline "* title and footnote;"

sas.addline " title1 font= 'Times New Roman' height=9pt j=l ""&THPRJNO. Protocol &THPTCNO.""" _

& " j=r ""&timehead. Page ^{thispage}"";"

sas.addline " title2 font= 'Times New Roman' height=9pt ' ' ;"

sas.addline " title3 font= 'Times New Roman' height=9pt j=c '" & getTLF_No() & "' ;“

sas.addline " title4 font= 'Times New Roman' height=9pt j=c '" & getTLF_Title() & "' ;"

sas.addline " footnote font= 'Times New Roman' height=9pt j=l ""Program Name : &pgname.""" & " j=r ""User ID : &THID."" ;"

sas.addline " "

sas.addlines HeaderDefinition() ' Header定義

sas.addlines BodyDefinition() ' Body定義

sas.addlines FooterDefinition() ' Footer定義

sas.addline "end ;"

sas.addline “run ; “ 16

VBAの一部

Page 17: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

17

帳票レイアウトから取得する情報

Page 18: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

18

・帳票番号・帳票タイトル

Title

Page 19: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

文字列を取得しtitle定義文を生成

19

Page 20: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

20

・範囲 (列数、行数)

・文字列・セルの結合 : [セルを結合して中央揃え]、[選択範囲で中央] ・罫線・文字配置 : 左寄せ、中央寄せ、右寄せ・インデント段数

Header

Page 21: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

21

① ② ③④ ⑤ ⑥

Headerを左から右にセルの情報を取得し定義文を作成最終列に到達したら次の行の左端から続行

②①

Page 22: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

22

・列数・各列の幅・各列の文字配置・インデントの有無

Body

Page 23: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

23

各列ごとに定義文を作成1行目から幅の割合と文字配置情報を取得

① ② ③

①②③

Page 24: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

24

・開始行・最終行・文字列・インデント段数

Footer

Page 25: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

25

文字列を取得しtitle定義文を生成

Page 26: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

26

生成されたテンプレートプログラムの一部

Page 27: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

27

ページごとにHeaderの文字列が変化する帳票

Page 28: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

該当セルのアドレスを示すことで、定義文にマクロ変数が入力される

28

Page 29: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

Headerに表示したい文字列を格納した変数を作成

29

1ページ目のHeaderに表示される文字列

2ページ目のHeaderに表示される文字列

Page 30: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

出力結果1ページ目

30

Page 31: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

31

出力結果2ページ目

Page 32: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

Mockup作成時の主な制約

• タイトルの位置は固定

• 縦線、斜線は対応していない

• Body内の罫線は対応していない

• Bodyのインデントは1列のみ対応

• 列は30列まで

32

Page 33: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

3. Advantage

33

・ テンプレートプログラム作成の手間自体が大幅に減少

・ 細々とした変更にも簡単に対応可能

・ Mockupの編集がSASプログラムに反映されるためMockupとRTFテンプレートの差異の予防にも

・ 大鵬薬品工業の全テーブル、リストに対応

Page 34: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

4. Presentation

34

DEMO

Page 35: Taiho TLF Automated Tool」の紹介 - Sas Institute...帳票Mockup からのRTF用テンプレート SASプログラム自動作成ツール 「Taiho TLF Automated Tool」の紹介

最後に

35

SASの可能性は

新しい技術の分野は言うまでも無く

TTATで用いたVBAなど

よく知られた既存の技術の中にも

まだまだ広がっています

本プレゼンテーションがその一例となれれば幸いです