Annotation of freem_fileman/DITMGM2C.m, revision 1.1
1.1 ! snw 1: DITMGM2C ;SFISC/EDE(OHPRD)TKW-CONTINUATION OF DITMGM2 ;5/11/94 15:16
! 2: ;;21.0;VA FileMan;;Dec 28, 1994
! 3: ;Per VHA Directive 10-93-142, this routine should not be modified.
! 4: ;
! 5: ENTRY ; PROCESS ONE FILE/SUBFILE ENTRY
! 6: ;
! 7: W:'$D(DITMGM2("NOTALK")) "."
! 8: I DITMGMDI D DINUM Q ; merge dinum entries
! 9: ;
! 10: ; ----- Transform DITMGMT
! 11: S DITMGM("DITMGMT")=DITMGMT
! 12: I 'DITMGMV S DITMGMT=$S(DITMGMFD=.01:"`",1:"/")_DITMGMT I 1
! 13: E S X=$P(DITMGMT,";",2),DITMGMT=$P(DITMGMT,";",1),X=+$P(@("^"_X_"0)"),U,2) D Q:X="" S DITMGMT=X_".`"_DITMGMT
! 14: . S X=$O(^DD(DITMGMFL,DITMGMFD,"V","B",X,0))
! 15: . Q:X=""
! 16: . S X=$P(^DD(DITMGMFL,DITMGMFD,"V",X,0),U,4)
! 17: . Q
! 18: ; -----
! 19: ;
! 20: I DITMGMMU D ENTRYM I 1
! 21: E D ENTRYS
! 22: S DITMGMT=DITMGM("DITMGMT") K DITMGM("DITMGMT")
! 23: Q
! 24: ;
! 25: ENTRYS ;
! 26: ;
! 27: S DITC="",DA=DITMGMN,D0=DA,DIE=DITMGMG,DR=DITMGMFD_"///"_DITMGMT
! 28: D ^DIE K DA,DIE,DITC,DR,D0
! 29: I $D(Y) S DITMGMEC=DITMGMEC+1,DITMGMRG("ERROR",DITMGMEC)="DIE"_U_DITMGMFL_U_DITMGMFD_U_DITMGMN_U_DITMGMF_U_DITMGMT
! 30: Q
! 31: ;
! 32: ENTRYM ; PROCESS ONE SUBFILE ENTRY
! 33: S DITC="",DIE=DITMGMGM,DA=DITMGMN,DR=DITMGMFD_"///"_DITMGMT
! 34: D ^DITMU1 ; Set D0, D1, etc.
! 35: D ^DIE K DA,DIE,DITC,DR
! 36: D KILL^DITMU1 ; Kill D0, D1, etc.
! 37: I $D(Y) S DITMGMEC=DITMGMEC+1,DITMGMRG("ERROR",DITMGMEC)="DIE"_U_DITMGMFL_U_DITMGMFD_U_DITMGMN_U_DITMGMF_U_DITMGMT
! 38: Q
! 39: ;
! 40: DINUM ; DINUM FILE
! 41: ; Move the 'from' entry to it's new IEN location. Do a merge
! 42: ; if there is already a record at that location.
! 43: ;
! 44: N DIDA,DIK,DITMFROM S DITMFROM=$S(DITMGMMU:DITMGMGM,1:DITMGMG)
! 45: S $P(@(DITMFROM_DITMGMF_",0)"),U)=DITMGMT
! 46: I '$D(@(DITMFROM_DITMGMT_",0)")) D
! 47: . S @(DITMFROM_DITMGMT_",0)")=DITMGMT
! 48: . S $P(@(DITMFROM_"0)"),U,3,4)=DITMGMT_"^"_($P(@(DITMFROM_"0)"),U,4)+1)
! 49: . Q
! 50: S DIDA=$S('DITMGMMU:",",1:$$IEN^DIEFU(.DA)),DIDA("F")=DITMGMF_DIDA,DIDA("T")=DITMGMT_DIDA
! 51: D TRNMRG^DIT("M",DITMGMFL,"",DIDA("F"),DIDA("T"))
! 52: S $P(@(DITMFROM_DITMGMF_",0)"),U)=DITMGMF
! 53: D
! 54: . N DA D DA^DIEFU(DIDA("T"),.DA) Q:$D(DIERR)
! 55: . K DIK S DIK=$$ROOT^DIQGU(DITMGMFL,DIDA("T")) Q:$D(DIERR)
! 56: . N DIDA D IXALL^DIK Q
! 57: D
! 58: . N DA D DA^DIEFU(DIDA("F"),.DA) Q:$D(DIERR)
! 59: . K DIK S DIK=$$ROOT^DIQGU(DITMGMFL,DIDA("F")) Q:$D(DIERR)
! 60: . N DIDA D ^DIK Q
! 61: Q
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>