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