Annotation of freem_fileman/DITMGM2C.m, revision 1.1.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>