| 1 | DICATTDM ;GFT ;04:56 PM  17 Dec 2002 | 
|---|
| 2 | ;;22.0;VA FileMan;**42,118**;Mar 30, 1999 | 
|---|
| 3 | ;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
| 4 | ; | 
|---|
| 5 | SUBDEF ; | 
|---|
| 6 | S Y=$O(^DD(DICATTA,"GL",""),-1) | 
|---|
| 7 | I $$CHKSUB(Y) Q | 
|---|
| 8 | NXT I Y S Y=Y+1 Q | 
|---|
| 9 | F Y=+$O(^DD(DICATTA,"GL","A"),-1):1 Q:'$D(^(Y)) | 
|---|
| 10 | Q | 
|---|
| 11 | ; | 
|---|
| 12 | PIECDEF ; | 
|---|
| 13 | I $E($G(DICATT2N))="K" S Y="E1,245" Q | 
|---|
| 14 | S Y=$$G(16) I Y]"" S Y=$$P(Y) | 
|---|
| 15 | Q | 
|---|
| 16 | ; | 
|---|
| 17 | P(Y) ;given SUBSCRIPT Y, return PIECE prompt | 
|---|
| 18 | N P,X,% | 
|---|
| 19 | S X=0,%=1,P=0 | 
|---|
| 20 | PC S X=$O(^DD(DICATTA,"GL",Y,X)) I X'="" S P=$P(X,",",2),%=$S(%>P:%,1:P+1) G PC | 
|---|
| 21 | I P S %="E"_%_","_(DICATTLN+%-1) | 
|---|
| 22 | E  S %=$O(^(99999),-1)+1 | 
|---|
| 23 | Q % | 
|---|
| 24 | ; | 
|---|
| 25 | SUBHELP ; | 
|---|
| 26 | S Y=$E($G(DICATT2N))="K" D UNED^DDSUTL(17,"DICATTM",3,Y) | 
|---|
| 27 | N X,Y,T | 
|---|
| 28 | S X(1)="Enter name of MUMPS Global subscript where this Field's data will be stored." | 
|---|
| 29 | S X(2)="Already assigned:" | 
|---|
| 30 | S Y="",T=3 | 
|---|
| 31 | F  S Y=$O(^DD(DICATTA,"GL",Y)) Q:Y=""  S X(T)=$G(X(T))_$J(Y,9) I $L(X(T))>66 S T=T+1 | 
|---|
| 32 | D HLP^DDSUTL(.X) | 
|---|
| 33 | Q | 
|---|
| 34 | ; | 
|---|
| 35 | CHKSUB(X) ;used as INPUT TRANSFORM for Fields 16 & 76 | 
|---|
| 36 | N M | 
|---|
| 37 | S M=$$GET^DDSVALF(20.5,"DICATT",1,"","") | 
|---|
| 38 | I $D(^DD(DICATTA,"GL",X)),M Q "Another Field is already stored at '"_X_"'" | 
|---|
| 39 | I $D(^(X,0)) Q "A multiple field is already stored at '"_X_"'" | 
|---|
| 40 | I $G(DICATTLN),$$MAX(DICATTLN,X)>250 Q "Too much to store at the '"_X_"' subscript" | 
|---|
| 41 | Q 1 | 
|---|
| 42 | ; | 
|---|
| 43 | MAX(L,Y) ;given L=length of new data, Y=subscript name | 
|---|
| 44 | N T,A,DP,N,W | 
|---|
| 45 | S A=DICATTA,DP=DICATTF | 
|---|
| 46 | D MAX^DICATT1 Q T  ;returns maximum length of subscript's data | 
|---|
| 47 | ; | 
|---|
| 48 | CHKPIEC(P) ; | 
|---|
| 49 | N N,S | 
|---|
| 50 | S S=$$G(16) I S="" Q S  ;must have subscript | 
|---|
| 51 | I P?1"E"1.N1","1.N S N=$P(P,",",2)-$E(P,2,9)+1 G USED:N'<$G(DICATTLN) Q "Can't be less than "_DICATTLN | 
|---|
| 52 | I P>0,P<100,P?.N,+P=P G USED | 
|---|
| 53 | Q "" | 
|---|
| 54 | USED I $D(^DD(DICATTA,"GL",S,P)) Q "Already used for '"_$P(^DD(DICATTA,$O(^(P,0)),0),U)_"'" | 
|---|
| 55 | I P["E",$O(^(0)) Q "Can't store by $EXTRACT in the same subscript with $PIECES" | 
|---|
| 56 | Q 1 | 
|---|
| 57 | ; | 
|---|
| 58 | PIECHELP ; | 
|---|
| 59 | N X,G,Y,P,T | 
|---|
| 60 | S X(1)="Type a number from 1 to 99" | 
|---|
| 61 | S G=$$G(16) Q:G="" | 
|---|
| 62 | I '$D(^DD(DICATTA,"GL",G)) S X(1)=X(1)_" or an $EXTRACT range such as ""E2,4""." Q | 
|---|
| 63 | S X(1)=X(1)_".",X(2)="Currently assigned: ",Y="",T=2 | 
|---|
| 64 | F  S Y=$O(^DD(DICATTA,"GL",G,Y)) Q:Y=""  S P=$O(^(Y,0)) I $D(^DD(DICATTA,P,0)) S X(T)=$G(X(T))_$J(Y,7) I $L(X(T))>66 S T=T+1 | 
|---|
| 65 | D HLP^DDSUTL(.X) | 
|---|
| 66 | Q | 
|---|
| 67 | ; | 
|---|
| 68 | POST ;POST-ACTION of Page 3 | 
|---|
| 69 | N % | 
|---|
| 70 | S %=$$CHKPIEC($$G(17)) I '% S DDSBR=% K % S %(1)=DDSBR,DDSBR=16 D H(.%) | 
|---|
| 71 | Q | 
|---|
| 72 | ; | 
|---|
| 73 | H(%) S %($O(%(""),-1)+1)="$$EOP" | 
|---|
| 74 | D HLP^DDSUTL(.%) | 
|---|
| 75 | Q | 
|---|
| 76 | ; | 
|---|
| 77 | G(I) Q $$GET^DDSVALF(I,"DICATTM",3,"","") | 
|---|