| 1 | FSCLMPS ;SLC/STAFF-NOIS List Manager Protocol Save and SaveAs ;9/6/98  21:09 | 
|---|
| 2 | ;;1.1;NOIS;;Sep 06, 1998 | 
|---|
| 3 | ; | 
|---|
| 4 | ASLD ; from FSCLMP | 
|---|
| 5 | I "AMS"'[$P(^FSC("LIST",FSCLNUM,0),U,3) W !,"You cannot copy this list.",$C(7) H 2 Q | 
|---|
| 6 | N DA,DIC,DIK,DLAYGO,NAME,NEWLNUM,OK,OWNER,X,Y K DIC | 
|---|
| 7 | D NAME^FSCMU("",.NAME,.OK) I 'OK Q | 
|---|
| 8 | D OWNER^FSCMU(+$P($G(^FSC("LIST",FSCLNUM,0)),U,2),.OWNER,.OK) I 'OK Q | 
|---|
| 9 | W ! D ASK^FSCLD(.OK) I 'OK Q | 
|---|
| 10 | I '$G(OWNER) S OWNER=DUZ | 
|---|
| 11 | S (DIC,DLAYGO)=7107.1,DIC(0)="L",X=NAME | 
|---|
| 12 | D ^DIC I '$P(Y,U,3) K DIC W !,"Not defined.",$C(7) H 2 Q | 
|---|
| 13 | S NEWLNUM=+Y | 
|---|
| 14 | W !,"A copy of ",FSCLNAME," is being saved as ",NAME,".",! | 
|---|
| 15 | M ^FSC("LIST",NEWLNUM)=^FSC("LIST",FSCLNUM) | 
|---|
| 16 | S $P(^FSC("LIST",NEWLNUM,0),U)=NAME,$P(^(0),U,2)=OWNER | 
|---|
| 17 | S DIK=DIC,DA=NEWLNUM D IX1^DIK K DIC | 
|---|
| 18 | S FSCLNAME=NAME,FSCLNUM=NEWLNUM | 
|---|
| 19 | L +^XTMP("FSC LIST DEF",FSCLNUM):20 I '$T D BAD^FSCLDS | 
|---|
| 20 | E  D BUILD^FSCLDU(FSCLNUM,.OK) I 'OK D BAD^FSCLDS | 
|---|
| 21 | L -^XTMP("FSC LIST DEF",FSCLNUM) | 
|---|
| 22 | D ENTRY^FSCLMM,HEADER^FSCLMM | 
|---|
| 23 | H 1 | 
|---|
| 24 | Q | 
|---|
| 25 | ; | 
|---|
| 26 | ASLIST ; from FSCLMP | 
|---|
| 27 | N DEFAULT,DIC,LISTNAME,LISTNUM,NUM,X,Y K DIC,^TMP("FSC SELECT",$J,"VALUES") | 
|---|
| 28 | S DIC=7107.1,DIC(0)="AEMOQ" | 
|---|
| 29 | I $P($G(^FSC("LIST",FSCLNUM,0)),U,3)="S",$P(^(0),U,2)=DUZ!'$P(^(0),U,2) S DIC("B")=$P(FSCLNAME," (MODIFIED)") | 
|---|
| 30 | I '$D(DIC("B")) S NUM=0 F  S NUM=$O(^FSC("LIST","C",DUZ,NUM))  Q:NUM<1  I $P(^FSC("LIST",NUM,0),U,3)="S" S DIC("B")=$P(^(0),U) Q | 
|---|
| 31 | I '$D(DIC("B")) D | 
|---|
| 32 | .W !,"You do not own any STORAGE-ONLY type lists." | 
|---|
| 33 | .W !,"You can define this type of list using the Define List action (DL)" | 
|---|
| 34 | .W !,"for temporarily storing calls.  You can still store calls under any" | 
|---|
| 35 | .W !,"public lists." | 
|---|
| 36 | S DIC("S")="I $P(^(0),U,3)=""S"",$P(^(0),U,2)=DUZ!'$P(^(0),U,2)" | 
|---|
| 37 | S DIC("A")="Save to list: " | 
|---|
| 38 | D ^DIC K DIC I Y<1 Q | 
|---|
| 39 | S LISTNUM=+Y,LISTNAME=$P(Y,U,2),DEFAULT="1-"_+^TMP("FSC LIST CALLS",$J) | 
|---|
| 40 | I DEFAULT="1-0" D  Q | 
|---|
| 41 | .N DIR,X,Y K DIR | 
|---|
| 42 | .S DIR(0)="YAO",DIR("A")="Save this list with all calls removed? ",DIR("B")="YES" | 
|---|
| 43 | .S DIR("?",1)="Enter YES to save this as an empty list." | 
|---|
| 44 | .S DIR("?",2)="Enter NO or '^' to exit without saving." | 
|---|
| 45 | .S DIR("?")="^D HELP^FSCU(.DIR)" | 
|---|
| 46 | .S DIR("??")="FSC U1 NOIS" | 
|---|
| 47 | .D ^DIR K DIR | 
|---|
| 48 | .I Y'=1 Q | 
|---|
| 49 | .D SAVE(LISTNUM,"REPLACE") | 
|---|
| 50 | D SELECT^FSCUL(DEFAULT,"",DEFAULT,"VALUES",.OK) I 'OK Q | 
|---|
| 51 | N DIR,X,Y K DIR | 
|---|
| 52 | S DIR(0)="SAMO^ADD:ADD;REPLACE:REPLACE",DIR("A")="(A)dd calls to "_LISTNAME_" or (R)eplace "_LISTNAME_" with these calls? ",DIR("B")="ADD" | 
|---|
| 53 | S DIR("?",1)="Enter ADD to add these calls to the list." | 
|---|
| 54 | S DIR("?",2)="Enter REPLACE to have the list only have these calls." | 
|---|
| 55 | S DIR("?")="^D HELP^FSCU(.DIR)" | 
|---|
| 56 | S DIR("??")="FSC U1 NOIS" | 
|---|
| 57 | D ^DIR K DIR | 
|---|
| 58 | I $D(DIRUT) Q | 
|---|
| 59 | D SAVE(LISTNUM,Y) | 
|---|
| 60 | Q | 
|---|
| 61 | ; | 
|---|
| 62 | SAVE(LISTNUM,SAVETYPE) ; | 
|---|
| 63 | N CALL,CALLLINE,LISTSNUM,NUM | 
|---|
| 64 | I SAVETYPE="REPLACE" S CALL=0 F  S CALL=$O(^FSCD("LISTS","ALC",LISTNUM,CALL)) Q:CALL<1  S LISTSNUM=+$O(^(CALL,0)) I LISTSNUM D DELETE(LISTSNUM) | 
|---|
| 65 | I SAVETYPE="ADD"!(SAVETYPE="REPLACE") D | 
|---|
| 66 | .S NUM=0 F  S NUM=$O(^TMP("FSC SELECT",$J,"VALUES",NUM)) Q:NUM<1  D | 
|---|
| 67 | ..S CALLLINE=+$O(^TMP("FSC LIST CALLS",$J,"IDX",NUM,0)) | 
|---|
| 68 | ..S CALL=+$O(^TMP("FSC LIST CALLS",$J,"ICX",CALLLINE,0)) D ADD(CALL,LISTNUM) | 
|---|
| 69 | K ^TMP("FSC SELECT",$J,"VALUES") | 
|---|
| 70 | Q | 
|---|
| 71 | ; | 
|---|
| 72 | ADD(CALL,LIST,OK) ; from FSCLP, FSCRPCLO, FSCRPCSL | 
|---|
| 73 | S OK=1 I $D(^FSCD("LISTS","ALC",LIST,CALL)) S OK=0 Q | 
|---|
| 74 | N LISTSNUM S LISTSNUM=1+$P(^FSCD("LISTS",0),U,3) | 
|---|
| 75 | L +^FSCD("LISTS",0):30 I '$T Q  ; *** skip | 
|---|
| 76 | F  Q:'$D(^FSCD("LISTS",LISTSNUM,0))  S LISTSNUM=LISTSNUM+1 | 
|---|
| 77 | S ^FSCD("LISTS",LISTSNUM,0)=CALL_U_LIST | 
|---|
| 78 | S $P(^FSCD("LISTS",0),U,3)=LISTSNUM,$P(^(0),U,4)=$P(^(0),U,4)+1 | 
|---|
| 79 | L -^FSCD("LISTS",0) | 
|---|
| 80 | S ^FSCD("LISTS","B",CALL,LISTSNUM)="" | 
|---|
| 81 | S ^FSCD("LISTS","L",LIST,LISTSNUM)="" | 
|---|
| 82 | S ^FSCD("LISTS","ALC",LIST,CALL,LISTSNUM)="" | 
|---|
| 83 | Q | 
|---|
| 84 | ; | 
|---|
| 85 | DELETE(DA) ; from FSCLDR, FSCLP, FSCRPCLO, FSCRPCSL | 
|---|
| 86 | I 'DA Q | 
|---|
| 87 | N DIK | 
|---|
| 88 | S DIK="^FSCD(""LISTS""," | 
|---|
| 89 | D ^DIK | 
|---|
| 90 | Q | 
|---|