Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: EASEZF4

EASEZF4.m

Go to the documentation of this file.
  1. EASEZF4 ;ALB/jap - Filing 1010EZ Data to Patient Database ;10/31/00 13:07
  1. ;;1.0;ENROLLMENT APPLICATION SYSTEM;**1,51,57,70**;Mar 15, 2001;Build 26
  1. ;
  1. CN ;file Dependent/Child data
  1. N MULTIPLE,FILE,SUBFILE,FLD,XDATA,ACCEPT,SUBIEN,SEX,SSN,EZDATA,EAS,ERR,X,Y
  1. ;process sequence must be 408.13 - 408.12 - 408.21 - 408.22
  1. S MULTIPLE=0 F S MULTIPLE=$O(CN(MULTIPLE)) Q:'MULTIPLE F FILE=408.13,408.12,408.21,408.22 D
  1. . S SUBFILE=FILE,FLD=""
  1. . S XLINK=$G(FLINK("CN",MULTIPLE,FILE))
  1. . ;record in file #408.13 is needed for all further data filng
  1. . Q:(FILE'=408.13)&('$G(FLINK("CN",MULTIPLE,408.13)))
  1. . ;for data elements with link to database,
  1. . ;only file 1010EZ data if accepted by user;
  1. . ;data in external format
  1. . I XLINK D
  1. . . ;when #408.12 record exists, don't try to update subfile #408.1275
  1. . . S FLD="" F S FLD=$O(CN(MULTIPLE,FILE,SUBFILE,FLD)) Q:FLD="" D
  1. . . . S XDATA=CN(MULTIPLE,FILE,SUBFILE,FLD),ACCEPT=$P(XDATA,U,2)
  1. . . . I FILE=408.13,FLD=.09 S XDATA=$TR(XDATA,"-","")
  1. . . . I ACCEPT D LINK^EASEZF2(XDATA,FILE,FLD,"CN",MULTIPLE)
  1. . ;for data elements with no link to database,
  1. . ;always create new record(s) to store 1010EZ data;
  1. . ;put data in internal format
  1. . I 'XLINK D
  1. . . K EAS,ERR
  1. . . S FLD="" F S FLD=$O(CN(MULTIPLE,FILE,SUBFILE,FLD)) Q:FLD="" D
  1. . . . S EZDATA=$P(CN(MULTIPLE,FILE,SUBFILE,FLD),U,1)
  1. . . . S EAS(EASAPP,FILE,"+1,",FLD)=EZDATA
  1. . . ;supplement data and convert to internal format
  1. . . I FILE=408.13 D
  1. . . . S X=$G(EAS(EASAPP,FILE,"+1,",".03")) I X'="" D ^%DT S EAS(EASAPP,FILE,"+1,",".03")=Y
  1. . . . S X=$G(EAS(EASAPP,FILE,"+1,",".09")) I X'="" D
  1. . . . . S SSN=$TR(X,"-","") S EAS(EASAPP,FILE,"+1,",".09")=SSN
  1. . . . . I $D(^DGPR(408.13,"SSN",SSN)) S EAS(EASAPP,FILE,"+1,",".09")=""
  1. . . . S X=$P($G(CN(MULTIPLE,408.12,408.12,.02)),U,1) S SEX=$S(X["SON":"M",X["DAUGHTER":"F",1:"")
  1. . . . I SEX'="" S EAS(EASAPP,FILE,"+1,",".02")=SEX
  1. . . I FILE=408.12,$G(FLINK("CN",MULTIPLE,408.13)) D F40812^EASEZF3("CN",MULTIPLE)
  1. . . I FILE=408.21,$G(FLINK("CN",MULTIPLE,408.12)) D
  1. . . . S EAS(EASAPP,FILE,"+1,",".01")=INCYR
  1. . . . S EAS(EASAPP,FILE,"+1,",".02")=FLINK("CN",MULTIPLE,408.12)
  1. . . . S EAS(EASAPP,FILE,"+1,","101")=DUZ
  1. . . . S EAS(EASAPP,FILE,"+1,","102")=DT
  1. . . . S EAS(EASAPP,FILE,"+1,","103")=DUZ
  1. . . . S EAS(EASAPP,FILE,"+1,","104")=DT
  1. . . I FILE=408.22,$G(FLINK("CN",MULTIPLE,408.21)) D
  1. . . . S EAS(EASAPP,FILE,"+1,",".01")=EASDFN
  1. . . . S EAS(EASAPP,FILE,"+1,",".02")=FLINK("CN",MULTIPLE,408.21)
  1. . . . S X=$P($G(CN(MULTIPLE,FILE,SUBFILE,".1")),U,1) I X S EAS(EASAPP,FILE,"+1,",".1")="Y"
  1. . . . ;EAS*1.0*57 - ALLOW NULL VALUES FOR .09 AND .18
  1. . . . S X=$P($G(CN(MULTIPLE,FILE,SUBFILE,".09")),U,1),EAS(EASAPP,FILE,"+1,",".09")=$S(X["Y":1,X["N":0,1:"")
  1. . . . S X=$P($G(CN(MULTIPLE,408.21,408.21,".14")),U,1) I X S EAS(EASAPP,FILE,"+1,",".11")=1
  1. . . . S X=$P($G(CN(MULTIPLE,FILE,SUBFILE,".18")),U,1),EAS(EASAPP,FILE,"+1,",".18")=$S(X["Y":1,X["N":0,1:"")
  1. . . . S X=$G(EAS(EASAPP,FILE,"+1,",".1"))
  1. . . . S EAS(EASAPP,FILE,"+1,",".1")=$S(X="YES":1,X="NO":0,1:"")
  1. . . . S X=$G(EAS(EASAPP,FILE,"+1,",".06"))
  1. . . . S EAS(EASAPP,FILE,"+1,",".06")=$S(X="YES":1,X="NO":0,1:"")
  1. . . I FILE'=408.12 D
  1. . . . S FLINK("CN",MULTIPLE,FILE)=$$NOLINK^EASEZF2(.EAS)
  1. . . . S FLD="" F S FLD=$O(CN(MULTIPLE,FILE,SUBFILE,FLD)) Q:FLD="" D
  1. . . . . S $P(CN(MULTIPLE,FILE,SUBFILE,FLD),U,5)=FLINK("CN",MULTIPLE,FILE)
  1. Q
  1. ;
  1. LINKUP ;
  1. N SUBIEN,KEYIEN,MULTIPLE,FILE,SUBFILE,FIELD,DATAKEY,DATANM,TYPE,LINK,X
  1. S SUBIEN=0 F S SUBIEN=$O(^EAS(712,EASAPP,10,SUBIEN)) Q:+SUBIEN=0 D
  1. . S X=$G(^EAS(712,EASAPP,10,SUBIEN,1))
  1. . ;quit if no data to file
  1. . Q:(($P(X,U,1)="")&($P(X,U,2)=""))
  1. . S TYPE=""
  1. . S KEYIEN=$P(^EAS(712,EASAPP,10,SUBIEN,0),U,1),MULTIPLE=$P(^(0),U,2)
  1. . S DATANM=$P(^EAS(711,KEYIEN,0),U,1),DATAKEY=$P(^(0),U,2),FILE=$P(^EAS(711,KEYIEN,1),U,1),SUBFILE=$P(^(1),U,2),FIELD=$P(^(1),U,3)
  1. . Q:FILE<408
  1. . Q:FILE>408.22
  1. . I SUBFILE=408.1275 S FILE=SUBFILE
  1. . I DATANM["CHILD" S TYPE="CN"
  1. . I DATANM["ASSET(N)" S TYPE="CN" ;EAS*1.0*70
  1. . I DATANM["CHILD(N)" D
  1. . . ;necessary because some version 6 income data for child1 is brought-in via a child(n) multiple
  1. . . S MULTIPLE=MULTIPLE+1
  1. . . Q:$G(EASVRSN)<6
  1. . . ;EAS*1.0*70 -- added up-arrows on next line
  1. . . I FILE=408.21,("^.08^.14^.17^"[("^"_FIELD_"^")) S MULTIPLE=MULTIPLE-1
  1. . I DATANM["SPOUSE" S TYPE="SP"
  1. . I TYPE="" S TYPE="AP"
  1. . S LINK=$G(FLINK(TYPE,MULTIPLE,FILE))
  1. . Q:'LINK
  1. . Q:$$SUPPRESS^EASEZU4(EASAPP,DATAKEY,1,$G(EASVRSN))
  1. . I FILE=408.1275 S LINK=FLINK(TYPE,MULTIPLE,408.12)_";"_FLINK(TYPE,MULTIPLE,FILE)
  1. . S $P(^EAS(712,EASAPP,10,SUBIEN,2),U,2)=LINK
  1. Q