添付文書とSGML→XML
フリーの添付文書ソフトがある今、院内医薬品集なんているのか?というのは前のページでもいいましたが、それでも自分で医薬品集を作りたい!と思う人がどれだけいるかは分かりませんが、そうなってくると必要になるのが添付文書の「文書」だったりするのです。
1から全て手入力でもかまいませんが、そんなことやってられませんよね。コピペでどうこうできるレベルでもないです。
そこで登場するのがSGMLファイルなのですが、あれを実際個人で使ってる人どれだけいるのでしょう?とりあえずわたしの周りにはいませんでした。
で、これが添付文書の様式変更に伴い、XMLに変更にされていくそうです。
「へー、そうなん?」
普通はそうでしょうとも。だって関係ないですから。でも利用していた人間にいわせると
「なんだとーーー!」
と叫びたくなるくらい大ごとです。だって、新たに変換ソフトを作らないといけないから。
いやね、基本Accessしか分かんないのよ。AccessでどうやってXML扱うのよ?
因みにXMLをインポートとかできますけど、それじゃないです。
SGMLはどうしてたかって?昔々まさに「神」がいんたんですよ。なごりだけ今もとあるサイトに残ってますが。
正直どこから手を付けたらいいのか・・・。とりあえず取り込んでみるか?所詮はテキストだし。そして予想通りエラーが・・・。
いや、いやな予感はしてました。そうじゃないかなって。
配布されてるXMLは文字コードがUTF-8って書いてあるんですよ。もしかしてShift-JISに変更してあげないと先に進まないの?
そしてまた検索です。Access(というかVBA)でUTF-8を扱うにはADOを使うらしい。
Dim お好きな変数 As String
Dim Stream As Object
こんな宣言と
Set Stream = CreateObject("ADODB.Stream")
Stream.Charset = "UTF-8"
Stream.Type = 2
Stream.Open
Stream.LoadFromFile (”読み込みたいファイル")
”お好きな変数"= Stream.ReadText
これで「お好きな変数」の中に読み込んだテキストが一時的に保存された状態になるらしく、それをShift-JISとして出力すればいいのかな?このとき同時に
<?xml version="1.0" encoding="utf-8"?>を
<?xml version="1.0" encoding="Shift-JIS"?>にしておくのか?Replace関数あたりでいいのか?
もうね、XMLの扱い方を1からなんてむちゃくちゃ時間かかるとおもいます。分かる人に最初から聞きましょう。正直なんだこりゃ?です。そもそもまだXMLどうこう以前の問題です。
一度に全てやろうとすると、ますます意味不明になるので、上のような処理をroopで回し、utf-8をShift-JISに変換した中間ファイルを別フォルダーに作成することにしました。
まずはXMLのファイル数分処理をしなくてはいけませんので、Dir関数を使って
変数A=Dir("フォルダのパス" & "*.xml")
Do While 変数A <> ""
上のShift-JIS変換処理
変数A = Dir()
Loop
ここらあたりは詳しく解説してあるところが沢山あるのでそちらを見てください。
見た目は赤線部分しか変わってませんが、ちゃんと文字コードが変わってます。
手入力で修正したわけではないですよ?XMLファイルが1つしかないなら手作業で何とかできるかもしれませんが、採用薬だけとしても、少なくとも500ファイル以上あるでしょうから。
Shift-JISでは表わせない文字があると”?”ってなりますが、そこはもう面倒なのでスルーすることに。
まだメインはSGMLで、XMLになった薬剤はこれ書いてる時点で100程度ですけど。
で、これで終わりではないです。コメントの行があるみたいで・・・。
<!--ア.作成・・・の行ですね。これどうするかなあ。
昔は検索すると、こんなことやってるんだろうなという薬剤師がチラホラおられたみたいですが、今は同業では希少種かもしれないです。
そりゃそうですよ。電カルになったらシステム屋さんが勝手にやってくれますから。
療養の、まだ外部システムが導入されてないところで、さらに自作とかおかしなことしてない限りいらないです。
2019/8
ついにというか、やっとというか、添付文書データが誰でも一括でダウンロードできるようになりましたね。関係ない人多いと思いますけど。
ただ、pdfファイルを自分の作ったソフトに取り込むかというと・・・。正直、サイズが大きくなるばかりだし、そこは今まで通り、既存の添付文書検索アプリを使った方が早いかなと。
GS1で検索できるアプリも出来上がってましたしね。
ただ、私が作るのは、あくまで院内医薬品集なんで、この手のソフトとは少し用途が違うかな。
2021/05