Google WorkspaceのユーザーOU変更をGoogle Apps Scriptで行った話

数百人程度のGoogle Workspaceで、ユーザーのOU変更を行う必要があった。 最初はRubygoogle-apis-admin_directory_v1 gemでの変更を検討し、実際に検証を行った。 user.update!(org_unit_path: new_ou_path)で組織部門(OU)の更新をかけても、API上では変更が反映されているように見えるが、管理画面 (admin.google.com) からは組織部門(OU)の更新が確認できなかった。

rubygems.org

そこで、Google Apps Scriptを利用してユーザーのOU変更を行う方針に変更した。 ほぼ以下のサンプル通りでほぼ動く。Rubyでやるときに必要だったGOOGLE_APPLICATION_CREDENTIALSの設定や、認証まわりの設定、APIのスコープの設定などがまるっと要らなくなっている。 その代わり、紐づくGCPのProjectを設定したり、利用するサービスとしてAdminDirectoryの追加が必要だった。

developers.google.com

スプレッドシートからの読み取りや、例外処理など細々とした処理を除けば、一人のユーザーのOU変更に必要なコードはこんな感じだった。名前から分かる通りemailは、ユーザーのメールアドレスが入っている。

user = AdminDirectory.Users.get(email);
AdminDirectory.Users.update({orgUnitPath: ou_path});

大体の問題解決はRubyで行ってきたが、今回は珍しくRubyでの手段が絶たれたのでGoogle Apps Scriptを試してみてうまくいった事例だった。Google Apps ScriptはJavascriptっぽい感じなのだが、少しは今回を機に仲良くなれるといいなと思っている。

付き添い入院やってみての感想

実は先日2人目の子供(女の子)が生まれた。大変めでたい。しかし2人目の子供と奥さんがまだ家に帰ってきていないタイミングで上の子が喘息の発作で入院することになってしまった。どうやら人生いろいろあるらしい。

感想

自分が寝られていないと本当にしんどい。24時間ほぼ張り付きで育児になる。しかも病児なので、普段以上にMPを消費する感じがあった。

風呂はシャワーを20分以内ですます感じだし、自分のことは後回しになる。ごはん、トイレ、飲み物などすべてが。自分のことはできない、どこにも行けない、全ての予定をリスケする必要性が出た。
今回困ったのは2人目の子供が生まれたのに出生届を出しに行くタイミングの目処が立たないことだった。
嫁の両親にはとても助けられた。入院すると思って深夜の受診してないので、子供と自分の衣服など身の回りのものや数日分の自分の食べ物、飲み物、飲み薬などを持ってきてくれた。

核家族ではかなり厳しそうだし、ワンオペ育児ではこの生活かなり無理があるだろうなと想像できた。
さらに長期での入院になると仕事を辞めざるを得ない人もいるとのことで、厳しさしかない。

 

「付き添い入院」食事・ベッド・シャワー、親の生活環境改善を | NHK | ニュース深掘り

 

子供の状態が良くなり、夜の睡眠や昼寝がしっかりできるようになってくると自分もしっかり寝られるようになったので自分の精神が安定していくのを感じた。

自分のことはできないと書いたが、積んでいた漫画や本の消化は捗った。
あと子供の入院前にやっていたJANOG53のNETCON解説を読み漁るのが捗った

NETCON開催のご案内 - JANOG53 Meeting in Hakata

 

自分の入院とは違い(自分は入院したことない)、小児の付き添い入院ならではの事情があるし、これはやってみないとわからんなと思った。

 

どうでもいい感想

医療情報技師の資格を取る際に勉強したので、電子カルテやPACSとの連携や、オーダ情報の連携など病院の電子化具合が大変気になった。食札とかそこらへんも気になった。実際の運用についてはあまりわからないが、ぼんやりとこういうシステムがあるんだろうなと、登場人物が想像できる感じというところだろうか。

RTX1210でtransixのDS-LiteとZOOT NATIVEの固定IPv4アドレスを併用する

qiita.com

この記事を見て固定IPv4アドレス使えることを期待していたのだが、なぜかできない状況が続いていた。しかしこの記事を見て、プロバイダ設定のところを入れてみたところIPv4アドレスが固定できた。Luaスクリプトでどうこうしている部分がうまく動いていなかったのかもしれない。 この件について言及している記事は特になかったので、自分用にメモしておく。

www.open-circuit.ne.jp

医療情報技師認定試験受験記

この記事を何人かの方が読みたいと事前に言ってくれたことが、この記事を書くモチベーションになっている。ありがたい

モチベーションや背景

詳細は省くが、親族に医療関係者が数人いる。話を聞く機会が割とあるので、医療との精神的な距離感が近いというのがある。また、会社の今後の展開を考えたときにIT系以外の会社からお仕事をもらえると良いなと考えていたので、医療系のIT業務について理解を深められそうな医療情報技師に興味を持った。本業の方で時間が確保しやすい状況だったから資格取るかと言いやすかったという背景もある。他にもあるけど、書ききれないので省略。

勉強法と費やした時間

学習計画

まずは公式の過去問の本を買った。貼ったリンクは2023年度版だが、自分は2022年度版を買った。Amazonによると2022年6月に買っているようだった。

Amazon.co.jp: 医療情報技師能力検定試験 過去問題・解説集2023 : 一般社団法人日本医療情報学会医療情報技師育成部会: 本

過去問を見てみると、この試験は3つのパートからなることがわかった。情報処理技術系、医学・医療系、医療情報システム系の3つだ。情報処理技術系の内容は基本情報技術者試験レベルだと感じたので対策しなくてもなんとかなりそうと判断した。医学・医療系と、医療情報システム系については知らない事が多いのでガッツリ勉強する必要性を感じた。後述するが、今考えてみるとシステム関係の規格などについて略語などが多い分、医療情報システム系の方が勉強量が必要そうに感じた。とはいえ、専門外の分野だし、どこまでの知識量が求められるのかもよくわからなかったので、勉強量の見積もりをできそうにないと感じた。まあ頑張ればなんとかなりそうだなと思った程度の計画しかできていない。あと、過去問を買ったときにはどんなものかを見るくらいの興味度だったので具体的に受験することを真面目に考えていなかったというのもある。

勉強法

過去問の解説を読んでも内容がピンとこないことがわかった。周辺知識がないので解説を読んでも理解の解像度が低いのだった。丸暗記以外できそうにないと感じた。となると公式のテキストを買うとよかろうということで、医学・医療系、医療情報システム系それぞれのテキストを買った。Amazonによると2023年5月に買っているようだった。

医療情報 第7版 医療情報システム編 | 一般社団法人日本医療情報学会 医療情報技師育成部会 |本 | 通販 | Amazon

医療情報 第7版 医学・医療編 | 一般社団法人日本医療情報学会 医療情報技師育成部会 |本 | 通販 | Amazon

これらのテキストは結構な分厚さがあるが、一旦読まないと周辺知識が入らないだろうと考えまずは両方通読した。通読するとなんとなくここらへんにこの内容が書かれているというインデックスができるので、過去問の解説を読んでわからなくてもテキストで詳しく調べることができる。テキストで調べられると、ネットで検索する際のキーワードも得られているので調査が捗る。調査した内容は自分が契約している esa に書き込んでいった。物理的なノートだと一覧性がなく、検索機能もないし、自分の汚い字を見続けることになるので、こういったところはデジタルに寄せていく勉強スタイルがハマった。

esa.io

自分の付けている記録を見ると、2023年5-7月でテキストを読み、7月からは過去問演習をやっているようだった。試験は2023年8月20日だった。過去問演習には1時間程度かかっていて、週に2-3回程度行っていた。ざっくりとしか把握できていないが、数千時間はかけていないようだ。

苦労したところ

医学・医療系、医療情報システム系どちらにもあてはまるのだが、略語や専門用語が多いので調べて概要を理解して覚えるのに時間がかかった。esa に単語帳を作ってまとめていくことでなんとかした。移動中にも大量に読めるので便利だった。略語の苦労で言うと、一つの略語を調べると芋づる式に複数の略語が登場するのでそれらを理解して覚えるまでに時間が必要だった。例えばRDSRという単語を調べると、DICOM、PACS、モダリティなどの単語が登場するという具合だ。

他にも、IT業界の用語と全く同じ略語だが意味が違う場合の苦労もあった。IT業界でSOAPというとAPISOAPを思い浮かべるが、医療業界でのSOAPというのはカルテを書く際の記録方法の一つだそうだ。

ja.wikipedia.org

www.phchd.com

この他にも、腫瘍マーカーは略語の山だし、医療情報系の略語も多い。

試験当日の思い出

大阪名物?のビルの中を通る高速道路があるTKPが試験会場だった。会場では高速道路の騒音はなかった。

kuruma-news.jp

他の受験者を見るとわりと若い人もいるように見えた。実際、合否発表と同時に公開される認定者統計を見ても自分より若い20代の人が最も多いようだった。これらの人々がどのような経緯でこの試験を受けたのかが大変気になるところだ。すでに医療情報の仕事をしていて、業務上取ることを推奨されているケースが多いのだとは思うが。

前述したように試験は3つのパートがある。情報処理技術系、医学・医療系、医療情報システム系の3つで試験時間もそれぞれに分かれていた。それぞれのパートで退出が可能なのでとても助かった。とはいえ、サウナに入れるような時間があるわけでもないので、カフェで勉強するくらいしかやることがなかった。とはいえ普段来ることがないエリアだったので、熱中症にならない程度に散策して楽しむこともできた。

合否発表と感想

自己採点で受かったなとは思ったのだが、合否発表とともに公開された解答を見ると科目によってはギリギリだったことがわかった。

  • 情報処理系
    • 90/100点(66点が合格ライン
  • 医学・医療系
    • 66/100点(50点が合格ライン
  • 医療情報システム系
    • 68/120点(66点が合格ライン

このように、医療情報システム系がギリギリセーフだった。今思えば、医療情報システム系の勉強に割く時間を増やしておくと更に良かったのかもしれない。今回の試験は36.1%の合格率だったようで、狭いところに一発で合格できてよかった。

www.jami.jp

ところで、この試験に受かったことで何かできることが増えるわけではないし、国家資格でもない。どう活かしていくかは自分次第ということになりそうだ。

とはいえ、専門用語の勉強になったし、医療に対する理解も深まったし、AWSがヘルスケア周りのプロダクトを作っていることも知ることができたので良い勉強になったと思う。資格を取るのは、資格自体の意味もあるけど、資格を取るまでの勉強により体系だった知識を得ることに意味があるのだろうと思うのだった。

aws.amazon.com

(直リンク)https://d2908q01vomqb2.cloudfront.net/b3f0c7f6bb763af1be91d9e74eabfeb199dc1f1f/2021/04/04/Session2-AWS-FWoA_AHL-HC-Cloud-Seminar-DL-material.pdf

(直リンク)https://d1.awsstatic.com/local/health/20220310_%E3%82%84%E3%81%95%E3%81%97%E3%81%84FHIR%20on%20AWS.pdf

Osaka RubyKaigi 03の当日スタッフをやってきた

今住んでいる大阪で地域Ruby会議があるということで、当日スタッフをやってきました。育児家事などで事前の準備に注力できないことがわかっていたのと、長年のスタッフ経験から登壇者の顔がわかりそうなので、ゲスト対応係をやりました。

regional.rubykaigi.org

実務的なプログラムを書くことばかりだったので、絵や音楽といったクリエイティブな分野でRubyを書くことの楽しみ方を教えてもらった会でした。まさに、”Rubyで笑おう”のテーマに沿っていたものばかりでよかったですね。

感想としては、こういうところに来ないと増えない知り合いや、聞けない話があるよなーと思いました。東京に住んでいた頃の懐かしい人たちにも会えたのが良かったです。

"ほっかいさんが関西弁喋ってる~違和感~"って言われたのが、いい話と思いました。

このように、自分のキャリアや住む場所の変化がありつつも、Rubyコミュニティとゆるくつながっていられてよかったなと思うのでした。

今回は初参加の人が多かったようです。楽しい、面白い、良かったと思った方が、いつしか新しいコミュニティを立ち上げるなどして、大阪や関西のコミュニティがさらに盛り上がるとうれしい限りですね。

個人的にオフィス用の部屋を借りた

blog.hokkai7go.jp

上記でチラリと書いたが、個人的にオフィス用の部屋を借りた。

理由としては、我が家は子供を保育園に預けておらず、子供がずっと家にいる。すくすくと成長し、仕事部屋を開けるようになったり、仕事部屋に入れなくて泣いたりなどするので仕事に集中できなくなったからだ。
個人オフィスにはあえて用意しなかったものが複数ある。あえて用意したのはウォータサーバーだった。
  • 冷蔵庫
    • お昼ごはん食べないので不要
  • 洗濯機
    • 家で洗濯すればよい
  • 電気ケトル
    • ウォータサーバーでお湯が出るので不要
  • ガス
    • 夏は水シャワーが好きなので不要
    • 冬は汗をかきにくいので、シャワーを浴びる想定はないので不要
    • 料理しないので不要

これらの構成は、 id:Soudai さんへの相談のもと組み立てたものだ。個人オフィスを構えるにあたってありがたいアドバイスをいただいた。

 

逸般の誤家庭プロジェクト

技術の遊び場にしたいので、逸般の誤家庭プロジェクトを進めている。
一旦、家と個人オフィスでUbiquitiのDream Routerを入れてみた。G4/G3 instantで不在時の監視カメラとして動かしている。
一時期家で使っていたRTX1210を個人オフィスに持ってきてルータとして使っている。
構成はほぼ下記の記事と同じで、インターリンクのZOOT NATIVEを使っている。しかし、IPv4アドレスの固定ができていないようで困っている。
 
Dellのラックマウントサーバーを買った。
VGA接続できるモニタなんて無くて困っていた。VGA to HDMIコネクタを買って接続したが、iDRACでブラウザから画面見られるのですぐに不要となった。
 

SFPとの格闘

光ファイバーへの憧れがあったと思う。これまで光ファイバーを仕事で使うことがなかったので、個人オフィスでのラックサーバには光ファイバーを使うこととした。
10GのIntelのNDCをつけてもらったらiDRAC以外にRJ-45刺さるところがなかった。そしてSFPのあるスイッチを持ってなかった。しかもサーバ側のSFPモジュールの初期不良かなにかで、4ポートあるSFPのどこに指しても一切リンクアップしなかった。
家からCatalyst3560を持ってきた。HPE OfficeConnect1420をヤフオクで買った。これらがSFPで通信できるよう、マルチモードファイバーケーブルやCisco互換のSFPモジュール、HPE互換のSFPモジュールを買い、SFPモジュールやマルチモードファイバーケーブルが問題ないことがわかった。
ここで、サーバを買った会社にSFPでリンクアップしない旨を伝えるとSFPモジュールを送ってくれた。届いたSFPモジュールをR640に指すとリンクアップしてくれた。
あえて光ファイバーを使うことにしたおかげで、SFPモジュールの相性とか、規格などについて勉強することができてよかった。
 

まとめ

個人オフィスを借りたことで仕事に集中できるようになって大変よい。仕事につながるかどうかよくわからない楽しい技術の検証もできていてよい。今後も逸般の誤家庭プロジェクトを進めていくぞ

昼ごはんを食べる習慣がなくなりつつある

セキュリティ界隈の飲み会に混ぜてもらったときや、普段行ってる美容室で昼ごはん食べない人の話を聞いた。たしかに惰性で食べている事に気が付き、昼ごはんを食べる習慣をなくしつつある。

お昼ごろ眠くならないし、あまり支障もないので続行している。個人オフィスを構えたのだが、そこには冷蔵庫すらないからお昼ごはんを食べにくくなったのも大きい。