- PXRMCVRP ;SLC/PKR - Cover sheet reminder report. ;01/22/2020
- ;;2.0;CLINICAL REMINDERS;**42**;Feb 04, 2005;Build 245
- ;==============================
- ADDCAT(CATIEN,IDX,IND,LIST,REMLIST) ;Add reminders in a Category to
- ;the list.
- N CATLIST,CATIDX,CATIND,DEC,JND,REMIEN
- D CATREM^PXRMAPI0(CATIEN,.CATLIST)
- S JND=0
- F S JND=+$O(CATLIST(JND)) Q:JND=0 D
- . S DEC=.00001*JND
- . S CATIND=IND+DEC
- . S CATIDX=IDX+DEC
- . S REMIEN=CATLIST(JND)
- . S LIST(CATIND)=CATIDX_U_REMIEN
- . D ADDREM(REMIEN,CATIDX,CATIND,.LIST,.REMLIST)
- Q
- ;
- ;==============================
- ADDLIST(LIST,REMLIST) ;Add a list of reminders in the new parameter
- ;format to the final list.
- I '$D(LIST) Q
- N CODE,IEN,IDX,IND,TEMP
- S IND=0
- F S IND=+$O(LIST(IND)) Q:IND=0 D
- . S IDX=$P(LIST(IND),U,1)
- . S TEMP=$P(LIST(IND),U,2)
- . S CODE=$E(TEMP,2)
- . I CODE="R" S IEN=$P(TEMP,"R",2) D ADDREM(IEN,IDX,IND,.LIST,.REMLIST) Q
- . I CODE="C" S IEN=$P(TEMP,"C",2) D ADDCAT(IEN,IDX,IND,.LIST,.REMLIST)
- Q
- ;
- ;==============================
- ADDLISTO(LIST,REMLIST) ;Add a list of reminders in the old format to the
- ;final list.
- I '$D(LIST) Q
- N IEN,IDX,IND
- S IND=0
- F S IND=+$O(LIST(IND)) Q:IND=0 D
- . S IDX=$P(LIST(IND),U,1)
- . S IEN=$P(LIST(IND),U,2)
- . D ADDREM(IEN,IDX,IND,.LIST,.REMLIST)
- Q
- ;
- ;==============================
- ADDREM(IEN,IDX,IND,LIST,REMLIST) ;Add a reminder to the reminder list.
- ;If it is already on the reminder list don't add it again.
- I $D(REMLIST("IEN",IEN)) Q
- ;If it does not exist don't add it.
- I '$D(^PXD(811.9,IEN)) S $P(LIST(IND),U,3)="DOES NOT EXIST" Q
- ;If it is not active don't add it.
- I $P(^PXD(811.9,IEN,0),U,6)=1 S $P(LIST(IND),U,3)="INACTIVE" Q
- ;If it is not a cover sheet reminder don't add it.
- N USAGE
- S USAGE=$P(^PXD(811.9,IEN,100),U,4)
- I (USAGE["L")!(USAGE["O") S $P(LIST(IND),U,3)="NOT A COVER SHEET REMINDER" Q
- I (USAGE'["C")&(USAGE'["*") S $P(LIST(IND),U,3)="NOT A COVER SHEET REMINDER" Q
- S REMLIST(IDX)=IEN
- S REMLIST("IEN",IEN)=""
- Q
- ;
- ;==============================
- CPRSLIST(LIST,LVLLIST,USELECT) ;Build the cover sheet reminder list just like
- ;CPRS does.
- N ERR,LOCATION,LOCP,SERVICE,TLIST,TREMLIST,USER,USERP
- S LOCATION=USELECT("CPRS","LOCATION")
- S USER=USELECT("CPRS","USER")
- S LOCP=$P(LOCATION,U,1),USERP=$P(USER,U,1)
- D REMACCUM^PXRMCVRL(.LIST,"PKG","Q",1000)
- D REMACCUM^PXRMCVRL(.LIST,"SYS","Q",2000)
- D REMACCUM^PXRMCVRL(.LIST,"DIV","Q",3000)
- S SERVICE=$$GET1^DIQ(200,USERP,29,"I")
- I +SERVICE D
- . D REMACCUM^PXRMCVRL(.LIST,"SRV.`"_SERVICE,"Q",4000)
- . S USELECT("CPRS","SERVICE")=$$GET1^DIQ(200,USERP,29)
- I +LOCP D REMACCUM^PXRMCVRL(.LIST,"LOC.`"_LOCP,"Q",5000)
- D REMACCUM^PXRMCVRL(.LIST,"CLASS","Q",6000,"",USERP)
- D CPRSCVUC(USERP,.USELECT)
- D REMACCUM^PXRMCVRL(.LIST,"USR.`"_USERP,"Q",7000)
- D ADDLIST(.LIST,.TREMLIST) K TREMLIST("IEN")
- M REMLIST(LVLLIST(LI),"REM")=TREMLIST
- M REMLIST(LVLLIST(LI),"LIST")=LIST
- Q
- ;
- ;==============================
- CPRSCVUC(USER,USELECT) ;Return the cover sheet user classes the user is a
- ;member of.
- N CLASS,CLASSLIST,CLASSPARAM,ERR,IND
- S CLASSPARAM="ORQQPX COVER SHEET REM CLASSES"
- D GETLST^XPAR(.CLASSLIST,"SYS",CLASSPARAM,"Q",.ERR)
- S IND=0
- F S IND=$O(CLASSLIST(IND)) Q:'IND D
- . S CLASS=$P(CLASSLIST(IND),U,1)
- . I $$ISA^USRLM(USER,CLASS,.ERR) D
- .. S USELECT("CPRS","USER CLASS",CLASS)=$$CLNAME^USRLM(CLASS,1)
- Q
- ;
- ;==============================
- NEWRPP() ;Ask the user if they want to use the new reminder parameters.
- N DIR,DUOUT,DTOUT
- S DIR(0)="S^1:YES;2:NO"
- S DIR("B")="YES"
- W !,"Do you want to use the new reminder parameters?"
- D ^DIR
- I $D(DUOUT)!$D(DTOUT) Q 0
- Q $S(Y=1:1,Y=2:0)
- ;
- ;==============================
- NEWPARAM(LVLLIST,SELLIST,USELECT,REMLIST) ;Produce the reminder list using
- ;the new parameters.
- N ERR,IND,LI,LIST,TLIST,TREMLIST
- S LI=0
- F S LI=$O(SELLIST(LI)) Q:LI="" D
- . I LVLLIST(LI)="PACKAGE" D Q
- .. D REMACCUM^PXRMCVRL(.LIST,"PKG","Q",1000)
- .. K TLIST,TREMLIST
- .. M TLIST=LIST D ADDLIST(.TLIST,.TREMLIST) K TREMLIST("IEN")
- .. M REMLIST(LVLLIST(LI),"REM")=TREMLIST
- .. M REMLIST(LVLLIST(LI),"LIST")=TLIST
- . I LVLLIST(LI)="SYSTEM" D Q
- .. D REMACCUM^PXRMCVRL(.LIST,"SYS","Q",2000)
- .. K TLIST,TREMLIST
- .. M TLIST=LIST D ADDLIST(.TLIST,.TREMLIST) K TREMLIST("IEN")
- .. M REMLIST(LVLLIST(LI),"REM")=TREMLIST
- .. M REMLIST(LVLLIST(LI),"LIST")=TLIST
- . I LVLLIST(LI)="DIVISION" D Q
- .. D REMACCUM^PXRMCVRL(.LIST,"DIV.`"_$P(USELECT(LI),U,1),"Q",3000)
- .. K TLIST,TREMLIST
- .. M TLIST=LIST D ADDLIST(.TLIST,.TREMLIST) K TREMLIST("IEN")
- .. M REMLIST(LVLLIST(LI),"REM")=TREMLIST
- .. M REMLIST(LVLLIST(LI),"LIST")=TLIST
- . I LVLLIST(LI)="SERVICE" D Q
- .. D REMACCUM^PXRMCVRL(.LIST,"SRV.`"_$P(USELECT(LI),U,1),"Q",4000)
- .. K TLIST,TREMLIST
- .. M TLIST=LIST D ADDLIST(.TLIST,.TREMLIST) K TREMLIST("IEN")
- .. M REMLIST(LVLLIST(LI),"REM")=TREMLIST
- .. M REMLIST(LVLLIST(LI),"LIST")=TLIST
- . I LVLLIST(LI)="LOCATION" D Q
- .. D REMACCUM^PXRMCVRL(.LIST,"LOC.`"_$P(USELECT(LI),U,1),"Q",5000)
- .. K TLIST,TREMLIST
- .. M TLIST=LIST D ADDLIST(.TLIST,.TREMLIST) K TREMLIST("IEN")
- .. M REMLIST(LVLLIST(LI),"REM")=TREMLIST
- .. M REMLIST(LVLLIST(LI),"LIST")=TLIST
- . I LVLLIST(LI)="USER CLASS" D Q
- .. D REMACCUM^PXRMCVRL(.LIST,"CLASS","Q",6000,$P(USELECT(LI),U,1))
- .. K TLIST,TREMLIST
- .. M TLIST=LIST D ADDLIST(.TLIST,.TREMLIST) K TREMLIST("IEN")
- .. M REMLIST(LVLLIST(LI),"REM")=TREMLIST
- .. M REMLIST(LVLLIST(LI),"LIST")=TLIST
- . I LVLLIST(LI)="USER" D Q
- .. D REMACCUM^PXRMCVRL(.LIST,"USR.`"_$P(USELECT(LI),U,1),"Q",7000)
- .. K TLIST,TREMLIST
- .. M TLIST=LIST D ADDLIST(.TLIST,.TREMLIST) K TREMLIST("IEN")
- .. M REMLIST(LVLLIST(LI),"REM")=TREMLIST
- .. M REMLIST(LVLLIST(LI),"LIST")=TLIST
- . I LVLLIST(LI)="CPRS" D CPRSLIST(.LIST,.LVLLIST,.USELECT)
- Q
- ;
- ;==============================
- NEWREMP(USER) ;
- N ERR,GBL,RESULT,SERVICE
- S SERVICE=$$GET1^DIQ(200,USER,29,"I")
- D GETLST^XPAR(.RESULT,"USR.`"_USER_"^SRV.`"_SERVICE_"^DIV^SYS^PKG","ORQQPX NEW REMINDER PARAMS","I",.ERR)
- Q RESULT
- ;
- ;==============================
- OLDPARAM(LVLLIST,SELLIST,USELECT,REMLIST) ;Produce the reminder list using
- ;the old parameters. Under the old parameters the list is built
- ;processing the entity string from left to right, it stops with
- ;the first item in the entity list that is populated. Then entity
- ;list is built in the order: USER, LOCATION, SERVICE, DIVISION,
- ;SYSTEM, PACKAGE.
- N DIVISION,ENTITY,ERR,IND,LI,LIST,LOCATION,SERVICE,TENTITY,USER
- S LI=0
- F S LI=$O(SELLIST(LI)) Q:LI="" D
- . I LVLLIST(LI)="PACKAGE" D Q
- .. S $P(ENTITY,U,6)="PKG"
- .. K TENTITY
- .. S $P(TENTITY,U,6)="PKG"
- .. D OLDPARAML(LVLLIST(LI),TENTITY,.REMLIST)
- . I LVLLIST(LI)="SYSTEM" D Q
- .. S $P(ENTITY,U,5)="SYS"
- .. K TENTITY
- .. S $P(TENTITY,U,5)="SYS"
- .. D OLDPARAML(LVLLIST(LI),TENTITY,.REMLIST)
- . I LVLLIST(LI)="DIVISION" D Q
- .. S DIVISION="DIV.`"_$P(USELECT(LI),U,1)
- .. S $P(ENTITY,U,4)=DIVISION
- .. K TENTITY
- .. S $P(TENTITY,U,4)=DIVISION
- .. D OLDPARAML(LVLLIST(LI),TENTITY,.REMLIST)
- . I LVLLIST(LI)="SERVICE" D Q
- .. S SERVICE="SRV.`"_$P(USELECT(LI),U,1)
- .. S $P(ENTITY,U,3)=SERVICE
- .. K TENTITY
- .. S $P(TENTITY,U,3)=SERVICE
- .. D OLDPARAML(LVLLIST(LI),TENTITY,.REMLIST)
- . I LVLLIST(LI)="LOCATION" D Q
- .. S LOCATION="LOC.`"_$P(USELECT(LI),U,1)
- .. S $P(ENTITY,U,2)=LOCATION
- .. K TENTITY
- .. S $P(TENTITY,U,2)=LOCATION
- .. D OLDPARAML(LVLLIST(LI),TENTITY,.REMLIST)
- . I LVLLIST(LI)="USER" D Q
- .. S USER="USR.`"_$P(USELECT(LI),U,1)
- .. S $P(ENTITY,U,1)=USER
- .. K TENTITY
- .. S $P(TENTITY,U,1)=USER
- .. D OLDPARAML(LVLLIST(LI),TENTITY,.REMLIST)
- . I LVLLIST(LI)="CPRS" D
- .. S USER=USELECT("CPRS","USER")
- .. S LOCATION=USELECT("CPRS","LOCATION")
- .. S SERVICE=$$GET1^DIQ(200,$P(USER,U,1),29,"I")
- .. S ENTITY="USR.`"_$P(USER,U,1)_U_"LOC.`"_$P(LOCATION,U,1)_U_"SRV.`"_SERVICE_U_"DIV^SYS^PKG"
- .. D OLDPARAML(LVLLIST(LI),ENTITY,.REMLIST)
- D GETLST^XPAR(.LIST,ENTITY,"ORQQPX SEARCH ITEMS","Q",.ERR)
- D ADDLISTO(.LIST,.REMLIST) K REMLIST("IEN")
- Q
- ;
- ;==============================
- OLDPARAML(LEVEL,ENTITY,REMLIST) ;Create the old parameter list at a
- ;specific level.
- N LIST,TREMLIST
- D GETLST^XPAR(.LIST,ENTITY,"ORQQPX SEARCH ITEMS","Q",.ERR)
- D ADDLISTO(.LIST,.TREMLIST) K TREMLIST("IEN")
- M REMLIST(LEVEL,"REM")=TREMLIST
- M REMLIST(LEVEL,"LIST")=LIST
- Q
- ;
- ;==============================
- REPD ;Main report driver.
- N DONE,LI,LVLLIST,NEWRP,NUM,REMLIST,SELLIST,USELDONE,USELECT
- S DONE=0
- W !,"Clinical Reminders Cover Sheet Reminder List Report"
- S NEWRP=$$NEWRPP
- F Q:DONE D
- .;Get a list of levels for the report.
- . D SELLIST(NEWRP,.LVLLIST,.SELLIST)
- . I '$D(SELLIST) S DONE=1 Q
- . K REMLIST,USELECT
- . S (LI,USELDONE)=0
- . F S LI=$O(SELLIST(LI)) Q:(LI="")!(USELDONE) D
- .. I LVLLIST(LI)="DIVISION" D Q
- ... S USELECT(LI)=$$SELECT(4,"Select the division: ")
- ... I USELECT(LI)=-1 S USELDONE=1
- .. I LVLLIST(LI)="SERVICE" D Q
- ... S USELECT(LI)=$$SELECT(49,"Select the service: ")
- ... I USELECT(LI)=-1 S USELDONE=1
- .. I LVLLIST(LI)="LOCATION" D Q
- ... S USELECT(LI)=$$SELECT(44,"Select the location: ")
- ... I USELECT(LI)=-1 S USELDONE=1
- .. I LVLLIST(LI)="USER CLASS" D Q
- ... S USELECT(LI)=$$SELECT(8930,"Select the user class: ")
- ... I USELECT(LI)=-1 S USELDONE=1
- .. I LVLLIST(LI)="USER" D Q
- ... S USELECT(LI)=$$SELECT(200,"Select the user: ")
- ... I USELECT(LI)=-1 S USELDONE=1
- .. I LVLLIST(LI)="CPRS" D Q
- ... S USELECT("CPRS","USER")=$$SELECT(200,"Select the user: ")
- ... I USELECT("CPRS","USER")=-1 S USELDONE=1 Q
- ... S USELECT("CPRS","LOCATION")=$$SELECT(44,"Select the location: ")
- ... I USELECT("CPRS","LOCATION")=-1 S USELDONE=1
- . I USELDONE=1 Q
- . I NEWRP D NEWPARAM(.LVLLIST,.SELLIST,.USELECT,.REMLIST)
- . I 'NEWRP D OLDPARAM(.LVLLIST,.SELLIST,.USELECT,.REMLIST)
- . K REMLIST("IEN")
- .;Produce the report.
- . D REPORT(NEWRP,.LVLLIST,.SELLIST,.USELECT,.REMLIST)
- Q
- ;
- ;==============================
- REPORT(NEWRP,LVLLIST,SELLIST,USELECT,REMLIST) ;Generate the report.
- N BOP,FIRST,IEN,IND,NDEF,NL,LEVELS,LI,OUTPUT,SELECT,TEMP
- S NL=0
- S NL=NL+1,OUTPUT(NL)="Report Criteria"
- S NL=NL+1,OUTPUT(NL)="Use new cover sheet parameters: "_$S(NEWRP=1:"YES",1:"NO")
- S NL=NL+1,OUTPUT(NL)="Selected levels:"
- S LI=0
- F S LI=$O(SELLIST(LI)) Q:LI="" D
- . S NL=NL+1,OUTPUT(NL)=" "_LVLLIST(LI)
- . S SELECT=$G(USELECT(LI))
- . I SELECT=-1 S NL=NL+1,OUTPUT(NL)=" Value - No selection"
- . I $P(SELECT,U,2)'="" S NL=NL+1,OUTPUT(NL)=" Value - "_$P(SELECT,U,2)
- . I LVLLIST(LI)="CPRS" D
- .. S NL=NL+1,OUTPUT(NL)=" User - "_$P(USELECT("CPRS","USER"),U,2)
- .. S NL=NL+1,OUTPUT(NL)=" Location - "_$P(USELECT("CPRS","LOCATION"),U,2)
- .. I 'NEWRP Q
- .. S NL=NL+1,OUTPUT(NL)=" Service - "_USELECT("CPRS","SERVICE")
- .. S IND=0
- .. F S IND=$O(USELECT("CPRS","USER CLASS",IND)) Q:IND="" D
- ... S NL=NL+1,OUTPUT(NL)=" User Class - "_USELECT("CPRS","USER CLASS",IND)
- S NL=NL+1,OUTPUT(NL)=""
- S FIRST=$O(SELLIST(0))
- S LEVELS="",LI=0
- F S LI=$O(SELLIST(LI)) Q:LI="" D
- . S NL=NL+1,OUTPUT(NL)=""
- . I NEWRP D
- .. I LI>FIRST S LEVELS=LEVELS_","
- .. S LEVELS=LEVELS_" "_LVLLIST(LI)
- .. S NL=NL+1,OUTPUT(NL)="Reminder list at"_LEVELS
- .. S OUTPUT(NL)=OUTPUT(NL)_$S(LI=FIRST:" level",1:" levels")
- . I 'NEWRP D
- .. S LEVELS=LVLLIST(LI)
- .. S NL=NL+1,OUTPUT(NL)="Reminder list at the "_LEVELS_" level"
- . S IND=0
- . F S IND=+$O(REMLIST(LVLLIST(LI),"LIST",IND)) Q:IND=0 D
- .. S NL=NL+1,OUTPUT(NL)="LIST("_IND_")="_REMLIST(LVLLIST(LI),"LIST",IND)
- . S IND="",NDEF=0
- . S NL=NL+1,OUTPUT(NL)=""
- . S NL=NL+1,OUTPUT(NL)="Reminders in Display Order"
- . F S IND=$O(REMLIST(LVLLIST(LI),"REM",IND)) Q:IND="" D
- .. S NDEF=NDEF+1
- .. S IEN=REMLIST(LVLLIST(LI),"REM",IND)
- .. S TEMP=^PXD(811.9,IEN,0)
- .. I NDEF>1 S NL=NL+1,OUTPUT(NL)=""
- .. S NL=NL+1,OUTPUT(NL)="Name - "_$P(TEMP,U,1)_" (IEN="_IEN_")"
- .. S NL=NL+1,OUTPUT(NL)="Print Name - "_$P(TEMP,U,3)
- . S NL=NL+1,OUTPUT(NL)=""
- . S NL=NL+1,OUTPUT(NL)="There are "_NDEF_" reminders on the list."
- I 'NEWRP,'$D(REMLIST("CPRS")) D
- . S NL=NL+1,OUTPUT(NL)=""
- . S NL=NL+1,OUTPUT(NL)="Final Reminder List"
- . S IND=0,NDEF=0
- .F S IND=+$O(REMLIST(IND)) Q:IND=0 D
- .. S NDEF=NDEF+1
- .. S IEN=REMLIST(IND)
- .. S TEMP=^PXD(811.9,IEN,0)
- .. I NDEF>1 S NL=NL+1,OUTPUT(NL)=""
- .. S NL=NL+1,OUTPUT(NL)="Name - "_$P(TEMP,U,1)
- .. S NL=NL+1,OUTPUT(NL)="Print Name - "_$P(TEMP,U,3)
- . S NL=NL+1,OUTPUT(NL)=""
- . S NL=NL+1,OUTPUT(NL)="There are "_NDEF_" reminders on the list."
- . S NL=NL+1,OUTPUT(NL)=""
- S BOP=$$BORP^PXRMUTIL("B")
- I BOP="B" D
- . S X="IORESET"
- . D ENDR^%ZISS
- . D BROWSE^DDBR("OUTPUT","NR","CPRS Cover Sheet Reminder List")
- . W IORESET
- . D KILL^%ZISS
- I BOP="P" D GPRINT^PXRMUTIL("OUTPUT")
- Q
- ;
- ;==============================
- SELECT(FILENUM,PROMPT) ;Let the user make a selection.
- N DIC,DONE,X,Y
- S DIC=FILENUM,DIC(0)="AEO"
- S DIC("A")=PROMPT
- S DONE=0
- F Q:DONE D
- . D ^DIC
- . I X'="" S DONE=1
- Q Y
- ;
- ;==============================
- SELLIST(NEWRP,LVLLIST,OLIST) ;Build a list of selections and let the user
- ;select from the list.
- N CPRSLVL,DIR,DIROUT,DIRUT,DTOUT,DUOUT,IND,NLVL,SELLIST,X,Y
- K OLIST
- S NLVL=0
- S NLVL=NLVL+1,SELLIST(NLVL)=" "_$J(NLVL,4)_" - PACKAGE",LVLLIST(NLVL)="PACKAGE"
- S NLVL=NLVL+1,SELLIST(NLVL)=" "_$J(NLVL,4)_" - SYSTEM",LVLLIST(NLVL)="SYSTEM"
- S NLVL=NLVL+1,SELLIST(NLVL)=" "_$J(NLVL,4)_" - DIVISION",LVLLIST(NLVL)="DIVISION"
- S NLVL=NLVL+1,SELLIST(NLVL)=" "_$J(NLVL,4)_" - SERVICE",LVLLIST(NLVL)="SERVICE"
- S NLVL=NLVL+1,SELLIST(NLVL)=" "_$J(NLVL,4)_" - LOCATION",LVLLIST(NLVL)="LOCATION"
- I NEWRP S NLVL=NLVL+1,SELLIST(NLVL)=" "_$J(NLVL,4)_" - USER CLASS",LVLLIST(NLVL)="USER CLASS"
- S NLVL=NLVL+1,SELLIST(NLVL)=" "_$J(NLVL,4)_" - USER",LVLLIST(NLVL)="USER"
- S NLVL=NLVL+1,SELLIST(NLVL)=" "_$J(NLVL,4)_" - CPRS",LVLLIST(NLVL)="CPRS"
- S CPRSLVL=NLVL
- M DIR("A")=SELLIST
- S DIR("A")="Enter your list for the report"
- S DIR(0)="LO^1:"_NLVL
- W !!,"Select from the following levels:"
- D ^DIR
- I $D(DIROUT)!$D(DIRUT) K OLIST Q
- I $D(DUOUT)!$D(DTOUT) K OLIST Q
- ;If the list contains CPRS only return CPRS.
- I Y[CPRSLVL S Y=CPRSLVL_","
- ;Make sure the list is ordered.
- F IND=1:1:$L(Y,",")-1 S OLIST($P(Y,",",IND))=""
- Q
- ;
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPXRMCVRP 14346 printed Apr 23, 2025@17:57:52 Page 2
- PXRMCVRP ;SLC/PKR - Cover sheet reminder report. ;01/22/2020
- +1 ;;2.0;CLINICAL REMINDERS;**42**;Feb 04, 2005;Build 245
- +2 ;==============================
- ADDCAT(CATIEN,IDX,IND,LIST,REMLIST) ;Add reminders in a Category to
- +1 ;the list.
- +2 NEW CATLIST,CATIDX,CATIND,DEC,JND,REMIEN
- +3 DO CATREM^PXRMAPI0(CATIEN,.CATLIST)
- +4 SET JND=0
- +5 FOR
- SET JND=+$ORDER(CATLIST(JND))
- if JND=0
- QUIT
- Begin DoDot:1
- +6 SET DEC=.00001*JND
- +7 SET CATIND=IND+DEC
- +8 SET CATIDX=IDX+DEC
- +9 SET REMIEN=CATLIST(JND)
- +10 SET LIST(CATIND)=CATIDX_U_REMIEN
- +11 DO ADDREM(REMIEN,CATIDX,CATIND,.LIST,.REMLIST)
- End DoDot:1
- +12 QUIT
- +13 ;
- +14 ;==============================
- ADDLIST(LIST,REMLIST) ;Add a list of reminders in the new parameter
- +1 ;format to the final list.
- +2 IF '$DATA(LIST)
- QUIT
- +3 NEW CODE,IEN,IDX,IND,TEMP
- +4 SET IND=0
- +5 FOR
- SET IND=+$ORDER(LIST(IND))
- if IND=0
- QUIT
- Begin DoDot:1
- +6 SET IDX=$PIECE(LIST(IND),U,1)
- +7 SET TEMP=$PIECE(LIST(IND),U,2)
- +8 SET CODE=$EXTRACT(TEMP,2)
- +9 IF CODE="R"
- SET IEN=$PIECE(TEMP,"R",2)
- DO ADDREM(IEN,IDX,IND,.LIST,.REMLIST)
- QUIT
- +10 IF CODE="C"
- SET IEN=$PIECE(TEMP,"C",2)
- DO ADDCAT(IEN,IDX,IND,.LIST,.REMLIST)
- End DoDot:1
- +11 QUIT
- +12 ;
- +13 ;==============================
- ADDLISTO(LIST,REMLIST) ;Add a list of reminders in the old format to the
- +1 ;final list.
- +2 IF '$DATA(LIST)
- QUIT
- +3 NEW IEN,IDX,IND
- +4 SET IND=0
- +5 FOR
- SET IND=+$ORDER(LIST(IND))
- if IND=0
- QUIT
- Begin DoDot:1
- +6 SET IDX=$PIECE(LIST(IND),U,1)
- +7 SET IEN=$PIECE(LIST(IND),U,2)
- +8 DO ADDREM(IEN,IDX,IND,.LIST,.REMLIST)
- End DoDot:1
- +9 QUIT
- +10 ;
- +11 ;==============================
- ADDREM(IEN,IDX,IND,LIST,REMLIST) ;Add a reminder to the reminder list.
- +1 ;If it is already on the reminder list don't add it again.
- +2 IF $DATA(REMLIST("IEN",IEN))
- QUIT
- +3 ;If it does not exist don't add it.
- +4 IF '$DATA(^PXD(811.9,IEN))
- SET $PIECE(LIST(IND),U,3)="DOES NOT EXIST"
- QUIT
- +5 ;If it is not active don't add it.
- +6 IF $PIECE(^PXD(811.9,IEN,0),U,6)=1
- SET $PIECE(LIST(IND),U,3)="INACTIVE"
- QUIT
- +7 ;If it is not a cover sheet reminder don't add it.
- +8 NEW USAGE
- +9 SET USAGE=$PIECE(^PXD(811.9,IEN,100),U,4)
- +10 IF (USAGE["L")!(USAGE["O")
- SET $PIECE(LIST(IND),U,3)="NOT A COVER SHEET REMINDER"
- QUIT
- +11 IF (USAGE'["C")&(USAGE'["*")
- SET $PIECE(LIST(IND),U,3)="NOT A COVER SHEET REMINDER"
- QUIT
- +12 SET REMLIST(IDX)=IEN
- +13 SET REMLIST("IEN",IEN)=""
- +14 QUIT
- +15 ;
- +16 ;==============================
- CPRSLIST(LIST,LVLLIST,USELECT) ;Build the cover sheet reminder list just like
- +1 ;CPRS does.
- +2 NEW ERR,LOCATION,LOCP,SERVICE,TLIST,TREMLIST,USER,USERP
- +3 SET LOCATION=USELECT("CPRS","LOCATION")
- +4 SET USER=USELECT("CPRS","USER")
- +5 SET LOCP=$PIECE(LOCATION,U,1)
- SET USERP=$PIECE(USER,U,1)
- +6 DO REMACCUM^PXRMCVRL(.LIST,"PKG","Q",1000)
- +7 DO REMACCUM^PXRMCVRL(.LIST,"SYS","Q",2000)
- +8 DO REMACCUM^PXRMCVRL(.LIST,"DIV","Q",3000)
- +9 SET SERVICE=$$GET1^DIQ(200,USERP,29,"I")
- +10 IF +SERVICE
- Begin DoDot:1
- +11 DO REMACCUM^PXRMCVRL(.LIST,"SRV.`"_SERVICE,"Q",4000)
- +12 SET USELECT("CPRS","SERVICE")=$$GET1^DIQ(200,USERP,29)
- End DoDot:1
- +13 IF +LOCP
- DO REMACCUM^PXRMCVRL(.LIST,"LOC.`"_LOCP,"Q",5000)
- +14 DO REMACCUM^PXRMCVRL(.LIST,"CLASS","Q",6000,"",USERP)
- +15 DO CPRSCVUC(USERP,.USELECT)
- +16 DO REMACCUM^PXRMCVRL(.LIST,"USR.`"_USERP,"Q",7000)
- +17 DO ADDLIST(.LIST,.TREMLIST)
- KILL TREMLIST("IEN")
- +18 MERGE REMLIST(LVLLIST(LI),"REM")=TREMLIST
- +19 MERGE REMLIST(LVLLIST(LI),"LIST")=LIST
- +20 QUIT
- +21 ;
- +22 ;==============================
- CPRSCVUC(USER,USELECT) ;Return the cover sheet user classes the user is a
- +1 ;member of.
- +2 NEW CLASS,CLASSLIST,CLASSPARAM,ERR,IND
- +3 SET CLASSPARAM="ORQQPX COVER SHEET REM CLASSES"
- +4 DO GETLST^XPAR(.CLASSLIST,"SYS",CLASSPARAM,"Q",.ERR)
- +5 SET IND=0
- +6 FOR
- SET IND=$ORDER(CLASSLIST(IND))
- if 'IND
- QUIT
- Begin DoDot:1
- +7 SET CLASS=$PIECE(CLASSLIST(IND),U,1)
- +8 IF $$ISA^USRLM(USER,CLASS,.ERR)
- Begin DoDot:2
- +9 SET USELECT("CPRS","USER CLASS",CLASS)=$$CLNAME^USRLM(CLASS,1)
- End DoDot:2
- End DoDot:1
- +10 QUIT
- +11 ;
- +12 ;==============================
- NEWRPP() ;Ask the user if they want to use the new reminder parameters.
- +1 NEW DIR,DUOUT,DTOUT
- +2 SET DIR(0)="S^1:YES;2:NO"
- +3 SET DIR("B")="YES"
- +4 WRITE !,"Do you want to use the new reminder parameters?"
- +5 DO ^DIR
- +6 IF $DATA(DUOUT)!$DATA(DTOUT)
- QUIT 0
- +7 QUIT $SELECT(Y=1:1,Y=2:0)
- +8 ;
- +9 ;==============================
- NEWPARAM(LVLLIST,SELLIST,USELECT,REMLIST) ;Produce the reminder list using
- +1 ;the new parameters.
- +2 NEW ERR,IND,LI,LIST,TLIST,TREMLIST
- +3 SET LI=0
- +4 FOR
- SET LI=$ORDER(SELLIST(LI))
- if LI=""
- QUIT
- Begin DoDot:1
- +5 IF LVLLIST(LI)="PACKAGE"
- Begin DoDot:2
- +6 DO REMACCUM^PXRMCVRL(.LIST,"PKG","Q",1000)
- +7 KILL TLIST,TREMLIST
- +8 MERGE TLIST=LIST
- DO ADDLIST(.TLIST,.TREMLIST)
- KILL TREMLIST("IEN")
- +9 MERGE REMLIST(LVLLIST(LI),"REM")=TREMLIST
- +10 MERGE REMLIST(LVLLIST(LI),"LIST")=TLIST
- End DoDot:2
- QUIT
- +11 IF LVLLIST(LI)="SYSTEM"
- Begin DoDot:2
- +12 DO REMACCUM^PXRMCVRL(.LIST,"SYS","Q",2000)
- +13 KILL TLIST,TREMLIST
- +14 MERGE TLIST=LIST
- DO ADDLIST(.TLIST,.TREMLIST)
- KILL TREMLIST("IEN")
- +15 MERGE REMLIST(LVLLIST(LI),"REM")=TREMLIST
- +16 MERGE REMLIST(LVLLIST(LI),"LIST")=TLIST
- End DoDot:2
- QUIT
- +17 IF LVLLIST(LI)="DIVISION"
- Begin DoDot:2
- +18 DO REMACCUM^PXRMCVRL(.LIST,"DIV.`"_$PIECE(USELECT(LI),U,1),"Q",3000)
- +19 KILL TLIST,TREMLIST
- +20 MERGE TLIST=LIST
- DO ADDLIST(.TLIST,.TREMLIST)
- KILL TREMLIST("IEN")
- +21 MERGE REMLIST(LVLLIST(LI),"REM")=TREMLIST
- +22 MERGE REMLIST(LVLLIST(LI),"LIST")=TLIST
- End DoDot:2
- QUIT
- +23 IF LVLLIST(LI)="SERVICE"
- Begin DoDot:2
- +24 DO REMACCUM^PXRMCVRL(.LIST,"SRV.`"_$PIECE(USELECT(LI),U,1),"Q",4000)
- +25 KILL TLIST,TREMLIST
- +26 MERGE TLIST=LIST
- DO ADDLIST(.TLIST,.TREMLIST)
- KILL TREMLIST("IEN")
- +27 MERGE REMLIST(LVLLIST(LI),"REM")=TREMLIST
- +28 MERGE REMLIST(LVLLIST(LI),"LIST")=TLIST
- End DoDot:2
- QUIT
- +29 IF LVLLIST(LI)="LOCATION"
- Begin DoDot:2
- +30 DO REMACCUM^PXRMCVRL(.LIST,"LOC.`"_$PIECE(USELECT(LI),U,1),"Q",5000)
- +31 KILL TLIST,TREMLIST
- +32 MERGE TLIST=LIST
- DO ADDLIST(.TLIST,.TREMLIST)
- KILL TREMLIST("IEN")
- +33 MERGE REMLIST(LVLLIST(LI),"REM")=TREMLIST
- +34 MERGE REMLIST(LVLLIST(LI),"LIST")=TLIST
- End DoDot:2
- QUIT
- +35 IF LVLLIST(LI)="USER CLASS"
- Begin DoDot:2
- +36 DO REMACCUM^PXRMCVRL(.LIST,"CLASS","Q",6000,$PIECE(USELECT(LI),U,1))
- +37 KILL TLIST,TREMLIST
- +38 MERGE TLIST=LIST
- DO ADDLIST(.TLIST,.TREMLIST)
- KILL TREMLIST("IEN")
- +39 MERGE REMLIST(LVLLIST(LI),"REM")=TREMLIST
- +40 MERGE REMLIST(LVLLIST(LI),"LIST")=TLIST
- End DoDot:2
- QUIT
- +41 IF LVLLIST(LI)="USER"
- Begin DoDot:2
- +42 DO REMACCUM^PXRMCVRL(.LIST,"USR.`"_$PIECE(USELECT(LI),U,1),"Q",7000)
- +43 KILL TLIST,TREMLIST
- +44 MERGE TLIST=LIST
- DO ADDLIST(.TLIST,.TREMLIST)
- KILL TREMLIST("IEN")
- +45 MERGE REMLIST(LVLLIST(LI),"REM")=TREMLIST
- +46 MERGE REMLIST(LVLLIST(LI),"LIST")=TLIST
- End DoDot:2
- QUIT
- +47 IF LVLLIST(LI)="CPRS"
- DO CPRSLIST(.LIST,.LVLLIST,.USELECT)
- End DoDot:1
- +48 QUIT
- +49 ;
- +50 ;==============================
- NEWREMP(USER) ;
- +1 NEW ERR,GBL,RESULT,SERVICE
- +2 SET SERVICE=$$GET1^DIQ(200,USER,29,"I")
- +3 DO GETLST^XPAR(.RESULT,"USR.`"_USER_"^SRV.`"_SERVICE_"^DIV^SYS^PKG","ORQQPX NEW REMINDER PARAMS","I",.ERR)
- +4 QUIT RESULT
- +5 ;
- +6 ;==============================
- OLDPARAM(LVLLIST,SELLIST,USELECT,REMLIST) ;Produce the reminder list using
- +1 ;the old parameters. Under the old parameters the list is built
- +2 ;processing the entity string from left to right, it stops with
- +3 ;the first item in the entity list that is populated. Then entity
- +4 ;list is built in the order: USER, LOCATION, SERVICE, DIVISION,
- +5 ;SYSTEM, PACKAGE.
- +6 NEW DIVISION,ENTITY,ERR,IND,LI,LIST,LOCATION,SERVICE,TENTITY,USER
- +7 SET LI=0
- +8 FOR
- SET LI=$ORDER(SELLIST(LI))
- if LI=""
- QUIT
- Begin DoDot:1
- +9 IF LVLLIST(LI)="PACKAGE"
- Begin DoDot:2
- +10 SET $PIECE(ENTITY,U,6)="PKG"
- +11 KILL TENTITY
- +12 SET $PIECE(TENTITY,U,6)="PKG"
- +13 DO OLDPARAML(LVLLIST(LI),TENTITY,.REMLIST)
- End DoDot:2
- QUIT
- +14 IF LVLLIST(LI)="SYSTEM"
- Begin DoDot:2
- +15 SET $PIECE(ENTITY,U,5)="SYS"
- +16 KILL TENTITY
- +17 SET $PIECE(TENTITY,U,5)="SYS"
- +18 DO OLDPARAML(LVLLIST(LI),TENTITY,.REMLIST)
- End DoDot:2
- QUIT
- +19 IF LVLLIST(LI)="DIVISION"
- Begin DoDot:2
- +20 SET DIVISION="DIV.`"_$PIECE(USELECT(LI),U,1)
- +21 SET $PIECE(ENTITY,U,4)=DIVISION
- +22 KILL TENTITY
- +23 SET $PIECE(TENTITY,U,4)=DIVISION
- +24 DO OLDPARAML(LVLLIST(LI),TENTITY,.REMLIST)
- End DoDot:2
- QUIT
- +25 IF LVLLIST(LI)="SERVICE"
- Begin DoDot:2
- +26 SET SERVICE="SRV.`"_$PIECE(USELECT(LI),U,1)
- +27 SET $PIECE(ENTITY,U,3)=SERVICE
- +28 KILL TENTITY
- +29 SET $PIECE(TENTITY,U,3)=SERVICE
- +30 DO OLDPARAML(LVLLIST(LI),TENTITY,.REMLIST)
- End DoDot:2
- QUIT
- +31 IF LVLLIST(LI)="LOCATION"
- Begin DoDot:2
- +32 SET LOCATION="LOC.`"_$PIECE(USELECT(LI),U,1)
- +33 SET $PIECE(ENTITY,U,2)=LOCATION
- +34 KILL TENTITY
- +35 SET $PIECE(TENTITY,U,2)=LOCATION
- +36 DO OLDPARAML(LVLLIST(LI),TENTITY,.REMLIST)
- End DoDot:2
- QUIT
- +37 IF LVLLIST(LI)="USER"
- Begin DoDot:2
- +38 SET USER="USR.`"_$PIECE(USELECT(LI),U,1)
- +39 SET $PIECE(ENTITY,U,1)=USER
- +40 KILL TENTITY
- +41 SET $PIECE(TENTITY,U,1)=USER
- +42 DO OLDPARAML(LVLLIST(LI),TENTITY,.REMLIST)
- End DoDot:2
- QUIT
- +43 IF LVLLIST(LI)="CPRS"
- Begin DoDot:2
- +44 SET USER=USELECT("CPRS","USER")
- +45 SET LOCATION=USELECT("CPRS","LOCATION")
- +46 SET SERVICE=$$GET1^DIQ(200,$PIECE(USER,U,1),29,"I")
- +47 SET ENTITY="USR.`"_$PIECE(USER,U,1)_U_"LOC.`"_$PIECE(LOCATION,U,1)_U_"SRV.`"_SERVICE_U_"DIV^SYS^PKG"
- +48 DO OLDPARAML(LVLLIST(LI),ENTITY,.REMLIST)
- End DoDot:2
- End DoDot:1
- +49 DO GETLST^XPAR(.LIST,ENTITY,"ORQQPX SEARCH ITEMS","Q",.ERR)
- +50 DO ADDLISTO(.LIST,.REMLIST)
- KILL REMLIST("IEN")
- +51 QUIT
- +52 ;
- +53 ;==============================
- OLDPARAML(LEVEL,ENTITY,REMLIST) ;Create the old parameter list at a
- +1 ;specific level.
- +2 NEW LIST,TREMLIST
- +3 DO GETLST^XPAR(.LIST,ENTITY,"ORQQPX SEARCH ITEMS","Q",.ERR)
- +4 DO ADDLISTO(.LIST,.TREMLIST)
- KILL TREMLIST("IEN")
- +5 MERGE REMLIST(LEVEL,"REM")=TREMLIST
- +6 MERGE REMLIST(LEVEL,"LIST")=LIST
- +7 QUIT
- +8 ;
- +9 ;==============================
- REPD ;Main report driver.
- +1 NEW DONE,LI,LVLLIST,NEWRP,NUM,REMLIST,SELLIST,USELDONE,USELECT
- +2 SET DONE=0
- +3 WRITE !,"Clinical Reminders Cover Sheet Reminder List Report"
- +4 SET NEWRP=$$NEWRPP
- +5 FOR
- if DONE
- QUIT
- Begin DoDot:1
- +6 ;Get a list of levels for the report.
- +7 DO SELLIST(NEWRP,.LVLLIST,.SELLIST)
- +8 IF '$DATA(SELLIST)
- SET DONE=1
- QUIT
- +9 KILL REMLIST,USELECT
- +10 SET (LI,USELDONE)=0
- +11 FOR
- SET LI=$ORDER(SELLIST(LI))
- if (LI="")!(USELDONE)
- QUIT
- Begin DoDot:2
- +12 IF LVLLIST(LI)="DIVISION"
- Begin DoDot:3
- +13 SET USELECT(LI)=$$SELECT(4,"Select the division: ")
- +14 IF USELECT(LI)=-1
- SET USELDONE=1
- End DoDot:3
- QUIT
- +15 IF LVLLIST(LI)="SERVICE"
- Begin DoDot:3
- +16 SET USELECT(LI)=$$SELECT(49,"Select the service: ")
- +17 IF USELECT(LI)=-1
- SET USELDONE=1
- End DoDot:3
- QUIT
- +18 IF LVLLIST(LI)="LOCATION"
- Begin DoDot:3
- +19 SET USELECT(LI)=$$SELECT(44,"Select the location: ")
- +20 IF USELECT(LI)=-1
- SET USELDONE=1
- End DoDot:3
- QUIT
- +21 IF LVLLIST(LI)="USER CLASS"
- Begin DoDot:3
- +22 SET USELECT(LI)=$$SELECT(8930,"Select the user class: ")
- +23 IF USELECT(LI)=-1
- SET USELDONE=1
- End DoDot:3
- QUIT
- +24 IF LVLLIST(LI)="USER"
- Begin DoDot:3
- +25 SET USELECT(LI)=$$SELECT(200,"Select the user: ")
- +26 IF USELECT(LI)=-1
- SET USELDONE=1
- End DoDot:3
- QUIT
- +27 IF LVLLIST(LI)="CPRS"
- Begin DoDot:3
- +28 SET USELECT("CPRS","USER")=$$SELECT(200,"Select the user: ")
- +29 IF USELECT("CPRS","USER")=-1
- SET USELDONE=1
- QUIT
- +30 SET USELECT("CPRS","LOCATION")=$$SELECT(44,"Select the location: ")
- +31 IF USELECT("CPRS","LOCATION")=-1
- SET USELDONE=1
- End DoDot:3
- QUIT
- End DoDot:2
- +32 IF USELDONE=1
- QUIT
- +33 IF NEWRP
- DO NEWPARAM(.LVLLIST,.SELLIST,.USELECT,.REMLIST)
- +34 IF 'NEWRP
- DO OLDPARAM(.LVLLIST,.SELLIST,.USELECT,.REMLIST)
- +35 KILL REMLIST("IEN")
- +36 ;Produce the report.
- +37 DO REPORT(NEWRP,.LVLLIST,.SELLIST,.USELECT,.REMLIST)
- End DoDot:1
- +38 QUIT
- +39 ;
- +40 ;==============================
- REPORT(NEWRP,LVLLIST,SELLIST,USELECT,REMLIST) ;Generate the report.
- +1 NEW BOP,FIRST,IEN,IND,NDEF,NL,LEVELS,LI,OUTPUT,SELECT,TEMP
- +2 SET NL=0
- +3 SET NL=NL+1
- SET OUTPUT(NL)="Report Criteria"
- +4 SET NL=NL+1
- SET OUTPUT(NL)="Use new cover sheet parameters: "_$SELECT(NEWRP=1:"YES",1:"NO")
- +5 SET NL=NL+1
- SET OUTPUT(NL)="Selected levels:"
- +6 SET LI=0
- +7 FOR
- SET LI=$ORDER(SELLIST(LI))
- if LI=""
- QUIT
- Begin DoDot:1
- +8 SET NL=NL+1
- SET OUTPUT(NL)=" "_LVLLIST(LI)
- +9 SET SELECT=$GET(USELECT(LI))
- +10 IF SELECT=-1
- SET NL=NL+1
- SET OUTPUT(NL)=" Value - No selection"
- +11 IF $PIECE(SELECT,U,2)'=""
- SET NL=NL+1
- SET OUTPUT(NL)=" Value - "_$PIECE(SELECT,U,2)
- +12 IF LVLLIST(LI)="CPRS"
- Begin DoDot:2
- +13 SET NL=NL+1
- SET OUTPUT(NL)=" User - "_$PIECE(USELECT("CPRS","USER"),U,2)
- +14 SET NL=NL+1
- SET OUTPUT(NL)=" Location - "_$PIECE(USELECT("CPRS","LOCATION"),U,2)
- +15 IF 'NEWRP
- QUIT
- +16 SET NL=NL+1
- SET OUTPUT(NL)=" Service - "_USELECT("CPRS","SERVICE")
- +17 SET IND=0
- +18 FOR
- SET IND=$ORDER(USELECT("CPRS","USER CLASS",IND))
- if IND=""
- QUIT
- Begin DoDot:3
- +19 SET NL=NL+1
- SET OUTPUT(NL)=" User Class - "_USELECT("CPRS","USER CLASS",IND)
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +20 SET NL=NL+1
- SET OUTPUT(NL)=""
- +21 SET FIRST=$ORDER(SELLIST(0))
- +22 SET LEVELS=""
- SET LI=0
- +23 FOR
- SET LI=$ORDER(SELLIST(LI))
- if LI=""
- QUIT
- Begin DoDot:1
- +24 SET NL=NL+1
- SET OUTPUT(NL)=""
- +25 IF NEWRP
- Begin DoDot:2
- +26 IF LI>FIRST
- SET LEVELS=LEVELS_","
- +27 SET LEVELS=LEVELS_" "_LVLLIST(LI)
- +28 SET NL=NL+1
- SET OUTPUT(NL)="Reminder list at"_LEVELS
- +29 SET OUTPUT(NL)=OUTPUT(NL)_$SELECT(LI=FIRST:" level",1:" levels")
- End DoDot:2
- +30 IF 'NEWRP
- Begin DoDot:2
- +31 SET LEVELS=LVLLIST(LI)
- +32 SET NL=NL+1
- SET OUTPUT(NL)="Reminder list at the "_LEVELS_" level"
- End DoDot:2
- +33 SET IND=0
- +34 FOR
- SET IND=+$ORDER(REMLIST(LVLLIST(LI),"LIST",IND))
- if IND=0
- QUIT
- Begin DoDot:2
- +35 SET NL=NL+1
- SET OUTPUT(NL)="LIST("_IND_")="_REMLIST(LVLLIST(LI),"LIST",IND)
- End DoDot:2
- +36 SET IND=""
- SET NDEF=0
- +37 SET NL=NL+1
- SET OUTPUT(NL)=""
- +38 SET NL=NL+1
- SET OUTPUT(NL)="Reminders in Display Order"
- +39 FOR
- SET IND=$ORDER(REMLIST(LVLLIST(LI),"REM",IND))
- if IND=""
- QUIT
- Begin DoDot:2
- +40 SET NDEF=NDEF+1
- +41 SET IEN=REMLIST(LVLLIST(LI),"REM",IND)
- +42 SET TEMP=^PXD(811.9,IEN,0)
- +43 IF NDEF>1
- SET NL=NL+1
- SET OUTPUT(NL)=""
- +44 SET NL=NL+1
- SET OUTPUT(NL)="Name - "_$PIECE(TEMP,U,1)_" (IEN="_IEN_")"
- +45 SET NL=NL+1
- SET OUTPUT(NL)="Print Name - "_$PIECE(TEMP,U,3)
- End DoDot:2
- +46 SET NL=NL+1
- SET OUTPUT(NL)=""
- +47 SET NL=NL+1
- SET OUTPUT(NL)="There are "_NDEF_" reminders on the list."
- End DoDot:1
- +48 IF 'NEWRP
- IF '$DATA(REMLIST("CPRS"))
- Begin DoDot:1
- +49 SET NL=NL+1
- SET OUTPUT(NL)=""
- +50 SET NL=NL+1
- SET OUTPUT(NL)="Final Reminder List"
- +51 SET IND=0
- SET NDEF=0
- +52 FOR
- SET IND=+$ORDER(REMLIST(IND))
- if IND=0
- QUIT
- Begin DoDot:2
- +53 SET NDEF=NDEF+1
- +54 SET IEN=REMLIST(IND)
- +55 SET TEMP=^PXD(811.9,IEN,0)
- +56 IF NDEF>1
- SET NL=NL+1
- SET OUTPUT(NL)=""
- +57 SET NL=NL+1
- SET OUTPUT(NL)="Name - "_$PIECE(TEMP,U,1)
- +58 SET NL=NL+1
- SET OUTPUT(NL)="Print Name - "_$PIECE(TEMP,U,3)
- End DoDot:2
- +59 SET NL=NL+1
- SET OUTPUT(NL)=""
- +60 SET NL=NL+1
- SET OUTPUT(NL)="There are "_NDEF_" reminders on the list."
- +61 SET NL=NL+1
- SET OUTPUT(NL)=""
- End DoDot:1
- +62 SET BOP=$$BORP^PXRMUTIL("B")
- +63 IF BOP="B"
- Begin DoDot:1
- +64 SET X="IORESET"
- +65 DO ENDR^%ZISS
- +66 DO BROWSE^DDBR("OUTPUT","NR","CPRS Cover Sheet Reminder List")
- +67 WRITE IORESET
- +68 DO KILL^%ZISS
- End DoDot:1
- +69 IF BOP="P"
- DO GPRINT^PXRMUTIL("OUTPUT")
- +70 QUIT
- +71 ;
- +72 ;==============================
- SELECT(FILENUM,PROMPT) ;Let the user make a selection.
- +1 NEW DIC,DONE,X,Y
- +2 SET DIC=FILENUM
- SET DIC(0)="AEO"
- +3 SET DIC("A")=PROMPT
- +4 SET DONE=0
- +5 FOR
- if DONE
- QUIT
- Begin DoDot:1
- +6 DO ^DIC
- +7 IF X'=""
- SET DONE=1
- End DoDot:1
- +8 QUIT Y
- +9 ;
- +10 ;==============================
- SELLIST(NEWRP,LVLLIST,OLIST) ;Build a list of selections and let the user
- +1 ;select from the list.
- +2 NEW CPRSLVL,DIR,DIROUT,DIRUT,DTOUT,DUOUT,IND,NLVL,SELLIST,X,Y
- +3 KILL OLIST
- +4 SET NLVL=0
- +5 SET NLVL=NLVL+1
- SET SELLIST(NLVL)=" "_$JUSTIFY(NLVL,4)_" - PACKAGE"
- SET LVLLIST(NLVL)="PACKAGE"
- +6 SET NLVL=NLVL+1
- SET SELLIST(NLVL)=" "_$JUSTIFY(NLVL,4)_" - SYSTEM"
- SET LVLLIST(NLVL)="SYSTEM"
- +7 SET NLVL=NLVL+1
- SET SELLIST(NLVL)=" "_$JUSTIFY(NLVL,4)_" - DIVISION"
- SET LVLLIST(NLVL)="DIVISION"
- +8 SET NLVL=NLVL+1
- SET SELLIST(NLVL)=" "_$JUSTIFY(NLVL,4)_" - SERVICE"
- SET LVLLIST(NLVL)="SERVICE"
- +9 SET NLVL=NLVL+1
- SET SELLIST(NLVL)=" "_$JUSTIFY(NLVL,4)_" - LOCATION"
- SET LVLLIST(NLVL)="LOCATION"
- +10 IF NEWRP
- SET NLVL=NLVL+1
- SET SELLIST(NLVL)=" "_$JUSTIFY(NLVL,4)_" - USER CLASS"
- SET LVLLIST(NLVL)="USER CLASS"
- +11 SET NLVL=NLVL+1
- SET SELLIST(NLVL)=" "_$JUSTIFY(NLVL,4)_" - USER"
- SET LVLLIST(NLVL)="USER"
- +12 SET NLVL=NLVL+1
- SET SELLIST(NLVL)=" "_$JUSTIFY(NLVL,4)_" - CPRS"
- SET LVLLIST(NLVL)="CPRS"
- +13 SET CPRSLVL=NLVL
- +14 MERGE DIR("A")=SELLIST
- +15 SET DIR("A")="Enter your list for the report"
- +16 SET DIR(0)="LO^1:"_NLVL
- +17 WRITE !!,"Select from the following levels:"
- +18 DO ^DIR
- +19 IF $DATA(DIROUT)!$DATA(DIRUT)
- KILL OLIST
- QUIT
- +20 IF $DATA(DUOUT)!$DATA(DTOUT)
- KILL OLIST
- QUIT
- +21 ;If the list contains CPRS only return CPRS.
- +22 IF Y[CPRSLVL
- SET Y=CPRSLVL_","
- +23 ;Make sure the list is ordered.
- +24 FOR IND=1:1:$LENGTH(Y,",")-1
- SET OLIST($PIECE(Y,",",IND))=""
- +25 QUIT
- +26 ;