Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: ACHSEOBM

ACHSEOBM.m

Go to the documentation of this file.
  1. ACHSEOBM ; IHS/ITSC/TPF/PMF - BUILD CHS EOBR MESSAGE FILE ;
  1. ;;3.1;CONTRACT HEALTH MGMT SYSTEM;**15,16,21,22**;JUN 11, 2001;Build 43
  1. ;ACHS*3.1*15 1.26.2009 IHS/OIT/FCJ REMOVED DLAYGO WHEN ADDING MESSAGES
  1. ;ACHS*3.1*16 IHS.OIT.FCJ FIXED DUPLICATE MESSAGE ISSUE
  1. ;
  1. S (ACHSRCT,ACHSMCNT,ACHSMFLG)=0,ACHSOMSG=""
  1. K ACHSAEND
  1. U IO(0)
  1. W !,"BUILDING CHS EOBR MESSAGE FILE...",!!
  1. A1 ; Read past the FI header info at the top of the file.
  1. U IO
  1. ;ACHS*3.1*21 CHANGED NEXT LINE TO TEST FOR OS
  1. ;F R ACHSEOBR:5 G:ACHSEOBR="" B0A S:ACHSISAO ACHSEOBR=$E(ACHSEOBR,3,85) S ACHSRCT=ACHSRCT+1 G:ACHSRCT>100 END1^ACHSEOB1 Q:$E(ACHSEOBR,1,2)="$$" ; note for SAC: this is a file read, not an interactive read
  1. F R ACHSEOBR:5 G:ACHSEOBR="" B0A S:ACHSISAO ACHSEOBR=$S($$OS^ACHS=2:$E(ACHSEOBR,1,82),1:$E(ACHSEOBR,3,85)) S ACHSRCT=ACHSRCT+1 G:ACHSRCT>100 END1^ACHSEOB1 Q:$E(ACHSEOBR,1,2)="$$" ; note for SAC: this is a file read, not an interactive read
  1. ;
  1. B0 ;
  1. I +$E(ACHSEOBR,3,4)<1 G B0A
  1. S ACHSRCT=0,X=$S(ACHSISAO=0:9,ACHSISAO=1:8),ACHSEOBD=$E(ACHSEOBR,3,X)
  1. I 'ACHSISAO S ACHSEBSQ=+$P(ACHSEOBR," ",2)
  1. ;ACHS*3.1*22 MOD SEQ # TO READ ICD FOR ICD-9 FIX
  1. ;I ACHSISAO S X=ACHSEOBD,X=$E(X,5,6)_$E(X,1,4),ACHSEOBD=$S($E(X,1,2)>50:2,1:3)_X,ACHSAOSQ=+$P(ACHSEOBR," ",3)
  1. I ACHSISAO S X=ACHSEOBD,X=$E(X,5,6)_$E(X,1,4),ACHSEOBD=$S($E(X,1,2)>50:2,1:3)_X,ACHSAOSQ=$S($P(ACHSEOBR," ",3)?1N.N:+$P(ACHSEOBR," ",3),1:$P(ACHSEOBR," ",3))
  1. B2 ;
  1. U IO
  1. R ACHSEOBR:5 ;SAC-FILE READ
  1. ;I ACHSISAO S ACHSEOBR=$E(ACHSEOBR,3,85) ;ACHS*3.1*21
  1. S:ACHSISAO ACHSEOBR=$S($$OS^ACHS=2:$E(ACHSEOBR,1,82),1:$E(ACHSEOBR,3,85)) ;ACHS*3.1*21
  1. I ACHSRCT=1,$E(ACHSEOBR,1,2)="$$" U IO(0) W "NO MESSAGE RECORDS TO PROCESS" Q
  1. S ACHSRCT=ACHSRCT+1
  1. I $E(ACHSEOBR,1,2)="$$" G MSGEND
  1. S ACHSSEQ=$E(ACHSEOBR,1,3),ACHSMSG=$E(ACHSEOBR,4,7)
  1. I ACHSOMSG=ACHSMSG G B3
  1. ;ACHS*3.1*15 1.26.2009 IHS/OIT/FCJ REMOVED DLAYGO
  1. ;S DIC="^ACHSEOBM(",DIC(0)="ZML",X=ACHSMSG,DLAYGO=9002076
  1. S DIC="^ACHSEOBM(",DIC(0)="ZML",X=ACHSMSG
  1. U IO(0)
  1. S Y="" ;ACHS*3.1*16 IHS.OIT.FCJ ADDED LINE
  1. I $D(^ACHSEOBM("B",ACHSMSG)) S Y=$O(^ACHSEOBM("B",ACHSMSG,Y)) ;ACHS*3.1*16 IHS.OIT.FCJ NEW LINE CHANGED NXT LINE TO ELSE
  1. E D ^DIC
  1. ;K DLAYGO ;ACHS*3.1*16 IHS.OIT.FCJ DLAYGO NO LONGER BEING SET
  1. I +Y<1 U IO(0) W !,ACHSMSG," ADD TO EOBR MESSAGE FILE <FAILED> - NOTIFY SUPERVISOR" S ACHSTERR=1 D RTRN^ACHS G B2
  1. S DA=+Y,ACHSMCNT=ACHSMCNT+1,ACHSMLN=0
  1. U IO(0)
  1. W $J(ACHSMSG,10)
  1. K ^ACHSEOBM(DA,1) ; Remove old message text.
  1. B3 ;
  1. I 'ACHSISAO S ACHSM3=$E(ACHSEOBR,8,85) G B4
  1. I ACHSSEQ#2'=0 S ACHSM1=$E(ACHSEOBR,8,46),ACHSOMSG=ACHSMSG G B2
  1. S ACHSM2=$E(ACHSEOBR,8,46),ACHSM3=ACHSM1_ACHSM2
  1. B4 ;
  1. S ACHSMLN=ACHSMLN+1,^ACHSEOBM(DA,1,ACHSMLN,0)=$$SB^ACHS($$RPL^ACHS(ACHSM3," "," "))
  1. S $P(^ACHSEOBM(DA,1,0),U,3,4)=ACHSMLN_U_ACHSMLN
  1. S $P(^ACHSEOBM(DA,0),U,2)=DT,ACHSOMSG=ACHSMSG
  1. G B2
  1. ;
  1. MSGEND ;
  1. U IO(0)
  1. W !
  1. Q:ACHSMCNT=0
  1. W !!,ACHSMCNT," EOBR MESSAGES ADDED/UPDATED",!!
  1. Q:'ACHSISAO
  1. Q:+$$AOP^ACHS(2,9)=0
  1. Q:ACHSAOSQ="ICD9" ;ACHS*3.1*22 FX FOR READIN OF ICD-9 FX FILE
  1. I $$AOP^ACHS(2,9)="999" S $P(^ACHSAOP(DUZ(2),2),U,9)=0
  1. I $$AOP^ACHS(2,9)+1'=ACHSAOSQ S ACHSMFLG=2
  1. Q
  1. ;
  1. FAC ;
  1. I $D(^ACHSF(DUZ(2),17,"B",ACHSEOBD)) S ACHSMFLG=1 Q
  1. S X=""
  1. I ACHSFCSQ+1'=ACHSEBSQ S ACHSMFLG=2 Q
  1. Q
  1. ;
  1. B0A ;
  1. U IO(0)
  1. W *7,!,"PROCESSING ERROR ENCOUNTERED FOR EOBR FILE"
  1. D RTRN^ACHS
  1. S ACHSAEND=1 ;ACHS*3.1*21
  1. G ABEND^ACHSEOB
  1. ;