| 1 | PXRMRPC ; SLC/PJH - PXRM REMINDER GUI - routine for RPC ;12/20/2000
 | 
|---|
| 2 |  ;;2.0;CLINICAL REMINDERS;;Feb 04, 2005
 | 
|---|
| 3 |  Q
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 | TAG(PXRMY,PXRMTAG,PXRMX) ;Entry point for all RPC calls
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 |  I PXRMTAG="ALL" D ALL(.PXRMY) Q
 | 
|---|
| 8 |  I PXRMTAG="INI" D INI(.PXRMY) Q
 | 
|---|
| 9 |  I PXRMTAG="INQ" D REMVAR^PXRMINQ(.PXRMY,PXRMX) Q
 | 
|---|
| 10 |  I PXRMTAG="EXC" D EXC(.PXRMY) Q
 | 
|---|
| 11 |  I PXRMTAG="CMP" D CMP(.PXRMY,PXRMX) Q
 | 
|---|
| 12 |  I PXRMTAG="RPC" D RPC(.PXRMY) Q
 | 
|---|
| 13 |  ;
 | 
|---|
| 14 |  S PXRMY(1)="-1^INVALID"
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 |  Q
 | 
|---|
| 17 |  ;
 | 
|---|
| 18 |  ;
 | 
|---|
| 19 | ALL(ORY) ;All active reminders
 | 
|---|
| 20 |  ;print name^ien
 | 
|---|
| 21 |  N ARR,DATA,NAME,ORREM,OCNT,SUB
 | 
|---|
| 22 |  S ORREM=0
 | 
|---|
| 23 |  F  S ORREM=$O(^PXD(811.9,ORREM)) Q:'ORREM  D
 | 
|---|
| 24 |  .S DATA=$G(^PXD(811.9,ORREM,0)) Q:DATA=""
 | 
|---|
| 25 |  .;Skip inactive reminders
 | 
|---|
| 26 |  .I $P(DATA,U,6) Q
 | 
|---|
| 27 |  .;Skip reminders with no name
 | 
|---|
| 28 |  .S NAME=$P(DATA,U,3) I NAME="" Q
 | 
|---|
| 29 |  .;Sort by name
 | 
|---|
| 30 |  .S ARR(NAME_U_ORREM)=""
 | 
|---|
| 31 |  ; Build output arrray
 | 
|---|
| 32 |  S SUB="",OCNT=0
 | 
|---|
| 33 |  F  S SUB=$O(ARR(SUB)) Q:SUB=""  D
 | 
|---|
| 34 |  .S OCNT=OCNT+1
 | 
|---|
| 35 |  .S ORY(OCNT)=SUB
 | 
|---|
| 36 |  Q
 | 
|---|
| 37 |  ;
 | 
|---|
| 38 | CMP(PXRMY,IEN) ;List Exchange Repository Entries
 | 
|---|
| 39 |  N CNT,DATA,CMPIEN,SUB
 | 
|---|
| 40 |  D CDISP^PXRMEXLC(IEN)
 | 
|---|
| 41 |  S CNT=0,SUB=""
 | 
|---|
| 42 |  F  S SUB=$O(^TMP("PXRMEXLC",$J,SUB)) Q:'SUB  D
 | 
|---|
| 43 |  .S DATA=$G(^TMP("PXRMEXLC",$J,SUB,0)) Q:DATA=""  Q:DATA=" "
 | 
|---|
| 44 |  .S CMPIEN=$G(^TMP("PXRMEXLC",$J,"IDX",SUB,SUB))
 | 
|---|
| 45 |  .S CNT=CNT+1,PXRMY(CNT)=DATA_U_CMPIEN
 | 
|---|
| 46 |  Q
 | 
|---|
| 47 |  ;
 | 
|---|
| 48 | EXC(PXRMY) ;List Exchange Repository Entries
 | 
|---|
| 49 |  N CNT,DATA,REPIEN,SUB
 | 
|---|
| 50 |  D BLDLIST^PXRMEXLC(0)
 | 
|---|
| 51 |  S CNT=0,SUB=""
 | 
|---|
| 52 |  F  S SUB=$O(^TMP("PXRMEXLR",$J,SUB)) Q:'SUB  D
 | 
|---|
| 53 |  .S DATA=$G(^TMP("PXRMEXLR",$J,SUB,0)) Q:DATA=""
 | 
|---|
| 54 |  .S REPIEN=$G(^TMP("PXRMEXLR",$J,"IDX",SUB,SUB))
 | 
|---|
| 55 |  .S CNT=CNT+1,PXRMY(CNT)=$P(DATA,"  ",3,99)_U_REPIEN
 | 
|---|
| 56 |  Q
 | 
|---|
| 57 |  ;
 | 
|---|
| 58 | INI(PXRMY) ;Lists available RPC calls
 | 
|---|
| 59 |  ;
 | 
|---|
| 60 |  S PXRMY(1)="Reminder Maintenance^ALL"
 | 
|---|
| 61 |  S PXRMY(2)="Reminder Exchange^EXC"
 | 
|---|
| 62 |  S PXRMY(3)="Test RPC^RPC"
 | 
|---|
| 63 |  S PXRMY(4)="Other Options^OTH"
 | 
|---|
| 64 |  Q
 | 
|---|
| 65 |  ;
 | 
|---|
| 66 | RPC(PXRMY) ;Test bed
 | 
|---|
| 67 |  ;
 | 
|---|
| 68 |  D SEL^PXRMRPCD(.PXRMY)
 | 
|---|
| 69 |  Q
 | 
|---|
| 70 |  ;
 | 
|---|
| 71 | XALL(ORY,FROM,DIR) ;All active dialogs
 | 
|---|
| 72 |  ;
 | 
|---|
| 73 |  ; Input parameters 
 | 
|---|
| 74 |  ; FROM - dialog name 
 | 
|---|
| 75 |  ; DIR - direction (1/-1) 
 | 
|---|
| 76 |  ;
 | 
|---|
| 77 |  N CNT,DATA,DIEN,IC,TYPE
 | 
|---|
| 78 |  S CNT=44,IC=0
 | 
|---|
| 79 |  F  Q:IC'<CNT  S FROM=$O(^PXRMD(801.41,"B",FROM),DIR) Q:FROM=""  D
 | 
|---|
| 80 |  .S DIEN=0
 | 
|---|
| 81 |  .F  S DIEN=$O(^PXRMD(801.41,"B",FROM,DIEN)) Q:'DIEN  D
 | 
|---|
| 82 |  ..S DATA=$G(^PXRMD(801.41,DIEN,0)) Q:DATA=""
 | 
|---|
| 83 |  ..;Only reminder dialogs
 | 
|---|
| 84 |  ..S TYPE=$P(DATA,U,4) Q:TYPE'="R"
 | 
|---|
| 85 |  ..;Skip diabled dialogs
 | 
|---|
| 86 |  ..I $P(DATA,U,3)]"" Q
 | 
|---|
| 87 |  ..;Sort by name
 | 
|---|
| 88 |  ..S IC=IC+1,ORY(IC)=DIEN_U_FROM
 | 
|---|
| 89 |  Q
 | 
|---|