みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
クロス集計その物ですね。そのキーワードで検索されれば、色々と見つかると思います。
有難うございます。
クロス集計ですね。やってみます。
すみません補足です。
必要な項目は PatientID PatientName Sex Birthday CreateDate AnswerText でAnswerTextのラベルとしてMessageを使用したいです。
ご無沙汰しております。
職場の異動があり、FMから少し遠ざかっておりました。
知らぬ間にFM15が発売されたのですね。
ただ今試用期間で使っております。
CSVからの取り込みが綺麗に行えるとのことでFM15をMACで使用しています。
さて、本題ですが
「IPADで作成した問診票があります。このデータを研究で解析が可能な並び方になるように並べ替えたいです。」
ただ、このソフトの問題で出力されるCSVは1つの設問で1行、つまり同じ患者さんの問診項目が30行〜35行くらい並ぶ形になります。
そのフィールドとなる項目は以下のとおりです。
AnswerID CreateDate TemplateID TemplateName PatientID PatientName Sex Birthday GroupID QuestionNo Name Type IsOptional Message AnswerValue AnswerText
これ関しては無事インポート出来ました。
患者の属性として PatientID PatientName Sex Birthday があり、これを1つのレコードの先頭に配置し、
設問に関するIDがGroupIDに入っており、 74種類のID番号(G01,G01Z,
G02,G03,1・・・・・・)が振られています。
患者さんのスポーツ活動や疼痛の部位が多くある人には設問が多くなり、箇所が少ない方には設問が少なくなります。
そしてこれを、GroupIDに入っている値を横列に並べ、その設問の回答をAnswerTextその下に配置したExcel形式で出力したい。
のです、PatientIDで自己リレーションをさせて、ポータルにGroupID、Message,AnswerTextを表示させれば、1人づつFilemaker上で表示させることは可能でしたが、
これを綺麗なExcel生成して出力することは出来るものでしょうか?
アドバイスいただけましたら幸いです。
http://firestorage.jp/photo/c09a3a93527 … fc8dfe8b70
上記URLにポータルの画像をアップしております
よろしくお願いします
チポさん、FM12始人さん
すみません。返信いただいていたのにリアクションしておらず申し訳有りません。
職場の異動などが御座いまして、バタバタしており月日が流れてしまいました。
コメントありがとうございました。
集計結果をどのように表示したいのか分りませんが、
集計一覧をご希望でしたら、
小計パートを使った、集計レイアウトとか、
日ごとをレコードとした別テーブルで集計とか考えればいいですね。
ありがとうございます。
まずは、求めたい数字が見ることが出来ました。
仰られたCount(自己リレーション::区分)の方法で見ることが出来ました。
この方法法ですと、リハ1の患者さんのレコードならばリハ1が何人と見れますが、リハ3の場合の方までレコードを移動させないと見れない其の集計が
見られないため、不便な方法なのだと分かりました。
出力したい形式としては出来れば、レポート形式がベストです。
新規レイアウト/レポートでも試してみたものの、どのように設定をすれば良いか分からず、
求めたい数字が現れてきませんでした。
今現在は、受付票自体の検索機能に本日の日付、リハ1、リハ3、消炎と検索を入れレコード数を左上の数字メモしている
ようなアナログ手法であります。
いつもお世話になっております。
Filemaker Pro14 Macです。
受付テーブル
にフィールドが以下の様に有り
ーーーーーーーーーーーーーーーー
日付
ID
氏名
リハ区分(1,3、消炎)
ハリ本数
リハ1小計
リハ3小計
消炎小計
総人数
ーーーーーーーーーーーーーーーー
毎日の集計業務として、
日付ごとに総人数、リハビリ区分の内訳(Countifのように1,3,消炎ごとの小計)、ハリ合計本数、ハリ実施人数を
求めたいです。
自分なりに調べた方法で、自己リレーションを使用し、
日付
リハ区分
でリレーションをしてみました
リハ1小計のフィールドを計算で指定し、計算式をcount(リハ区分)
リハ3小計のフィールドを計算で指定し、計算式をcount(リハ区分)
消炎のフィールドを計算で指定し、計算式をcount(リハ区分)
ハリ本数のフィールドを計算で指定し、計算式をSum(ハリ本数)
ハリ実施人数のフィールドを計算として、計算式をcount(ハリ本数)
総計のフィールドは集計として、計算してみました
結果は、お察しの通り・・・。
皆様のお力お貸し頂けましたら幸いです。
横からですが、URNについての補足。
"urn:ietf:wg:oauth:2.0:oob"は、URNスキームに基づくURIの一種で、locationではなくnameによる識別子を提供します。
URNは左から素直に読んでいけるので、「IETFのoauth2ワーキンググループのOut-Of-Bandな通信」と考えれば、意味合いが通ると思います。
honda様
ほうほう。初めて聞く言葉がたくさんあって調べてみました。
そういった意味なのですね。
有難うございます。
質問なのですが、「承認」のスクリプトのリダイレクトURIのurn:ietf:wg:oauth:2.0:oob
というのは自動で設定されたものではないですよね?ブラウザでコードを表示したい場合は、「urn:ietf:wg:oauth:2.0:oob」で、
WEBサーバーで コード を受けたい場合は、「localhost:8080」(サーバー/ポート)です。
そういうことだったんですね。
勉強になります。
urn:ietf:wg:oauth:2.0:oobを検索すると
C言語の所に辿りつけました。
勉強になります。
以降のスクリプトはかなり高度で、既存のファイルに移植するのは断念して、
異なるファイル間での複数データ受け渡しのページを参考にさせて頂きまして、
利用させていただこうと思います。
qb_dp 様ならh ttp://www.seedcode.com/filemaker-calendar/のレベルまで作り込めるんでしょうね。
勉強します。
qd_dp様
http://qbxxdp.blogspot.jp/search/label/ … 20Calendar
上記は、サンプル作ろうと思って放置状態でしたね.....。サンプルを作成しました。※時間の都合でかなりザツです。
FileMakerからGoogle Calendarへイベントの「insert」と「update」が可能です。Mac、Win、iOS で動作します。
https://sites.google.com/site/scriptmak … dar-api-v3
誠に有難うございます。
雑じゃないです!無事リフレッシュトーク取得ができて無事書き込めました。
海外サイトで
h ttp://www.modularfilemaker.org/module/filemaker-google-calendar-api/
で同様のサンプルがありまして、英語を訳しながら勉強していたのですが
どうもリダイレクトURIの取得方法が問題合ったようで
http://localhost:8080/oauthcallback/
と設定して認証画面まで至るようにはなったのですが、
localhost:8080が拒否されましたと表示されてしまいリフレッシュトークンが取得できず、
ポートが悪いのかなど散々悩んだりプロジェクトから作りなおしたりとしてみましたが
ほんとうに嬉しいです。
質問なのですが、「承認」のスクリプトのリダイレクトURIのurn:ietf:wg:oauth:2.0:oob
というのは自動で設定されたものではないですよね?
認証キー画面の呼び出し方法が合ったんだとすごい勉強になりました。
ざっと弄ってみてまた質問させていただきます。
いつも勉強させて頂いていおります。
どんな参考図書よりこちらのエキスパート皆様のアドバイスが一番学習になります。
WindowsのFM14 に関して他の方が上げたスレッドがありますしたが、なかなかレスポンスがつかず新規に立てさせて頂きました。
MAC FM14PROを使用しています。
目的は「リハカルテに予約管理機能を実装したい」しかも、「月1度しかこない患者さんからの予約、毎日来る患者さんの予約までを
20分単位かつ担当セラピストの色分けしたカレンダー表示がしたい。」という思いのもと、
Googleカレンダーで行えれば、他部門の下の階の会計の電話に予約取得の連絡が来ても対応ができるな思いまして
この方法を選択させて頂きました。
しかしながら、参考図書も皆無なうえ,ネット上にもほとんど情報がなく、Windowsの情報とは知っていても
qdxxdp様の情報以外見当たりません。
こちらを参考に推し進めてみましたが当然ながら上手く行かず。
http://qbxxdp.blogspot.jp/search/label/ … 20Calendar
Google Developers Consoleより「クライアントID」と「クライアントシークレット」が取得
をし、参考URLに書かれている内容に準じて進めてみました。
スクリプトワークスペースに
■アプリの利用許可~承認コードの取得
→404エラーでそもそもはじめから・・・。URLの指定が上手くいかず。。。。
イベント追加の項目の
"data:text/html;charset=utf-8," & POST_jQuery::Script ←ここのぶぶんでPOST以下のフィールドが見つかりません。となるので???
そもそも、根本的にこの方法はMACでは出来ないのか?と思い、
qbxxdp 様が作られた
Gcalenderを使ってみたりとしてみました。
「クライアントID」と「クライアントシークレット」入れ、
承認の画面までは行くのですが、その先が
localhost:81 のサーバへの接続を確立できませんでした。
となりますので、
手動でgOauthCodeを取得し、コピー&ペーストして
リフレッシュトークンをさせるも。
?gError
ここでようやく、PowerShellを利用されたScript Maker plugin for windowsとしっかりと書かれていまして。
またこれもWindowsの方法だと気が付きました。。。。
macユザーに対してのFilemakerとGoogleカレンダーの連携ついて書かれている所は日本語サイトではほぼ無く、
海外のサイトで有料で販売している物以外探しだすことが出来ませんでした。
こうすると出来るよなど参考になるサイトなど何か突破口となる方法、手段についてヒントを頂けますと大変助かります。
宜しくお願いいたします。
かわさんすみません。
スレ汚し失礼致します。
私も同様の方法を探しておりました。
Macに関する方法をご存知でしたら教えてほしいです。
私も同様のことで悩みました。
結局、フォントの問題と判断して
ラベル屋さん9というシールメーカーが出しているソフトを利用して
作成しています。
Excelでのインポートが可能ですので、FilemakerでExcel形式でエクスポート、
その後ラベル屋さんでインポートという方法で運用しています。
目星が付いているならやってみれば良いのでは?
not IsEmpty ( 画像1 ) or
not IsEmpty ( 画像2 ) or
not IsEmpty ( 画像3 )単純に空ではない = オブジェクトが入っているだろう解釈で。
計算式が真か偽を問うだけなので、フィルタ条件が分岐しなければ If や Case は不要です。
勿論、やってみておりますが思いつかなかったのです。
お手数おかけしてすみません。
not IsEmptyという使い方があるのですね
勉強になりました。
無事出来ました。ありがとうございます。
いつも大変お世話になっております。
リハカルテ作製に皆様のご協力でかなり良い物が出来ました。
患者の傷などの写真をカルテの画像置き場に保存しておいて、
時間経過を追えるようにしたいと思っています。
患者情報テーブルとリハカルテでリレーションを組んでおります。
(詳しくはhttps://fm-aid.com/bbs2/viewtopic.php?id=4105)
カルテに画像置き場用のフィールドを3つ作りました。
フィールド名は
画像1
画像2
画像3
としております。
ポータルをサルネーム表示させて、その画像を1つを見れるようにしたいのです。
表示項目は
リハカルテテーブルの
日付
画像1
画像2
画像3
の4項目を表示させました。
このままでは、来院した全部の日にち分ポータル表示に乗ってしまいます。
(何も入力されていないのが沢山羅列されてしまう)
ですのでポータル設定からフィルターに計算式を入れて、
「画像1,画像2,画像3のいずれかのフィールドにオブジェクトが入力されているレコードのみを抽出して表示(空白以外のレコードを抽出して表示)」
させたいです。
使用する関数の目星としては
IF(IsEmpty)??
Case関数??
そして、以前たしかチポさんが回答してらしゃった
空白、または空白、または空白ではないフィールドの検索
http://www.filemaker.com/help/14/fmp/ja … tml#486515
が近いのか?など考え
等色々頑張ってみたものの挫折しております。
また、ヒントとアドバイスを頂けますと幸いです。
>shinさん
やはりそうだったんですね。
流石ですね。レセコンと繋ぐまでなるとかなりの労力が掛かりそうですね。
勉強になります。
アナログな手法ですが、患者属性についてはCSV形式で吐き出させて、
部門のみで使用している状況です。
レセコンのデータまで同期するのはハードルが高いのと何か合っては行けないので
やめておりました。
また、色々とお世話になります。失礼します
>Shinさん
これは凄いですね。
インターフェイスをタブレット用にして患者マスターの部分を
住所・生年月日・年齢・傷病名・疾患別起算日・早期加算終了日(+14日)・算定上限日数(+150日)
などを入力できるようにしてあげて、
スケジュールの部分をタブレット端末対応にして、予約管理画面と実施登録を別にしておいて、
予約をそのまま実施登録として載せられるようにして、
カルテ部分をオブジェクトを保存できるようにしたら、これ売り物になりますよ?
しかも、この分野のソフトウェアってもの凄く高額なんです。
ベッド管理などのファイルメーカーソリューションは販売されていますが、
このリハビリテーション系のシステムは皆無なんです。
だから、私も自分で作っているのですが、一番安かった、外注のシステムでも150万前後ですから、これに公的な書類関係の作成機能を付随させれば売れるますよ。
ユザーは完璧な公文書まで作成できる管理システムを利用する高額なシステムを欲する人たちか、基本的なカルテの部分以外は要らないという2通りに別れるはずです。
カルテの3原則の遡って編集削除などさせないようにアカウント設定は必須になりますが、大変優秀なシステムになりうると思います。ぜひ、Pro14のWebdirect機能などを実装させて破格の値段でシェアウェアなんかでカスタマイズフリーで送り出せばいいと思いますよ。
色々ありがとうございました。
>チポさん
自己解決出来ました。単純にポータルに表示する項目をもう一つ増やして、患者名を表示させれば良いだけでしたね。
これは便利!
一日の始まりにインポートの作業をするボタンさえ配置でもしておけば特に気にせずに利用できました。
最初の質問に
1日の時間割のような表
こう書かれていましたから、
1日を1レコードのテーブルを前提として話してきましたよ。ですからリレーションは日付で照合ですね。
ありがとうございます。
すみません。私の方で勝手に勘違いをしていました。
リハカルテテーブルとリハカルテのテーブルオカレンスを日付とK_日付(グローバル格納)をリレーションさせて、
日付の部分にインポート作業で全置換した日付を入力することで時間を表示させることに成功しました。
此処からが苦戦をしまして、左側に配置したポータルには担当者Aさんだけを表示させたくて、
ポータル内のフィルターを利用して担当者名を入れて、見たところ無事成功しました。
関連レコードへ、移動するスクリプトを作成して間違いなく飛べるようになりました。
この先、入力済みの部分に目印ないし、患者名を表示させようかと思ってみましたが
そこでまた躓いてしまいました。
チポさんのおかげで地道に基本的な使い方が分かってきました。
今ひとつヒントの方よろしくお願いします。
リハカルテ側に、患者マスターから名前をルックアップしておき、それを Lookup() 関数で取込めば良いですよ。夕方までには、サンプル修正してみます。
恐れいります。
LookUpですね。承知いたしました。
繰り返しフィールドでスケジュールを表現したものです。1療法士1日毎にレコードを作成しておきます。そのレイアウトの中で、療法士、または、日付で抽出やソートすれば、療法士毎、日毎のスケジュールが見えます。
スケジュール内の枠をクリックすると、予約が入力でき、入力済みのものは、リハカルテへ移動できます。
https://www.dropbox.com/s/5izwajm5mbedz … 7.zip?dl=0
>Shinさん
これ凄いです。びっくりしました。
もう一個、同じレイアウトでIDを患者名表示にさせようかなと思いましたがなかなか難しいですね。
最終的にはスケジュール自体も書類として必要でしたので考えているところです。
何か方法があればご教授よろしくお願いします。
>チポさん
ポータル行の指定の部分についてはちょっと勉強しないと出来ません。
開始行をスクリプトで変える感じになるのですか?
スクリプトでは有りません。
レイアウトモードで、ポータルの開始行を指定できます。担当者一人分の全時刻分、25行のポータルをひとつ作り、
必要フィールドを配置。そのすべてをコピペして、新しいポータルの開始行を、
26で設定します。
同じことを繰り返して、開始行を51,76,101・・・と設定します。
もう少し基本的な部分をお聞きしても宜しいでしょうか?
カルテの全担当者分を作製いたしまして、インポートスクリプトも出来ました。
あとはポータルの表示をというところなのですが、
リハカルテテーブルとスケジュールテーブルを何でリレーションして
ポータル表示させればよいかが分かりません。
この場合ですと日付でリレーションさせれば宜しいのでしょうか?
表示させられず悩んでおります。よろしくお願いします。
レコード作成をスクリプトでも出来ますが、
このような方法はいかがでしょう。担当者一人分&全時刻のレコードを作ります。
それをエクスポート、
さらにそれをインポート、担当者を全置換で書き換え。
これを全担当者分繰り返します。
これで1日分の全レコードが出来ました。これを別テーブルでテンプレート(?)として、
これをインポート、日付を全置換で入力。
この最後だけをスクリプトで自動化すればいいでしょう。担当者の変更がないのなら、
1ヶ月分とかいっぺんに作ることもできますよね。ポータルは担当者一人をひとつのポータルにして、
必要分横に並べればいいでしょう。リレーションはひとつで、
ポータルの開始行を変えれば担当者ごとのポータルに出来ます。
全く考えたことがない手法でした。
衝撃すぎてどうしようか悩んでます。
たしかにこの方法であれば、利用したフィールドに×や患者名を表示することも可能ですし、
利便性はこの方が高いかもしれませんね。
上述の上の方の1日分の全レコードまでは一度やってしまえば、今後必要ない作業になるんですね。
ポータルの部分の並べ方については理解できましたが、
その後のポータル行の指定の部分についてはちょっと勉強しないと出来ません。
開始行をスクリプトで変える感じになるのですか?
>Shinさん
表示は繰り返しフィールドの集計で、OnObjectEnterトリガーを使って属性を取得し、別ウィンドウでリハカルテを表示、という方法もいいかも。
その方法も思いついては居たのですが、技量の問題で厳しかったのです。
治療者Aさんのフィールドを繰り返しフィールドで25個作るまでは試したものの。
そこからどのようにすれば良いかが思いつきませんで断念した方法です。
後学のため教えて下さいませんか?
>チポさん
衝撃です!!!!
わずか、数行で今の苦労が全て報われました。
1行目は開始時間、2行目は担当者というパラメーターをコピペしてくれるんですね。
めちゃくちゃ勉強になりました。
というよりも今までのスクリプトを全部消して、此方を採用させて頂きましたm(__)m
しかし、
縦軸が時間、横軸が担当者名としています。
担当者は10名おりますので合計250フィールドが存在しますこの構造はいかがなものでしょう。
リハカルテテーブルで、あらかじめ1日分の全てのレコードを作っておいて、
スケジュール帳にポータルで表示。
も考えられます。
まさにいかがなものなのです。
繰り返しフィールドやポータルの案は思いついているものの、その技量がなく出来ておりませんでした。
其のため250個のフィールドを作ってという苦肉の策になったのでした。
ちなみにポータル表示させる前に、リハカルテのレコードを250個自動で作ってしまう方法とはどうなるのでしょうか?
日付でリレーションをさせて、その後、どのように250個のレコードを作り、どのように表示させればよいのかがさっぱり分かりません。
教えて頂けませんか?
変数を設定[$$治療者時間="Get(アクティブフィールド名)"]
これでは変数に
「Get(アクティブフィールド名)」
とテキストが入力されてしまいます。
変数を設定 [ $$治療者時間 = Get ( アクティブフィールド名 ) ]
これが正しいですね。しかし、
フィールドをボタンにして、それをクリックしてもそのフィールドはアクティブになりません。
ですから、
Get(アクティブフィールド名)
でクリックしたフィールド名は得られません。
・・
ありがとうございます。
まさにそれが知りたかったんです。
アクティブにならないのですね。
””は付けていませんでした。
写し間違いでした申し訳ないです。
GetFieldNameかな?など色々試みて入るものの
フィールド25個すべてにボタンにしてそこにスクリプトを入れていますが、
思った動きをしてくれていませんでした。
一つ一つ、前述したスクリプトを入れた場合にはうまくいくのですが。。。
変数を利用してが上手く行きません。
テーブル構造をご説明するのは難しいですね。
申し訳ありません。
スクリーンショットをアップ出来れば、伝えやすいのですが。
基本的には 患者の基本情報の載せているテーブル「T_患者情報」カルテのテーブル「T_リハカルテ」をIDでリレーションしております。
そのほかに治療開始の時間と担当者名、バーコードでIDを読み取り、入力作業を簡易化する目的でスケージュールのテーブル「T_スケジュール帳」としていますが、
患者情報やカルテとはリレーションしていません。
他に2つ検索用に患者情報とカルテそれぞれに自己リレーションテーブルがあります。
スケジュール帳テーブルの見た目としては、縦に25個フィールドがありそれぞれ20分単位の区切りにしてあります。
縦軸が時間、横軸が担当者名としています。
担当者は10名おりますので合計250フィールドが存在します。
チポさんが仰られた
例えば、
スクリプトパラメータに、開始時刻を指定しておけば、
スクリプト引数で入力できますから、
Ifステップの分岐が不要になりますよ。
の方法がさっぱり理解できておりません。
http://www.filemaker.com/help/12/fmp/jp … 13.35.html
の内容が近いのかなと思い参考にして。
ボタンのスクリプト設定画面のスクリプト引数の部分に
"T_スケジュール帳=8:35"
"T_スケジュール帳=9:00"
"T_スケジュール帳=9:23"
"T_スケジュール帳=9:46"
と言った感じにボタンごとに一つづつ入れておいて
変数を設定[$$治療者時間=Get(スクリプト引数)]
If[ $$治療者時間="T_スケジュール帳::滑1=8:35"]
レイアウト切り替え[「T_リハカルテ(T_リハカルテ)」]
新規レコード/検索条件
テキストを挿入[選択:T_リハカルテ::開始時間;「8:35」]
テキストを挿入[選択:T_リハカルテ::担当者;「○○△△」]
デバイスから挿入[タイプ:バーコード;カメラ;バック;解像度:中]
Else If[ $$治療者時間="T_スケジュール帳::滑2=9:00"]
レイアウト切り替え[「T_リハカルテ(T_リハカルテ)」]
新規レコード/検索条件
テキストを挿入[選択:T_リハカルテ::開始時間;「9:00」]
テキストを挿入[選択:T_リハカルテ::担当者;「○○△△」]
デバイスから挿入[タイプ:バーコード;カメラ;バック;解像度:中]
Else If[ $$治療者時間="T_スケジュール帳::滑3=9:23"]
レイアウト切り替え[「T_リハカルテ(T_リハカルテ)」]
新規レコード/検索条件
テキストを挿入[選択:T_リハカルテ::開始時間;「9:46」]
テキストを挿入[選択:T_リハカルテ::担当者;「○○△△」]
デバイスから挿入[タイプ:バーコード;カメラ;バック;解像度:中]
End if
と言った感じに修正したら出来るようになりました。
ただ、チポさんが仰られた「Ifステップの分岐が不要になりますよ。」
をした構文をどのようにすればいいか後学のため教えて頂けませんか???
きっとシンプルでスマートな印象を勝手に抱いていおります。
[ Generated in 0.023 seconds, 6 queries executed - Memory usage: 789.2 KiB (Peak: 843.36 KiB) ]