1 | PXRMEXLC ; SLC/PKR/PJH - Routines to display repository entry components. ;08/03/2007
|
---|
2 | ;;2.0;CLINICAL REMINDERS;**4,6**;Feb 04, 2005;Build 123
|
---|
3 | ;======================================================
|
---|
4 | BLDLIST(FORCE) ;Build a list of all repository entries.
|
---|
5 | ;If FORCE is true then force rebuilding of the list.
|
---|
6 | I FORCE K ^TMP("PXRMEXLR",$J)
|
---|
7 | I $D(^TMP("PXRMEXLR",$J,"VALMCNT")) S VALMCNT=^TMP("PXRMEXLR",$J,"VALMCNT")
|
---|
8 | E D
|
---|
9 | . D REXL^PXRMLIST("PXRMEXLR")
|
---|
10 | . S VALMCNT=^TMP("PXRMEXLR",$J,"VALMCNT")
|
---|
11 | Q
|
---|
12 | ;
|
---|
13 | ;======================================================
|
---|
14 | CDISP(IEN) ;Format component list for display.
|
---|
15 | N CAT,CMPNT,END,EOKTI,EXISTS,FILENUM,FOKTI,IND,INDEX,JND,JNDS,KND
|
---|
16 | N MSG,NCMPNT,NDLINE,NDSEL,NITEMS,NLINE,NSEL,PT01,START,TEMP,TEMP0,TYPE
|
---|
17 | K ^TMP("PXRMEXLC",$J),^TMP("PXRMEXLD",$J)
|
---|
18 | S (NDLINE,NLINE)=0
|
---|
19 | S (NDSEL,NSEL)=1
|
---|
20 | ;Load the description.
|
---|
21 | F IND=1:1:$P(^PXD(811.8,IEN,110,0),U,4) D
|
---|
22 | . S NLINE=NLINE+1
|
---|
23 | . S ^TMP("PXRMEXLC",$J,NLINE,0)=^PXD(811.8,IEN,110,IND,0)
|
---|
24 | . S ^TMP("PXRMEXLC",$J,"IDX",NLINE,NSEL)=""
|
---|
25 | S NLINE=NLINE+1
|
---|
26 | S ^TMP("PXRMEXLC",$J,NLINE,0)=" "
|
---|
27 | S ^TMP("PXRMEXLC",$J,"IDX",NLINE,NSEL)=""
|
---|
28 | S NCMPNT=^PXD(811.8,IEN,119)
|
---|
29 | ;Load the text for display.
|
---|
30 | F IND=1:1:NCMPNT D
|
---|
31 | . S NLINE=NLINE+1
|
---|
32 | . S TEMP=^PXD(811.8,IEN,120,IND,0)
|
---|
33 | . S ^TMP("PXRMEXLC",$J,NLINE,0)=$P(TEMP,U,1)
|
---|
34 | . S ^TMP("PXRMEXLC",$J,"IDX",NLINE,NSEL)=""
|
---|
35 | . S FILENUM=$P(TEMP,U,2)
|
---|
36 | . S FOKTI=$$FOKTI^PXRMEXFI(FILENUM)
|
---|
37 | . S NITEMS=$P(TEMP,U,3)
|
---|
38 | . I $P(TEMP,U,1)="REMINDER DIALOG" D
|
---|
39 | ..;Save details of the dialog in ^TMP("PXRMEXTMP")
|
---|
40 | .. S JNDS=NITEMS D DBUILD^PXRMEXLB(IND,NITEMS,FILENUM)
|
---|
41 | . E S JNDS=1
|
---|
42 | . F JND=JNDS:1:NITEMS D
|
---|
43 | .. S TEMP=^PXD(811.8,IEN,120,IND,1,JND,0)
|
---|
44 | .. S EOKTI=FOKTI
|
---|
45 | .. S PT01=$P(TEMP,U,1)
|
---|
46 | .. S EXISTS=$S(FILENUM=0:$$EXISTS^PXRMEXCF(PT01),1:$$EXISTS^PXRMEXIU(FILENUM,PT01,"W"))
|
---|
47 | ..;If this is an education topic and it starts with VA- it
|
---|
48 | ..;cannot be transported because of PCE's screen.
|
---|
49 | .. ;I (FILENUM=9999999.09)&(PT01["VA-") S EOKTI=0
|
---|
50 | ..;If this is a health factor see if it is a category.
|
---|
51 | .. S CAT=""
|
---|
52 | .. I (FILENUM=9999999.64) D
|
---|
53 | ... S TYPE=""
|
---|
54 | ... S START=$P(TEMP,U,2)
|
---|
55 | ... S END=$P(TEMP,U,3)
|
---|
56 | ... F KND=START:1:END D
|
---|
57 | .... S TEMP0=$P(^PXD(811.8,IEN,100,KND,0),";",3)
|
---|
58 | .... I $P(TEMP0,"~",1)=.1 S TYPE=$P(TEMP0,"~",2)
|
---|
59 | ... I TYPE="CATEGORY" S CAT="X"
|
---|
60 | .. S NLINE=NLINE+1
|
---|
61 | .. I IND=1,JND=1 S NSEL=1,INDEX=$S(EOKTI:NSEL,1:"")
|
---|
62 | .. E D
|
---|
63 | ...;If entries in this file are ok to install add them to the
|
---|
64 | ...;selectable list. Make sure the first selectable entry exists
|
---|
65 | ...;before incrementing NSEL.
|
---|
66 | ... I EOKTI S NSEL=$S($D(^TMP("PXRMEXLC",$J,"SEL",1)):NSEL+1,1:NSEL),INDEX=NSEL
|
---|
67 | ... E S INDEX=""
|
---|
68 | .. S ^TMP("PXRMEXLC",$J,NLINE,0)=$$FMTDATA(INDEX,PT01,CAT,EXISTS)
|
---|
69 | .. S ^TMP("PXRMEXLC",$J,"IDX",NLINE,NSEL)=""
|
---|
70 | ..;Store the file number, node 120 indexes and the ien if it exists.
|
---|
71 | .. I INDEX=NSEL S ^TMP("PXRMEXLC",$J,"SEL",NSEL)=FILENUM_U_IND_U_JND_U_EXISTS
|
---|
72 | . S NLINE=NLINE+1
|
---|
73 | . S ^TMP("PXRMEXLC",$J,NLINE,0)=""
|
---|
74 | . S ^TMP("PXRMEXLC",$J,"IDX",NLINE,NSEL)=""
|
---|
75 | Q
|
---|
76 | ;
|
---|
77 | ;======================================================
|
---|
78 | FMTDATA(NSEL,PT01,CAT,EXISTS) ;Format items for display.
|
---|
79 | N NSTI,TEMP
|
---|
80 | S TEMP=$$RJ^XLFSTR(NSEL,4," ")_" "_$E(PT01,1,54)
|
---|
81 | I CAT="X" D
|
---|
82 | . S NSTI=63-$L(TEMP)
|
---|
83 | . S TEMP=TEMP_$$INSCHR(NSTI," ")_"X"
|
---|
84 | I EXISTS D
|
---|
85 | . S NSTI=75-$L(TEMP)
|
---|
86 | . S TEMP=TEMP_$$INSCHR(NSTI," ")_"X"
|
---|
87 | Q TEMP
|
---|
88 | ;
|
---|
89 | ;======================================================
|
---|
90 | INSCHR(NUM,CHR) ;Return a string of NUM characters (CHR).
|
---|
91 | N IND,TEMP
|
---|
92 | S TEMP=""
|
---|
93 | I NUM<1 Q TEMP
|
---|
94 | F IND=1:1:NUM S TEMP=TEMP_CHR
|
---|
95 | Q TEMP
|
---|
96 | ;
|
---|
97 | ;======================================================
|
---|
98 | ORDER(STRING,ORDER) ;Rebuild string in ascending or descending order.
|
---|
99 | N ARRAY,ITEM,CNT
|
---|
100 | F CNT=1:1 S ITEM=$P(STRING,",",CNT) Q:'ITEM S ARRAY(ITEM)=""
|
---|
101 | K STRING
|
---|
102 | F CNT=1:1 S ITEM=$O(ARRAY(ITEM),ORDER) Q:'ITEM D
|
---|
103 | .S $P(STRING,",",CNT)=ITEM
|
---|
104 | Q
|
---|
105 | ;
|
---|