1 | EASEZF3 ;ALB/jap - Filing 1010EZ Data to Patient Database ;10/31/00 13:07
|
---|
2 | ;;1.0;ENROLLMENT APPLICATION SYSTEM;**1,57**;Mar 15, 2001
|
---|
3 | ;
|
---|
4 | SP ;file Spouse data
|
---|
5 | N C,MULTIPLE,FILE,SUBFILE,FLD,XDATA,ACCEPT,SUBIEN,SEX,EZDATA,EAS,ERR
|
---|
6 | N KEY,X,Y,XLINK,DIC
|
---|
7 | ;process sequence must be 408.13 - 408.12 - 408.21 - 408.22
|
---|
8 | ;set sex of spouse
|
---|
9 | S KEY=+$$KEY711^EASEZU1("APPLICANT SEX")
|
---|
10 | S X=$$DATA712^EASEZU1(EASAPP,KEY,1),APSEX=$P(X,U,1),SEX=$S(APSEX="M":"FEMALE",1:"MALE")
|
---|
11 | S XLINK=$G(FLINK("SP",1,408.13)),PTDATA="" I XLINK D
|
---|
12 | .S FFF="408.13^408.13^.02" S PTDATA=$$GET^EASEZC1(XLINK,FFF)
|
---|
13 | .S SP(1,408.13,408.13,.02)=SEX_U_2_U_U_PTDATA_U_XLINK
|
---|
14 | ;
|
---|
15 | F FILE=408.13,408.12,408.21,408.22 D
|
---|
16 | .S MULTIPLE=1,SUBFILE=FILE,FLD=""
|
---|
17 | .S XLINK=$G(FLINK("SP",MULTIPLE,FILE))
|
---|
18 | .;record in file #408.13 is needed for all further data filng
|
---|
19 | .Q:(FILE'=408.13)&('$G(FLINK("SP",MULTIPLE,408.13)))
|
---|
20 | .;for data elements with link to database,
|
---|
21 | .;only file 1010EZ data if accepted by user;
|
---|
22 | .;data in external format
|
---|
23 | .I XLINK D
|
---|
24 | ..;when #408.12 record exists, don't try to update subfile #408.1275
|
---|
25 | ..S FLD="" F S FLD=$O(SP(MULTIPLE,FILE,SUBFILE,FLD)) Q:FLD="" D
|
---|
26 | ...S XDATA=SP(MULTIPLE,FILE,SUBFILE,FLD),ACCEPT=$P(XDATA,U,2)
|
---|
27 | ...I FILE=408.13,FLD=.09 S XDATA=$TR(XDATA,"-","")
|
---|
28 | ...I ACCEPT D LINK^EASEZF2(XDATA,FILE,FLD,"SP",MULTIPLE)
|
---|
29 | .;for data elements with no link to database,
|
---|
30 | .;always create new record(s) to store 1010EZ data;
|
---|
31 | .;put data in internal format
|
---|
32 | .I 'XLINK D
|
---|
33 | ..K EAS,ERR
|
---|
34 | ..;supplement data and convert to internal format
|
---|
35 | ..S FLD="" F S FLD=$O(SP(MULTIPLE,FILE,SUBFILE,FLD)) Q:FLD="" D
|
---|
36 | ...S EZDATA=$P(SP(MULTIPLE,FILE,SUBFILE,FLD),U,1)
|
---|
37 | ...S EAS(EASAPP,FILE,"+1,",FLD)=EZDATA
|
---|
38 | ..I FILE=408.13 D
|
---|
39 | ...S X=$G(EAS(EASAPP,FILE,"+1,",".03")) I X'="" D ^%DT S EAS(EASAPP,FILE,"+1,",".03")=Y
|
---|
40 | ...S X=$G(EAS(EASAPP,FILE,"+1,",".09")) I X'="" D
|
---|
41 | ....S SSN=$TR(X,"-","") S EAS(EASAPP,FILE,"+1,",".09")=SSN
|
---|
42 | ....I $D(^DGPR(408.13,"SSN",SSN)) S EAS(EASAPP,FILE,"+1,",".09")=""
|
---|
43 | ...S KEY=+$$KEY711^EASEZU1("APPLICANT SEX")
|
---|
44 | ...S X=$P($$DATA712^EASEZU1(EASAPP,KEY,1),U,1),SEX=$S(X="M":"F",1:"M")
|
---|
45 | ...S EAS(EASAPP,FILE,"+1,",".02")=SEX
|
---|
46 | ...S X=$G(EAS(EASAPP,FILE,"+1,","1.6")) I X'="" D
|
---|
47 | ....S DIC=5,DIC(0)="X" D ^DIC
|
---|
48 | ....S EAS(EASAPP,FILE,"+1,","1.6")=$S(+Y:+Y,1:"")
|
---|
49 | ..I FILE=408.12,$G(FLINK("SP",MULTIPLE,408.13)) D F40812("SP",1)
|
---|
50 | ..I FILE=408.21,$G(FLINK("SP",MULTIPLE,408.12)) D
|
---|
51 | ...S EAS(EASAPP,FILE,"+1,",".01")=INCYR
|
---|
52 | ...S EAS(EASAPP,FILE,"+1,",".02")=FLINK("SP",MULTIPLE,408.12)
|
---|
53 | ...S EAS(EASAPP,FILE,"+1,","101")=DUZ
|
---|
54 | ...S EAS(EASAPP,FILE,"+1,","102")=DT
|
---|
55 | ...S EAS(EASAPP,FILE,"+1,","103")=DUZ
|
---|
56 | ...S EAS(EASAPP,FILE,"+1,","104")=DT
|
---|
57 | ..I FILE=408.22,$G(FLINK("SP",MULTIPLE,408.21)) D
|
---|
58 | ...S EAS(EASAPP,FILE,"+1,",".01")=EASDFN
|
---|
59 | ...S EAS(EASAPP,FILE,"+1,",".02")=FLINK("SP",MULTIPLE,408.21)
|
---|
60 | ..I FILE'=408.12 D
|
---|
61 | ...S FLINK("SP",MULTIPLE,FILE)=$$NOLINK^EASEZF2(.EAS,"SP",MULTIPLE)
|
---|
62 | ...S FLD="" F S FLD=$O(SP(MULTIPLE,FILE,SUBFILE,FLD)) Q:FLD="" D
|
---|
63 | ....S $P(SP(MULTIPLE,FILE,SUBFILE,FLD),U,5)=FLINK("SP",MULTIPLE,FILE)
|
---|
64 | Q
|
---|
65 | ;
|
---|
66 | F40812(TYPE,MULT) ;create a new record in file #408.12
|
---|
67 | ;input TYPE = "SP" for Souse or "CN" for Child
|
---|
68 | ; MULT = always 1 for spouse; or
|
---|
69 | ; 1st subscript of CN array for child
|
---|
70 | ;can't use normal FileMan data entry
|
---|
71 | N C,ARR,FILE,SUBFILE,FLD,DGPRIEN,XDATE,SUBIEN,RELATE,XX,X,Y,DA,DIK,EAS,ERR
|
---|
72 | S DGPRIEN=""
|
---|
73 | S ARR=TYPE
|
---|
74 | S FILE=408.12,SUBFILE=408.12
|
---|
75 | I TYPE="SP" S RELATE=2
|
---|
76 | I TYPE="CN" D
|
---|
77 | .S X=$P($G(CN(MULT,FILE,SUBFILE,".02")),U,1)
|
---|
78 | .S RELATE=$S(X="SON":3,X="DAUGHTER":4,1:99)
|
---|
79 | ;verify that no record points to known file #408.13 record
|
---|
80 | S C=FLINK(TYPE,MULT,408.13)_";DGPR(408.13,"
|
---|
81 | I $D(^DGPR(408.12,"C",C)) S DGPRIEN=$O(^DGPR(408.12,"C",C,0))
|
---|
82 | ;if it does, quit w/o filing
|
---|
83 | Q:DGPRIEN
|
---|
84 | ;otherwise create a new entry
|
---|
85 | L +^DGPR(408.12,0):30
|
---|
86 | K DA,DIK
|
---|
87 | S DGPRIEN=$P(^DGPR(408.12,0),U,3)+1,$P(^DGPR(408.12,0),U,3)=DGPRIEN
|
---|
88 | S ^DGPR(408.12,DGPRIEN,0)=EASDFN_U_RELATE_U_C
|
---|
89 | S DA=DGPRIEN,DIK="^DGPR(408.12,",DIK(1)=".01^" D EN^DIK S DIK(1)=".03" D EN^DIK
|
---|
90 | S X=$P(^DGPR(408.12,0),U,4),$P(^DGPR(408.12,0),U,4)=X+1
|
---|
91 | L -^DGPR(408.12,0)
|
---|
92 | S FLINK(TYPE,MULT,408.12)=DGPRIEN
|
---|
93 | ;don't continue if file#408.12 record doesn't exist
|
---|
94 | Q:'$G(FLINK(TYPE,MULT,408.12))
|
---|
95 | ;store the link in subfile #712.01 record
|
---|
96 | S FLD="" F S FLD=$O(@ARR@(MULT,FILE,SUBFILE,FLD)) Q:FLD="" D
|
---|
97 | .S SUBIEN=$P(@ARR@(MULT,FILE,SUBFILE,FLD),U,3)
|
---|
98 | .S $P(@ARR@(MULT,FILE,SUBFILE,FLD),U,5)=FLINK(TYPE,MULT,FILE)
|
---|
99 | ;there's never more than one array node for subfile #408.1275; for field #.01;
|
---|
100 | S SUBFILE=408.1275,FLD=".01"
|
---|
101 | S XX=$G(@ARR@(MULT,FILE,SUBFILE,FLD))
|
---|
102 | K EAS
|
---|
103 | S XDATE=$P(XX,U,1)
|
---|
104 | S SUBIEN=$P(XX,U,3)
|
---|
105 | Q:XDATE=""
|
---|
106 | S X=XDATE D ^%DT S XDATE=Y
|
---|
107 | S EAS(EASAPP,SUBFILE,"+1,"_FLINK(TYPE,MULT,408.12)_",",".01")=XDATE
|
---|
108 | S EAS(EASAPP,SUBFILE,"+1,"_FLINK(TYPE,MULT,408.12)_",",".02")=1
|
---|
109 | S FLINK(TYPE,MULT,SUBFILE)=$$NOLINK^EASEZF2(.EAS,TYPE,MULT)
|
---|
110 | Q:FLINK(TYPE,MULT,SUBFILE)=""
|
---|
111 | ;store link to new subrecord in subfile #712.01
|
---|
112 | S $P(@ARR@(MULT,FILE,SUBFILE,FLD),U,5)=FLINK(TYPE,MULT,FILE)_";"_FLINK(TYPE,MULT,SUBFILE)
|
---|
113 | Q
|
---|