XUMF502 ;RAM - XUMF502 ;04/15/02 ;9/10/08 11:55
;;8.0;KERNEL;**502**;Jul 10, 1995;Build 18
;
Q
;
;
MFE ;
;
N X,Y
;
S IEN=$O(^LEX(757.33,"B",VUID,0))
;
Q:IEN
;
D CHK^DIE(757.33,.01,,VUID,.X)
I X="^" S ERROR="1^validation error 757.33 MAPPINGS FILE map ID= "_VUID Q
K DIC S DIC=757.33,DIC(0)="F" D FILE^DICN K DIC
I Y="-1" S ERROR="1^error 757.33 MAPPINGS FILE map ID= "_VUID Q
S IEN=+Y,RECORD("NEW")=1
;
Q
;
ZRT ;
;
I $G(NAME)="EffectiveDate" D STATUS Q
I $G(NAME)="MapDefinition" D MAPDEF Q
;
Q
;
STATUS ;
;
I $D(FDA) D UPDATE^XUMF1H K FDA
;
N VALUE,FDA
;
S VALUE=$$UNESC^XUMF0($P(HLNODE,HLFS,3),.HL)
S VALUE=$$DTYP^XUMFXP(VALUE,"DT",HLCS,0,"L")
;
;S IEN1=$O(^LEX(757.33,2485,2,99999),-1),IEN1=IEN1+1
;
K FDA
S FDA(757.333,"?+1,"_IEN_",",.01)=VALUE
;
X HLNEXT I HLQUIT'>0 S ERROR="1^status error" Q
;
I $P(HLNODE,HLFS,2)'="Active" S ERROR="1^status error" Q
S VALUE=$$UNESC^XUMF0($P(HLNODE,HLFS,3),.HL)
S VALUE=$$DTYP^XUMFXP(VALUE,"ST",HLCS,0)
;
S FDA(757.333,"?+1,"_IEN_",",1)=$S(VALUE:"ACTIVE",1:"INACTIVE")
;
D UPDATE^DIE("E","FDA",,"ERR")
I $D(ERR) D Q
.S ERROR="1^status update error"
.D EM^XUMF1H(ERROR,.ERR) K ERR
;
S OUT=1
;
Q
;
MAPDEF ;
;
N VALUE,IENS
;
S IENS=IEN_","
S VALUE=$$UNESC^XUMF0($P(HLNODE,HLFS,3),.HL)
S VALUE=$O(^LEX(757.32,"C",VALUE,0))
S FDA(IFN,IENS,.02)=VALUE
S OUT=1
;
Q
;
STAT() ;
;
N X
S X=$O(^LEX(757.33,IEN,2,999),-1) Q:'X ""
Q $P($G(^LEX(757.33,IEN,2,X,0)),U,2)
;
XUMF502 ;RAM - XUMF502 ;04/15/02 ;9/10/08 11:55
+1 ;;8.0;KERNEL;**502**;Jul 10, 1995;Build 18
+2 ;
+3 QUIT
+4 ;
+5 ;
MFE ;
+1 ;
+2 NEW X,Y
+3 ;
+4 SET IEN=$ORDER(^LEX(757.33,"B",VUID,0))
+5 ;
+6 IF IEN
QUIT
+7 ;
+8 DO CHK^DIE(757.33,.01,,VUID,.X)
+9 IF X="^"
SET ERROR="1^validation error 757.33 MAPPINGS FILE map ID= "_VUID
QUIT
+10 KILL DIC
SET DIC=757.33
SET DIC(0)="F"
DO FILE^DICN
KILL DIC
+11 IF Y="-1"
SET ERROR="1^error 757.33 MAPPINGS FILE map ID= "_VUID
QUIT
+12 SET IEN=+Y
SET RECORD("NEW")=1
+13 ;
+14 QUIT
+15 ;
ZRT ;
+1 ;
+2 IF $GET(NAME)="EffectiveDate"
DO STATUS
QUIT
+3 IF $GET(NAME)="MapDefinition"
DO MAPDEF
QUIT
+4 ;
+5 QUIT
+6 ;
STATUS ;
+1 ;
+2 IF $DATA(FDA)
DO UPDATE^XUMF1H
KILL FDA
+3 ;
+4 NEW VALUE,FDA
+5 ;
+6 SET VALUE=$$UNESC^XUMF0($PIECE(HLNODE,HLFS,3),.HL)
+7 SET VALUE=$$DTYP^XUMFXP(VALUE,"DT",HLCS,0,"L")
+8 ;
+9 ;S IEN1=$O(^LEX(757.33,2485,2,99999),-1),IEN1=IEN1+1
+10 ;
+11 KILL FDA
+12 SET FDA(757.333,"?+1,"_IEN_",",.01)=VALUE
+13 ;
+14 XECUTE HLNEXT
IF HLQUIT'>0
SET ERROR="1^status error"
QUIT
+15 ;
+16 IF $PIECE(HLNODE,HLFS,2)'="Active"
SET ERROR="1^status error"
QUIT
+17 SET VALUE=$$UNESC^XUMF0($PIECE(HLNODE,HLFS,3),.HL)
+18 SET VALUE=$$DTYP^XUMFXP(VALUE,"ST",HLCS,0)
+19 ;
+20 SET FDA(757.333,"?+1,"_IEN_",",1)=$SELECT(VALUE:"ACTIVE",1:"INACTIVE")
+21 ;
+22 DO UPDATE^DIE("E","FDA",,"ERR")
+23 IF $DATA(ERR)
Begin DoDot:1
+24 SET ERROR="1^status update error"
+25 DO EM^XUMF1H(ERROR,.ERR)
KILL ERR
End DoDot:1
QUIT
+26 ;
+27 SET OUT=1
+28 ;
+29 QUIT
+30 ;
MAPDEF ;
+1 ;
+2 NEW VALUE,IENS
+3 ;
+4 SET IENS=IEN_","
+5 SET VALUE=$$UNESC^XUMF0($PIECE(HLNODE,HLFS,3),.HL)
+6 SET VALUE=$ORDER(^LEX(757.32,"C",VALUE,0))
+7 SET FDA(IFN,IENS,.02)=VALUE
+8 SET OUT=1
+9 ;
+10 QUIT
+11 ;
STAT() ;
+1 ;
+2 NEW X
+3 SET X=$ORDER(^LEX(757.33,IEN,2,999),-1)
IF 'X
QUIT ""
+4 QUIT $PIECE($GET(^LEX(757.33,IEN,2,X,0)),U,2)
+5 ;