- EASEZFM ;ALB/jap,TM - Filing 1010EZ Data to Patient Database ; 3/13/09 4:51pm
- ;;1.0;ENROLLMENT APPLICATION SYSTEM;**1,93**;Mar 15, 2001;Build 2
- ;
- QUE ;entry point from queued background job
- ;
- ;check signature verification before continuing
- K ^TMP("1010EZERROR",$J)
- Q:'$G(EASAPP)
- Q:'$D(^EAS(712,EASAPP,0))
- S EASEZNEW=$P(^EAS(712,EASAPP,0),U,11)
- S X=$G(^EAS(712,EASAPP,1))
- ;recheck signature status
- I ('$P(X,U,1))&('$P(X,U,2)) D RESET Q
- ;
- L +^EAS(712,EASAPP):60 I '$T D RESET Q
- ;check incoming data
- D CHECK
- ;
- ;get EZ1010 data into ^TMP("EZDATA" array
- D EN^EASEZC1(EASAPP,.EASDFN)
- ;
- ;store file #2 data
- L +^DPT(EASDFN):60 I '$T D RESET Q
- D F2^EASEZF1(EASAPP,EASDFN)
- L -^DPT(EASDFN)
- ;
- ;store file #408.12, #408.13, #408.21, #408.22 data
- D F408^EASEZF2(EASAPP,EASDFN)
- ;
- ;store file #355.33 data;
- ;call IB API to file health insurance and Medicare data
- D IBINS^EASEZF5(EASAPP,EASDFN)
- ;
- ;update 'new patient' remark
- I EASEZNEW D
- .S REM="New Patient record added by ELECTRONIC 10-10EZ."
- .S DA=EASDFN,DIE="^DPT(",DR=".091///^S X=REM"
- .D ^DIE
- ;update processing status if not already done
- I $P($G(^EAS(712,EASAPP,2)),U,5)="" D SETDATE^EASEZU2(EASAPP,"FIL")
- ;remove the task id
- S $P(^EAS(712,EASAPP,2),U,11)=""
- L -^EAS(712,EASAPP)
- I $D(^TMP("1010EZERROR",$J)) D MAILERR
- S ZTREQ="@"
- Q
- ;
- CHECK ;check data
- ;returns '0' if any invalid data found; otherwise '1'
- N SUBIEN,X,CHK,DIK,DA
- ;remove any 'noise' from incoming data
- S SUBIEN=0 F S SUBIEN=$O(^EAS(712,EASAPP,10,SUBIEN)) Q:+SUBIEN=0 D
- .S CHK=$P($G(^EAS(712,EASAPP,10,SUBIEN,1)),U,1)
- .I (CHK="/")!(CHK="//")!(CHK="-")!(CHK="--")!(CHK=" ")!(CHK="") D
- ..S DA=SUBIEN,DA(1)=EASAPP,DIK="^EAS(712,"_DA(1)_",10,"
- ..D ^DIK
- Q
- ;
- CLEAN ; cleanup
- K ^TMP("EZDATA",$J),^TMP("EZINDEX",$J),^TMP("EZTEMP",$J),^TMP("EZDISP",$J)
- Q
- ;
- MAILERR ;notify user if any data elements failed FM validator
- ;
- N XMY,XMSUB,XMDUZ,XMTEXT,Y
- ;fill-in first 6 lines of message
- S ^TMP("1010EZERROR",$J,1,0)="Errors were returned by the FileMan validator when filing 1010EZ"
- S ^TMP("1010EZERROR",$J,2,0)="data for --"
- S ^TMP("1010EZERROR",$J,3,0)="Applicant: "_$P($G(^EAS(712,EASAPP,0)),U,4)
- S ^TMP("1010EZERROR",$J,4,0)="Application #: "_EASAPP
- S Y=DT D DD^%DT
- S ^TMP("1010EZERROR",$J,5,0)="Filing Date: "_Y
- S ^TMP("1010EZERROR",$J,6,0)=" "
- ;setup call to MailMan
- S XMSUB="EAS 1010EZ Error Report for APP #"_EASAPP,XMDUZ=.5
- S XMY(DUZ)=""
- S XMTEXT="^TMP(""1010EZERROR"",$J,"
- D ^XMD
- K ^TMP("1010EZERROR",$J)
- Q
- ;
- RESET ;remove filing date if can't continue
- S FDT=$P(^EAS(712,EASAPP,2),U,5),$P(^EAS(712,EASAPP,2),U,5)=""
- S $P(^EAS(712,EASAPP,2),U,6)="",$P(^EAS(712,EASAPP,2),U,11)=""
- I FDT K ^EAS(712,"FIL",FDT,EASAPP)
- D APPINDEX^EASEZU2(EASAPP)
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HEASEZFM 2820 printed Apr 23, 2025@18:09:03 Page 2
- EASEZFM ;ALB/jap,TM - Filing 1010EZ Data to Patient Database ; 3/13/09 4:51pm
- +1 ;;1.0;ENROLLMENT APPLICATION SYSTEM;**1,93**;Mar 15, 2001;Build 2
- +2 ;
- QUE ;entry point from queued background job
- +1 ;
- +2 ;check signature verification before continuing
- +3 KILL ^TMP("1010EZERROR",$JOB)
- +4 if '$GET(EASAPP)
- QUIT
- +5 if '$DATA(^EAS(712,EASAPP,0))
- QUIT
- +6 SET EASEZNEW=$PIECE(^EAS(712,EASAPP,0),U,11)
- +7 SET X=$GET(^EAS(712,EASAPP,1))
- +8 ;recheck signature status
- +9 IF ('$PIECE(X,U,1))&('$PIECE(X,U,2))
- DO RESET
- QUIT
- +10 ;
- +11 LOCK +^EAS(712,EASAPP):60
- IF '$TEST
- DO RESET
- QUIT
- +12 ;check incoming data
- +13 DO CHECK
- +14 ;
- +15 ;get EZ1010 data into ^TMP("EZDATA" array
- +16 DO EN^EASEZC1(EASAPP,.EASDFN)
- +17 ;
- +18 ;store file #2 data
- +19 LOCK +^DPT(EASDFN):60
- IF '$TEST
- DO RESET
- QUIT
- +20 DO F2^EASEZF1(EASAPP,EASDFN)
- +21 LOCK -^DPT(EASDFN)
- +22 ;
- +23 ;store file #408.12, #408.13, #408.21, #408.22 data
- +24 DO F408^EASEZF2(EASAPP,EASDFN)
- +25 ;
- +26 ;store file #355.33 data;
- +27 ;call IB API to file health insurance and Medicare data
- +28 DO IBINS^EASEZF5(EASAPP,EASDFN)
- +29 ;
- +30 ;update 'new patient' remark
- +31 IF EASEZNEW
- Begin DoDot:1
- +32 SET REM="New Patient record added by ELECTRONIC 10-10EZ."
- +33 SET DA=EASDFN
- SET DIE="^DPT("
- SET DR=".091///^S X=REM"
- +34 DO ^DIE
- End DoDot:1
- +35 ;update processing status if not already done
- +36 IF $PIECE($GET(^EAS(712,EASAPP,2)),U,5)=""
- DO SETDATE^EASEZU2(EASAPP,"FIL")
- +37 ;remove the task id
- +38 SET $PIECE(^EAS(712,EASAPP,2),U,11)=""
- +39 LOCK -^EAS(712,EASAPP)
- +40 IF $DATA(^TMP("1010EZERROR",$JOB))
- DO MAILERR
- +41 SET ZTREQ="@"
- +42 QUIT
- +43 ;
- CHECK ;check data
- +1 ;returns '0' if any invalid data found; otherwise '1'
- +2 NEW SUBIEN,X,CHK,DIK,DA
- +3 ;remove any 'noise' from incoming data
- +4 SET SUBIEN=0
- FOR
- SET SUBIEN=$ORDER(^EAS(712,EASAPP,10,SUBIEN))
- if +SUBIEN=0
- QUIT
- Begin DoDot:1
- +5 SET CHK=$PIECE($GET(^EAS(712,EASAPP,10,SUBIEN,1)),U,1)
- +6 IF (CHK="/")!(CHK="//")!(CHK="-")!(CHK="--")!(CHK=" ")!(CHK="")
- Begin DoDot:2
- +7 SET DA=SUBIEN
- SET DA(1)=EASAPP
- SET DIK="^EAS(712,"_DA(1)_",10,"
- +8 DO ^DIK
- End DoDot:2
- End DoDot:1
- +9 QUIT
- +10 ;
- CLEAN ; cleanup
- +1 KILL ^TMP("EZDATA",$JOB),^TMP("EZINDEX",$JOB),^TMP("EZTEMP",$JOB),^TMP("EZDISP",$JOB)
- +2 QUIT
- +3 ;
- MAILERR ;notify user if any data elements failed FM validator
- +1 ;
- +2 NEW XMY,XMSUB,XMDUZ,XMTEXT,Y
- +3 ;fill-in first 6 lines of message
- +4 SET ^TMP("1010EZERROR",$JOB,1,0)="Errors were returned by the FileMan validator when filing 1010EZ"
- +5 SET ^TMP("1010EZERROR",$JOB,2,0)="data for --"
- +6 SET ^TMP("1010EZERROR",$JOB,3,0)="Applicant: "_$PIECE($GET(^EAS(712,EASAPP,0)),U,4)
- +7 SET ^TMP("1010EZERROR",$JOB,4,0)="Application #: "_EASAPP
- +8 SET Y=DT
- DO DD^%DT
- +9 SET ^TMP("1010EZERROR",$JOB,5,0)="Filing Date: "_Y
- +10 SET ^TMP("1010EZERROR",$JOB,6,0)=" "
- +11 ;setup call to MailMan
- +12 SET XMSUB="EAS 1010EZ Error Report for APP #"_EASAPP
- SET XMDUZ=.5
- +13 SET XMY(DUZ)=""
- +14 SET XMTEXT="^TMP(""1010EZERROR"",$J,"
- +15 DO ^XMD
- +16 KILL ^TMP("1010EZERROR",$JOB)
- +17 QUIT
- +18 ;
- RESET ;remove filing date if can't continue
- +1 SET FDT=$PIECE(^EAS(712,EASAPP,2),U,5)
- SET $PIECE(^EAS(712,EASAPP,2),U,5)=""
- +2 SET $PIECE(^EAS(712,EASAPP,2),U,6)=""
- SET $PIECE(^EAS(712,EASAPP,2),U,11)=""
- +3 IF FDT
- KILL ^EAS(712,"FIL",FDT,EASAPP)
- +4 DO APPINDEX^EASEZU2(EASAPP)
- +5 QUIT