2016-11-17 10 views
0

私は請求を行っている医師のオフィスで働いています。私は課金プロセスを合理化するコードを書いています。すべての診断を課金ソフトウェアに含める必要があるので、私は全体の図をコピーし、接頭辞ICD-10を探す改行で配列に解析し、2つのコードが同じ行にあれば、コンマ)。それ以前には、キャンセルされた手続きを含むチャートの一部(存在する場合)が削除され、キャンセルされた手続きには課金されません。時には、同じ診断の複数が、プロシージャを注文するためにチャートに含まれています(自動です)、アレイに各診断を一度追加する必要があります。AHK:テキストを配列解析中に重複を取り除く

 [...] 
     SendInput, ^a 
     ClipBoard := 
     SendInput, ^c 
     ClipWait 
     BlockInput, MouseMoveOff 
     lString := ClipBoard 
     Sleep, 200 
     IfInString, lString, Canceled Orders 
      { 
      lStringLeft := SubStr(lString, 1, InStr(lString, "Canceled Orders")-1) 
      Sleep, 20 
      lStringRight := SubStr(lString, InStr(lString, "Allergies as of")) 
      Sleep, 20 
      lString := 
      Sleep, 20 
      lString := lStringLeft 
      Sleep, 20 
      lString .= lStringRight 
      Sleep, 20 
      } 
     DxArr := [] 
     numDx := 0 
     Loop, Parse, lString, `n 
      If InStr(A_LoopField, "ICD-10") 
       Loop, Parse, A_LoopField, `, 
        DxArr[++numDx] := Trim(SubStr(A_LoopField, InStr(A_LoopField, ":") + 1), " `t`n`r") 
     [...] 

本態性高血圧症のための理想的な出力

ICD-9-CM:401.0

ICD-10-CM:慢性腎有するI10

本態性高血圧症疾患、段階3

ICD-9-CM:585.3、401.0

ICD-10-CM:N18.3、I10

私は「

I10 N18.3あります私はインターネット上で見つけたいくつかの異なるソリューションを使ってこれを行ってきましたが、今のところ問題を解決するのではなく、むしろ混乱しました。どんな助けもありがとう!

答えて

1

重複を削除するためにハッシュを使用します。キーとしてコードを使用し、値のダミーを使用します。私はダミー値として以下の "真"を使用します。重複レコードは同じキーを持ち、前のキーと値のペアを置き換えます。

入力の解析が完了したら、ハッシュのキーを出力します。

DxHash := {} 
Loop, Parse, lString, `n 
    If InStr(A_LoopField, "ICD-10") 
    Loop, Parse, A_LoopField, `, 
     DxHash[Trim(SubStr(A_LoopField, InStr(A_LoopField, ":") + 1), " `t`n`r")] := true 

for diagnosis,dummy in DxHash 
    send %diagnosis%{SPACE} 
+0

投稿した他のコードでこれを試みました。インフルエンザの予防接種者から重複を取り除く方法をコピーすると、おおよそ同じように見えますが、うまく機能しませんでした。ありがとう!これは、DxArr(今のDxHash)を連想配列に変換します。連想配列のサイズを見つける方法はありますか?私は以下のチェックの一部としてnumDxを使用しているので、すべてのコードが入力された直後です。 SendInput {Enter} 私はこれが過度の検査であるかもしれないと思っていますが、インデックスチェックなしで動作するかもしれません。 – DarknessCalling

+0

入手しました。それは低レベルですが、印刷する前にループのために正確に同じことをしますが、要素を数えます。だからDxのための要素、DxHash numDx ++の要素、それ以降はprint forループです。再び、低レベルですが、機能しています。 – DarknessCalling

関連する問題