- PSGWCL ;BHAM ISC/PTD,CML-Clear AMIS Exceptions ; 29 Dec 93 / 2:29 PM
- ;;2.3; Automatic Replenishment/Ward Stock ;;4 JAN 94
- W !!,"This option will show AR/WS drugs for which information is missing.",!,"The information MUST be supplied before the AMIS report can be printed.",!!
- ;GET DATES FOR AMIS REPORT
- BDT S %DT="AEX",%DT("A")="BEGINNING date for AMIS report: " D ^%DT K %DT G:Y<0 END S BDT=Y
- EDT S %DT="AEX",%DT(0)=BDT,%DT("A")="ENDING date for AMIS report: " D ^%DT K %DT G:Y<0 END S EDT=Y
- I '$O(^PSI(58.5,"AEX",BDT-1)) W !!,"No AMIS exceptions for selected dates." G END
- S QUEFLG=0 D ^PSGWCLP G:QUEFLG END
- CONT W !!,"Do you wish to edit incomplete data now" S %=1 D YN^DICN I %<0!(%=2) G END
- I '% W !?5,"Enter ""YES"" or ""NO""" G CONT
- ;LOOP THROUGH THE "AEX" CROSS-REFERENCE
- S DATDA=(BDT-1),(SITE,DRGDA,INC,MSG)=0
- DTLP S DATDA=$O(^PSI(58.5,"AEX",DATDA)),PSGWADT=$P(DATDA,".") G:(DATDA>EDT)!(DATDA="") MSG
- STLP S SITE=$O(^PSI(58.5,"AEX",DATDA,SITE)) G:'SITE DTLP
- DRGLP S DRGDA=$O(^PSI(58.5,"AEX",DATDA,SITE,DRGDA)) G:'DRGDA STLP
- ASK ;ASK FOR MISSING DRUG DATA
- S PSGWDN=$P(^PSI(58.5,DATDA,"S",SITE,"DRG",DRGDA,0),"^"),DRGNAM=$S($P($G(^PSDRUG(PSGWDN,0)),"^")'="":$P(^(0),"^"),1:"") I DRGNAM="" W !!,"The name for drug ",PSGWDN," is missing from the drug file.",!,"Notify your package coordinator!" G DRGLP
- I $D(LOC(PSGWDN)) D CHK G DRGLP
- W !!,"==> Information incomplete for: ",DRGNAM,!
- S INC=1,DIE="^PSDRUG(",DA=PSGWDN,DR="13;15;301;302" D ^DIE K DIE G:$D(Y) MSG S LOC(PSGWDN)="" D CHK G DRGLP
- CHK ;VERIFY THAT USER HAS ENTERED ALL NECESSARY DATA
- I $D(^PSDRUG(PSGWDN,660)) S LOC1=^(660),INC=0
- E S INC=1,MSG=1 Q
- I $D(^PSDRUG(PSGWDN,"PSG")) S LOC2=^("PSG"),INC=0
- E S INC=1,MSG=1 Q
- F J=3,5,6 I $P(LOC1,"^",J)="" S INC=1,MSG=1 Q
- F J=2,3 I $P(LOC2,"^",J)="" S INC=1,MSG=1 Q
- I INC=0 D UPAMIS
- Q
- MSG I INC!(MSG) W *7,!!,"DATA IS STILL MISSING! YOU WILL NOT BE ABLE",!,"TO PRINT AMIS UNTIL INFORMATION IS COMPLETE!!"
- E W !!,"DATA COMPLETE!!"
- END K PSGWCAT,PSGWQD,X,Y,BDT,EDT,SITE,DATDA,DRGDA,DRGNAM,LOC1,LOC2,INC,J,PSGWDN,CAT,COST,DOSE,FLD,FLDA,LOC,LOC3,PSGWADT,PSGWAOU,DA,DR,%,D0,DI,DIG,DIH,DIU,DIV,DQ,DTDA,QUEFLG,G,MSG Q
- ;
- UPAMIS ;UPDATE THE AMIS SUBFILE AND REMOVE INCOMPLETE FLAG & X-REF
- I '$O(^PSI(58.5,DATDA,"S",SITE,"DRG",DRGDA,"CAT",0)) D KILL Q
- F CAT=0:0 S CAT=$O(^PSI(58.5,DATDA,"S",SITE,"DRG",DRGDA,"CAT",CAT)) Q:'CAT S PSGWCAT=$P(^PSI(58.5,DATDA,"S",SITE,"DRG",DRGDA,"CAT",CAT,0),"^"),PSGWQD=$P(^(0),"^",2) D UPDATE
- Q
- ;
- UPDATE I PSGWCAT["R" S LOC3="^"_$E(PSGWCAT,2)
- D CALC^PSGWCAD
- AMIS D @($S(PSGWCAT'["R":"SETDSP^PSGWCAD",1:"SETRET^PSGWCAD"))
- KILL S $P(^PSI(58.5,DATDA,"S",SITE,"DRG",DRGDA,0),"^",2)=0
- K ^PSI(58.5,"AEX",DATDA,SITE,DRGDA)
- K PSGWCAT,PSGWQD,LOC3,DOSE,COST,FLD
- Q
- PSGWCL ;BHAM ISC/PTD,CML-Clear AMIS Exceptions ; 29 Dec 93 / 2:29 PM
- +1 ;;2.3; Automatic Replenishment/Ward Stock ;;4 JAN 94
- +2 WRITE !!,"This option will show AR/WS drugs for which information is missing.",!,"The information MUST be supplied before the AMIS report can be printed.",!!
- +3 ;GET DATES FOR AMIS REPORT
- BDT SET %DT="AEX"
- SET %DT("A")="BEGINNING date for AMIS report: "
- DO ^%DT
- KILL %DT
- IF Y<0
- GOTO END
- SET BDT=Y
- EDT SET %DT="AEX"
- SET %DT(0)=BDT
- SET %DT("A")="ENDING date for AMIS report: "
- DO ^%DT
- KILL %DT
- IF Y<0
- GOTO END
- SET EDT=Y
- +1 IF '$ORDER(^PSI(58.5,"AEX",BDT-1))
- WRITE !!,"No AMIS exceptions for selected dates."
- GOTO END
- +2 SET QUEFLG=0
- DO ^PSGWCLP
- IF QUEFLG
- GOTO END
- CONT WRITE !!,"Do you wish to edit incomplete data now"
- SET %=1
- DO YN^DICN
- IF %<0!(%=2)
- GOTO END
- +1 IF '%
- WRITE !?5,"Enter ""YES"" or ""NO"""
- GOTO CONT
- +2 ;LOOP THROUGH THE "AEX" CROSS-REFERENCE
- +3 SET DATDA=(BDT-1)
- SET (SITE,DRGDA,INC,MSG)=0
- DTLP SET DATDA=$ORDER(^PSI(58.5,"AEX",DATDA))
- SET PSGWADT=$PIECE(DATDA,".")
- IF (DATDA>EDT)!(DATDA="")
- GOTO MSG
- STLP SET SITE=$ORDER(^PSI(58.5,"AEX",DATDA,SITE))
- IF 'SITE
- GOTO DTLP
- DRGLP SET DRGDA=$ORDER(^PSI(58.5,"AEX",DATDA,SITE,DRGDA))
- IF 'DRGDA
- GOTO STLP
- ASK ;ASK FOR MISSING DRUG DATA
- +1 SET PSGWDN=$PIECE(^PSI(58.5,DATDA,"S",SITE,"DRG",DRGDA,0),"^")
- SET DRGNAM=$SELECT($PIECE($GET(^PSDRUG(PSGWDN,0)),"^")'="":$PIECE(^(0),"^"),1:"")
- IF DRGNAM=""
- WRITE !!,"The name for drug ",PSGWDN," is missing from the drug file.",!,"Notify your package coordinator!"
- GOTO DRGLP
- +2 IF $DATA(LOC(PSGWDN))
- DO CHK
- GOTO DRGLP
- +3 WRITE !!,"==> Information incomplete for: ",DRGNAM,!
- +4 SET INC=1
- SET DIE="^PSDRUG("
- SET DA=PSGWDN
- SET DR="13;15;301;302"
- DO ^DIE
- KILL DIE
- IF $DATA(Y)
- GOTO MSG
- SET LOC(PSGWDN)=""
- DO CHK
- GOTO DRGLP
- CHK ;VERIFY THAT USER HAS ENTERED ALL NECESSARY DATA
- +1 IF $DATA(^PSDRUG(PSGWDN,660))
- SET LOC1=^(660)
- SET INC=0
- +2 IF '$TEST
- SET INC=1
- SET MSG=1
- QUIT
- +3 IF $DATA(^PSDRUG(PSGWDN,"PSG"))
- SET LOC2=^("PSG")
- SET INC=0
- +4 IF '$TEST
- SET INC=1
- SET MSG=1
- QUIT
- +5 FOR J=3,5,6
- IF $PIECE(LOC1,"^",J)=""
- SET INC=1
- SET MSG=1
- QUIT
- +6 FOR J=2,3
- IF $PIECE(LOC2,"^",J)=""
- SET INC=1
- SET MSG=1
- QUIT
- +7 IF INC=0
- DO UPAMIS
- +8 QUIT
- MSG IF INC!(MSG)
- WRITE *7,!!,"DATA IS STILL MISSING! YOU WILL NOT BE ABLE",!,"TO PRINT AMIS UNTIL INFORMATION IS COMPLETE!!"
- +1 IF '$TEST
- WRITE !!,"DATA COMPLETE!!"
- END KILL PSGWCAT,PSGWQD,X,Y,BDT,EDT,SITE,DATDA,DRGDA,DRGNAM,LOC1,LOC2,INC,J,PSGWDN,CAT,COST,DOSE,FLD,FLDA,LOC,LOC3,PSGWADT,PSGWAOU,DA,DR,%,D0,DI,DIG,DIH,DIU,DIV,DQ,DTDA,QUEFLG,G,MSG
- QUIT
- +1 ;
- UPAMIS ;UPDATE THE AMIS SUBFILE AND REMOVE INCOMPLETE FLAG & X-REF
- +1 IF '$ORDER(^PSI(58.5,DATDA,"S",SITE,"DRG",DRGDA,"CAT",0))
- DO KILL
- QUIT
- +2 FOR CAT=0:0
- SET CAT=$ORDER(^PSI(58.5,DATDA,"S",SITE,"DRG",DRGDA,"CAT",CAT))
- IF 'CAT
- QUIT
- SET PSGWCAT=$PIECE(^PSI(58.5,DATDA,"S",SITE,"DRG",DRGDA,"CAT",CAT,0),"^")
- SET PSGWQD=$PIECE(^(0),"^",2)
- DO UPDATE
- +3 QUIT
- +4 ;
- UPDATE IF PSGWCAT["R"
- SET LOC3="^"_$EXTRACT(PSGWCAT,2)
- +1 DO CALC^PSGWCAD
- AMIS DO @($SELECT(PSGWCAT'["R":"SETDSP^PSGWCAD",1:"SETRET^PSGWCAD"))
- KILL SET $PIECE(^PSI(58.5,DATDA,"S",SITE,"DRG",DRGDA,0),"^",2)=0
- +1 KILL ^PSI(58.5,"AEX",DATDA,SITE,DRGDA)
- +2 KILL PSGWCAT,PSGWQD,LOC3,DOSE,COST,FLD
- +3 QUIT