PXRMRPCD ;SLC/PJH - PXRM REMINDER DIALOG ;11/04/2009
;;2.0;CLINICAL REMINDERS;**16**;Feb 04, 2005;Build 119
;
; Used by CPRS - see DBIA #3295/#3296/#3332
;
;
CATEGORY(ORY,CIEN) ;Get category information
;
; Input parameter Category ien [#811.7]
;
N DATA,IC,IEN,NAME,PNAME,RIEN,SEQ,SUB,TEMP,USAGE
S IC=0
;Get category name
S NAME=$G(^PXRMD(811.7,CIEN,0)) I NAME="" Q
;
;Sort Reminders from this category into display sequence
S SUB=0 K TEMP
F S SUB=$O(^PXRMD(811.7,CIEN,2,SUB)) Q:SUB="" D
.S DATA=$G(^PXRMD(811.7,CIEN,2,SUB,0)) Q:DATA=""
.S RIEN=$P(DATA,U) Q:'RIEN
.S SEQ=$P(DATA,U,2)_0
.;Include only CPRS reminders
.S USAGE=$P($G(^PXD(811.9,RIEN,100)),U,4) I USAGE'["C",USAGE'["*" Q
.I USAGE["L"!(USAGE["O") Q
.;Skip inactive reminders
.S DATA=$G(^PXD(811.9,RIEN,0)) Q:DATA="" Q:$P(DATA,U,6)
.S NAME=$P(DATA,U) I NAME="" S NAME="Unknown"
.;or printname
.S PNAME=$P(DATA,U,3)
.S TEMP(SEQ)=RIEN_U_NAME_U_PNAME
;
;Re-save reminders in output array for display
;type^reminder ien^name
;
S SEQ=""
F S SEQ=$O(TEMP(SEQ)) Q:SEQ="" D
.S IC=IC+1,ORY(IC)="R"_U_TEMP(SEQ)
;
;Sort Sub-Categories for this category into display order
S SUB=0 K TEMP
F S SUB=$O(^PXRMD(811.7,CIEN,10,SUB)) Q:SUB="" D
.S DATA=$G(^PXRMD(811.7,CIEN,10,SUB,0)) Q:DATA=""
.S IEN=$P(DATA,U) Q:'IEN
.S SEQ=$P(DATA,U,2),TEMP(SEQ)=IEN
;
;Save sub categories
S SEQ=""
F S SEQ=$O(TEMP(SEQ)) Q:SEQ="" D
.S SUB=TEMP(SEQ) Q:'SUB
.S NAME=$P($G(^PXRMD(811.7,SUB,0)),U) Q:NAME=""
.S IC=IC+1,ORY(IC)="C"_U_SUB_U_NAME
Q
;
DIALOG(ORY,ORDLG,DFN) ;Load dialog
;
; Input parameter ORDLG - dialog ien [#801.41]
;
I 'ORDLG S ORY(1)="-1^dialog ien not specified" Q
;
;Check if a reminder dialog and enabled
N DATA
S DATA=$G(^PXRMD(801.41,ORDLG,0))
;
I $P(DATA,U,4)'="R" S ORY(1)="-1^reminder dialog invalid" Q
;
I $P(DATA,U,3) S ORY(1)="-1^reminder dialog disabled" Q
;
;Load dialog lines into local array
D LOAD^PXRMDLL(ORDLG,$G(DFN))
Q
;
EDITPAR(PAR) ;Edit CPRS GUI Version 15 parameters
;
;This is an entry action in the PXRM CPRS CONFIGURATION menu options
;
;Check if Patch 85 has been installed
I '$$FIND1^DIC(8989.51,"","AMX",PAR) D Q
.W !!,"This option requires CPRS GUI Version 15" H 1
;
;Edit Parameter Definition
D EDITPAR^XPAREDIT(PAR)
Q
;
SEL(ORY) ;Selectable reminders and categories
N CIEN,CNAM,CNT,DATA,RCLASS,RNAM,RPNAM,RIEN,TYPE,USAGE
;
;Reminders in print name order
S TYPE="R",RPNAM="",CNT=0
F S RPNAM=$O(^PXD(811.9,"D",RPNAM)) Q:RPNAM="" D
.S RIEN=0
.F S RIEN=$O(^PXD(811.9,"D",RPNAM,RIEN)) Q:'RIEN D
..;Include only CPRS reminders
..S USAGE=$P($G(^PXD(811.9,RIEN,100)),U,4) I USAGE'["C",USAGE'["*" Q
..I USAGE["L"!(USAGE["O") Q
..;Skip inactive reminders
..S DATA=$G(^PXD(811.9,RIEN,0)) Q:DATA="" Q:$P(DATA,U,6)
..S RNAM=$P(DATA,U),RCLASS=$P($G(^PXD(811.9,RIEN,100)),U)
..S CNT=CNT+1,ORY(CNT)=TYPE_U_RIEN_U_RPNAM_U_RNAM_U_RCLASS
;
;Categories in name order
S TYPE="C",CNAM=""
F S CNAM=$O(^PXRMD(811.7,"B",CNAM)) Q:CNAM="" D
.S CIEN=$O(^PXRMD(811.7,"B",CNAM,"")) Q:'CIEN
.S CNT=CNT+1,ORY(CNT)=TYPE_U_CIEN_U_CNAM
Q
PXRMRPCD ;SLC/PJH - PXRM REMINDER DIALOG ;11/04/2009
+1 ;;2.0;CLINICAL REMINDERS;**16**;Feb 04, 2005;Build 119
+2 ;
+3 ; Used by CPRS - see DBIA #3295/#3296/#3332
+4 ;
+5 ;
CATEGORY(ORY,CIEN) ;Get category information
+1 ;
+2 ; Input parameter Category ien [#811.7]
+3 ;
+4 NEW DATA,IC,IEN,NAME,PNAME,RIEN,SEQ,SUB,TEMP,USAGE
+5 SET IC=0
+6 ;Get category name
+7 SET NAME=$GET(^PXRMD(811.7,CIEN,0))
IF NAME=""
QUIT
+8 ;
+9 ;Sort Reminders from this category into display sequence
+10 SET SUB=0
KILL TEMP
+11 FOR
SET SUB=$ORDER(^PXRMD(811.7,CIEN,2,SUB))
IF SUB=""
QUIT
Begin DoDot:1
+12 SET DATA=$GET(^PXRMD(811.7,CIEN,2,SUB,0))
IF DATA=""
QUIT
+13 SET RIEN=$PIECE(DATA,U)
IF 'RIEN
QUIT
+14 SET SEQ=$PIECE(DATA,U,2)_0
+15 ;Include only CPRS reminders
+16 SET USAGE=$PIECE($GET(^PXD(811.9,RIEN,100)),U,4)
IF USAGE'["C"
IF USAGE'["*"
QUIT
+17 IF USAGE["L"!(USAGE["O")
QUIT
+18 ;Skip inactive reminders
+19 SET DATA=$GET(^PXD(811.9,RIEN,0))
IF DATA=""
QUIT
IF $PIECE(DATA,U,6)
QUIT
+20 SET NAME=$PIECE(DATA,U)
IF NAME=""
SET NAME="Unknown"
+21 ;or printname
+22 SET PNAME=$PIECE(DATA,U,3)
+23 SET TEMP(SEQ)=RIEN_U_NAME_U_PNAME
End DoDot:1
+24 ;
+25 ;Re-save reminders in output array for display
+26 ;type^reminder ien^name
+27 ;
+28 SET SEQ=""
+29 FOR
SET SEQ=$ORDER(TEMP(SEQ))
IF SEQ=""
QUIT
Begin DoDot:1
+30 SET IC=IC+1
SET ORY(IC)="R"_U_TEMP(SEQ)
End DoDot:1
+31 ;
+32 ;Sort Sub-Categories for this category into display order
+33 SET SUB=0
KILL TEMP
+34 FOR
SET SUB=$ORDER(^PXRMD(811.7,CIEN,10,SUB))
IF SUB=""
QUIT
Begin DoDot:1
+35 SET DATA=$GET(^PXRMD(811.7,CIEN,10,SUB,0))
IF DATA=""
QUIT
+36 SET IEN=$PIECE(DATA,U)
IF 'IEN
QUIT
+37 SET SEQ=$PIECE(DATA,U,2)
SET TEMP(SEQ)=IEN
End DoDot:1
+38 ;
+39 ;Save sub categories
+40 SET SEQ=""
+41 FOR
SET SEQ=$ORDER(TEMP(SEQ))
IF SEQ=""
QUIT
Begin DoDot:1
+42 SET SUB=TEMP(SEQ)
IF 'SUB
QUIT
+43 SET NAME=$PIECE($GET(^PXRMD(811.7,SUB,0)),U)
IF NAME=""
QUIT
+44 SET IC=IC+1
SET ORY(IC)="C"_U_SUB_U_NAME
End DoDot:1
+45 QUIT
+46 ;
DIALOG(ORY,ORDLG,DFN) ;Load dialog
+1 ;
+2 ; Input parameter ORDLG - dialog ien [#801.41]
+3 ;
+4 IF 'ORDLG
SET ORY(1)="-1^dialog ien not specified"
QUIT
+5 ;
+6 ;Check if a reminder dialog and enabled
+7 NEW DATA
+8 SET DATA=$GET(^PXRMD(801.41,ORDLG,0))
+9 ;
+10 IF $PIECE(DATA,U,4)'="R"
SET ORY(1)="-1^reminder dialog invalid"
QUIT
+11 ;
+12 IF $PIECE(DATA,U,3)
SET ORY(1)="-1^reminder dialog disabled"
QUIT
+13 ;
+14 ;Load dialog lines into local array
+15 DO LOAD^PXRMDLL(ORDLG,$GET(DFN))
+16 QUIT
+17 ;
EDITPAR(PAR) ;Edit CPRS GUI Version 15 parameters
+1 ;
+2 ;This is an entry action in the PXRM CPRS CONFIGURATION menu options
+3 ;
+4 ;Check if Patch 85 has been installed
+5 IF '$$FIND1^DIC(8989.51,"","AMX",PAR)
Begin DoDot:1
+6 WRITE !!,"This option requires CPRS GUI Version 15"
HANG 1
End DoDot:1
QUIT
+7 ;
+8 ;Edit Parameter Definition
+9 DO EDITPAR^XPAREDIT(PAR)
+10 QUIT
+11 ;
SEL(ORY) ;Selectable reminders and categories
+1 NEW CIEN,CNAM,CNT,DATA,RCLASS,RNAM,RPNAM,RIEN,TYPE,USAGE
+2 ;
+3 ;Reminders in print name order
+4 SET TYPE="R"
SET RPNAM=""
SET CNT=0
+5 FOR
SET RPNAM=$ORDER(^PXD(811.9,"D",RPNAM))
IF RPNAM=""
QUIT
Begin DoDot:1
+6 SET RIEN=0
+7 FOR
SET RIEN=$ORDER(^PXD(811.9,"D",RPNAM,RIEN))
IF 'RIEN
QUIT
Begin DoDot:2
+8 ;Include only CPRS reminders
+9 SET USAGE=$PIECE($GET(^PXD(811.9,RIEN,100)),U,4)
IF USAGE'["C"
IF USAGE'["*"
QUIT
+10 IF USAGE["L"!(USAGE["O")
QUIT
+11 ;Skip inactive reminders
+12 SET DATA=$GET(^PXD(811.9,RIEN,0))
IF DATA=""
QUIT
IF $PIECE(DATA,U,6)
QUIT
+13 SET RNAM=$PIECE(DATA,U)
SET RCLASS=$PIECE($GET(^PXD(811.9,RIEN,100)),U)
+14 SET CNT=CNT+1
SET ORY(CNT)=TYPE_U_RIEN_U_RPNAM_U_RNAM_U_RCLASS
End DoDot:2
End DoDot:1
+15 ;
+16 ;Categories in name order
+17 SET TYPE="C"
SET CNAM=""
+18 FOR
SET CNAM=$ORDER(^PXRMD(811.7,"B",CNAM))
IF CNAM=""
QUIT
Begin DoDot:1
+19 SET CIEN=$ORDER(^PXRMD(811.7,"B",CNAM,""))
IF 'CIEN
QUIT
+20 SET CNT=CNT+1
SET ORY(CNT)=TYPE_U_CIEN_U_CNAM
End DoDot:1
+21 QUIT