- DGENUPL9 ;ISA/KWP,JAN,BRM,PJR,LBD,TDM - CD CONSISTENCY CHECKS ; 8/18/08 9:23am
- ;;5.3;PIMS;**232,378,451,564,628,1015,1016**;JUN 30, 2012;Build 20
- ;
- CDCHECK() ;
- ;Description: Does the consistency checks on the CATASTROPHIC DISABILITY objects.
- ;Input:
- ; MSGS -Error messages
- ; DGPAT -Patient array
- ; MSGID -HL7 Message ID
- ; OLDCDIS -CD array with data from file
- ; DGCDIS -CD Array
- ; ERRCOUNT -number of errors
- ;Output:
- ; 1 if consistency checks passed, 0 otherwise
- ;
- ; VistA Changes (DG*5.3*451) added CCs listed below in place of the
- ; previous Consistency Checks based on new business rules.
- ;
- N CDERR
- ; Reject CD update if required fields are missing
- I DGCDIS("VCD")="Y",'$$CHECK^DGENCDA1(.DGCDIS,.CDERR) D ADDERROR^DGENUPL(MSGID,DGPAT("SSN"),"CD Error: "_CDERR,.ERRCOUNT) Q 0
- ;
- ; If CD is Yes on VISTA and update is Yes and the current Date of
- ; Decision is more recent than the incoming one, reject update.
- I OLDCDIS("VCD")="Y",DGCDIS("VCD")="Y",DGCDIS("DATE")<OLDCDIS("DATE") D ADDERROR^DGENUPL(MSGID,DGPAT("SSN"),"CD Error: Date of Decision is more recent at site",.ERRCOUNT) Q 0
- ;
- ; CD evaluation of 'NO' shall not overwrite a CD evaluation of
- ; 'YES' unless it is from the originating site.
- I OLDCDIS("VCD")="Y",DGCDIS("VCD")="N",OLDCDIS("FACDET")'=DGCDIS("FACDET") Q 0 ;no error message when this occurs per bus. rules
- ;
- Q 1
- AO ;Agent Orange Exp. Location - overflow code from MERGE^DGENUPL4
- I DGELG("AO")'="" D
- . I DGELG("AO")="Y",$G(DGELG("AOEXPLOC"))'="" Q ;Added DG*5.3*688
- . I DGELG("AO")="Y",OLDELG("AOEXPLOC")="" D
- . . S DGELG3("AOEXPLOC")="V" D BULLETIN
- . I DGELG("AO")="N",OLDELG("AOEXPLOC")'="" D
- . . S DGELG3("AOEXPLOC")="@" D BULLETIN
- Q
- BULLETIN ;Agent Orange Exposure Location Change
- ; >> this function has been removed based on a customer request
- ; >> the code is being left for reactivation if desired w/ ESR
- Q
- N DGBULL,DGLINE,DGMGRP,DGNAME,DIFROM,VA,VAERR,XMTEXT,XMSUB,XMDUZ
- S DGMGRP=$O(^XMB(3.8,"B","DGEN ELIGIBILITY ALERT",""))
- Q:'DGMGRP
- D XMY^DGMTUTL(DGMGRP,0,1)
- S DGNAME=$P($G(^DPT(DFN,0)),"^"),DGSSN=$P($G(^DPT(DFN,0)),"^",9)
- S XMTEXT="DGBULL("
- S XMSUB="AGENT ORANGE EXPOSURE LOCATION CHANGE"
- S DGLINE=0
- D LINE^DGEN("Patient: "_DGNAME,.DGLINE)
- D LINE^DGEN("SSN: "_DGSSN,.DGLINE)
- D LINE^DGEN("",.DGLINE)
- D LINE^DGEN("This veteran's Agent Orange Exposure Location has been changed.",.DGLINE)
- D LINE^DGEN("Contact the HEC by phone if you have questions or believe",.DGLINE)
- D LINE^DGEN("this information to be incorrect.",.DGLINE)
- D ^XMD
- Q
- DGENUPL9 ;ISA/KWP,JAN,BRM,PJR,LBD,TDM - CD CONSISTENCY CHECKS ; 8/18/08 9:23am
- +1 ;;5.3;PIMS;**232,378,451,564,628,1015,1016**;JUN 30, 2012;Build 20
- +2 ;
- CDCHECK() ;
- +1 ;Description: Does the consistency checks on the CATASTROPHIC DISABILITY objects.
- +2 ;Input:
- +3 ; MSGS -Error messages
- +4 ; DGPAT -Patient array
- +5 ; MSGID -HL7 Message ID
- +6 ; OLDCDIS -CD array with data from file
- +7 ; DGCDIS -CD Array
- +8 ; ERRCOUNT -number of errors
- +9 ;Output:
- +10 ; 1 if consistency checks passed, 0 otherwise
- +11 ;
- +12 ; VistA Changes (DG*5.3*451) added CCs listed below in place of the
- +13 ; previous Consistency Checks based on new business rules.
- +14 ;
- +15 NEW CDERR
- +16 ; Reject CD update if required fields are missing
- +17 IF DGCDIS("VCD")="Y"
- IF '$$CHECK^DGENCDA1(.DGCDIS,.CDERR)
- DO ADDERROR^DGENUPL(MSGID,DGPAT("SSN"),"CD Error: "_CDERR,.ERRCOUNT)
- QUIT 0
- +18 ;
- +19 ; If CD is Yes on VISTA and update is Yes and the current Date of
- +20 ; Decision is more recent than the incoming one, reject update.
- +21 IF OLDCDIS("VCD")="Y"
- IF DGCDIS("VCD")="Y"
- IF DGCDIS("DATE")<OLDCDIS("DATE")
- DO ADDERROR^DGENUPL(MSGID,DGPAT("SSN"),"CD Error: Date of Decision is more recent at site",.ERRCOUNT)
- QUIT 0
- +22 ;
- +23 ; CD evaluation of 'NO' shall not overwrite a CD evaluation of
- +24 ; 'YES' unless it is from the originating site.
- +25 ;no error message when this occurs per bus. rules
- IF OLDCDIS("VCD")="Y"
- IF DGCDIS("VCD")="N"
- IF OLDCDIS("FACDET")'=DGCDIS("FACDET")
- QUIT 0
- +26 ;
- +27 QUIT 1
- AO ;Agent Orange Exp. Location - overflow code from MERGE^DGENUPL4
- +1 IF DGELG("AO")'=""
- Begin DoDot:1
- +2 ;Added DG*5.3*688
- IF DGELG("AO")="Y"
- IF $GET(DGELG("AOEXPLOC"))'=""
- QUIT
- +3 IF DGELG("AO")="Y"
- IF OLDELG("AOEXPLOC")=""
- Begin DoDot:2
- +4 SET DGELG3("AOEXPLOC")="V"
- DO BULLETIN
- End DoDot:2
- +5 IF DGELG("AO")="N"
- IF OLDELG("AOEXPLOC")'=""
- Begin DoDot:2
- +6 SET DGELG3("AOEXPLOC")="@"
- DO BULLETIN
- End DoDot:2
- End DoDot:1
- +7 QUIT
- BULLETIN ;Agent Orange Exposure Location Change
- +1 ; >> this function has been removed based on a customer request
- +2 ; >> the code is being left for reactivation if desired w/ ESR
- +3 QUIT
- +4 NEW DGBULL,DGLINE,DGMGRP,DGNAME,DIFROM,VA,VAERR,XMTEXT,XMSUB,XMDUZ
- +5 SET DGMGRP=$ORDER(^XMB(3.8,"B","DGEN ELIGIBILITY ALERT",""))
- +6 IF 'DGMGRP
- QUIT
- +7 DO XMY^DGMTUTL(DGMGRP,0,1)
- +8 SET DGNAME=$PIECE($GET(^DPT(DFN,0)),"^")
- SET DGSSN=$PIECE($GET(^DPT(DFN,0)),"^",9)
- +9 SET XMTEXT="DGBULL("
- +10 SET XMSUB="AGENT ORANGE EXPOSURE LOCATION CHANGE"
- +11 SET DGLINE=0
- +12 DO LINE^DGEN("Patient: "_DGNAME,.DGLINE)
- +13 DO LINE^DGEN("SSN: "_DGSSN,.DGLINE)
- +14 DO LINE^DGEN("",.DGLINE)
- +15 DO LINE^DGEN("This veteran's Agent Orange Exposure Location has been changed.",.DGLINE)
- +16 DO LINE^DGEN("Contact the HEC by phone if you have questions or believe",.DGLINE)
- +17 DO LINE^DGEN("this information to be incorrect.",.DGLINE)
- +18 DO ^XMD
- +19 QUIT