| 1 | DIFG1 ;SFISC/DG(OHPRD)-SINGLE VALUED FIELDS ; [ 02/03/93  3:17 PM ]
 | 
|---|
| 2 |  ;;22.0;VA FileMan;;Mar 30, 1999
 | 
|---|
| 3 |  ;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 | START ;ASSIGNMENT STATEMENT FOR SINGLE VALUED FIELD
 | 
|---|
| 5 |  I DIFGTYPE="WP FIELD" D WPFIELD G X1
 | 
|---|
| 6 |  S DIFGSECP=$P(DIFGDIX,"=",2)
 | 
|---|
| 7 |  I DIFGSECP="^" S DIFGVAL="@" D SETDR G X1
 | 
|---|
| 8 |  I DIFGSECP?1"@"1N.N,'^UTILITY("DIFG@",$J,DIFGSECP),$D(DIFG("UNRESOLVED",DIFGSECP)) S DIFGER=21_U_DIFGY D ERROR^DIFG G X2
 | 
|---|
| 9 |  I $P(^DD(DIC,DIFGNUM,0),U,2)["P",DIFGSECP'?1"@"1N.N D LOOKUP I 1
 | 
|---|
| 10 |  E  I DIFGSECP'?1"@"1N.N,DIFGSECP[";" D PARSE S DIFGVAL="^S X="_DIFGSECP I 1
 | 
|---|
| 11 |  E  S DIFGVAL=$S(DIFGSECP'?1"@"1N.N:DIFGSECP,^UTILITY("DIFG@",$J,DIFGSECP)[DIFGSECP:"^S X="_"""`""_^UTILITY(""DIFG@"","_$J_","""_DIFGSECP_""")",DIFGNUM'=.01:"/"_^UTILITY("DIFG@",$J,DIFGSECP),1:"`"_^UTILITY("DIFG@",$J,DIFGSECP))
 | 
|---|
| 12 |  I DIFGER G X1
 | 
|---|
| 13 |  D SETDR
 | 
|---|
| 14 |  K DIFGSECP,DIFGPC,DIFGFLD,DIFGVAL,DIFGDOL,DIFGNOLK,DIFGPARS,DIFGDOLF
 | 
|---|
| 15 | X1 Q
 | 
|---|
| 16 |  ;
 | 
|---|
| 17 | PARSE ; PARSE AND CHANGE DIFGSECP IF CONTAINS ";"
 | 
|---|
| 18 |  NEW I S DIFGPARS="" F I=0:0 S DIFGDOLF=$F(DIFGSECP,";") Q:'DIFGDOLF  S DIFGPARS=DIFGPARS_$S(DIFGDOLF>2:""""_$E(DIFGSECP,1,DIFGDOLF-2)_"""_",1:"")_"$C(59)_" S DIFGSECP=$E(DIFGSECP,DIFGDOLF,245)
 | 
|---|
| 19 |  S DIFGSECP=$S(DIFGSECP="":$E(DIFGPARS,1,$L(DIFGPARS)-1),1:DIFGPARS_""""_DIFGSECP_"""")
 | 
|---|
| 20 |  Q
 | 
|---|
| 21 |  ;
 | 
|---|
| 22 | SETDR ;
 | 
|---|
| 23 |  S:'$D(^UTILITY("DIFG",$J,DIFGINCR,DIC,"DR")) ^("DR")=""
 | 
|---|
| 24 |  I $L(^UTILITY("DIFG",$J,DIFGINCR,DIC,"DR"))+$L(DIFGNUM_"///"_DIFGVAL_";")<241 S ^("DR")=^("DR")_DIFGNUM_"///"_DIFGVAL_";" G X2
 | 
|---|
| 25 |  I $D(^UTILITY("DIFG",$J,DIFGINCR,DIC,"DR",DIFGNDC)),$L(^(DIFGNDC))+$L(DIFGNUM_"///"_DIFGVAL_";")<241 S ^(DIFGNDC)=^(DIFGNDC)_DIFGNUM_"///"_DIFGVAL_";"
 | 
|---|
| 26 |  E  S DIFGNDC=DIFGNDC+1,^(DIFGNDC)=DIFGNUM_"///"_DIFGVAL_";"
 | 
|---|
| 27 | X2 Q
 | 
|---|
| 28 |  ;
 | 
|---|
| 29 | LOOKUP ;FIELD LOOKUP
 | 
|---|
| 30 |  S DIFG=DIFG+1
 | 
|---|
| 31 |  S X=$P(DIFGDIX,"=",2)
 | 
|---|
| 32 |  S DIFGLAGO=0
 | 
|---|
| 33 |  I $P(^DD(DIC,DIFGNUM,0),U,2)'["'"!($D(DIFGENV("LAYGO",DIC,DIFGNUM))) S DIFGLAGO=1
 | 
|---|
| 34 |  D ^DIFG3
 | 
|---|
| 35 |  I DIFGER G X3
 | 
|---|
| 36 |  I Y>0 S DIFGVAL="/"_+Y G X3
 | 
|---|
| 37 |  S DIFGVAL="^S X="_"""`""_"_DIFGALNK
 | 
|---|
| 38 | X3 S DIFG=DIFG-1
 | 
|---|
| 39 |  K Y,DIFGLAGO
 | 
|---|
| 40 |  Q
 | 
|---|
| 41 |  ;
 | 
|---|
| 42 | WPFIELD ;PROCESS WP FIELD
 | 
|---|
| 43 |  S DIFG("COUNT")=0
 | 
|---|
| 44 |  S ^UTILITY("DIFG",$J,DIFGINCR,DIC,"WP",DIFG("COUNT"))=DIFGFLDN
 | 
|---|
| 45 |  F DIFGL=0:0 X DIFGLINE Q:DIFGDIX="."  S DIFG("COUNT")=DIFG("COUNT")+1 D BUILD
 | 
|---|
| 46 |  K DIFG("COUNT")
 | 
|---|
| 47 |  Q
 | 
|---|
| 48 |  ;
 | 
|---|
| 49 | BUILD ;
 | 
|---|
| 50 |  S ^UTILITY("DIFG",$J,DIFGINCR,DIC,"WP",DIFG("COUNT"))=$E(DIFGDIX,2,$L(DIFGDIX)-1)
 | 
|---|
| 51 |  Q
 | 
|---|
| 52 |  ;
 | 
|---|