1 | TIURECL2 ; SLC/MAM - Expand/collapse LM views ;1/22/01
|
---|
2 | ;;1.0;TEXT INTEGRATION UTILITIES;**100**;Jun 20, 1997
|
---|
3 | ; 7/6 Split TIURECL into TIURECL & TIURECL1, move RESOLVE to TIURECL1
|
---|
4 | ; 7/10 Move INSID, INSADD, VEXREQ, ISSUB to TIURECL1
|
---|
5 | ; 9/7 Move INSKIDS, INSADD & associated mods from TIURECL1 TO ECL2
|
---|
6 | ;=======================================================================
|
---|
7 | INSKIDS(TSTART,TIUDA,PRNTPFIX,SORTBY) ;Insert ID kids
|
---|
8 | ;of parent TIUDA into array ^TMP("TMPLIST",$J) in SORTBY order
|
---|
9 | ; Receives TSTART, TIUDA, PRNTPFIX, SORTBY
|
---|
10 | ; TIUDA = ID parent
|
---|
11 | ; PRNTPFIX = prefix of parent, updated for current expand action.
|
---|
12 | ; SORTBY = "REFDT" or "TITLE"
|
---|
13 | N KIDDATA,KIDDA,TEXT,FRSTPFIX,ORIGPFIX,NEWPFIX,KIDLIST,TIUK
|
---|
14 | ; -- If ID parent has addenda at the parent level,
|
---|
15 | ; as well as ID kids, then first insert addenda: --
|
---|
16 | I $$HASADDEN^TIULC1(TIUDA) S TSTART=$$INSADD(TSTART,TIUDA,PRNTPFIX)
|
---|
17 | ; -- Get list of ID kids in ref date or title order: --
|
---|
18 | D GETIDKID(TIUDA,SORTBY)
|
---|
19 | ; -- Set LIST(TSTART)=TEXT_U_KIDDA_U_NEWPFIX and
|
---|
20 | ; ^TMP("TMPLIST",$J,"IDDATA",KIDDA)
|
---|
21 | S TIUK=0
|
---|
22 | F S TIUK=$O(^TMP("TIUIDKID",$J,TIUDA,TIUK)) Q:'TIUK D
|
---|
23 | . S KIDDA=^TMP("TIUIDKID",$J,TIUDA,TIUK)
|
---|
24 | . S TSTART=TSTART+1
|
---|
25 | . S ^TMP("TMPLIST",$J,TSTART)=$$GETLINE(KIDDA,PRNTPFIX,TSTART,.KIDDATA)
|
---|
26 | . S ^TMP("TMPLIST",$J,"IDDATA",KIDDA)=KIDDATA
|
---|
27 | K ^TMP("TIUIDKID",$J)
|
---|
28 | Q TSTART
|
---|
29 | ;
|
---|
30 | GETIDKID(TIUDA,SORTBY) ; Set ^TMP("TIUIDKID",$J,TIUDA,TIUK) = KIDDA,
|
---|
31 | ; array of ID kids of TIUDA, in SORTBY order
|
---|
32 | N KIDDA,REFDT,TITLE,TIUJ,LIST,TIUK
|
---|
33 | S KIDDA=0,TIUJ=0
|
---|
34 | F S KIDDA=$O(^TIU(8925,"GDAD",TIUDA,KIDDA)) Q:+KIDDA'>0 D
|
---|
35 | . S TIUJ=TIUJ+1
|
---|
36 | . S REFDT=$P(^TIU(8925,KIDDA,13),U)
|
---|
37 | . I SORTBY="REFDT" S LIST("HOLDER",REFDT,TIUJ)=KIDDA
|
---|
38 | . I SORTBY="TITLE" S TITLE=$$PNAME^TIULC1(+^TIU(8925,KIDDA,0)),LIST(TITLE,REFDT,TIUJ)=KIDDA
|
---|
39 | ; -- Flatten the list: --
|
---|
40 | S TITLE="",REFDT=0,TIUJ=0,TIUK=0
|
---|
41 | F S TITLE=$O(LIST(TITLE)) Q:TITLE="" D
|
---|
42 | . F S REFDT=$O(LIST(TITLE,REFDT)) Q:'REFDT D
|
---|
43 | . . F S TIUJ=$O(LIST(TITLE,REFDT,TIUJ)) Q:'TIUJ D
|
---|
44 | . . . S TIUK=TIUK+1
|
---|
45 | . . . S ^TMP("TIUIDKID",$J,TIUDA,TIUK)=LIST(TITLE,REFDT,TIUJ)
|
---|
46 | Q
|
---|
47 | ;
|
---|
48 | GETLINE(KIDDA,PRNTPFIX,LINENO,TIUGDATA) ; Return LINE=TEXT_U_KIDDA_U_NEWPFIX
|
---|
49 | ; Find & pass back TIUGDATA
|
---|
50 | N LINE,ORIGPFIX,NEWPFIX,TEXT,FRSTPFIX
|
---|
51 | S ORIGPFIX=$$PREFIX^TIULA2(KIDDA)
|
---|
52 | S FRSTPFIX=$$FRSTPFIX(PRNTPFIX)
|
---|
53 | S TEXT=$$RESOLVE^TIURECL1(KIDDA,LINENO,FRSTPFIX,.TIUGDATA)
|
---|
54 | S NEWPFIX=FRSTPFIX_ORIGPFIX
|
---|
55 | S LINE=TEXT_U_KIDDA_U_NEWPFIX
|
---|
56 | Q LINE
|
---|
57 | ;
|
---|
58 | FRSTPFIX(PRNTPFIX) ; Return first part of Prefix for Inserted addm
|
---|
59 | ;or ID kid of parent.
|
---|
60 | ; Receives PRNTPFIX; returns FRSTPFIX.
|
---|
61 | ; PRNTPFIX = prefix of parent, updated for current expand action.
|
---|
62 | ; -- Build first part of kid prefix using PRNTPFIX: --
|
---|
63 | ; EX: if updated prefix of parent is " |_- ",
|
---|
64 | ; then build FRSTPFIX from left to right:
|
---|
65 | ; Take beginning spaces " ", keep the "|", replace the _
|
---|
66 | ; with a space, replace INDicators (& the following space)
|
---|
67 | ; with spaces, and tack on "|_" to get: " | |_"
|
---|
68 | ; Prefix of kid is then FRSTPFIX_(Original prefix of kid).
|
---|
69 | N INDLNGTH,INDSPACE,FRSTPFIX
|
---|
70 | I PRNTPFIX["|_" S INDLNGTH=$L($P(PRNTPFIX,"|_",2)) I 1
|
---|
71 | E S INDLNGTH=$L(PRNTPFIX)
|
---|
72 | S INDSPACE="",$P(INDSPACE," ",INDLNGTH+1)=""
|
---|
73 | I PRNTPFIX["|_" S FRSTPFIX=$P(PRNTPFIX,"|_")_"| "_INDSPACE_"|_" I 1
|
---|
74 | E S FRSTPFIX=INDSPACE_"|_"
|
---|
75 | Q FRSTPFIX
|
---|
76 | ;
|
---|
77 | INSADD(TSTART,TIUDA,PRNTPFIX) ;Insert addenda of parent TIUDA into ^TMP("TMPLIST",$J).
|
---|
78 | ; Receives TSTART, TIUDA, PRNTPFIX
|
---|
79 | ; PRNTPFIX = prefix of parent, updated for current expand action.
|
---|
80 | N KIDDA,TEXT,FIRSTPFX,ORIGPFIX,NEWPFIX
|
---|
81 | S KIDDA=0
|
---|
82 | F S KIDDA=$O(^TIU(8925,"DAD",TIUDA,KIDDA)) Q:+KIDDA'>0 D
|
---|
83 | . I '+$$ISADDNDM^TIULC1(+KIDDA) Q
|
---|
84 | . S TSTART=TSTART+1
|
---|
85 | . S ^TMP("TMPLIST",$J,TSTART)=$$GETLINE(KIDDA,PRNTPFIX,TSTART)
|
---|
86 | Q TSTART
|
---|