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

ACMSRT.m

Go to the documentation of this file.
  1. ACMSRT ; IHS/TUCSON/TMJ - SORT CONTROLLER FOR REPORTS ; [ 02/10/2009 9:50 AM ]
  1. ;;2.0;ACM CASE MANAGEMENT SYSTEM;**4,6,8**;JAN 10, 1996
  1. EN ;PEP - ENTRY POINT FOR SORT VARIABLES
  1. K ACMQUIT
  1. D ^ACMSRT2
  1. Q:$D(ACMQUIT)
  1. EN1 D HEAD,CHOICE
  1. EXIT D EXIT^ACMSRT1
  1. Q
  1. S ACMX="REPORT SORTING UTILITY"
  1. W !!?80-$L(ACMX)\2,ACMX,!!?10,"The ",@ACMRVON,ACMRPT,@ACMRVOFF," report can be sorted by one or more",!?10,"of the following attributes. '<==' indicates a mandatory selection.",!
  1. K ACMX,ACMFORC
  1. Q
  1. CHOICE D M2
  1. C1 I $D(ACMXZ) W !!?10,"Sorting by: ",ACMXZ
  1. S DIR(0)="NOA^1:"_$S(ACMYI>1:ACMYI,1:1),DIR("A")=" Your choice: ",DIR("?")="Type "_$S(ACMYI>1:"a number from 1",1:"number 1: ")_$S(ACMYI>1:"-"_ACMYI_":",1:"")
  1. W !
  1. D ^DIR K DIR
  1. I $E(X)=U!(X="") S ACMQUIT="" Q
  1. I ACMUB(Y)="" W !!,"Already selected as a sort criterion." G C1
  1. S ACMZZ=Y
  1. G:'ACMZZ CHOICE
  1. OK S:'$D(ACMXZ) ACMXZ=""
  1. S ACMYZ=ACMU(ACMZZ),(X,ACMSNO)=+ACMYZ,ACMSNA=$P(ACMYZ,U,2),ACMCSTG=ACMCSTG_ACMZZ_U,ACMXZ=ACMXZ_$S(ACMXZ'="":", then ",1:"")_ACMSNA
  1. K ACMYZ
  1. S ACMUB(ACMZZ)=""
  1. W " ",ACMSNA
  1. OK1 I BY'="" S BY=BY_","
  1. S ACMNAV=^ACM(48.5,X,0)
  1. I $D(ACMDM),$P(^ACM(48.5,X,0),U,5)["41," F ACMJ=42,43,44,45,46,47,48,49,51,53,57 I ACMFILE=ACMJ,(($P(^ACM(48.5,X,0),U,2)="P"!($P(^(0),U,2)="D")!($P(^(0),U,2)="A")))!(ACMSNA["STATUS") S BY=BY_"REGISTER:," Q ;IHS/CIM/THL PATCH 4
  1. I ACMSNA["APPOINT",ACMFILE=41 S BY=BY_"CMS APPOINTMENT:,"
  1. I ACMSNA["REGISTER-" S BY=BY_"REGISTER,"
  1. K ACMJ
  1. S BY=BY_^ACM(48.5,X,3)
  1. I BY["EDITED NOT PRINTED" S BY="[ACM EDITED NOT PRINTED]",DIC=ACMDIC K FR,TO D PRT1 S ACMQUIT="" Q
  1. D @("S"_$P(ACMNAV,U,2)_"^ACMSRT1")
  1. K ACMNAV
  1. I $D(ACMQUIT) Q
  1. I $D(ACMFORC) K ACMFORC D PRINT Q
  1. I BY["[" S BY="["_$P(BY,"[",2) S BY=$P(BY,"]")_"]" D PRINT Q
  1. I ACMYI<2 D PRINT Q
  1. W !!,"Within ",ACMSNA,", want to sort by another attribute"
  1. S %=2 D YN^DICN
  1. I %Y=U S ACMQUIT="" Q
  1. I "Nn"[$E(%Y) D CHECK G:$D(ACMFORC) OK D PRINT Q
  1. W !!!
  1. S ACMN=ACMN+1
  1. G EN1
  1. M2 K ACMU
  1. S ACMYII=ACMYI\2+(ACMYI#2)
  1. S (ACMJ,ACMZ)=0
  1. F ACMJ=1:1:ACMYII D
  1. .I ACMUB(ACMJ)'="" D
  1. ..S (ACMU(ACMJ),ACMSRT)=ACMUB(ACMJ),X=$P(ACMSRT,U,2),Y=$P(ACMSRT,U),ACMYZ=$P(ACMSRT,U,3)
  1. ..W !?8,$J(ACMJ,3),") ",X I ACMYZ W " <==" S ACMMAND=ACMJ,ACMMANN=X,ACMMAN=Y_U_X
  1. .E W !?8,$J(ACMJ,3),") "
  1. .I $D(ACMUB(ACMJ+ACMYII)) D
  1. ..S ACMJ1=ACMJ+ACMYII
  1. ..S (ACMU(ACMJ1),ACMSRT)=ACMUB(ACMJ1),X=$P(ACMSRT,U,2),Y=$P(ACMSRT,U),ACMYZ=$P(ACMSRT,U,3)
  1. ..W ?45,$J(ACMJ1,3),") ",X I ACMYZ W " <==" S ACMMAND=ACMJ1,ACMMANN=X,ACMMAN=Y_U_X
  1. .E I $D(ACMJ1) W:$D(ACMUB(ACMJ1+1)) ?45,$J(ACMJ1,3),") "
  1. K ACMSRT,ACMZ,ACMYZ
  1. Q
  1. PS I ACMRPT["RECALL LETTERS" S ACMX="P" Q
  1. D PS^ACMSRT1
  1. Q
  1. PRINT I $D(ACMPP),$D(ACMDM),((ACMFILE'=41)&(ACMFILE'=48)) D PS Q:$D(ACMQUIT)
  1. PRNT S DIC=ACMDIC
  1. I $D(ACMDM),DIC["41",BY'["STATUS" S BY="@STATUS,"_BY,TO="ACTIVE,"_TO,FR="ACTIVE,"_FR
  1. I $D(ACMDM),DIC["41" S BY="@NAME OF REGISTER,"_BY,TO=ACMRGNA_","_TO,FR=ACMRGNA_","_FR G PRT1
  1. I $D(ACMDM),DIC'["41" F ACMJ=42,43,44,45,46,47,48,49,51,53,57 I ACMFILE=ACMJ S:BY'["STATUS" BY="REGISTER:,@STATUS,"_BY,TO="ACTIVE,"_TO,FR="ACTIVE,"_FR Q ;IHS/CIM/THL PATCH 4
  1. I $D(ACMDM),DIC'["41" F ACMJ=42,43,44,45,46,47,48,49,51,53,57 I ACMFILE=ACMJ S BY="@NAME OF REGISTER,"_BY,TO=ACMRGNA_","_TO,FR=ACMRGNA_","_FR Q
  1. K ACMJ
  1. PRT1 I ACMDIC'["." S ACMSDIC=$P(ACMDIC,",")_")" D:$E(ACMENTRY,1,4)'="APPL" ^ACMSTMP
  1. D ZIS
  1. I $D(ACMQUIT) K ACMQUIT Q
  1. S DIOEND="W:IOST[""C-"" !!,""End of report. Strike <CR> to continue."" R:IOST[""C-"" ACMX:300 W:$D(IOF) @IOF"
  1. W ! D WAIT^DICD W !
  1. S IOP=ION
  1. DIP S DIC=ACMDIC,DC=0
  1. D EN1^DIP
  1. D ^%ZISC
  1. Q
  1. ZIS I $E(ACMENTRY,1,3)="MPS" S DIR(0)="YO",DIR("A")="Include PCC HEALTH SUMMARY",DIR("B")="NO" W ! D ^DIR K DIR I Y=1 S ACMMHS="" D SELTYP^ACMPPDTX
  1. I $E(ACMENTRY,1,4)="APPL" S DIR(0)="YO",DIR("A")="Do you want to VIEW the Standard Letter before printing",DIR("B")="NO" W ! D ^DIR K DIR I Y=1 W ! S ACMBY=BY,ACMFR=FR,ACMTO=TO,ACMFLDS=FLDS D ^ACMLTR2 G:ACMLTREX=1 ACMLTREX D
  1. .S DIC=ACMDIC,BY=ACMBY,FLDS=ACMFLDS,L=0,FR=ACMFR,TO=ACMTO K ACMBY,ACMFLDS,ACMFR,ACMTO
  1. .Q
  1. K IOP
  1. S %ZIS="PMNQ"
  1. W !
  1. K IOP
  1. D ^%ZIS
  1. G:POP DONE
  1. S:ION["HOST" %ZIS("IOPAR")=IOPAR
  1. I IO=IO(0),$D(IO("Q")) W !,"Cannot Queue to Screen or Slave Printer!",! K IO("Q") G ZIS
  1. ;I IO'=IO(0),'$D(IO("Q")) W !,"I will QUEUE this report to run for you now." S IO("Q")=1
  1. I $D(IO("Q")) D TSK S ACMQUIT=""
  1. Q
  1. TSK S ZTRTN="DIP^ACMSRT",DIC=ACMDIC,IOP=ION
  1. S ZTSAVE("*")=""
  1. S ZTDESC="CMS REPORT",ZTIO=IO
  1. D ^%ZTLOAD
  1. W !,"REQUEST QUEUED!"
  1. K IO("Q"),ZTSK
  1. DONE I '$D(ZTQUEUED) D ^%ZISC
  1. S ACMQUIT=""
  1. Q
  1. CHECK I ACMCSTG[(U_ACMMAND_U) Q
  1. S ACMZZ=ACMMAND,ACMFORC="",ACMN=ACMN+1
  1. W !!,*7,"You must also sort by"
  1. Q
  1. ENTRY ;EP;VARIABLE TO CONTROL SORT
  1. S ACMENTRY=$T(@ACMENTRY^ACMCTRL1) G EN
  1. ;
  1. ACMLTREX ;Exit if User doesn't want to print letter
  1. K ACMLTREX G DONE
  1. ;
  1. BACKEXIT ;Tmp qued in bckgrnd
  1. K ACMBACK G DONE
  1. ;
  1. AMPM(FMDT) ;EP; return fileman date in AM/PM
  1. ;IHS/CMI/TMJ PATCH #6
  1. I $P(FMDT,".",2)="" Q $$FMTE^XLFDT(FMDT)
  1. I $L($P(FMDT,"."))'=7 Q ""
  1. S FMTE=$$FMTE^XLFDT(FMDT)
  1. S FMTED=$P(FMTE,"@")
  1. S FMTEMC=$P(FMTE,"@",2)
  1. S FMTEH=$E(FMTEMC,1,2)
  1. S FMTEM=$E(FMTEMC,4,5)
  1. I FMTEH=12 Q FMTED_"@"_FMTEH_":"_FMTEM_" PM"
  1. I FMTEH="00" Q FMTED_"@12:"_FMTEM_" AM"
  1. I FMTEH>12 Q FMTED_"@"_(FMTEH-12)_":"_FMTEM_" PM"
  1. Q FMTED_"@"_FMTEH_":"_FMTEM_" AM"
  1. Q