| 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 | 
|---|