読者です 読者をやめる 読者になる 読者になる

分割入金の収入調定表の作成

IBARSに無い機能はAccess(統計メニュー)で対応していますが、それでも分割入金に対する処理が出来ていない状態でした


分割入金の正しい調定表の出力及び分割入金に対する領収書の出力が出来るように見積依頼しましたが、いまだ(半年待っても)に見積書が届きません

難しいのは分かりますが、もう少し誠意を見せてほしいところです
これで、許している当方も問題なんですが、何せ予算が無いので......

 

そこで、技術屋のお出ましです

 

元々、Access(統計メニュー)で出力できるのは、現金とクレジットの日次の調定表だけです

その処理をまねて、銀行振込、郵貯振込の入金区分の追加、および日次だけでなく、月次、年次の調定表を出せるようにしていましたが、分割入金に対する調定表をどうするか悩みました

悩んだ結果、やはり中間データ(分納引き当てデータ)を作成するしかない結論になりました

 

振込や月次の処理はAccessを使っていません、SQLとOkiToolで対応です
Accessでは処理時間10分ですが、OkiToolでは数秒で処理が終わります

 

1)分割入金がなされている請求データの抽出

  → これはOracleのMV作成

2)上記データを元に、入金データ+請求明細データ+分納引き当てデータを取得し入  金額の割り当て(充当)を行います

 

  例えば 10000円の請求データで

    明細データ  500円 → 病衣貸与料
          1000円 → 検査料
                                         2000円 → 食事代
          3000円 → 手術代
          1500円 → 投薬料        

          2000円 → 注射料  のとき

    分割で 2000円 入金があったとき

 

      金額が低い 病衣貸与料 500円
            検査料   1000円

            投薬料    500円(残り1000円) に割り当てます

      次回入金時は 投薬料 の残金から割り当てます 

     割り当てた金額は 分納引き当てデータ に追加していきます

 

   基本、夜間のバッチ処理で割り当て処理を行う
   窓口で入金される場合、 リアルタイムで割り当て処理を行う必要がある

 

3)分納引き当てデータが出来れば、明細の項目ごとに集計すれば、分割入金の

  収入調定表が作成されます

 

4)入金処理単位に作成した 分納引き当てデータ から分割入金の領収書も

  作成するようにしました

 

  

現場では、いままで、手書きで割り当て処理をしていたそうです

お疲れ様でした

 

 

 

 

 

 

 

 

 

 

OkiToolの資産管理

OkiToolでは機器の資産管理機能もあります

・資産管理番号

・設置情報(施設、部署、設置場所、フロア階数、内線)

・機器情報(型番、製造番号、名称、IPアドレス

・備考

・破棄(管理台帳から削除)

 

資産管理一覧からはその機器がWEB対応であれば情報取得も可能です

例えば、ネットワークプリンタの状態をWEBから参照、設定が可能です

OkiToolの未収金管理について

OkiToolでは未収金管理も可能です。主な機能として

・未収明細の一覧出力

・滞納者一覧(未収金合計額、明細件数)出力

・未収明細のコメントでの抽出

・未収明細に次回予約日(次回来院予定日)を付加して出力 などなど

SQLで出力しますので、項目、条件はカスタマイズ可能です

 

f:id:syskobo:20170203104757j:plain

 滞納者への対応はコメントとして入力します

 

 

また、帳票(エクセル、ワードでテンプレート作成)は

・払込取扱票

・督促状1(未収の請求)

・督促状2

・督促状3(催告・法的処置)

・未収管理簿

の出力に対応しています

 

f:id:syskobo:20170203105349j:plain

175.看護必要度救急搬送チェック

看護必要度の入力で「救急搬送後の入院」か否か、入力間違いが多いので、ER来院患者と入院患者で正しく入力しているかチェックSQLを作成しました

 

select
’取り過ぎ’ 区分,
s.ROOMCODE 病室,
s.BEDCODE ベッド,
z.PATIENTNO 患者番号,
( z.KANJILASTNAME || ’ ’ || z.KANJIFIRSTNAME ) 患者氏名 ,
A.ADMISSIONDATE 入院日,
a.ADMISSIONWARD 入院時病棟,
TO_DATE(d.対象日) - A.ADMISSIONDATE + 1 入院日数,
 NEEDEDDEGQUANTITYA  必要度A,
 NEEDEDDEGQUANTITYB  必要度B,
 NEEDEDDEGQUANTITYC  必要度C,
 case when NEEDEDDEGQUANTITYA >= ’2’ and NEEDEDDEGQUANTITYB >= ’3’ then ’○’
when NEEDEDDEGQUANTITYA >= ’3’ then ’○’
when NEEDEDDEGQUANTITYC >= ’1’ then ’○’
else null end  必要度条件
,ER.appdate 救急来院日
,ER.TRIAGEFREECOMMENT トリアージ入力コメント
,a.ADMISSIONNO 入院NO
,d.*
,s.STAFFCODE 更新者
,s.UPDATEDATE 更新日時
from (
SELECT
 d.TARGETDATE 対象日
,d.WARDCODE 病棟,
max ( decode(d.SUMITEMCODE,’A00000’,d.SUMDETAILNAME )) 判定用,
max ( decode(d.SUMITEMCODE,’A00100’,d.TEN )) "創傷処置",
max ( decode(d.ITEMCODE,’001000620’,d.TEN )) "呼吸ケア",
max ( decode(d.ITEMCODE,’001000260’,d.TEN )) "点滴ライン",
max ( decode(d.ITEMCODE,’001000270’,d.TEN )) "心電図モニタ",
max ( decode(d.ITEMCODE,’001000300’,d.TEN )) "シリンジポンプ",
max ( decode(d.ITEMCODE,’001000330’,d.TEN )) "輸血",
max ( decode(d.SUMITEMCODE,’A01500’,d.TEN )) "専門的な治療・処置",
max ( decode(d.ITEMCODE,’001000590’,d.TEN )) "◆救急搬送後の入院◆",
max ( decode(d.ITEMCODE,’001000390’,d.TEN )) "寝返り",
max ( decode(d.ITEMCODE,’001000790’,d.TEN )) "移乗",
max ( decode(d.ITEMCODE,’001000780’,d.TEN )) "口腔清潔",
max ( decode(d.ITEMCODE,’001000450’,d.TEN )) "食事摂取",
max ( decode(d.ITEMCODE,’001000460’,d.TEN )) "衣服の着脱",
max ( decode(d.ITEMCODE,’001000480’,d.TEN )) "診療・療養上の指示",
max ( decode(d.ITEMCODE,’001000490’,d.TEN )) "危険行動",
max ( decode(d.ITEMCODE,’001000520’,d.TEN )) "開頭手術7",
max ( decode(d.ITEMCODE,’001000530’,d.TEN )) "開胸手術7",
max ( decode(d.ITEMCODE,’001000540’,d.TEN )) "開腹手術5",
max ( decode(d.ITEMCODE,’001000550’,d.TEN )) "骨の手術5",
max ( decode(d.ITEMCODE,’001000560’,d.TEN )) "胸腔鏡・腹腔鏡手術3",
max ( decode(d.ITEMCODE,’001000570’,d.TEN )) "全身麻酔・脊椎麻酔の手術2",
max ( decode(d.SUMITEMCODE,’C00700’,d.TEN )) "救命等に係る内科的治療2"
,d.ADMISSIONNO
,d.PATIENTNO
,d.HOSPITALCODE,d.ROOMTYPE,d.WORKTIMEZONE
from (
 select
 HOSPITALCODE,ROOMTYPE,WORKTIMEZONE,
 WARDCODE,PATIENTNO,TARGETDATE,ITEMCODE,SUMITEMCODE,SUMDETAILNAME,ADMISSIONNO,
 decode(NEEDEDDEGQUANTITY,0,null,NEEDEDDEGQUANTITY) TEN
 from A_NSSUMDTL_H28
 where HOSPITALCODE = ’01’
 and   ROOMTYPE = ’0’
 and   TARGETDATE between ’<p>DATE21|開始日|AddDays(-30)</p>’ and ’<p>DATE21|終了日|AddDays(-1)</p>’
 and   WARDCODE in (’4E’,’4W’,’5E’,’6E’,’6W’,’7E’,’7W’,’8E’,’8W’)
) d
group by  d.HOSPITALCODE,d.ROOMTYPE,d.TARGETDATE, d.WARDCODE, d.WORKTIMEZONE, d.PATIENTNO, d.ADMISSIONNO
) d
left join A_NSSUM_H28 s on s.HOSPITALCODE = d.HOSPITALCODE and s.ROOMTYPE = d.ROOMTYPE and
    s.TARGETDATE = d.対象日 and s.WARDCODE = d.病棟 and s.WORKTIMEZONE = d.WORKTIMEZONE and s.PATIENTNO = d.PATIENTNO
and s.ADMTYPE = ’N’
left join Z_IBAPATIENT z on z.PATIENTNO = d.PATIENTNO
LEFT JOIN Z_ADMADMISSION A ON A.ADMISSIONNO = d.ADMISSIONNO AND  A.PATIENTNO = d.PATIENTNO
LEFT JOIN ( select * from G_EMERGENCYDETAIL
       where appdate BETWEEN TO_DATE(’<p>DATE21|開始日|AddDays(-30)</p>’) -1  and ’<p>DATE21|終了日|AddDays(-1)</p>’
         and ( instr(TRIAGEFREECOMMENT,’AC’) > 0 or instr(TRIAGEFREECOMMENT,’DH’) > 0 )
         and instr(TRIAGEFREECOMMENT,’HCU’) < 1
         and instr(TRIAGEFREECOMMENT,’ICU’) < 1
         and instr(TRIAGEFREECOMMENT,’*’) < 1
     ) ER ON  ER.PATIENTNO = d.PATIENTNO  and ( er.appdate between to_date(d.対象日)-1 and to_date( d.対象日 ))
where ER.TRIAGEFREECOMMENT is null
and  d."◆救急搬送後の入院◆" is not null

union

select
’取り漏れ’ 区分,
s.ROOMCODE 病室,
s.BEDCODE ベッド,
z.PATIENTNO 患者番号,
( z.KANJILASTNAME || ’ ’ || z.KANJIFIRSTNAME ) 患者氏名 ,
A.ADMISSIONDATE 入院日,
a.ADMISSIONWARD 入院時病棟,
TO_DATE(d.対象日) - A.ADMISSIONDATE + 1 入院日数,
 NEEDEDDEGQUANTITYA  必要度A,
 NEEDEDDEGQUANTITYB  必要度B,
 NEEDEDDEGQUANTITYC  必要度C,
 case when NEEDEDDEGQUANTITYA >= ’2’ and NEEDEDDEGQUANTITYB >= ’3’ then ’○’
when NEEDEDDEGQUANTITYA >= ’3’ then ’○’
when NEEDEDDEGQUANTITYC >= ’1’ then ’○’
else null end  必要度条件
,ER.appdate 救急来院日
,ER.TRIAGEFREECOMMENT トリアージ入力コメント
,a.ADMISSIONNO 入院NO
,d.*
,s.STAFFCODE 更新者
,s.UPDATEDATE 更新日時
from ( select * from G_EMERGENCYDETAIL
       where appdate BETWEEN TO_DATE(’<p>DATE21|開始日|AddDays(-30)</p>’) -1  and ’<p>DATE21|終了日|AddDays(-1)</p>’
         and ( instr(TRIAGEFREECOMMENT,’AC’) > 0 or instr(TRIAGEFREECOMMENT,’DH’) > 0 or
               instr(TRIAGEFREECOMMENT,’AC’) > 0 or instr(TRIAGEFREECOMMENT,’DH’) > 0 )
         and instr(TRIAGEFREECOMMENT,’HCU’) < 1
         and instr(TRIAGEFREECOMMENT,’ICU’) < 1
         and instr(TRIAGEFREECOMMENT,’HCU’) < 1
         and instr(TRIAGEFREECOMMENT,’ICU’) < 1
         and instr(TRIAGEFREECOMMENT,’5西B’) < 1
         and instr(TRIAGEFREECOMMENT,’お産’) < 1
         and instr(TRIAGEFREECOMMENT,’産科’) < 1
         and instr(TRIAGEFREECOMMENT,’*’) < 1
     ) ER
left join (
SELECT
d.TARGETDATE 対象日
,d.WARDCODE 病棟,
max ( decode(d.SUMITEMCODE,’A00000’,d.SUMDETAILNAME )) 判定用,
max ( decode(d.SUMITEMCODE,’A00100’,d.TEN )) "創傷処置",
max ( decode(d.ITEMCODE,’001000620’,d.TEN )) "呼吸ケア",
max ( decode(d.ITEMCODE,’001000260’,d.TEN )) "点滴ライン",
max ( decode(d.ITEMCODE,’001000270’,d.TEN )) "心電図モニタ",
max ( decode(d.ITEMCODE,’001000300’,d.TEN )) "シリンジポンプ",
max ( decode(d.ITEMCODE,’001000330’,d.TEN )) "輸血",
max ( decode(d.SUMITEMCODE,’A01500’,d.TEN )) "専門的な治療・処置",
max ( decode(d.ITEMCODE,’001000590’,d.TEN )) "◆救急搬送後の入院◆",
max ( decode(d.ITEMCODE,’001000390’,d.TEN )) "寝返り",
max ( decode(d.ITEMCODE,’001000790’,d.TEN )) "移乗",
max ( decode(d.ITEMCODE,’001000780’,d.TEN )) "口腔清潔",
max ( decode(d.ITEMCODE,’001000450’,d.TEN )) "食事摂取",
max ( decode(d.ITEMCODE,’001000460’,d.TEN )) "衣服の着脱",
max ( decode(d.ITEMCODE,’001000480’,d.TEN )) "診療・療養上の指示",
max ( decode(d.ITEMCODE,’001000490’,d.TEN )) "危険行動",
max ( decode(d.ITEMCODE,’001000520’,d.TEN )) "開頭手術7",
max ( decode(d.ITEMCODE,’001000530’,d.TEN )) "開胸手術7",
max ( decode(d.ITEMCODE,’001000540’,d.TEN )) "開腹手術5",
max ( decode(d.ITEMCODE,’001000550’,d.TEN )) "骨の手術5",
max ( decode(d.ITEMCODE,’001000560’,d.TEN )) "胸腔鏡・腹腔鏡手術3",
max ( decode(d.ITEMCODE,’001000570’,d.TEN )) "全身麻酔・脊椎麻酔の手術2",
max ( decode(d.SUMITEMCODE,’C00700’,d.TEN )) "救命等に係る内科的治療2"
,d.ADMISSIONNO
,d.PATIENTNO
,d.HOSPITALCODE,d.ROOMTYPE,d.WORKTIMEZONE


from (
 select
 HOSPITALCODE,ROOMTYPE,WORKTIMEZONE,
 WARDCODE,PATIENTNO,TARGETDATE,ITEMCODE,SUMITEMCODE,SUMDETAILNAME,ADMISSIONNO,
 decode(NEEDEDDEGQUANTITY,0,null,NEEDEDDEGQUANTITY) TEN
 from A_NSSUMDTL_H28
 where HOSPITALCODE = ’01’
 and   ROOMTYPE = ’0’
 and   TARGETDATE between ’<p>DATE21|開始日|AddDays(-30)</p>’ and ’<p>DATE21|終了日|AddDays(-1)</p>’
 and   WARDCODE in (’4E’,’4W’,’5E’,’6E’,’6W’,’7E’,’7W’,’8E’,’8W’)
) d
group by  d.HOSPITALCODE,d.ROOMTYPE,d.TARGETDATE, d.WARDCODE, d.WORKTIMEZONE, d.PATIENTNO, d.ADMISSIONNO
) d on ER.PATIENTNO = d.PATIENTNO and d.対象日 between to_char(er.appdate,’YYYYMMDD’)  and to_char(er.appdate+1,’YYYYMMDD’)
  and 判定用 = ’対象’
left join A_NSSUM_H28 s on s.HOSPITALCODE = d.HOSPITALCODE and s.ROOMTYPE = d.ROOMTYPE and
    s.TARGETDATE = d.対象日 and s.WARDCODE = d.病棟 and s.WORKTIMEZONE = d.WORKTIMEZONE and s.PATIENTNO = er.PATIENTNO
 and s.ADMTYPE = ’N’
left join Z_IBAPATIENT z on z.PATIENTNO = er.PATIENTNO
LEFT JOIN Z_ADMADMISSION A ON A.ADMISSIONDATE between er.appdate and er.appdate+1  AND  A.PATIENTNO = er.PATIENTNO
where d."◆救急搬送後の入院◆" is null
and   a.ADMISSIONNO is not null
and   TRUNC(MONTHS_BETWEEN(ER.appdate,z.BIRTHDAY) / 12) > 15

1J3.スキャナ文書(日付)

スキャナで取り込んだデータ一覧を表示します

スキャナで取り込んだデータは画像ファイルとして保存され一覧から参照可能です


select  
m.VALIDSTARTTIME 文書日付,
m.PATIENTNO 患者番号,
m.PATIENTNAME 患者氏名,
m.FIRSTDOCUMENTNAME 大分類,
m.SECONDDOCUMENTNAME 中分類,
m.MULTIMEDIACOMMENT コメント,
m.FILECOUNT ページ数,
m.DEPARTMENTNAME 診療科,
m.PROFESSIONNAME 登録者職種,
m.UPDATEOPERATORNAME 登録者,
m.UPDATEDATE 更新日時,
m.DEPARTMENTNAME 管理部署,
m.RELATIONHOSPITALNAME 関連医療機関,
m.SAVEPLACENAME 保管場所,
m.SCANID 管理番号,
rawtohex(m.LRID) LRID
from G_MULTIMEDIAORDER m
where  m.VALIDSTARTTIME between to_date(’<p>DATE2|抽出開始日|AddDays(-1)</p>’) and to_date(’<p>DATE2|抽出終了日|AddDays(0)</p>’)+1
and    m.OPERATIONFLAG != ’D’
order by m.UPDATEDATE desc

OkiToolのセットアップ?

OkiToolのセットアップは現在、ClickOnce で提供しています。

セットアップURLは

https://www.facebook.com/groups/634193283399495/

よりお尋ねください。