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

ACHSHV01.m

Go to the documentation of this file.
  1. ACHSHV01 ; IHS/ITSC/PMF - READ HI VOL NOTIFICATION REPORT ; [ 10/16/2001 8:16 AM ]
  1. ;;3.1;CONTRACT HEALTH MGMT SYSTEM;;JUN 11, 2001
  1. ;
  1. ; For description of the input records, see ACHSTM17.
  1. ;
  1. W @IOF,$$REPEAT^XLFSTR("*",52),!,"* READ CHS HV NOTIFICATION REPORT *",!,$$REPEAT^XLFSTR("*",52)
  1. I '$L($$AOP^ACHS(2,1)) D NODIR^ACHSMD0 G ABEND
  1. S (ACHSPTCT,ACHSFLG,ACHSPGNO,ACHSBLCT,ACHSLCT)=0
  1. A0 ; Select printer for report.
  1. S %ZIS="P",%ZIS("A")="Enter Device for Error Report: "
  1. D ^%ZIS
  1. I POP U IO(0) W !,*7,"Device Not Available -- Job Aborted" G ABEND
  1. A1 ; Open file selected in ACHSHV04.
  1. S ACHSZDEV=IO
  1. I $$OPEN^%ZISH($$AOP^ACHS(2,1),$P(^ACHSHVLG(ACHSV,1,ACHSNO,0),U,4),"R") U IO(0) W !!,"OPEN FAILURE ON DEVICE FOR FILE ",$P(^ACHSHVLG(ACHSV,1,ACHSNO,0),U,4) G ABEND
  1. S ACHSX=$P(ACHSUFLS(ACHSNO),U,5),ACHSFN=$E($P(^AUTTVNDR(ACHSX,0),U,1),1,30)
  1. S ACHSZDEV(1)=IO,IO=ACHSZDEV,ACHSZDEV=ACHSZDEV(1)
  1. K ACHSZDEV(1)
  1. D HDR1
  1. A3 ; Read from file, loop.
  1. U ACHSZDEV
  1. R ACHSDATA:1
  1. G ABEND:'$T
  1. G END:$$STATUS^%ZISH
  1. S ACHSBLFG=0
  1. D SEARCH
  1. I ACHSSKIP G A3
  1. INDRD ;
  1. I $L(ACHSDATA) G L1
  1. I ACHSBLFG=1 S ACHSBLCT=ACHSBLCT+1
  1. G A3
  1. ;
  1. L1 ; Set data into ^ACHSHVOP(.
  1. G L2:ACHSFLG=1,L3:ACHSFLG=2
  1. S ACHSPTCT=ACHSPTCT+1
  1. S X=$E(ACHSDATA,1,30)
  1. D SPREMOV
  1. S Y=$P(X,",",2)
  1. I $E(Y,1,1)=" " S Y=$E(Y,2,$L(Y)),X=$P(X,",",1)_","_Y
  1. S $P(^ACHSHVOP(ACHSPTCT),U,1)=X,X=$E(ACHSDATA,31,36)
  1. I +X=0 S X=""
  1. S $P(^ACHSHVOP(ACHSPTCT),U,4)=X,$P(^ACHSHVOP(ACHSPTCT),U,5)=+$E(ACHSDATA,43,44),X=$E(ACHSDATA,49,59)
  1. I +X=0 S X=""
  1. S $P(^ACHSHVOP(ACHSPTCT),U,6)=X
  1. K %DT
  1. S X=$E(ACHSDATA,63,72)
  1. D ^%DT
  1. I Y=-1 S Y=""
  1. S $P(^ACHSHVOP(ACHSPTCT),U,7)=Y,$P(^ACHSHVOP(ACHSPTCT),U,8)=$E(ACHSDATA,126,132),ACHSFLG=1
  1. G A3
  1. ;
  1. L2 ;
  1. S X=$E(ACHSDATA,1,25)
  1. D SPREMOV
  1. S $P(^ACHSHVOP(ACHSPTCT),U,2)=X,ACHSFLG=2
  1. G A3
  1. ;
  1. L3 ;
  1. S Y=$E(ACHSDATA,22,26),X=$E(ACHSDATA,1,20)
  1. D SPREMOV
  1. S W=$P(X,",",1),Z=$P(X,",",2)
  1. S:$E(Z,1,1)=" " Z=$E(Z,2,$L(Z))
  1. S X=W_","_Z_" "_Y,$P(^ACHSHVOP(ACHSPTCT),U,3)=X
  1. I $P(^ACHSHVOP(ACHSPTCT),U,4)="" U IO W ?10,"MISSING CHART NUMB",?35,$P(^ACHSHVOP(ACHSPTCT),U,1),?65,$P(^ACHSHVOP(ACHSPTCT),U,8),!
  1. I $P(^ACHSHVOP(ACHSPTCT),U,5)=0 U IO W ?10,"MISSING FIN CLASS",?35,$P(^ACHSHVOP(ACHSPTCT),U,1),?65,$P(^ACHSHVOP(ACHSPTCT),U,8),!
  1. I $P(^ACHSHVOP(ACHSPTCT),U,6)="" U IO W ?10,"MISSING SOC. SEC. #",?35,$P(^ACHSHVOP(ACHSPTCT),U,1),?65,$P(^ACHSHVOP(ACHSPTCT),U,8),!
  1. S ACHSLCT=ACHSLCT+1
  1. I ACHSLCT>55 D HDR1
  1. S ACHSFLG=0
  1. G A3
  1. ;
  1. END ; Write totals, close device(s), kill vars, quit.
  1. U IO(0)
  1. W !?10,"TOTAL RECORDS CONVERTED = ",ACHSPTCT
  1. D ^%ZISC
  1. S IO=ACHSZDEV,IONOFF=""
  1. D ^%ZISC
  1. K X,Y,Z,I,ACHSBLFG,ACHSPTCT,ACHSFLG,ACHSDATA,ACHSSKIP
  1. Q
  1. ;
  1. S ACHSSKIP=0
  1. I $L(ACHSDATA)=0 S ACHSBLFG=1 Q
  1. I $E(ACHSDATA,1,9)="PCC292-R2" S ACHSBLCT=0 G SRCHSKP
  1. I $E(ACHSDATA,1,15)="TOTAL PATIENTS:" G SRCHSKP
  1. I $E(ACHSDATA,1,9)="LHHS PICS" G SRCHSKP
  1. I $E(ACHSDATA,1,6)="NAME /" G SRCHSKP
  1. I $E(ACHSDATA,1,15)="MAILING ADDRESS" S ACHSSKIP=2
  1. Q
  1. ;
  1. SRCHSKP ;
  1. S ACHSSKIP=1
  1. Q
  1. ;
  1. SPREMOV ; Remove trailing spaces from X.
  1. F ACHSI=$L(X):-1:1 Q:$E(X,ACHSI,ACHSI)'=" " I $E(X,ACHSI,ACHSI)=" " S X=$E(X,1,ACHSI-1)
  1. Q
  1. ;
  1. HDR1 ; Print header.
  1. U IO
  1. S ACHSPGNO=ACHSPGNO+1,ACHSLCT=0
  1. W @IOF,?10,"OUTPATIENT NOTIFICATION REPORT -- CONVERSION ERRORS",?73,"PAGE ",ACHSPGNO,!?25,"FOR ",ACHSFN,!?10,$$REPEAT^XLFSTR("-",62),!?10,"TYPE OF ERROR",?35,"PATIENT NAME",?65,"ACCT # ",!?10,$$REPEAT^XLFSTR("-",62),!!
  1. Q
  1. ;
  1. ABEND ; Display error if device noopen or read fail.
  1. U IO(0)
  1. W !!,"ABNORNAL END OF JOB"
  1. I $$DIR^XBDIR("E","Enter <RETURN> to Continue")
  1. Q
  1. ;