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

PXRMRPCD.m

Go to the documentation of this file.
  1. PXRMRPCD ;SLC/PJH - PXRM REMINDER DIALOG ;Oct 23, 2018@06:19
  1. ;;2.0;CLINICAL REMINDERS;**16,45,65**;Feb 04, 2005;Build 438
  1. ;
  1. ; Used by CPRS - see DBIA #3295/#3296/#3332
  1. ;
  1. ;
  1. CATEGORY(ORY,CIEN) ;Get category information
  1. ;
  1. ; Input parameter Category ien [#811.7]
  1. ;
  1. N DATA,IC,IEN,NAME,PNAME,RIEN,SEQ,SUB,TEMP,USAGE
  1. S IC=0
  1. ;Get category name
  1. S NAME=$G(^PXRMD(811.7,CIEN,0)) I NAME="" Q
  1. ;
  1. ;Sort Reminders from this category into display sequence
  1. S SUB=0 K TEMP
  1. F S SUB=$O(^PXRMD(811.7,CIEN,2,SUB)) Q:SUB="" D
  1. .S DATA=$G(^PXRMD(811.7,CIEN,2,SUB,0)) Q:DATA=""
  1. .S RIEN=$P(DATA,U) Q:'RIEN
  1. .S SEQ=$P(DATA,U,2)_0
  1. .;Include only CPRS reminders
  1. .S USAGE=$P($G(^PXD(811.9,RIEN,100)),U,4) I USAGE'["C",USAGE'["*" Q
  1. .I USAGE["L"!(USAGE["O") Q
  1. .;Skip inactive reminders
  1. .S DATA=$G(^PXD(811.9,RIEN,0)) Q:DATA="" Q:$P(DATA,U,6)
  1. .S NAME=$P(DATA,U) I NAME="" S NAME="Unknown"
  1. .;or printname
  1. .S PNAME=$P(DATA,U,3)
  1. .S TEMP(SEQ)=RIEN_U_NAME_U_PNAME
  1. ;
  1. ;Re-save reminders in output array for display
  1. ;type^reminder ien^name
  1. ;
  1. S SEQ=""
  1. F S SEQ=$O(TEMP(SEQ)) Q:SEQ="" D
  1. .S IC=IC+1,ORY(IC)="R"_U_TEMP(SEQ)
  1. ;
  1. ;Sort Sub-Categories for this category into display order
  1. S SUB=0 K TEMP
  1. F S SUB=$O(^PXRMD(811.7,CIEN,10,SUB)) Q:SUB="" D
  1. .S DATA=$G(^PXRMD(811.7,CIEN,10,SUB,0)) Q:DATA=""
  1. .S IEN=$P(DATA,U) Q:'IEN
  1. .S SEQ=$P(DATA,U,2),TEMP(SEQ)=IEN
  1. ;
  1. ;Save sub categories
  1. S SEQ=""
  1. F S SEQ=$O(TEMP(SEQ)) Q:SEQ="" D
  1. .S SUB=TEMP(SEQ) Q:'SUB
  1. .S NAME=$P($G(^PXRMD(811.7,SUB,0)),U) Q:NAME=""
  1. .S IC=IC+1,ORY(IC)="C"_U_SUB_U_NAME
  1. Q
  1. ;
  1. DIALOG(ORY,ORDLG,DFN,VISITID) ;Load dialog
  1. ;
  1. ; Input parameter ORDLG - dialog ien [#801.41]
  1. ;
  1. I 'ORDLG S ORY(1)="-1^dialog ien not specified" Q
  1. ;
  1. ;Check if a reminder dialog and enabled
  1. N DATA
  1. S DATA=$G(^PXRMD(801.41,ORDLG,0))
  1. ;
  1. I $P(DATA,U,4)'="R" S ORY(1)="-1^reminder dialog invalid" Q
  1. ;
  1. I $P(DATA,U,3) S ORY(1)="-1^reminder dialog disabled" Q
  1. ;
  1. ;Load dialog lines into local array
  1. D LOAD^PXRMDLL(ORDLG,$G(DFN),VISITID)
  1. S ORY(0)=0_U_+$P($G(^PXRMD(801.41,ORDLG,0)),U,17)
  1. Q
  1. ;
  1. EDITPAR(PAR) ;Edit CPRS GUI Version 15 parameters
  1. ;
  1. ;This is an entry action in the PXRM CPRS CONFIGURATION menu options
  1. ;
  1. ;Check if Patch 85 has been installed
  1. I '$$FIND1^DIC(8989.51,"","AMX",PAR) D Q
  1. .W !!,"This option requires CPRS GUI Version 15" H 1
  1. ;
  1. ;Edit Parameter Definition
  1. D EDITPAR^XPAREDIT(PAR)
  1. Q
  1. ;
  1. SEL(ORY) ;Selectable reminders and categories
  1. N CIEN,CNAM,CNT,DATA,RCLASS,RNAM,RPNAM,RIEN,TYPE,USAGE
  1. ;
  1. ;Reminders in print name order
  1. S TYPE="R",RPNAM="",CNT=0
  1. F S RPNAM=$O(^PXD(811.9,"D",RPNAM)) Q:RPNAM="" D
  1. .S RIEN=0
  1. .F S RIEN=$O(^PXD(811.9,"D",RPNAM,RIEN)) Q:'RIEN D
  1. ..;Include only CPRS reminders
  1. ..S USAGE=$P($G(^PXD(811.9,RIEN,100)),U,4) I USAGE'["C",USAGE'["*" Q
  1. ..I USAGE["L"!(USAGE["O") Q
  1. ..;Skip inactive reminders
  1. ..S DATA=$G(^PXD(811.9,RIEN,0)) Q:DATA="" Q:$P(DATA,U,6)
  1. ..S RNAM=$P(DATA,U),RCLASS=$P($G(^PXD(811.9,RIEN,100)),U)
  1. ..S CNT=CNT+1,ORY(CNT)=TYPE_U_RIEN_U_RPNAM_U_RNAM_U_RCLASS
  1. ;
  1. ;Categories in name order
  1. S TYPE="C",CNAM=""
  1. F S CNAM=$O(^PXRMD(811.7,"B",CNAM)) Q:CNAM="" D
  1. .S CIEN=$O(^PXRMD(811.7,"B",CNAM,"")) Q:'CIEN
  1. .S CNT=CNT+1,ORY(CNT)=TYPE_U_CIEN_U_CNAM
  1. Q